diff --git a/om_aed_currency_symbol/README.rst b/om_aed_currency_symbol/README.rst new file mode 100644 index 00000000..efe90e55 --- /dev/null +++ b/om_aed_currency_symbol/README.rst @@ -0,0 +1,80 @@ +======================= +UAE Dirham Symbol (AED) +======================= + +A bridge until Odoo supports the sign. + +The UAE Dirham sign (U+20C3) is new: it joined Unicode in version 18.0, and Odoo still shows 'AED' by default. + +This module displays the official sign today, using a small font for devices that don't support it yet. + +Once Odoo supports the sign natively, we'll announce it here and discontinue this module. + +Uninstalling the module restores 'AED', or Odoo's own sign if supported, without changing anything else in your database. + +Features +======== + +Shows the UAE Dirham sign (U+20C3 UAE DIRHAM SIGN, Unicode 18.0) for the AED currency in the Odoo +backend, PDF reports, website, customer portal and Point of Sale. + +* Uses the official Unicode character, so copied amounts keep the real sign. +* The sign is placed before the amount. A symbol typed by the user is kept; the button *Use UAE + Dirham Sign* on the currency form switches to the sign. +* Symbols set by older workarounds (for example U+1D01) are replaced automatically. +* Works with every report layout font (Lato, Roboto, Open Sans, Montserrat, Oswald, Raleway, + Tajawal, Fira Mono), regular and bold. +* No element's ``font-family`` is changed: interface fonts, report fonts and code editors + (Ace/CodeMirror monospace) keep their own fonts. + +How it works +============ + +* On install, the AED currency symbol becomes U+20C3, placed before the amount. +* A tiny web font (one glyph, regular and bold, in ``static/src/fonts``) is declared with + ``@font-face`` rules restricted with ``unicode-range: U+20C3`` and added to font families that + already exist in Odoo's stacks (``Odoo Unicode Support Noto``, and the report layout fonts in the + report bundle). +* The CSS references the font files by URL instead of embedding them, so each font file is + downloaded once and cached, and the report stylesheet stays small. +* On uninstall, the symbol of AED is set back to ``AED``, placed after the amount, but only if it is + still the Dirham sign set by this module. A symbol typed by the user is never changed. If Odoo's own + currency data already uses U+20C3 (a future Odoo version), the symbol is left untouched. + +Font origin and license +======================= + +The font files in ``static/src/fonts`` contain a single glyph, U+20C3 UAE DIRHAM SIGN, in a regular +and a bold weight (TTF, WOFF, WOFF2). + +* **Creator:** the glyph outline (``om_uae_dirham.svg``) was drawn for this module by Akshay Manoj, + with the help of an AI tool, and the fonts were built from it. It is not taken from any third-party + font. +* **License:** LGPL-3, the same license as the module (also recorded in the copyright field of the + font files). No third-party font software is included. +* **Design:** the glyph follows the official sign published by the Central Bank of the UAE. + +Tests +===== + +:: + + odoo-bin -d -i om_aed_currency_symbol,web_tour --test-enable --test-tags=/om_aed_currency_symbol + +Credits +======= + +Contributors +------------ + +Akshay Manoj + +Author & Maintainer +------------------- + +This module is maintained by the Odoo Mates + +License +======= + +LGPL-3 diff --git a/om_aed_currency_symbol/__init__.py b/om_aed_currency_symbol/__init__.py new file mode 100644 index 00000000..b4aa8213 --- /dev/null +++ b/om_aed_currency_symbol/__init__.py @@ -0,0 +1,13 @@ +# Part of om_aed_currency_symbol (Odoo Mates). License: LGPL-3. +from . import models +from .models.res_currency import DIRHAM_SIGN + + +def post_init_hook(env): + """Show the UAE Dirham sign for AED (all companies share the currency record).""" + env['res.currency']._om_set_dirham_sign() + + +def uninstall_hook(env): + """Give AED its standard symbol back (unless Odoo's own data already uses the Dirham sign).""" + env['res.currency']._om_restore_aed_symbol() diff --git a/om_aed_currency_symbol/__manifest__.py b/om_aed_currency_symbol/__manifest__.py new file mode 100644 index 00000000..d7412438 --- /dev/null +++ b/om_aed_currency_symbol/__manifest__.py @@ -0,0 +1,64 @@ +# Part of om_aed_currency_symbol (Odoo Mates). License: LGPL-3. +{ + 'name': 'Odoo 20 UAE Dirham Symbol (AED)', + 'version': '1.0', + 'author': 'Odoo Mates', + 'maintainer': 'Odoo Mates', + 'support': 'odoomates@gmail.com', + 'category': 'Accounting/Localizations', + 'summary': 'UAE Dirham Symbol, New AED Currency Sign, Dirham Sign in Invoices, Reports, POS and Website, ' + 'AED Symbol, UAE Currency Symbol, Emirati Dirham Sign', + 'description': """ +UAE Dirham Symbol (AED) +======================= + +A bridge until Odoo supports the sign. + +The UAE Dirham sign (U+20C3) is new: it joined Unicode in version 18.0, and Odoo still shows 'AED' by +default. + +This module displays the official sign today, using a small font for devices that don't support it yet. + +Once Odoo supports the sign natively, we'll announce it here and discontinue this module. + +Uninstalling the module restores 'AED', or Odoo's own sign if supported, without changing anything else in +your database. + +Shows the new UAE Dirham sign (U+20C3, Unicode 18.0) instead of "AED" everywhere Odoo prints an +amount in dirhams: backend, PDF reports (invoices, quotations, payslips...), website, portal and +Point of Sale. + +* Uses the official Unicode character, so copied amounts keep the real sign. +* A small web font draws the sign until operating systems ship it; nothing else changes: + your interface fonts, report fonts and code editors keep their own fonts. +* Works with every report layout font (Lato, Roboto, Open Sans, Montserrat, Oswald, Raleway, + Tajawal, Fira Mono), regular and bold. +* Symbol placed before the amount; uninstalling restores "AED" (or Odoo's own sign, once supported). + +Contributor: Akshay Manoj. +""", + 'license': 'LGPL-3', + 'depends': ['web'], + 'data': [ + 'views/res_currency_views.xml', + ], + 'assets': { + 'web.assets_backend': [ + 'om_aed_currency_symbol/static/src/css/om_aed_symbol.css', + ], + 'web.assets_frontend': [ + 'om_aed_currency_symbol/static/src/css/om_aed_symbol.css', + ], + 'web.report_assets_common': [ + 'om_aed_currency_symbol/static/src/css/om_aed_symbol_report.css', + ], + 'point_of_sale._assets_pos': [ + 'om_aed_currency_symbol/static/src/css/om_aed_symbol_report.css', + ], + }, + 'images': ['static/description/banner.png'], + 'post_init_hook': 'post_init_hook', + 'uninstall_hook': 'uninstall_hook', + 'installable': True, + 'application': False, +} diff --git a/om_aed_currency_symbol/models/__init__.py b/om_aed_currency_symbol/models/__init__.py new file mode 100644 index 00000000..ea5a680d --- /dev/null +++ b/om_aed_currency_symbol/models/__init__.py @@ -0,0 +1 @@ +from . import res_currency diff --git a/om_aed_currency_symbol/models/res_currency.py b/om_aed_currency_symbol/models/res_currency.py new file mode 100644 index 00000000..422d2609 --- /dev/null +++ b/om_aed_currency_symbol/models/res_currency.py @@ -0,0 +1,76 @@ +# Part of om_aed_currency_symbol (Odoo Mates). License: LGPL-3. +import logging + +from lxml import etree + +from odoo import api, models +from odoo.tools import file_open + +_logger = logging.getLogger(__name__) + +# U+20C3 UAE DIRHAM SIGN (Unicode 18.0), unveiled by the Central Bank of the UAE in March 2025. +DIRHAM_SIGN = '⃃' +STANDARD_SYMBOL = 'AED' +# Symbols other modules or users used for AED; they are replaced by the real sign. +REPLACEABLE_SYMBOLS = {STANDARD_SYMBOL, 'Dhs', 'DH', 'Dh', 'د.إ', 'دإ', 'ᴁ', 'Æ', ''} + + +class ResCurrency(models.Model): + _inherit = 'res.currency' + + @api.model + def _om_aed_currency(self): + currency = self.env.ref('base.AED', raise_if_not_found=False) + if not currency: + currency = self.with_context(active_test=False).search([('name', '=', 'AED')], limit=1) + return currency.sudo() + + @api.model + def _om_set_dirham_sign(self, force=False): + """Set U+20C3 as the AED symbol, placed before the amount. + + A symbol that a user typed on purpose (not in the known list) is kept unless ``force``. + """ + currency = self._om_aed_currency() + if not currency: + _logger.info('om_aed_currency_symbol: no AED currency found, nothing to do.') + return False + if currency.symbol == DIRHAM_SIGN and currency.position == 'before': + return True + if force or currency.symbol in REPLACEABLE_SYMBOLS or currency.symbol == DIRHAM_SIGN: + currency.write({'symbol': DIRHAM_SIGN, 'position': 'before'}) + return True + _logger.info('om_aed_currency_symbol: AED symbol %r kept (custom value).', currency.symbol) + return False + + @api.model + def _om_native_aed_symbol(self): + """Symbol that Odoo's own currency data gives to AED, or None if it cannot be read. + + This module is a bridge until Odoo supports U+20C3 natively. Once Odoo's data uses the sign + itself, uninstalling the module must not overwrite it. + """ + try: + with file_open('base/data/res_currency_data.xml', 'rb') as data_file: + nodes = etree.parse(data_file).xpath("//record[@id='AED']/field[@name='symbol']") + except (OSError, etree.XMLSyntaxError, ValueError): + _logger.info('om_aed_currency_symbol: could not read the native AED symbol of Odoo.') + return None + return nodes[0].text if nodes else None + + @api.model + def _om_restore_aed_symbol(self): + """Give AED its standard symbol back, unless Odoo itself already uses the Dirham sign.""" + currency = self._om_aed_currency() + if not currency or currency.symbol != DIRHAM_SIGN: + return True + if self._om_native_aed_symbol() == DIRHAM_SIGN: + # Odoo's own data already uses U+20C3: leave the symbol exactly as Odoo defines it. + return True + currency.write({'symbol': STANDARD_SYMBOL, 'position': 'after'}) + return True + + def action_om_use_dirham_sign(self): + """Button on the currency form: use the Dirham sign even if a custom symbol was set.""" + self._om_set_dirham_sign(force=True) + return True diff --git a/om_aed_currency_symbol/static/description/banner.png b/om_aed_currency_symbol/static/description/banner.png new file mode 100644 index 00000000..10250a25 Binary files /dev/null and b/om_aed_currency_symbol/static/description/banner.png differ diff --git a/om_aed_currency_symbol/static/description/icon.png b/om_aed_currency_symbol/static/description/icon.png new file mode 100644 index 00000000..1a6286ff Binary files /dev/null and b/om_aed_currency_symbol/static/description/icon.png differ diff --git a/om_aed_currency_symbol/static/description/index.html b/om_aed_currency_symbol/static/description/index.html new file mode 100644 index 00000000..9543296d --- /dev/null +++ b/om_aed_currency_symbol/static/description/index.html @@ -0,0 +1,56 @@ +
+
+

UAE Dirham Symbol (AED)

+

The new UAE Dirham sign everywhere Odoo shows an amount in dirhams

+ UAE Dirham Symbol +
+
+ +
+
+

A bridge until Odoo supports the sign

+

The UAE Dirham sign (U+20C3) is new: it joined Unicode in version 18.0, and Odoo still shows 'AED' by default.

+

This module displays the official sign today, using a small font for devices that don't support it yet.

+

Once Odoo supports the sign natively, we'll announce it here and discontinue this module.

+

Uninstalling the module restores 'AED', or Odoo's own sign if supported, without changing anything else in your database.

+
+
+ +
+
+

Key Features

+
    +
  • Replaces "AED" with the new UAE Dirham sign unveiled by the Central Bank of the UAE.
  • +
  • Uses the official Unicode character U+20C3 (Unicode 18.0): copied amounts keep the real sign.
  • +
  • Shown in the backend, PDF reports (invoices, quotations, purchase orders, payslips...), website, customer portal and Point of Sale.
  • +
  • Works with every report layout font (Lato, Roboto, Open Sans, Montserrat, Oswald, Raleway, Tajawal, Fira Mono) in regular and bold.
  • +
  • Nothing else changes: interface fonts, report fonts and code editors keep their own fonts. Only the dirham sign uses the small embedded font.
  • +
  • Symbol placed before the amount. Change it any time in Accounting > Configuration > Currencies.
  • +
  • Replaces symbols set by older workarounds automatically; a symbol you typed yourself is kept (button Use UAE Dirham Sign on the currency to switch).
  • +
  • Uninstall restores "AED" (or Odoo's own sign once supported). No configuration, no dependency other than the web client.
  • +
+
+
+ +
+
+

Invoice

+ Invoice with the UAE Dirham sign +

PDF Report

+ PDF invoice with the UAE Dirham sign +

List Views

+ Invoice list with the UAE Dirham sign +
+
+ +
+
+

Good to Know

+
    +
  • Inside Odoo the sign is drawn by the module. In e-mails, Excel or CSV exports opened elsewhere, it depends on the reader's device: devices without a font for U+20C3 (Unicode 18.0) show a placeholder until their system adds it.
  • +
  • The sign is applied to the AED currency, shared by all companies of the database.
  • +
+

Support: odoomates@gmail.com

+

Contributor: Akshay Manoj

+
+
diff --git a/om_aed_currency_symbol/static/description/screenshots/invoice_form.png b/om_aed_currency_symbol/static/description/screenshots/invoice_form.png new file mode 100644 index 00000000..9aad9010 Binary files /dev/null and b/om_aed_currency_symbol/static/description/screenshots/invoice_form.png differ diff --git a/om_aed_currency_symbol/static/description/screenshots/invoice_list.png b/om_aed_currency_symbol/static/description/screenshots/invoice_list.png new file mode 100644 index 00000000..461514cc Binary files /dev/null and b/om_aed_currency_symbol/static/description/screenshots/invoice_list.png differ diff --git a/om_aed_currency_symbol/static/description/screenshots/invoice_pdf.png b/om_aed_currency_symbol/static/description/screenshots/invoice_pdf.png new file mode 100644 index 00000000..af0757c9 Binary files /dev/null and b/om_aed_currency_symbol/static/description/screenshots/invoice_pdf.png differ diff --git a/om_aed_currency_symbol/static/src/css/om_aed_symbol.css b/om_aed_currency_symbol/static/src/css/om_aed_symbol.css new file mode 100644 index 00000000..55f7a09e --- /dev/null +++ b/om_aed_currency_symbol/static/src/css/om_aed_symbol.css @@ -0,0 +1,35 @@ +/* Part of om_aed_currency_symbol (Odoo Mates). License: LGPL-3. + * + * UAE DIRHAM SIGN (U+20C3, Unicode 18.0) for Odoo. + * + * The glyph is added to font families that are already part of Odoo's font stacks, restricted with + * unicode-range to the single character U+20C3. No element receives a new font-family: the fonts of + * the interface, code editors (monospace) and reports stay exactly as they are. Only the dirham sign + * is drawn with this font, and only while the operating system has no glyph of its own for it. + * One face per weight so that light, regular and bold text all find the glyph. + * + * The font files in static/src/fonts are referenced by URL (not embedded as base64), so each file is + * downloaded once and cached. Weights 100-500 use the regular font, 600-900 the bold one. + */ + +/* Odoo inserts this family before the generic font of every stack (backend, website, POS). */ +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Explicit family: ⃃ */ +@font-face { font-family: 'OM UAE Dirham'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } diff --git a/om_aed_currency_symbol/static/src/css/om_aed_symbol_report.css b/om_aed_currency_symbol/static/src/css/om_aed_symbol_report.css new file mode 100644 index 00000000..bd739b39 --- /dev/null +++ b/om_aed_currency_symbol/static/src/css/om_aed_symbol_report.css @@ -0,0 +1,126 @@ +/* Part of om_aed_currency_symbol (Odoo Mates). License: LGPL-3. + * + * UAE DIRHAM SIGN (U+20C3, Unicode 18.0) for Odoo. + * + * The glyph is added to font families that are already part of Odoo's font stacks, restricted with + * unicode-range to the single character U+20C3. No element receives a new font-family: the fonts of + * the interface, code editors (monospace) and reports stay exactly as they are. Only the dirham sign + * is drawn with this font, and only while the operating system has no glyph of its own for it. + * One face per weight so that light, regular and bold text all find the glyph. + * + * The font files in static/src/fonts are referenced by URL (not embedded as base64), so each file is + * downloaded once and cached. Weights 100-500 use the regular font, 600-900 the bold one. + */ + +/* Report fonts (Settings > Document Layout) are web fonts declared by Odoo in this bundle; + * these unicode-range faces are merged into each of them. */ + +/* Odoo Unicode Support Noto */ +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Odoo Unicode Support Noto'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* OM UAE Dirham */ +@font-face { font-family: 'OM UAE Dirham'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'OM UAE Dirham'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Lato */ +@font-face { font-family: 'Lato'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Lato'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Lato'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Lato'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Lato'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Lato'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Lato'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Lato'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Lato'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Roboto */ +@font-face { font-family: 'Roboto'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Roboto'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Roboto'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Roboto'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Roboto'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Roboto'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Roboto'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Roboto'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Roboto'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Open_Sans */ +@font-face { font-family: 'Open_Sans'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Open_Sans'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Open_Sans'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Open_Sans'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Open_Sans'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Open_Sans'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Open_Sans'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Open_Sans'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Open_Sans'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Montserrat */ +@font-face { font-family: 'Montserrat'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Montserrat'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Montserrat'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Montserrat'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Montserrat'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Montserrat'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Montserrat'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Montserrat'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Montserrat'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Oswald */ +@font-face { font-family: 'Oswald'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Oswald'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Oswald'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Oswald'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Oswald'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Oswald'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Oswald'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Oswald'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Oswald'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Raleway */ +@font-face { font-family: 'Raleway'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Raleway'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Raleway'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Raleway'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Raleway'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Raleway'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Raleway'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Raleway'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Raleway'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Tajawal */ +@font-face { font-family: 'Tajawal'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Tajawal'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Tajawal'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Tajawal'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Tajawal'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Tajawal'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Tajawal'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Tajawal'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Tajawal'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } + +/* Fira_Mono */ +@font-face { font-family: 'Fira_Mono'; font-weight: 100; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Fira_Mono'; font-weight: 200; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Fira_Mono'; font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Fira_Mono'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Fira_Mono'; font-weight: 500; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff) format('woff'); } +@font-face { font-family: 'Fira_Mono'; font-weight: 600; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Fira_Mono'; font-weight: 700; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Fira_Mono'; font-weight: 800; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } +@font-face { font-family: 'Fira_Mono'; font-weight: 900; font-style: normal; font-display: swap; unicode-range: U+20C3; src: url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2) format('woff2'), url(/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff) format('woff'); } diff --git a/om_aed_currency_symbol/static/src/fonts/om_uae_dirham.svg b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham.svg new file mode 100644 index 00000000..0ee62945 --- /dev/null +++ b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham.svg @@ -0,0 +1 @@ +AAAWgmp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAABZcanVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46YzJwYTo4MzM5MjM2Zi03MzBiLTQ5MGEtOGNkMC0zNWYzYWRiYWY1MWYAAAADl2p1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAALxqdW1iAAAARGp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuaW5ncmVkaWVudC52MwAAAAAYYzJzaI8hn2JjJ6TUlmcpRHUUx/kAAABwY2JvcqNpZGM6Zm9ybWF0bWltYWdlL3N2Zyt4bWxqaW5zdGFuY2VJRHgseG1wOmlpZDpiM2RkZjliMi00ZjViLTQ2MWMtOTMwYS01ZWRlNjEzMWRmNmNscmVsYXRpb25zaGlwaHBhcmVudE9mAAAB4mp1bWIAAABBanVtZGNib3IAEQAQgAAAqgA4m3ETYzJwYS5hY3Rpb25zLnYyAAAAABhjMnNosqKr8f+M+YGsvGAKTRTLewAAAZljYm9yomdhY3Rpb25zgqJmYWN0aW9ua2MycGEub3BlbmVkanBhcmFtZXRlcnOha2luZ3JlZGllbnRzgaJjdXJseC1zZWxmI2p1bWJmPWMycGEuYXNzZXJ0aW9ucy9jMnBhLmluZ3JlZGllbnQudjNkaGFzaFgg4OjI1CrXPUZ/MFg8FEQSsrnf9C+YD5hFkKVsMSdTMJekZmFjdGlvbngdY29tLmFudGhyb3BpYy5jbGF1ZGUucHJvdmlkZWRqcGFyYW1ldGVyc6F4H2NvbS5hbnRocm9waWMub3JpZ2luLWNvbmZpZGVuY2VndW5rbm93bmtkZXNjcmlwdGlvbnhmQ2xhdWRlIHByb3ZpZGVkIHRoaXMgZmlsZSBhdCB0aGUgcmVxdWVzdCBvZiBhIHVzZXIgYW5kIG1heSBoYXZlIGNyZWF0ZWQgb3IgbW9kaWZpZWQgdGhlIGZpbGUgY29udGVudHMubXNvZnR3YXJlQWdlbnShZG5hbWVmQ2xhdWRlcmFsbEFjdGlvbnNJbmNsdWRlZPUAAADIanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaFWFHb+seaPZ9snqSiTcTAwAAACAY2JvcqVjYWxnZnNoYTI1NmNwYWRNAAAAAAAAAAAAAAAAAGRoYXNoWCDHfl1niK9yLsOrtT+5PjM4kSWF0di9VrwShivlYKU6u2RuYW1lbmp1bWJmIG1hbmlmZXN0amV4Y2x1c2lvbnOBomVzdGFydBiBZmxlbmd0aBkeBAAAAj5qdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAACD2Nib3KlY2FsZ2ZzaGEyNTZpc2lnbmF0dXJleE1zZWxmI2p1bWJmPS9jMnBhL3VybjpjMnBhOjgzMzkyMzZmLTczMGItNDkwYS04Y2QwLTM1ZjNhZGJhZjUxZi9jMnBhLnNpZ25hdHVyZWppbnN0YW5jZUlEeCx4bXA6aWlkOmY2ODI3NWE0LWJlMDYtNDYzYi1iYzgxLWMyMGQ5MDUwNjhiY3JjcmVhdGVkX2Fzc2VydGlvbnODomN1cmx4LXNlbGYjanVtYmY9YzJwYS5hc3NlcnRpb25zL2MycGEuaW5ncmVkaWVudC52M2RoYXNoWCDg6MjUKtc9Rn8wWDwURBKyud/0L5gPmEWQpWwxJ1Mwl6JjdXJseCpzZWxmI2p1bWJmPWMycGEuYXNzZXJ0aW9ucy9jMnBhLmFjdGlvbnMudjJkaGFzaFgg7CJlqc264qLzOo1HARzbI2Wu4kJ+qi4yZDsERN05sx6iY3VybHgpc2VsZiNqdW1iZj1jMnBhLmFzc2VydGlvbnMvYzJwYS5oYXNoLmRhdGFkaGFzaFggJ9wQX1SARvOiCmHWbj1K8znUWyiQTcubfZSIMUBNywp0Y2xhaW1fZ2VuZXJhdG9yX2luZm+jZG5hbWVvQW50aHJvcGljIEZpbGVzZ3ZlcnNpb25lMS4wLjBrc3BlY1ZlcnNpb25lMi40LjAAABA4anVtYgAAAChqdW1kYzJjcwARABCAAACqADibcQNjMnBhLnNpZ25hdHVyZQAAABAIY2JvctKEWQISogEmGCFZAgowggIGMIIBjaADAgECAhRA5aAK7sI50L64g/oGQgU9Z1UTADAKBggqhkjOPQQDAzBJMRcwFQYDVQQKEw5BbnRocm9waWMsIFBCQzEuMCwGA1UEAxMlQW50aHJvcGljIENvbnRlbnQgQ3JlZGVudGlhbHMgUm9vdCBDQTAeFw0yNjA4MDcxODQzNTZaFw0yODA4MDYxOTQzNTZaMEQxFzAVBgNVBAoTDkFudGhyb3BpYywgUEJDMSkwJwYDVQQDEyBBbnRocm9waWMgQ2xhdWRlIENvbnRlbnQgU2lnbmluZzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJh6CmvLUBgFFNU0vUKlOVtE6djd17L5SuwX0LemFisBM3dkd/3cyjxFA3Qo5S46fX0/ihY0VZ7mfb9KF703t5OjWDBWMA4GA1UdDwEB/wQEAwIHgDAVBgNVHSUEDjAMBgorBgEEAYPoXgIBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUzlHiBIFOZFsj+OPEz5o+nMHXXMIwCgYIKoZIzj0EAwMDZwAwZAIwMXMdFJ4BetLLVY7ORuE9noqbbAZOZn/aArXyTwFAZfKrPzxF2vPoJNf1+UCdg1XGAjBwX1zd9WGqYkqmL5SFqw1QySjr1zJfpJM9+1rdDwSPLMOPOjKuiXjoU/pUUeG9RwmhY3BhZFkNngAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZYQO83DSuUCAe8HClVRhT0AeAYXpKhvPitVs1YZZ2F7WGuOkRa+TDYQ30bIEugIXfFcut3fnIlWnrGwBOFO07tlU0= \ No newline at end of file diff --git a/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.ttf b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.ttf new file mode 100644 index 00000000..ed706d7b Binary files /dev/null and b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.ttf differ diff --git a/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff new file mode 100644 index 00000000..13c901df Binary files /dev/null and b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff differ diff --git a/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2 b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2 new file mode 100644 index 00000000..58d2b8fa Binary files /dev/null and b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_bold.woff2 differ diff --git a/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.ttf b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.ttf new file mode 100644 index 00000000..82b54f81 Binary files /dev/null and b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.ttf differ diff --git a/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff new file mode 100644 index 00000000..ce051090 Binary files /dev/null and b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff differ diff --git a/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2 b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2 new file mode 100644 index 00000000..93d970c6 Binary files /dev/null and b/om_aed_currency_symbol/static/src/fonts/om_uae_dirham_regular.woff2 differ diff --git a/om_aed_currency_symbol/tests/__init__.py b/om_aed_currency_symbol/tests/__init__.py new file mode 100644 index 00000000..a52f3599 --- /dev/null +++ b/om_aed_currency_symbol/tests/__init__.py @@ -0,0 +1 @@ +from . import test_aed_symbol diff --git a/om_aed_currency_symbol/tests/test_aed_symbol.py b/om_aed_currency_symbol/tests/test_aed_symbol.py new file mode 100644 index 00000000..546818bc --- /dev/null +++ b/om_aed_currency_symbol/tests/test_aed_symbol.py @@ -0,0 +1,85 @@ +# Part of om_aed_currency_symbol (Odoo Mates). License: LGPL-3. +from unittest.mock import patch + +from odoo.tests import HttpCase, TransactionCase, tagged + +from ..models.res_currency import DIRHAM_SIGN + + +@tagged('post_install', '-at_install') +class TestAedSymbol(TransactionCase): + + def setUp(self): + super().setUp() + self.aed = self.env.ref('base.AED') + + def test_installed_symbol(self): + self.assertEqual(self.aed.symbol, DIRHAM_SIGN) + self.assertEqual(self.aed.position, 'before') + self.assertTrue(self.aed.format(1234.5).startswith(DIRHAM_SIGN)) + + def _patch_native_symbol(self, symbol): + return patch.object(type(self.env['res.currency']), '_om_native_aed_symbol', return_value=symbol) + + def test_restore_and_set_again(self): + with self._patch_native_symbol('AED'): + self.env['res.currency']._om_restore_aed_symbol() + self.assertEqual((self.aed.symbol, self.aed.position), ('AED', 'after')) + self.env['res.currency']._om_set_dirham_sign() + self.assertEqual((self.aed.symbol, self.aed.position), (DIRHAM_SIGN, 'before')) + + def test_replaces_workaround_symbols_keeps_custom(self): + for old in ('ᴁ', 'د.إ', 'Dhs'): + self.aed.symbol = old + self.env['res.currency']._om_set_dirham_sign() + self.assertEqual(self.aed.symbol, DIRHAM_SIGN, old) + self.aed.symbol = 'MyDH' + self.env['res.currency']._om_set_dirham_sign() + self.assertEqual(self.aed.symbol, 'MyDH') + self.aed.action_om_use_dirham_sign() + self.assertEqual(self.aed.symbol, DIRHAM_SIGN) + + def test_restore_leaves_custom_symbol(self): + self.aed.symbol = 'MyDH' + with self._patch_native_symbol('AED'): + self.env['res.currency']._om_restore_aed_symbol() + self.assertEqual(self.aed.symbol, 'MyDH') + + def test_restore_leaves_symbol_when_odoo_supports_the_sign(self): + """Once Odoo's own data uses U+20C3, uninstalling this module must not change the symbol.""" + self.assertEqual((self.aed.symbol, self.aed.position), (DIRHAM_SIGN, 'before')) + with self._patch_native_symbol(DIRHAM_SIGN): + self.env['res.currency']._om_restore_aed_symbol() + self.assertEqual((self.aed.symbol, self.aed.position), (DIRHAM_SIGN, 'before')) + + def test_native_symbol_lookup(self): + native = self.env['res.currency']._om_native_aed_symbol() + self.assertTrue(native is None or isinstance(native, str)) + + +@tagged('post_install', '-at_install') +class TestAedSymbolBrowser(HttpCase): + + def test_font_loaded_without_changing_fonts(self): + """The sign's font is available, but the interface and code fonts are untouched.""" + code = """ + (async () => { + await document.fonts.ready; + const loaded = await document.fonts.load("16px 'OM UAE Dirham'", "\\u20c3"); + const faces = [...document.fonts].filter(f => f.family.replace(/["']/g, '') === 'OM UAE Dirham'); + const body = getComputedStyle(document.body).fontFamily; + const pre = document.createElement('pre'); + document.body.appendChild(pre); + const mono = getComputedStyle(pre).fontFamily; + if (!faces.length || !loaded.length) { + console.error('UAE Dirham font face missing'); + } else if (body.includes('OM UAE Dirham')) { + console.error('body font-family was changed: ' + body); + } else if (!/mono|consolas|menlo|courier/i.test(mono)) { + console.error('monospace font was changed: ' + mono); + } else { + console.log('test successful'); + } + })(); + """ + self.browser_js('/odoo', code, ready="!!document.querySelector('.o_main_navbar')", login='admin') diff --git a/om_aed_currency_symbol/views/res_currency_views.xml b/om_aed_currency_symbol/views/res_currency_views.xml new file mode 100644 index 00000000..203cfea4 --- /dev/null +++ b/om_aed_currency_symbol/views/res_currency_views.xml @@ -0,0 +1,15 @@ + + + + res.currency.form.om.aed.symbol + res.currency + + + +
+
+
+
+
+