/*
var currenyFormatter = new Intl.NumberFormat(I18nNumberFormatter_locale.replace('_', '-'), {
style: 'currency',
currency: I18nNumberFormatter_currency,
});
var numberFormatter = new Intl.NumberFormat(I18nNumberFormatter_locale.replace('_', '-'), {
style: 'decimal',
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
class I18nNumberFormatter {
static currencyFormatter(number) {
return currenyFormatter.format(number);
};
static numberFormatter(number) {
return numberFormatter.format(number);
};
static serverNumberFormatter(number) {
// number = number+"";
// number = number.replace(',', '');
// number = number.replace('.', '');
// number = parseFloat(parseInt(number))/100.0;
// return number;
var thousandSeparator = (1111).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, '');
var decimalSeparator = (1.1).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, '');
// var result = number + "";
// result = result.replace(new RegExp('\\' + thousandSeparator, 'g'), '');
number = number + "";
var result = parseFloat(number
.replace(new RegExp('\\' + thousandSeparator, 'g'), '')
.replace(new RegExp('\\' + decimalSeparator), '.')
);
return result;
};
};
$(document).ready(function() {
(function ($) {
var old_val = $.fn.val;
$.fn.val = function(value){
if (this.hasClass('number-input')) {
if (value===undefined) {
if (typeof this.data('original-number') == 'undefined' && this.get(0) !== null) {
$(this).data('original-number', I18nNumberFormatter.serverNumberFormatter(this.get(0).value));
}
return $(this).data('original-number') + '';
return I18nNumberFormatter.serverNumberFormatter(old_val.apply(this, arguments));
//do something to get the values
return old_val.apply(this, arguments);
}
//setter
else {
//do something with the value
$(this).data('original-number', arguments[0] + '');
arguments[0] = I18nNumberFormatter.numberFormatter(arguments[0]) + '';
return old_val.apply(this, arguments);
arguments[0] = I18nNumberFormatter.numberFormatter(I18nNumberFormatter.serverNumberFormatter(arguments[0]));
return old_val.apply(this, arguments);
}
}
return old_val.apply(this, arguments);
};
})(jQuery);
$(document).on('change', '.number-input', function() {
$(this).data('original-number', I18nNumberFormatter.serverNumberFormatter(this.value));
});
$('.number-input').each(function() {
$(this).data('original-number', this.value);
$(this).val(this.value);
// $(this).val(I18nNumberFormatter.numberFormatter(this.value));
// $(this).val($(this).val());
var form = $(this).closest('form');
if (typeof form != 'undefined') {
form.append('');
}
});
$('form').submit(function(){
// var thousandSeparator = (1111).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, '');
// var decimalSeparator = (1.1).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, '');
$('form').find('.number-input').each(function() {
var value = $(this).val();
// value = parseFloat(value
// .replace(new RegExp('\\' + thousandSeparator, 'g'), '')
// .replace(new RegExp('\\' + decimalSeparator), '.')
// );
this.value = value;
});
});
});
*/
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var currenyFormatter = new Intl.NumberFormat(I18nNumberFormatter_locale.replace('_', '-'), {
style: 'currency',
currency: I18nNumberFormatter_currency
});
var _numberFormatter = new Intl.NumberFormat(I18nNumberFormatter_locale.replace('_', '-'), {
style: 'decimal',
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
var I18nNumberFormatter = function () {
function I18nNumberFormatter() {
_classCallCheck(this, I18nNumberFormatter);
}
_createClass(I18nNumberFormatter, null, [{
key: 'currencyFormatter',
value: function currencyFormatter(number) {
return currenyFormatter.format(number);
}
}, {
key: 'numberFormatter',
value: function numberFormatter(number) {
return _numberFormatter.format(number);
}
}, {
key: 'serverNumberFormatter',
value: function serverNumberFormatter(number) {
// number = number+"";
// number = number.replace(',', '');
// number = number.replace('.', '');
// number = parseFloat(parseInt(number))/100.0;
// return number;
var thousandSeparator = 1111 .toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, '');
var decimalSeparator = 1.1.toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, '');
// var result = number + "";
// result = result.replace(new RegExp('\\' + thousandSeparator, 'g'), '');
number = number + "";
var result = parseFloat(number.replace(new RegExp('\\' + thousandSeparator, 'g'), '').replace(new RegExp('\\' + decimalSeparator), '.'));
return result;
}
}, {
// [ACS-38576] The set up the page load gives every .number-input field, as one method so a
// page can give it to fields it loads later. A field this has not seen has no stored raw
// figure, so the val() getter below parses its value as a LOCALE formatted number. The
// server prints these fields as a plain dot decimal, so on a locale that groups thousands
// with a full stop (de_DE) "12.35" is read as 1235. The field also gets no _numberFormatter[]
// entry, so the server does not clean it either. The edit order page reloads its whole totals
// area on a product change, and calls this for the fields that reload adds.
//
// root: a jQuery object, element or selector to search. Fields already set up are skipped,
// and a form never gets a second _numberFormatter[] entry for the same name.
key: 'initNumberInputs',
value: function initNumberInputs(root) {
$(root).find('.number-input').each(function () {
if (typeof $(this).data('original-number') != 'undefined') {
return;
}
$(this).data('original-number', this.value);
$(this).val(this.value);
var form = $(this).closest('form');
if (form.length > 0 && form.find('input._numberFormatter[value="' + $(this).attr('name') + '"]').length === 0) {
form.append('');
}
});
}
}]);
return I18nNumberFormatter;
}();
$(document).ready(function () {
(function ($) {
var old_val = $.fn.val;
$.fn.val = function (value) {
if (this.hasClass('number-input')) {
if (value === undefined) {
if (typeof this.data('original-number') == 'undefined' && this.get(0) !== null) {
$(this).data('original-number', I18nNumberFormatter.serverNumberFormatter(this.get(0).value));
}
return $(this).data('original-number') + '';
// return I18nNumberFormatter.serverNumberFormatter(old_val.apply(this, arguments));
// //do something to get the values
// return old_val.apply(this, arguments);
}
//setter
else {
//do something with the value
$(this).data('original-number', arguments[0] + '');
if (!isNaN(arguments[0])) {
arguments[0] = I18nNumberFormatter.numberFormatter(arguments[0]) + '';
}
return old_val.apply(this, arguments);
// arguments[0] = I18nNumberFormatter.numberFormatter(I18nNumberFormatter.serverNumberFormatter(arguments[0]));
// return old_val.apply(this, arguments);
}
}
return old_val.apply(this, arguments);
};
})(jQuery);
$(document).on('change', '.number-input', function () {
$(this).data('original-number', I18nNumberFormatter.serverNumberFormatter(this.value));
});
$('.number-input').each(function () {
$(this).data('original-number', this.value);
$(this).val(this.value);
// $(this).val(I18nNumberFormatter.numberFormatter(this.value));
// $(this).val($(this).val());
var form = $(this).closest('form');
if (typeof form != 'undefined') {
form.append('');
}
});
$('form').submit(function () {
// var thousandSeparator = (1111).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, '');
// var decimalSeparator = (1.1).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, '');
$('form').find('.number-input').each(function () {
var value = $(this).val();
// value = parseFloat(value
// .replace(new RegExp('\\' + thousandSeparator, 'g'), '')
// .replace(new RegExp('\\' + decimalSeparator), '.')
// );
this.value = value;
});
});
});