Home Manual Reference Source Repository

src/plugins/easycurrency/config.js

import Money from 'js-money';

/** Config*/
class Config {
    /**
     * Construct a new config.
     * @param {Object}	options - Properties to initialze on config.
     */
    constructor(options) {
        options = Object.assign({}, {
            defaultCurrency: 'USD',
            useGeoForCurrency: true,
            moneySpanSelectors: [
                '[data-money]'
            ],
            moneySpanParser: function(el, easyCurrency) {
                var amount = el.dataset.money;
                var currency = el.dataset.moneyCurrency || easyCurrency._config.defaultCurrency;
                delete el.dataset.money;
                delete el.dataset.moneyCurrency;
                amount = Number(amount);
                return new Money(amount, currency);
            },
			allowedCurrencies: 'any',
        }, options);

        /** @type {String} Currency code, used for initial currency. */
        this.defaultCurrency = options.defaultCurrency;
        /** @type {Boolean} If true, currency will be determined via geoservice on load. */
        this.useGeoForCurrency = options.useGeoForCurrency;
        /** @type {String[]} Array of CSS selectors for finding money spans */
        this.moneySpanSelectors = options.moneySpanSelectors;
        /** @type {function(el: DOMNode, easyCurrency: src/easycurrency/main.js~EasyCurrency): js-money} Callback which determines initial money span value. */
        this.moneySpanParser = options.moneySpanParser;
    }
}

/** @ignore */
export default new Config();