haven't committed in a while oops. A fuck-ton of HTML stuff
This commit is contained in:
parent
cbbb32f163
commit
b594e8b803
775
3
Normal file
775
3
Normal file
@ -0,0 +1,775 @@
|
||||
from django.db import models
|
||||
from polymorphic.models import PolymorphicModel
|
||||
import multiselectfield
|
||||
from random import randint
|
||||
from math import ceil
|
||||
|
||||
#==============================================================================#
|
||||
#-------------------------------- OPTION LISTS --------------------------------#
|
||||
#==============================================================================#
|
||||
ATTRIBUTES = [
|
||||
(
|
||||
"Physical", (
|
||||
("STR", "Strength"),
|
||||
("DEX", "Dexterity"),
|
||||
("STA", "Stamina"),
|
||||
),
|
||||
),
|
||||
(
|
||||
"Social", (
|
||||
("CHA", "Charisma"),
|
||||
("MAN", "Manipulation"),
|
||||
("APP", "Appearance"),
|
||||
),
|
||||
),
|
||||
(
|
||||
"Mental", (
|
||||
("PER", "Perception"),
|
||||
("INT", "Intelligence"),
|
||||
("WIT", "Wits"),
|
||||
),
|
||||
),
|
||||
]
|
||||
|
||||
ABILITIES = [
|
||||
(
|
||||
"War", (
|
||||
("ARCHERY", "Archery"),
|
||||
("ATHLETICS", "Athletics"),
|
||||
("AWARENESS", "Awareness"),
|
||||
("BRAWL", "Brawl"),
|
||||
("DODGE", "Dodge"),
|
||||
("INTEGRITY", "Integrity"),
|
||||
("MELEE", "Melee"),
|
||||
("RESISTANCE", "Resistance"),
|
||||
("THROWN", "Thrown"),
|
||||
("WAR", "War"),
|
||||
),
|
||||
),
|
||||
(
|
||||
"Life", (
|
||||
("CRAFT", "Craft"),
|
||||
("LARCENY", "Larceny"),
|
||||
("LINGUISTICS", "Linguistics"),
|
||||
("PERFORMANCE", "Performance"),
|
||||
("PRESENCE", "Presence"),
|
||||
("RIDE", "Ride"),
|
||||
("SAIL", "Sail"),
|
||||
("SOCIALISE", "Socialise"),
|
||||
("STEALTH", "Stealth"),
|
||||
("SURVIVAL", "Survival"),
|
||||
),
|
||||
),
|
||||
(
|
||||
"Wisdom", (
|
||||
("BUREAUCRACY", "Bureaucracy"),
|
||||
("INVESTIGATION", "Investigation"),
|
||||
("LORE", "Lore"),
|
||||
("MEDICINE", "Medicine"),
|
||||
("OCCULT", "Occult"),
|
||||
),
|
||||
),
|
||||
]
|
||||
|
||||
STATICS = [
|
||||
("SOAK NATURAL", "Natural Soak"),
|
||||
("SOAK ARMORED", "Armored Soak"),
|
||||
("SOAK TOTAL", "Total Soak"),
|
||||
("HARDNESS", "Hardness"),
|
||||
("PARRY", "Parry"),
|
||||
("EVASION", "Evasion"),
|
||||
("RESOLVE", "Resolve"),
|
||||
("GUILE", "Guile"),
|
||||
("RUSH", "Rush"),
|
||||
("DISENGAGE", "Disengage"),
|
||||
("JOIN BATTLE", "Join Battle"),
|
||||
]
|
||||
|
||||
CATEGORIES = [
|
||||
("L", "Light"),
|
||||
("M", "Medium"),
|
||||
("H", "Heavy"),
|
||||
]
|
||||
|
||||
TAGS_WEAPONS = [
|
||||
(
|
||||
"General", (
|
||||
("ONE HANDED", "One Handed"),
|
||||
("TWO HANDED", "Two Handed"),
|
||||
("BASHING", "Bashing"),
|
||||
("CONCEALABLE", "Concealable"),
|
||||
("LETHAL", "Lethal"),
|
||||
("MOUNTED", "Mounted"),
|
||||
("PIERCING", "Piercing"),
|
||||
("SPECIAL", "Special"),
|
||||
),
|
||||
),
|
||||
(
|
||||
"Melee", (
|
||||
("MELEE", "Melee"),
|
||||
("BALANCED", "Balanced"),
|
||||
("BRAWL", "Brawl"),
|
||||
("CHOPPING", "Chopping"),
|
||||
("DISARMING", "Disarming"),
|
||||
("FLEXIBLE", "Flexible"),
|
||||
("IMPROVISED", "Improvised"),
|
||||
("GRAPPLING", "Grappling"),
|
||||
("MARTIAL ARTS", "Martial Arts"),
|
||||
("NATURAL", "Natural"),
|
||||
("REACHING", "Reaching"),
|
||||
("SHIELD", "Shield"),
|
||||
("SMASHING", "Smashing"),
|
||||
("WORN", "Worn"),
|
||||
),
|
||||
),
|
||||
(
|
||||
"Thrown", (
|
||||
("THROWN", "Occult"),
|
||||
("CUTTING", "Cutting"),
|
||||
("POISONABLE", "Poisonable"),
|
||||
("SUBTLE", "Subtle"),
|
||||
),
|
||||
),
|
||||
(
|
||||
"Archery", (
|
||||
("ARCHERY", "Archery"),
|
||||
("CROSSBOW", "Crossbow"),
|
||||
("FLAME", "Flame"),
|
||||
("POWERFUL", "Powerful"),
|
||||
("SLOW", "Slow"),
|
||||
),
|
||||
),
|
||||
]
|
||||
|
||||
TAGS_ARMOR = [
|
||||
("BUOYANT", "Buoyant"),
|
||||
("CONCEALABLE", "Concealable"),
|
||||
("SILENT", "Silent"),
|
||||
]
|
||||
|
||||
INTENSITIES = [
|
||||
("MINOR", "Minor"),
|
||||
("MAJOR", "Major"),
|
||||
("DEFINING", "Defining"),
|
||||
]
|
||||
|
||||
DIE_TYPES = [
|
||||
("NONE", "None"),
|
||||
("SUCCESS", "Success"),
|
||||
("DOUBLE", "Double"),
|
||||
("EXPLODING_DISAPPEARING", "Exploding / Disappearing"),
|
||||
("SUBTRACTING", "Subtracting")
|
||||
]
|
||||
|
||||
#==============================================================================#
|
||||
#------------------------------- CUSTOM MODELS --------------------------------#
|
||||
#==============================================================================#
|
||||
class NameField(models.CharField):
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs['verbose_name'] = "Name"
|
||||
kwargs['blank'] = False
|
||||
kwargs['max_length'] = 100
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class DescriptionField(models.TextField):
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs['verbose_name'] = "Description"
|
||||
kwargs['blank'] = True
|
||||
kwargs['max_length'] = 1000
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class DotField(models.IntegerField):
|
||||
def __init__(self, verbose_name, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['blank'] = False
|
||||
kwargs['default'] = 0
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class SingleChoiceField(models.CharField):
|
||||
def __init__(self, verbose_name, choices, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['choices'] = choices
|
||||
kwargs['blank'] = True
|
||||
kwargs['max_length'] = 100
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class MultiChoiceField(multiselectfield.MultiSelectField):
|
||||
def __init__(self, verbose_name, choices, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['choices'] = choices
|
||||
kwargs['blank'] = True
|
||||
kwargs['max_length'] = 100
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class NamedIntegerField(models.IntegerField):
|
||||
def __init__(self, verbose_name, desc=None, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['help_text'] = desc
|
||||
kwargs['blank'] = False
|
||||
kwargs['default'] = 0
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class NamedCharField(models.CharField):
|
||||
def __init__(self, verbose_name, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['blank'] = False
|
||||
kwargs['max_length'] = 100
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class DieField(multiselectfield.MultiSelectField):
|
||||
def __init__(self, verbose_name, number, default, *args, **kwargs):
|
||||
self.number = number
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['default'] = default
|
||||
kwargs['choices'] = DIE_TYPES
|
||||
kwargs['blank'] = False
|
||||
kwargs['max_length'] = 100
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def deconstruct(self):
|
||||
name, path, args, kwargs = super().deconstruct()
|
||||
kwargs['number'] = self.number
|
||||
return name, path, args, kwargs
|
||||
|
||||
class NamedBooleanField(models.BooleanField):
|
||||
def __init__(self, verbose_name, default=False, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['default'] = default
|
||||
kwargs['blank'] = False
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class NamedForeignKeyField(models.ForeignKey):
|
||||
def __init__(self, verbose_name, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['on_delete'] = models.CASCADE
|
||||
kwargs['blank'] = True
|
||||
kwargs['null'] = True
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class NamedManyToManyField(models.ManyToManyField):
|
||||
def __init__(self, verbose_name, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['blank'] = True
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
class NamedOneToOneField(models.OneToOneField):
|
||||
def __init__(self, verbose_name, *args, **kwargs):
|
||||
kwargs['verbose_name'] = verbose_name
|
||||
kwargs['on_delete'] = models.CASCADE
|
||||
kwargs['blank'] = True
|
||||
kwargs['null'] = True
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
#==============================================================================#
|
||||
#-------------------------------- DICE ROLLING --------------------------------#
|
||||
#==============================================================================#
|
||||
class rollConfiguration(PolymorphicModel):
|
||||
def __str__(self):
|
||||
return self.name
|
||||
name = NameField()
|
||||
successesAuto = NamedIntegerField("Auto-Successes")
|
||||
r01 = DieField("1s", 1, ["NONE"])
|
||||
r02 = DieField("2s", 2, ["NONE"])
|
||||
r03 = DieField("3s", 3, ["NONE"])
|
||||
r04 = DieField("4s", 4, ["NONE"])
|
||||
r05 = DieField("5s", 5, ["NONE"])
|
||||
r06 = DieField("6s", 6, ["NONE"])
|
||||
r07 = DieField("7s", 7, ["SUCCESS"])
|
||||
r08 = DieField("8s", 8, ["SUCCESS"])
|
||||
r09 = DieField("9s", 9, ["SUCCESS"])
|
||||
r10 = DieField("10s", 10, ["SUCCESS", "DOUBLE"])
|
||||
|
||||
def roll(self, pool=1, successesStunt=0):
|
||||
listDice = [
|
||||
self.r01,
|
||||
self.r02,
|
||||
self.r03,
|
||||
self.r04,
|
||||
self.r05,
|
||||
self.r06,
|
||||
self.r07,
|
||||
self.r08,
|
||||
self.r09,
|
||||
self.r10,
|
||||
]
|
||||
listSuccess, listDouble, listExplodingDisappearing, listSubtracting = [], [], [], []
|
||||
for die in listDice:
|
||||
if "SUCCESS" in die:
|
||||
listSuccess.append(die.number)
|
||||
if "DOUBLE" in die:
|
||||
listDouble.append(die.number)
|
||||
if "EXPLODING_DISAPPEARING" in die:
|
||||
listExplodingDisappearing.append(die.number)
|
||||
if "SUBTRACTING" in die:
|
||||
listSubtracting.append(die.number)
|
||||
successes = self.successesAuto + successesStunt
|
||||
listExploded, listDisappeared = [], []
|
||||
listRoll = [0 for die in range(pool)]
|
||||
while 0 in listRoll:
|
||||
for die in listRoll:
|
||||
if die == 0:
|
||||
die = randint(1, 10)
|
||||
if die in listExplodingDisappearing:
|
||||
if die in listSuccess:
|
||||
listExploded.append(die)
|
||||
else:
|
||||
listDisappeared.append(die)
|
||||
die = 0
|
||||
for die in listRoll + listExploded:
|
||||
if die in listSuccess:
|
||||
successes += 1
|
||||
if die in listDouble:
|
||||
successes += 1
|
||||
if die in listSubtracting:
|
||||
successes -= 1
|
||||
if successes < 0:
|
||||
successes = 0
|
||||
botch = (successes == 0) and (1 in listRoll)
|
||||
return successes, botch, listRoll, listExploded, listDisappeared
|
||||
|
||||
#==============================================================================#
|
||||
#--------------------------------- MODIFIERS ----------------------------------#
|
||||
#==============================================================================#
|
||||
class modifierBase(PolymorphicModel):
|
||||
value = NamedIntegerField("Modifier Value")
|
||||
|
||||
class modifierAttribute(modifierBase):
|
||||
def __str__(self):
|
||||
return "{} [{}]".format(self.keyword, self.value)
|
||||
|
||||
keyword = SingleChoiceField("Attribute", ATTRIBUTES)
|
||||
|
||||
class modifierAbility(modifierBase):
|
||||
def __str__(self):
|
||||
return "{} [{}]".format(self.keyword, self.value)
|
||||
|
||||
keyword = SingleChoiceField("Ability", ABILITIES)
|
||||
|
||||
class modifierStatic(modifierBase):
|
||||
def __str__(self):
|
||||
return "{} [{}]".format(self.keyword, self.value)
|
||||
|
||||
keyword = SingleChoiceField("Static", STATICS)
|
||||
|
||||
#==============================================================================#
|
||||
#--------------------------------- CHARACTERS ---------------------------------#
|
||||
#==============================================================================#
|
||||
class characterBase(PolymorphicModel):
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
#======== MODIFIER METHODS ========#
|
||||
def effectModifier(self, keyword):
|
||||
modifier = 0
|
||||
try:
|
||||
effects = self.effectBase_set.filter(active=True)
|
||||
for effect in effects:
|
||||
modifier += effect.modifier(keyword)
|
||||
except:
|
||||
pass
|
||||
return modifier
|
||||
|
||||
#============ GENERAL =============#
|
||||
name = NameField()
|
||||
|
||||
#=========== ATTRIBUTES ===========#
|
||||
strength = DotField("Strength")
|
||||
def attributeStrength(self):
|
||||
return self.strength + self.effectModifier("STRENGTH")
|
||||
dexterity = DotField("Dexterity")
|
||||
def attributeDexterity(self):
|
||||
return self.dexterity + self.effectModifier("DEXTERITY")
|
||||
stamina = DotField("Stamina")
|
||||
def attributeStamina(self):
|
||||
return self.stamina + self.effectModifier("STAMINA")
|
||||
charisma = DotField("Charisma")
|
||||
def attributeCharisma(self):
|
||||
return self.charisma + self.effectModifier("CHARISMA")
|
||||
manipulation = DotField("Manipulation")
|
||||
def attributeManipulation(self):
|
||||
return self.manipulation + self.effectModifier("MANIPULATION")
|
||||
appearance = DotField("Apperance")
|
||||
def attributeAppearance(self):
|
||||
return self.appearance + self.effectModifier("APPEARANCE")
|
||||
perception = DotField("Perception")
|
||||
def attributePerception(self):
|
||||
return self.perception + self.effectModifier("PERCEPTION")
|
||||
intelligence = DotField("Intelligence")
|
||||
def attributeIntelligence(self):
|
||||
return self.intelligence + self.effectModifier("INTELLIGENCE")
|
||||
wits = DotField("Wits")
|
||||
def attributeWits(self):
|
||||
return self.wits + self.effectModifier("WITS")
|
||||
|
||||
#=========== ABILITIES ============#
|
||||
archery = DotField("Archery")
|
||||
def abilityArchery(self):
|
||||
return self.archery + self.effectModifier("ARCHERY")
|
||||
athletics = DotField("Athletics")
|
||||
def abilityAthletics(self):
|
||||
return self.athletics + self.effectModifier("ATHLETICS")
|
||||
awareness = DotField("Awareness")
|
||||
def abilityAwareness(self):
|
||||
return self.awareness + self.effectModifier("AWARENESS")
|
||||
brawl = DotField("Brawl")
|
||||
def abilityBrawl(self):
|
||||
return self.brawl + self.effectModifier("BRAWL")
|
||||
bureaucracy = DotField("Bureaucracy")
|
||||
def abilityBureaucracy(self):
|
||||
return self.bureaucracy + self.effectModifier("BUREAUCRACY")
|
||||
craft = DotField("Craft")
|
||||
def abilityCraft(self):
|
||||
return self.craft + self.effectModifier("CRAFT")
|
||||
dodge = DotField("Dodge")
|
||||
def abilityDodge(self):
|
||||
return self.dodge + self.effectModifier("DODGE")
|
||||
integrity = DotField("Integrity")
|
||||
def abilityIntegrity(self):
|
||||
return self.integrity + self.effectModifier("INTEGRITY")
|
||||
investigation = DotField("Investigation")
|
||||
def abilityInvestigation(self):
|
||||
return self.investigation + self.effectModifier("INVESTIGATION")
|
||||
larceny = DotField("Larceny")
|
||||
def abilityLarceny(self):
|
||||
return self.larceny + self.effectModifier("LARCENY")
|
||||
linguistics = DotField("Linguistics")
|
||||
def abilityLinguistics(self):
|
||||
return self.linguistics + self.effectModifier("LINGUISTICS")
|
||||
lore = DotField("Lore")
|
||||
def abilityLore(self):
|
||||
return self.lore + self.effectModifier("LORE")
|
||||
martialArts = DotField("MartialArts")
|
||||
def abilityMartialArts(self):
|
||||
return self.martialArts + self.effectModifier("MARTIAL ARTS")
|
||||
medicine = DotField("Medicine")
|
||||
def abilityMedicine(self):
|
||||
return self.medicine + self.effectModifier("MEDICINE")
|
||||
melee = DotField("Melee")
|
||||
def abilityMelee(self):
|
||||
return self.melee + self.effectModifier("MELEE")
|
||||
occult = DotField("Occult")
|
||||
def abilityOccult(self):
|
||||
return self.occult + self.effectModifier("OCCULT")
|
||||
performance = DotField("Performance")
|
||||
def abilityPerformance(self):
|
||||
return self.performance + self.effectModifier("PERFORMANCE")
|
||||
presence = DotField("Presence")
|
||||
def abilityPresence(self):
|
||||
return self.presence + self.effectModifier("PRESENCE")
|
||||
resistance = DotField("Resistance")
|
||||
def abilityResistance(self):
|
||||
return self.resistance + self.effectModifier("RESISTANCE")
|
||||
ride = DotField("Ride")
|
||||
def abilityRide(self):
|
||||
return self.ride + self.effectModifier("RIDE")
|
||||
sail = DotField("Sail")
|
||||
def abilitySail(self):
|
||||
return self.sail + self.effectModifier("SAIL")
|
||||
socialize = DotField("Socialize")
|
||||
def abilitySocialize(self):
|
||||
return self.socialize + self.effectModifier("SOCIALIZE")
|
||||
stealth = DotField("Stealth")
|
||||
def abilityStealth(self):
|
||||
return self.stealth + self.effectModifier("STEALTH")
|
||||
survival = DotField("Survival")
|
||||
def abilitySurvival(self):
|
||||
return self.survival + self.effectModifier("SURVIVAL")
|
||||
thrown = DotField("Thrown")
|
||||
def abilityThrown(self):
|
||||
return self.thrown + self.effectModifier("THROWN")
|
||||
war = DotField("War")
|
||||
def abilityWar(self):
|
||||
return self.war + self.effectModifier("WAR")
|
||||
|
||||
#============= MERITS =============#
|
||||
# Reverse relation
|
||||
# .merit_set.all()
|
||||
|
||||
#=========== WILLPOWER ============#
|
||||
willpowerCap = 10
|
||||
willpowerMax = NamedIntegerField("Maximum Willpower")
|
||||
willpower = NamedIntegerField("Current Willpower")
|
||||
|
||||
#=========== EXPERIENCE ===========#
|
||||
experienceTotal = NamedIntegerField("Total Experience")
|
||||
experience = NamedIntegerField("Current Experience")
|
||||
|
||||
#============ WEAPONS =============#
|
||||
# Reverse relation
|
||||
# .itemWeaponMelee_set.all()
|
||||
# .itemWeaponRanged_set.all()
|
||||
|
||||
#============= ARMOR ==============#
|
||||
# Reverse relation
|
||||
# .itemArmor_set.all()
|
||||
def armorSoak(self):
|
||||
armor = None
|
||||
modifier = 0
|
||||
try:
|
||||
armor = self.itemArmor_set.filter(equipped=True)
|
||||
except:
|
||||
pass
|
||||
if armor:
|
||||
for item in armor:
|
||||
modifier += item.soak
|
||||
return modifier
|
||||
def armorHardness(self):
|
||||
armor = None
|
||||
modifier = 0
|
||||
try:
|
||||
armor = self.itemArmor_set.filter(equipped=True)
|
||||
except:
|
||||
pass
|
||||
if armor:
|
||||
for item in armor:
|
||||
modifier += item.hardness
|
||||
return modifier
|
||||
def armorMobilityPenalty(self):
|
||||
armor = None
|
||||
modifier = 0
|
||||
try:
|
||||
armor = self.itemArmor_set.filter(equipped=True)
|
||||
except:
|
||||
pass
|
||||
if armor:
|
||||
for item in armor:
|
||||
modifier += item.mobilityPenalty
|
||||
return modifier
|
||||
|
||||
#============= ITEMS ==============#
|
||||
# Reverse relation
|
||||
# .item_set.all()
|
||||
|
||||
#============ ESSENCE =============#
|
||||
essence = NamedIntegerField("Essence")
|
||||
|
||||
#============= HEALTH =============#
|
||||
health0 = NamedIntegerField("'-0' Health Levels")
|
||||
health1 = NamedIntegerField("'-1' Health Levels")
|
||||
health2 = NamedIntegerField("'-2' Health Levels")
|
||||
healthIndex = NamedIntegerField("Health Track Index")
|
||||
def healthTrack(self):
|
||||
return ["Healthy"] + ["-0" for i in range(self.health0)] + ["-1" for i in range(self.health1)] + ["-1" for i in range(self.health1)] + ["-4", "i"]
|
||||
def healthLevel(self):
|
||||
return self.healthTrack()[self.healthIndex]
|
||||
|
||||
#============ STATICS =============#
|
||||
def resolve(self, speciality=None, mod=0):
|
||||
return mod + ceil((self.attributeWits() + self.abilityIntegrity()) / 2) + self.effectModifier("RESOLVE")
|
||||
|
||||
def guile(self, speciality=None, mod=0):
|
||||
return mod + ceil((self.attributeManipulation() + self.abilitySocialize()) / 2) + self.effectModifier("GUILE")
|
||||
|
||||
def soakNatural(self, mod=0):
|
||||
return mod + self.attributeStamina() + self.effectModifier("SOAK NATURAL")
|
||||
|
||||
def soakArmored(self, mod=0):
|
||||
return mod + self.armorSoak()
|
||||
|
||||
def soakTotal(self, mod=0):
|
||||
return mod + self.soakNatural() + self.soakArmored()
|
||||
|
||||
def hardness(self, mod=0):
|
||||
return mod + self.armorHardness() + self.effectModifier("HARDNESS")
|
||||
|
||||
def joinBattle(self, mod=0):
|
||||
return mod + self.attributeWits() + self.abilityAwareness() + 3 + self.effectModifier("JOIN BATTLE")
|
||||
|
||||
def evasion(self, mod=0):
|
||||
return mod + ceil((self.attributeDexterity() + self.abilityDodge()) / 2) - self.armorMobilityPenalty() + self.effectModifier("EVASION")
|
||||
|
||||
def rush(self, mod=0):
|
||||
return mod + self.attributeDexterity() + self.abilityAthletics() + self.effectModifier("RUSH")
|
||||
|
||||
def disengage(self, mod=0):
|
||||
return mod + self.attributeDexterity() + self.abilityDodge() + self.effectModifier("DISENGAGE")
|
||||
|
||||
class characterExaltBase(characterBase):
|
||||
#============= MOTES ==============#
|
||||
motesPersonalMax = NamedIntegerField("Maximum Personal Motes")
|
||||
motesPersonal = NamedIntegerField("Current Personal Motes")
|
||||
motesPeripheralMax = NamedIntegerField("Maximum Peripheral Motes")
|
||||
motesPeripheral = NamedIntegerField("Current Peripheral Motes")
|
||||
|
||||
#============= LIMIT ==============#
|
||||
limitTrigger = models.TextField(verbose_name="Limit Trigger", blank="False", max_length=1000)
|
||||
limitBreak = NamedIntegerField("Limit Break")
|
||||
|
||||
#======= EXALTED EXPERIENCE =======#
|
||||
experienceExaltedTotal = NamedIntegerField("Total Experience")
|
||||
experienceExalted = NamedIntegerField("Current Experience")
|
||||
|
||||
class characterMortal(characterBase):
|
||||
pass
|
||||
|
||||
class characterExaltSolar(characterExaltBase):
|
||||
#============= CHARMS =============#
|
||||
# Reverse relation
|
||||
# .charmSolar_set.all()
|
||||
|
||||
#======= SUPERNAL & FAVORED =======#
|
||||
abilitySupernal = SingleChoiceField("Supernal Ability", ABILITIES)
|
||||
abilityFavored = MultiChoiceField("Favoured Abilities", ABILITIES)
|
||||
|
||||
class characterExaltLunar(characterExaltBase):
|
||||
#========= SHAPESHIFTING ==========#
|
||||
# Reverse relation
|
||||
# .charmLunarShape_set.all()
|
||||
|
||||
#============= CHARMS =============#
|
||||
# Reverse relation
|
||||
# .charmLunar_set.all()
|
||||
|
||||
#============ FAVORED =============#
|
||||
attributeFavored = MultiChoiceField("Favoured Attributes", ATTRIBUTES)
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- ITEMS ------------------------------------#
|
||||
#==============================================================================#
|
||||
class itemBase(PolymorphicModel):
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
name = NameField()
|
||||
description = DescriptionField()
|
||||
character = NamedForeignKeyField("Character", characterBase)
|
||||
|
||||
class item(itemBase):
|
||||
pass
|
||||
|
||||
#==============================================================================#
|
||||
#---------------------------------- WEAPONS -----------------------------------#
|
||||
#==============================================================================#
|
||||
class itemWeaponBase(itemBase):
|
||||
equipped = NamedBooleanField("Equipped?")
|
||||
category = SingleChoiceField("Category", CATEGORIES)
|
||||
tags = MultiChoiceField("Tags", TAGS_WEAPONS)
|
||||
accuracy = NamedIntegerField("Accuracy")
|
||||
damage = NamedIntegerField("Damage")
|
||||
defense = NamedIntegerField("Defense")
|
||||
overwhelming = NamedIntegerField("Overwhelming")
|
||||
attunement = NamedIntegerField("Attunement")
|
||||
|
||||
class itemWeaponMelee(itemWeaponBase):
|
||||
def attack(self, ability, mod=0, withering=True):
|
||||
if withering:
|
||||
return mod + ability + self.dexterity + weapon.accuracy
|
||||
else:
|
||||
return mod + ability + self.dexterity
|
||||
def parry(self, ability, mod=0):
|
||||
if self.character.charmsActive():
|
||||
mod += sum([])
|
||||
return mod + ceil((self.dexterity + ability) / 2) + weapon.defense
|
||||
|
||||
class itemWeaponRanged(itemWeaponBase):
|
||||
rangeClose = NamedIntegerField("Close Range")
|
||||
rangeShort = NamedIntegerField("Short Range")
|
||||
rangeMedium = NamedIntegerField("Medium Range")
|
||||
rangeLong = NamedIntegerField("Long Range")
|
||||
rangeExtreme = NamedIntegerField("Extreme Range")
|
||||
def attack(self, ability, rangeBand, mod=0, withering=True):
|
||||
rangeBand = rangeBand.lower()
|
||||
if rangeBand == "close" or rangeBand == "c":
|
||||
rangeModifier = self.rangeClose
|
||||
elif rangeBand == "short" or rangeBand == "s":
|
||||
rangeModifier = self.rangeShort
|
||||
elif rangeBand == "medium" or rangeBand == "m":
|
||||
rangeModifier = self.rangeMedium
|
||||
elif rangeBand == "long" or rangeBand == "l":
|
||||
rangeModifier = self.rangeLong
|
||||
elif rangeBand == "extreme" or rangeBand == "e":
|
||||
rangeModifier = self.rangeExtreme
|
||||
else:
|
||||
rangeModifier = 0
|
||||
if withering:
|
||||
return mod + rangeModifier + ability + self.dexterity + weapon.accuracy
|
||||
else:
|
||||
return mod + rangeModifier + ability + self.dexterity
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- ARMOR ------------------------------------#
|
||||
#==============================================================================#
|
||||
class itemArmor(itemBase):
|
||||
equipped = NamedBooleanField("Equipped?")
|
||||
category = SingleChoiceField("Category", CATEGORIES)
|
||||
tags = MultiChoiceField("Tags", TAGS_ARMOR)
|
||||
soak = NamedIntegerField("Soak")
|
||||
hardness = NamedIntegerField("Hardness")
|
||||
mobilityPenalty = NamedIntegerField("Mobility Penalty")
|
||||
attunement = NamedIntegerField("Attunement")
|
||||
|
||||
#==============================================================================#
|
||||
#---------------------------------- EFFECTS -----------------------------------#
|
||||
#==============================================================================#
|
||||
|
||||
class effectBase(PolymorphicModel):
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
name = NameField()
|
||||
description = DescriptionField()
|
||||
character = NamedForeignKeyField("Character", characterExaltSolar)
|
||||
active = NamedBooleanField("Active?")
|
||||
rollConfiguration = NamedManyToManyField("Roll Configurations", rollConfiguration)
|
||||
modifiers = NamedManyToManyField("Modifiers", modifierBase)
|
||||
def modifier(self, keyword):
|
||||
output = 0
|
||||
for modifier in self.modifiers.all():
|
||||
if keyword == modifier.keyword:
|
||||
output += modifier.value
|
||||
return output
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- CHARMS -----------------------------------#
|
||||
#==============================================================================#
|
||||
class charmBase(effectBase):
|
||||
levelEssence = NamedIntegerField("Essence Level")
|
||||
|
||||
class charmMartialArt(charmBase):
|
||||
levelKey = NamedIntegerField("Martial Arts Level")
|
||||
key = None
|
||||
|
||||
class charmEvocation(charmBase):
|
||||
levelKey = 0
|
||||
key = NamedForeignKeyField("Artifact", itemBase)
|
||||
|
||||
class charmSolar(charmBase):
|
||||
levelKey = NamedIntegerField("Ability Level")
|
||||
key = SingleChoiceField("Key Ability", ABILITIES)
|
||||
|
||||
class charmLunar(charmBase):
|
||||
levelKey = NamedIntegerField("Attribute Level")
|
||||
key = SingleChoiceField("Key Attribute", ATTRIBUTES)
|
||||
|
||||
class charmLunarShape(charmBase):
|
||||
levelKey = 0
|
||||
key = None
|
||||
|
||||
#==============================================================================#
|
||||
#----------------------------------- MERITS -----------------------------------#
|
||||
#==============================================================================#
|
||||
class merit(effectBase):
|
||||
dots = DotField("Dots")
|
||||
|
||||
#==============================================================================#
|
||||
#-------------------------------- SPECIALITIES --------------------------------#
|
||||
#==============================================================================#
|
||||
class speciality(effectBase):
|
||||
pass
|
||||
#==============================================================================#
|
||||
#--------------------------------- INTIMACIES ---------------------------------#
|
||||
#==============================================================================#
|
||||
class intimacyBase(PolymorphicModel):
|
||||
def __str__(self):
|
||||
return "[{}] {}".format(self.description, self.intensity)
|
||||
|
||||
description = DescriptionField()
|
||||
intensity = SingleChoiceField("Intensity", INTENSITIES)
|
||||
character = NamedForeignKeyField("Character", characterBase)
|
||||
|
||||
class intimacyTie(intimacyBase):
|
||||
target = NamedCharField("Target")
|
||||
|
||||
class intimacyPrincipal(intimacyBase):
|
||||
pass
|
||||
|
Binary file not shown.
BIN
app/__pycache__/views.cpython-38.pyc
Normal file
BIN
app/__pycache__/views.cpython-38.pyc
Normal file
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
# Generated by Django 3.0.5 on 2020-04-12 13:10
|
||||
# Generated by Django 3.0.5 on 2020-04-13 00:12
|
||||
|
||||
import app.models
|
||||
from django.db import migrations, models
|
||||
@ -19,6 +19,8 @@ class Migration(migrations.Migration):
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', app.models.NameField(max_length=100, verbose_name='Name')),
|
||||
('player', models.CharField(blank=True, max_length=100, verbose_name='Player')),
|
||||
('concept', models.TextField(blank=True)),
|
||||
('strength', app.models.DotField(default=0, verbose_name='Strength')),
|
||||
('dexterity', app.models.DotField(default=0, verbose_name='Dexterity')),
|
||||
('stamina', app.models.DotField(default=0, verbose_name='Stamina')),
|
||||
@ -76,8 +78,6 @@ class Migration(migrations.Migration):
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', app.models.NameField(max_length=100, verbose_name='Name')),
|
||||
('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')),
|
||||
('active', app.models.NamedBooleanField(default=False, verbose_name='Active?')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.effectbase_set+', to='contenttypes.ContentType')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -89,8 +89,7 @@ class Migration(migrations.Migration):
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')),
|
||||
('intensity', app.models.SingleChoiceField(blank=True, choices=[('MINOR', 'Minor'), ('MAJOR', 'Major'), ('DEFINING', 'Defining')], max_length=100, verbose_name='Intensity')),
|
||||
('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character')),
|
||||
('intensity', app.models.SingleChoiceField(blank=True, choices=[('Minor', 'Minor'), ('Major', 'Major'), ('Defining', 'Defining')], max_length=100, verbose_name='Intensity')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.intimacybase_set+', to='contenttypes.ContentType')),
|
||||
],
|
||||
options={
|
||||
@ -104,7 +103,6 @@ class Migration(migrations.Migration):
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', app.models.NameField(max_length=100, verbose_name='Name')),
|
||||
('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')),
|
||||
('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.itembase_set+', to='contenttypes.ContentType')),
|
||||
],
|
||||
options={
|
||||
@ -124,18 +122,32 @@ class Migration(migrations.Migration):
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ownershipBase',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('notes', models.TextField(blank=True, verbose_name='Notes')),
|
||||
('active', app.models.NamedBooleanField(default=False, verbose_name='Active/Equipped?')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.ownershipbase_set+', to='contenttypes.ContentType')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='characterExaltBase',
|
||||
fields=[
|
||||
('characterbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterBase')),
|
||||
('anima', models.CharField(max_length=100, verbose_name='Anima')),
|
||||
('motesPersonalMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Personal Motes')),
|
||||
('motesPersonal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Personal Motes')),
|
||||
('motesPeripheralMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Peripheral Motes')),
|
||||
('motesPeripheral', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Peripheral Motes')),
|
||||
('limitTrigger', models.TextField(blank='False', max_length=1000, verbose_name='Limit Trigger')),
|
||||
('limitBreak', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Limit Break')),
|
||||
('experienceExaltedTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Experience')),
|
||||
('experienceExalted', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Experience')),
|
||||
('experienceExaltedTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Exalted Experience')),
|
||||
('experienceExalted', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Exalted Experience')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -159,7 +171,9 @@ class Migration(migrations.Migration):
|
||||
fields=[
|
||||
('effectbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.effectBase')),
|
||||
('levelEssence', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Essence Level')),
|
||||
('levelKey', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Key Level')),
|
||||
('charmType', app.models.SingleChoiceField(blank=True, choices=[('Permanent', 'Permanent'), ('Simple', 'Simple'), ('Reflexive', 'Reflexive'), ('Suplemental', 'Suplemental')], max_length=100, verbose_name='Charm Type')),
|
||||
('duration', app.models.SingleChoiceField(blank=True, choices=[('', ''), ('One Round', 'One Round'), ('One Scene', 'One Scene'), ('Indefinite', 'Indefinite')], max_length=100, verbose_name='Charm Duration')),
|
||||
('keywords', app.models.MultiChoiceField(blank=True, choices=[('Charms', (('Advantage', 'Advantage'), ('Attack-Action', 'Attack-Action'), ('Counterattack', 'Counterattack'), ('Form', 'Form'), ('Group', 'Group'), ('Mute', 'Mute'), ('Perilous', 'Perilous'), ('Once Per Scene', 'Once Per Scene'), ('Once Per Day', 'Once Per Day'), ('Once Per Story', 'Once Per Story'), ('Once Per Season', 'Once Per Season'), ('Pilot', 'Pilot'), ('Post-Roll', 'Post-Roll'), ('Psyche', 'Psyche'), ('Quickshot', 'Quickshot'))), ('Evocations', (('Dissonant', 'Dissonant'), ('Resonant', 'Resonant')))], max_length=100, verbose_name='Charm Keywords')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -205,9 +219,8 @@ class Migration(migrations.Migration):
|
||||
name='itemArmor',
|
||||
fields=[
|
||||
('itembase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.itemBase')),
|
||||
('equipped', app.models.NamedBooleanField(default=False, verbose_name='Equipped?')),
|
||||
('category', app.models.SingleChoiceField(blank=True, choices=[('L', 'Light'), ('M', 'Medium'), ('H', 'Heavy')], max_length=100, verbose_name='Category')),
|
||||
('tags', app.models.MultiChoiceField(blank=True, choices=[('BUOYANT', 'Buoyant'), ('CONCEALABLE', 'Concealable'), ('SILENT', 'Silent')], max_length=100, verbose_name='Tags')),
|
||||
('category', app.models.SingleChoiceField(blank=True, choices=[('Light', 'Light'), ('Medium', 'Medium'), ('Heavy', 'Heavy')], max_length=100, verbose_name='Category')),
|
||||
('tags', app.models.MultiChoiceField(blank=True, choices=[('Buoyant', 'Buoyant'), ('Concealable', 'Concealable'), ('Silent', 'Silent')], max_length=100, verbose_name='Tags')),
|
||||
('soak', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Soak')),
|
||||
('hardness', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Hardness')),
|
||||
('mobilityPenalty', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Mobility Penalty')),
|
||||
@ -223,9 +236,8 @@ class Migration(migrations.Migration):
|
||||
name='itemWeaponBase',
|
||||
fields=[
|
||||
('itembase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.itemBase')),
|
||||
('equipped', app.models.NamedBooleanField(default=False, verbose_name='Equipped?')),
|
||||
('category', app.models.SingleChoiceField(blank=True, choices=[('L', 'Light'), ('M', 'Medium'), ('H', 'Heavy')], max_length=100, verbose_name='Category')),
|
||||
('tags', app.models.MultiChoiceField(blank=True, choices=[('General', (('ONE HANDED', 'One Handed'), ('TWO HANDED', 'Two Handed'), ('BASHING', 'Bashing'), ('CONCEALABLE', 'Concealable'), ('LETHAL', 'Lethal'), ('MOUNTED', 'Mounted'), ('PIERCING', 'Piercing'), ('SPECIAL', 'Special'))), ('Melee', (('MELEE', 'Melee'), ('BALANCED', 'Balanced'), ('BRAWL', 'Brawl'), ('CHOPPING', 'Chopping'), ('DISARMING', 'Disarming'), ('FLEXIBLE', 'Flexible'), ('IMPROVISED', 'Improvised'), ('GRAPPLING', 'Grappling'), ('MARTIAL ARTS', 'Martial Arts'), ('NATURAL', 'Natural'), ('REACHING', 'Reaching'), ('SHIELD', 'Shield'), ('SMASHING', 'Smashing'), ('WORN', 'Worn'))), ('Thrown', (('THROWN', 'Occult'), ('CUTTING', 'Cutting'), ('POISONABLE', 'Poisonable'), ('SUBTLE', 'Subtle'))), ('Archery', (('ARCHERY', 'Archery'), ('CROSSBOW', 'Crossbow'), ('FLAME', 'Flame'), ('POWERFUL', 'Powerful'), ('SLOW', 'Slow')))], max_length=100, verbose_name='Tags')),
|
||||
('category', app.models.SingleChoiceField(blank=True, choices=[('Light', 'Light'), ('Medium', 'Medium'), ('Heavy', 'Heavy')], max_length=100, verbose_name='Category')),
|
||||
('tags', app.models.MultiChoiceField(blank=True, choices=[('General', (('One Handed', 'One Handed'), ('Two Handed', 'Two Handed'), ('Bashing', 'Bashing'), ('Concealable', 'Concealable'), ('Lethal', 'Lethal'), ('Mounted', 'Mounted'), ('Piercing', 'Piercing'), ('Special', 'Special'))), ('Melee', (('Melee', 'Melee'), ('Balanced', 'Balanced'), ('Brawl', 'Brawl'), ('Chopping', 'Chopping'), ('Disarming', 'Disarming'), ('Flexible', 'Flexible'), ('Improvised', 'Improvised'), ('Grappling', 'Grappling'), ('Martial Arts', 'Martial Arts'), ('Natural', 'Natural'), ('Reaching', 'Reaching'), ('Shield', 'Shield'), ('Smashing', 'Smashing'), ('Worn', 'Worn'))), ('Thrown', (('Occult', 'Occult'), ('Cutting', 'Cutting'), ('Poisonable', 'Poisonable'), ('Subtle', 'Subtle'))), ('Archery', (('Archery', 'Archery'), ('Crossbow', 'Crossbow'), ('Flame', 'Flame'), ('Powerful', 'Powerful'), ('Slow', 'Slow')))], max_length=100, verbose_name='Tags')),
|
||||
('accuracy', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Accuracy')),
|
||||
('damage', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Damage')),
|
||||
('defense', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Defense')),
|
||||
@ -254,7 +266,7 @@ class Migration(migrations.Migration):
|
||||
name='modifierAbility',
|
||||
fields=[
|
||||
('modifierbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.modifierBase')),
|
||||
('ability', app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Ability')),
|
||||
('keyword', app.models.SingleChoiceField(blank=True, choices=[('War', (('Archery', 'Archery'), ('Athletics', 'Athletics'), ('Awareness', 'Awareness'), ('Brawl', 'Brawl'), ('Dodge', 'Dodge'), ('Integrity', 'Integrity'), ('Melee', 'Melee'), ('Resistance', 'Resistance'), ('Thrown', 'Thrown'), ('War', 'War'))), ('Life', (('Craft', 'Craft'), ('Larceny', 'Larceny'), ('Linguistics', 'Linguistics'), ('Performance', 'Performance'), ('Presence', 'Presence'), ('Ride', 'Ride'), ('Sail', 'Sail'), ('Socialise', 'Socialise'), ('Stealth', 'Stealth'), ('Survival', 'Survival'))), ('Wisdom', (('Bureaucracy', 'Bureaucracy'), ('Investigation', 'Investigation'), ('Lore', 'Lore'), ('Medicine', 'Medicine'), ('Occult', 'Occult')))], max_length=100, verbose_name='Ability')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -266,7 +278,7 @@ class Migration(migrations.Migration):
|
||||
name='modifierAttribute',
|
||||
fields=[
|
||||
('modifierbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.modifierBase')),
|
||||
('attribute', app.models.SingleChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Attribute')),
|
||||
('keyword', app.models.SingleChoiceField(blank=True, choices=[('Physical', (('Strength', 'Strength'), ('Dexterity', 'Dexterity'), ('Stamina', 'Stamina'))), ('Social', (('Charisma', 'Charisma'), ('Manipulation', 'Manipulation'), ('Appearance', 'Appearance'))), ('Mental', (('Perception', 'Perception'), ('Intelligence', 'Intelligence'), ('Wits', 'Wits')))], max_length=100, verbose_name='Attribute')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -278,7 +290,7 @@ class Migration(migrations.Migration):
|
||||
name='modifierStatic',
|
||||
fields=[
|
||||
('modifierbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.modifierBase')),
|
||||
('static', app.models.SingleChoiceField(blank=True, choices=[('SOAK NATURAL', 'Natural Soak'), ('SOAK ARMORED', 'Armored Soak'), ('SOAK TOTAL', 'Total Soak'), ('HARDNESS', 'Hardness'), ('PARRY', 'Parry'), ('EVASION', 'Evasion'), ('RESOLVE', 'Resolve'), ('GUILE', 'Guile'), ('RUSH', 'Rush'), ('DISENGAGE', 'Disengage'), ('JOIN BATTLE', 'Join Battle')], max_length=100, verbose_name='Static')),
|
||||
('keyword', app.models.SingleChoiceField(blank=True, choices=[('Natural Soak', 'Natural Soak'), ('Armored Soak', 'Armored Soak'), ('Total Soak', 'Total Soak'), ('Hardness', 'Hardness'), ('Parry', 'Parry'), ('Evasion', 'Evasion'), ('Resolve', 'Resolve'), ('Guile', 'Guile'), ('Rush', 'Rush'), ('Disengage', 'Disengage'), ('Join Battle', 'Join Battle')], max_length=100, verbose_name='Static')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -303,16 +315,16 @@ class Migration(migrations.Migration):
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', app.models.NameField(max_length=100, verbose_name='Name')),
|
||||
('successesAuto', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Auto-Successes')),
|
||||
('r01', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=1, verbose_name='1s')),
|
||||
('r02', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=2, verbose_name='2s')),
|
||||
('r03', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=3, verbose_name='3s')),
|
||||
('r04', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=4, verbose_name='4s')),
|
||||
('r05', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=5, verbose_name='5s')),
|
||||
('r06', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['NONE'], max_length=100, number=6, verbose_name='6s')),
|
||||
('r07', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['SUCCESS'], max_length=100, number=7, verbose_name='7s')),
|
||||
('r08', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['SUCCESS'], max_length=100, number=8, verbose_name='8s')),
|
||||
('r09', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['SUCCESS'], max_length=100, number=9, verbose_name='9s')),
|
||||
('r10', app.models.DieField(choices=[('NONE', 'None'), ('SUCCESS', 'Success'), ('DOUBLE', 'Double'), ('EXPLODING_DISAPPEARING', 'Exploding / Disappearing'), ('SUBTRACTING', 'Subtracting')], default=['SUCCESS', 'DOUBLE'], max_length=100, number=10, verbose_name='10s')),
|
||||
('r01', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['NONE'], max_length=100, number=1, verbose_name='1s')),
|
||||
('r02', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['NONE'], max_length=100, number=2, verbose_name='2s')),
|
||||
('r03', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['NONE'], max_length=100, number=3, verbose_name='3s')),
|
||||
('r04', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['NONE'], max_length=100, number=4, verbose_name='4s')),
|
||||
('r05', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['NONE'], max_length=100, number=5, verbose_name='5s')),
|
||||
('r06', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['NONE'], max_length=100, number=6, verbose_name='6s')),
|
||||
('r07', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['SUCCESS'], max_length=100, number=7, verbose_name='7s')),
|
||||
('r08', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['SUCCESS'], max_length=100, number=8, verbose_name='8s')),
|
||||
('r09', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['SUCCESS'], max_length=100, number=9, verbose_name='9s')),
|
||||
('r10', app.models.DieField(choices=[('None', 'None'), ('Success', 'Success'), ('Double', 'Double'), ('Exploding / Disappearing', 'Exploding / Disappearing'), ('Subtracting', 'Subtracting')], default=['SUCCESS', 'DOUBLE'], max_length=100, number=10, verbose_name='10s')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.rollconfiguration_set+', to='contenttypes.ContentType')),
|
||||
],
|
||||
options={
|
||||
@ -320,6 +332,16 @@ class Migration(migrations.Migration):
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='effectbase',
|
||||
name='modifiers',
|
||||
field=app.models.NamedManyToManyField(blank=True, to='app.modifierBase', verbose_name='Modifiers'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='effectbase',
|
||||
name='polymorphic_ctype',
|
||||
field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.effectbase_set+', to='contenttypes.ContentType'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='effectbase',
|
||||
name='rollConfiguration',
|
||||
@ -329,7 +351,9 @@ class Migration(migrations.Migration):
|
||||
name='characterExaltLunar',
|
||||
fields=[
|
||||
('characterexaltbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterExaltBase')),
|
||||
('attributeFavored', app.models.MultiChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Favoured Attributes')),
|
||||
('caste', app.models.SingleChoiceField(blank=True, choices=[('Full Moon', 'Full Moon'), ('Changing Moon', 'Changing Moon'), ('No Moon', 'No Moon'), ('Castless', 'Castless')], max_length=100, verbose_name='Lunar Caste')),
|
||||
('spiritShape', models.CharField(max_length=100, verbose_name='Spirit Shape')),
|
||||
('attributeFavored', app.models.MultiChoiceField(blank=True, choices=[('Physical', (('Strength', 'Strength'), ('Dexterity', 'Dexterity'), ('Stamina', 'Stamina'))), ('Social', (('Charisma', 'Charisma'), ('Manipulation', 'Manipulation'), ('Appearance', 'Appearance'))), ('Mental', (('Perception', 'Perception'), ('Intelligence', 'Intelligence'), ('Wits', 'Wits')))], max_length=100, verbose_name='Favoured Attributes')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -341,8 +365,9 @@ class Migration(migrations.Migration):
|
||||
name='characterExaltSolar',
|
||||
fields=[
|
||||
('characterexaltbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.characterExaltBase')),
|
||||
('abilitySupernal', app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Supernal Ability')),
|
||||
('abilityFavored', app.models.MultiChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Favoured Abilities')),
|
||||
('caste', app.models.SingleChoiceField(blank=True, choices=[('Dawn', 'Dawn'), ('Zenith', 'Zenith'), ('Twilight', 'Twilight'), ('Night', 'Night'), ('Eclipse', 'Eclipse')], max_length=100, verbose_name='Solar Caste')),
|
||||
('abilitySupernal', app.models.SingleChoiceField(blank=True, choices=[('War', (('Archery', 'Archery'), ('Athletics', 'Athletics'), ('Awareness', 'Awareness'), ('Brawl', 'Brawl'), ('Dodge', 'Dodge'), ('Integrity', 'Integrity'), ('Melee', 'Melee'), ('Resistance', 'Resistance'), ('Thrown', 'Thrown'), ('War', 'War'))), ('Life', (('Craft', 'Craft'), ('Larceny', 'Larceny'), ('Linguistics', 'Linguistics'), ('Performance', 'Performance'), ('Presence', 'Presence'), ('Ride', 'Ride'), ('Sail', 'Sail'), ('Socialise', 'Socialise'), ('Stealth', 'Stealth'), ('Survival', 'Survival'))), ('Wisdom', (('Bureaucracy', 'Bureaucracy'), ('Investigation', 'Investigation'), ('Lore', 'Lore'), ('Medicine', 'Medicine'), ('Occult', 'Occult')))], max_length=100, verbose_name='Supernal Ability')),
|
||||
('abilityFavored', app.models.MultiChoiceField(blank=True, choices=[('War', (('Archery', 'Archery'), ('Athletics', 'Athletics'), ('Awareness', 'Awareness'), ('Brawl', 'Brawl'), ('Dodge', 'Dodge'), ('Integrity', 'Integrity'), ('Melee', 'Melee'), ('Resistance', 'Resistance'), ('Thrown', 'Thrown'), ('War', 'War'))), ('Life', (('Craft', 'Craft'), ('Larceny', 'Larceny'), ('Linguistics', 'Linguistics'), ('Performance', 'Performance'), ('Presence', 'Presence'), ('Ride', 'Ride'), ('Sail', 'Sail'), ('Socialise', 'Socialise'), ('Stealth', 'Stealth'), ('Survival', 'Survival'))), ('Wisdom', (('Bureaucracy', 'Bureaucracy'), ('Investigation', 'Investigation'), ('Lore', 'Lore'), ('Medicine', 'Medicine'), ('Occult', 'Occult')))], max_length=100, verbose_name='Favoured Abilities')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
@ -350,6 +375,55 @@ class Migration(migrations.Migration):
|
||||
},
|
||||
bases=('app.characterexaltbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmLunar',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
('levelKey', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Attribute Level')),
|
||||
('key', app.models.SingleChoiceField(blank=True, choices=[('Physical', (('Strength', 'Strength'), ('Dexterity', 'Dexterity'), ('Stamina', 'Stamina'))), ('Social', (('Charisma', 'Charisma'), ('Manipulation', 'Manipulation'), ('Appearance', 'Appearance'))), ('Mental', (('Perception', 'Perception'), ('Intelligence', 'Intelligence'), ('Wits', 'Wits')))], max_length=100, verbose_name='Key Attribute')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.charmbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmLunarShape',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.charmbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmMartialArt',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
('levelKey', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Martial Arts Level')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.charmbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmSolar',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
('levelKey', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Ability Level')),
|
||||
('key', app.models.SingleChoiceField(blank=True, choices=[('War', (('Archery', 'Archery'), ('Athletics', 'Athletics'), ('Awareness', 'Awareness'), ('Brawl', 'Brawl'), ('Dodge', 'Dodge'), ('Integrity', 'Integrity'), ('Melee', 'Melee'), ('Resistance', 'Resistance'), ('Thrown', 'Thrown'), ('War', 'War'))), ('Life', (('Craft', 'Craft'), ('Larceny', 'Larceny'), ('Linguistics', 'Linguistics'), ('Performance', 'Performance'), ('Presence', 'Presence'), ('Ride', 'Ride'), ('Sail', 'Sail'), ('Socialise', 'Socialise'), ('Stealth', 'Stealth'), ('Survival', 'Survival'))), ('Wisdom', (('Bureaucracy', 'Bureaucracy'), ('Investigation', 'Investigation'), ('Lore', 'Lore'), ('Medicine', 'Medicine'), ('Occult', 'Occult')))], max_length=100, verbose_name='Key Ability')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.charmbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='itemWeaponMelee',
|
||||
fields=[
|
||||
@ -377,91 +451,167 @@ class Migration(migrations.Migration):
|
||||
},
|
||||
bases=('app.itemweaponbase',),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='effectbase',
|
||||
name='modifierAbility',
|
||||
field=app.models.NamedManyToManyField(blank=True, to='app.modifierAbility', verbose_name='Abilities Modifiers'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='effectbase',
|
||||
name='modifierAttribute',
|
||||
field=app.models.NamedManyToManyField(blank=True, to='app.modifierAttribute', verbose_name='Attribute Modifiers'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='effectbase',
|
||||
name='modifierStatic',
|
||||
field=app.models.NamedManyToManyField(blank=True, to='app.modifierStatic', verbose_name='Statics Modifiers'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='artifactBase',
|
||||
name='ownershipSpeciality',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', app.models.NameField(max_length=100, verbose_name='Name')),
|
||||
('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')),
|
||||
('item', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.itemBase', verbose_name='Item')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.artifactbase_set+', to='contenttypes.ContentType')),
|
||||
('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltBase', verbose_name='Character')),
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipSpeciality_set', to='app.characterBase', verbose_name='Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipSpecialityTarget_set', to='app.speciality', verbose_name='Speciality')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmSolar',
|
||||
name='ownershipMerit',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
('ability', app.models.SingleChoiceField(blank=True, choices=[('War', (('ARCHERY', 'Archery'), ('ATHLETICS', 'Athletics'), ('AWARENESS', 'Awareness'), ('BRAWL', 'Brawl'), ('DODGE', 'Dodge'), ('INTEGRITY', 'Integrity'), ('MELEE', 'Melee'), ('RESISTANCE', 'Resistance'), ('THROWN', 'Thrown'), ('WAR', 'War'))), ('Life', (('CRAFT', 'Craft'), ('LARCENY', 'Larceny'), ('LINGUISTICS', 'Linguistics'), ('PERFORMANCE', 'Performance'), ('PRESENCE', 'Presence'), ('RIDE', 'Ride'), ('SAIL', 'Sail'), ('SOCIALISE', 'Socialise'), ('STEALTH', 'Stealth'), ('SURVIVAL', 'Survival'))), ('Wisdom', (('BUREAUCRACY', 'Bureaucracy'), ('INVESTIGATION', 'Investigation'), ('LORE', 'Lore'), ('MEDICINE', 'Medicine'), ('OCCULT', 'Occult')))], max_length=100, verbose_name='Key Ability')),
|
||||
('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltSolar', verbose_name='Character')),
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipMerit_set', to='app.characterBase', verbose_name='Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipMeritTarget_set', to='app.merit', verbose_name='Merit')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.charmbase',),
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmMartialArt',
|
||||
name='ownershipItemWeapon',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltBase', verbose_name='Characer')),
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipItemWeapon_set', to='app.characterBase', verbose_name='Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipItemWeaponTarget_set', to='app.itemWeaponBase', verbose_name='Weapon')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.charmbase',),
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmLunarShape',
|
||||
name='ownershipItemArmor',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltLunar', verbose_name='Character')),
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipItemArmor_set', to='app.characterBase', verbose_name='Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipItemArmorTarget_set', to='app.itemArmor', verbose_name='Armor')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.charmbase',),
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmLunar',
|
||||
name='ownershipItem',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
('attribute', app.models.SingleChoiceField(blank=True, choices=[('Physical', (('STR', 'Strength'), ('DEX', 'Dexterity'), ('STA', 'Stamina'))), ('Social', (('CHA', 'Charisma'), ('MAN', 'Manipulation'), ('APP', 'Appearance'))), ('Mental', (('PER', 'Perception'), ('INT', 'Intelligence'), ('WIT', 'Wits')))], max_length=100, verbose_name='Key Attribute')),
|
||||
('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterExaltLunar', verbose_name='Character')),
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipItem_set', to='app.characterBase', verbose_name='Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipItemTarget_set', to='app.item', verbose_name='Item')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.charmbase',),
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='artifactEvocation',
|
||||
name='ownershipIntimacyTie',
|
||||
fields=[
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyTie_set', to='app.characterBase', verbose_name='Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyTieTarget_set', to='app.intimacyTie', verbose_name='Tie')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ownershipIntimacyPrincipal',
|
||||
fields=[
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyPrincipal_set', to='app.characterBase', verbose_name='Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyPrincipalTarget_set', to='app.intimacyPrincipal', verbose_name='Principal')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ownershipCharmMartialArt',
|
||||
fields=[
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArt_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArtTarget_set', to='app.characterExaltBase', verbose_name='Martial Arts Charm')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ownershipCharmEvocation',
|
||||
fields=[
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocation_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocationTarget_set', to='app.characterExaltBase', verbose_name='Evocation')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ownershipCharmSolar',
|
||||
fields=[
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolar_set', to='app.characterExaltSolar', verbose_name='Solar Exalted Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolarTarget_set', to='app.characterExaltSolar', verbose_name='Solar Charm')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ownershipCharmLunarShape',
|
||||
fields=[
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShape_set', to='app.characterExaltLunar', verbose_name='Lunar Exalted Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShapeTarget_set', to='app.characterExaltLunar', verbose_name='Lunar Shape')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ownershipCharmLunar',
|
||||
fields=[
|
||||
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
|
||||
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunar_set', to='app.characterExaltLunar', verbose_name='Lunar Exalted Owner')),
|
||||
('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarTarget_set', to='app.characterExaltLunar', verbose_name='Lunar Charm')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'base_manager_name': 'objects',
|
||||
},
|
||||
bases=('app.ownershipbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='charmEvocation',
|
||||
fields=[
|
||||
('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
|
||||
('artifact', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.artifactBase', verbose_name='Artifact')),
|
||||
('key', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.itemBase', verbose_name='Artifact')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
|
19
app/migrations/0002_characterexaltbase_motescommitted.py
Normal file
19
app/migrations/0002_characterexaltbase_motescommitted.py
Normal file
@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.0.5 on 2020-04-13 13:15
|
||||
|
||||
import app.models
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('app', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='characterexaltbase',
|
||||
name='motesCommitted',
|
||||
field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Committed Motes'),
|
||||
),
|
||||
]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
116
app/models.py
116
app/models.py
@ -812,10 +812,42 @@ class characterBase(PolymorphicModel):
|
||||
pass
|
||||
return output
|
||||
|
||||
#=========== INTIMACIES ===========#
|
||||
# Reverse relation
|
||||
def intimacyTieSet(self):
|
||||
output = []
|
||||
try:
|
||||
ownerships = self.ownershipIntimacyTie_set.all()
|
||||
for ownership in ownerships:
|
||||
output.append(ownership.target)
|
||||
except:
|
||||
pass
|
||||
return output
|
||||
# Reverse relation
|
||||
def intimacyPrincipalSet(self):
|
||||
output = []
|
||||
try:
|
||||
ownerships = self.ownershipIntimacyPrincipal_set.all()
|
||||
for ownership in ownerships:
|
||||
output.append(ownership.target)
|
||||
except:
|
||||
pass
|
||||
return output
|
||||
def intimacySet(self):
|
||||
return self.intimacyTieSet() + self.intimacyPrincipalSet()
|
||||
|
||||
#=========== WILLPOWER ============#
|
||||
willpowerCap = 10
|
||||
willpowerMax = NamedIntegerField("Maximum Willpower")
|
||||
willpower = NamedIntegerField("Current Willpower")
|
||||
def dotsTriWillpower(self):
|
||||
output = [0 for i in range(10)]
|
||||
for i in range(10):
|
||||
if i < self.willpowerMax and i >= self.willpower:
|
||||
output[i] = 1
|
||||
elif i < self.willpower:
|
||||
output[i] = 2
|
||||
return output
|
||||
|
||||
|
||||
#=========== EXPERIENCE ===========#
|
||||
experienceTotal = NamedIntegerField("Total Experience")
|
||||
@ -892,6 +924,13 @@ class characterBase(PolymorphicModel):
|
||||
|
||||
#============ ESSENCE =============#
|
||||
essence = NamedIntegerField("Essence")
|
||||
def dotsEssence(self):
|
||||
output = []
|
||||
for i in range(self.essence):
|
||||
output.append(True)
|
||||
for i in range(5 - self.essence):
|
||||
output.append(False)
|
||||
return output
|
||||
|
||||
#============= HEALTH =============#
|
||||
health0 = NamedIntegerField("'-0' Health Levels")
|
||||
@ -942,10 +981,16 @@ class characterExaltBase(characterBase):
|
||||
motesPersonal = NamedIntegerField("Current Personal Motes")
|
||||
motesPeripheralMax = NamedIntegerField("Maximum Peripheral Motes")
|
||||
motesPeripheral = NamedIntegerField("Current Peripheral Motes")
|
||||
motesCommitted = NamedIntegerField("Committed Motes")
|
||||
|
||||
#============= LIMIT ==============#
|
||||
limitTrigger = models.TextField(verbose_name="Limit Trigger", blank="False", max_length=1000)
|
||||
limitBreak = NamedIntegerField("Limit Break")
|
||||
def dotsLimit(self):
|
||||
output = [False for i in range(10)]
|
||||
for i in range(10):
|
||||
output[i] = i < self.limitBreak
|
||||
return output
|
||||
|
||||
#======= EXALTED EXPERIENCE =======#
|
||||
experienceExaltedTotal = NamedIntegerField("Total Exalted Experience")
|
||||
@ -1187,40 +1232,43 @@ class ownershipBase(PolymorphicModel):
|
||||
notes = models.TextField(verbose_name="Notes", blank=True)
|
||||
active = NamedBooleanField("Active/Equipped?")
|
||||
|
||||
class ownershipCharacterBase(ownershipBase):
|
||||
owner = NamedForeignKeyField("Owner", characterBase)
|
||||
class ownershipCharacterExaltBase(ownershipBase):
|
||||
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase)
|
||||
class ownershipCharacterExaltSolarBase(ownershipBase):
|
||||
owner = NamedForeignKeyField("Solar Exalted Owner", characterExaltSolar)
|
||||
class ownershipCharacterExaltLunarBase(ownershipBase):
|
||||
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar)
|
||||
class ownershipItem(ownershipBase):
|
||||
target = NamedForeignKeyField("Item", item, related_name="ownershipItemTarget_set")
|
||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipItem_set")
|
||||
class ownershipItemWeapon(ownershipBase):
|
||||
target = NamedForeignKeyField("Weapon", itemWeaponBase, related_name="ownershipItemWeaponTarget_set")
|
||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipItemWeapon_set")
|
||||
class ownershipItemArmor(ownershipBase):
|
||||
target = NamedForeignKeyField("Armor", itemArmor, related_name="ownershipItemArmorTarget_set")
|
||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipItemArmor_set")
|
||||
|
||||
class ownershipItem(ownershipCharacterBase):
|
||||
target = NamedForeignKeyField("Item", item)
|
||||
class ownershipItemWeapon(ownershipCharacterBase):
|
||||
target = NamedForeignKeyField("Weapon", itemWeaponBase)
|
||||
class ownershipItemArmor(ownershipCharacterBase):
|
||||
target = NamedForeignKeyField("Armor", itemArmor)
|
||||
class ownershipCharmMartialArt(ownershipBase):
|
||||
target = NamedForeignKeyField("Martial Arts Charm", characterExaltBase, related_name="ownershipCharmMartialArtTarget_set")
|
||||
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase, related_name="ownershipCharmMartialArt_set")
|
||||
class ownershipCharmEvocation(ownershipBase):
|
||||
target = NamedForeignKeyField("Evocation", characterExaltBase, related_name="ownershipCharmEvocationTarget_set")
|
||||
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase, related_name="ownershipCharmEvocation_set")
|
||||
class ownershipCharmSolar(ownershipBase):
|
||||
target = NamedForeignKeyField("Solar Charm", characterExaltSolar, related_name="ownershipCharmSolarTarget_set")
|
||||
owner = NamedForeignKeyField("Solar Exalted Owner", characterExaltSolar, related_name="ownershipCharmSolar_set")
|
||||
class ownershipCharmLunar(ownershipBase):
|
||||
target = NamedForeignKeyField("Lunar Charm", characterExaltLunar, related_name="ownershipCharmLunarTarget_set")
|
||||
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar, related_name="ownershipCharmLunar_set")
|
||||
class ownershipCharmLunarShape(ownershipBase):
|
||||
target = NamedForeignKeyField("Lunar Shape", characterExaltLunar, related_name="ownershipCharmLunarShapeTarget_set")
|
||||
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar, related_name="ownershipCharmLunarShape_set")
|
||||
|
||||
class ownershipCharmMartialArt(ownershipCharacterExaltBase):
|
||||
target = NamedForeignKeyField("Martial Arts Charm", characterExaltBase)
|
||||
class ownershipCharmEvocation(ownershipCharacterExaltBase):
|
||||
target = NamedForeignKeyField("Evocation", characterExaltBase)
|
||||
class ownershipCharmSolar(ownershipCharacterExaltSolarBase):
|
||||
target = NamedForeignKeyField("Solar Charm", characterExaltSolar)
|
||||
class ownershipCharmLunar(ownershipCharacterExaltLunarBase):
|
||||
target = NamedForeignKeyField("Lunar Charm", characterExaltLunar)
|
||||
class ownershipCharmLunarShape(ownershipCharacterExaltLunarBase):
|
||||
target = NamedForeignKeyField("Lunar Shape", characterExaltLunar)
|
||||
class ownershipMerit(ownershipBase):
|
||||
target = NamedForeignKeyField("Merit", merit, related_name="ownershipMeritTarget_set")
|
||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipMerit_set")
|
||||
|
||||
class ownershipMerit(ownershipCharacterBase):
|
||||
target = NamedForeignKeyField("Merit", merit)
|
||||
class ownershipSpeciality(ownershipBase):
|
||||
target = NamedForeignKeyField("Speciality", speciality, related_name="ownershipSpecialityTarget_set")
|
||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipSpeciality_set")
|
||||
|
||||
class ownershipSpeciality(ownershipCharacterBase):
|
||||
target = NamedForeignKeyField("Speciality", speciality)
|
||||
|
||||
class ownershipIntimacyTie(ownershipCharacterBase):
|
||||
target = NamedForeignKeyField("Tie", intimacyTie)
|
||||
class ownershipIntimacyPrincipal(ownershipCharacterBase):
|
||||
target = NamedForeignKeyField("Principal", intimacyPrincipal)
|
||||
class ownershipIntimacyTie(ownershipBase):
|
||||
target = NamedForeignKeyField("Tie", intimacyTie, related_name="ownershipIntimacyTieTarget_set")
|
||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipIntimacyTie_set")
|
||||
class ownershipIntimacyPrincipal(ownershipBase):
|
||||
target = NamedForeignKeyField("Principal", intimacyPrincipal, related_name="ownershipIntimacyPrincipalTarget_set")
|
||||
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipIntimacyPrincipal_set")
|
||||
|
Binary file not shown.
@ -25,7 +25,7 @@ SECRET_KEY = '1ry9e5wz$6(c-)btw70c41woraos)5nzqfbw2^kvpzpi)gy#6v'
|
||||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = True
|
||||
|
||||
ALLOWED_HOSTS = []
|
||||
ALLOWED_HOSTS = ["192.168.1.205", "localhost", "127.0.0.1"]
|
||||
|
||||
|
||||
# Application definition
|
||||
|
BIN
static/css/MarcellusSC-Regular.ttf
Normal file
BIN
static/css/MarcellusSC-Regular.ttf
Normal file
Binary file not shown.
320
static/css/w3.css
Normal file
320
static/css/w3.css
Normal file
@ -0,0 +1,320 @@
|
||||
/* Fancy */
|
||||
.fancy {
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
.fancy span {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.fancy span:before,
|
||||
.fancy span:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 15px;
|
||||
border-bottom: 2px solid #40545c;
|
||||
top: 0;
|
||||
width: 600px;
|
||||
}
|
||||
.fancy span:before {
|
||||
right: 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
.fancy span:after {
|
||||
left: 100%;
|
||||
margin-left: 7px;
|
||||
}
|
||||
.fancy-small {
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
.fancy-small span {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.fancy-small span:before,
|
||||
.fancy-small span:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 11px;
|
||||
border-bottom: 2px solid #40545c;
|
||||
top: 0;
|
||||
width: 600px;
|
||||
}
|
||||
.fancy-small span:before {
|
||||
right: 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
.fancy-small span:after {
|
||||
left: 100%;
|
||||
margin-left: 7px;
|
||||
}
|
||||
.fancy-big {
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
.fancy-big span {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.fancy-big span:before,
|
||||
.fancy-big span:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 38px;
|
||||
border-bottom: 4px solid #40545c;
|
||||
top: 0;
|
||||
width: 600px;
|
||||
}
|
||||
.fancy-big span:before {
|
||||
right: 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
.fancy-big span:after {
|
||||
left: 100%;
|
||||
margin-left: 7px;
|
||||
}
|
||||
|
||||
/* W3.CSS 4.13 June 2019 by Jan Egil and Borge Refsnes */
|
||||
html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
|
||||
/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
|
||||
html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
|
||||
article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}
|
||||
audio,canvas,progress,video{display:inline-block}progress{vertical-align:baseline}
|
||||
audio:not([controls]){display:none;height:0}[hidden],template{display:none}
|
||||
a{background-color:transparent}a:active,a:hover{outline-width:0}
|
||||
abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
|
||||
b,strong{font-weight:bolder}dfn{font-style:italic}mark{background:#ff0;color:#000}
|
||||
small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
|
||||
sub{bottom:-0.25em}sup{top:-0.5em}figure{margin:1em 40px}img{border-style:none}
|
||||
code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}
|
||||
button,input,select,textarea,optgroup{font:inherit;margin:0}optgroup{font-weight:bold}
|
||||
button,input{overflow:visible}button,select{text-transform:none}
|
||||
button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}
|
||||
button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}
|
||||
button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}
|
||||
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
|
||||
legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}
|
||||
[type=checkbox],[type=radio]{padding:0}
|
||||
[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
|
||||
[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
|
||||
[type=search]::-webkit-search-decoration{-webkit-appearance:none}
|
||||
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
|
||||
/* End extract */
|
||||
html,body{font-family:'Marcellus SC',serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}
|
||||
h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.w3-serif{font-family:'Marcellus SC',serif}
|
||||
h1,h2,h3,h4,h5,h6{font-family:'Marcellus SC',serif;font-weight:400;margin:10px 0}.w3-wide{letter-spacing:4px}
|
||||
hr{border:0;border-top:1px solid #eee;margin:20px 0}
|
||||
.w3-image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
|
||||
.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:1px solid #ccc}
|
||||
.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
|
||||
.w3-table-all tr:nth-child(odd){background-color:#fff}.w3-table-all tr:nth-child(even){background-color:#f1f1f1}
|
||||
.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}.w3-centered tr th,.w3-centered tr td{text-align:center}
|
||||
.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
|
||||
.w3-table th:first-child,.w3-table td:first-child,.w3-table-all th:first-child,.w3-table-all td:first-child{padding-left:16px}
|
||||
.w3-btn,.w3-button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
|
||||
.w3-btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
|
||||
.w3-btn,.w3-button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
|
||||
.w3-disabled,.w3-btn:disabled,.w3-button:disabled{cursor:not-allowed;opacity:0.3}.w3-disabled *,:disabled *{pointer-events:none}
|
||||
.w3-btn.w3-disabled:hover,.w3-btn:disabled:hover{box-shadow:none}
|
||||
.w3-badge,.w3-tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.w3-badge{border-radius:50%}
|
||||
.w3-ul{list-style-type:none;padding:0;margin:0}.w3-ul li{padding:8px 16px;border-bottom:1px solid #ddd}.w3-ul li:last-child{border-bottom:none}
|
||||
.w3-tooltip,.w3-display-container{position:relative}.w3-tooltip .w3-text{display:none}.w3-tooltip:hover .w3-text{display:inline-block}
|
||||
.w3-ripple:active{opacity:0.5}.w3-ripple{transition:opacity 0s}
|
||||
.w3-input{padding:8px;display:block;border:none;border-bottom:1px solid #ccc;width:100%}
|
||||
.w3-select{padding:9px 0;width:100%;border:none;border-bottom:1px solid #ccc}
|
||||
.w3-dropdown-click,.w3-dropdown-hover{position:relative;display:inline-block;cursor:pointer}
|
||||
.w3-dropdown-hover:hover .w3-dropdown-content{display:block}
|
||||
.w3-dropdown-hover:first-child,.w3-dropdown-click:hover{background-color:#ccc;color:#000}
|
||||
.w3-dropdown-hover:hover > .w3-button:first-child,.w3-dropdown-click:hover > .w3-button:first-child{background-color:#ccc;color:#000}
|
||||
.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
|
||||
.w3-check,.w3-radio{width:24px;height:24px;position:relative;top:6px}
|
||||
.w3-sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
|
||||
.w3-bar-block .w3-dropdown-hover,.w3-bar-block .w3-dropdown-click{width:100%}
|
||||
.w3-bar-block .w3-dropdown-hover .w3-dropdown-content,.w3-bar-block .w3-dropdown-click .w3-dropdown-content{min-width:100%}
|
||||
.w3-bar-block .w3-dropdown-hover .w3-button,.w3-bar-block .w3-dropdown-click .w3-button{width:100%;text-align:left;padding:8px 16px}
|
||||
.w3-main,#main{transition:margin-left .4s}
|
||||
.w3-modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
|
||||
.w3-modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
|
||||
.w3-bar{width:100%;overflow:hidden}.w3-center .w3-bar{display:inline-block;width:auto}
|
||||
.w3-bar .w3-bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
|
||||
.w3-bar .w3-dropdown-hover,.w3-bar .w3-dropdown-click{position:static;float:left}
|
||||
.w3-bar .w3-button{white-space:normal}
|
||||
.w3-bar-block .w3-bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
|
||||
.w3-bar-block.w3-center .w3-bar-item{text-align:center}.w3-block{display:block;width:100%}
|
||||
.w3-responsive{display:block;overflow-x:auto}
|
||||
.w3-container:after,.w3-container:before,.w3-panel:after,.w3-panel:before,.w3-row:after,.w3-row:before,.w3-row-padding:after,.w3-row-padding:before,
|
||||
.w3-cell-row:before,.w3-cell-row:after,.w3-clear:after,.w3-clear:before,.w3-bar:before,.w3-bar:after{content:"";display:table;clear:both}
|
||||
.w3-col,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{float:left;width:100%}
|
||||
.w3-col.s1{width:8.33333%}.w3-col.s2{width:16.66666%}.w3-col.s3{width:24.99999%}.w3-col.s4{width:33.33333%}
|
||||
.w3-col.s5{width:41.66666%}.w3-col.s6{width:49.99999%}.w3-col.s7{width:58.33333%}.w3-col.s8{width:66.66666%}
|
||||
.w3-col.s9{width:74.99999%}.w3-col.s10{width:83.33333%}.w3-col.s11{width:91.66666%}.w3-col.s12{width:99.99999%}
|
||||
@media (min-width:601px){.w3-col.m1{width:8.33333%}.w3-col.m2{width:16.66666%}.w3-col.m3,.w3-quarter{width:24.99999%}.w3-col.m4,.w3-third{width:33.33333%}
|
||||
.w3-col.m5{width:41.66666%}.w3-col.m6,.w3-half{width:49.99999%}.w3-col.m7{width:58.33333%}.w3-col.m8,.w3-twothird{width:66.66666%}
|
||||
.w3-col.m9,.w3-threequarter{width:74.99999%}.w3-col.m10{width:83.33333%}.w3-col.m11{width:91.66666%}.w3-col.m12{width:99.99999%}}
|
||||
@media (min-width:993px){.w3-col.l1{width:8.33333%}.w3-col.l2{width:16.66666%}.w3-col.l3{width:24.99999%}.w3-col.l4{width:33.33333%}
|
||||
.w3-col.l5{width:41.66666%}.w3-col.l6{width:49.99999%}.w3-col.l7{width:58.33333%}.w3-col.l8{width:66.66666%}
|
||||
.w3-col.l9{width:74.99999%}.w3-col.l10{width:83.33333%}.w3-col.l11{width:91.66666%}.w3-col.l12{width:99.99999%}}
|
||||
.w3-rest{overflow:hidden}.w3-stretch{margin-left:-16px;margin-right:-16px}
|
||||
.w3-content,.w3-auto{margin-left:auto;margin-right:auto}.w3-content{max-width:980px}.w3-auto{max-width:1140px}
|
||||
.w3-cell-row{display:table;width:100%}.w3-cell{display:table-cell}
|
||||
.w3-cell-top{vertical-align:top}.w3-cell-middle{vertical-align:middle}.w3-cell-bottom{vertical-align:bottom}
|
||||
.w3-hide{display:none!important}.w3-show-block,.w3-show{display:block!important}.w3-show-inline-block{display:inline-block!important}
|
||||
@media (max-width:1205px){.w3-auto{max-width:95%}}
|
||||
@media (max-width:600px){.w3-modal-content{margin:0 10px;width:auto!important}.w3-modal{padding-top:30px}
|
||||
.w3-dropdown-hover.w3-mobile .w3-dropdown-content,.w3-dropdown-click.w3-mobile .w3-dropdown-content{position:relative}
|
||||
.w3-hide-small{display:none!important}.w3-mobile{display:block;width:100%!important}.w3-bar-item.w3-mobile,.w3-dropdown-hover.w3-mobile,.w3-dropdown-click.w3-mobile{text-align:center}
|
||||
.w3-dropdown-hover.w3-mobile,.w3-dropdown-hover.w3-mobile .w3-btn,.w3-dropdown-hover.w3-mobile .w3-button,.w3-dropdown-click.w3-mobile,.w3-dropdown-click.w3-mobile .w3-btn,.w3-dropdown-click.w3-mobile .w3-button{width:100%}}
|
||||
@media (max-width:768px){.w3-modal-content{width:500px}.w3-modal{padding-top:50px}}
|
||||
@media (min-width:993px){.w3-modal-content{width:900px}.w3-hide-large{display:none!important}.w3-sidebar.w3-collapse{display:block!important}}
|
||||
@media (max-width:992px) and (min-width:601px){.w3-hide-medium{display:none!important}}
|
||||
@media (max-width:992px){.w3-sidebar.w3-collapse{display:none}.w3-main{margin-left:0!important;margin-right:0!important}.w3-auto{max-width:100%}}
|
||||
.w3-top,.w3-bottom{position:fixed;width:100%;z-index:1}.w3-top{top:0}.w3-bottom{bottom:0}
|
||||
.w3-overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
|
||||
.w3-display-topleft{position:absolute;left:0;top:0}.w3-display-topright{position:absolute;right:0;top:0}
|
||||
.w3-display-bottomleft{position:absolute;left:0;bottom:0}.w3-display-bottomright{position:absolute;right:0;bottom:0}
|
||||
.w3-display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
|
||||
.w3-display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
|
||||
.w3-display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
|
||||
.w3-display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
|
||||
.w3-display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
|
||||
.w3-display-container:hover .w3-display-hover{display:block}.w3-display-container:hover span.w3-display-hover{display:inline-block}.w3-display-hover{display:none}
|
||||
.w3-display-position{position:absolute}
|
||||
.w3-circle{border-radius:50%}
|
||||
.w3-round-small{border-radius:2px}.w3-round,.w3-round-medium{border-radius:4px}.w3-round-large{border-radius:8px}.w3-round-xlarge{border-radius:16px}.w3-round-xxlarge{border-radius:32px}
|
||||
.w3-row-padding,.w3-row-padding>.w3-half,.w3-row-padding>.w3-third,.w3-row-padding>.w3-twothird,.w3-row-padding>.w3-threequarter,.w3-row-padding>.w3-quarter,.w3-row-padding>.w3-col{padding:0 8px}
|
||||
.w3-container,.w3-panel{padding:0.01em 16px}.w3-panel{margin-top:16px;margin-bottom:16px}
|
||||
.w3-code,.w3-codespan{font-family:Consolas,"courier new";font-size:16px}
|
||||
.w3-code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
|
||||
.w3-codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
|
||||
.w3-card,.w3-card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}
|
||||
.w3-card-4,.w3-hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
|
||||
.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
|
||||
.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
|
||||
.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
|
||||
.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
|
||||
.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
|
||||
.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
|
||||
.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
|
||||
.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
|
||||
.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important}
|
||||
.w3-opacity,.w3-hover-opacity:hover{opacity:0.60}.w3-opacity-off,.w3-hover-opacity-off:hover{opacity:1}
|
||||
.w3-opacity-max{opacity:0.25}.w3-opacity-min{opacity:0.75}
|
||||
.w3-greyscale-max,.w3-grayscale-max,.w3-hover-greyscale:hover,.w3-hover-grayscale:hover{filter:grayscale(100%)}
|
||||
.w3-greyscale,.w3-grayscale{filter:grayscale(75%)}.w3-greyscale-min,.w3-grayscale-min{filter:grayscale(50%)}
|
||||
.w3-sepia{filter:sepia(75%)}.w3-sepia-max,.w3-hover-sepia:hover{filter:sepia(100%)}.w3-sepia-min{filter:sepia(50%)}
|
||||
.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}.w3-medium{font-size:15px!important}.w3-large{font-size:18px!important}
|
||||
.w3-xlarge{font-size:24px!important}.w3-xxlarge{font-size:36px!important}.w3-xxxlarge{font-size:48px!important}.w3-jumbo{font-size:64px!important}
|
||||
.w3-left-align{text-align:left!important}.w3-right-align{text-align:right!important}.w3-justify{text-align:justify!important}.w3-center{text-align:center!important}
|
||||
.w3-border-0{border:0!important}.w3-border{border:1px solid #ccc!important}
|
||||
.w3-border-top{border-top:1px solid #ccc!important}.w3-border-bottom{border-bottom:1px solid #ccc!important}
|
||||
.w3-border-left{border-left:1px solid #ccc!important}.w3-border-right{border-right:1px solid #ccc!important}
|
||||
.w3-topbar{border-top:6px solid #ccc!important}.w3-bottombar{border-bottom:6px solid #ccc!important}
|
||||
.w3-leftbar{border-left:6px solid #ccc!important}.w3-rightbar{border-right:6px solid #ccc!important}
|
||||
.w3-section,.w3-code{margin-top:16px!important;margin-bottom:16px!important}
|
||||
.w3-margin{margin:16px!important}.w3-margin-top{margin-top:16px!important}.w3-margin-bottom{margin-bottom:16px!important}
|
||||
.w3-margin-left{margin-left:16px!important}.w3-margin-right{margin-right:16px!important}
|
||||
.w3-padding-small{padding:4px 8px!important}.w3-padding{padding:8px 16px!important}.w3-padding-large{padding:12px 24px!important}
|
||||
.w3-padding-16{padding-top:16px!important;padding-bottom:16px!important}.w3-padding-24{padding-top:24px!important;padding-bottom:24px!important}
|
||||
.w3-padding-32{padding-top:32px!important;padding-bottom:32px!important}.w3-padding-48{padding-top:48px!important;padding-bottom:48px!important}
|
||||
.w3-padding-64{padding-top:64px!important;padding-bottom:64px!important}
|
||||
.w3-left{float:left!important}.w3-right{float:right!important}
|
||||
.w3-button:hover{color:#000!important;background-color:#ccc!important}
|
||||
.w3-transparent,.w3-hover-none:hover{background-color:transparent!important}
|
||||
.w3-hover-none:hover{box-shadow:none!important}
|
||||
/* Colors */
|
||||
.w3-amber,.w3-hover-amber:hover{color:#000!important;background-color:#ffc107!important}
|
||||
.w3-aqua,.w3-hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
|
||||
.w3-blue,.w3-hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
|
||||
.w3-light-blue,.w3-hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
|
||||
.w3-brown,.w3-hover-brown:hover{color:#fff!important;background-color:#795548!important}
|
||||
.w3-cyan,.w3-hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
|
||||
.w3-blue-grey,.w3-hover-blue-grey:hover,.w3-blue-gray,.w3-hover-blue-gray:hover{color:#fff!important;background-color:#607d8b!important}
|
||||
.w3-green,.w3-hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
|
||||
.w3-light-green,.w3-hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
|
||||
.w3-indigo,.w3-hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
|
||||
.w3-khaki,.w3-hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
|
||||
.w3-lime,.w3-hover-lime:hover{color:#000!important;background-color:#cddc39!important}
|
||||
.w3-orange,.w3-hover-orange:hover{color:#000!important;background-color:#ff9800!important}
|
||||
.w3-deep-orange,.w3-hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
|
||||
.w3-pink,.w3-hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
|
||||
.w3-purple,.w3-hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
|
||||
.w3-deep-purple,.w3-hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
|
||||
.w3-red,.w3-hover-red:hover{color:#fff!important;background-color:#f44336!important}
|
||||
.w3-sand,.w3-hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
|
||||
.w3-teal,.w3-hover-teal:hover{color:#fff!important;background-color:#009688!important}
|
||||
.w3-yellow,.w3-hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
|
||||
.w3-white,.w3-hover-white:hover{color:#000!important;background-color:#fff!important}
|
||||
.w3-black,.w3-hover-black:hover{color:#fff!important;background-color:#000!important}
|
||||
.w3-grey,.w3-hover-grey:hover,.w3-gray,.w3-hover-gray:hover{color:#000!important;background-color:#9e9e9e!important}
|
||||
.w3-light-grey,.w3-hover-light-grey:hover,.w3-light-gray,.w3-hover-light-gray:hover{color:#000!important;background-color:#f1f1f1!important}
|
||||
.w3-dark-grey,.w3-hover-dark-grey:hover,.w3-dark-gray,.w3-hover-dark-gray:hover{color:#fff!important;background-color:#616161!important}
|
||||
.w3-pale-red,.w3-hover-pale-red:hover{color:#000!important;background-color:#ffdddd!important}
|
||||
.w3-pale-green,.w3-hover-pale-green:hover{color:#000!important;background-color:#ddffdd!important}
|
||||
.w3-pale-yellow,.w3-hover-pale-yellow:hover{color:#000!important;background-color:#ffffcc!important}
|
||||
.w3-pale-blue,.w3-hover-pale-blue:hover{color:#000!important;background-color:#ddffff!important}
|
||||
|
||||
.custom-grey,.custom-hover-grey:hover{color:#000!important;background-color:#40545c!important}
|
||||
.custom-orange,.custom-hover-orange:hover{color:#000!important;background-color:#e8a951!important}
|
||||
.custom-text-grey,.custom-hover-text-grey:hover{color:#40545c!important}
|
||||
.custom-text-orange,.custom-hover-text-orange:hover{color:#e8a951!important}
|
||||
.custom-border-grey,.w3-hover-border-amber:hover{border-color:#40545c!important}
|
||||
.custom-border-orange,.w3-hover-border-amber:hover{border-color:#e8a951!important}
|
||||
|
||||
.w3-text-amber,.w3-hover-text-amber:hover{color:#ffc107!important}
|
||||
.w3-text-aqua,.w3-hover-text-aqua:hover{color:#00ffff!important}
|
||||
.w3-text-blue,.w3-hover-text-blue:hover{color:#2196F3!important}
|
||||
.w3-text-light-blue,.w3-hover-text-light-blue:hover{color:#87CEEB!important}
|
||||
.w3-text-brown,.w3-hover-text-brown:hover{color:#795548!important}
|
||||
.w3-text-cyan,.w3-hover-text-cyan:hover{color:#00bcd4!important}
|
||||
.w3-text-blue-grey,.w3-hover-text-blue-grey:hover,.w3-text-blue-gray,.w3-hover-text-blue-gray:hover{color:#607d8b!important}
|
||||
.w3-text-green,.w3-hover-text-green:hover{color:#4CAF50!important}
|
||||
.w3-text-light-green,.w3-hover-text-light-green:hover{color:#8bc34a!important}
|
||||
.w3-text-indigo,.w3-hover-text-indigo:hover{color:#3f51b5!important}
|
||||
.w3-text-khaki,.w3-hover-text-khaki:hover{color:#b4aa50!important}
|
||||
.w3-text-lime,.w3-hover-text-lime:hover{color:#cddc39!important}
|
||||
.w3-text-orange,.w3-hover-text-orange:hover{color:#ff9800!important}
|
||||
.w3-text-deep-orange,.w3-hover-text-deep-orange:hover{color:#ff5722!important}
|
||||
.w3-text-pink,.w3-hover-text-pink:hover{color:#e91e63!important}
|
||||
.w3-text-purple,.w3-hover-text-purple:hover{color:#9c27b0!important}
|
||||
.w3-text-deep-purple,.w3-hover-text-deep-purple:hover{color:#673ab7!important}
|
||||
.w3-text-red,.w3-hover-text-red:hover{color:#f44336!important}
|
||||
.w3-text-sand,.w3-hover-text-sand:hover{color:#fdf5e6!important}
|
||||
.w3-text-teal,.w3-hover-text-teal:hover{color:#009688!important}
|
||||
.w3-text-yellow,.w3-hover-text-yellow:hover{color:#d2be0e!important}
|
||||
.w3-text-white,.w3-hover-text-white:hover{color:#fff!important}
|
||||
.w3-text-black,.w3-hover-text-black:hover{color:#000!important}
|
||||
.w3-text-grey,.w3-hover-text-grey:hover,.w3-text-gray,.w3-hover-text-gray:hover{color:#757575!important}
|
||||
.w3-text-light-grey,.w3-hover-text-light-grey:hover,.w3-text-light-gray,.w3-hover-text-light-gray:hover{color:#f1f1f1!important}
|
||||
.w3-text-dark-grey,.w3-hover-text-dark-grey:hover,.w3-text-dark-gray,.w3-hover-text-dark-gray:hover{color:#3a3a3a!important}
|
||||
.w3-border-amber,.w3-hover-border-amber:hover{border-color:#ffc107!important}
|
||||
.w3-border-aqua,.w3-hover-border-aqua:hover{border-color:#00ffff!important}
|
||||
.w3-border-blue,.w3-hover-border-blue:hover{border-color:#2196F3!important}
|
||||
.w3-border-light-blue,.w3-hover-border-light-blue:hover{border-color:#87CEEB!important}
|
||||
.w3-border-brown,.w3-hover-border-brown:hover{border-color:#795548!important}
|
||||
.w3-border-cyan,.w3-hover-border-cyan:hover{border-color:#00bcd4!important}
|
||||
.w3-border-blue-grey,.w3-hover-border-blue-grey:hover,.w3-border-blue-gray,.w3-hover-border-blue-gray:hover{border-color:#607d8b!important}
|
||||
.w3-border-green,.w3-hover-border-green:hover{border-color:#4CAF50!important}
|
||||
.w3-border-light-green,.w3-hover-border-light-green:hover{border-color:#8bc34a!important}
|
||||
.w3-border-indigo,.w3-hover-border-indigo:hover{border-color:#3f51b5!important}
|
||||
.w3-border-khaki,.w3-hover-border-khaki:hover{border-color:#f0e68c!important}
|
||||
.w3-border-lime,.w3-hover-border-lime:hover{border-color:#cddc39!important}
|
||||
.w3-border-orange,.w3-hover-border-orange:hover{border-color:#ff9800!important}
|
||||
.w3-border-deep-orange,.w3-hover-border-deep-orange:hover{border-color:#ff5722!important}
|
||||
.w3-border-pink,.w3-hover-border-pink:hover{border-color:#e91e63!important}
|
||||
.w3-border-purple,.w3-hover-border-purple:hover{border-color:#9c27b0!important}
|
||||
.w3-border-deep-purple,.w3-hover-border-deep-purple:hover{border-color:#673ab7!important}
|
||||
.w3-border-red,.w3-hover-border-red:hover{border-color:#f44336!important}
|
||||
.w3-border-sand,.w3-hover-border-sand:hover{border-color:#fdf5e6!important}
|
||||
.w3-border-teal,.w3-hover-border-teal:hover{border-color:#009688!important}
|
||||
.w3-border-yellow,.w3-hover-border-yellow:hover{border-color:#ffeb3b!important}
|
||||
.w3-border-white,.w3-hover-border-white:hover{border-color:#fff!important}
|
||||
.w3-border-black,.w3-hover-border-black:hover{border-color:#000!important}
|
||||
.w3-border-grey,.w3-hover-border-grey:hover,.w3-border-gray,.w3-hover-border-gray:hover{border-color:#9e9e9e!important}
|
||||
.w3-border-light-grey,.w3-hover-border-light-grey:hover,.w3-border-light-gray,.w3-hover-border-light-gray:hover{border-color:#f1f1f1!important}
|
||||
.w3-border-dark-grey,.w3-hover-border-dark-grey:hover,.w3-border-dark-gray,.w3-hover-border-dark-gray:hover{border-color:#616161!important}
|
||||
.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important}
|
||||
.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffcc!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important}
|
18
static/fontawesome-pro-5.8.2-web/LICENSE.txt
Normal file
18
static/fontawesome-pro-5.8.2-web/LICENSE.txt
Normal file
@ -0,0 +1,18 @@
|
||||
Font Awesome Pro License
|
||||
------------------------
|
||||
|
||||
Font Awesome Pro is commercial software that requires a paid license. Full
|
||||
Font Awesome Pro license: https://fontawesome.com/license.
|
||||
|
||||
# Commercial License
|
||||
The Font Awesome Pro commercial license allows you to pay for FA Pro once, own
|
||||
it, and use it just about everywhere you'd like.
|
||||
|
||||
# Attribution
|
||||
Attribution is not required by the Font Awesome Pro commercial license.
|
||||
|
||||
# Brand Icons
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**
|
6209
static/fontawesome-pro-5.8.2-web/css/all.css
Normal file
6209
static/fontawesome-pro-5.8.2-web/css/all.css
Normal file
File diff suppressed because it is too large
Load Diff
5
static/fontawesome-pro-5.8.2-web/css/all.min.css
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/css/all.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
14
static/fontawesome-pro-5.8.2-web/css/brands.css
Normal file
14
static/fontawesome-pro-5.8.2-web/css/brands.css
Normal file
@ -0,0 +1,14 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-display: auto;
|
||||
src: url("../webfonts/fa-brands-400.eot");
|
||||
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
|
||||
|
||||
.fab {
|
||||
font-family: 'Font Awesome 5 Brands'; }
|
5
static/fontawesome-pro-5.8.2-web/css/brands.min.css
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/css/brands.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}
|
6165
static/fontawesome-pro-5.8.2-web/css/fontawesome.css
vendored
Normal file
6165
static/fontawesome-pro-5.8.2-web/css/fontawesome.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5
static/fontawesome-pro-5.8.2-web/css/fontawesome.min.css
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
15
static/fontawesome-pro-5.8.2-web/css/light.css
Normal file
15
static/fontawesome-pro-5.8.2-web/css/light.css
Normal file
@ -0,0 +1,15 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: auto;
|
||||
src: url("../webfonts/fa-light-300.eot");
|
||||
src: url("../webfonts/fa-light-300.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-light-300.woff2") format("woff2"), url("../webfonts/fa-light-300.woff") format("woff"), url("../webfonts/fa-light-300.ttf") format("truetype"), url("../webfonts/fa-light-300.svg#fontawesome") format("svg"); }
|
||||
|
||||
.fal {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 300; }
|
5
static/fontawesome-pro-5.8.2-web/css/light.min.css
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/css/light.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:300;font-display:auto;src:url(../webfonts/fa-light-300.eot);src:url(../webfonts/fa-light-300.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-light-300.woff2) format("woff2"),url(../webfonts/fa-light-300.woff) format("woff"),url(../webfonts/fa-light-300.ttf) format("truetype"),url(../webfonts/fa-light-300.svg#fontawesome) format("svg")}.fal{font-family:"Font Awesome 5 Pro";font-weight:300}
|
15
static/fontawesome-pro-5.8.2-web/css/regular.css
Normal file
15
static/fontawesome-pro-5.8.2-web/css/regular.css
Normal file
@ -0,0 +1,15 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: auto;
|
||||
src: url("../webfonts/fa-regular-400.eot");
|
||||
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
|
||||
|
||||
.far {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 400; }
|
5
static/fontawesome-pro-5.8.2-web/css/regular.min.css
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/css/regular.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Pro";font-weight:400}
|
16
static/fontawesome-pro-5.8.2-web/css/solid.css
Normal file
16
static/fontawesome-pro-5.8.2-web/css/solid.css
Normal file
@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: auto;
|
||||
src: url("../webfonts/fa-solid-900.eot");
|
||||
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
|
||||
|
||||
.fa,
|
||||
.fas {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 900; }
|
5
static/fontawesome-pro-5.8.2-web/css/solid.min.css
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/css/solid.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Pro";font-weight:900}
|
346
static/fontawesome-pro-5.8.2-web/css/svg-with-js.css
Normal file
346
static/fontawesome-pro-5.8.2-web/css/svg-with-js.css
Normal file
@ -0,0 +1,346 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
svg:not(:root).svg-inline--fa {
|
||||
overflow: visible; }
|
||||
|
||||
.svg-inline--fa {
|
||||
display: inline-block;
|
||||
font-size: inherit;
|
||||
height: 1em;
|
||||
overflow: visible;
|
||||
vertical-align: -.125em; }
|
||||
.svg-inline--fa.fa-lg {
|
||||
vertical-align: -.225em; }
|
||||
.svg-inline--fa.fa-w-1 {
|
||||
width: 0.0625em; }
|
||||
.svg-inline--fa.fa-w-2 {
|
||||
width: 0.125em; }
|
||||
.svg-inline--fa.fa-w-3 {
|
||||
width: 0.1875em; }
|
||||
.svg-inline--fa.fa-w-4 {
|
||||
width: 0.25em; }
|
||||
.svg-inline--fa.fa-w-5 {
|
||||
width: 0.3125em; }
|
||||
.svg-inline--fa.fa-w-6 {
|
||||
width: 0.375em; }
|
||||
.svg-inline--fa.fa-w-7 {
|
||||
width: 0.4375em; }
|
||||
.svg-inline--fa.fa-w-8 {
|
||||
width: 0.5em; }
|
||||
.svg-inline--fa.fa-w-9 {
|
||||
width: 0.5625em; }
|
||||
.svg-inline--fa.fa-w-10 {
|
||||
width: 0.625em; }
|
||||
.svg-inline--fa.fa-w-11 {
|
||||
width: 0.6875em; }
|
||||
.svg-inline--fa.fa-w-12 {
|
||||
width: 0.75em; }
|
||||
.svg-inline--fa.fa-w-13 {
|
||||
width: 0.8125em; }
|
||||
.svg-inline--fa.fa-w-14 {
|
||||
width: 0.875em; }
|
||||
.svg-inline--fa.fa-w-15 {
|
||||
width: 0.9375em; }
|
||||
.svg-inline--fa.fa-w-16 {
|
||||
width: 1em; }
|
||||
.svg-inline--fa.fa-w-17 {
|
||||
width: 1.0625em; }
|
||||
.svg-inline--fa.fa-w-18 {
|
||||
width: 1.125em; }
|
||||
.svg-inline--fa.fa-w-19 {
|
||||
width: 1.1875em; }
|
||||
.svg-inline--fa.fa-w-20 {
|
||||
width: 1.25em; }
|
||||
.svg-inline--fa.fa-pull-left {
|
||||
margin-right: .3em;
|
||||
width: auto; }
|
||||
.svg-inline--fa.fa-pull-right {
|
||||
margin-left: .3em;
|
||||
width: auto; }
|
||||
.svg-inline--fa.fa-border {
|
||||
height: 1.5em; }
|
||||
.svg-inline--fa.fa-li {
|
||||
width: 2em; }
|
||||
.svg-inline--fa.fa-fw {
|
||||
width: 1.25em; }
|
||||
|
||||
.fa-layers svg.svg-inline--fa {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0; }
|
||||
|
||||
.fa-layers {
|
||||
display: inline-block;
|
||||
height: 1em;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: -.125em;
|
||||
width: 1em; }
|
||||
.fa-layers svg.svg-inline--fa {
|
||||
-webkit-transform-origin: center center;
|
||||
transform-origin: center center; }
|
||||
|
||||
.fa-layers-text, .fa-layers-counter {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
text-align: center; }
|
||||
|
||||
.fa-layers-text {
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
-webkit-transform-origin: center center;
|
||||
transform-origin: center center; }
|
||||
|
||||
.fa-layers-counter {
|
||||
background-color: #ff253a;
|
||||
border-radius: 1em;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
height: 1.5em;
|
||||
line-height: 1;
|
||||
max-width: 5em;
|
||||
min-width: 1.5em;
|
||||
overflow: hidden;
|
||||
padding: .25em;
|
||||
right: 0;
|
||||
text-overflow: ellipsis;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top right;
|
||||
transform-origin: top right; }
|
||||
|
||||
.fa-layers-bottom-right {
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
top: auto;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: bottom right;
|
||||
transform-origin: bottom right; }
|
||||
|
||||
.fa-layers-bottom-left {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: auto;
|
||||
top: auto;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: bottom left;
|
||||
transform-origin: bottom left; }
|
||||
|
||||
.fa-layers-top-right {
|
||||
right: 0;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top right;
|
||||
transform-origin: top right; }
|
||||
|
||||
.fa-layers-top-left {
|
||||
left: 0;
|
||||
right: auto;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top left;
|
||||
transform-origin: top left; }
|
||||
|
||||
.fa-lg {
|
||||
font-size: 1.33333em;
|
||||
line-height: 0.75em;
|
||||
vertical-align: -.0667em; }
|
||||
|
||||
.fa-xs {
|
||||
font-size: .75em; }
|
||||
|
||||
.fa-sm {
|
||||
font-size: .875em; }
|
||||
|
||||
.fa-1x {
|
||||
font-size: 1em; }
|
||||
|
||||
.fa-2x {
|
||||
font-size: 2em; }
|
||||
|
||||
.fa-3x {
|
||||
font-size: 3em; }
|
||||
|
||||
.fa-4x {
|
||||
font-size: 4em; }
|
||||
|
||||
.fa-5x {
|
||||
font-size: 5em; }
|
||||
|
||||
.fa-6x {
|
||||
font-size: 6em; }
|
||||
|
||||
.fa-7x {
|
||||
font-size: 7em; }
|
||||
|
||||
.fa-8x {
|
||||
font-size: 8em; }
|
||||
|
||||
.fa-9x {
|
||||
font-size: 9em; }
|
||||
|
||||
.fa-10x {
|
||||
font-size: 10em; }
|
||||
|
||||
.fa-fw {
|
||||
text-align: center;
|
||||
width: 1.25em; }
|
||||
|
||||
.fa-ul {
|
||||
list-style-type: none;
|
||||
margin-left: 2.5em;
|
||||
padding-left: 0; }
|
||||
.fa-ul > li {
|
||||
position: relative; }
|
||||
|
||||
.fa-li {
|
||||
left: -2em;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 2em;
|
||||
line-height: inherit; }
|
||||
|
||||
.fa-border {
|
||||
border: solid 0.08em #eee;
|
||||
border-radius: .1em;
|
||||
padding: .2em .25em .15em; }
|
||||
|
||||
.fa-pull-left {
|
||||
float: left; }
|
||||
|
||||
.fa-pull-right {
|
||||
float: right; }
|
||||
|
||||
.fa.fa-pull-left,
|
||||
.fas.fa-pull-left,
|
||||
.far.fa-pull-left,
|
||||
.fal.fa-pull-left,
|
||||
.fab.fa-pull-left {
|
||||
margin-right: .3em; }
|
||||
|
||||
.fa.fa-pull-right,
|
||||
.fas.fa-pull-right,
|
||||
.far.fa-pull-right,
|
||||
.fal.fa-pull-right,
|
||||
.fab.fa-pull-right {
|
||||
margin-left: .3em; }
|
||||
|
||||
.fa-spin {
|
||||
-webkit-animation: fa-spin 2s infinite linear;
|
||||
animation: fa-spin 2s infinite linear; }
|
||||
|
||||
.fa-pulse {
|
||||
-webkit-animation: fa-spin 1s infinite steps(8);
|
||||
animation: fa-spin 1s infinite steps(8); }
|
||||
|
||||
@-webkit-keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
.fa-rotate-90 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
|
||||
-webkit-transform: rotate(90deg);
|
||||
transform: rotate(90deg); }
|
||||
|
||||
.fa-rotate-180 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
|
||||
-webkit-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
|
||||
.fa-rotate-270 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
|
||||
-webkit-transform: rotate(270deg);
|
||||
transform: rotate(270deg); }
|
||||
|
||||
.fa-flip-horizontal {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
|
||||
-webkit-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1); }
|
||||
|
||||
.fa-flip-vertical {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||
-webkit-transform: scale(1, -1);
|
||||
transform: scale(1, -1); }
|
||||
|
||||
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||
-webkit-transform: scale(-1, -1);
|
||||
transform: scale(-1, -1); }
|
||||
|
||||
:root .fa-rotate-90,
|
||||
:root .fa-rotate-180,
|
||||
:root .fa-rotate-270,
|
||||
:root .fa-flip-horizontal,
|
||||
:root .fa-flip-vertical,
|
||||
:root .fa-flip-both {
|
||||
-webkit-filter: none;
|
||||
filter: none; }
|
||||
|
||||
.fa-stack {
|
||||
display: inline-block;
|
||||
height: 2em;
|
||||
position: relative;
|
||||
width: 2.5em; }
|
||||
|
||||
.fa-stack-1x,
|
||||
.fa-stack-2x {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0; }
|
||||
|
||||
.svg-inline--fa.fa-stack-1x {
|
||||
height: 1em;
|
||||
width: 1.25em; }
|
||||
|
||||
.svg-inline--fa.fa-stack-2x {
|
||||
height: 2em;
|
||||
width: 2.5em; }
|
||||
|
||||
.fa-inverse {
|
||||
color: #fff; }
|
||||
|
||||
.sr-only {
|
||||
border: 0;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px; }
|
||||
|
||||
.sr-only-focusable:active, .sr-only-focusable:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto; }
|
5
static/fontawesome-pro-5.8.2-web/css/svg-with-js.min.css
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/css/svg-with-js.min.css
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
|
2166
static/fontawesome-pro-5.8.2-web/css/v4-shims.css
Normal file
2166
static/fontawesome-pro-5.8.2-web/css/v4-shims.css
Normal file
File diff suppressed because it is too large
Load Diff
5
static/fontawesome-pro-5.8.2-web/css/v4-shims.min.css
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/css/v4-shims.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
8003
static/fontawesome-pro-5.8.2-web/js/all.js
Normal file
8003
static/fontawesome-pro-5.8.2-web/js/all.js
Normal file
File diff suppressed because one or more lines are too long
5
static/fontawesome-pro-5.8.2-web/js/all.min.js
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/js/all.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
557
static/fontawesome-pro-5.8.2-web/js/brands.js
Normal file
557
static/fontawesome-pro-5.8.2-web/js/brands.js
Normal file
File diff suppressed because one or more lines are too long
5
static/fontawesome-pro-5.8.2-web/js/brands.min.js
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/js/brands.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2404
static/fontawesome-pro-5.8.2-web/js/fontawesome.js
Normal file
2404
static/fontawesome-pro-5.8.2-web/js/fontawesome.js
Normal file
File diff suppressed because one or more lines are too long
5
static/fontawesome-pro-5.8.2-web/js/fontawesome.min.js
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/js/fontawesome.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1686
static/fontawesome-pro-5.8.2-web/js/light.js
Normal file
1686
static/fontawesome-pro-5.8.2-web/js/light.js
Normal file
File diff suppressed because it is too large
Load Diff
5
static/fontawesome-pro-5.8.2-web/js/light.min.js
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/js/light.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1686
static/fontawesome-pro-5.8.2-web/js/regular.js
Normal file
1686
static/fontawesome-pro-5.8.2-web/js/regular.js
Normal file
File diff suppressed because it is too large
Load Diff
5
static/fontawesome-pro-5.8.2-web/js/regular.min.js
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/js/regular.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1686
static/fontawesome-pro-5.8.2-web/js/solid.js
Normal file
1686
static/fontawesome-pro-5.8.2-web/js/solid.js
Normal file
File diff suppressed because it is too large
Load Diff
5
static/fontawesome-pro-5.8.2-web/js/solid.min.js
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/js/solid.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
68
static/fontawesome-pro-5.8.2-web/js/v4-shims.js
Normal file
68
static/fontawesome-pro-5.8.2-web/js/v4-shims.js
Normal file
File diff suppressed because one or more lines are too long
5
static/fontawesome-pro-5.8.2-web/js/v4-shims.min.js
vendored
Normal file
5
static/fontawesome-pro-5.8.2-web/js/v4-shims.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
19
static/fontawesome-pro-5.8.2-web/less/_animated.less
Normal file
19
static/fontawesome-pro-5.8.2-web/less/_animated.less
Normal file
@ -0,0 +1,19 @@
|
||||
// Animated Icons
|
||||
// --------------------------
|
||||
|
||||
.@{fa-css-prefix}-spin {
|
||||
animation: fa-spin 2s infinite linear;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-pulse {
|
||||
animation: fa-spin 1s infinite steps(8);
|
||||
}
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
16
static/fontawesome-pro-5.8.2-web/less/_bordered-pulled.less
Normal file
16
static/fontawesome-pro-5.8.2-web/less/_bordered-pulled.less
Normal file
@ -0,0 +1,16 @@
|
||||
// Bordered & Pulled
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-border {
|
||||
border-radius: .1em;
|
||||
border: solid .08em @fa-border-color;
|
||||
padding: .2em .25em .15em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-pull-left { float: left; }
|
||||
.@{fa-css-prefix}-pull-right { float: right; }
|
||||
|
||||
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
|
||||
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||
}
|
12
static/fontawesome-pro-5.8.2-web/less/_core.less
Normal file
12
static/fontawesome-pro-5.8.2-web/less/_core.less
Normal file
@ -0,0 +1,12 @@
|
||||
// Base Class Definition
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
text-rendering: auto;
|
||||
line-height: 1;
|
||||
}
|
6
static/fontawesome-pro-5.8.2-web/less/_fixed-width.less
Normal file
6
static/fontawesome-pro-5.8.2-web/less/_fixed-width.less
Normal file
@ -0,0 +1,6 @@
|
||||
// Fixed Width Icons
|
||||
// -------------------------
|
||||
.@{fa-css-prefix}-fw {
|
||||
text-align: center;
|
||||
width: (20em / 16);
|
||||
}
|
1989
static/fontawesome-pro-5.8.2-web/less/_icons.less
Normal file
1989
static/fontawesome-pro-5.8.2-web/less/_icons.less
Normal file
File diff suppressed because it is too large
Load Diff
27
static/fontawesome-pro-5.8.2-web/less/_larger.less
Normal file
27
static/fontawesome-pro-5.8.2-web/less/_larger.less
Normal file
@ -0,0 +1,27 @@
|
||||
// Icon Sizes
|
||||
// -------------------------
|
||||
|
||||
.larger(@factor) when (@factor > 0) {
|
||||
.larger((@factor - 1));
|
||||
|
||||
.@{fa-css-prefix}-@{factor}x {
|
||||
font-size: (@factor * 1em);
|
||||
}
|
||||
}
|
||||
|
||||
/* makes the font 33% larger relative to the icon container */
|
||||
.@{fa-css-prefix}-lg {
|
||||
font-size: (4em / 3);
|
||||
line-height: (3em / 4);
|
||||
vertical-align: -.0667em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-xs {
|
||||
font-size: .75em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-sm {
|
||||
font-size: .875em;
|
||||
}
|
||||
|
||||
.larger(10);
|
18
static/fontawesome-pro-5.8.2-web/less/_list.less
Normal file
18
static/fontawesome-pro-5.8.2-web/less/_list.less
Normal file
@ -0,0 +1,18 @@
|
||||
// List Icons
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-ul {
|
||||
list-style-type: none;
|
||||
margin-left: (@fa-li-width * 5/4);
|
||||
padding-left: 0;
|
||||
|
||||
> li { position: relative; }
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-li {
|
||||
left: -@fa-li-width;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: @fa-li-width;
|
||||
line-height: inherit;
|
||||
}
|
56
static/fontawesome-pro-5.8.2-web/less/_mixins.less
Normal file
56
static/fontawesome-pro-5.8.2-web/less/_mixins.less
Normal file
@ -0,0 +1,56 @@
|
||||
// Mixins
|
||||
// --------------------------
|
||||
|
||||
.fa-icon() {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.fa-icon-rotate(@degrees, @rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
|
||||
transform: rotate(@degrees);
|
||||
}
|
||||
|
||||
.fa-icon-flip(@horiz, @vert, @rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
|
||||
transform: scale(@horiz, @vert);
|
||||
}
|
||||
|
||||
|
||||
// Only display content to screen readers. A la Bootstrap 4.
|
||||
//
|
||||
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||
|
||||
.sr-only() {
|
||||
border: 0;
|
||||
clip: rect(0,0,0,0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||
//
|
||||
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||
//
|
||||
// Credit: HTML5 Boilerplate
|
||||
|
||||
.sr-only-focusable() {
|
||||
&:active,
|
||||
&:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto;
|
||||
}
|
||||
}
|
24
static/fontawesome-pro-5.8.2-web/less/_rotated-flipped.less
Normal file
24
static/fontawesome-pro-5.8.2-web/less/_rotated-flipped.less
Normal file
@ -0,0 +1,24 @@
|
||||
// Rotated & Flipped Icons
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
|
||||
.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
|
||||
.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
|
||||
|
||||
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
|
||||
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
|
||||
.@{fa-css-prefix}-flip-both, .@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(-1, -1, 2); }
|
||||
|
||||
// Hook for IE8-9
|
||||
// -------------------------
|
||||
|
||||
:root {
|
||||
.@{fa-css-prefix}-rotate-90,
|
||||
.@{fa-css-prefix}-rotate-180,
|
||||
.@{fa-css-prefix}-rotate-270,
|
||||
.@{fa-css-prefix}-flip-horizontal,
|
||||
.@{fa-css-prefix}-flip-vertical,
|
||||
.@{fa-css-prefix}-flip-both {
|
||||
filter: none;
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
// Screen Readers
|
||||
// -------------------------
|
||||
|
||||
.sr-only { .sr-only(); }
|
||||
.sr-only-focusable { .sr-only-focusable(); }
|
2062
static/fontawesome-pro-5.8.2-web/less/_shims.less
Normal file
2062
static/fontawesome-pro-5.8.2-web/less/_shims.less
Normal file
File diff suppressed because it is too large
Load Diff
22
static/fontawesome-pro-5.8.2-web/less/_stacked.less
Normal file
22
static/fontawesome-pro-5.8.2-web/less/_stacked.less
Normal file
@ -0,0 +1,22 @@
|
||||
// Stacked Icons
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-stack {
|
||||
display: inline-block;
|
||||
height: 2em;
|
||||
line-height: 2em;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
width: 2em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
|
||||
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
|
||||
.@{fa-css-prefix}-inverse { color: @fa-inverse; }
|
1999
static/fontawesome-pro-5.8.2-web/less/_variables.less
Normal file
1999
static/fontawesome-pro-5.8.2-web/less/_variables.less
Normal file
File diff suppressed because it is too large
Load Diff
22
static/fontawesome-pro-5.8.2-web/less/brands.less
Normal file
22
static/fontawesome-pro-5.8.2-web/less/brands.less
Normal file
@ -0,0 +1,22 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-display: @fa-font-display;
|
||||
src: url('@{fa-font-path}/fa-brands-400.eot');
|
||||
src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
||||
url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||
url('@{fa-font-path}/fa-brands-400.woff') format('woff'),
|
||||
url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
||||
url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fab {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
}
|
16
static/fontawesome-pro-5.8.2-web/less/fontawesome.less
vendored
Normal file
16
static/fontawesome-pro-5.8.2-web/less/fontawesome.less
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
@import "_mixins.less";
|
||||
@import "_core.less";
|
||||
@import "_larger.less";
|
||||
@import "_fixed-width.less";
|
||||
@import "_list.less";
|
||||
@import "_bordered-pulled.less";
|
||||
@import "_animated.less";
|
||||
@import "_rotated-flipped.less";
|
||||
@import "_stacked.less";
|
||||
@import "_icons.less";
|
||||
@import "_screen-reader.less";
|
23
static/fontawesome-pro-5.8.2-web/less/light.less
Normal file
23
static/fontawesome-pro-5.8.2-web/less/light.less
Normal file
@ -0,0 +1,23 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: @fa-font-display;
|
||||
src: url('@{fa-font-path}/fa-light-300.eot');
|
||||
src: url('@{fa-font-path}/fa-light-300.eot?#iefix') format('embedded-opentype'),
|
||||
url('@{fa-font-path}/fa-light-300.woff2') format('woff2'),
|
||||
url('@{fa-font-path}/fa-light-300.woff') format('woff'),
|
||||
url('@{fa-font-path}/fa-light-300.ttf') format('truetype'),
|
||||
url('@{fa-font-path}/fa-light-300.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fal {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 300;
|
||||
}
|
23
static/fontawesome-pro-5.8.2-web/less/regular.less
Normal file
23
static/fontawesome-pro-5.8.2-web/less/regular.less
Normal file
@ -0,0 +1,23 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: @fa-font-display;
|
||||
src: url('@{fa-font-path}/fa-regular-400.eot');
|
||||
src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
||||
url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||
url('@{fa-font-path}/fa-regular-400.woff') format('woff'),
|
||||
url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
||||
url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.far {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 400;
|
||||
}
|
24
static/fontawesome-pro-5.8.2-web/less/solid.less
Normal file
24
static/fontawesome-pro-5.8.2-web/less/solid.less
Normal file
@ -0,0 +1,24 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import "_variables.less";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: @fa-font-display;
|
||||
src: url('@{fa-font-path}/fa-solid-900.eot');
|
||||
src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
|
||||
url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
||||
url('@{fa-font-path}/fa-solid-900.woff') format('woff'),
|
||||
url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),
|
||||
url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fa,
|
||||
.fas {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 900;
|
||||
}
|
6
static/fontawesome-pro-5.8.2-web/less/v4-shims.less
Normal file
6
static/fontawesome-pro-5.8.2-web/less/v4-shims.less
Normal file
@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import '_variables.less';
|
||||
@import '_shims.less';
|
3559
static/fontawesome-pro-5.8.2-web/metadata/categories.yml
Normal file
3559
static/fontawesome-pro-5.8.2-web/metadata/categories.yml
Normal file
File diff suppressed because it is too large
Load Diff
119654
static/fontawesome-pro-5.8.2-web/metadata/icons.json
Normal file
119654
static/fontawesome-pro-5.8.2-web/metadata/icons.json
Normal file
File diff suppressed because one or more lines are too long
32922
static/fontawesome-pro-5.8.2-web/metadata/icons.yml
Normal file
32922
static/fontawesome-pro-5.8.2-web/metadata/icons.yml
Normal file
File diff suppressed because it is too large
Load Diff
2307
static/fontawesome-pro-5.8.2-web/metadata/shims.json
Normal file
2307
static/fontawesome-pro-5.8.2-web/metadata/shims.json
Normal file
File diff suppressed because it is too large
Load Diff
294
static/fontawesome-pro-5.8.2-web/metadata/shims.yml
Normal file
294
static/fontawesome-pro-5.8.2-web/metadata/shims.yml
Normal file
@ -0,0 +1,294 @@
|
||||
area-chart:
|
||||
name: chart-area
|
||||
arrow-circle-o-down:
|
||||
name: arrow-alt-circle-down
|
||||
prefix: far
|
||||
arrow-circle-o-left:
|
||||
name: arrow-alt-circle-left
|
||||
prefix: far
|
||||
arrow-circle-o-right:
|
||||
name: arrow-alt-circle-right
|
||||
prefix: far
|
||||
arrow-circle-o-up:
|
||||
name: arrow-alt-circle-up
|
||||
prefix: far
|
||||
arrows:
|
||||
name: arrows-alt
|
||||
arrows-alt:
|
||||
name: expand-arrows-alt
|
||||
arrows-h:
|
||||
name: arrows-alt-h
|
||||
arrows-v:
|
||||
name: arrows-alt-v
|
||||
bar-chart:
|
||||
name: chart-bar
|
||||
prefix: far
|
||||
bitbucket-square:
|
||||
name: bitbucket
|
||||
prefix: fab
|
||||
calendar:
|
||||
name: calendar-alt
|
||||
calendar-o:
|
||||
name: calendar
|
||||
prefix: far
|
||||
caret-square-o-down:
|
||||
name: caret-square-down
|
||||
prefix: far
|
||||
caret-square-o-left:
|
||||
name: caret-square-left
|
||||
prefix: far
|
||||
caret-square-o-right:
|
||||
name: caret-square-right
|
||||
prefix: far
|
||||
caret-square-o-up:
|
||||
name: caret-square-up
|
||||
prefix: far
|
||||
cc:
|
||||
name: closed-captioning
|
||||
prefix: far
|
||||
chain-broken:
|
||||
name: unlink
|
||||
circle-o-notch:
|
||||
name: circle-notch
|
||||
circle-thin:
|
||||
name: circle
|
||||
prefix: far
|
||||
clipboard:
|
||||
prefix: far
|
||||
clone:
|
||||
prefix: far
|
||||
cloud-download:
|
||||
name: cloud-download-alt
|
||||
cloud-upload:
|
||||
name: cloud-upload-alt
|
||||
code-fork:
|
||||
name: code-branch
|
||||
comment-alt:
|
||||
name: comment-dots
|
||||
prefix: far
|
||||
commenting:
|
||||
name: comment-dots
|
||||
compass:
|
||||
prefix: far
|
||||
copyright:
|
||||
prefix: far
|
||||
creative-commons:
|
||||
prefix: fab
|
||||
credit-card:
|
||||
prefix: far
|
||||
credit-card-alt:
|
||||
name: credit-card
|
||||
cutlery:
|
||||
name: utensils
|
||||
diamond:
|
||||
name: gem
|
||||
prefix: far
|
||||
eercast:
|
||||
name: sellcast
|
||||
prefix: fab
|
||||
eur:
|
||||
name: euro-sign
|
||||
exchange:
|
||||
name: exchange-alt
|
||||
external-link:
|
||||
name: external-link-alt
|
||||
external-link-square:
|
||||
name: external-link-square-alt
|
||||
eye:
|
||||
prefix: far
|
||||
eye-dropper:
|
||||
name: eye-dropper
|
||||
prefix: far
|
||||
eye-slash:
|
||||
prefix: far
|
||||
eyedropper:
|
||||
name: eye-dropper
|
||||
facebook:
|
||||
name: facebook-f
|
||||
prefix: fab
|
||||
facebook-official:
|
||||
name: facebook
|
||||
prefix: fab
|
||||
file-text:
|
||||
name: file-alt
|
||||
files-o:
|
||||
name: copy
|
||||
prefix: far
|
||||
floppy-o:
|
||||
name: save
|
||||
prefix: far
|
||||
gbp:
|
||||
name: pound-sign
|
||||
glass:
|
||||
name: glass-martini
|
||||
google-plus:
|
||||
name: google-plus-g
|
||||
prefix: fab
|
||||
google-plus-circle:
|
||||
name: google-plus
|
||||
prefix: fab
|
||||
google-plus-official:
|
||||
name: google-plus
|
||||
prefix: fab
|
||||
hand-o-down:
|
||||
name: hand-point-down
|
||||
prefix: far
|
||||
hand-o-left:
|
||||
name: hand-point-left
|
||||
prefix: far
|
||||
hand-o-right:
|
||||
name: hand-point-right
|
||||
prefix: far
|
||||
hand-o-up:
|
||||
name: hand-point-up
|
||||
prefix: far
|
||||
header:
|
||||
name: heading
|
||||
id-badge:
|
||||
prefix: far
|
||||
ils:
|
||||
name: shekel-sign
|
||||
inr:
|
||||
name: rupee-sign
|
||||
intersex:
|
||||
name: transgender
|
||||
jpy:
|
||||
name: yen-sign
|
||||
krw:
|
||||
name: won-sign
|
||||
level-down:
|
||||
name: level-down-alt
|
||||
level-up:
|
||||
name: level-up-alt
|
||||
life-ring:
|
||||
prefix: far
|
||||
line-chart:
|
||||
name: chart-line
|
||||
linkedin:
|
||||
name: linkedin-in
|
||||
prefix: fab
|
||||
linkedin-square:
|
||||
name: linkedin
|
||||
prefix: fab
|
||||
list-alt:
|
||||
prefix: far
|
||||
long-arrow-down:
|
||||
name: long-arrow-alt-down
|
||||
long-arrow-left:
|
||||
name: long-arrow-alt-left
|
||||
long-arrow-right:
|
||||
name: long-arrow-alt-right
|
||||
long-arrow-up:
|
||||
name: long-arrow-alt-up
|
||||
map-marker:
|
||||
name: map-marker-alt
|
||||
meanpath:
|
||||
name: font-awesome
|
||||
prefix: fab
|
||||
mobile:
|
||||
name: mobile-alt
|
||||
money:
|
||||
name: money-bill-alt
|
||||
prefix: far
|
||||
object-group:
|
||||
prefix: far
|
||||
object-ungroup:
|
||||
prefix: far
|
||||
paste:
|
||||
prefix: far
|
||||
pencil:
|
||||
name: pencil-alt
|
||||
pencil-square:
|
||||
name: pen-square
|
||||
pencil-square-o:
|
||||
name: edit
|
||||
prefix: far
|
||||
picture:
|
||||
name: image
|
||||
pie-chart:
|
||||
name: chart-pie
|
||||
refresh:
|
||||
name: sync
|
||||
registered:
|
||||
prefix: far
|
||||
repeat:
|
||||
name: redo
|
||||
rub:
|
||||
name: ruble-sign
|
||||
scissors:
|
||||
name: cut
|
||||
shield:
|
||||
name: shield-alt
|
||||
sign-in:
|
||||
name: sign-in-alt
|
||||
sign-out:
|
||||
name: sign-out-alt
|
||||
sliders:
|
||||
name: sliders-h
|
||||
sort-alpha-asc:
|
||||
name: sort-alpha-down
|
||||
sort-alpha-desc:
|
||||
name: sort-alpha-up
|
||||
sort-amount-asc:
|
||||
name: sort-amount-down
|
||||
sort-amount-desc:
|
||||
name: sort-amount-up
|
||||
sort-asc:
|
||||
name: sort-up
|
||||
sort-desc:
|
||||
name: sort-down
|
||||
sort-numeric-asc:
|
||||
name: sort-numeric-down
|
||||
sort-numeric-desc:
|
||||
name: sort-numeric-up
|
||||
spoon:
|
||||
name: utensil-spoon
|
||||
star-half-empty:
|
||||
name: star-half
|
||||
star-half-full:
|
||||
name: star-half
|
||||
support:
|
||||
name: life-ring
|
||||
prefix: far
|
||||
tablet:
|
||||
name: tablet-alt
|
||||
tachometer:
|
||||
name: tachometer-alt
|
||||
television:
|
||||
name: tv
|
||||
thumb-tack:
|
||||
name: thumbtack
|
||||
thumbs-o-down:
|
||||
name: thumbs-down
|
||||
prefix: far
|
||||
thumbs-o-up:
|
||||
name: thumbs-up
|
||||
prefix: far
|
||||
ticket:
|
||||
name: ticket-alt
|
||||
trash:
|
||||
name: trash-alt
|
||||
trash-o:
|
||||
name: trash-alt
|
||||
prefix: far
|
||||
try:
|
||||
name: lira-sign
|
||||
usd:
|
||||
name: dollar-sign
|
||||
video-camera:
|
||||
name: video
|
||||
vimeo:
|
||||
name: vimeo-v
|
||||
prefix: fab
|
||||
volume-control-phone:
|
||||
name: phone-volume
|
||||
wheelchair-alt:
|
||||
name: accessible-icon
|
||||
prefix: fab
|
||||
window-maximize:
|
||||
prefix: far
|
||||
window-restore:
|
||||
prefix: far
|
||||
youtube-play:
|
||||
name: youtube
|
||||
prefix: fab
|
791
static/fontawesome-pro-5.8.2-web/metadata/sponsors.yml
Normal file
791
static/fontawesome-pro-5.8.2-web/metadata/sponsors.yml
Normal file
@ -0,0 +1,791 @@
|
||||
accusoft:
|
||||
icons:
|
||||
- accusoft
|
||||
label: Accusoft
|
||||
url: 'https://www.accusoft.com'
|
||||
administrator-technology:
|
||||
icons:
|
||||
- stream
|
||||
label: Administrator Technology
|
||||
url: 'https://administrator.de'
|
||||
adversal:
|
||||
icons:
|
||||
- adversal
|
||||
label: Adversal
|
||||
url: 'https://www.adversal.com'
|
||||
affiliatetheme:
|
||||
icons:
|
||||
- affiliatetheme
|
||||
label: affiliatetheme
|
||||
url: 'https://affiliatetheme.io/en'
|
||||
algolia:
|
||||
icons:
|
||||
- algolia
|
||||
label: Algolia
|
||||
url: 'http://www.algolia.com'
|
||||
amazon-web-services:
|
||||
icons:
|
||||
- aws
|
||||
label: Amazon Web Services
|
||||
url: 'https://aws.amazon.com'
|
||||
amilia:
|
||||
icons:
|
||||
- amilia
|
||||
label: Amilia
|
||||
url: 'http://www.amilia.com'
|
||||
angry-creative:
|
||||
icons:
|
||||
- angrycreative
|
||||
label: Angry Creative
|
||||
url: 'https://angrycreative.se'
|
||||
app-signal:
|
||||
icons:
|
||||
- stroopwafel
|
||||
label: AppSignal
|
||||
url: 'https://appsignal.com'
|
||||
apper-systems-ab:
|
||||
icons:
|
||||
- apper
|
||||
label: Apper Systems AB
|
||||
url: 'http://www.apper.com'
|
||||
'asymmetrik,ltd':
|
||||
icons:
|
||||
- asymmetrik
|
||||
label: 'Asymmetrik, Ltd.'
|
||||
url: 'http://asymmetrik.com'
|
||||
ausmed-education:
|
||||
icons:
|
||||
- user-nurse
|
||||
label: Ausmed Education
|
||||
url: 'https://www.ausmed.com.au'
|
||||
avianex:
|
||||
icons:
|
||||
- avianex
|
||||
label: avianex
|
||||
url: 'https://www.avianex.de'
|
||||
bi-mobject:
|
||||
icons:
|
||||
- bimobject
|
||||
label: BIMobject
|
||||
url: 'http://bimobject.com'
|
||||
bity:
|
||||
icons:
|
||||
- bity
|
||||
label: Bity
|
||||
url: 'http://bity.com'
|
||||
blackpulp-designs:
|
||||
icons:
|
||||
- pray
|
||||
label: Blackpulp Designs
|
||||
url: 'https://www.blackpulp.com'
|
||||
blissbook:
|
||||
icons:
|
||||
- pen-fancy
|
||||
label: Blissbook
|
||||
url: 'https://blissbook.com'
|
||||
büromöbel-experte-gmb-h &co-kg:
|
||||
icons:
|
||||
- buromobelexperte
|
||||
label: Büromöbel-Experte GmbH & Co. KG.
|
||||
url: 'https://www.bueromoebel-experte.de'
|
||||
c-panel:
|
||||
icons:
|
||||
- cpanel
|
||||
label: cPanel
|
||||
url: 'http://cpanel.com'
|
||||
centercode:
|
||||
icons:
|
||||
- centercode
|
||||
label: Centercode
|
||||
url: 'https://www.centercode.com'
|
||||
cibltd:
|
||||
icons:
|
||||
- drum-steelpan
|
||||
label: Comprehensive Insurance Brokers Limited
|
||||
url: 'http://www.cibltd.com'
|
||||
clear-blue-technologies:
|
||||
icons:
|
||||
- solar-panel
|
||||
label: Clear Blue Technologies
|
||||
url: 'http://www.clearbluetechnologies.com'
|
||||
cloudscale-ch:
|
||||
icons:
|
||||
- cloudscale
|
||||
label: cloudscale.ch
|
||||
url: 'https://www.cloudscale.ch'
|
||||
cloudsmith:
|
||||
icons:
|
||||
- cloudsmith
|
||||
label: Cloudsmith
|
||||
url: 'https://cloudsmith.io'
|
||||
cloudversify:
|
||||
icons:
|
||||
- cloudversify
|
||||
label: cloudversify
|
||||
url: 'https://www.cloudversify.com'
|
||||
cuttlefish:
|
||||
icons:
|
||||
- cuttlefish
|
||||
label: Cuttlefish
|
||||
url: 'http://wearecuttlefish.com'
|
||||
cymedica:
|
||||
icons:
|
||||
- wave-square
|
||||
label: CyMedica
|
||||
url: 'https://www.cymedicaortho.com'
|
||||
darren-wiebe:
|
||||
icons:
|
||||
- church
|
||||
label: Darren Wiebe
|
||||
deploy-dog:
|
||||
icons:
|
||||
- deploydog
|
||||
label: deploy.dog
|
||||
url: 'http://deploy.dog'
|
||||
deskpro:
|
||||
icons:
|
||||
- deskpro
|
||||
label: Deskpro
|
||||
url: 'http://www.deskpro.com'
|
||||
discourse:
|
||||
icons:
|
||||
- discourse
|
||||
label: Discourse
|
||||
url: 'https://discourse.org'
|
||||
doc-hub:
|
||||
icons:
|
||||
- dochub
|
||||
label: DocHub
|
||||
url: 'https://dochub.com'
|
||||
draft2-digital:
|
||||
icons:
|
||||
- draft2digital
|
||||
label: Draft2Digital
|
||||
url: 'http://draft2digital.com'
|
||||
dyalog-apl:
|
||||
icons:
|
||||
- dyalog
|
||||
label: Dyalog APL
|
||||
url: 'http://www.dyalog.com'
|
||||
firstdraft:
|
||||
icons:
|
||||
- firstdraft
|
||||
label: firstdraft
|
||||
url: 'http://www.firstdraft.com'
|
||||
fleetplan:
|
||||
icons:
|
||||
- helicopter
|
||||
label: FLEETPLAN
|
||||
url: 'https://www.fleetplan.net'
|
||||
getaroom:
|
||||
icons:
|
||||
- archway
|
||||
- dumbbell
|
||||
- hotel
|
||||
- map-marked
|
||||
- map-marked-alt
|
||||
- monument
|
||||
- spa
|
||||
- swimmer
|
||||
- swimming-pool
|
||||
label: getaroom
|
||||
url: 'https://www.getaroom.com'
|
||||
git-kraken:
|
||||
icons:
|
||||
- gitkraken
|
||||
label: GitKraken
|
||||
url: 'https://www.gitkraken.com'
|
||||
gofore:
|
||||
icons:
|
||||
- gofore
|
||||
label: Gofore
|
||||
url: 'http://gofore.com'
|
||||
'gripfire,inc':
|
||||
icons:
|
||||
- gripfire
|
||||
label: 'Gripfire, Inc.'
|
||||
url: 'http://gripfire.io'
|
||||
harvard-medical-school:
|
||||
icons:
|
||||
- allergies
|
||||
- ambulance
|
||||
- band-aid
|
||||
- briefcase-medical
|
||||
- burn
|
||||
- capsules
|
||||
- diagnoses
|
||||
- dna
|
||||
- file-medical
|
||||
- file-medical-alt
|
||||
- first-aid
|
||||
- heart
|
||||
- heartbeat
|
||||
- hospital
|
||||
- hospital-alt
|
||||
- hospital-symbol
|
||||
- id-card-alt
|
||||
- notes-medical
|
||||
- pills
|
||||
- plus
|
||||
- prescription-bottle
|
||||
- prescription-bottle-alt
|
||||
- procedures
|
||||
- smoking
|
||||
- stethoscope
|
||||
- syringe
|
||||
- tablets
|
||||
- thermometer
|
||||
- user-md
|
||||
- vial
|
||||
- vials
|
||||
- weight
|
||||
- x-ray
|
||||
label: Harvard Medical School
|
||||
url: 'https://hms.harvard.edu'
|
||||
hips:
|
||||
icons:
|
||||
- hips
|
||||
label: Hips
|
||||
url: 'https://hips.com'
|
||||
hire-a-helper:
|
||||
icons:
|
||||
- archive
|
||||
- blanket
|
||||
- box-alt
|
||||
- box-fragile
|
||||
- box-full
|
||||
- box-open
|
||||
- box-up
|
||||
- boxes-alt
|
||||
- container-storage
|
||||
- couch
|
||||
- dolly
|
||||
- dolly-empty
|
||||
- fragile
|
||||
- lamp
|
||||
- loveseat
|
||||
- people-carry
|
||||
- person-carry
|
||||
- person-dolly
|
||||
- person-dolly-empty
|
||||
- ramp-loading
|
||||
- route
|
||||
- sign
|
||||
- suitcase
|
||||
- tape
|
||||
- truck-container
|
||||
- truck-couch
|
||||
- truck-loading
|
||||
- truck-moving
|
||||
- truck-ramp
|
||||
- wine-glass
|
||||
label: HireAHelper
|
||||
url: 'https://www.hireahelper.com'
|
||||
hornbill:
|
||||
icons:
|
||||
- hornbill
|
||||
label: Hornbill
|
||||
url: 'https://www.hornbill.com'
|
||||
hotjar:
|
||||
icons:
|
||||
- hotjar
|
||||
label: Hotjar
|
||||
url: 'https://www.hotjar.com'
|
||||
hub-spot:
|
||||
icons:
|
||||
- hubspot
|
||||
label: HubSpot
|
||||
url: 'http://www.HubSpot.com'
|
||||
in-site-systems:
|
||||
icons:
|
||||
- toolbox
|
||||
label: InSite Systems
|
||||
url: 'https://www.insitesystems.com'
|
||||
inspira-bvba:
|
||||
icons:
|
||||
- chess-knight
|
||||
label: Inspira bvba
|
||||
url: 'https://www.inspira.be'
|
||||
joe-emison:
|
||||
icons:
|
||||
- blender-phone
|
||||
label: Joe Emison
|
||||
joget:
|
||||
icons:
|
||||
- joget
|
||||
label: Joget
|
||||
url: 'http://www.joget.org'
|
||||
jon-galloway:
|
||||
icons:
|
||||
- crow
|
||||
label: Jon Galloway
|
||||
kevin-barone:
|
||||
icons:
|
||||
- file-contract
|
||||
label: Kevin Barone
|
||||
key-cdn:
|
||||
icons:
|
||||
- keycdn
|
||||
label: KeyCDN
|
||||
url: 'https://www.keycdn.com'
|
||||
korvue:
|
||||
icons:
|
||||
- korvue
|
||||
label: Korvue
|
||||
url: 'https://korvue.com'
|
||||
max-elman:
|
||||
icons:
|
||||
- frog
|
||||
label: Max Elman
|
||||
med-apps:
|
||||
icons:
|
||||
- medapps
|
||||
label: MedApps
|
||||
url: 'http://medapps.com.au'
|
||||
medapps:
|
||||
icons:
|
||||
- book-medical
|
||||
- book-user
|
||||
- books-medical
|
||||
- clinic-medical
|
||||
- clipboard-user
|
||||
- comment-alt-medical
|
||||
- comment-medical
|
||||
- crutch
|
||||
- crutches
|
||||
- disease
|
||||
- files-medical
|
||||
- head-side-brain
|
||||
- head-side-medical
|
||||
- hospital-user
|
||||
- hospitals
|
||||
- laptop-medical
|
||||
- pager
|
||||
- stretcher
|
||||
- user-md-chat
|
||||
- users-medical
|
||||
- walker
|
||||
label: MedApps
|
||||
url: 'https://medapps.com.au'
|
||||
megaport:
|
||||
icons:
|
||||
- megaport
|
||||
label: Megaport
|
||||
url: 'https://www.megaport.com'
|
||||
mix:
|
||||
icons:
|
||||
- mix
|
||||
label: Mix
|
||||
url: 'http://mix.com'
|
||||
mizuni:
|
||||
icons:
|
||||
- mizuni
|
||||
label: Mizuni
|
||||
url: 'http://www.mizuni.com'
|
||||
mrt:
|
||||
icons:
|
||||
- medrt
|
||||
label: MRT
|
||||
url: 'https://medrt.co.jp'
|
||||
mylogin-info:
|
||||
icons:
|
||||
- user-shield
|
||||
label: mylogin.info
|
||||
url: 'https://www.mylogin.info'
|
||||
napster:
|
||||
icons:
|
||||
- napster
|
||||
label: Napster
|
||||
url: 'http://www.napster.com'
|
||||
nimblr:
|
||||
icons:
|
||||
- nimblr
|
||||
label: Nimblr
|
||||
url: 'https://nimblr.ai'
|
||||
nompse:
|
||||
icons:
|
||||
- chalkboard
|
||||
- chalkboard-teacher
|
||||
label: Nomp.se
|
||||
url: 'https://nomp.se'
|
||||
ns8:
|
||||
icons:
|
||||
- ns8
|
||||
label: NS8
|
||||
url: 'https://www.ns8.com'
|
||||
nutritionix:
|
||||
icons:
|
||||
- nutritionix
|
||||
label: Nutritionix
|
||||
url: 'http://www.nutritionix.com'
|
||||
page4-corporation:
|
||||
icons:
|
||||
- page4
|
||||
label: page4 Corporation
|
||||
url: 'https://en.page4.com'
|
||||
pal-fed:
|
||||
icons:
|
||||
- palfed
|
||||
label: PalFed
|
||||
url: 'https://www.palfed.com'
|
||||
pcsg:
|
||||
icons:
|
||||
- horse-head
|
||||
label: PCSG
|
||||
url: 'https://www.pcsg.de'
|
||||
phabricator:
|
||||
icons:
|
||||
- phabricator
|
||||
label: Phabricator
|
||||
url: 'http://phacility.com'
|
||||
promo-wizard:
|
||||
icons:
|
||||
- hat-wizard
|
||||
label: Promo Wizard
|
||||
url: 'https://promowizard.co.uk'
|
||||
pulse-eight:
|
||||
icons:
|
||||
- volume-mute
|
||||
label: Pulse-Eight
|
||||
url: 'https://pulse-eight.com'
|
||||
purely-interactive:
|
||||
icons:
|
||||
- kiwi-bird
|
||||
label: Purely Interactive
|
||||
url: 'https://www.purelyinteractive.ca'
|
||||
pushed:
|
||||
icons:
|
||||
- pushed
|
||||
label: Pushed
|
||||
url: 'https://pushed.co'
|
||||
quin-scape:
|
||||
icons:
|
||||
- quinscape
|
||||
label: QuinScape
|
||||
url: 'https://www.quinscape.de'
|
||||
reacteurope:
|
||||
icons:
|
||||
- reacteurope
|
||||
label: ReactEurope
|
||||
url: 'https://www.react-europe.org'
|
||||
readme-io:
|
||||
icons:
|
||||
- readme
|
||||
label: Readme.io
|
||||
url: 'http://readme.io'
|
||||
red-river:
|
||||
icons:
|
||||
- red-river
|
||||
label: red river
|
||||
url: 'https://river.red'
|
||||
replyd:
|
||||
icons:
|
||||
- replyd
|
||||
label: replyd
|
||||
resolving:
|
||||
icons:
|
||||
- resolving
|
||||
label: Resolving
|
||||
url: 'https://resolving.com'
|
||||
rev-io:
|
||||
icons:
|
||||
- rev
|
||||
label: Rev.io
|
||||
url: 'https://rev.io'
|
||||
rock-rms:
|
||||
icons:
|
||||
- rockrms
|
||||
label: Rock RMS
|
||||
url: 'http://rockrms.com'
|
||||
rocket-chat:
|
||||
icons:
|
||||
- comment
|
||||
- comment-alt
|
||||
- comment-alt-check
|
||||
- comment-alt-dots
|
||||
- comment-alt-edit
|
||||
- comment-alt-exclamation
|
||||
- comment-alt-lines
|
||||
- comment-alt-minus
|
||||
- comment-alt-plus
|
||||
- comment-alt-slash
|
||||
- comment-alt-smile
|
||||
- comment-alt-times
|
||||
- comment-check
|
||||
- comment-dots
|
||||
- comment-edit
|
||||
- comment-exclamation
|
||||
- comment-lines
|
||||
- comment-minus
|
||||
- comment-plus
|
||||
- comment-slash
|
||||
- comment-smile
|
||||
- comment-times
|
||||
- comments
|
||||
- comments-alt
|
||||
- frown
|
||||
- meh
|
||||
- phone
|
||||
- phone-plus
|
||||
- phone-slash
|
||||
- poo
|
||||
- quote-left
|
||||
- quote-right
|
||||
- rocketchat
|
||||
- smile
|
||||
- smile-plus
|
||||
- video
|
||||
- video-plus
|
||||
- video-slash
|
||||
label: Rocket.Chat
|
||||
url: 'https://rocket.chat'
|
||||
rodney-oliver:
|
||||
icons:
|
||||
- folder-minus
|
||||
- folder-plus
|
||||
label: Rodney Oliver
|
||||
schlix:
|
||||
icons:
|
||||
- schlix
|
||||
label: SCHLIX
|
||||
url: 'http://schlix.com'
|
||||
search-eng-in:
|
||||
icons:
|
||||
- searchengin
|
||||
label: SearchEng.in
|
||||
url: 'http://searcheng.in'
|
||||
service-stack:
|
||||
icons:
|
||||
- servicestack
|
||||
label: ServiceStack
|
||||
url: 'https://servicestack.net'
|
||||
shawn-storie:
|
||||
icons:
|
||||
- teeth
|
||||
- teeth-open
|
||||
label: Shawn Storie
|
||||
shopware:
|
||||
icons:
|
||||
- shopware
|
||||
label: Shopware
|
||||
url: 'https://shopware.de'
|
||||
shp:
|
||||
icons:
|
||||
- school
|
||||
label: SHP
|
||||
url: 'http://shp.com'
|
||||
silicon-barn-inc:
|
||||
icons:
|
||||
- project-diagram
|
||||
label: Silicon Barn Inc
|
||||
url: 'https://siliconbarn.com'
|
||||
sistrix:
|
||||
icons:
|
||||
- sistrix
|
||||
label: SISTRIX
|
||||
url: 'https://www.sistrix.de'
|
||||
smup:
|
||||
icons:
|
||||
- shoe-prints
|
||||
label: Smup
|
||||
url: 'https://www.atomsoftware.com.au'
|
||||
speakap:
|
||||
icons:
|
||||
- speakap
|
||||
label: Speakap
|
||||
url: 'https://speakap.com'
|
||||
stay-linked:
|
||||
icons:
|
||||
- barcode-alt
|
||||
- barcode-read
|
||||
- barcode-scan
|
||||
- box
|
||||
- box-check
|
||||
- boxes
|
||||
- clipboard-check
|
||||
- clipboard-list
|
||||
- conveyor-belt
|
||||
- conveyor-belt-alt
|
||||
- dolly
|
||||
- dolly-empty
|
||||
- dolly-flatbed
|
||||
- dolly-flatbed-alt
|
||||
- dolly-flatbed-empty
|
||||
- forklift
|
||||
- hand-holding-box
|
||||
- hand-receiving
|
||||
- inventory
|
||||
- pallet
|
||||
- pallet-alt
|
||||
- scanner
|
||||
- scanner-keyboard
|
||||
- scanner-touchscreen
|
||||
- shipping-fast
|
||||
- shipping-timed
|
||||
- tablet-rugged
|
||||
- truck
|
||||
- warehouse
|
||||
- warehouse-alt
|
||||
label: StayLinked
|
||||
url: 'https://www.staylinked.com'
|
||||
sticker-mule:
|
||||
icons:
|
||||
- sticker-mule
|
||||
label: Sticker Mule
|
||||
url: 'https://stickermule.com'
|
||||
studio-vinari:
|
||||
icons:
|
||||
- studiovinari
|
||||
label: Studio Vinari
|
||||
url: 'https://studiovinari.com'
|
||||
supple:
|
||||
icons:
|
||||
- ad
|
||||
- analytics
|
||||
- badge-check
|
||||
- badge-dollar
|
||||
- badge-percent
|
||||
- bullhorn
|
||||
- bullseye
|
||||
- bullseye-arrow
|
||||
- bullseye-pointer
|
||||
- comment-alt-dollar
|
||||
- comment-dollar
|
||||
- comments-alt-dollar
|
||||
- comments-dollar
|
||||
- envelope-open-dollar
|
||||
- envelope-open-text
|
||||
- funnel-dollar
|
||||
- gift-card
|
||||
- lightbulb-dollar
|
||||
- lightbulb-exclamation
|
||||
- lightbulb-on
|
||||
- lightbulb-slash
|
||||
- mail-bulk
|
||||
- megaphone
|
||||
- poll
|
||||
- poll-h
|
||||
- search-dollar
|
||||
- search-location
|
||||
- supple
|
||||
- user-crown
|
||||
- users-crown
|
||||
label: Supple
|
||||
url: 'https://supple.com.au'
|
||||
the-red-yeti:
|
||||
icons:
|
||||
- the-red-yeti
|
||||
label: The Red Yeti
|
||||
url: 'http://theredyeti.com'
|
||||
the-us-sunnah-foundation:
|
||||
icons:
|
||||
- book-heart
|
||||
- box-heart
|
||||
- box-usd
|
||||
- dollar-sign
|
||||
- donate
|
||||
- dove
|
||||
- gift
|
||||
- globe
|
||||
- hand-heart
|
||||
- hand-holding-heart
|
||||
- hand-holding-seedling
|
||||
- hand-holding-usd
|
||||
- hand-holding-water
|
||||
- hands-heart
|
||||
- hands-helping
|
||||
- hands-usd
|
||||
- handshake
|
||||
- handshake-alt
|
||||
- heart
|
||||
- heart-circle
|
||||
- heart-square
|
||||
- home-heart
|
||||
- leaf
|
||||
- leaf-heart
|
||||
- parachute-box
|
||||
- piggy-bank
|
||||
- ribbon
|
||||
- seedling
|
||||
- usd-circle
|
||||
- usd-square
|
||||
label: The us-Sunnah Foundation
|
||||
url: 'https://www.ussunnah.org'
|
||||
themeco:
|
||||
icons:
|
||||
- themeco
|
||||
label: Themeco
|
||||
url: 'https://theme.co'
|
||||
think-peaks:
|
||||
icons:
|
||||
- think-peaks
|
||||
label: Think Peaks
|
||||
url: 'https://thinkpeaks.com/'
|
||||
typo3:
|
||||
icons:
|
||||
- typo3
|
||||
label: Typo3
|
||||
url: 'https://typo3.org'
|
||||
uniregistry:
|
||||
icons:
|
||||
- uniregistry
|
||||
label: Uniregistry
|
||||
url: 'https://uniregistry.com'
|
||||
us-sunnah-foundation:
|
||||
icons:
|
||||
- ussunnah
|
||||
label: us-Sunnah Foundation
|
||||
url: 'https://www.ussunnah.org'
|
||||
vaadin:
|
||||
icons:
|
||||
- vaadin
|
||||
label: Vaadin
|
||||
url: 'http://vaadin.com'
|
||||
via:
|
||||
icons:
|
||||
- car-crash
|
||||
- draw-circle
|
||||
- draw-polygon
|
||||
- draw-square
|
||||
- house-damage
|
||||
- layer-group
|
||||
- layer-minus
|
||||
- layer-plus
|
||||
- skull-crossbones
|
||||
- user-injured
|
||||
label: VIA Traffic Software Solutions
|
||||
url: 'https://www.via.software'
|
||||
victor-costan:
|
||||
icons:
|
||||
- otter
|
||||
label: Staphany Park and Victor Costan
|
||||
vnv:
|
||||
icons:
|
||||
- vnv
|
||||
label: VNV
|
||||
url: 'https://www.vnv.ch'
|
||||
weedable:
|
||||
icons:
|
||||
- bong
|
||||
- cannabis
|
||||
- hippo
|
||||
- joint
|
||||
- mortar-pestle
|
||||
- prescription
|
||||
label: Weedable
|
||||
url: 'https://www.weedable.com'
|
||||
whmcs:
|
||||
icons:
|
||||
- whmcs
|
||||
label: WHMCS
|
||||
url: 'https://www.whmcs.com'
|
||||
workrails:
|
||||
icons:
|
||||
- briefcase
|
||||
label: WorkRails
|
||||
url: 'https://www.workrails.com'
|
||||
wpressr:
|
||||
icons:
|
||||
- wpressr
|
||||
label: wpressr
|
||||
url: 'https://wpressr.com'
|
20
static/fontawesome-pro-5.8.2-web/scss/_animated.scss
Normal file
20
static/fontawesome-pro-5.8.2-web/scss/_animated.scss
Normal file
@ -0,0 +1,20 @@
|
||||
// Animated Icons
|
||||
// --------------------------
|
||||
|
||||
.#{$fa-css-prefix}-spin {
|
||||
animation: fa-spin 2s infinite linear;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-pulse {
|
||||
animation: fa-spin 1s infinite steps(8);
|
||||
}
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
20
static/fontawesome-pro-5.8.2-web/scss/_bordered-pulled.scss
Normal file
20
static/fontawesome-pro-5.8.2-web/scss/_bordered-pulled.scss
Normal file
@ -0,0 +1,20 @@
|
||||
// Bordered & Pulled
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-border {
|
||||
border: solid .08em $fa-border-color;
|
||||
border-radius: .1em;
|
||||
padding: .2em .25em .15em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-pull-left { float: left; }
|
||||
.#{$fa-css-prefix}-pull-right { float: right; }
|
||||
|
||||
.#{$fa-css-prefix},
|
||||
.fas,
|
||||
.far,
|
||||
.fal,
|
||||
.fab {
|
||||
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||
}
|
20
static/fontawesome-pro-5.8.2-web/scss/_core.scss
Normal file
20
static/fontawesome-pro-5.8.2-web/scss/_core.scss
Normal file
@ -0,0 +1,20 @@
|
||||
// Base Class Definition
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix},
|
||||
.fas,
|
||||
.far,
|
||||
.fal,
|
||||
.fab {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
text-rendering: auto;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
%fa-icon {
|
||||
@include fa-icon;
|
||||
}
|
6
static/fontawesome-pro-5.8.2-web/scss/_fixed-width.scss
Normal file
6
static/fontawesome-pro-5.8.2-web/scss/_fixed-width.scss
Normal file
@ -0,0 +1,6 @@
|
||||
// Fixed Width Icons
|
||||
// -------------------------
|
||||
.#{$fa-css-prefix}-fw {
|
||||
text-align: center;
|
||||
width: $fa-fw-width;
|
||||
}
|
1989
static/fontawesome-pro-5.8.2-web/scss/_icons.scss
Normal file
1989
static/fontawesome-pro-5.8.2-web/scss/_icons.scss
Normal file
File diff suppressed because it is too large
Load Diff
23
static/fontawesome-pro-5.8.2-web/scss/_larger.scss
Normal file
23
static/fontawesome-pro-5.8.2-web/scss/_larger.scss
Normal file
@ -0,0 +1,23 @@
|
||||
// Icon Sizes
|
||||
// -------------------------
|
||||
|
||||
// makes the font 33% larger relative to the icon container
|
||||
.#{$fa-css-prefix}-lg {
|
||||
font-size: (4em / 3);
|
||||
line-height: (3em / 4);
|
||||
vertical-align: -.0667em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-xs {
|
||||
font-size: .75em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-sm {
|
||||
font-size: .875em;
|
||||
}
|
||||
|
||||
@for $i from 1 through 10 {
|
||||
.#{$fa-css-prefix}-#{$i}x {
|
||||
font-size: $i * 1em;
|
||||
}
|
||||
}
|
18
static/fontawesome-pro-5.8.2-web/scss/_list.scss
Normal file
18
static/fontawesome-pro-5.8.2-web/scss/_list.scss
Normal file
@ -0,0 +1,18 @@
|
||||
// List Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-ul {
|
||||
list-style-type: none;
|
||||
margin-left: $fa-li-width * 5/4;
|
||||
padding-left: 0;
|
||||
|
||||
> li { position: relative; }
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-li {
|
||||
left: -$fa-li-width;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: $fa-li-width;
|
||||
line-height: inherit;
|
||||
}
|
56
static/fontawesome-pro-5.8.2-web/scss/_mixins.scss
Normal file
56
static/fontawesome-pro-5.8.2-web/scss/_mixins.scss
Normal file
@ -0,0 +1,56 @@
|
||||
// Mixins
|
||||
// --------------------------
|
||||
|
||||
@mixin fa-icon {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
@mixin fa-icon-rotate($degrees, $rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
|
||||
transform: rotate($degrees);
|
||||
}
|
||||
|
||||
@mixin fa-icon-flip($horiz, $vert, $rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
|
||||
transform: scale($horiz, $vert);
|
||||
}
|
||||
|
||||
|
||||
// Only display content to screen readers. A la Bootstrap 4.
|
||||
//
|
||||
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||
|
||||
@mixin sr-only {
|
||||
border: 0;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||
//
|
||||
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||
//
|
||||
// Credit: HTML5 Boilerplate
|
||||
|
||||
@mixin sr-only-focusable {
|
||||
&:active,
|
||||
&:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto;
|
||||
}
|
||||
}
|
24
static/fontawesome-pro-5.8.2-web/scss/_rotated-flipped.scss
Normal file
24
static/fontawesome-pro-5.8.2-web/scss/_rotated-flipped.scss
Normal file
@ -0,0 +1,24 @@
|
||||
// Rotated & Flipped Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
|
||||
.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
|
||||
.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
|
||||
|
||||
.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
|
||||
.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
|
||||
.#{$fa-css-prefix}-flip-both, .#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); }
|
||||
|
||||
// Hook for IE8-9
|
||||
// -------------------------
|
||||
|
||||
:root {
|
||||
.#{$fa-css-prefix}-rotate-90,
|
||||
.#{$fa-css-prefix}-rotate-180,
|
||||
.#{$fa-css-prefix}-rotate-270,
|
||||
.#{$fa-css-prefix}-flip-horizontal,
|
||||
.#{$fa-css-prefix}-flip-vertical,
|
||||
.#{$fa-css-prefix}-flip-both {
|
||||
filter: none;
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
// Screen Readers
|
||||
// -------------------------
|
||||
|
||||
.sr-only { @include sr-only; }
|
||||
.sr-only-focusable { @include sr-only-focusable; }
|
2062
static/fontawesome-pro-5.8.2-web/scss/_shims.scss
Normal file
2062
static/fontawesome-pro-5.8.2-web/scss/_shims.scss
Normal file
File diff suppressed because it is too large
Load Diff
31
static/fontawesome-pro-5.8.2-web/scss/_stacked.scss
Normal file
31
static/fontawesome-pro-5.8.2-web/scss/_stacked.scss
Normal file
@ -0,0 +1,31 @@
|
||||
// Stacked Icons
|
||||
// -------------------------
|
||||
|
||||
.#{$fa-css-prefix}-stack {
|
||||
display: inline-block;
|
||||
height: 2em;
|
||||
line-height: 2em;
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
width: ($fa-fw-width*2);
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-stack-1x,
|
||||
.#{$fa-css-prefix}-stack-2x {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-stack-1x {
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-stack-2x {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
.#{$fa-css-prefix}-inverse {
|
||||
color: $fa-inverse;
|
||||
}
|
2004
static/fontawesome-pro-5.8.2-web/scss/_variables.scss
Normal file
2004
static/fontawesome-pro-5.8.2-web/scss/_variables.scss
Normal file
File diff suppressed because it is too large
Load Diff
22
static/fontawesome-pro-5.8.2-web/scss/brands.scss
Normal file
22
static/fontawesome-pro-5.8.2-web/scss/brands.scss
Normal file
@ -0,0 +1,22 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-display: $fa-font-display;
|
||||
src: url('#{$fa-font-path}/fa-brands-400.eot');
|
||||
src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
|
||||
url('#{$fa-font-path}/fa-brands-400.woff') format('woff'),
|
||||
url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'),
|
||||
url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fab {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
}
|
16
static/fontawesome-pro-5.8.2-web/scss/fontawesome.scss
vendored
Normal file
16
static/fontawesome-pro-5.8.2-web/scss/fontawesome.scss
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
@import 'mixins';
|
||||
@import 'core';
|
||||
@import 'larger';
|
||||
@import 'fixed-width';
|
||||
@import 'list';
|
||||
@import 'bordered-pulled';
|
||||
@import 'animated';
|
||||
@import 'rotated-flipped';
|
||||
@import 'stacked';
|
||||
@import 'icons';
|
||||
@import 'screen-reader';
|
23
static/fontawesome-pro-5.8.2-web/scss/light.scss
Normal file
23
static/fontawesome-pro-5.8.2-web/scss/light.scss
Normal file
@ -0,0 +1,23 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: $fa-font-display;
|
||||
src: url('#{$fa-font-path}/fa-light-300.eot');
|
||||
src: url('#{$fa-font-path}/fa-light-300.eot?#iefix') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/fa-light-300.woff2') format('woff2'),
|
||||
url('#{$fa-font-path}/fa-light-300.woff') format('woff'),
|
||||
url('#{$fa-font-path}/fa-light-300.ttf') format('truetype'),
|
||||
url('#{$fa-font-path}/fa-light-300.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fal {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 300;
|
||||
}
|
23
static/fontawesome-pro-5.8.2-web/scss/regular.scss
Normal file
23
static/fontawesome-pro-5.8.2-web/scss/regular.scss
Normal file
@ -0,0 +1,23 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: $fa-font-display;
|
||||
src: url('#{$fa-font-path}/fa-regular-400.eot');
|
||||
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
|
||||
url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),
|
||||
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),
|
||||
url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.far {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 400;
|
||||
}
|
24
static/fontawesome-pro-5.8.2-web/scss/solid.scss
Normal file
24
static/fontawesome-pro-5.8.2-web/scss/solid.scss
Normal file
@ -0,0 +1,24 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: $fa-font-display;
|
||||
src: url('#{$fa-font-path}/fa-solid-900.eot');
|
||||
src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
|
||||
url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
|
||||
url('#{$fa-font-path}/fa-solid-900.woff') format('woff'),
|
||||
url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'),
|
||||
url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
|
||||
}
|
||||
|
||||
.fa,
|
||||
.fas {
|
||||
font-family: 'Font Awesome 5 Pro';
|
||||
font-weight: 900;
|
||||
}
|
6
static/fontawesome-pro-5.8.2-web/scss/v4-shims.scss
Normal file
6
static/fontawesome-pro-5.8.2-web/scss/v4-shims.scss
Normal file
@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.8.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
@import 'variables';
|
||||
@import 'shims';
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user