{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./js/order-editor.ts","webpack:///./js/order-trial.ts","webpack:///./js/server-request-component.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","4","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","days","title","text","settings","DurationOption","localization","durationText1M","durationText2M","durationText3M","durationText4M","durationText5M","durationText6M","durationText7M","durationText8M","durationText9M","durationText12M","durationTextFormat","replace","toString","getText","code","Promise","resolve","reject","symbol","rate","$","getJSON","endpoints","getPricing","component","price","ko","observable","isAlwaysSelected","isSelected","this","id","description","descr","priceValue","priceCurrency","isFree","durations","observableArray","duration","currencies","currency","exchangeRate","pureComputed","getExchangeRateText","currencyByCode","email","isEmailValid","input","test","basePrice","features","isPriceCalcInProgress","isCurrencyRub","totalPrice","totalPriceError","hasTotalPriceError","recalcPricePromise","productName","isBusy","hasError","errorText","isOrderInProgress","isOrderSuccessful","orderNum","paymentType","initDuration","initEmail","when","initCurrency","initPricing","then","Currency","values","catch","err","showError","message","subscribe","recalcPrice","PricingInfo","info","basePriceValue","basePriceCurrency","components","feature","Feature","force","setTimeout","recalcPriceImpl","license","period","convertPrice","formatPrice","featurePrice","ajax","url","calcPrice","JSON","stringify","contentType","type","done","resp","totalPriceValue","totalPriceCurrency","formatPriceStr","fail","e","msg","priceErrorMessageFormat","status","statusText","always","sourceCurrency","targetCurrency","currencyCode","Math","round","makeOrder","createOrder","orderErrorMessageFormat","createOrderEditor","element","viewModel","OrderEditorViewModel","applyBindingsToDescendants","OrderEditor","PasswordReset","createTrialOrderRequestComponent","PasswordResetViewModel","applyBindings","SEND_REQUEST_URL","createRequest","resetPassword","doRequest","ServerRequestComponent","isSent","error","method","dataType","headers","ok","fl"],"mappings":"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","file":"js/order-editor.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t4: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([16,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/// \n\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\n\nclass Localization {\n durationText1M: string;\n durationText2M: string;\n durationText3M: string;\n durationText4M: string;\n durationText5M: string;\n durationText6M: string;\n durationText7M: string;\n durationText8M: string;\n durationText9M: string;\n durationText10M: string;\n durationText11M: string;\n durationText12M: string;\n durationTextFormat: string;\n priceErrorMessageFormat: string;\n orderErrorMessageFormat: string;\n}\n\nclass ApiEndpoints {\n getCurrencies: string;\n getPricing: string;\n calcPrice: string;\n createOrder: string;\n}\n\nclass OrderEditorSettings {\n currency: string;\n endpoints: ApiEndpoints;\n localization: Localization;\n}\n\nclass DurationOption {\n constructor(public days: number, public title: string, public text: string) { }\n\n static get(settings: OrderEditorSettings): DurationOption[] {\n return [\n DurationOption.create(1 * 30, settings.localization.durationText1M, settings),\n DurationOption.create(2 * 30, settings.localization.durationText2M, settings),\n DurationOption.create(3 * 30, settings.localization.durationText3M, settings),\n DurationOption.create(4 * 30, settings.localization.durationText4M, settings),\n DurationOption.create(5 * 30, settings.localization.durationText5M, settings),\n DurationOption.create(6 * 30, settings.localization.durationText6M, settings),\n DurationOption.create(7 * 30, settings.localization.durationText7M, settings),\n DurationOption.create(8 * 30, settings.localization.durationText8M, settings),\n DurationOption.create(9 * 30, settings.localization.durationText9M, settings),\n DurationOption.create(12 * 30, settings.localization.durationText12M, settings)\n ];\n }\n\n private static create(days: number, title: string, settings: OrderEditorSettings): DurationOption {\n return new DurationOption(\n days,\n title,\n settings.localization.durationTextFormat.replace('%title%', title).replace('%days%', days.toString()));\n }\n}\n\nclass Currency {\n code: string;\n symbol: string;\n name: string;\n rate: number;\n\n static getText(c: Currency): string {\n return c.name + ' (' + c.code + ')';\n }\n\n static get(settings: OrderEditorSettings): Promise {\n //var promise: Promise = $.getJSON(settings.endpoints.getCurrencies);}\n // todo временный фикс, оставили только рубли.\n var promise: Promise = new Promise(\n (resolve, reject) => {\n resolve([{ code: 'RUB', symbol: '₽', name: 'RUB', rate: 1 }]);\n }\n );\n return promise;\n }\n}\n\nclass PriceInfo {\n p: number;\n c: string;\n}\n\nclass ComponentInfo extends PriceInfo {\n id: string;\n name: string;\n descr: string;\n}\n\nclass PricingInfo {\n productName: string;\n basePrice: PriceInfo;\n components: ComponentInfo[];\n\n static get(settings: OrderEditorSettings): Promise {\n var promise: Promise = $.getJSON(settings.endpoints.getPricing);\n return promise;\n }\n}\n\nclass Feature {\n constructor(component: ComponentInfo) {\n this.id = component.id;\n this.name = component.name;\n this.description = component.descr;\n this.priceValue = component.p;\n this.priceCurrency = component.c;\n this.isFree = component.p <= 0;\n\n this.isAlwaysSelected(component.p <= 0);\n this.isSelected(true);\n }\n\n id: string;\n name: string;\n description: string;\n priceValue: number;\n priceCurrency: string;\n price = ko.observable();\n isFree: boolean;\n isAlwaysSelected = ko.observable(true);\n isSelected = ko.observable(true);\n}\n\nfunction validateEmail(input: string): boolean {\n const pattern = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i;\n return pattern.test(input);\n}\n\nclass OrderEditorViewModel {\n constructor(private settings: OrderEditorSettings) {\n this.initDuration();\n this.initEmail();\n\n $.when(this.initCurrency(), this.initPricing()).then(() => this.isBusy(false));\n }\n\n //#region Duration\n\n durations = ko.observableArray();\n duration = ko.observable();\n\n private initDuration() {\n this.durations(DurationOption.get(this.settings));\n this.duration(this.durations()[0]);\n }\n\n //#endregion\n\n //#region Currency\n\n currencies = ko.observableArray();\n currency = ko.observable();\n exchangeRate = ko.pureComputed(() => this.getExchangeRateText());\n private currencyByCode = <{ string: Currency }>{};\n\n private initCurrency(): Promise {\n return Currency.get(this.settings)\n .then(values => {\n this.currencies(values);\n this.currency(this.currencies()[0]);\n for (var i in values) {\n var c = values[i];\n this.currencyByCode[c.code] = c;\n }\n\n this.currency(this.currencyByCode[this.settings.currency] || this.currencies()[0]);\n })\n .catch(err => {\n this.showError(err.message);\n });\n }\n\n private getExchangeRateText(): string {\n var currency = this.currency();\n if (!currency || currency.code === this.settings.currency) {\n return '';\n }\n\n return this.settings.currency + '/' + currency.code + ' = ' + currency.rate;\n }\n\n //#endregion\n\n //#region Email\n\n email = ko.observable();\n isEmailValid = ko.pureComputed(() => validateEmail(this.email()));\n\n private initEmail() {\n }\n\n //#endregion\n\n //#region Pricing\n\n private basePriceValue: number;\n private basePriceCurrency: string;\n basePrice = ko.observable();\n features = ko.observableArray();\n isPriceCalcInProgress = ko.observable(false);\n isCurrencyRub = ko.observable(true);\n totalPrice = ko.observable();\n totalPriceError = ko.observable();\n hasTotalPriceError = ko.observable(false);\n private totalPriceValue: number;\n private totalPriceCurrency: string;\n private recalcPricePromise: Promise = null;\n\n private initPricing(): Promise {\n this.currency.subscribe(() => this.recalcPrice());\n this.duration.subscribe(() => this.recalcPrice());\n return PricingInfo.get(this.settings)\n .then(info => {\n this.productName(info.productName);\n this.basePriceValue = info.basePrice.p;\n this.basePriceCurrency = info.basePrice.c;\n\n for (var i in info.components) {\n var feature = new Feature(info.components[i]);\n this.features.push(feature);\n feature.isSelected.subscribe(() => this.recalcPrice(false));\n };\n\n this.recalcPrice();\n })\n .catch(err => {\n this.showError(err.message);\n });\n }\n\n recalcPrice(force: boolean = true) {\n if (!force) {\n this.isPriceCalcInProgress(true);\n setTimeout(() => this.recalcPrice(), 500);\n return;\n }\n\n if (this.recalcPricePromise) {\n this.recalcPricePromise = this.recalcPricePromise.then(() => this.recalcPriceImpl());\n } else {\n this.recalcPricePromise = this.recalcPriceImpl();\n }\n }\n\n private recalcPriceImpl(): Promise {\n var currency = this.currency();\n var duration = this.duration();\n if (!currency || !duration) {\n this.basePrice('');\n this.totalPrice('');\n return Promise.resolve({});\n }\n\n var license = {\n features: [],\n period: duration.days,\n email: this.email(),\n currency: currency.code\n };\n\n var basePrice = this.convertPrice(this.basePriceValue, this.basePriceCurrency, currency);\n this.basePrice(this.formatPrice(basePrice, currency));\n\n var features = this.features();\n for (var i in features) {\n var feature = features[i];\n var featurePrice = this.convertPrice(feature.priceValue, feature.priceCurrency, currency);\n feature.price(this.formatPrice(featurePrice, currency));\n if (feature.isSelected()) {\n license.features.push(feature.id);\n }\n }\n\n this.isPriceCalcInProgress(true);\n this.hasTotalPriceError(false);\n\n return $.ajax({\n url: this.settings.endpoints.calcPrice,\n data: JSON.stringify(license),\n contentType: 'application/json',\n type: 'POST'\n })\n .done((resp) => {\n this.totalPriceValue = resp.price;\n this.totalPriceCurrency = currency.code;\n this.totalPrice(this.formatPriceStr(resp.price, resp.currency));\n this.isCurrencyRub(true);\n if (currency.code !== 'RUB') {\n this.isCurrencyRub(false);\n }\n })\n .fail((e) => {\n var msg = this.settings.localization.priceErrorMessageFormat\n .replace('%message%', e.status + ' ' + e.statusText);\n this.totalPriceError(msg);\n this.hasTotalPriceError(true);\n })\n .always(() => {\n this.isPriceCalcInProgress(false);\n });\n }\n\n private convertPrice(price: number, sourceCurrency: string, targetCurrency: Currency): number {\n if (sourceCurrency === targetCurrency.code) {\n return price;\n }\n\n return price * targetCurrency.rate;\n }\n\n private formatPriceStr(price: number, currencyCode: string): string {\n if (price <= 0) {\n return '-';\n }\n\n var currency = this.currencyByCode[currencyCode] || { code: currencyCode };\n\n if (currency.code === 'RUB') {\n return price + ' ' + currency.symbol;\n }\n if (currency.symbol) {\n return currency.symbol + price;\n }\n return price + ' ' + currency.code;\n }\n\n private formatPrice(price: number, currency: Currency): string {\n if (price <= 0) {\n return '-';\n }\n\n price = Math.round(price * 100.0) / 100.0;\n\n if (currency.code === 'RUB') {\n return price + ' ' + currency.symbol;\n }\n if (currency.symbol) {\n return currency.symbol + price;\n }\n return price + ' ' + currency.code;\n }\n\n //#endregion\n\n //#region ViewState\n\n productName = ko.observable('OptionWorkshop');\n isBusy = ko.observable(true);\n hasError = ko.observable(false);\n errorText = ko.observable();\n\n private showError(msg: string) {\n this.hasError(true);\n this.errorText(msg);\n }\n\n //#endregion\n\n //#region Order\n\n isOrderInProgress = ko.observable(false);\n isOrderSuccessful = ko.observable(false);\n orderNum = ko.observable();\n paymentType = ko.observable();\n\n makeOrder(paymentType: string) {\n var currency = this.currency();\n var duration = this.duration();\n if (!currency || !duration || !this.isEmailValid() || (paymentType === 'CloudPayments' && currency.code !== 'RUB')) {\n return;\n }\n\n var license = {\n features: [],\n period: duration.days,\n email: this.email(),\n currency: currency.code,\n paymentType: paymentType\n };\n\n var features = this.features();\n for (var i in features) {\n var feature = features[i];\n if (feature.isSelected()) {\n license.features.push(feature.id);\n }\n }\n\n this.isOrderInProgress(true);\n this.isOrderSuccessful(false);\n this.paymentType(paymentType);\n\n $.ajax({\n url: this.settings.endpoints.createOrder,\n data: JSON.stringify(license),\n contentType: 'application/json',\n type: 'POST'\n })\n .done((resp) => {\n this.isOrderSuccessful(true);\n this.orderNum(resp.orderNum);\n })\n .fail((e) => {\n var msg = this.settings.localization.orderErrorMessageFormat\n .replace('%message%', e.status + ' ' + e.statusText);\n this.showError(msg);\n })\n .always(() => {\n this.isOrderInProgress(false);\n });\n }\n\n //#endregion\n}\n\nexport default function createOrderEditor(element: HTMLElement, settings: OrderEditorSettings) {\n var viewModel = new OrderEditorViewModel(settings);\n ko.applyBindingsToDescendants(viewModel, element);\n}\n\nconst OrderEditor = {\n create: createOrderEditor,\n Currency: Currency,\n};\n\nwindow['createOrderEditor'] = createOrderEditor;\nwindow['OrderEditor'] = OrderEditor;","import * as ko from 'knockout';\nimport { ServerRequestComponent } from './server-request-component';\n\nnamespace PasswordReset\n{\n export class PasswordResetViewModel extends ServerRequestComponent {\n SEND_REQUEST_URL = '/api/order/trial';\n\n constructor() {\n super();\n }\n\n email: KnockoutObservable = ko.observable();\n\n createRequest() {\n return { email: this.email};\n }\n\n resetPassword(e) {\n this.doRequest(e);\n return false;\n }\n }\n}\n\nexport default function createTrialOrderRequestComponent(element: HTMLElement) {\n var viewModel = new PasswordReset.PasswordResetViewModel();\n ko.applyBindings(viewModel, element);\n}\n\nwindow['createTrialOrderRequestComponent'] = createTrialOrderRequestComponent;","/// \n\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\n\nexport abstract class ServerRequestComponent {\n abstract SEND_REQUEST_URL;\n\n isBusy: KnockoutObservable;\n isSent: KnockoutObservable;\n error: KnockoutObservable;\n\n constructor() {\n this.isBusy = ko.observable(false);\n this.isSent = ko.observable(false);\n this.error = ko.observable();\n }\n\n abstract createRequest();\n\n doRequest(e) {\n this.isBusy(true);\n\n $.ajax({\n method: 'POST',\n url: this.SEND_REQUEST_URL,\n data: this.createRequest(),\n dataType: 'json',\n headers : {\n 'accepts' :'application/json'\n }\n })\n .done((r) => {\n this.isBusy(false);\n if (r.ok) {\n this.isSent(true);\n } else {\n this.error(r.error);\n }\n })\n .fail(fl => {\n this.isBusy(false);\n this.error(\"Внутреннаяя ошибка. Обратитесь в техподдержку\");\n });\n }\n}"],"sourceRoot":""}