/// var ArtboxBasket = /** @class */ (function () { function ArtboxBasket(settings) { if (settings === void 0) { settings = {}; } this._defaults = { language: 'ru', url: 'basket', initError: 'Basket cannot be init', modalSelector: '.basket_modal', cartSelector: '.basket_wrapper', initCallback: function () { } }; this._settings = {}; this._settings = ArtboxBasket.mergeObjects(this._defaults, settings); if (settings['language'] !== undefined) { this._language = settings['language']; } this.init(this._settings['initCallback']); } Object.defineProperty(ArtboxBasket.prototype, "items", { get: function () { return this._items; }, enumerable: true, configurable: true }); Object.defineProperty(ArtboxBasket.prototype, "language", { get: function () { if (this._language === undefined) { var language_attr = $('html').attr('lang'); if (language_attr !== undefined) { var language = language_attr.substr(0, 2); if (language.length == 2) { this._language = language; } else { this._language = this._settings['language']; } } else { this._language = this._settings['language']; } } return this._language; }, enumerable: true, configurable: true }); ArtboxBasket.prototype.init = function (callback) { $.get(this.getLanguagePath() + this._settings['url'], function (data) { this._items = data.basket; console.log(callback); callback(data); }.bind(this), 'json').fail(function () { console.error(this._settings['initError']); }.bind(this)); }; ArtboxBasket.prototype.add = function (variant_id, count, callback) { return $.post(this.getLanguagePath() + this._settings['url'] + '/add?variant_id=' + variant_id + '&count=' + count, function (data) { this._items = data.basket; if (callback !== undefined) { callback(data); } }.bind(this), 'json').fail(function (xhr, status, error) { console.error(error); }); }; ArtboxBasket.prototype.set = function (variant_id, count, callback) { return $.post(this.getLanguagePath() + this._settings['url'] + '/set?variant_id=' + variant_id + '&count=' + count, function (data) { this._items = data.basket; if (callback !== undefined) { callback(data); } }.bind(this), 'json').fail(function (xhr, status, error) { console.error(error); }); }; ArtboxBasket.prototype.remove = function (variant_id, callback) { return $.post(this.getLanguagePath() + this._settings['url'] + '/remove?variant_id=' + variant_id, function (data) { this._items = data.basket; if (callback !== undefined) { callback(data); } }.bind(this), 'json').fail(function (xhr, status, error) { console.error(error); }); }; Object.defineProperty(ArtboxBasket.prototype, "count", { get: function () { return Object.keys(this._items).length; }, enumerable: true, configurable: true }); ArtboxBasket.mergeObjects = function (obj1, obj2) { var obj = {}; for (var attribute in obj1) { obj[attribute] = obj1[attribute]; } for (var attribute in obj2) { obj[attribute] = obj2[attribute]; } return obj; }; ArtboxBasket.prototype.getLanguagePath = function () { if (this.language) { return '/' + this.language + '/'; } else { return '/'; } }; return ArtboxBasket; }());