{"version":3,"file":"application.js","mappings":"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","sources":["webpack:///./app/javascript/controllers/ sync \\.js$","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/assets/javascripts/client/libraries/calendar_library.js","webpack:///./app/javascript/controllers/client/cleaning/addresses_controller.js","webpack:///./app/javascript/controllers/client/cleaning/lead_billing_information_controller.js","webpack:///./app/javascript/controllers/client/cleaning/recurrency_specs_controller.js","webpack:///./app/javascript/controllers/client/cleaning/schedule_services_controller.js","webpack:///./app/javascript/controllers/client/cleaning/schedule_single_service_controller.js","webpack:///./app/javascript/controllers/client/cleaning/services_price_controller.js","webpack:///./app/javascript/controllers/client/cleaning/single_service_controller.js","webpack:///./app/javascript/controllers/client/cleaning/summary_services_controller.js","webpack:///./app/javascript/controllers/client/cleaning/work_frequency_controller.js","webpack:///./app/javascript/controllers/client/elisa/additional_services_controller.js","webpack:///./app/javascript/controllers/client/elisa/request_entity_cesantias_payments_controller.js","webpack:///./app/javascript/controllers/client/grace/additional_info_controller.js","webpack:///./app/javascript/controllers/client/grace/basic_info_employer_controller.js","webpack:///./app/javascript/controllers/client/grace/data_completed_offer_controller.js","webpack:///./app/javascript/controllers/client/grace/offer_addresses_controller.js","webpack:///./app/javascript/controllers/client/grace/offer_description_controller.js","webpack:///./app/javascript/controllers/client/grace/offer_residence_controller.js","webpack:///./app/javascript/controllers/client/grace/offer_task_controller.js","webpack:///./app/javascript/controllers/client_payments_controller.js","webpack:///./app/javascript/controllers/credit_cards_controller.js","webpack:///./app/javascript/controllers/erp/clipboard_controller.js","webpack:///./app/javascript/controllers/erp/grace/basic_datasets_controller.js","webpack:///./app/javascript/controllers/erp/grace/create_service_controller.js","webpack:///./app/javascript/controllers/erp/grace/edit_employer_controller.js","webpack:///./app/javascript/controllers/erp/grace/edit_invoice_controller.js","webpack:///./app/javascript/controllers/erp/grace/edit_service_controller.js","webpack:///./app/javascript/controllers/erp/grace/education_records_controller.js","webpack:///./app/javascript/helpers/erp/consumer_channel.js","webpack:///./app/javascript/controllers/erp/grace/employee_interests/message_count_controller.js","webpack:///./app/javascript/controllers/erp/grace/employee_interests/select_employees_controller.js","webpack:///./app/javascript/controllers/erp/grace/employer_address_controller.js","webpack:///./app/javascript/controllers/erp/grace/form_search_controller.js","webpack:///./app/javascript/controllers/erp/grace/new_employer_controller.js","webpack:///./app/javascript/controllers/erp/grace/offer_additional_info_controller.js","webpack:///./app/javascript/controllers/erp/grace/offer_description_controller.js","webpack:///./app/javascript/controllers/erp/grace/search_client_controller.js","webpack:///./app/javascript/controllers/erp/grace/work_records_controller.js","webpack:///./app/javascript/controllers/erp/queues_select_controller.js","webpack:///./app/javascript/controllers/grace/accordion_controller.js","webpack:///./app/javascript/controllers/grace/employee/data_completed_controller.js","webpack:///./app/javascript/controllers/grace/employee/education_records_controller.js","webpack:///./app/javascript/controllers/grace/employee/validation_controller.js","webpack:///./app/javascript/controllers/grace/employee/work_availabilities_controller.js","webpack:///./app/javascript/controllers/grace/employee/work_records_controller.js","webpack:///./app/javascript/controllers/grace/multi_select_controller.js","webpack:///./app/javascript/controllers/grace/select_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/stimulus/dist/webpack-helpers.js","webpack:///./app/javascript/controllers/maps_controller.js","webpack:///./app/javascript/controllers/progress_bar_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/client_leads_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/home_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/landing_cleaning_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/schedule_services_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/schedule_single_service_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/services_price_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/single_service_calendar_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/single_service_controller.js","webpack:///./app/javascript/controllers/public_pages/cleaning/summary_services_controller.js","webpack:///./app/javascript/controllers/public_pages/companies/landing_companies_controller.js","webpack:///./app/javascript/controllers/public_pages/companies/schedule_services_controller.js","webpack:///./app/javascript/controllers/public_pages/companies/schedule_single_service_controller.js","webpack:///./app/javascript/controllers/public_pages/companies/services_price_controller.js","webpack:///./app/javascript/controllers/public_pages/companies/single_service_calendar_controller.js","webpack:///./app/javascript/controllers/public_pages/companies/single_service_controller.js","webpack:///./app/javascript/controllers/public_pages/companies/summary_services_controller.js","webpack:///./app/javascript/controllers/public_pages/companies/work_frequency_controller.js","webpack:///./app/javascript/controllers/public_pages/elisa/client_lead_quotes_controller.js","webpack:///./app/javascript/controllers/public_pages/elisa/landing_elisa_controller.js","webpack:///./app/javascript/controllers/public_pages/elisa/pay_work_controller.js","webpack:///./app/javascript/controllers/public_pages/elisa/schedule_work_days_controller.js","webpack:///./app/javascript/controllers/public_pages/elisa/schedule_work_times_controller.js","webpack:///./app/javascript/controllers/public_pages/elisa/summary_quotes_controller.js","webpack:///./app/javascript/controllers/public_pages/grace/employee/validation_controller.js","webpack:///./app/javascript/controllers/public_pages/grace/landing_controller.js","webpack:///./app/javascript/controllers/public_pages/home/carousel_controller.js","webpack:///./app/javascript/controllers/public_pages/home/select_controller.js","webpack:///./app/javascript/controllers/public_pages/home/show_services_controller.js","webpack:///./app/javascript/controllers/public_pages/services/show_cards_controller.js","webpack:///./app/javascript/controllers/public_pages/sidenav_controller.js","webpack:///./app/javascript/helpers/erp/input_alert.js","webpack:///./app/javascript/helpers/flash_alert.js","webpack:///./app/javascript/helpers/formatted_price.js","webpack:///./app/javascript/helpers/helper_text.js","webpack:///./node_modules/mixpanel-browser/dist/mixpanel.module.js","webpack:///./app/javascript/helpers/mixpanel.js","webpack:///./node_modules/slim-select/dist/slimselect.js","webpack:///./node_modules/stimulus/dist/stimulus.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./app/javascript/application.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"sourcesContent":["var map = {\n\t\"./client/cleaning/addresses_controller.js\": 2260,\n\t\"./client/cleaning/lead_billing_information_controller.js\": 4513,\n\t\"./client/cleaning/recurrency_specs_controller.js\": 375,\n\t\"./client/cleaning/schedule_services_controller.js\": 8198,\n\t\"./client/cleaning/schedule_single_service_controller.js\": 6430,\n\t\"./client/cleaning/services_price_controller.js\": 586,\n\t\"./client/cleaning/single_service_controller.js\": 2924,\n\t\"./client/cleaning/summary_services_controller.js\": 1315,\n\t\"./client/cleaning/work_frequency_controller.js\": 4096,\n\t\"./client/elisa/additional_services_controller.js\": 6803,\n\t\"./client/elisa/request_entity_cesantias_payments_controller.js\": 1232,\n\t\"./client/grace/additional_info_controller.js\": 1827,\n\t\"./client/grace/basic_info_employer_controller.js\": 7838,\n\t\"./client/grace/data_completed_offer_controller.js\": 4194,\n\t\"./client/grace/offer_addresses_controller.js\": 94,\n\t\"./client/grace/offer_description_controller.js\": 3304,\n\t\"./client/grace/offer_residence_controller.js\": 514,\n\t\"./client/grace/offer_task_controller.js\": 4433,\n\t\"./client_payments_controller.js\": 5073,\n\t\"./credit_cards_controller.js\": 9171,\n\t\"./erp/clipboard_controller.js\": 5600,\n\t\"./erp/grace/basic_datasets_controller.js\": 595,\n\t\"./erp/grace/create_service_controller.js\": 3189,\n\t\"./erp/grace/edit_employer_controller.js\": 8251,\n\t\"./erp/grace/edit_invoice_controller.js\": 4929,\n\t\"./erp/grace/edit_service_controller.js\": 6137,\n\t\"./erp/grace/education_records_controller.js\": 4510,\n\t\"./erp/grace/employee_interests/message_count_controller.js\": 6488,\n\t\"./erp/grace/employee_interests/select_employees_controller.js\": 1114,\n\t\"./erp/grace/employer_address_controller.js\": 9211,\n\t\"./erp/grace/form_search_controller.js\": 5082,\n\t\"./erp/grace/new_employer_controller.js\": 6411,\n\t\"./erp/grace/offer_additional_info_controller.js\": 5046,\n\t\"./erp/grace/offer_description_controller.js\": 1582,\n\t\"./erp/grace/search_client_controller.js\": 6713,\n\t\"./erp/grace/work_records_controller.js\": 9325,\n\t\"./erp/queues_select_controller.js\": 8497,\n\t\"./grace/accordion_controller.js\": 139,\n\t\"./grace/employee/data_completed_controller.js\": 4732,\n\t\"./grace/employee/education_records_controller.js\": 5151,\n\t\"./grace/employee/validation_controller.js\": 6215,\n\t\"./grace/employee/work_availabilities_controller.js\": 6501,\n\t\"./grace/employee/work_records_controller.js\": 8430,\n\t\"./grace/multi_select_controller.js\": 2509,\n\t\"./grace/select_controller.js\": 2531,\n\t\"./index.js\": 8434,\n\t\"./maps_controller.js\": 6261,\n\t\"./progress_bar_controller.js\": 1659,\n\t\"./public_pages/cleaning/client_leads_controller.js\": 5798,\n\t\"./public_pages/cleaning/home_controller.js\": 1622,\n\t\"./public_pages/cleaning/landing_cleaning_controller.js\": 4626,\n\t\"./public_pages/cleaning/schedule_services_controller.js\": 3743,\n\t\"./public_pages/cleaning/schedule_single_service_controller.js\": 4775,\n\t\"./public_pages/cleaning/services_price_controller.js\": 2853,\n\t\"./public_pages/cleaning/single_service_calendar_controller.js\": 6696,\n\t\"./public_pages/cleaning/single_service_controller.js\": 1195,\n\t\"./public_pages/cleaning/summary_services_controller.js\": 2508,\n\t\"./public_pages/companies/landing_companies_controller.js\": 9358,\n\t\"./public_pages/companies/schedule_services_controller.js\": 3765,\n\t\"./public_pages/companies/schedule_single_service_controller.js\": 8505,\n\t\"./public_pages/companies/services_price_controller.js\": 8415,\n\t\"./public_pages/companies/single_service_calendar_controller.js\": 3734,\n\t\"./public_pages/companies/single_service_controller.js\": 4413,\n\t\"./public_pages/companies/summary_services_controller.js\": 2665,\n\t\"./public_pages/companies/work_frequency_controller.js\": 1005,\n\t\"./public_pages/elisa/client_lead_quotes_controller.js\": 6056,\n\t\"./public_pages/elisa/landing_elisa_controller.js\": 6718,\n\t\"./public_pages/elisa/pay_work_controller.js\": 7868,\n\t\"./public_pages/elisa/schedule_work_days_controller.js\": 6831,\n\t\"./public_pages/elisa/schedule_work_times_controller.js\": 3224,\n\t\"./public_pages/elisa/summary_quotes_controller.js\": 9894,\n\t\"./public_pages/grace/employee/validation_controller.js\": 7052,\n\t\"./public_pages/grace/landing_controller.js\": 2671,\n\t\"./public_pages/home/carousel_controller.js\": 1357,\n\t\"./public_pages/home/select_controller.js\": 4683,\n\t\"./public_pages/home/show_services_controller.js\": 6263,\n\t\"./public_pages/services/show_cards_controller.js\": 4483,\n\t\"./public_pages/sidenav_controller.js\": 6327\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7461;","(function(global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([ \"exports\" ], factory) : factory(global.ActiveStorage = {});\n})(this, function(exports) {\n \"use strict\";\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function(module, exports) {\n (function(factory) {\n {\n module.exports = factory();\n }\n })(function(undefined) {\n var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n function md5cycle(x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [], i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\", j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function() {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function(from, to) {\n var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [], length = hex.length, x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function(str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function(contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length, i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function() {\n this._buff = \"\";\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.prototype.getState = function() {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n SparkMD5.prototype.setState = function(state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function() {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function(tail, length) {\n var i = length, tmp, lo, hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function(str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function(content, raw) {\n var hash = md51(content), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function() {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function() {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function() {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function() {\n createClass(FileChecksum, null, [ {\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n } ]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [ {\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function(event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function(event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n } ]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles, cancelable = eventInit.cancelable, detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function() {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function(event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function(event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [ {\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr, responseType = _xhr.responseType, response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n } ]);\n return BlobRecord;\n }();\n var BlobUpload = function() {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData, url = _blob$directUploadDat.url, headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function(event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function(event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [ {\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr, status = _xhr.status, response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n } ]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function() {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [ {\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function(error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function(error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function(error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n } ]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function() {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [ {\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function(error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function(event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n } ]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function() {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function(input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [ {\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function(error) {\n if (error) {\n callback(error);\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n _this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function(input) {\n toArray$1(input.files).forEach(function(file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n } ]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function(error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button, disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\n","window.calendarLibrary = {\n run: function(dateElementId){\n $('.day').click(function() {\n $('.day').removeClass('is-selected');\n $(this).addClass('is-selected');\n var newDate = $(this).data('date');\n var newPrice = $(this).data('value');\n var sameTier = $(this).data('sametier');\n\n var element = $('#new-price')\n\n if (element != undefined) {\n element.empty();\n if (sameTier == false){\n element.append('* Este servicio tiene un costo extra de ' + newPrice + ' que serán sumados en tu compra.')\n }\n }\n\n // Remove helper text\n const target = document.querySelector(\"#calendar-container\");\n if (target && target.nextElementSibling && target.nextElementSibling.classList.contains(\"help\")) {\n target.nextElementSibling.remove();\n }\n $('#' + dateElementId).val(newDate)\n });\n }\n\n}\n","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n initialize() {\n this.geocoder = new google.maps.Geocoder();\n this.autocomplete = null;\n this.city_bounds = null;\n }\n\n connect() {\n this.setGeocomplete();\n }\n\n setGeocomplete() {\n const geocomplete_name = $(\"#geocomplete_name\").val();\n const address_body = $(\"#address_body\");\n\n if (geocomplete_name) {\n const city_name = geocomplete_name.split(\",\")[0];\n address_body.val(\"\");\n address_body.prop(\"disabled\", false);\n\n this.geocoder.geocode(\n { address: city_name, componentRestrictions: { country: \"co\" } },\n (results, status) => {\n if (status !== \"OK\" || !results[0].geometry) {\n flashAlert(\"No se pudo obtener la ubicación. Intente de nuevo más tarde.\", \"error\");\n return;\n }\n\n const city_bounds = results[0].geometry.bounds;\n const north_east = city_bounds.getNorthEast();\n const south_west = city_bounds.getSouthWest();\n\n const default_bounds = {\n north: north_east.lat(),\n south: south_west.lat(),\n east: north_east.lng(),\n west: south_west.lng(),\n };\n\n this.city_bounds = new google.maps.LatLngBounds(\n new google.maps.LatLng(south_west.lat(), south_west.lng()),\n new google.maps.LatLng(north_east.lat(), north_east.lng())\n );\n\n if (this.autocomplete) {\n const input = document.getElementById(\"address_body\");\n google.maps.event.clearInstanceListeners(input);\n }\n this.initializeAutocomplete(default_bounds);\n }\n );\n } else {\n address_body.val(\"\");\n address_body.prop(\"disabled\", true);\n }\n }\n\n initializeAutocomplete(bounds) {\n const options = {\n bounds: bounds,\n componentRestrictions: { country: \"co\" },\n fields: [\"place_id\", \"geometry\", \"name\", \"formatted_address\"],\n strictBounds: true,\n };\n const input = document.getElementById(\"address_body\");\n this.autocomplete = new google.maps.places.Autocomplete(input, options);\n this.autocomplete.addListener( \"place_changed\", this.handlePlaceChanged.bind(this) );\n }\n\n handlePlaceChanged() {\n const place = this.autocomplete.getPlace();\n const input = document.getElementById(\"address_body\");\n\n if (!place.place_id) {\n input.value = \"\";\n const message = \"Por favor, selecciona una dirección válida.\";\n const help_text_html = `

${message}

`;\n input.classList.add(\"error\");\n input.insertAdjacentHTML(\"afterend\", help_text_html);\n return;\n }\n\n if (input.classList.contains(\"error\") || input.nextElementSibling) {\n input.classList.remove(\"error\");\n input.nextElementSibling.remove();\n }\n\n this.geocoder\n .geocode({ placeId: place.place_id })\n .then(({ results }) => {\n const location = results[0].geometry.location;\n\n let formatted_address = results[0].formatted_address;\n const latitude = location.lat();\n const longitude = location.lng();\n\n $(\"#address_latitude\").val(latitude);\n $(\"#address_longitude\").val(longitude);\n $(\"#address_body\").val(formatted_address);\n $(\"#info-address\").text(formatted_address);\n\n const markerIconPath = document.getElementById(\"marker_icon_path\").dataset.icon;\n\n $(\"#address_body\")\n .geocomplete({\n map: $(\"#new_address_map\"),\n mapOptions: { zoom: 17 },\n markerOptions: {\n draggable: true,\n icon: markerIconPath,\n },\n location: [latitude, longitude],\n details: \"#datageo\",\n detailsAttribute: \"data-geo\",\n })\n .bind(\"geocode:dragged\", (event, latLng) => {\n if (!this.city_bounds.contains(latLng)) {\n flashAlert( \"El pin debe estar dentro de los límites de la ciudad\");\n const last_valid_position = new google.maps.LatLng(latitude, longitude);\n $(\"#address_body\").geocomplete(\"marker\").setPosition(last_valid_position);\n return;\n }\n this.geocoder\n .geocode({ location: latLng })\n .then(({ results }) => {\n $(\"#info-address\").text(results[0].formatted_address);\n $(\"#address_body\").val(results[0].formatted_address);\n $(\"#address_latitude\").val(results[0].geometry.location.lat());\n $(\"#address_longitude\").val(results[0].geometry.location.lng());\n })\n .catch(() => {\n flashAlert( \"No se pudo obtener la ubicación. Intente de nuevo más tarde.\" );\n });\n })\n .trigger(\"geocode\");\n }).catch(() => {\n flashAlert( \"No se pudo obtener la ubicación. Intente de nuevo más tarde.\" );\n });\n }\n}\n","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n static targets = ['vDigitField',\n 'modalClientRegistered',\n 'documentNumberInput',\n 'vDigitInput',\n 'createServicesForm',\n 'documentTypeSelect',\n 'submitButton']\n\n connect() {\n $(this.documentNumberInputTarget).rules(\"add\", { documentNumber: true, number: true });\n if (this.documentTypeSelectTarget.value == 'NIT') {\n this.vDigitFieldTarget.classList.remove(\"is-hidden\");\n this.vDigitInputTarget.required = true;\n $(this.vDigitInputTarget).rules(\"add\", { vDigit: true });\n }\n }\n\n showVDigitField(event){\n if(event.target.value == 'NIT'){\n this.vDigitFieldTarget.classList.remove(\"is-hidden\");\n this.vDigitInputTarget.required = true;\n $(this.vDigitInputTarget).rules(\"add\", { vDigit: true });\n }else{\n this.vDigitFieldTarget.classList.add(\"is-hidden\");\n this.vDigitInputTarget.required = false;\n $(this.vDigitInputTarget).rules(\"remove\", \"vDigit\");\n }\n }\n\n closeModal(event){\n event.preventDefault();\n this.modalClientRegisteredTarget.classList.remove(\"is-active\");\n this.submitButtonTarget.removeAttribute(\"data-disable-with\");\n this.submitButtonTarget.removeAttribute(\"disabled\");\n }\n\n async validateDocumentNumber(event){\n const validate_number = /^\\d+$/;\n event.preventDefault();\n const document_number = this.documentNumberInputTarget.value;\n const v_digit = this.vDigitInputTarget.value;\n const document_type = this.documentTypeSelectTarget.value;\n\n if(!validate_number.test(document_number)){\n return;\n }\n\n if (\n document_number != \"\" &&\n document_type != \"\" &&\n ((document_type == \"NIT\" && v_digit != \"\") || document_type != \"NIT\")\n ) {\n try{\n let request = await fetch(`/client/validations/profile_cedulas/${document_number}`, { method: \"GET\" });\n let response = await request.json();\n if (response === true) {\n this.modalClientRegisteredTarget.classList.add(\"is-active\");\n } else {\n this.createServicesFormTarget.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n } catch(error){\n flashAlert(\"Ups! Algo salió mal. Por favor, inténtalo más tarde.\");\n }\n }\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n const recurrency_specs = document.querySelectorAll(\".spec-shift-container\");\n recurrency_specs.forEach((element) => {\n if (element.nextElementSibling) {\n element.classList.remove(\"has-margin-bottom-half-auto\");\n element.classList.add(\"has-margin-bottom-2-auto\");\n }\n });\n }\n}","import { Controller } from \"stimulus\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\nimport { HelperText, removeLoader } from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n initialize() {\n this.total_price = 0;\n this.total_days = [];\n this.cleaning_discount = false;\n this.new_days = [];\n }\n\n static targets = [\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"totalPrice\",\n \"modalBetterPlan\",\n \"modalBetterPlanreferencePrice\",\n \"modalBetterPlanTotalPrice\",\n \"modalBetterPlanDescription\",\n \"modalShowDiscount\",\n \"buttonNextPage\",\n \"referencePrice\",\n \"addressId\"\n ];\n\n static values = {\n prices: Object,\n combinationAvailable: Object,\n checkRecurrencyAvailability: Number,\n summaryServiceUrl: String,\n hasRecurrency: Boolean\n };\n\n sendSummaryPage(event) {\n event.preventDefault();\n if (this.total_days.length == 0) {\n const message = \"Por favor selecciona al menos un día de servicio.\";\n const target = document.querySelectorAll(\".box_w_check_box\");\n if(target.length == 0){\n event.target.style.pointerEvents = \"none\";\n event.target.setAttribute(\"disabled\", \"disabled\");\n event.preventDefault();\n } else {\n HelperText(target[target.length - 1], message, \"alert\");\n }\n } else if(this.hasRecurrencyValue){\n this.redirectToSummaryPage(event);\n } else {\n this.showModalBetterPlan();\n }\n }\n\n selectDays(event) {\n const checkboxInput = event.currentTarget.querySelector('input[type=\"checkbox\"]');\n const dayValue = event.currentTarget.getAttribute(\"data-day\");\n const checkboxDay = document.querySelector(`#checkbox-day-${dayValue}`);\n\n if (!checkboxInput.checked) {\n checkboxInput.checked = true;\n\n checkboxDay.classList.add(\"clicked\");\n event.currentTarget.classList.add(\"box_selected\");\n\n this.total_days.push(dayValue);\n // this.checkAvailability();\n this.getAvgPriceCombination();\n } else {\n checkboxInput.checked = false;\n\n checkboxDay.classList.remove(\"clicked\");\n event.currentTarget.classList.remove(\"box_selected\");\n\n this.total_days = this.total_days.filter((day) => day !== dayValue);\n // this.checkAvailability();\n this.getAvgPriceCombination();\n\n event.currentTarget.classList.remove(\"box-not-pl-available\");\n }\n }\n\n checkAvailability(){\n const button = this.buttonNextPageTarget;\n const help_text_selector = \".help.is-danger\";\n let help_text = document.querySelector(help_text_selector);\n\n if (this.total_days.length === 0) {\n this.enableButton(button);\n this.removeHelpText(help_text);\n return;\n }\n\n const formatted_days = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n const filtered_combinations = this.combinationAvailableValue[`[${formatted_days}]`];\n\n const should_disable_button = filtered_combinations <= this.checkRecurrencyAvailabilityValue && this.total_days.length <= 2;\n\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n box.classList.toggle(\"box-not-pl-available\", should_disable_button);\n });\n\n if (should_disable_button && this.total_days.length >= 1) {\n this.disableButton(button);\n this.addHelpText(help_text);\n } else {\n this.enableButton(button);\n this.removeHelpText(help_text);\n }\n }\n\n enableButton(button) {\n button.style.pointerEvents = \"auto\";\n button.removeAttribute(\"disabled\");\n }\n\n disableButton(button) {\n button.style.pointerEvents = \"none\";\n button.setAttribute(\"disabled\", \"disabled\");\n }\n\n removeHelpText(helpText) {\n if (helpText) {\n helpText.remove();\n }\n const button = document.querySelector(\".button.is-primary.is-button-medium\");\n removeLoader(button);\n }\n\n addHelpText(helpText) {\n if (!helpText) {\n const lastBox = document.getElementById(\"box-day-6\");\n const message = \"No tenemos profesionales disponibles para los días seleccionados.\";\n HelperText(lastBox, message, \"alert\");\n }\n }\n\n getAvgPriceCombination() {\n if ( this.total_days.length > 0 ){\n const formatted_days = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n\n const filtered_prices = this.pricesValue[`[${formatted_days}]`];\n\n this.toggleTotalPriceCard(filtered_prices);\n }else{\n this.totalPriceTarget.innerHTML = \"$0\";\n this.referencePriceTarget.innerHTML = \"\";\n }\n }\n\n // Better Plan Modal\n closeModalBetterPlan(event) {\n event.preventDefault();\n this.new_days = [];\n this.modalBetterPlanTarget.classList.remove(\"is-active\");\n }\n\n showModalBetterPlan() {\n const formatted_total_days = this.total_days.map((n) => parseInt(n)).sort();\n const total_days_string = formatted_total_days.join(\", \");\n\n const { pricesValue } = this;\n\n if (this.total_days.length === 1 ) {\n this.showModalShowDiscount( pricesValue, total_days_string);\n return;\n }\n const week_days = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado']\n\n let smallest_promotional_price = null;\n let smallest_key = null;\n\n Object.keys(pricesValue).forEach(key => {\n const array_key = JSON.parse(key);\n if(array_key.length === formatted_total_days.length){\n const promotional_price = pricesValue[key].promotional_price;\n\n if(promotional_price !== null && (smallest_promotional_price === null || promotional_price < smallest_promotional_price)){\n smallest_promotional_price = promotional_price;\n smallest_key = key;\n }\n }\n });\n\n if(smallest_key === null && smallest_promotional_price === null){\n this.showModalShowDiscount(pricesValue, total_days_string);\n return;\n }\n\n const { price, reference_price, promotional_price } = pricesValue[smallest_key];\n const same_days = JSON.stringify(formatted_total_days) === JSON.stringify(JSON.parse(smallest_key));\n\n if (\n !same_days &&\n smallest_promotional_price !== null &&\n promotional_price !== null &&\n (promotional_price < pricesValue[`[${total_days_string}]`].promotional_price ||\n pricesValue[`[${total_days_string}]`].promotional_price === null)\n ) {\n const name_days = JSON.parse(smallest_key).map((day) => week_days[day]);\n const formatted_days = name_days.map( day=> `${day}`)\n const description = `Si seleccionas los días ${formatted_days.slice(0, -1).join(\", \")} y ${formatted_days.slice(-1)} tu plan mensual tendrá un descuento.`;\n\n this.modalBetterPlanTarget.classList.add(\"is-active\");\n this.new_days = JSON.parse(smallest_key);\n if (pricesValue[`[${total_days_string}]`].promotional_price === null){\n this.modalBetterPlanreferencePriceTarget.innerHTML = formattedPrice(pricesValue[`[${total_days_string}]`].price);\n }else{\n this.modalBetterPlanreferencePriceTarget.innerHTML = formattedPrice(pricesValue[`[${total_days_string}]`].promotional_price);\n }\n this.modalBetterPlanTotalPriceTarget.innerHTML = formattedPrice(promotional_price);\n this.modalBetterPlanDescriptionTarget.innerHTML = description;\n }else{\n this.showModalShowDiscount(pricesValue, total_days_string);\n }\n }\n\n notInterested(event){\n event.preventDefault();\n this.new_days = [];\n const { pricesValue } = this;\n const total_days_string = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n if (pricesValue[`[${total_days_string}]`].promotional_price) {\n this.closeModalBetterPlan(event);\n this.modalShowDiscountTarget.classList.add(\"is-active\");\n }else{\n this.redirectToSummaryPage(event);\n }\n }\n\n acceptBetterPlan(event){\n event.preventDefault();\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n const checkbox_day = document.getElementById(`checkbox-day-${day}`);\n const checkbox_input = box.querySelector('input[type=\"checkbox\"]');\n\n checkbox_input.checked = false;\n checkbox_day.classList.remove(\"clicked\");\n box.classList.remove(\"box_selected\");\n });\n\n this.total_days = this.new_days.map(String);\n this.modalBetterPlanTarget.classList.remove(\"is-active\");\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n const checkbox_day = document.getElementById(`checkbox-day-${day}`);\n const checkbox_input = box.querySelector('input[type=\"checkbox\"]');\n\n checkbox_input.checked = true;\n checkbox_day.classList.add(\"clicked\");\n box.classList.add(\"box_selected\");\n });\n this.getAvgPriceCombination();\n // this.checkAvailability();\n }\n\n // Discount Modal\n closeModalShowDiscount(event) {\n event.preventDefault();\n this.modalShowDiscountTarget.classList.remove(\"is-active\");\n }\n\n showModalShowDiscount(pricesValue, total_days_string) {\n if (pricesValue[`[${total_days_string}]`].promotional_price) {\n this.modalShowDiscountTarget.classList.add(\"is-active\");\n }else{\n this.redirectToSummaryPage();\n }\n }\n\n toggleTotalPriceCard(filtered_prices){\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n\n const { price, reference_price, promotional_price } = filtered_prices;\n const has_promotional_price = promotional_price !== null;\n\n if (has_promotional_price){\n const total_promotional_price = parseInt(promotional_price);\n const formatted_promotional_price = formattedPrice(total_promotional_price);\n\n this.total_price = total_promotional_price;\n this.cleaning_discount = true;\n\n const total_reference_price = parseInt(reference_price);\n\n this.referencePriceTarget.innerHTML = formattedPrice(total_reference_price);\n this.totalPriceTarget.innerHTML = formatted_promotional_price;\n\n }else if(price != reference_price){\n const total_price = parseInt(price);\n this.total_price = total_price;\n this.cleaning_discount = false;\n\n const total_reference_price = parseInt(reference_price)\n\n this.referencePriceTarget.innerHTML = formattedPrice(total_reference_price);\n this.totalPriceTarget.innerHTML = formattedPrice(total_price);\n\n }else {\n\n const total_price = parseInt(price)\n this.total_price = total_price;\n this.cleaning_discount = false;\n\n this.referencePriceTarget.innerHTML = \"\";\n this.totalPriceTarget.innerHTML = formattedPrice(total_price);\n }\n }\n\n redirectToSummaryPage(event = null) {\n if (event) {\n event.preventDefault();\n }\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const summary_service_url = this.summaryServiceUrlValue;\n\n const address_id = this.hasAddressIdTarget ? this.addressIdTarget.value : null;\n let url = `${summary_service_url}?cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}&cleaning_total_days=${this.total_days}&cleaning_total_price=${this.total_price}&cleaning_has_discount=${this.cleaning_discount}`;\n\n if (address_id) {\n url += `&address_id=${address_id}`;\n }\n mixpanel.track(\"track-continue-recurrency-schedule-signup\");\n Turbolinks.clearCache();\n Turbolinks.visit(url, { action: \"replace\" });\n }\n\n}\n","import { Controller } from \"stimulus\";\nimport { HelperText } from \"../../../helpers/helper_text\";\n\nexport default class extends Controller {\n static values = {\n summaryUrl: String,\n };\n static targets = [\n \"cityFriendlyName\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"cleaningServiceDate\",\n \"addressId\"\n ];\n\n sendSummaryPage(event) {\n event.preventDefault();\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const cleaning_service_date = this.cleaningServiceDateTarget.value;\n const summary_url = this.summaryUrlValue;\n\n if (!cleaning_service_date) {\n const message = \"Por favor selecciona la fecha en la que necesitas la profesional.\";\n const target = document.querySelector(\"#calendar-container\");\n HelperText(target, message, \"alert\");\n return;\n }\n\n const address_id = this.hasAddressIdTarget ? this.addressIdTarget.value : null;\n let url = `${summary_url}?cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}&cleaning_service_date=${cleaning_service_date}`;\n\n if (address_id) {\n url += `&address_id=${address_id}`;\n }\n Turbolinks.clearCache();\n Turbolinks.visit(url, { action: \"replace\" });\n }\n}\n","import { Controller } from \"stimulus\";\nimport {\n HelperText,\n removeHelperText,\n HelperTextForServiceDuration,\n removeLoader\n} from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n scheduleServiceUrl: String,\n duration: Object\n }\n static targets = [ \"boxSingleService\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"addressId\"]\n\n selectIntensity(event) {\n const target = this.boxSingleServiceTargets[this.boxSingleServiceTargets.length - 1];\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n removeHelperText(target);\n const button = document.querySelector(\".button.is-primary.is-button-medium\");\n removeLoader(button);\n this.boxSingleServiceTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningIntensityTarget.value = radioInput.value;\n }\n\n const { hours, minutes } = this.durationValue[this.cleaningIntensityTarget.value];\n removeHelperText(target, \"helper-text\");\n HelperTextForServiceDuration(target, hours, minutes);\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const schedule_service_url = this.scheduleServiceUrlValue;\n\n if(!cleaning_intensity || cleaning_intensity === \"nil\"){\n const message = \"Por favor selecciona la jornada en la que necesitas los servicios de limpieza.\";\n const target = this.boxSingleServiceTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n return;\n }\n\n const address_id = this.hasAddressIdTarget ? this.addressIdTarget.value : null;\n let url = `${schedule_service_url}?cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}`;\n\n if (address_id) {\n url += `&address_id=${address_id}`;\n }\n mixpanel.track(event.target.dataset.mixpanelEventName);\n Turbolinks.clearCache();\n Turbolinks.visit(url, { action: \"replace\" });\n }\n\n}","import { Controller } from \"stimulus\";\nimport {\n HelperText,\n removeHelperText,\n HelperTextForServiceDuration,\n removeLoader\n} from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n scheduleServiceUrl: String,\n duration: Object\n }\n\n static targets = [ \"boxSingleService\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"addressId\"]\n\n selectIntensity(event) {\n const target = this.boxSingleServiceTargets[this.boxSingleServiceTargets.length - 1];\n removeHelperText(target);\n const button = document.querySelector(\".button.is-primary.is-button-medium\");\n removeLoader(button);\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n this.boxSingleServiceTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningIntensityTarget.value = radioInput.value;\n }\n\n const { hours, minutes } = this.durationValue[this.cleaningIntensityTarget.value];\n removeHelperText(target, \"helper-text\");\n HelperTextForServiceDuration(target, hours, minutes);\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const schedule_service_url = this.scheduleServiceUrlValue;\n\n if(!cleaning_intensity || cleaning_intensity === \"nil\"){\n const message = \"Por favor selecciona la jornada en la que necesitas los servicios de limpieza.\";\n const target = this.boxSingleServiceTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n return;\n }\n\n const address_id = this.hasAddressIdTarget ? this.addressIdTarget.value : null;\n let url = `${schedule_service_url}?cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}`;\n\n if (address_id) {\n url += `&address_id=${address_id}`;\n }\n mixpanel.track(event.target.dataset.mixpanelEventName);\n Turbolinks.clearCache();\n Turbolinks.visit(url, { action: \"replace\" });\n }\n\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n\n static values = { businessDays: Array }\n\n static targets = [\"editDateModal\",\n \"startDate\",\n \"BoxSelectStartDate\",\n \"optionalStartDate\",\n \"cityFriendlyName\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"totalDaysArray\",\n \"cleaningTotalPrice\",\n \"cleaningHasDiscount\",\n \"boxTotalMonth\",\n \"modifyPlanModal\",\n \"modifyPlanForm\",\n \"modifyPlanButtonsContainer\",\n \"billingInfoForm\"]\n\n connect() {\n this.totalPriceMonth(this.startDateTarget.value);\n }\n\n\n showModifyPlanModal(event) {\n event.preventDefault();\n this.modifyPlanModalTarget.classList.add(\"is-active\");\n }\n\n modifyPlan(event) {\n event.preventDefault();\n const buttonsContainer = this.modifyPlanButtonsContainerTarget;\n buttonsContainer.classList.remove(\"is-justify-content-space-between-auto\");\n buttonsContainer.classList.add(\"is-justify-content-center-auto\", \"is-relative\");\n buttonsContainer.style.height = \"1.5rem\";\n buttonsContainer.innerHTML = '
';\n mixpanel.track(\"track-button-continue-summary-client\");\n Turbolinks.clearCache();\n window.history.replaceState(null, null, \"/client\");\n this.modifyPlanFormTarget.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n }\n\n showModal(event) {\n event.preventDefault();\n mixpanel.track(\"track-summary-services-edit-date\");\n this.editDateModalTarget.classList.add(\"is-active\");\n this.toggleClassBoxSelected();\n }\n\n closeModal(event) {\n event.preventDefault();\n const modal_name = event.currentTarget.getAttribute(\"data-modal-name\");\n this[`${modal_name}Target`].classList.remove(\"is-active\");\n }\n\n selectStartDate(event) {\n const date_elements = event.currentTarget.querySelectorAll(\".sort-date\");\n const abbreviated_day = date_elements[0].textContent.substring(0, 3);\n const day_number = date_elements[1].textContent;\n const month_name = date_elements[2].textContent;\n\n this.totalPriceMonth(event.currentTarget.getAttribute(\"data-start-date\"));\n this.startDateTarget.value = event.currentTarget.getAttribute(\"data-start-date\");\n this.toggleClassBoxSelected();\n this.optionalStartDateTarget.textContent = `${abbreviated_day}, ${day_number} de ${month_name}`;\n }\n\n confirmDate(event) {\n event.preventDefault();\n if (this.startDateTarget.value == \"\") {\n flashAlert(\"Por favor, seleccione una fecha de inicio\");\n } else {\n flashAlert(\"Fecha de inicio actualizada\", \"success\");\n this.editDateModalTarget.classList.remove(\"is-active\");\n }\n }\n\n toggleClassBoxSelected() {\n this.BoxSelectStartDateTargets.forEach((element) => {\n if (element.getAttribute(\"data-start-date\") == this.startDateTarget.value){\n element.classList.add(\"box_date_selected\");\n } else {\n element.classList.remove(\"box_date_selected\");\n }\n });\n }\n\n totalPriceMonth(start_date){\n const business_days = this.businessDaysValue;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_total_days = this.totalDaysArrayTarget.value;\n const cleaning_total_price = this.cleaningTotalPriceTarget.value;\n const cleaning_has_discount = this.cleaningHasDiscountTarget.value;\n\n const format_start_date = new Date(`${start_date}T00:00:00`);\n const format_total_days = cleaning_total_days.split(\" \").map( n => parseInt(n));\n\n const last_day_month = new Date(format_start_date.getFullYear(), format_start_date.getMonth() + 1, 0)\n\n let total_services = 0;\n\n const type_of_week = this.typeOfWeek(format_start_date);\n\n let frequency = cleaning_frequency == \"once_a_week\" ? \"weekly\" : \"biweekly\";\n\n while(format_start_date <= last_day_month){\n\n let date_to_string = format_start_date.toISOString().split('T')[0];\n\n if (format_total_days.includes(format_start_date.getDay()) && business_days.includes(date_to_string)){\n if(frequency == \"weekly\"){\n total_services += 1;\n }else{\n switch (type_of_week) {\n case \"odd\":\n if (this.typeOfWeek(format_start_date) == \"odd\") {\n total_services += 1;\n }\n break;\n case \"even\":\n if (this.typeOfWeek(format_start_date) == \"even\"){\n total_services += 1;\n }\n break;\n }\n }\n }\n format_start_date.setDate(format_start_date.getDate() + 1);\n }\n\n const total_price_per_month = cleaning_total_price * total_services;\n const formatted_total_price_per_month = formattedPrice(total_price_per_month);\n const total_label = this.boxTotalMonthTarget.querySelector(\"p\");\n total_label.textContent = `${formatted_total_price_per_month} COP`;\n\n if (cleaning_has_discount == \"true\"){\n this.boxTotalMonthTarget.classList.add(\"box-has-background-cheaper-price\");\n }else{\n this.boxTotalMonthTarget.classList.add(\"box-has-background-summary-price\");\n }\n }\n\n typeOfWeek(date){\n const number_week = Math.floor((date.getTime() - new Date(date.getFullYear(), 0, 1).getTime()) / (86400000 * 7)) + 1;\n return number_week % 2 === 1 ? \"odd\" : \"even\";\n }\n\n sendToFillInfo(event){\n event.preventDefault();\n Turbolinks.clearCache();\n window.history.replaceState(null, null, \"/client\");\n this.billingInfoFormTarget.submit()\n }\n}","import { Controller } from \"stimulus\";\nimport { HelperText, removeHelperText, removeLoader } from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\nexport default class extends Controller {\n static values = {\n singleServiceUrl: String,\n servicesUrl: String\n }\n\n static targets = [\"cityFriendlyName\",\n \"addressId\",\n \"cleaningFrequency\",\n \"boxCleaning\"]\n\n sendWorkDayPage(event) {\n event.preventDefault();\n\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const single_service_url = this.singleServiceUrlValue;\n const services_url = this.servicesUrlValue;\n let url = \"\";\n\n const valid_frequencies = [\"occasional\", \"once_a_week\", \"biweekly\"];\n\n if (!valid_frequencies.includes(cleaning_frequency) || !cleaning_frequency) {\n const message = \"Por favor selecciona con qué frecuencia deseas el servicio de limpieza\";\n const target = this.boxCleaningTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n return;\n }\n\n const address_id = this.hasAddressIdTarget ? this.addressIdTarget.value : null;\n const is_occasional = cleaning_frequency === \"occasional\";\n\n if (is_occasional) {\n url = `${single_service_url}?cleaning_frequency=${cleaning_frequency}`;\n } else {\n url = `${services_url}?cleaning_frequency=${cleaning_frequency}`;\n }\n\n if (address_id) {\n url += `&address_id=${address_id}`;\n }\n mixpanel.track(event.target.dataset.mixpanelEventName);\n Turbolinks.clearCache();\n Turbolinks.visit(url, { action: \"replace\" });\n }\n\n selectFrequency(event) {\n removeHelperText(this.boxCleaningTargets[this.boxCleaningTargets.length - 1]);\n const button = document.querySelector(\".button.is-primary.is-button-medium\");\n removeLoader(button);\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n this.boxCleaningTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningFrequencyTarget.value = radioInput.value;\n }\n }\n}\n","import { Controller } from \"stimulus\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\n\nexport default class extends Controller {\n initialize() {\n this.total = 0\n }\n\n static targets = ['totalPrice']\n\n static values = {\n priceSubscription: Number\n }\n\n connect() {\n this.total = this.priceSubscriptionValue;\n }\n\n selectBox(event) {\n const checkbox = event.currentTarget.querySelector('input[type=\"checkbox\"]');\n const value = event.currentTarget.getAttribute('data-price');\n const check_icon = event.currentTarget.querySelector(\"i.fa\");\n\n checkbox.checked = !checkbox.checked;\n if (checkbox.checked) {\n check_icon.classList.remove(\"fa-square-o\", \"has-text-grey-light\");\n check_icon.classList.add(\"fa-check-square\", \"has-text-link\");\n this.total += parseInt(value);\n }else{\n check_icon.classList.remove(\"fa-check-square\", \"has-text-link\");\n check_icon.classList.add(\"fa-square-o\", \"has-text-grey-light\");\n this.total -= parseInt(value);\n }\n event.currentTarget.classList.toggle('box_selected');\n this.totalPriceTarget.textContent = formattedPrice(this.total);\n }\n\n submitForm(event) {\n event.preventDefault();\n const form = document.getElementById(\"additional-services\");\n form.submit();\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n\n editCesantiasEntity(e) {\n e.preventDefault();\n\n const edit_form = document.getElementById(`edit-cesantias-${e.target.dataset.id}-entity-form`);\n const add_form = document.getElementById(`add-cesantias-${e.target.dataset.id}-entity-form`);\n const cesantia_entity_label = document.getElementById(`cesantias-${e.target.dataset.id}-entity-label`);\n const pay_cesantias_button = document.getElementById(\"pay-cesantias-button\");\n\n edit_form.classList.remove(\"is-hidden\");\n\n add_form.classList.add(\"is-hidden\");\n cesantia_entity_label.classList.add(\"is-hidden\");\n pay_cesantias_button.classList.add(\"is-hidden\");\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n static targets = [\"input\", \"requiredDegreeField\", \"requiredDegreeInput\", \"educationLevel\"];\n\n initialize() {\n this.educationLevels = [\"technical\", \"university\", \"specialization\", \"master\", \"doctorate\"];\n }\n\n connect() {\n this.toggleRequiredDegreeField(this.educationLevelTarget.value);\n }\n\n updateRequiredDegreeField(event) {\n const education_level = event.target.value;\n this.toggleRequiredDegreeField(education_level);\n }\n\n toggleRequiredDegreeField(education_level) {\n if (this.educationLevels.includes(education_level)) {\n this.requiredDegreeFieldTarget.classList.remove(\"is-hidden\");\n this.requiredDegreeInputTarget.required = true;\n } else {\n this.requiredDegreeFieldTarget.classList.add(\"is-hidden\");\n this.requiredDegreeInputTarget.required = false;\n }\n }\n\n validateForm(event) {\n const inputs = this.inputTargets;\n inputs.forEach((input) => {\n if (input.value === \"\") {\n event.preventDefault();\n flashAlert(\"Por favor, completa todos los campos.\");\n }\n });\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n static targets = [\"legalRepresentativeContainer\", \"legalRepresentativeInput\", \"firstNameInput\", \"lastNameInput\", \"nitInput\"];\n connect() {\n this.toggleForm();\n this.validateVerificationDigitInput();\n }\n\n toggleForm() {\n const document_type = document.getElementById(\"grace_employer_forms_basic_data_form_document_type\");\n const first_name = document.getElementById(\"first-name\");\n const last_name = document.getElementById(\"last-name\");\n const company_name = document.getElementById(\"company-name\");\n const contact_name = document.getElementById(\"contact-name\");\n const verification_digit = document.getElementById(\"verification-digit\");\n\n const update_form_visibility = () => {\n if (document_type.value === \"NIT\") {\n first_name.classList.add(\"is-hidden\");\n last_name.classList.add(\"is-hidden\");\n this.firstNameInputTarget.value = \"\";\n this.lastNameInputTarget.value = \"\";\n company_name.classList.remove(\"is-hidden\");\n verification_digit.classList.remove(\"is-hidden\");\n contact_name.classList.remove(\"is-hidden\");\n this.legalRepresentativeContainerTarget.classList.remove(\"is-hidden\");\n } else {\n company_name.classList.add(\"is-hidden\");\n contact_name.classList.add(\"is-hidden\");\n verification_digit.classList.add(\"is-hidden\");\n this.nitInputTargets.forEach((input) => {\n input.value = \"\";\n });\n this.legalRepresentativeContainerTarget.classList.add(\n \"is-hidden\"\n );\n this.legalRepresentativeInputTargets.forEach((input) => {\n input.value = \"\";\n });\n first_name.classList.remove(\"is-hidden\");\n last_name.classList.remove(\"is-hidden\");\n }\n };\n\n update_form_visibility();\n document_type.addEventListener(\"change\", update_form_visibility);\n }\n\n submitForm(event) {\n const document_type = document.getElementById(\"grace_employer_forms_basic_data_form_document_type\");\n if (document_type.value === \"\") {\n event.preventDefault();\n document_type.parentNode.classList.add(\"is-danger\");\n flashAlert(\"Por favor, selecciona un tipo de documento\");\n }else{\n const inputs = document_type.value === 'NIT' ? document.querySelectorAll(\".document-type-nit\") : document.querySelectorAll(\".document-type-cc-ce\");\n let has_empty_inputs = false;\n inputs.forEach((input) => {\n if (input.value === \"\") {\n this.inputIsDanger(input);\n flashAlert(\"Por favor, completa todos los campos\");\n has_empty_inputs = true;\n }\n });\n if (has_empty_inputs){\n event.preventDefault();\n };\n }\n }\n\n validateVerificationDigitInput(){\n const verification_digit = document.getElementById(\"grace_employer_forms_basic_data_form_verification_digit\");\n verification_digit.addEventListener(\"input\", (event) => {\n if (event.target.value.length > 1) {\n this.inputIsDanger(verification_digit);\n flashAlert(\n \"El dígito de verificación no puede tener más de un caracter\"\n );\n }\n const regex = /^[0-9]+$/;\n if (!regex.test(event.target.value)) {\n this.inputIsDanger(verification_digit);\n flashAlert(\"El dígito de verificación solo puede contener números entre 0 y 9\");\n }\n });\n }\n\n inputIsDanger(input) {\n const document_type = document.getElementById(\n \"grace_employer_forms_basic_data_form_document_type\"\n );\n input.classList.add(\"is-danger\");\n input.parentNode.classList.add(\"is-danger\");\n setTimeout(() => {\n input.classList.remove(\"is-danger\");\n document_type.parentNode.classList.remove(\"is-danger\");\n input.parentNode.classList.remove(\"is-danger\");\n setTimeout(() => {\n input.classList.remove(\"is-danger\");\n document_type.parentNode.classList.remove(\"is-danger\");\n input.parentNode.classList.remove(\"is-danger\");\n }, 1000);\n }, 4000);\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static values = {\n form : Array\n }\n\n connect() {\n this.toggleIcons();\n }\n\n toggleIcons(){\n const iconsId = [\n \"address_info\",\n \"additional_info\",\n \"home_info\",\n \"task_info\",\n \"description_info\",\n ];\n iconsId.forEach((iconId, index) => {\n let icon = document.getElementById(iconId);\n if (this.formValue[index]) {\n icon.classList.add(\"data-completed-active\");\n } else {\n icon.classList.remove(\"data-completed-active\");\n }\n })\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n\n static values = {\n addresses: Array\n };\n\n connect(){\n const form_create_address = document.getElementById(\"form-create-address\");\n const form_edit_address = document.getElementById(\"form-edit-address\");\n\n if (this.addressesValue.length == 0) {\n form_create_address.classList.toggle(\"is-hidden\");\n form_edit_address.classList.toggle(\"is-hidden\");\n }\n this.validateRadioButtons();\n this.toggleFormCreateAddress(form_create_address, form_edit_address);\n this.toggleFormEditAddress(form_create_address, form_edit_address);\n }\n\n\n\n validateRadioButtons(){\n const button_edit_address = document.getElementById(\"button-edit-address\");\n button_edit_address.addEventListener(\"click\", (event) => {\n const radio_buttons = document.getElementsByName(\n \"grace_offer[address_id]\"\n );\n let checked = false;\n radio_buttons.forEach((radio_button) => {\n if (radio_button.checked) {\n checked = true;\n }\n });\n if (!checked) {\n event.preventDefault();\n flashAlert(\"Debes seleccionar una dirección para continuar.\");\n }\n });\n }\n\n toggleFormCreateAddress(form_create_address, form_edit_address){\n const button_show_form = document.getElementById(\"button-show-form\");\n button_show_form.addEventListener(\"click\", function () {\n form_create_address.classList.toggle(\"is-hidden\");\n form_edit_address.classList.toggle(\"is-hidden\");\n });\n }\n\n toggleFormEditAddress(form_create_address, form_edit_address){\n const button_return = document.getElementById(\"button-return\");\n if (button_return != null) {\n button_return.addEventListener(\"click\", function () {\n form_create_address.classList.toggle(\"is-hidden\");\n form_edit_address.classList.toggle(\"is-hidden\");\n });\n }\n }\n}\n","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\nimport { HelperText, removeHelperText } from \"../../../helpers/helper_text\";\n\nexport default class extends Controller {\n initialize() {\n this.baseSalary = 0;\n this.maxWorkHours = 8;\n this.monthlySalaryQuestion = \"¿Cuál será el salario aproximado mensual de tu empleada del hogar?\";\n this.dailySalaryQuestion = \"¿Cuál será el salario aproximado diario de tu empleada del hogar?\";\n this.salaryNote = `Nota: Recuerda que el pago mínimo `;\n this.salaryError = \"El salario no puede ser menor al mínimo establecido por la ley.\";\n }\n\n static values = { minimumSalaries: Object}\n static targets = [\"entryHour\",\n \"exitHour\",\n \"labelSalary\",\n \"inputSalary\",\n \"noteSalary\",\n \"internEmployeeTrue\",\n \"internEmployeeFalse\",\n \"internEmployeeContainer\"\n ];\n\n connect(){\n this.calculateSalaryBasedOnTime();\n }\n\n selectedBaseSalary() {\n if (this.entryHour && this.exitHour) {\n this.calculateSalaryBasedOnTime();\n }\n }\n\n submitForm(event) {\n //Convert NodeList to Array with spread operator\n //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax\n const checkboxes = [...document.querySelectorAll(\".work_days\")];\n\n // User Array.some() method to check if at least one checkbox is checked\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some\n let checked = checkboxes.some((checkbox) => checkbox.checked);\n\n if (!checked) {\n event.preventDefault();\n flashAlert(\"Debes seleccionar un día de la semana para continuar.\");\n }\n this.validateHours(event);\n this.validateSalary(event);\n }\n\n validateHours(event) {\n let date = new Date();\n date.setHours(this.entryHourTarget.value.split(\":\")[0], this.entryHourTarget.value.split(\":\")[1])\n let entry_hour = date.getTime();\n date.setHours(this.exitHourTarget.value.split(\":\")[0], this.exitHourTarget.value.split(\":\")[1])\n let exit_hour = date.getTime();\n\n let duration = (exit_hour - entry_hour) / 3600000\n\n if (parseFloat(duration) > this.maxWorkHours) {\n event.preventDefault();\n flashAlert(`La jornada laboral debe ser de máximo ${this.maxWorkHours} horas diarias.`);\n }\n\n if (this.entryHourTarget.value > this.exitHourTarget.value) {\n event.preventDefault();\n flashAlert(\"La hora de salida debe ser mayor a la hora de entrada.\");\n }\n }\n\n validateSalary(event) {\n const salary = document.getElementById( \"grace_employer_forms_offer_description_form_salary\" );\n const numeric_regex = /^[0-9]+$/;\n if(!numeric_regex.test(salary.value)) {\n event.preventDefault();\n flashAlert(\"El salario debe contener solo números.\");\n }\n if (salary.value <= 0 || salary.value < this.baseSalary) {\n event.preventDefault();\n flashAlert(\"El salario no puede ser menor al mínimo establecido por la ley.\");\n }\n }\n\n validateMinimumSalary(event) {\n removeHelperText(this.inputSalaryTarget);\n if (event.target.value < this.baseSalary) {\n this.addClass(this.inputSalaryTarget, \"is-danger\");\n HelperText(this.inputSalaryTarget, `El salario no puede ser menor al mínimo establecido por la ley.`,\"alert\", \"is-size-6\");\n } else {\n this.removeClass(this.inputSalaryTarget, \"is-danger\");\n }\n }\n\n calculateSalaryBasedOnTime(event) {\n const checked_checkboxes = [...document.querySelectorAll(\".work_days\")].filter((checkbox) => checkbox.checked);\n if (this.entryHourTarget.value == \"\" || this.exitHourTarget.value == \"\" || checked_checkboxes.length == 0) {\n return;\n }\n if (this.entryHourTarget.value > this.exitHourTarget.value) {\n flashAlert(\"La hora de salida debe ser mayor a la hora de entrada.\");\n return;\n }\n\n const entry_hour = this.calculateHour(this.entryHourTarget.value);\n const exit_hour = this.calculateHour(this.exitHourTarget.value);\n const difference = Math.floor((exit_hour - entry_hour) / 3600000);\n\n if (difference > this.maxWorkHours) {\n flashAlert(`La jornada laboral debe ser de máximo ${this.maxWorkHours} horas diarias.`);\n return;\n }\n\n this.calculateSalary(checked_checkboxes.length, difference);\n }\n\n calculateHour(timeString){\n let date = new Date();\n const [hours, minutes] = timeString.split(\":\");\n date.setHours(hours, minutes);\n return date.getTime();\n }\n\n calculateSalary(days, hours){\n const is_full_time = hours === this.maxWorkHours;\n const is_monthly = days > 4;\n const salary_type = is_full_time ? \"complete_time\" : \"partial_time\";\n const salary_period = is_monthly ? \"monthly\" : \"daily\";\n const salary_key = `${salary_period}_salary_${salary_type}`;\n\n this.labelSalaryTarget.textContent = is_monthly ? this.monthlySalaryQuestion : this.dailySalaryQuestion;\n this.baseSalary = this.minimumSalariesValue[salary_key];\n\n if (is_full_time && is_monthly) {\n this.removeClass(this.internEmployeeContainerTarget, \"is-hidden\");\n if (this.internEmployeeTrueTarget.checked){\n this.baseSalary -= this.minimumSalariesValue[\"minimum_transportation_aid\"];\n }\n } else{\n this.internEmployeeTrueTarget.checked = false;\n this.internEmployeeFalseTarget.checked = true;\n this.addClass(this.internEmployeeContainerTarget, \"is-hidden\");\n }\n\n const is_intern = this.internEmployeeTrueTarget.checked;\n this.noteSalaryTarget.innerHTML = `${this.salaryNote} ${is_monthly ? \"mensual\" : \"diario\"} en Colombia es de ${formattedPrice(this.baseSalary)}${is_intern ? \".\": \", incluyendo auxilio de transporte.\"}`;\n\n removeHelperText(this.inputSalaryTarget);\n if ((this.inputSalaryTarget.value != \"\" || this.inputSalaryTarget.value == 0) && this.inputSalaryTarget.value < this.baseSalary) {\n HelperText(this.inputSalaryTarget, this.salaryError,\"alert\", \"is-size-6\");\n }\n }\n\n addClass(element, className) {\n element.classList.add(className);\n }\n\n removeClass(element, className) {\n element.classList.remove(className);\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n connect() {\n this.uncheckBoxes();\n }\n\n uncheckBoxes() {\n const boxes = document.querySelectorAll(\".box_w_check_box.checkbox\");\n boxes.forEach(function (box) {\n let checkbox = box.querySelector('input[type=\"checkbox\"]');\n box.addEventListener(\"click\", function () {\n if (!checkbox.checked) {\n boxes.forEach(function (otherBox) {\n otherBox.querySelector('input[type=\"checkbox\"]').checked = false;\n });\n checkbox.checked = true;\n }\n });\n });\n }\n\n submitForm(event) {\n //Convert NodeList to Array with spread operator\n //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax\n const checkboxes = [...document.getElementsByName(\"grace_offer[house_type]\")];\n\n // User Array.some() method to check if at least one checkbox is checked\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some\n let checked = checkboxes.some((checkbox) => checkbox.checked);\n\n if (!checked) {\n event.preventDefault();\n flashAlert(\"Debes seleccionar una opción para continuar.\");\n }\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n\n submitForm(event) {\n //Convert NodeList to Array with spread operator\n //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax\n const checkboxes_general_task = [...document.querySelectorAll(\".general_task\")];\n\n // User Array.some() method to check if at least one checkbox is checked\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some\n let checked = checkboxes_general_task.some((checkbox) => checkbox.checked);\n\n if (!checked) {\n event.preventDefault();\n flashAlert(\"Debes seleccionar al menos una tarea del hogar para continuar.\");\n }\n }\n}","import { Controller } from \"stimulus\"\nimport { flashAlert } from \"../helpers/flash_alert\";\n\nexport default class extends Controller {\n\n static values = {\n currentContainer: String,\n financialInstitutionCodes: Array,\n pseContainerPartial: { type: String, default: \"payment_type_container_pse\" },\n pseFormPartial: { type: String, default: \"payment_type_form_pse\" },\n isPseDisabled: { type: Boolean, default: true },\n financialInstitutionSelect: { type: String, default: \"payment_type_params_financial_institution_code\" },\n pendingTransaction: Boolean,\n pendingTransactionUuid: String,\n loggedUser: Boolean,\n clientId: Number\n }\n\n static targets = [ \"paymentForm\", \"pendingTxMessage\", \"pendingTxButton\", \"encryptInput\", \"creditCardForm\", \"submitButton\", \"preloader\" ]\n\n connect() {\n this.checkFormsStatus()\n this.addValidations()\n }\n\n addValidations() {\n // Form validations\n $('form').each(function(i, form) {\n $(form).validate({\n focusCleanup: true\n })\n });\n // Email validations\n $('[id=payer_email]').each(function(i, email) {\n $(email).rules('add', { validateEmail: true })\n });\n // Nequi validations\n $('#payment_type_params_phone').rules('add', { colCellphone: true })\n // Bancolombia Button validations\n $('#payer_telephone').rules('add', { colCellphone: true })\n }\n\n findFinancialInstitutions() {\n this.disablePse()\n if (this.financialInstitutionCodesValue.length == 0) {\n let financialInstEndpoint = \"/client/liquido/financial_institutions\"\n if (!this.loggedUserValue) {\n financialInstEndpoint = `/client/token/liquido/financial_institutions?client_id=${this.clientIdValue}`\n }\n \n fetch(`${financialInstEndpoint}`, {\n method: \"GET\",\n })\n .then(response => {\n if (!response.ok) { throw response }\n return response.json()\n })\n .then(data => {\n this.isPseDisabledValue = false\n this.enablePse()\n const options_html = data.map(info => {\n return ``\n }).join(\"\")\n document.getElementById(this.financialInstitutionSelectValue).innerHTML = options_html\n })\n .catch(error => {\n flashAlert(\"PSE no está disponible en este momento.\", \"error\")\n this.isPseDisabledValue = true\n })\n }\n }\n\n checkFormsStatus() {\n if (this.pendingTransactionValue) {\n this.paymentFormTarget.classList.add('is-hidden')\n this.pendingTxMessageTarget.classList.remove('is-hidden')\n } else {\n this.paymentFormTarget.classList.remove('is-hidden')\n this.pendingTxMessageTarget.classList.add('is-hidden')\n }\n }\n\n disablePse() {\n let currentContainer = document.getElementById(this.pseContainerPartialValue)\n currentContainer.classList.add('disabled')\n }\n\n enablePse() {\n let currentContainer = document.getElementById(this.pseContainerPartialValue)\n currentContainer.classList.remove('disabled')\n }\n\n showPaymentForm(event) {\n const params = event.params\n const incomingContainer = params.container\n\n if (this.isPseDisabledValue && incomingContainer == this.pseContainerPartialValue) {\n return;\n } else {\n if (this.currentContainerValue != '') {\n let currentContainer = document.getElementById(this.currentContainerValue)\n currentContainer.classList.remove('is-active')\n }\n if (this.currentContainerValue == incomingContainer) {\n this.currentContainerValue = ''\n } else {\n this.currentContainerValue = incomingContainer\n let newContainer = document.getElementById(this.currentContainerValue)\n newContainer.classList.add('is-active')\n }\n }\n }\n\n checkPendingTxStatus() {\n\n if (this.pendingTransactionUuidValue == '') {\n flashAlert(\"Hemos realizado la verificación.\", \"notice\")\n this.pendingTransactionValue = false\n return true;\n }\n\n let updateEndpoint = `/client/pay_in_transactions/${this.pendingTransactionUuidValue}`\n if (!this.loggedUserValue) {\n updateEndpoint = `/client/token/pay_in_transactions/${this.pendingTransactionUuidValue}?client_id=${this.clientIdValue}`\n }\n\n this.pendingTxButtonTarget.disabled = true\n const csrfToken = document.querySelector(\"[name='csrf-token']\").content\n\n fetch(`${updateEndpoint}`, {\n method: \"PUT\",\n headers: {\n \"X-CSRF-Token\": csrfToken,\n \"Content-Type\": \"application/json\"\n }\n })\n .then(response => {\n if (!response.ok) { throw response }\n return response.json()\n })\n .then(data => {\n if (data['should_reload'] === true) {\n location.reload()\n } else {\n if (data['uuid'] == null) {\n this.pendingTransactionUuidValue = ''\n this.pendingTransactionValue = false\n this.resetEncryptedInformation()\n if (data['flash_message'] != null && data['flash_type'] != null) {\n flashAlert(data['flash_message'], data['flash_type'])\n } else {\n flashAlert(\"Hemos realizado la verificación.\", \"notice\")\n }\n } else {\n this.pendingTransactionUuidValue = data['uuid']\n this.pendingTransactionValue = true\n }\n }\n \n this.pendingTxButtonTarget.disabled = false\n })\n .catch(error => {\n flashAlert(\"Hubo un error verificando el estado de la transacción.\", \"error\")\n setTimeout(() => {\n this.pendingTxButtonTarget.disabled = false\n }, 6000)\n })\n }\n\n encryptInformation(event) {\n const encrypt = new JSEncrypt()\n encrypt.setPublicKey(gon.public_key)\n\n let validator = $(this.creditCardFormTarget).validate()\n let isNotValid = Object.keys(validator.invalid).length > 0\n\n if (!isNotValid) {\n this.encryptInputTargets.forEach((element) => {\n const unencrypted = element.value\n let encryptionPerformed = false\n if (unencrypted != '') {\n const encrypted = encrypt.encrypt(unencrypted)\n element.type = 'text'\n element.value = encrypted\n encryptionPerformed = true\n }\n if (encryptionPerformed) {\n this.dispatch(\"encryptInformation\", { detail: { content: this.currentContainerValue } })\n }\n })\n }\n }\n\n disableSubmitButtons() {\n this.submitButtonTargets.forEach((element) => {\n element.disabled = true\n })\n }\n\n enableSubmitButtons() {\n this.submitButtonTargets.forEach((element) => {\n element.disabled = false\n })\n }\n\n resetEncryptedInformation() {\n this.encryptInputTargets.forEach((element) => {\n element.value = ''\n })\n }\n\n pendingTransactionUuidValueChanged(value, previousValue) {\n \n }\n\n pendingTransactionValueChanged(value, previousValue) {\n if (value) {\n this.checkFormsStatus()\n } else {\n this.checkFormsStatus()\n this.findFinancialInstitutions()\n }\n }\n\n validateFormInfo(event) {\n let validator = $(event.target).validate()\n let isNotValid = Object.keys(validator.invalid).length > 0\n this.disableSubmitButtons()\n \n if (!isNotValid) {\n this.paymentFormTarget.classList.add('is-hidden')\n this.preloaderTarget.classList.remove('is-hidden')\n } else {\n event.preventDefault()\n flashAlert(\"Debes corregir la información para continuar\", \"error\")\n setTimeout(() => {\n this.enableSubmitButtons()\n }, 2500)\n }\n }\n}","import { Controller } from \"stimulus\"\nimport { flashAlert } from \"../helpers/flash_alert\";\n\nexport default class extends Controller {\n\n static values = {\n franchise: { type: String, default: 'no-franchise' },\n cardNumber: { type: String, default: \"XXXX XXXX XXXX XXXX\" },\n holderName: { type: String, default: \"Nombre y Apellido\" },\n monthYear: { type: String, default: \"MM/YY\" },\n cvv: { type: String, default: \"XXX\" }\n }\n\n static targets = [ \"cardFlipper\", \"cardContainer\", \"franchiseLogo\", \"cardNumber\", \"holderName\", \"monthYear\", \"cvv\", \"cvvAmex\", \"holderNameInput\", \"cardNumberInput\", \"monthInput\", \"yearInput\", \"cvvInput\", \"creditCardForm\" ]\n\n connect() {\n $(this.creditCardFormTarget).validate({\n focusCleanup: true\n })\n $(this.cardNumberInputTarget).rules('add', { creditCardNumber: true })\n $(this.holderNameInput).rules('add', { required: true })\n $(this.cardNumberInput).rules('add', { required: true })\n $(this.monthInput).rules('add', { required: true })\n $(this.yearInput).rules('add', { required: true })\n $(this.cvvInput).rules('add', { required: true })\n }\n\n changeNumber(event) {\n const cursorPosition = event.target.selectionStart\n const currentInput = this.cardNumberInputTarget.value.replace(/\\s/g,'')\n \n if (currentInput.replace(/[^0-9]/gi,'') == '') {\n this.cardNumberInputTarget.value = ''\n this.cardNumberValue = 'XXXX XXXX XXXX XXXX'\n this.deleteFranchiseLogo()\n } else {\n const lastCardNumber = this.cardNumberValue.replace(/\\s/g,'')\n if (/[^0-9]/gi.test(currentInput)) {\n const delta = currentInput.split(/[^0-9]/gi).length - 1\n this.cardNumberInputTarget.value = this.cardNumberValue\n event.target.selectionEnd = cursorPosition - delta\n flashAlert(\"Sólo puedes ingresar números.\", \"error\")\n } else {\n let cardNumber = this.findCardNumberFormat(this.cardNumberInputTarget.value)\n \n let franchiseCard = this.findFranchiseLogo(cardNumber)\n if (this.franchiseValue != franchiseCard) {\n this.franchiseValue = franchiseCard\n }\n\n this.cardNumberInputTarget.value = cardNumber\n this.cardNumberValue = cardNumber\n \n const newCardNumber = this.cardNumberValue.replace(/\\s/g,'')\n\n let finalPosition = this.findFinalPosition(lastCardNumber, newCardNumber, cursorPosition, event.inputType)\n if (finalPosition != undefined) {\n event.target.selectionEnd = finalPosition\n }\n }\n\n }\n }\n\n deleteFranchiseLogo() {\n this.franchiseValue = 'no-franchise'\n }\n\n findFinalPosition(lastNumber, currentNumber, currentPosition, inputType) {\n let _lastNumber = this.findCardNumberFormat(lastNumber)\n let _currentNumber = this.findCardNumberFormat(currentNumber)\n\n if (_lastNumber == _currentNumber && (inputType == 'deleteContentBackward' || inputType == 'deleteContentForward')) {\n const delta = (inputType == 'deleteContentForward') ? +1 : 0\n return currentPosition + delta\n } else {\n const delta = (inputType == 'deleteContentBackward' || inputType == 'deleteContentForward') ? 0 : -1\n return currentPosition + (_currentNumber.slice(0, currentPosition).split(' ').length - 1) - (_lastNumber.slice(0, currentPosition + delta).split(' ').length - 1)\n }\n }\n\n findFranchiseLogo(number) {\n const visaRegEx = /^(?:4[0-9]{15}?)$/\n const mastercardRegEx = /^(?:5[1-5][0-9]{14})$/\n const amexpRegEx = /^(?:3[47][0-9]{13})$/\n const dinersRegEx = /^3(?:0[0-5][0-9]{11})$/\n\n const arrayRegEx = {\n visa: visaRegEx,\n master: mastercardRegEx,\n amex: amexpRegEx,\n diners: dinersRegEx\n }\n\n let franchiseCard = 'no-franchise'\n \n for (const brand in arrayRegEx) {\n const regExp = arrayRegEx[brand]\n if (regExp.test(number.replace(/\\s/g,''))) {\n franchiseCard = brand\n break\n }\n }\n\n return franchiseCard\n }\n\n findCardNumberFormat(number) {\n const visaMasterIndexes = [12, 8, 4]\n const amexDinersIndexes = [10, 4]\n\n let indexes = visaMasterIndexes\n let maxLength = 16\n let cardNumber = number.replace(/\\s/g,'').replace(/[^0-9]/gi,'')\n\n let franchise = this.findFranchiseLogo(number)\n\n if (franchise == 'visa' || franchise == 'master') { \n indexes = visaMasterIndexes\n }\n else if (franchise == 'amex') {\n indexes = amexDinersIndexes\n }\n else if (franchise == 'diners') {\n indexes = amexDinersIndexes\n }\n\n if (cardNumber.length > maxLength) {\n cardNumber = cardNumber.slice(0, maxLength)\n }\n \n indexes.forEach(function(element) {\n if (cardNumber.length >= element) {\n cardNumber = cardNumber.slice(0, element) + ' ' + cardNumber.slice(element)\n }\n })\n \n return cardNumber.trim()\n }\n\n changeHolderName(event) {\n if (this.holderNameInputTarget.value == '') {\n this.holderNameValue = 'Nombre y Apellido'\n } else {\n const capitalizedName = this.holderNameInputTarget.value.toUpperCase()\n this.holderNameValue = capitalizedName\n this.holderNameInputTarget.value = capitalizedName\n }\n }\n\n changeMonthYear(event) {\n const year = this.yearInputTarget.value\n const month = this.monthInputTarget.value\n if (year != '' && month != '') {\n if (this.validMonthYear(month, year)) {\n this.monthYearValue = `${this.monthInputTarget.value}/${this.yearInputTarget.value.slice(-2)}`\n } else {\n flashAlert(\"Fecha de vencimiento incorrecta.\", \"error\")\n event.target.value = ''\n this.monthYearValue = `${this.monthInputTarget.value != '' ? this.monthInputTarget.value : 'MM'}/${this.yearInputTarget.value != '' ? this.yearInputTarget.value.slice(-2) : 'YY'}`\n }\n } else {\n this.monthYearValue = `${this.monthInputTarget.value != '' ? this.monthInputTarget.value : 'MM'}/${this.yearInputTarget.value != '' ? this.yearInputTarget.value.slice(-2) : 'YY'}`\n }\n }\n\n validMonthYear(month, year) {\n const current_date = new Date()\n current_date.setHours(0,0,0,0)\n const current_year = current_date.getFullYear()\n const current_month = current_date.getMonth() + 1\n const expiration_date = new Date(year, month, 0)\n if ( month > 12 || year < current_year || year > current_year + 20 || expiration_date < current_date ) {\n return false\n } else {\n return true\n }\n }\n\n changeCvv(event) {\n if (this.franchiseValue != 'amex') {\n this.cvvValue = this.cvvInputTarget.value != '' ? this.cvvInputTarget.value : 'XXX'\n }\n else {\n this.cvvValue = this.cvvInputTarget.value != '' ? this.cvvInputTarget.value : 'XXXX'\n }\n }\n\n showCardBacksided(event) {\n if (this.franchiseValue != 'amex') {\n this.cardFlipperTarget.classList.add('backsided')\n }\n }\n\n hideCardBacksided(event) {\n this.cardFlipperTarget.classList.remove('backsided')\n }\n\n cardNumberValueChanged(value, previousValue) {\n this.cardNumberTarget.innerHTML = value\n }\n\n holderNameValueChanged(value, previousValue) {\n this.holderNameTarget.innerHTML = value \n }\n\n monthYearValueChanged(value, previousValue) {\n this.monthYearTarget.innerHTML = value\n }\n\n cvvValueChanged(value, previousValue) {\n this.cvvTarget.innerHTML = value\n this.cvvAmexTarget.innerHTML = value\n }\n\n franchiseValueChanged(value, previousValue) {\n if (value != previousValue) {\n this.franchiseLogoTarget.classList.remove(previousValue)\n this.franchiseLogoTarget.classList.add(value)\n this.cardContainerTargets.forEach((element) => {\n element.classList.remove(previousValue)\n element.classList.add(value)\n })\n if (value == 'amex') {\n this.cvvAmexTarget.classList.remove('is-hidden')\n if (this.cvvValue == 'XXX') {\n this.cvvValue = 'XXXX'\n }\n } else {\n this.cvvAmexTarget.classList.add('is-hidden')\n if (this.cvvValue == 'XXXX') {\n this.cvvValue = 'XXX'\n }\n }\n }\n }\n\n hideCreditCardForm({ detail: { content } }) {\n this.creditCardFormTarget.classList.add('is-hidden')\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller { \n copy(event){\n event.preventDefault();\n var phoneNumber = event.target.dataset.phoneNumber;\n var tempInput = document.createElement('input');\n tempInput.value = phoneNumber;\n document.body.appendChild(tempInput);\n tempInput.select();\n document.execCommand('copy');\n document.body.removeChild(tempInput);\n }\n}","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n\n static targets = [\"input\"];\n\n validateForm(event) {\n this.inputTargets.forEach((input) => {\n if (input.value == \"\") {\n event.preventDefault();\n inputAlert(input, \"Debes completar todos los campos\");\n }\n });\n }\n}","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\"\n\nexport default class extends Controller {\n static targets = [\"date\", \"duration\", \"exitHour\", \"entryHour\"]\n\n changeDate(event){\n let date = new Date(event.target.value).toLocaleDateString('en-GB', { timeZone: 'UTC' });\n this.dateTarget.textContent = date;\n }\n\n changeDuration(){\n let date = new Date();\n\n date.setHours(this.entryHourTarget.value.split(\":\")[0], this.entryHourTarget.value.split(\":\")[1])\n let entry_hour = date.getTime();\n\n date.setHours(this.exitHourTarget.value.split(\":\")[0], this.exitHourTarget.value.split(\":\")[1])\n let exit_hour = date.getTime();\n\n let duration = (exit_hour - entry_hour) / 3600000;\n\n if (duration > 8) {\n inputAlert(\n this.exitHourTarget,\n \"Los servicios deben ser de máximo 8 horas.\"\n );\n }\n if (entry_hour > exit_hour) {\n inputAlert(\n this.exitHourTarget,\n \"La hora de salida no puede ser menor a la hora de entrada.\"\n );\n }\n //Math.round(duration)\n if (!isNaN(duration)) {\n this.durationTarget.textContent = `${duration.toFixed(2)} Horas`;\n }\n\n }\n\n submitForm(event){\n this.validateDate(event);\n this.validateEntryHour(event);\n this.validateExitHour(event);\n this.validateValue(event);\n this.validateDuration(event);\n }\n\n validateDate(event){\n const date = document.getElementById(\"grace_service_form_service_date\");\n if(date.value == \"\"){\n event.preventDefault();\n inputAlert(date, \"Debes seleccionar una fecha para continuar.\");\n }\n }\n\n validateEntryHour(event){\n const entry_hour = document.getElementById(\"grace_service_form_entry_hour\");\n if(entry_hour.value == \"\"){\n event.preventDefault();\n inputAlert(entry_hour, \"Debes seleccionar una hora de entrada para continuar.\");\n }\n }\n\n validateExitHour(event){\n const exit_hour = document.getElementById(\"grace_service_form_exit_hour\");\n if(exit_hour.value == \"\"){\n event.preventDefault();\n inputAlert(exit_hour, \"Debes seleccionar una hora de salida para continuar.\");\n }\n }\n\n validateValue(event){\n const value = document.getElementById(\"grace_service_form_value\");\n if (value.value == \"\" || value.value == 0) {\n event.preventDefault();\n inputAlert(value, \"El valor del servicio no puede estar vacío.\");\n }\n }\n\n validateDuration(event){\n if (parseFloat(this.durationTarget.textContent) > 8) {\n event.preventDefault();\n inputAlert(\n this.exitHourTarget,\n \"Los servicios deben ser de máximo 8 horas.\"\n );\n }\n\n if(this.entryHourTarget.value > this.exitHourTarget.value){\n event.preventDefault();\n inputAlert(\n this.exitHourTarget,\n \"La hora de salida no puede ser menor a la hora de entrada.\"\n );\n }\n }\n}\n\n","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n static targets = ['documentType',\n 'nitDocTypeContainer',\n 'firstNameContainer',\n 'lastNameContainer',\n 'bothDocTypeInput',\n 'ccDocTypeInput',\n 'nitDocTypeInput']\n connect() {\n this.toggleForm();\n }\n\n toggleForm() {\n const update_form =() => {\n if (this.documentTypeTarget.value == \"NIT\") {\n this.firstNameContainerTarget.classList.add(\"hide\");\n this.lastNameContainerTarget.classList.add(\"hide\");\n\n this.ccDocTypeInputTargets.forEach((target) => {\n target.value = \"\";\n });\n\n this.nitDocTypeContainerTargets.forEach((target) => {\n target.classList.remove(\"hide\");\n });\n } else {\n\n this.nitDocTypeContainerTargets.forEach((target) => {\n target.classList.add(\"hide\");\n });\n this.nitDocTypeInputTargets.forEach((target) => {\n target.value = \"\";\n });\n\n this.firstNameContainerTarget.classList.remove(\"hide\");\n this.lastNameContainerTarget.classList.remove(\"hide\");\n }\n }\n update_form();\n this.documentTypeTarget.addEventListener(\"change\", update_form);\n }\n\n validateForm(event) {\n if (this.documentTypeTarget.value == 'NIT'){\n this.nitDocTypeInputTargets.forEach((target) => {\n if (target.value == \"\"){\n event.preventDefault();\n inputAlert(target, 'Debes completar todos los campos');\n }\n });\n }else{\n this.ccDocTypeInputTargets.forEach((target) => {\n if (target.value == \"\"){\n event.preventDefault();\n inputAlert(target, 'Debes completar todos los campos');\n }\n });\n }\n this.bothDocTypeInputTargets.forEach((target) => {\n if (target.value == \"\") {\n event.preventDefault();\n inputAlert(target, \"Debes completar todos los campos\");\n }\n });\n }\n}","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n static values = { paid: Boolean }\n\n registerPayment(event){\n const invoice = document.getElementById(\"grace_invoice_manual_payment_proof\");\n if(invoice.files.length == 0){\n event.preventDefault();\n inputAlert(invoice, \"Debes adjuntar un comprobante de pago para continuar.\");\n }\n }\n\n saveSiigoId(event){\n const siigo_id = document.getElementById(\"grace_invoice_siigo_id\");\n\n if(!this.paidValue){\n event.preventDefault();\n inputAlert(siigo_id, \"Debes registrar el pago de la factura para continuar.\");\n } else if (siigo_id.value == \"\"){\n event.preventDefault();\n inputAlert(siigo_id, \"Debes ingresar el número de la factura para continuar.\");\n }\n }\n\n saveSiigoComprobante(event){\n const siigo_comprobante = document.getElementById(\"grace_invoice_siigo_comprobante\");\n\n if (!this.paidValue) {\n event.preventDefault();\n inputAlert(siigo_comprobante, \"Debes registrar el pago de la factura para continuar.\");\n } else if (siigo_comprobante.value == \"\") {\n event.preventDefault();\n inputAlert( siigo_comprobante, \"Debes ingresar el número de comprobante para continuar.\");\n }\n }\n}","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n\n assignEmployee(event){\n const employee = document.getElementById(\"grace_service_grace_employee_id\");\n if(employee.value == \"\"){\n event.preventDefault();\n inputAlert(employee, \"Debes seleccionar un empleado para continuar.\");\n }\n const service_date = document.getElementById(\"grace_service_service_date\");\n if(service_date != null){\n this.checkDate(event, service_date);\n this.checkHour(event);\n }\n }\n\n checkDate(event, service_date){\n if(service_date.value == \"\"){\n event.preventDefault();\n inputAlert(service_date, \"Debes seleccionar una fecha para reprogramar el servicio.\");\n }\n }\n\n checkHour(event){\n let date = new Date();\n const entry_hour = document.getElementById(\"grace_service_entry_hour\");\n const exit_hour = document.getElementById(\"grace_service_exit_hour\");\n\n if (entry_hour.value == \"\") {\n event.preventDefault();\n inputAlert(\n entry_hour,\n \"Debes seleccionar una hora de entrada para reprogramar el servicio.\"\n );\n }\n\n if (exit_hour.value == \"\") {\n event.preventDefault();\n inputAlert(\n exit_hour,\n \"Debes seleccionar una hora de salida para reprogramar el servicio.\"\n );\n }\n\n if( entry_hour.value != \"\" && exit_hour.value != \"\"){\n date.setHours(entry_hour.value.split(\":\")[0], entry_hour.value.split(\":\")[1])\n let entry_hour_value = date.getTime();\n\n date.setHours(exit_hour.value.split(\":\")[0], exit_hour.value.split(\":\")[1])\n let exit_hour_value = date.getTime();\n\n let duration = (exit_hour_value - entry_hour_value) / 3600000;\n if (duration > 8) {\n event.preventDefault();\n inputAlert(\n exit_hour,\n \"Los servicios deben ser de máximo 8 horas.\"\n );\n }\n if (entry_hour_value > exit_hour_value) {\n event.preventDefault();\n inputAlert(\n exit_hour,\n \"La hora de salida no puede ser menor a la hora de entrada.\"\n );\n }\n }\n }\n}","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n static targets = [\"educationStatus\",\"endDateContainer\",\"endDateMonth\",\"endDateYear\", \"startDateMonth\", \"startDateYear\"];\n\n connect() {\n if (this.educationStatusTarget.value != \"completed\") {\n this.endDateContainerTarget.classList.add(\"hide\")\n }\n }\n\n educationStatusChange(event) {\n if (event.target.value == \"completed\") {\n this.endDateContainerTarget.classList.remove(\"hide\");\n } else {\n this.endDateContainerTarget.classList.add(\"hide\");\n }\n this.endDateMonthTarget.value = \"\";\n this.endDateYearTarget.value = \"\";\n }\n\n validateData(event) {\n // Input values\n let education_status = this.educationStatusTarget.value;\n let end_date_month = this.endDateMonthTarget.value;\n let end_date_year = this.endDateYearTarget.value;\n let start_date_month = this.startDateMonthTarget.value;\n let start_date_year = this.startDateYearTarget.value;\n\n if (start_date_month == \"\" || start_date_year == \"\") {\n event.preventDefault();\n inputAlert(this.startDateMonthTarget,\"Debes ingresar la fecha de inicio\");\n inputAlert(this.startDateYearTarget, \"Debes ingresar la fecha de inicio\");\n }\n\n if (education_status == \"completed\" && start_date_month > end_date_month && start_date_year == end_date_year) {\n event.preventDefault();\n inputAlert(this.endDateMonthTarget,\"El mes de finalización no puede ser menor al mes de inicio\");\n }\n\n if (education_status == \"completed\" && start_date_year > end_date_year) {\n event.preventDefault();\n inputAlert(this.endDateYearTarget,\"El año de finalización no puede ser menor al año de inicio\");\n }\n\n if (education_status == \"completed\" && (end_date_month == \"\" || end_date_year == \"\")) {\n event.preventDefault();\n inputAlert(this.endDateMonthTarget,\"Debes ingresar la fecha de finalización\");\n inputAlert(this.endDateYearTarget,\"Debes ingresar la fecha de finalización\");\n }\n }\n}","//= require action_cable\n\nexport default class ConsumerChannel {\n constructor() {\n const meta_element = document.querySelector('meta[name=action-cable-url]');\n if (meta_element) {\n this.consumer = ActionCable.createConsumer(meta_element.getAttribute('content'));\n } else {\n console.log(\"No meta element found\");\n }\n }\n}","import { Controller } from \"stimulus\";\nimport ConsumerChannel from \"../../../../helpers/erp/consumer_channel\";\n\nexport default class extends Controller {\n static values = { employeeId: Number };\n\n connect(){\n const channel_name = \"Grace::Erp::EmployeeInterestsMessageCountChannel\";\n this.app = new ConsumerChannel();\n\n this.app.consumer.subscriptions.create(\n { channel: `${channel_name}`, grace_employee_id: this.employeeIdValue },\n {\n connected: () => {\n // console.log(`connected to ${channel_name}`);\n },\n\n disconnected: () => {\n // console.log(`disconnected to ${channel_name}`);\n },\n\n rejected: () => {\n console.log(`rejected from ${channel_name}`);\n },\n\n received: (data) => {\n this.element.innerHTML = data.message_sent_count;\n },\n }\n );\n }\n\n disconnect() {\n this.app.consumer.unsubscribe();\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"selectEmployee\"];\n\n selectAllEmployees(event) {\n const checked = event.target.checked;\n this.selectEmployeeTargets.forEach((element) => {\n element.checked = checked;\n });\n }\n}\n","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n static targets = ['addressInput']\n\n validateForm(event){\n this.addressInputTargets.forEach((input) => {\n if(input.value == \"\"){\n event.preventDefault();\n inputAlert(input, \"Debes completar todos los campos\");\n }\n })\n }\n\n}","import { Controller } from \"stimulus\";\n\nimport SlimSelect from \"slim-select\";\nexport default class extends Controller {\n connect() {\n new SlimSelect({\n select: this.element,\n settings: {\n placeholder: true,\n placeholderText: \"Selecciona una candidata\",\n searchPlaceholder: \"Buscar una candidata\",\n searchText: \"La candidata no se encuentra\",\n },\n });\n }\n}\n","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n static targets = ['documentType',\n 'legalRepresentativeContainer',\n 'bothDocTypeInput',\n 'ccDocTypeInput',\n 'nitDocTypeInput']\n connect() {\n this.legalRepresentativeContainerTarget.classList.add(\"hide\");\n }\n\n changeForm(event) {\n if (event.target.value == 'NIT'){\n this.ccDocTypeInputTargets.forEach((target) => {\n target.style.display = \"none\";\n });\n this.nitDocTypeInputTargets.forEach((target) => {\n target.style.display = \"block\";\n });\n this.legalRepresentativeContainerTarget.classList.remove(\"hide\");\n }else{\n this.nitDocTypeInputTargets.forEach((target) => {\n target.style.display = \"none\";\n });\n this.legalRepresentativeContainerTarget.classList.add(\"hide\");\n\n this.ccDocTypeInputTargets.forEach((target) => {\n target.style.display = \"block\";\n });\n }\n }\n\n validateForm(event) {\n if (this.documentTypeTarget.value == 'NIT'){\n this.nitDocTypeInputTargets.forEach((target) => {\n if (target.value == \"\"){\n event.preventDefault();\n inputAlert(target, 'Debes completar todos los campos');\n }\n });\n }else{\n this.ccDocTypeInputTargets.forEach((target) => {\n if (target.value == \"\"){\n event.preventDefault();\n inputAlert(target, 'Debes completar todos los campos');\n }\n });\n }\n this.bothDocTypeInputTargets.forEach((target) => {\n if (target.value == \"\") {\n event.preventDefault();\n inputAlert(target, \"Debes completar todos los campos\");\n }\n });\n }\n}","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n static targets = [\"input\", \"requiredDegreeField\", \"requiredDegreeInput\", \"educationLevel\"]\n\n initialize() {\n this.educationLevels = [\"technical\", \"university\", \"specialization\", \"master\", \"doctorate\"];\n }\n\n connect() {\n this.toggleRequiredDegreeField(this.educationLevelTarget.value);\n }\n\n updateRequiredDegreeField(event) {\n const education_level = event.target.value;\n this.toggleRequiredDegreeField(education_level);\n }\n\n toggleRequiredDegreeField(education_level) {\n if (this.educationLevels.includes(education_level)) {\n this.requiredDegreeFieldTarget.classList.remove(\"hide\");\n this.requiredDegreeInputTarget.required = true;\n } else {\n this.requiredDegreeFieldTarget.classList.add(\"hide\");\n this.requiredDegreeInputTarget.required = false;\n }\n }\n\n validateForm(event) {\n this.inputTargets.forEach((input) => {\n if (input.value == \"\") {\n event.preventDefault();\n inputAlert(input, \"Debes completar todos los campos\");\n }\n })\n }\n}","import { Controller } from \"stimulus\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n initialize() {\n this.baseSalary = 0;\n this.maxWorkHours = 8;\n }\n\n static values = { minimumSalaries: Object}\n static targets = [\"entryHour\",\n \"exitHour\",\n \"labelSalary\",\n \"inputSalary\",\n \"noteSalary\",\n \"internEmployeeTrue\",\n \"internEmployeeFalse\",\n \"internEmployeeContainer\"\n ];\n\n connect(){\n this.calculateSalaryBasedOnTime();\n }\n\n validateMinimumSalary(event) {\n if (event.target.value < this.baseSalary) {\n this.inputSalaryTarget.classList.add(\"is-danger\");\n\n if (this.inputSalaryTarget.nextElementSibling.tagName.toLowerCase() != 'small') {\n inputAlert(this.inputSalaryTarget, `El salario no puede ser menor al mínimo establecido por la ley.`);\n }\n } else {\n this.inputSalaryTarget.classList.remove(\"is-danger\");\n }\n }\n\n calculateSalaryBasedOnTime(event) {\n const checked_checkboxes = [...document.querySelectorAll(\".work_days\")].filter((checkbox) => checkbox.checked);\n const time_fields = document.querySelector(\".time-fields\");\n if (this.entryHourTarget.value == \"\" || this.exitHourTarget.value == \"\" || checked_checkboxes.length == 0) {\n return;\n }\n if (this.entryHourTarget.value > this.exitHourTarget.value) {\n this.generateAlert(time_fields, \"La hora de salida debe ser mayor a la hora de entrada.\");\n return;\n }\n\n const entry_hour = this.calculateHour(this.entryHourTarget.value);\n const exit_hour = this.calculateHour(this.exitHourTarget.value);\n const difference = Math.floor((exit_hour - entry_hour) / 3600000);\n\n if (difference > this.maxWorkHours) {\n this.generateAlert(time_fields, `La jornada laboral debe ser de máximo ${this.maxWorkHours} horas diarias.`);\n return;\n }\n\n this.calculateSalary(checked_checkboxes.length, difference);\n }\n\n calculateHour(timeString){\n let date = new Date();\n const [hours, minutes] = timeString.split(\":\");\n date.setHours(hours, minutes);\n return date.getTime();\n }\n\n calculateHour(timeString){\n let date = new Date();\n const [hours, minutes] = timeString.split(\":\");\n date.setHours(hours, minutes);\n return date.getTime();\n }\n\n calculateSalary(days, hours){\n const is_full_time = hours === this.maxWorkHours;\n const is_monthly = days > 4;\n const salary_type = is_full_time ? \"complete_time\" : \"partial_time\";\n const salary_period = is_monthly ? \"monthly\" : \"daily\";\n const salary_key = `${salary_period}_salary_${salary_type}`;\n\n this.labelSalaryTarget.textContent = is_monthly ? \"¿Cuál será el salario aproximado mensual de tu empleada del hogar?\" : \"¿Cuál será el salario aproximado diario de tu empleada del hogar?\";\n this.baseSalary = this.minimumSalariesValue[salary_key];\n\n if (is_full_time && is_monthly) {\n this.removeClass(this.internEmployeeContainerTarget, \"hide\");\n if (this.internEmployeeTrueTarget.checked){\n this.baseSalary -= this.minimumSalariesValue[\"minimum_transportation_aid\"];\n }\n }else{\n this.internEmployeeTrueTarget.checked = false;\n this.internEmployeeFalseTarget.checked = true;\n this.addClass(this.internEmployeeContainerTarget, \"hide\");\n }\n const is_intern = this.internEmployeeTrueTarget.checked;\n this.noteSalaryTarget.innerHTML = `Nota: Recuerda que el pago mínimo ${is_monthly ? \"mensual\" : \"diario\"} en Colombia es de ${formattedPrice(this.baseSalary)}${is_intern ? \".\": \", incluyendo auxilio de transporte.\"}`;\n\n if ((this.inputSalaryTarget.value != \"\" || this.inputSalaryTarget.value == 0) && this.inputSalaryTarget.value < this.baseSalary) {\n inputAlert(this.inputSalaryTarget, `El salario no puede ser menor al mínimo establecido por la ley.`);\n }\n }\n\n validateForm(event) {\n if (this.inputSalaryTarget.value == \"\" || this.inputSalaryTarget.value < this.baseSalary) {\n event.preventDefault();\n inputAlert(this.inputSalaryTarget, `El salario no puede ser menor al mínimo establecido por la ley.`);\n }\n this.validateHours(event);\n }\n\n validateHours(event) {\n const time_fields = document.querySelector(\".time-fields\");\n let date = new Date();\n date.setHours(this.entryHourTarget.value.split(\":\")[0], this.entryHourTarget.value.split(\":\")[1])\n let entry_hour = date.getTime();\n date.setHours(this.exitHourTarget.value.split(\":\")[0], this.exitHourTarget.value.split(\":\")[1])\n let exit_hour = date.getTime();\n\n let duration = (exit_hour - entry_hour) / 3600000\n\n if (parseFloat(duration) > this.maxWorkHours) {\n event.preventDefault();\n this.generateAlert(time_fields, `La jornada laboral debe ser de máximo ${this.maxWorkHours} horas diarias.`);\n }\n\n if (this.entryHourTarget.value > this.exitHourTarget.value) {\n event.preventDefault();\n this.generateAlert(time_fields, \"La hora de salida debe ser mayor a la hora de entrada.\");\n }\n }\n\n generateAlert(container, message) {\n if(container.nextElementSibling.tagName.toLowerCase() != 'small') {\n let alert = \"\";\n alert += `${message}`;\n container.insertAdjacentHTML(\"afterend\", alert);\n setTimeout(() => {\n container.nextElementSibling.remove();\n }, 4000);\n }\n }\n\n addClass(element, className) {\n element.classList.add(className);\n }\n\n removeClass(element, className) {\n element.classList.remove(className);\n }\n}","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n static targets = [ \"email\",\n \"formNewClient\",\n \"clientCard\",\n \"importClient\",\n \"clientName\",\n \"clientPhone\",\n \"clientBusinessLine\",\n \"viewProfile\",\n \"viewProfileColumn\",\n \"importClientColumn\",\n \"clientAlert\",\n \"confirmCreateEmployer\",\n \"acceptTerms\",\n \"createAcceptTerms\"]\n\n search(){\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (emailRegex.test(this.emailTarget.value)) {\n this.searchClient(`/erp/grace/profile_emails/`, this.emailTarget.value);\n } else {\n inputAlert(this.emailTarget, \"Email invalido\");\n this.cancel(event);\n }\n }\n\n async searchClient(path, email){\n try {\n let request = await fetch(path, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ email: email })\n });\n let response = await request.json();\n if (response.new_client) {\n this.formNewClientTarget.classList.remove(\"hide\");\n this.clientCardTarget.classList.add(\"hide\");\n this.importClientTarget.setAttribute(\"href\", \"#\");\n this.viewProfileTarget.setAttribute(\"href\", \"#\");\n this.acceptTermsTarget.checked = false;\n this.createAcceptTermsTarget.checked = false;\n this.formNewClientTarget.querySelector( 'input[name=\"grace_erp_employer_form[email]\"]' ).value = email;\n }else{\n this.clientNameTarget.innerHTML = response.full_name;\n this.clientPhoneTarget.innerHTML = response.phone_number;\n if (response.business_line == \"Encuentra\" || response.grace_employer_id != false) {\n this.businessLineGrace(response.grace_employer_id);\n } else if (response.business_line == \"Aporta\") {\n this.otherBusinessLine(response.business_line, email, response.phone_number);\n } else {\n this.otherBusinessLine(response.business_line, email, response.phone_number);\n }\n this.formNewClientTarget.classList.add(\"hide\");\n this.clientCardTarget.classList.remove(\"hide\");\n }\n }catch (error) {\n console.log(error);\n }\n }\n\n cancel(event){\n event.preventDefault();\n this.emailTarget.value = \"\";\n this.formNewClientTarget.classList.add(\"hide\");\n this.clientCardTarget.classList.add(\"hide\");\n this.importClientTarget.setAttribute(\"href\", \"#\");\n this.viewProfileTarget.setAttribute(\"href\", \"#\");\n this.acceptTermsTarget.checked = false;\n }\n\n businessLineGrace(grace_employer_id){\n // Add alert to client card\n this.clientAlertTarget.classList.remove(\"success\");\n this.clientAlertTarget.classList.add(\"warning\");\n this.clientAlertTarget.innerHTML = \"El usuario ya existe en Encuentra\";\n\n this.clientBusinessLineTarget.innerHTML = \"Encuentra\";\n let new_url = `/erp/grace/employer/employers/${grace_employer_id}`;\n this.viewProfileTarget.setAttribute(\"href\", new_url);\n this.viewProfileColumnTarget.classList.remove(\"hide\");\n\n // Hide Import client button\n this.acceptTermsTarget.checked = false;\n this.importClientTarget.setAttribute(\"href\", \"#\");\n this.importClientColumnTarget.classList.add(\"hide\");\n }\n\n otherBusinessLine(business_line, email, phone_number){\n // Add alert to client card\n this.acceptTermsTarget.checked = false;\n this.confirmCreateEmployerTarget.classList.add(\"hide\");\n this.clientAlertTarget.classList.remove(\"warning\");\n this.clientAlertTarget.classList.add(\"success\");\n this.clientAlertTarget.innerHTML = \"El usuario ya existe\";\n\n\n this.clientBusinessLineTarget.innerHTML = business_line;\n let new_url = `/erp/grace/employers?user_info%5Bemail%5D=${encodeURIComponent(\n email\n )}&phone_number=${phone_number}&accept_terms=1`;\n this.importClientTarget.setAttribute(\"href\", new_url);\n this.importClientColumnTarget.classList.remove(\"hide\");\n\n // Hide View profile button\n this.viewProfileTarget.setAttribute(\"href\", \"#\");\n this.viewProfileColumnTarget.classList.add(\"hide\");\n }\n\n acceptTerms(event){\n event.preventDefault();\n this.confirmCreateEmployerTarget.classList.toggle(\"hide\");\n }\n\n}","import { Controller } from \"stimulus\";\nimport { inputAlert } from \"../../../helpers/erp/input_alert\";\n\nexport default class extends Controller {\n static targets = [\"skillsDescription\",\n \"experienceYears\",\n \"toggleContainerClass\",\n \"previousJobDescription\",\n \"previousJobPosition\",\n \"location\",\n \"previousJobStartDate\",\n \"previousJobEndDate\"];\n connect() {\n if ( this.experienceYearsTarget.value == \"no_experience\" || this.experienceYearsTarget.value == \"\" ) {\n this.toggleContainerClassTargets.forEach((target) => {\n target.classList.add(\"hide\");\n });\n }else{\n this.toggleContainerClassTargets.forEach((target) => {\n target.classList.remove(\"hide\");\n });\n }\n }\n\n workExperienceChange(event) {\n let input_targets = [\n this.previousJobDescriptionTarget,\n this.previousJobPositionTarget,\n this.locationTarget,\n this.previousJobStartDateTarget,\n this.previousJobEndDateTarget,\n ];\n\n if (event.target.value == \"no_experience\" || event.target.value == \"\") {\n this.toggleContainerClassTargets.forEach((target) => {\n target.classList.add(\"hide\");\n });\n input_targets.forEach((target) => {\n target.value = \"\";\n });\n }else{\n this.toggleContainerClassTargets.forEach((target) => {\n target.classList.remove(\"hide\");\n });\n input_targets.forEach((target) => {\n target.value = \"\";\n });\n }\n }\n\n validateData(event) {\n let input_targets = [\n this.previousJobDescriptionTarget,\n this.previousJobPositionTarget,\n this.locationTarget,\n this.previousJobStartDateTarget,\n this.previousJobEndDateTarget,\n ];\n let experience_years = this.experienceYearsTarget.value;\n let skills_description = this.skillsDescriptionTarget.value;\n\n if (experience_years == \"\" && skills_description == \"\") {\n event.preventDefault();\n inputAlert(this.experienceYearsTarget, \"Debes completar todos los campos\");\n inputAlert(this.skillsDescriptionTarget, \"Debes completar todos los campos\");\n }\n\n if (experience_years == \"no_experience\" && skills_description == \"\") {\n event.preventDefault();\n inputAlert(this.experienceYearsTarget, \"Debes completar todos los campos\");\n inputAlert(this.skillsDescriptionTarget, \"Debes completar todos los campos\");\n }\n\n input_targets.forEach((target) => {\n if (experience_years != \"no_experience\" && target.value == \"\") {\n event.preventDefault();\n inputAlert(target, \"Debes completar todos los campos\");\n }\n });\n\n if (experience_years != \"no_experience\" && this.previousJobStartDateTarget.value > this.previousJobEndDateTarget.value) {\n event.preventDefault();\n inputAlert(this.previousJobStartDateTarget, \"La fecha de inicio no puede ser mayor a la fecha de fin\");\n }\n }\n}\n","import { Controller } from \"stimulus\";\nimport SlimSelect from \"slim-select\";\n\nexport default class extends Controller {\n connect() {\n console.log('HOlaaa');\n new SlimSelect({\n select: this.element,\n settings: {\n placeholder: 'Selecciona una o varias colas',\n allowDeselect: true,\n deselectLabel: 'Eliminar seleccion',\n searchText: 'No se encontraron colas'\n }\n });\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n\n static targets = [\"noneCompany\",\n \"company\",\n \"task\",\n \"noneTask\"];\n\n connect(){\n this.toggleBoxButton();\n }\n\n uncheckTargets(event){\n switch(event.target.dataset[\"grace-AccordionTarget\"]){\n case \"noneCompany\":\n if (this.noneCompanyTarget.checked) {\n this.companyTargets.map((x) => (x.checked = false));\n }\n break;\n case \"company\":\n if (this.companyTargets.some((x) => x.checked)) {\n this.noneCompanyTarget.checked = false;\n }\n break;\n case \"noneTask\":\n if (this.noneTaskTarget.checked) {\n this.taskTargets.map((x) => (x.checked = false));\n }\n break;\n case \"task\":\n if (this.taskTargets.some((x) => x.checked)) {\n this.noneTaskTarget.checked = false;\n }\n break;\n }\n }\n\n toggleBoxButton(){\n const box_button = document.getElementsByClassName(\"box_button\");\n for (let i = 0; i < box_button.length; i++) {\n box_button[i].addEventListener(\"click\", function () {\n this.classList.toggle(\"active\");\n const accordion = this.nextElementSibling;\n accordion.classList.toggle(\"is-hidden\");\n this.classList.toggle(\"is-marginless\");\n });\n }\n }\n\n validateForm(event){\n const checkboxes_companies = document.querySelectorAll(\".grace_company\");\n const checkboxes_tasks = document.querySelectorAll(\".grace_general_task\");\n let task_message = \"Debes seleccionar al menos una tarea en la que tengas experiencia\";\n let company_message = \"Debes seleccionar al menos una compañía de limpieza\";\n let checked_companies = false;\n let checked_tasks = false;\n\n\n checkboxes_companies.forEach((checkbox) => {\n if (checkbox.checked) {\n checked_companies = true;\n }\n });\n checkboxes_tasks.forEach((checkbox) => {\n if (checkbox.checked) {\n checked_tasks = true;\n }\n });\n let messages = [];\n if (!checked_companies) messages.push(company_message);\n if (!checked_tasks) messages.push(task_message);\n\n if (!checked_companies || !checked_tasks) {\n event.preventDefault();\n this.flashAlert(messages);\n }\n }\n\n flashAlert(messages) {\n const container_flash = document.querySelector(\".flash-wrapper\");\n container_flash.classList.add(\"show-flash-wrapper\");\n let flash_html = \"\";\n messages.forEach((msg) => {\n flash_html += `
${msg}
`;\n });\n container_flash.innerHTML = flash_html;\n setTimeout(() => {\n container_flash.classList.remove(\"show-flash-wrapper\");\n setTimeout(() => {\n container_flash.classList.remove(\"show-flash-wrapper\");\n container_flash.innerHTML = \"\";\n }, 1000);\n }, 4000);\n }\n\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static values = {\n form : Array\n }\n\n connect() {\n this.toggleIcons();\n }\n\n toggleIcons(){\n const iconsId = [\n \"basic-info\",\n \"education-record\",\n \"work-record\",\n \"work-experience\",\n \"work-availability\",\n \"reference\"\n ];\n iconsId.forEach((iconId, index) => {\n let icon = document.getElementById(iconId);\n if (this.formValue[index]) {\n icon.classList.add(\"data-completed-active\");\n } else {\n icon.classList.remove(\"data-completed-active\");\n }\n });\n }\n\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n static targets = [\"educationStatus\",\"endDateContainer\",\"endDateMonth\",\"endDateYear\", \"startDateMonth\", \"startDateYear\", \"location\"];\n\n connect() {\n if (this.educationStatusTarget.value != \"completed\") {\n this.endDateContainerTarget.classList.add(\"is-hidden\");\n }\n }\n\n educationStatusChange(event) {\n if (event.target.value == \"completed\") {\n this.endDateContainerTarget.classList.remove(\"is-hidden\");\n } else {\n this.endDateContainerTarget.classList.add(\"is-hidden\");\n }\n this.endDateMonthTarget.value = \"\";\n this.endDateYearTarget.value = \"\";\n }\n\n validateData(event) {\n // Input values\n let education_status = this.educationStatusTarget.value;\n let end_date_month = this.endDateMonthTarget.value;\n let end_date_year = this.endDateYearTarget.value;\n let start_date_month = this.startDateMonthTarget.value;\n let start_date_year = this.startDateYearTarget.value;\n\n if (start_date_month == \"\" || start_date_year == \"\") {\n event.preventDefault();\n flashAlert(\"Debes ingresar la fecha de inicio\");\n }\n\n if (education_status == \"completed\" && start_date_month > end_date_month && start_date_year == end_date_year) {\n event.preventDefault();\n flashAlert(\"El mes de finalización no puede ser menor al mes de inicio\");\n }\n\n if (education_status == \"completed\" && start_date_year > end_date_year) {\n event.preventDefault();\n flashAlert(\"El año de finalización no puede ser menor al año de inicio\");\n }\n\n if (education_status == \"completed\" && (end_date_month == \"\" || end_date_year == \"\")) {\n event.preventDefault();\n flashAlert(\"Debes ingresar la fecha de finalización\");\n }\n const validate_location = /[a-zA-Z]/;\n if (!validate_location.test(this.locationTarget.value)) {\n event.preventDefault();\n flashAlert(\"Debes ingresar la ciudad donde estudiaste\");\n this.locationTarget.classList.add(\"is-danger\");\n }\n\n const validate_location_length = this.locationTarget.value.split(\",\").length;\n if (validate_location_length < 2) {\n event.preventDefault();\n flashAlert(\"Debes seleccionar una ciudad de educación válida\");\n this.locationTarget.classList.add(\"is-danger\");\n }\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n static targets = [\"input\", \"location\"];\n\n connect() {\n const document_number = document.querySelector(\"#grace_employee_forms_basic_data_form_document_number\");\n\n if (document_number) {\n document_number.addEventListener(\"blur\", () => {\n if (document_number.value.length >= 6) {\n this.requestValidation(\n `/grace/validations/profile_document_numbers/${document_number.value}`,\n document_number,\n \"Este documento ya se ha registrado antes. ¡Ingresa a tu cuenta!\"\n );\n }\n });\n }\n }\n\n async requestValidation(path, input, message) {\n const button = document.querySelector(\"#button-save-form\");\n //Create new element\n const help_message = document.createElement(\"p\");\n help_message.classList.add(\"help\");\n help_message.classList.add(\"is-danger\");\n help_message.innerHTML = message;\n try {\n let request = await fetch(path, { method: \"GET\" });\n let response = await request.json();\n if (!response) {\n flashAlert(message);\n this.updateInputStatus(input, true, help_message);\n this.disableButton(button);\n } else {\n this.enableButton(button);\n this.updateInputStatus(input, false, help_message);\n }\n } catch (error) {\n flashAlert(\n \"Ocurrió un error al validar el documento. Por favor, inténtalo más tarde.\"\n );\n }\n }\n\n updateInputStatus(input, isValid, helpMessage) {\n if (isValid) {\n input.classList.add(\"is-danger\");\n if (!input.nextElementSibling) {\n input.after(helpMessage);\n }\n } else {\n input.classList.remove(\"is-danger\");\n if (input.nextElementSibling){\n input.nextElementSibling.remove();\n }\n }\n }\n\n enableButton(button) {\n button.disabled = false;\n }\n\n disableButton(button) {\n button.disabled = true;\n }\n\n validateForm(event) {\n this.inputTargets.forEach((input) => {\n if (input.value == \"\") {\n event.preventDefault();\n flashAlert(\"Por favor, completa todos los campos.\");\n input.classList.add(\"is-danger\");\n }\n });\n\n const validate_location = /[a-zA-Z]/;\n if (!validate_location.test(this.locationTarget.value)) {\n event.preventDefault();\n flashAlert(\"Por favor, selecciona una ubicación válida.\");\n this.locationTarget.classList.add(\"is-danger\");\n }\n\n const validate_location_length = this.locationTarget.value.split(\",\").length;\n if (validate_location_length < 2) {\n event.preventDefault();\n flashAlert(\"Debes seleccionar una ciudad válida\");\n this.locationTarget.classList.add(\"is-danger\");\n }\n }\n\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n\n validateForm(event){\n const checkboxes_days = document.querySelectorAll(\".grace_day\");\n const checkboxes_preferences = document.querySelectorAll(\".grace_preference\");\n let days_message = \"Debes seleccionar al menos un día de la semana\";\n let preferences_message = \"Debes seleccionar al menos un tipo de oportunidad laboral que aceptarías\";\n let checked_days = false;\n let checked_preferences = false;\n\n\n checkboxes_days.forEach((checkbox) => {\n if (checkbox.checked) {\n checked_days = true;\n }\n });\n checkboxes_preferences.forEach((checkbox) => {\n if (checkbox.checked) {\n checked_preferences = true;\n }\n });\n let messages = [];\n if (!checked_days) messages.push(days_message);\n if (!checked_preferences) messages.push(preferences_message);\n\n if (!checked_days || !checked_preferences) {\n event.preventDefault();\n this.flashAlert(messages);\n }\n }\n\n flashAlert(messages) {\n const container_flash = document.querySelector(\".flash-wrapper\");\n container_flash.classList.add(\"show-flash-wrapper\");\n let flash_html = \"\";\n messages.forEach((msg) => {\n flash_html += `
${msg}
`;\n });\n container_flash.innerHTML = flash_html;\n setTimeout(() => {\n container_flash.classList.remove(\"show-flash-wrapper\");\n setTimeout(() => {\n container_flash.classList.remove(\"show-flash-wrapper\");\n container_flash.innerHTML = \"\";\n }, 1000);\n }, 4000);\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n static targets = [\"skillsDescription\",\n \"experienceYears\",\n \"toggleContainerClass\",\n \"previousJobDescription\",\n \"previousJobPosition\",\n \"location\",\n \"previousJobStartDate\",\n \"previousJobEndDate\"];\n connect() {\n if ( this.experienceYearsTarget.value == \"no_experience\" || this.experienceYearsTarget.value == \"\" ) {\n this.toggleContainerClassTargets.forEach((target) => {\n target.classList.add(\"is-hidden\");\n });\n }else{\n this.toggleContainerClassTargets.forEach((target) => {\n target.classList.remove(\"is-hidden\");\n });\n }\n }\n\n workExperienceChange(event) {\n let input_targets = [ this.previousJobDescriptionTarget,\n this.previousJobPositionTarget,\n this.locationTarget,\n this.previousJobStartDateTarget,\n this.previousJobEndDateTarget];\n\n if (event.target.value == \"no_experience\" || event.target.value == \"\") {\n this.toggleContainerClassTargets.forEach((target) => {\n target.classList.add(\"is-hidden\");\n });\n input_targets.forEach((target) => {\n target.value = \"\";\n });\n }else{\n this.toggleContainerClassTargets.forEach((target) => {\n target.classList.remove(\"is-hidden\");\n });\n input_targets.forEach((target) => {\n target.value = \"\";\n });\n }\n }\n\n validateData(event) {\n let input_targets = [\n this.previousJobDescriptionTarget,\n this.previousJobPositionTarget,\n this.locationTarget,\n this.previousJobStartDateTarget,\n this.previousJobEndDateTarget,\n ];\n let experience_years = this.experienceYearsTarget.value;\n let skills_description = this.skillsDescriptionTarget.value;\n\n if (experience_years == \"\" && skills_description == \"\") {\n event.preventDefault();\n flashAlert(\"Debes completar todos los campos\");\n }\n\n if (experience_years == \"no_experience\" && skills_description == \"\") {\n event.preventDefault();\n flashAlert(\"Debes completar todos los campos\");\n }\n\n input_targets.forEach((target) => {\n if (experience_years != \"no_experience\" && target.value == \"\") {\n event.preventDefault();\n flashAlert(\"Debes completar todos los campos\");\n }\n });\n\n if (experience_years != \"no_experience\" && this.previousJobStartDateTarget.value > this.previousJobEndDateTarget.value) {\n event.preventDefault();\n flashAlert(\"La fecha de inicio no puede ser mayor a la fecha de fin\");\n }\n\n const validate_location = /[a-zA-Z]/;\n if (\n !validate_location.test(this.locationTarget.value) &&\n this.experienceYearsTarget.value != \"no_experience\"\n ) {\n event.preventDefault();\n flashAlert(\"Debes ingresar la ciudad donde trabajaste\");\n this.locationTarget.classList.add(\"is-danger\");\n }\n\n const validate_location_length = this.locationTarget.value.split(\",\").length;\n if (validate_location_length < 2 && this.experienceYearsTarget.value != \"no_experience\") {\n event.preventDefault();\n flashAlert(\"Debes seleccionar una ciudad válida\");\n this.locationTarget.classList.add(\"is-danger\");\n }\n }\n}\n","import { Controller } from \"stimulus\";\n\nimport SlimSelect from \"slim-select\";\nexport default class extends Controller {\n connect(){\n new SlimSelect({\n select: this.element,\n settings: {\n closable: \"close\",\n placeholderText: \"Puedes seleccionar varias ciudades\",\n searchPlaceholder: \"Buscar ciudades\",\n searchText: \"Ciudad no encontrada\",\n hideSelected: true\n }\n });\n }\n\n}","import { Controller } from \"stimulus\";\n\nimport SlimSelect from \"slim-select\";\nexport default class extends Controller {\n connect() {\n new SlimSelect({\n select: this.element,\n settings: {\n placeholder: true,\n placeholderText: \"Selecciona tu ciudad de residencia\",\n searchPlaceholder: \"Buscar ciudad\",\n searchText: \"Ciudad no encontrada\",\n },\n });\n }\n}\n","import { Application } from \"stimulus\";\nimport { definitionsFromContext } from \"stimulus/webpack-helpers\";\n\nconst application = Application.start();\nconst context = require.context(\".\", true, /\\.js$/);\napplication.load(definitionsFromContext(context));\n","/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"autoCompleteField\"];\n connect() {\n if (typeof (google) != \"undefined\") {\n this.initializeAutoComplete();\n }\n }\n\n initializeAutoComplete(){\n // This._initializeAutoComplete is a private variable that we use to make sure that we don't initialize the autocomplete twice\n if (this._initializeAutoComplete == undefined){\n this._initializeAutoComplete = new google.maps.places.Autocomplete(this.autoCompleteFieldTarget, { types: ['locality'], fields: ['name']});\n }\n return this._initializeAutoComplete;\n }\n\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n\n static targets = [\"progressBar\", \"progressValue\"]\n\n connect() {\n this.updateProgressBar()\n }\n\n updateProgressBar() {\n if (window.innerWidth <= 768) {\n this.progressValueTarget.style.left = `${this.progressBarTarget.value - 3}%`;\n }else {\n this.progressValueTarget.style.left = `${this.progressBarTarget.value - 1}%`;\n }\n this.progressValueTarget.textContent = `${this.progressBarTarget.value}%`;\n }\n}\n\n","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n validatePath: String\n }\n\n static targets = [\"inputRequired\",\n \"emailField\",\n \"modalClientRegistered\",\n \"phoneNumberField\",\n \"createClientForm\",\n \"submitButton\",\n \"checkboxRequired\"];\n\n submitForm(event){\n event.preventDefault();\n if ($(event.target).valid()) {\n this.submitButtonTarget.setAttribute(\"disabled\", \"disabled\");\n this.validateClientExists(event);\n } else {\n this.submitButtonTarget.removeAttribute(\"data-disable-with\");\n }\n }\n\n async validateClientExists(event) {\n const validate_client_path = this.validatePathValue;\n try{\n let request = await fetch(\n `${validate_client_path}?phone_number=${this.phoneNumberFieldTarget.value}&email=${this.emailFieldTarget.value}`,\n { method: \"GET\" }\n );\n let response = await request.json();\n if (response === null) {\n mixpanel.track(event.target.dataset.mixpanelEventName);\n this.createClientFormTarget.submit();\n } else {\n this.modalClientRegisteredTarget.classList.add(\"is-active\");\n }\n }catch(error){\n flashAlert(\"Ups! Algo salió mal. Por favor, inténtalo más tarde.\");\n }\n }\n\n closeModal(event){\n event.preventDefault();\n this.submitButtonTarget.removeAttribute(\"data-disable-with\");\n this.submitButtonTarget.removeAttribute(\"disabled\");\n this.modalClientRegisteredTarget.classList.remove(\"is-active\");\n }\n}","import { Controller } from \"stimulus\";\nimport { HelperText, removeHelperText } from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\nexport default class extends Controller {\n static values = {\n singleServiceUrl: String,\n servicesUrl: String\n }\n\n static targets = [\"cityFriendlyName\",\n \"cleaningFrequency\",\n \"boxCleaning\"\n ]\n\n sendWorkdayPage(event) {\n event.preventDefault();\n const city = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const single_service_url = this.singleServiceUrlValue;\n const services_url = this.servicesUrlValue;\n\n if (!cleaning_frequency || cleaning_frequency === \"nil\") {\n const message = \"Por favor selecciona con qué frecuencia deseas el servicio de limpieza\";\n const target = this.boxCleaningTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n } else if (cleaning_frequency === \"occasional\") {\n const url = `${single_service_url}?city_friendly_name=${city}&cleaning_frequency=${cleaning_frequency}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n } else if (cleaning_frequency === \"once_a_week\" || cleaning_frequency === \"biweekly\") {\n const url = `${services_url}?city_friendly_name=${city}&cleaning_frequency=${cleaning_frequency}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n }\n }\n\n selectFrequency(event) {\n removeHelperText(this.boxCleaningTargets[this.boxCleaningTargets.length - 1]);\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n this.boxCleaningTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningFrequencyTarget.value = radioInput.value;\n }\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static targets = [\"city\",\n \"selectCityForm\"];\n\n sendWorkFrequency(event) {\n if ( this.cityTarget.value === \"\" ) {\n event.preventDefault();\n flashAlert(\"Por favor, selecciona una ciudad.\");\n } else {\n mixpanel.track(event.target.dataset.mixpanelEventName);\n this.selectCityFormTarget.submit();\n }\n }\n}\n","import { Controller } from \"stimulus\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\nimport { HelperText } from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n initialize() {\n this.total_price = 0;\n this.total_days = [];\n this.cleaning_discount = false;\n this.new_days = [];\n }\n\n static targets = [\n \"cityFriendlyName\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"totalPrice\",\n \"modalBetterPlan\",\n \"modalBetterPlanreferencePrice\",\n \"modalBetterPlanTotalPrice\",\n \"modalBetterPlanDescription\",\n \"modalShowDiscount\",\n \"buttonNextPage\",\n \"referencePrice\"\n ];\n\n static values = {\n prices: Object,\n combinationAvailable: Object,\n checkRecurrencyAvailability: Number,\n summaryServiceUrl: String\n };\n\n connect() {\n const star_header = document.querySelector(\".home-star-header\");\n if (window.innerWidth <= 768) {\n star_header.classList.add(\"is-hidden\");\n }\n }\n\n sendSummaryPage(event) {\n event.preventDefault();\n if (this.total_days.length == 0) {\n const message = \"Por favor selecciona al menos un día de servicio.\";\n const target = document.querySelectorAll(\".box_w_check_box\");\n HelperText(target[target.length - 1], message, \"alert\");\n } else {\n this.showModalBetterPlan();\n }\n }\n\n selectDays(event) {\n const checkboxInput = event.currentTarget.querySelector('input[type=\"checkbox\"]');\n const dayValue = event.currentTarget.getAttribute(\"data-day\");\n const checkboxDay = document.querySelector(`#checkbox-day-${dayValue}`);\n\n if (!checkboxInput.checked) {\n checkboxInput.checked = true;\n\n checkboxDay.classList.add(\"clicked\");\n event.currentTarget.classList.add(\"box_selected\");\n\n this.total_days.push(dayValue);\n // this.checkAvailability();\n this.getAvgPriceCombination();\n } else {\n checkboxInput.checked = false;\n\n checkboxDay.classList.remove(\"clicked\");\n event.currentTarget.classList.remove(\"box_selected\");\n\n this.total_days = this.total_days.filter((day) => day !== dayValue);\n // this.checkAvailability();\n this.getAvgPriceCombination();\n\n event.currentTarget.classList.remove(\"box-not-pl-available\");\n }\n }\n\n checkAvailability(){\n const button = this.buttonNextPageTarget;\n const help_text_selector = \".help.is-danger\";\n let help_text = document.querySelector(help_text_selector);\n\n if (this.total_days.length === 0) {\n this.enableButton(button);\n this.removeHelpText(help_text);\n return;\n }\n\n const formatted_days = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n const filtered_combinations = this.combinationAvailableValue[`[${formatted_days}]`];\n\n const should_disable_button = filtered_combinations <= this.checkRecurrencyAvailabilityValue && this.total_days.length <= 2;\n\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n box.classList.toggle(\"box-not-pl-available\", should_disable_button);\n });\n\n if (should_disable_button && this.total_days.length >= 1) {\n this.disableButton(button);\n this.addHelpText(help_text);\n } else {\n this.enableButton(button);\n this.removeHelpText(help_text);\n }\n }\n\n enableButton(button) {\n button.style.pointerEvents = \"auto\";\n button.removeAttribute(\"disabled\");\n }\n\n disableButton(button) {\n button.style.pointerEvents = \"none\";\n button.setAttribute(\"disabled\", \"disabled\");\n }\n\n removeHelpText(helpText) {\n if (helpText) {\n helpText.remove();\n }\n }\n\n addHelpText(helpText) {\n if (!helpText) {\n const lastBox = document.getElementById(\"box-day-6\");\n const message = \"No tenemos profesionales disponibles para los días seleccionados.\";\n HelperText(lastBox, message, \"alert\");\n }\n }\n\n getAvgPriceCombination() {\n if ( this.total_days.length > 0 ){\n const formatted_days = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n\n const filtered_prices = this.pricesValue[`[${formatted_days}]`];\n\n this.toggleTotalPriceCard(filtered_prices);\n }else{\n this.totalPriceTarget.innerHTML = \"$0\";\n this.referencePriceTarget.innerHTML = \"\";\n }\n }\n\n // Better Plan Modal\n closeModalBetterPlan(event) {\n event.preventDefault();\n this.new_days = [];\n this.modalBetterPlanTarget.classList.remove(\"is-active\");\n }\n\n showModalBetterPlan() {\n const formatted_total_days = this.total_days.map((n) => parseInt(n)).sort();\n const total_days_string = formatted_total_days.join(\", \");\n\n const { pricesValue } = this;\n\n if (this.total_days.length === 1 ) {\n this.showModalShowDiscount( pricesValue, total_days_string);\n return;\n }\n const week_days = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado']\n\n let smallest_promotional_price = null;\n let smallest_key = null;\n\n Object.keys(pricesValue).forEach(key => {\n const array_key = JSON.parse(key);\n if(array_key.length === formatted_total_days.length){\n const promotional_price = pricesValue[key].promotional_price;\n\n if(promotional_price !== null && (smallest_promotional_price === null || promotional_price < smallest_promotional_price)){\n smallest_promotional_price = promotional_price;\n smallest_key = key;\n }\n }\n });\n\n if(smallest_key === null && smallest_promotional_price === null){\n this.showModalShowDiscount(pricesValue, total_days_string);\n return;\n }\n\n const { price, reference_price, promotional_price } = pricesValue[smallest_key];\n const same_days = JSON.stringify(formatted_total_days) === JSON.stringify(JSON.parse(smallest_key));\n\n if (\n !same_days &&\n smallest_promotional_price !== null &&\n promotional_price !== null &&\n (promotional_price < pricesValue[`[${total_days_string}]`].promotional_price ||\n pricesValue[`[${total_days_string}]`].promotional_price === null)\n ) {\n const name_days = JSON.parse(smallest_key).map((day) => week_days[day]);\n const formatted_days = name_days.map( day=> `${day}`)\n const description = `Si seleccionas los días ${formatted_days.slice(0, -1).join(\", \")} y ${formatted_days.slice(-1)} tu plan mensual tendrá un descuento.`;\n\n this.modalBetterPlanTarget.classList.add(\"is-active\");\n this.new_days = JSON.parse(smallest_key);\n if (pricesValue[`[${total_days_string}]`].promotional_price === null){\n this.modalBetterPlanreferencePriceTarget.innerHTML = formattedPrice(pricesValue[`[${total_days_string}]`].price);\n }else{\n this.modalBetterPlanreferencePriceTarget.innerHTML = formattedPrice(pricesValue[`[${total_days_string}]`].promotional_price);\n }\n this.modalBetterPlanTotalPriceTarget.innerHTML = formattedPrice(promotional_price);\n this.modalBetterPlanDescriptionTarget.innerHTML = description;\n }else{\n this.showModalShowDiscount(pricesValue, total_days_string);\n }\n }\n\n notInterested(event){\n event.preventDefault();\n this.new_days = [];\n const { pricesValue } = this;\n const total_days_string = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n if (pricesValue[`[${total_days_string}]`].promotional_price) {\n this.closeModalBetterPlan(event);\n this.modalShowDiscountTarget.classList.add(\"is-active\");\n }else{\n this.redirectToSummaryPage();\n }\n }\n\n acceptBetterPlan(event){\n event.preventDefault();\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n const checkbox_day = document.getElementById(`checkbox-day-${day}`);\n const checkbox_input = box.querySelector('input[type=\"checkbox\"]');\n\n checkbox_input.checked = false;\n checkbox_day.classList.remove(\"clicked\");\n box.classList.remove(\"box_selected\");\n });\n\n this.total_days = this.new_days.map(String);\n this.modalBetterPlanTarget.classList.remove(\"is-active\");\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n const checkbox_day = document.getElementById(`checkbox-day-${day}`);\n const checkbox_input = box.querySelector('input[type=\"checkbox\"]');\n\n checkbox_input.checked = true;\n checkbox_day.classList.add(\"clicked\");\n box.classList.add(\"box_selected\");\n });\n this.getAvgPriceCombination();\n // this.checkAvailability();\n }\n\n // Discount Modal\n closeModalShowDiscount(event) {\n event.preventDefault();\n this.modalShowDiscountTarget.classList.remove(\"is-active\");\n }\n\n showModalShowDiscount(pricesValue, total_days_string) {\n if (pricesValue[`[${total_days_string}]`].promotional_price) {\n this.modalShowDiscountTarget.classList.add(\"is-active\");\n }else{\n this.redirectToSummaryPage();\n }\n }\n\n toggleTotalPriceCard(filtered_prices){\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n\n const { price, reference_price, promotional_price } = filtered_prices;\n const has_promotional_price = promotional_price !== null;\n\n if (has_promotional_price){\n const total_promotional_price = parseInt(promotional_price);\n const formatted_promotional_price = formattedPrice(total_promotional_price);\n\n this.total_price = total_promotional_price;\n this.cleaning_discount = true;\n\n const total_reference_price = parseInt(reference_price);\n\n this.referencePriceTarget.innerHTML = formattedPrice(total_reference_price);\n this.totalPriceTarget.innerHTML = formatted_promotional_price;\n\n }else if(price != reference_price){\n const total_price = parseInt(price);\n this.total_price = total_price;\n this.cleaning_discount = false;\n\n const total_reference_price = parseInt(reference_price)\n\n this.referencePriceTarget.innerHTML = formattedPrice(total_reference_price);\n this.totalPriceTarget.innerHTML = formattedPrice(total_price);\n\n }else {\n\n const total_price = parseInt(price)\n this.total_price = total_price;\n this.cleaning_discount = false;\n\n this.referencePriceTarget.innerHTML = \"\";\n this.totalPriceTarget.innerHTML = formattedPrice(total_price);\n }\n }\n\n redirectToSummaryPage() {\n\n const city_friendly_name = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const summary_service_url = this.summaryServiceUrlValue;\n\n const url = `${summary_service_url}?city_friendly_name=${city_friendly_name}&cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}&cleaning_total_days=${this.total_days}&cleaning_total_price=${this.total_price}&cleaning_has_discount=${this.cleaning_discount}`;\n mixpanel.track(\"track-continue-button-schedule\");\n window.location.href = url;\n }\n\n}\n","import { Controller } from \"stimulus\";\nimport { HelperText } from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\nexport default class extends Controller {\n static values = {\n summaryUrl: String\n }\n static targets = [\"cityFriendlyName\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"cleaningServiceDate\"]\n\n sendSummaryPage(event){\n event.preventDefault();\n const city_friendly_name = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const cleaning_service_date = this.cleaningServiceDateTarget.value;\n const summary_url = this.summaryUrlValue;\n\n if(!cleaning_service_date){\n const message = \"Por favor selecciona la fecha en la que necesitas la profesional.\";\n const target = document.querySelector(\"#calendar-container\");\n HelperText(target, message, \"alert\");\n }else{\n const url = `${summary_url}?city_friendly_name=${city_friendly_name}&cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}&cleaning_service_date=${cleaning_service_date}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n }\n }\n\n}","import { Controller } from \"stimulus\";\nimport {\n HelperText,\n removeHelperText,\n HelperTextForServiceDuration,\n} from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n scheduleServiceUrl: String,\n duration: Object\n }\n static targets = [ \"boxSingleService\", \"cityFriendlyName\", \"cleaningFrequency\", \"cleaningIntensity\"]\n\n selectIntensity(event) {\n const target = this.boxSingleServiceTargets[this.boxSingleServiceTargets.length - 1];\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n removeHelperText(target);\n this.boxSingleServiceTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningIntensityTarget.value = radioInput.value;\n }\n\n const { hours, minutes } = this.durationValue[this.cleaningIntensityTarget.value];\n removeHelperText(target, \"helper-text\");\n HelperTextForServiceDuration(target, hours, minutes);\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const city_friendly_name = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const schedule_service_url = this.scheduleServiceUrlValue;\n\n if(!cleaning_intensity || cleaning_intensity === \"nil\"){\n const message = \"Por favor selecciona la jornada en la que necesitas los servicios de limpieza.\";\n const target = this.boxSingleServiceTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n } else {\n const url = `${schedule_service_url}?city_friendly_name=${city_friendly_name}&cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n }\n }\n\n}","import { Controller } from \"stimulus\";\nimport { calendarLibrary } from \"../../../../assets/javascripts/client/libraries/calendar_library\";\nimport { HelperText } from \"../../../helpers/helper_text\";\n\nexport default class extends Controller {\n static values = {\n cityId: Number,\n shift: String,\n url: String\n }\n\n connect() {\n this.getAvailableDays();\n }\n\n async getAvailableDays() {\n const url = this.urlValue;\n const city_id = this.cityIdValue;\n const shift = this.shiftValue;\n\n try {\n let request = await fetch(`${url}?city_id=${city_id}&shift=${shift}`, { method: \"GET\" });\n\n let response = await request.text();\n this.element.innerHTML = \"\";\n this.element.innerHTML = response;\n this.highlightDayAndMonth();\n window.calendarLibrary.run(\"cleaning_service_date\");\n\n } catch (error) {\n HelperText(\n this.element,\n \"Ha ocurrido un error al cargar los días disponibles. Intenta de nuevo más tarde.\",\n \"alert\"\n );\n }\n }\n\n highlightDayAndMonth() {\n const day_selected = document.getElementById(\"cleaning_service_date\");\n const days = document.querySelectorAll(\".day\");\n const start_month = document.getElementById(\"start_month\").dataset.month;\n\n if (day_selected.value) {\n days.forEach((day) => {\n if (day.dataset.date === day_selected.value) {\n day.classList.add(\"is-selected\");\n }\n });\n }\n\n if (start_month) {\n days.forEach((day) => {\n const month =\n new Date(`${day.dataset.date}T00:00:00Z`).getUTCMonth() + 1;\n if (month != start_month) {\n day.classList.add(\"is-invisible\");\n }\n });\n }\n }\n}","import { Controller } from \"stimulus\";\nimport {\n HelperText,\n removeHelperText,\n HelperTextForServiceDuration,\n} from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n scheduleServiceUrl: String,\n duration: Object\n }\n\n static targets = [ \"boxSingleService\", \"cityFriendlyName\", \"cleaningFrequency\", \"cleaningIntensity\"]\n\n selectIntensity(event) {\n const target = this.boxSingleServiceTargets[this.boxSingleServiceTargets.length - 1];\n removeHelperText(target);\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n this.boxSingleServiceTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningIntensityTarget.value = radioInput.value;\n }\n const { hours, minutes } = this.durationValue[this.cleaningIntensityTarget.value];\n removeHelperText(target, \"helper-text\");\n HelperTextForServiceDuration(target, hours, minutes);\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const city_friendly_name = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const schedule_service_url = this.scheduleServiceUrlValue;\n\n if(!cleaning_intensity || cleaning_intensity === \"nil\"){\n const message = \"Por favor selecciona la jornada en la que necesitas los servicios de limpieza.\";\n const target = this.boxSingleServiceTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n } else {\n const url = `${schedule_service_url}?city_friendly_name=${city_friendly_name}&cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n }\n }\n\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n\n static values = { businessDays: Array }\n\n static targets = [\"modalEditDate\",\n \"startDate\",\n \"BoxSelectStartDate\",\n \"optionalStartDate\",\n \"cityFriendlyName\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"totalDaysArray\",\n \"cleaningTotalPrice\",\n \"cleaningHasDiscount\",\n \"boxTotalMonth\"]\n\n connect() {\n this.totalPriceMonth(this.startDateTarget.value);\n }\n\n showModal(event) {\n event.preventDefault();\n mixpanel.track(\"track-summary-services-edit-date\");\n this.modalEditDateTarget.classList.add(\"is-active\");\n this.toggleClassBoxSelected();\n }\n\n closeModal(event) {\n event.preventDefault();\n this.modalEditDateTarget.classList.remove(\"is-active\");\n }\n\n selectStartDate(event) {\n const date_elements = event.currentTarget.querySelectorAll(\".sort-date\");\n const abbreviated_day = date_elements[0].textContent.substring(0, 3);\n const day_number = date_elements[1].textContent;\n const month_name = date_elements[2].textContent;\n\n this.totalPriceMonth(event.currentTarget.getAttribute(\"data-start-date\"));\n this.startDateTarget.value = event.currentTarget.getAttribute(\"data-start-date\");\n this.toggleClassBoxSelected();\n this.optionalStartDateTarget.textContent = `${abbreviated_day}, ${day_number} de ${month_name}`;\n }\n\n confirmDate(event) {\n event.preventDefault();\n if (this.startDateTarget.value == \"\") {\n flashAlert(\"Por favor, seleccione una fecha de inicio\");\n } else {\n flashAlert(\"Fecha de inicio actualizada\", \"success\");\n this.modalEditDateTarget.classList.remove(\"is-active\");\n }\n }\n\n toggleClassBoxSelected() {\n this.BoxSelectStartDateTargets.forEach((element) => {\n if (element.getAttribute(\"data-start-date\") == this.startDateTarget.value){\n element.classList.add(\"box_date_selected\");\n } else {\n element.classList.remove(\"box_date_selected\");\n }\n });\n }\n\n totalPriceMonth(start_date){\n const business_days = this.businessDaysValue;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_total_days = this.totalDaysArrayTarget.value;\n const cleaning_total_price = this.cleaningTotalPriceTarget.value;\n const cleaning_has_discount = this.cleaningHasDiscountTarget.value;\n\n const format_start_date = new Date(`${start_date}T00:00:00`);\n const format_total_days = cleaning_total_days.split(\" \").map( n => parseInt(n));\n\n const last_day_month = new Date(format_start_date.getFullYear(), format_start_date.getMonth() + 1, 0)\n\n let total_services = 0;\n\n const type_of_week = this.typeOfWeek(format_start_date);\n\n let frequency = cleaning_frequency == \"once_a_week\" ? \"weekly\" : \"biweekly\";\n\n while(format_start_date <= last_day_month){\n\n let date_to_string = format_start_date.toISOString().split('T')[0];\n\n if (format_total_days.includes(format_start_date.getDay()) && business_days.includes(date_to_string)){\n if(frequency == \"weekly\"){\n total_services += 1;\n }else{\n switch (type_of_week) {\n case \"odd\":\n if (this.typeOfWeek(format_start_date) == \"odd\") {\n total_services += 1;\n }\n break;\n case \"even\":\n if (this.typeOfWeek(format_start_date) == \"even\"){\n total_services += 1;\n }\n break;\n }\n }\n }\n format_start_date.setDate(format_start_date.getDate() + 1);\n }\n\n const total_price_per_month = cleaning_total_price * total_services;\n const formatted_total_price_per_month = formattedPrice(total_price_per_month);\n const total_label = this.boxTotalMonthTarget.querySelector(\"p\");\n total_label.textContent = `${formatted_total_price_per_month} COP`;\n\n if (cleaning_has_discount == \"true\"){\n this.boxTotalMonthTarget.classList.add(\"box-has-background-cheaper-price\");\n }else{\n this.boxTotalMonthTarget.classList.add(\"box-has-background-summary-price\");\n }\n }\n\n typeOfWeek(date){\n const number_week = Math.floor((date.getTime() - new Date(date.getFullYear(), 0, 1).getTime()) / (86400000 * 7)) + 1;\n return number_week % 2 === 1 ? \"odd\" : \"even\";\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static targets = [\"city\", \"selectCityForm\"];\n\n sendWorkFrequency(event) {\n if (this.cityTarget.value === \"\") {\n event.preventDefault();\n flashAlert(\"Por favor, selecciona una ciudad.\");\n } else {\n mixpanel.track(event.target.dataset.mixpanelEventName);\n this.selectCityFormTarget.submit();\n }\n }\n}","import { Controller } from \"stimulus\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\nimport { HelperText } from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n initialize() {\n this.total_price = 0;\n this.total_days = [];\n this.cleaning_discount = false;\n this.new_days = [];\n }\n\n static targets = [\n \"cityFriendlyName\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"totalPrice\",\n \"modalBetterPlan\",\n \"modalBetterPlanreferencePrice\",\n \"modalBetterPlanTotalPrice\",\n \"modalBetterPlanDescription\",\n \"modalShowDiscount\",\n \"buttonNextPage\",\n \"referencePrice\"\n ];\n\n static values = {\n prices: Object,\n combinationAvailable: Object,\n checkRecurrencyAvailability: Number,\n summaryServiceUrl: String\n };\n\n connect() {\n const star_header = document.querySelector(\".home-star-header\");\n if (window.innerWidth <= 768) {\n star_header.classList.add(\"is-hidden\");\n }\n }\n\n sendSummaryPage(event) {\n event.preventDefault();\n if (this.total_days.length == 0) {\n const message = \"Por favor selecciona al menos un día de servicio.\";\n const target = document.querySelectorAll(\".box_w_check_box\");\n HelperText(target[target.length - 1], message, \"alert\");\n } else {\n this.showModalBetterPlan();\n }\n }\n\n selectDays(event) {\n const checkboxInput = event.currentTarget.querySelector('input[type=\"checkbox\"]');\n const dayValue = event.currentTarget.getAttribute(\"data-day\");\n const checkboxDay = document.querySelector(`#checkbox-day-${dayValue}`);\n\n if (!checkboxInput.checked) {\n checkboxInput.checked = true;\n\n checkboxDay.classList.add(\"clicked\");\n event.currentTarget.classList.add(\"box_selected\");\n\n this.total_days.push(dayValue);\n // this.checkAvailability();\n this.getAvgPriceCombination();\n } else {\n checkboxInput.checked = false;\n\n checkboxDay.classList.remove(\"clicked\");\n event.currentTarget.classList.remove(\"box_selected\");\n\n this.total_days = this.total_days.filter((day) => day !== dayValue);\n // this.checkAvailability();\n this.getAvgPriceCombination();\n\n event.currentTarget.classList.remove(\"box-not-pl-available\");\n }\n }\n\n checkAvailability(){\n const button = this.buttonNextPageTarget;\n const help_text_selector = \".help.is-danger\";\n let help_text = document.querySelector(help_text_selector);\n\n if (this.total_days.length === 0) {\n this.enableButton(button);\n this.removeHelpText(help_text);\n return;\n }\n\n const formatted_days = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n const filtered_combinations = this.combinationAvailableValue[`[${formatted_days}]`];\n\n const should_disable_button = filtered_combinations <= this.checkRecurrencyAvailabilityValue && this.total_days.length <= 2;\n\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n box.classList.toggle(\"box-not-pl-available\", should_disable_button);\n });\n\n if (should_disable_button && this.total_days.length >= 1) {\n this.disableButton(button);\n this.addHelpText(help_text);\n } else {\n this.enableButton(button);\n this.removeHelpText(help_text);\n }\n }\n\n enableButton(button) {\n button.style.pointerEvents = \"auto\";\n button.removeAttribute(\"disabled\");\n }\n\n disableButton(button) {\n button.style.pointerEvents = \"none\";\n button.setAttribute(\"disabled\", \"disabled\");\n }\n\n removeHelpText(helpText) {\n if (helpText) {\n helpText.remove();\n }\n }\n\n addHelpText(helpText) {\n if (!helpText) {\n const lastBox = document.getElementById(\"box-day-6\");\n const message = \"No tenemos profesionales disponibles para los días seleccionados.\";\n HelperText(lastBox, message, \"alert\");\n }\n }\n\n getAvgPriceCombination() {\n if ( this.total_days.length > 0 ){\n const formatted_days = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n\n const filtered_prices = this.pricesValue[`[${formatted_days}]`];\n\n this.toggleTotalPriceCard(filtered_prices);\n }else{\n this.totalPriceTarget.innerHTML = \"$0\";\n this.referencePriceTarget.innerHTML = \"\";\n }\n }\n\n // Better Plan Modal\n closeModalBetterPlan(event) {\n event.preventDefault();\n this.new_days = [];\n this.modalBetterPlanTarget.classList.remove(\"is-active\");\n }\n\n showModalBetterPlan() {\n const formatted_total_days = this.total_days.map((n) => parseInt(n)).sort();\n const total_days_string = formatted_total_days.join(\", \");\n\n const { pricesValue } = this;\n\n if (this.total_days.length === 1 ) {\n this.showModalShowDiscount( pricesValue, total_days_string);\n return;\n }\n const week_days = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado']\n\n let smallest_promotional_price = null;\n let smallest_key = null;\n\n Object.keys(pricesValue).forEach(key => {\n const array_key = JSON.parse(key);\n if(array_key.length === formatted_total_days.length){\n const promotional_price = pricesValue[key].promotional_price;\n\n if(promotional_price !== null && (smallest_promotional_price === null || promotional_price < smallest_promotional_price)){\n smallest_promotional_price = promotional_price;\n smallest_key = key;\n }\n }\n });\n\n if(smallest_key === null && smallest_promotional_price === null){\n this.showModalShowDiscount(pricesValue, total_days_string);\n return;\n }\n\n const { price, reference_price, promotional_price } = pricesValue[smallest_key];\n const same_days = JSON.stringify(formatted_total_days) === JSON.stringify(JSON.parse(smallest_key));\n\n if (\n !same_days &&\n smallest_promotional_price !== null &&\n promotional_price !== null &&\n (promotional_price < pricesValue[`[${total_days_string}]`].promotional_price ||\n pricesValue[`[${total_days_string}]`].promotional_price === null)\n ) {\n const name_days = JSON.parse(smallest_key).map((day) => week_days[day]);\n const formatted_days = name_days.map( day=> `${day}`)\n const description = `Si seleccionas los días ${formatted_days.slice(0, -1).join(\", \")} y ${formatted_days.slice(-1)} tu plan mensual tendrá un descuento.`;\n\n this.modalBetterPlanTarget.classList.add(\"is-active\");\n this.new_days = JSON.parse(smallest_key);\n if (pricesValue[`[${total_days_string}]`].promotional_price === null){\n this.modalBetterPlanreferencePriceTarget.innerHTML = formattedPrice(pricesValue[`[${total_days_string}]`].price);\n }else{\n this.modalBetterPlanreferencePriceTarget.innerHTML = formattedPrice(pricesValue[`[${total_days_string}]`].promotional_price);\n }\n this.modalBetterPlanTotalPriceTarget.innerHTML = formattedPrice(promotional_price);\n this.modalBetterPlanDescriptionTarget.innerHTML = description;\n }else{\n this.showModalShowDiscount(pricesValue, total_days_string);\n }\n }\n\n notInterested(event){\n event.preventDefault();\n this.new_days = [];\n const { pricesValue } = this;\n const total_days_string = this.total_days.map((n) => parseInt(n)).sort().join(\", \");\n if (pricesValue[`[${total_days_string}]`].promotional_price) {\n this.closeModalBetterPlan(event);\n this.modalShowDiscountTarget.classList.add(\"is-active\");\n }else{\n this.redirectToSummaryPage();\n }\n }\n\n acceptBetterPlan(event){\n event.preventDefault();\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n const checkbox_day = document.getElementById(`checkbox-day-${day}`);\n const checkbox_input = box.querySelector('input[type=\"checkbox\"]');\n\n checkbox_input.checked = false;\n checkbox_day.classList.remove(\"clicked\");\n box.classList.remove(\"box_selected\");\n });\n\n this.total_days = this.new_days.map(String);\n this.modalBetterPlanTarget.classList.remove(\"is-active\");\n this.total_days.forEach((day) => {\n const box = document.getElementById(`box-day-${day}`);\n const checkbox_day = document.getElementById(`checkbox-day-${day}`);\n const checkbox_input = box.querySelector('input[type=\"checkbox\"]');\n\n checkbox_input.checked = true;\n checkbox_day.classList.add(\"clicked\");\n box.classList.add(\"box_selected\");\n });\n this.getAvgPriceCombination();\n // this.checkAvailability();\n }\n\n // Discount Modal\n closeModalShowDiscount(event) {\n event.preventDefault();\n this.modalShowDiscountTarget.classList.remove(\"is-active\");\n }\n\n showModalShowDiscount(pricesValue, total_days_string) {\n if (pricesValue[`[${total_days_string}]`].promotional_price) {\n this.modalShowDiscountTarget.classList.add(\"is-active\");\n }else{\n this.redirectToSummaryPage();\n }\n }\n\n toggleTotalPriceCard(filtered_prices){\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n\n const { price, reference_price, promotional_price } = filtered_prices;\n const has_promotional_price = promotional_price !== null;\n\n if (has_promotional_price){\n const total_promotional_price = parseInt(promotional_price);\n const formatted_promotional_price = formattedPrice(total_promotional_price);\n\n this.total_price = total_promotional_price;\n this.cleaning_discount = true;\n\n const total_reference_price = parseInt(reference_price);\n\n this.referencePriceTarget.innerHTML = formattedPrice(total_reference_price);\n this.totalPriceTarget.innerHTML = formatted_promotional_price;\n\n }else if(price != reference_price){\n const total_price = parseInt(price);\n this.total_price = total_price;\n this.cleaning_discount = false;\n\n const total_reference_price = parseInt(reference_price)\n\n this.referencePriceTarget.innerHTML = formattedPrice(total_reference_price);\n this.totalPriceTarget.innerHTML = formattedPrice(total_price);\n\n }else {\n\n const total_price = parseInt(price)\n this.total_price = total_price;\n this.cleaning_discount = false;\n\n this.referencePriceTarget.innerHTML = \"\";\n this.totalPriceTarget.innerHTML = formattedPrice(total_price);\n }\n }\n\n redirectToSummaryPage() {\n\n const city_friendly_name = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const summary_service_url = this.summaryServiceUrlValue;\n\n const url = `${summary_service_url}?city_friendly_name=${city_friendly_name}&cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}&cleaning_total_days=${this.total_days}&cleaning_total_price=${this.total_price}&cleaning_has_discount=${this.cleaning_discount}`;\n mixpanel.track(\"track-continue-companies-button-schedule\");\n window.location.href = url;\n }\n\n}\n","import { Controller } from \"stimulus\";\nimport { HelperText } from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n summaryUrl: String\n }\n static targets = [\"cityFriendlyName\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"cleaningServiceDate\"]\n\n sendSummaryPage(event){\n event.preventDefault();\n const city_friendly_name = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const cleaning_service_date = this.cleaningServiceDateTarget.value;\n const summary_url = this.summaryUrlValue;\n\n if(!cleaning_service_date){\n const message = \"Por favor selecciona la fecha en la que necesitas la profesional.\";\n const target = document.querySelector(\"#calendar-container\");\n HelperText(target, message, \"alert\");\n }else{\n const url = `${summary_url}?city_friendly_name=${city_friendly_name}&cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}&cleaning_service_date=${cleaning_service_date}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n }\n }\n\n}","import { Controller } from \"stimulus\";\nimport {\n HelperText,\n removeHelperText,\n HelperTextForServiceDuration,\n} from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n scheduleServiceUrl: String,\n duration: Object\n }\n static targets = [ \"boxSingleService\", \"cityFriendlyName\", \"cleaningFrequency\", \"cleaningIntensity\"]\n\n selectIntensity(event) {\n const target = this.boxSingleServiceTargets[this.boxSingleServiceTargets.length - 1];\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n removeHelperText(target);\n this.boxSingleServiceTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningIntensityTarget.value = radioInput.value;\n }\n\n const { hours, minutes } = this.durationValue[this.cleaningIntensityTarget.value];\n removeHelperText(target, \"helper-text\");\n HelperTextForServiceDuration(target, hours, minutes);\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const city_friendly_name = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const schedule_service_url = this.scheduleServiceUrlValue;\n\n if(!cleaning_intensity || cleaning_intensity === \"nil\"){\n const message = \"Por favor selecciona la jornada en la que necesitas los servicios de limpieza.\";\n const target = this.boxSingleServiceTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n } else {\n const url = `${schedule_service_url}?city_friendly_name=${city_friendly_name}&cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n }\n }\n\n}","import { Controller } from \"stimulus\";\nimport { calendarLibrary } from \"../../../../assets/javascripts/client/libraries/calendar_library\";\nimport { HelperText } from \"../../../helpers/helper_text\";\n\nexport default class extends Controller {\n static values = {\n cityId: Number,\n shift: String,\n url: String\n }\n\n connect() {\n this.getAvailableDays();\n }\n\n async getAvailableDays() {\n const url = this.urlValue;\n const city_id = this.cityIdValue;\n const shift = this.shiftValue;\n\n try {\n let request = await fetch(`${url}?city_id=${city_id}&shift=${shift}`, { method: \"GET\" });\n\n let response = await request.text();\n this.element.innerHTML = \"\";\n this.element.innerHTML = response;\n this.highlightDayAndMonth();\n window.calendarLibrary.run(\"cleaning_service_date\");\n\n } catch (error) {\n HelperText(\n this.element,\n \"Ha ocurrido un error al cargar los días disponibles. Intenta de nuevo más tarde.\",\n \"alert\"\n );\n }\n }\n\n highlightDayAndMonth() {\n const day_selected = document.getElementById(\"cleaning_service_date\");\n const days = document.querySelectorAll(\".day\");\n const start_month = document.getElementById(\"start_month\").dataset.month;\n\n if (day_selected.value) {\n days.forEach((day) => {\n if (day.dataset.date === day_selected.value) {\n day.classList.add(\"is-selected\");\n }\n });\n }\n\n if (start_month) {\n days.forEach((day) => {\n const month =\n new Date(`${day.dataset.date}T00:00:00Z`).getUTCMonth() + 1;\n if (month != start_month) {\n day.classList.add(\"is-invisible\");\n }\n });\n }\n }\n}","import { Controller } from \"stimulus\";\nimport {\n HelperText,\n removeHelperText,\n HelperTextForServiceDuration,\n} from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n scheduleServiceUrl: String,\n duration: Object\n }\n\n static targets = [ \"boxSingleService\", \"cityFriendlyName\", \"cleaningFrequency\", \"cleaningIntensity\"]\n\n selectIntensity(event) {\n const target = this.boxSingleServiceTargets[this.boxSingleServiceTargets.length - 1];\n removeHelperText(target);\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n this.boxSingleServiceTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningIntensityTarget.value = radioInput.value;\n }\n const { hours, minutes } = this.durationValue[this.cleaningIntensityTarget.value];\n removeHelperText(target, \"helper-text\");\n HelperTextForServiceDuration(target, hours, minutes);\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const city_friendly_name = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_intensity = this.cleaningIntensityTarget.value;\n const schedule_service_url = this.scheduleServiceUrlValue;\n\n if(!cleaning_intensity || cleaning_intensity === \"nil\"){\n const message = \"Por favor selecciona la jornada en la que necesitas los servicios de limpieza.\";\n const target = this.boxSingleServiceTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n } else {\n const url = `${schedule_service_url}?city_friendly_name=${city_friendly_name}&cleaning_frequency=${cleaning_frequency}&cleaning_intensity=${cleaning_intensity}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n }\n }\n\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\nimport { formattedPrice } from \"../../../helpers/formatted_price\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n\n static values = { businessDays: Array }\n\n static targets = [\"modalEditDate\",\n \"startDate\",\n \"BoxSelectStartDate\",\n \"optionalStartDate\",\n \"cityFriendlyName\",\n \"cleaningFrequency\",\n \"cleaningIntensity\",\n \"totalDaysArray\",\n \"cleaningTotalPrice\",\n \"cleaningHasDiscount\",\n \"boxTotalMonth\"]\n\n connect() {\n this.totalPriceMonth(this.startDateTarget.value);\n }\n\n showModal(event) {\n event.preventDefault();\n this.modalEditDateTarget.classList.add(\"is-active\");\n mixpanel.track(\"track-companies-summary-services-edit-date\");\n this.toggleClassBoxSelected();\n }\n\n closeModal(event) {\n event.preventDefault();\n this.modalEditDateTarget.classList.remove(\"is-active\");\n }\n\n selectStartDate(event) {\n const date_elements = event.currentTarget.querySelectorAll(\".sort-date\");\n const abbreviated_day = date_elements[0].textContent.substring(0, 3);\n const day_number = date_elements[1].textContent;\n const month_name = date_elements[2].textContent;\n\n this.totalPriceMonth(event.currentTarget.getAttribute(\"data-start-date\"));\n this.startDateTarget.value = event.currentTarget.getAttribute(\"data-start-date\");\n this.toggleClassBoxSelected();\n this.optionalStartDateTarget.textContent = `${abbreviated_day}, ${day_number} de ${month_name}`;\n }\n\n confirmDate(event) {\n event.preventDefault();\n if (this.startDateTarget.value == \"\") {\n flashAlert(\"Por favor, seleccione una fecha de inicio\");\n } else {\n flashAlert(\"Fecha de inicio actualizada\", \"success\");\n this.modalEditDateTarget.classList.remove(\"is-active\");\n }\n }\n\n toggleClassBoxSelected() {\n this.BoxSelectStartDateTargets.forEach((element) => {\n if (element.getAttribute(\"data-start-date\") == this.startDateTarget.value){\n element.classList.add(\"box_date_selected\");\n } else {\n element.classList.remove(\"box_date_selected\");\n }\n });\n }\n\n totalPriceMonth(start_date){\n const business_days = this.businessDaysValue;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const cleaning_total_days = this.totalDaysArrayTarget.value;\n const cleaning_total_price = this.cleaningTotalPriceTarget.value;\n const cleaning_has_discount = this.cleaningHasDiscountTarget.value;\n\n const format_start_date = new Date(`${start_date}T00:00:00`);\n const format_total_days = cleaning_total_days.split(\" \").map( n => parseInt(n));\n\n const last_day_month = new Date(format_start_date.getFullYear(), format_start_date.getMonth() + 1, 0)\n\n let total_services = 0;\n\n const type_of_week = this.typeOfWeek(format_start_date);\n\n let frequency = cleaning_frequency == \"once_a_week\" ? \"weekly\" : \"biweekly\";\n\n while(format_start_date <= last_day_month){\n\n let date_to_string = format_start_date.toISOString().split('T')[0];\n\n if (format_total_days.includes(format_start_date.getDay()) && business_days.includes(date_to_string)){\n if(frequency == \"weekly\"){\n total_services += 1;\n }else{\n switch (type_of_week) {\n case \"odd\":\n if (this.typeOfWeek(format_start_date) == \"odd\") {\n total_services += 1;\n }\n break;\n case \"even\":\n if (this.typeOfWeek(format_start_date) == \"even\"){\n total_services += 1;\n }\n break;\n }\n }\n }\n format_start_date.setDate(format_start_date.getDate() + 1);\n }\n\n const total_price_per_month = cleaning_total_price * total_services;\n const formatted_total_price_per_month = formattedPrice(total_price_per_month);\n const total_label = this.boxTotalMonthTarget.querySelector(\"p\");\n total_label.textContent = `${formatted_total_price_per_month} COP`;\n\n if (cleaning_has_discount == \"true\"){\n this.boxTotalMonthTarget.classList.add(\"box-has-background-cheaper-price\");\n }else{\n this.boxTotalMonthTarget.classList.add(\"box-has-background-summary-price\");\n }\n }\n\n typeOfWeek(date){\n const number_week = Math.floor((date.getTime() - new Date(date.getFullYear(), 0, 1).getTime()) / (86400000 * 7)) + 1;\n return number_week % 2 === 1 ? \"odd\" : \"even\";\n }\n}","import { Controller } from \"stimulus\";\nimport { HelperText, removeHelperText } from \"../../../helpers/helper_text\";\nimport mixpanel from \"../../../helpers/mixpanel\";\n\nexport default class extends Controller {\n static values = {\n singleServiceUrl: String,\n servicesUrl: String,\n };\n\n static targets = [\"cityFriendlyName\", \"cleaningFrequency\", \"boxCleaning\"];\n\n sendWorkdayPage(event) {\n event.preventDefault();\n const city = this.cityFriendlyNameTarget.value;\n const cleaning_frequency = this.cleaningFrequencyTarget.value;\n const single_service_url = this.singleServiceUrlValue;\n const services_url = this.servicesUrlValue;\n\n if (!cleaning_frequency || cleaning_frequency === \"nil\") {\n const message =\n \"Por favor selecciona con qué frecuencia deseas el servicio de limpieza\";\n const target = this.boxCleaningTargets;\n HelperText(target[target.length - 1], message, \"alert\");\n } else if (cleaning_frequency === \"occasional\") {\n const url = `${single_service_url}?city_friendly_name=${city}&cleaning_frequency=${cleaning_frequency}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n } else if (\n cleaning_frequency === \"once_a_week\" ||\n cleaning_frequency === \"biweekly\"\n ) {\n const url = `${services_url}?city_friendly_name=${city}&cleaning_frequency=${cleaning_frequency}`;\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = url;\n }\n }\n\n selectFrequency(event) {\n removeHelperText(\n this.boxCleaningTargets[this.boxCleaningTargets.length - 1]\n );\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n this.boxCleaningTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.cleaningFrequencyTarget.value = radioInput.value;\n }\n }\n}","import { Controller } from \"stimulus\";\nimport { HelperText, removeHelperText } from \"../../../helpers/helper_text\";\n\nexport default class extends Controller {\n static targets = [\"submitButton\",\n \"createClientForm\"];\n\n submitForm(event){\n event.preventDefault();\n const has_city = document.getElementById(\"elisa_home_conversion_process_form_city_id\")\n const city_select = document.querySelector(\".ss-main\");\n\n if (has_city.value === \"\") {\n has_city.classList.remove(\"has-margin-bottom-1-auto\");\n HelperText(city_select, \"Por favor selecciona una ciudad.\", \"alert\", \"is-size-14px-auto\");\n this.submitButtonTarget.removeAttribute(\"data-disable-with\");\n } else {\n if (city_select.nextElementSibling) {\n removeHelperText(city_select);\n }\n has_city.classList.add(\"has-margin-bottom-1-auto\");\n if ($(event.target).valid()) {\n this.submitButtonTarget.setAttribute(\"disabled\", \"disabled\");\n this.createClientFormTarget.submit();\n } else {\n this.submitButtonTarget.removeAttribute(\"data-disable-with\");\n }\n }\n }\n}\n","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"city\"];\n\n sendWorkFrequency(event) {\n event.preventDefault();\n window.location.href = `/hogares/apporta/schedule_work_days`;\n }\n}\n","import { Controller } from \"stimulus\";\nimport { HelperText, removeHelperText } from \"../../../helpers/helper_text\";\n\nexport default class extends Controller {\n\n static targets = [\"elisaWorkTotalDays\",\n \"elisaIntensity\",\n \"elisaAmount\"]\n\n static values = { elisaAmountConstant: Number}\n\n calculateAmount(){\n this.elisaAmountTarget.value = this.elisaAmountTarget.value\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const elisa_work_total_days = this.elisaWorkTotalDaysTarget.value;\n const elisa_intensity = this.elisaIntensityTarget.value;\n const elisa_amount = this.elisaAmountTarget.value;\n\n if( elisa_amount < 0 || elisa_amount < this.elisaAmountConstantValue){\n const message = \"Por favor introduce un monto válido.\";\n const target = document.querySelector(\".info-minimum-payment\");\n HelperText(target, message, \"alert\");\n } else {\n const url = `/hogares/apporta/summary_quotes?elisa_work_total_days=${elisa_work_total_days}&elisa_intensity=${elisa_intensity}&elisa_amount=${elisa_amount}`;\n window.location.href = url;\n }\n }\n\n}","import { Controller } from \"stimulus\";\nimport { HelperText, removeHelperText } from \"../../../helpers/helper_text\";\n\nexport default class extends Controller {\n\n initialize(){\n this.total_days = [];\n }\n\n sendWorkTimePage(event){\n event.preventDefault();\n\n if (this.total_days.length == 0) {\n const target = document.querySelectorAll(\".box_w_check_box\");\n const message = \"Por favor selecciona al menos un día de trabajo.\";\n HelperText(target[target.length - 1], message, \"alert\");\n } else {\n const url = `/hogares/apporta/schedule_work_times?elisa_work_total_days=${this.total_days}`;\n window.location.href = url;\n }\n }\n\n selectDays(event){\n const target = document.querySelectorAll(\".box_w_check_box\")\n removeHelperText(target[target.length - 1]);\n const checkboxInput = event.currentTarget.querySelector('input[type=\"checkbox\"]');\n const dayValue = event.currentTarget.getAttribute(\"data-day\");\n const checkboxDay = document.querySelector(`#checkbox-day-${dayValue}`);\n\n if (!checkboxInput.checked) {\n checkboxInput.checked = true;\n\n checkboxDay.classList.add(\"clicked\");\n event.currentTarget.classList.add(\"box_selected\");\n\n this.total_days.push(dayValue);\n } else {\n checkboxInput.checked = false;\n\n checkboxDay.classList.remove(\"clicked\");\n event.currentTarget.classList.remove(\"box_selected\");\n\n this.total_days = this.total_days.filter((day) => day !== dayValue);\n }\n\n }\n\n}","import { Controller } from \"stimulus\";\nimport { HelperText, removeHelperText } from \"../../../helpers/helper_text\";\n\nexport default class extends Controller {\n\n static targets = [ \"boxElisaWorkTime\", \"elisaWorkTotalDays\", \"elisaIntensity\"]\n\n selectIntensity(event) {\n const target = document.querySelectorAll(\".box_w_check_box\");\n removeHelperText(target[target.length - 1]);\n const radioInput = event.currentTarget.querySelector('input[type=\"radio\"]');\n this.boxElisaWorkTimeTargets.forEach((box) => {\n box.classList.remove(\"box_selected\");\n });\n event.currentTarget.classList.add(\"box_selected\");\n if (radioInput) {\n radioInput.checked = true;\n this.elisaIntensityTarget.value = radioInput.value;\n }\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const elisa_work_total_days = this.elisaWorkTotalDaysTarget.value;\n const elisa_intensity = this.elisaIntensityTarget.value;\n\n if(!elisa_intensity || elisa_intensity === \"nil\"){\n const message = \"Por favor selecciona cuanto tiempo trabajará la trabajadora.\";\n const target = document.querySelectorAll(\".box_w_check_box\");\n HelperText(target[target.length - 1], message, \"alert\");\n } else {\n const url = `/hogares/apporta/pay_work?elisa_work_total_days=${elisa_work_total_days}&elisa_intensity=${elisa_intensity}`;\n window.location.href = url;\n }\n }\n\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n\n toggleInfoVisibility(event){\n const clicked_label = event.currentTarget\n const target_info = clicked_label.dataset.targetInfo\n const target_info_box = document.getElementById(target_info)\n\n if (clicked_label.textContent === \"Ver más\") {\n clicked_label.textContent = \"Ver menos\";\n target_info_box.classList.remove(\"hide\");\n } else {\n clicked_label.textContent = \"Ver más\";\n target_info_box.classList.add(\"hide\");\n }\n }\n\n sendSchedulePage(event) {\n event.preventDefault();\n const elisa_work_total_days = this.elisaWorkTotalDaysTarget.value;\n const elisa_intensity = this.elisaIntensityTarget.value;\n const elisa_amount = this.elisaAmountTarget.value;\n\n if (elisa_amount < 0) {\n flashAlert(\"Por favor introduzca un monto válido\");\n } else {\n const url = `/hogares/apporta/summary_quotes?elisa_work_total_days=${elisa_work_total_days}&elisa_intensity=${elisa_intensity}&elisa_amount=${elisa_amount}`;\n window.location.href = url;\n }\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n initialize() {\n this.birthday = 0;\n }\n\n connect() {\n const document_number = document.getElementById( \"grace_employee_forms_create_employee_form_document_number\" );\n const birthday_input = document.getElementById( \"grace_employee_forms_create_employee_form_birthday\" );\n\n document_number.addEventListener(\"input\", () => {\n if (document_number.value.length >= 6) {\n this.requestValidation(\n `/validations/profile_document_numbers/${document_number.value}`,\n birthday_input,\n \"Ya has trabajado con nosotros antes. Por favor, completa este campo para verificar tu identidad.\"\n );\n }\n });\n }\n\n async requestValidation(path, input, message) {\n const birthday_container = document.querySelector(\"#birthday-container\");\n //Create new element\n const help_message = document.createElement(\"p\");\n help_message.classList.add(\"help\");\n help_message.classList.add(\"is-info\");\n help_message.innerHTML = message;\n try {\n let request = await fetch(path, { method: \"GET\" });\n let response = await request.json();\n if (response === null) {\n birthday_container.classList.add(\"is-hidden\");\n input.value = \"\";\n this.updateInputStatus(input, false, help_message);\n } else {\n birthday_container.classList.remove(\"is-hidden\");\n this.birthday = new Date(response).toLocaleDateString(\"en-GB\", {\n timeZone: \"UTC\",\n });\n this.updateInputStatus(input, true, help_message);\n }\n } catch (error) {\n flashAlert(\"Ups! Algo salió mal. Por favor, inténtalo más tarde.\");\n }\n }\n\n updateInputStatus(input, isValid, helpMessage) {\n if (isValid) {\n input.classList.add(\"is-info\");\n if (!input.nextElementSibling) {\n input.after(helpMessage);\n }\n } else {\n input.classList.remove(\"is-info\");\n if (input.nextElementSibling) {\n input.nextElementSibling.remove();\n }\n }\n }\n\n enableButton(button) {\n button.disabled = false;\n }\n\n disableButton(button) {\n button.disabled = true;\n }\n\n validateBirthday(event) {\n let birthday = new Date(event.target.value).toLocaleDateString(\"en-GB\", {\n timeZone: \"UTC\",\n });\n\n const button = document.getElementById(\"create-employee\");\n\n if (birthday != this.birthday) {\n flashAlert(\"Ups! La fecha de nacimiento que ingresaste es incorrecta.\");\n this.disableButton(button);\n } else {\n this.enableButton(button);\n }\n }\n\n checkBirthday(event) {\n const birthday_container = document.querySelector(\"#birthday-container\");\n const birthday_input = document.getElementById( \"grace_employee_forms_create_employee_form_birthday\" );\n if (\n !birthday_container.classList.contains(\"is-hidden\") &&\n birthday_input.value === \"\"\n ) {\n event.preventDefault();\n this.disableButton(event.target);\n flashAlert(\"Por favor, completa el campo de fecha de nacimiento.\");\n }\n }\n}\n","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\n\nexport default class extends Controller {\n static targets = [\"city\"];\n\n redirectToEmployerRegister(event) {\n event.preventDefault();\n if (this.cityTarget.value === \"\") {\n flashAlert(\"Por favor, selecciona una ciudad.\");\n } else {\n window.location.href = `/encuentra/empleador/registro?city_friendly_name=${this.cityTarget.value}`;\n }\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n connect() {\n if (!this.element.classList.contains(\"slick-initialized\")) {\n $(this.element).slick({\n dots: false,\n infinite: true,\n slidesToShow: 3,\n slidesToScroll: 1,\n autoplay: true,\n autoplaySpeed: 5000,\n responsive: [\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3,\n infinite: true,\n dots: true,\n },\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2,\n infinite: true,\n dots: false\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n dots: false\n },\n },\n ],\n });\n }\n }\n}\n","import { Controller } from \"stimulus\";\n\nimport SlimSelect from \"slim-select\";\n\nexport default class extends Controller {\n connect(){\n const is_mobile = /Mobi|Android/i.test(navigator.userAgent);\n new SlimSelect({\n select: this.element,\n settings: {\n searchPlaceholder: \"Buscar ciudad\",\n searchText: \"Ciudad no disponible\",\n openPosition: is_mobile ? \"up\" : \"auto\",\n },\n events: {\n // Doc: https://slimselectjs.com/events#searchFilter\n searchFilter: (option, search) => {\n const normalize_text = (text) => {\n // Remove accents and convert to lowercase for a better search, 'b'+'o'+'g'+'o'+'t'+'a'+'´' => 'bogota'\n return text\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toLowerCase();\n };\n return normalize_text(option.text).includes(normalize_text(search));\n },\n },\n });\n\n const slim_select = document.querySelectorAll(\".ss-main\");\n const dropdown = document.querySelectorAll(\".ss-content\");\n\n slim_select.forEach((item) => {\n item.setAttribute('aria-label', 'Buscar opción');\n });\n\n dropdown.forEach((item) => {\n item.setAttribute(\"role\", \"combobox\");\n item.setAttribute(\"aria-haspopup\", \"listbox\");\n item.setAttribute(\"aria-expanded\", \"false\");\n\n let searchInput = item.querySelector('.ss-search input[type=\"search\"]')\n searchInput.setAttribute(\"role\", \"searchbox\");\n\n let listbox = item.querySelector('.ss-list')\n listbox.setAttribute(\"role\", \"listbox\");\n listbox.setAttribute(\"aria-label\", \"Lista de opciones\");\n });\n }\n}","import { Controller } from \"stimulus\";\nimport { flashAlert } from \"../../../helpers/flash_alert\";\nimport mixpanel from \"../../../helpers/mixpanel\";\nexport default class extends Controller {\n\n static targets = [\"city\"]\n\n showServices(event){\n event.preventDefault()\n if(this.cityTarget.value === \"\"){\n flashAlert(\"Por favor, selecciona una ciudad.\")\n }else{\n mixpanel.track(event.target.dataset.mixpanelEventName);\n window.location.href = `/servicios/${this.cityTarget.value}`;\n }\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"cards\"]\n\n connect(){\n this.showCards()\n }\n\n showCards(){\n const cards = this.cardsTarget.querySelectorAll(\".card\")\n const card_count = Array.from(cards).filter(card => card.style.display !== \"none\").length\n\n if (card_count === 1){\n this.cardsTarget.classList.remove( \"is-justify-content-start-auto-desktop\" );\n this.cardsTarget.classList.add( \"is-justify-content-center-auto-desktop\" );\n } else {\n const cards_container = document.querySelectorAll(\".has-text-dark\");\n cards_container.forEach(card => card.classList.add(\"has-margin-right-2-auto-desktop\"))\n }\n }\n}","import { Controller } from \"stimulus\";\n\nexport default class extends Controller {\n static targets = [\"body\",\n \"sideBar\",\n \"main\",\n \"navbar\",\n \"homeFooter\",\n \"circleHeader\",\n \"starHeader\"\n ]\n\n openSideBar(){\n // Open side nav\n if (window.innerWidth <= 768) {\n this.sideBarTarget.style.width = \"100%\";\n } else {\n this.sideBarTarget.style.width = \"36.5rem\";\n }\n\n this.mainTarget.style.position = \"relative\";\n this.bodyTarget.style.minHeight = \"100vh\";\n\n // Animation for sidebar\n this.sideBarTarget\n .querySelectorAll(\".sidebar-item\")\n .forEach((item, index) => {\n setTimeout(() => {\n item.style.opacity = \"1\";\n }, 400);\n });\n\n // Background color of navbar and body\n this.bodyTarget.style.backgroundColor = \"rgba(62,76,86,0.6)\";\n this.navbarTarget.style.backgroundColor = \"rgba(62,76,86,0.0)\";\n\n // Z-index of footer and navbar\n if (this.hasHomeFooterTarget) {\n this.homeFooterTarget.style.zIndex = \"-1\";\n }\n this.mainTarget.style.zIndex = \"-1\";\n this.navbarTarget.style.zIndex = \"-1\";\n\n // Hide circle and star header\n if (this.hasCircleHeaderTarget) {\n this.circleHeaderTarget.classList.add(\"is-hidden\");\n }\n if (this.hasStarHeaderTarget) {\n this.starHeaderTarget.classList.add(\"is-hidden\");\n }\n }\n\n closeSideBar(event){\n event.preventDefault();\n // Close side nav\n this.sideBarTarget.style.width = \"0\";\n\n this.bodyTarget.style.minHeight = \"\";\n\n // Reset position of main\n this.mainTarget.style.position = \"initial\";\n\n // Reset background color of footer, body and navbar\n this.bodyTarget.style.backgroundColor = \"white\";\n this.navbarTarget.style.backgroundColor = \"white\";\n if (this.hasHomeFooterTarget) {\n this.homeFooterTarget.style.backgroundColor = \"#3E4C56\";\n this.homeFooterTarget.style.zIndex = \"3\";\n }\n\n // Reset z-index of footer and navbar\n this.mainTarget.style.zIndex = \"3\";\n this.navbarTarget.style.zIndex = \"3\";\n\n // Show circle and star header\n if (this.hasCircleHeaderTarget) {\n this.circleHeaderTarget.classList.remove(\"is-hidden\");\n }\n if (this.hasStarHeaderTarget) {\n this.starHeaderTarget.classList.remove(\"is-hidden\");\n }\n }\n\n checkSideBar(event){\n if (event.target == this.bodyTarget && this.hasSideBarTarget) {\n this.closeSideBar(event);\n }\n }\n}","function inputAlert(input, message) {\n input.classList.add(\"error\");\n let input_alert = \"\";\n input_alert += `${message}`;\n input.insertAdjacentHTML(\"afterend\", input_alert);\n setTimeout(() => {\n input.classList.remove(\"error\");\n input.nextElementSibling.remove();\n }, 5000);\n}\n\n\nexport { inputAlert };","function flashAlert(message, type = 'alert'){\n let modifier = 'alert-info'\n switch (type) {\n case 'alert':\n case 'danger':\n case 'error':\n case 'validation_errors':\n modifier = 'alert--danger'\n break;\n case 'warning':\n case 'todo':\n modifier = 'alert--warning'\n break;\n case 'notice':\n case 'success':\n modifier = 'alert--success'\n }\n\n let container_flash = document.querySelector(\".flash-wrapper\");\n if (container_flash.children.length >= 2){\n return false\n }\n container_flash.classList.add(\"show-flash-wrapper\");\n container_flash.innerHTML += `
${message}
`\n setTimeout(() => {\n if (container_flash.firstChild != null) {\n container_flash.firstChild.classList.remove(\"show-alert\");\n }\n setTimeout(() => {\n container_flash.classList.remove(\"show-flash-wrapper\");\n container_flash.innerHTML = \"\";\n }, 1000);\n }, 4000);\n}\n\nexport { flashAlert };","function formattedPrice(price) {\n return price\n .toLocaleString(\"es-CO\", {\n style: \"currency\",\n currency: \"COP\",\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n })\n .replace(/\\s/g, \"\");\n}\n\nexport { formattedPrice };\n","/**\n * HelperText function adds a help text element after the target element.\n * @param {HTMLElement} target - The target element after which the help text will be inserted.\n * @param {string} message - The message to be displayed in the help text.\n * @param {string} [type=\"alert\"] - The type of the help text. Possible values are \"alert\", \"warning\", \"success\", and \"info\".\n * @returns {void}\n */\nfunction HelperText(target, message, type = \"alert\", fontSize = \"is-size-5\") {\n if (\n target.nextElementSibling &&\n target.nextElementSibling.classList.contains(\"help\")\n ) {\n return;\n }\n\n const alert_types = {\n alert: \"is-danger\",\n warning: \"is-warning\",\n success: \"is-success\",\n info: \"is-info\",\n };\n\n const alert_type = alert_types[type];\n\n const help_text_html = `

${message}

`;\n target.insertAdjacentHTML(\"afterend\", help_text_html);\n}\n\nfunction HelperTextForServiceDuration(target, hours, minutes){\n const help_text_html = `

Nota: La duración de esta jornada es de ${hours} horas y ${minutes} min.

`;\n target.insertAdjacentHTML(\"afterend\", help_text_html);\n}\n\n/**\n * Removes the helper text element next to the target element, if it exists.\n * @param {HTMLElement} target - The target element.\n */\nfunction removeHelperText(target, helpClass = \"help\") {\n if (\n target.nextElementSibling &&\n target.nextElementSibling.classList.contains(helpClass)\n ) {\n target.nextElementSibling.remove();\n }\n}\n\nfunction removeLoader(target, loaderClass = \"is-loading\") {\n if (target.classList.contains(loaderClass)) {\n target.classList.remove(loaderClass);\n }\n}\n\nexport {\n HelperText,\n removeHelperText,\n HelperTextForServiceDuration,\n removeLoader,\n};\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction maskInputValue({ element, maskInputOptions, tagName, type, value, maskInputFn, }) {\r\n let text = value || '';\r\n const actualType = type && toLowerCase(type);\r\n if (maskInputOptions[tagName.toLowerCase()] ||\r\n (actualType && maskInputOptions[actualType])) {\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n else {\r\n text = '*'.repeat(text.length);\r\n }\r\n }\r\n return text;\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction extractFileExtension(path, baseURL) {\r\n var _a;\r\n let url;\r\n try {\r\n url = new URL(path, baseURL !== null && baseURL !== void 0 ? baseURL : window.location.href);\r\n }\r\n catch (err) {\r\n return null;\r\n }\r\n const regex = /\\.([0-9a-z]+)(?:$)/i;\r\n const match = url.pathname.match(regex);\r\n return (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : null;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (node.nodeType !== node.ELEMENT_NODE) {\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n }\r\n for (let eIndex = node.classList.length; eIndex--;) {\r\n const className = node.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, checkAncestors) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (typeof maskTextClass === 'string') {\r\n if (checkAncestors) {\r\n if (el.closest(`.${maskTextClass}`))\r\n return true;\r\n }\r\n else {\r\n if (el.classList.contains(maskTextClass))\r\n return true;\r\n }\r\n }\r\n else {\r\n if (classMatchesRegex(el, maskTextClass, checkAncestors))\r\n return true;\r\n }\r\n if (maskTextSelector) {\r\n if (checkAncestors) {\r\n if (el.closest(maskTextSelector))\r\n return true;\r\n }\r\n else {\r\n if (el.matches(maskTextSelector))\r\n return true;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, needsMask, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n needsMask,\r\n maskTextFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n const { needsMask, maskTextFn, rootId } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n if (!isStyle && !isScript && textContent && needsMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, inlineStylesheet, maskInputOptions = {}, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n const value = n.value;\r\n const checked = n.checked;\r\n if (attributes.type !== 'radio' &&\r\n attributes.type !== 'checkbox' &&\r\n attributes.type !== 'submit' &&\r\n attributes.type !== 'button' &&\r\n value) {\r\n attributes.value = maskInputValue({\r\n element: n,\r\n type: getInputType(n),\r\n tagName,\r\n value,\r\n maskInputOptions,\r\n maskInputFn,\r\n });\r\n }\r\n else if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n const mediaAttributes = attributes;\r\n mediaAttributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n mediaAttributes.rr_mediaCurrentTime = n.currentTime;\r\n mediaAttributes.rr_mediaPlaybackRate = n.playbackRate;\r\n mediaAttributes.rr_mediaMuted = n.muted;\r\n mediaAttributes.rr_mediaLoop = n.loop;\r\n mediaAttributes.rr_mediaVolume = n.volume;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n extractFileExtension(sn.attributes.href) === 'js'))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, maskTextClass, maskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { needsMask } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n if (!needsMask &&\r\n n.childNodes) {\r\n const checkAncestors = needsMask === undefined;\r\n needsMask = needMaskingText(n, maskTextClass, maskTextSelector, checkAncestors);\r\n }\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'textarea' &&\r\n serializedNode.attributes.value !== undefined) ;\r\n else {\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n typeof serializedNode.attributes.rel === 'string' &&\r\n (serializedNode.attributes.rel === 'stylesheet' ||\r\n (serializedNode.attributes.rel === 'preload' &&\r\n typeof serializedNode.attributes.href === 'string' &&\r\n extractFileExtension(serializedNode.attributes.href) === 'css'))) {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : maskAllInputs === false\r\n ? {\r\n password: true,\r\n }\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch (_a) {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n var _a, _b, _c, _d, _e, _f;\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollLeft) ||\r\n ((_b = (_a = doc === null || doc === void 0 ? void 0 : doc.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = doc === null || doc === void 0 ? void 0 : doc.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollTop) ||\r\n ((_e = (_d = doc === null || doc === void 0 ? void 0 : doc.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = doc === null || doc === void 0 ? void 0 : doc.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction closestElementOfNode(node) {\r\n if (!node) {\r\n return null;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n return el;\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = closestElementOfNode(node);\r\n if (!el) {\r\n return false;\r\n }\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (el.classList.contains(blockClass))\r\n return true;\r\n if (checkAncestors && el.closest('.' + blockClass) !== null)\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, blockClass, checkAncestors))\r\n return true;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n if (blockSelector) {\r\n if (el.matches(blockSelector))\r\n return true;\r\n if (checkAncestors && el.closest(blockSelector) !== null)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n var _a, _b;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\n\nvar EventType$1 = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType$1 || {});\nvar IncrementalSource$1 = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource$1 || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode ||\r\n !inDom(n) ||\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskTextClass: this.maskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => {\r\n const n = text.node;\r\n if (n.parentNode &&\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(n.parentNode);\r\n }\r\n return {\r\n id: this.mirror.getId(n),\r\n value: text.value,\r\n };\r\n })\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.genTextAreaValueMutation = (textarea) => {\r\n let item = this.attributeMap.get(textarea);\r\n if (!item) {\r\n item = {\r\n node: textarea,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(textarea, item);\r\n }\r\n item.attributes.value = Array.from(textarea.childNodes, (cn) => cn.textContent || '').join('');\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, true) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value, closestElementOfNode(m.target))\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n value = maskInputValue({\r\n element: target,\r\n maskInputOptions: this.maskInputOptions,\r\n tagName: target.tagName,\r\n type,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributeMap.get(m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(m.target, item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value);\r\n if (attributeName === 'style') {\r\n if (!this.unattachedDoc) {\r\n try {\r\n this.unattachedDoc =\r\n document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n this.unattachedDoc = this.doc;\r\n }\r\n }\r\n const old = this.unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\r\n return;\r\n if (m.target.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(m.target);\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'maskTextClass',\r\n 'maskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nlet errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return;\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch (_a) {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer)));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource$1.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource$1.MouseMove\r\n : IncrementalSource$1.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)(Object.assign({ type: MouseInteractions[thisEventKey], id, x: clientX, y: clientY }, (pointerType !== null && { pointerType })));\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && target.tagName;\r\n if (target && tagName === 'OPTION') {\r\n target = target.parentElement;\r\n }\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n if (target.classList.contains(ignoreClass) ||\r\n (ignoreSelector && target.matches(ignoreSelector))) {\r\n return;\r\n }\r\n let text = target.value;\r\n let isChecked = false;\r\n const type = getInputType(target) || '';\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n else if (maskInputOptions[tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n text = maskInputValue({\r\n element: target,\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n value: text,\r\n maskInputFn,\r\n });\r\n }\r\n cbWithDedup(target, userTriggeredOnInput\r\n ? { text, isChecked, userTriggered }\r\n : { text, isChecked });\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = el.value;\r\n cbWithDedup(el, userTriggeredOnInput\r\n ? { text, isChecked: !isChecked, userTriggered: false }\r\n : { text, isChecked: !isChecked });\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = (patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype)\r\n ? Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate, loop } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n loop,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements)\r\n return () => { };\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n console.warn(`Custom element callback failed for ${name}`);\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, customElementCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n o.customElementCb = (...c) => {\r\n if (hooks.customElement) {\r\n hooks.customElement(...c);\r\n }\r\n customElementCb(...c);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n let mutationObserver;\r\n if (o.recordDOM) {\r\n mutationObserver = initMutationObserver(o, o.doc);\r\n }\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n let styleSheetObserver = () => { };\r\n let adoptedStyleSheetObserver = () => { };\r\n let styleDeclarationObserver = () => { };\r\n let fontObserver = () => { };\r\n if (o.recordDOM) {\r\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n if (o.collectFonts) {\r\n fontObserver = initFontObserver(o);\r\n }\r\n }\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver === null || mutationObserver === void 0 ? void 0 : mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nclass CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType$1.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n const rootId = e.data.node.id;\r\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\r\n this.patchRootIdOnNode(e.data.node, rootId);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType$1.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource$1.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType$1.Meta:\r\n case EventType$1.Load:\r\n case EventType$1.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType$1.Plugin: {\r\n return e;\r\n }\r\n case EventType$1.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType$1.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource$1.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\r\n rootId && this.patchRootIdOnNode(n.node, rootId);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource$1.Drag:\r\n case IncrementalSource$1.TouchMove:\r\n case IncrementalSource$1.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource$1.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource$1.MediaInteraction:\r\n case IncrementalSource$1.MouseInteraction:\r\n case IncrementalSource$1.Scroll:\r\n case IncrementalSource$1.CanvasMutation:\r\n case IncrementalSource$1.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource$1.StyleSheetRule:\r\n case IncrementalSource$1.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource$1.Font: {\r\n return e;\r\n }\r\n case IncrementalSource$1.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource$1.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror })));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n/*\n * base64-arraybuffer 1.0.1 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return args.map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs(args, win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction getNormalizedContextName(contextType) {\r\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\r\n}\r\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, true)) {\r\n const ctxName = getNormalizedContextName(contextType);\r\n if (!('__context' in this))\r\n this.__context = ctxName;\r\n if (setPreserveDrawingBufferToTrue &&\r\n ['webgl', 'webgl2'].includes(ctxName)) {\r\n if (args[0] && typeof args[0] === 'object') {\r\n const contextAttributes = args[0];\r\n if (!contextAttributes.preserveDrawingBuffer) {\r\n contextAttributes.preserveDrawingBuffer = true;\r\n }\r\n }\r\n else {\r\n args.splice(0, 1, {\r\n preserveDrawingBuffer: true,\r\n });\r\n }\r\n }\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if ('tagName' in this.canvas &&\r\n !isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n const recordArgs = serializeArgs(args, win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction funcToSource(fn, sourcemapArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var source = fn.toString();\n var lines = source.split('\\n');\n lines.pop();\n lines.shift();\n var blankPrefixLength = lines[0].search(/\\S/);\n var regex = /(['\"])__worker_loader_strict__(['\"])/g;\n for (var i = 0, n = lines.length; i < n; ++i) {\n lines[i] = lines[i].substring(blankPrefixLength).replace(regex, '$1use strict$2') + '\\n';\n }\n if (sourcemap) {\n lines.push('\\/\\/# sourceMappingURL=' + sourcemap + '\\n');\n }\n return lines;\n}\n\nfunction createURL(fn, sourcemapArg) {\n var lines = funcToSource(fn, sourcemapArg);\n var blob = new Blob(lines, { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createInlineWorkerFactory(fn, sourcemapArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(fn, sourcemapArg);\n return new Worker(url, options);\n };\n}\n\nvar WorkerFactory = createInlineWorkerFactory(/* rollup-plugin-web-worker-loader */function () {\n(function () {\n '__worker_loader_strict__';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\n\n /*\n * base64-arraybuffer 1.0.1 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n var encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n };\n\n const lastBlobMap = new Map();\r\n const transparentBlobMap = new Map();\r\n function getTransparentBlobFor(width, height, dataURLOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const id = `${width}-${height}`;\r\n if ('OffscreenCanvas' in globalThis) {\r\n if (transparentBlobMap.has(id))\r\n return transparentBlobMap.get(id);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n offscreen.getContext('2d');\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n transparentBlobMap.set(id, base64);\r\n return base64;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n }\r\n const worker = self;\r\n worker.onmessage = function (e) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if ('OffscreenCanvas' in globalThis) {\r\n const { id, bitmap, width, height, dataURLOptions } = e.data;\r\n const transparentBase64 = getTransparentBlobFor(width, height, dataURLOptions);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n const ctx = offscreen.getContext('2d');\r\n ctx.drawImage(bitmap, 0, 0);\r\n bitmap.close();\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const type = blob.type;\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n if (!lastBlobMap.has(id) && (yield transparentBase64) === base64) {\r\n lastBlobMap.set(id, base64);\r\n return worker.postMessage({ id });\r\n }\r\n if (lastBlobMap.get(id) === base64)\r\n return worker.postMessage({ id });\r\n worker.postMessage({\r\n id,\r\n type,\r\n base64,\r\n width,\r\n height,\r\n });\r\n lastBlobMap.set(id, base64);\r\n }\r\n else {\r\n return worker.postMessage({ id: e.data.id });\r\n }\r\n });\r\n };\n\n})();\n}, null);\n\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\r\n dataURLOptions,\r\n });\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, true);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n if (canvas.width === 0 || canvas.height === 0)\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const rest = __rest(value, [\"type\"]);\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nclass ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n requestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: nowTimestamp() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordDOM = true, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : { password: true };\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType$1.FullSnapshot &&\r\n !(e.type === EventType$1.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource$1.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType$1.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType$1.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource$1.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n canvasManager = new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n if (!recordDOM) {\r\n return;\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n }), isCheckout);\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n var _a;\r\n return callbackWrapper(initObservers)({\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Selection }, p),\r\n }));\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.CustomElement }, c),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordDOM,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType$1.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.DomContentLoaded,\r\n data: {},\r\n }));\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Load,\r\n data: {},\r\n }));\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n recording = false;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\n\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\n\nvar Config = {\n DEBUG: false,\n LIB_VERSION: '2.55.1'\n};\n\n/* eslint camelcase: \"off\", eqeqeq: \"off\" */\n\n// since es6 imports are static and we run unit tests from the console, window won't be defined when importing this file\nvar win;\nif (typeof(window) === 'undefined') {\n var loc = {\n hostname: ''\n };\n win = {\n navigator: { userAgent: '', onLine: true },\n document: {\n location: loc,\n referrer: ''\n },\n screen: { width: 0, height: 0 },\n location: loc\n };\n} else {\n win = window;\n}\n\n// Maximum allowed session recording length\nvar MAX_RECORDING_MS = 24 * 60 * 60 * 1000; // 24 hours\n// Maximum allowed value for minimum session recording length\nvar MAX_VALUE_FOR_MIN_RECORDING_MS = 8 * 1000; // 8 seconds\n\n/*\n * Saved references to long variable names, so that closure compiler can\n * minimize file size.\n */\n\nvar ArrayProto = Array.prototype,\n FuncProto = Function.prototype,\n ObjProto = Object.prototype,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty,\n windowConsole = win.console,\n navigator = win.navigator,\n document$1 = win.document,\n windowOpera = win.opera,\n screen = win.screen,\n userAgent = navigator.userAgent;\n\nvar nativeBind = FuncProto.bind,\n nativeForEach = ArrayProto.forEach,\n nativeIndexOf = ArrayProto.indexOf,\n nativeMap = ArrayProto.map,\n nativeIsArray = Array.isArray,\n breaker = {};\n\nvar _ = {\n trim: function(str) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n};\n\n// Console override\nvar console$1 = {\n /** @type {function(...*)} */\n log: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n try {\n windowConsole.log.apply(windowConsole, arguments);\n } catch (err) {\n _.each(arguments, function(arg) {\n windowConsole.log(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n warn: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel warning:'].concat(_.toArray(arguments));\n try {\n windowConsole.warn.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.warn(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n error: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel error:'].concat(_.toArray(arguments));\n try {\n windowConsole.error.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.error(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n critical: function() {\n if (!_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel error:'].concat(_.toArray(arguments));\n try {\n windowConsole.error.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.error(arg);\n });\n }\n }\n }\n};\n\nvar log_func_with_prefix = function(func, prefix) {\n return function() {\n arguments[0] = '[' + prefix + '] ' + arguments[0];\n return func.apply(console$1, arguments);\n };\n};\nvar console_with_prefix = function(prefix) {\n return {\n log: log_func_with_prefix(console$1.log, prefix),\n error: log_func_with_prefix(console$1.error, prefix),\n critical: log_func_with_prefix(console$1.critical, prefix)\n };\n};\n\n\n// UNDERSCORE\n// Embed part of the Underscore Library\n_.bind = function(func, context) {\n var args, bound;\n if (nativeBind && func.bind === nativeBind) {\n return nativeBind.apply(func, slice.call(arguments, 1));\n }\n if (!_.isFunction(func)) {\n throw new TypeError();\n }\n args = slice.call(arguments, 2);\n bound = function() {\n if (!(this instanceof bound)) {\n return func.apply(context, args.concat(slice.call(arguments)));\n }\n var ctor = {};\n ctor.prototype = func.prototype;\n var self = new ctor();\n ctor.prototype = null;\n var result = func.apply(self, args.concat(slice.call(arguments)));\n if (Object(result) === result) {\n return result;\n }\n return self;\n };\n return bound;\n};\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} context\n */\n_.each = function(obj, iterator, context) {\n if (obj === null || obj === undefined) {\n return;\n }\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context);\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) {\n return;\n }\n }\n } else {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(context, obj[key], key, obj) === breaker) {\n return;\n }\n }\n }\n }\n};\n\n_.extend = function(obj) {\n _.each(slice.call(arguments, 1), function(source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop];\n }\n }\n });\n return obj;\n};\n\n_.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n};\n\n// from a comment on http://dbj.org/dbj/?p=286\n// fails on only one very rare and deliberate custom object:\n// var bomb = { toString : undefined, valueOf: function(o) { return \"function BOMBA!\"; }};\n_.isFunction = function(f) {\n try {\n return /^\\s*\\bfunction\\b/.test(f);\n } catch (x) {\n return false;\n }\n};\n\n_.isArguments = function(obj) {\n return !!(obj && hasOwnProperty.call(obj, 'callee'));\n};\n\n_.toArray = function(iterable) {\n if (!iterable) {\n return [];\n }\n if (iterable.toArray) {\n return iterable.toArray();\n }\n if (_.isArray(iterable)) {\n return slice.call(iterable);\n }\n if (_.isArguments(iterable)) {\n return slice.call(iterable);\n }\n return _.values(iterable);\n};\n\n_.map = function(arr, callback, context) {\n if (nativeMap && arr.map === nativeMap) {\n return arr.map(callback, context);\n } else {\n var results = [];\n _.each(arr, function(item) {\n results.push(callback.call(context, item));\n });\n return results;\n }\n};\n\n_.keys = function(obj) {\n var results = [];\n if (obj === null) {\n return results;\n }\n _.each(obj, function(value, key) {\n results[results.length] = key;\n });\n return results;\n};\n\n_.values = function(obj) {\n var results = [];\n if (obj === null) {\n return results;\n }\n _.each(obj, function(value) {\n results[results.length] = value;\n });\n return results;\n};\n\n_.include = function(obj, target) {\n var found = false;\n if (obj === null) {\n return found;\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1;\n }\n _.each(obj, function(value) {\n if (found || (found = (value === target))) {\n return breaker;\n }\n });\n return found;\n};\n\n_.includes = function(str, needle) {\n return str.indexOf(needle) !== -1;\n};\n\n// Underscore Addons\n_.inherit = function(subclass, superclass) {\n subclass.prototype = new superclass();\n subclass.prototype.constructor = subclass;\n subclass.superclass = superclass.prototype;\n return subclass;\n};\n\n_.isObject = function(obj) {\n return (obj === Object(obj) && !_.isArray(obj));\n};\n\n_.isEmptyObject = function(obj) {\n if (_.isObject(obj)) {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n\n_.isUndefined = function(obj) {\n return obj === void 0;\n};\n\n_.isString = function(obj) {\n return toString.call(obj) == '[object String]';\n};\n\n_.isDate = function(obj) {\n return toString.call(obj) == '[object Date]';\n};\n\n_.isNumber = function(obj) {\n return toString.call(obj) == '[object Number]';\n};\n\n_.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n};\n\n_.encodeDates = function(obj) {\n _.each(obj, function(v, k) {\n if (_.isDate(v)) {\n obj[k] = _.formatDate(v);\n } else if (_.isObject(v)) {\n obj[k] = _.encodeDates(v); // recurse\n }\n });\n return obj;\n};\n\n_.timestamp = function() {\n Date.now = Date.now || function() {\n return +new Date;\n };\n return Date.now();\n};\n\n_.formatDate = function(d) {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n) {\n return n < 10 ? '0' + n : n;\n }\n return d.getUTCFullYear() + '-' +\n pad(d.getUTCMonth() + 1) + '-' +\n pad(d.getUTCDate()) + 'T' +\n pad(d.getUTCHours()) + ':' +\n pad(d.getUTCMinutes()) + ':' +\n pad(d.getUTCSeconds());\n};\n\n_.strip_empty_properties = function(p) {\n var ret = {};\n _.each(p, function(v, k) {\n if (_.isString(v) && v.length > 0) {\n ret[k] = v;\n }\n });\n return ret;\n};\n\n/*\n * this function returns a copy of object after truncating it. If\n * passed an Array or Object it will iterate through obj and\n * truncate all the values recursively.\n */\n_.truncate = function(obj, length) {\n var ret;\n\n if (typeof(obj) === 'string') {\n ret = obj.slice(0, length);\n } else if (_.isArray(obj)) {\n ret = [];\n _.each(obj, function(val) {\n ret.push(_.truncate(val, length));\n });\n } else if (_.isObject(obj)) {\n ret = {};\n _.each(obj, function(val, key) {\n ret[key] = _.truncate(val, length);\n });\n } else {\n ret = obj;\n }\n\n return ret;\n};\n\n_.JSONEncode = (function() {\n return function(mixed_val) {\n var value = mixed_val;\n var quote = function(string) {\n var escapable = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g; // eslint-disable-line no-control-regex\n var meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n };\n\n escapable.lastIndex = 0;\n return escapable.test(string) ?\n '\"' + string.replace(escapable, function(a) {\n var c = meta[a];\n return typeof c === 'string' ? c :\n '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' :\n '\"' + string + '\"';\n };\n\n var str = function(key, holder) {\n var gap = '';\n var indent = ' ';\n var i = 0; // The loop counter.\n var k = ''; // The member key.\n var v = ''; // The member value.\n var length = 0;\n var mind = gap;\n var partial = [];\n var value = holder[key];\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n // What happens next depends on the value's type.\n switch (typeof value) {\n case 'string':\n return quote(value);\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n\n return String(value);\n\n case 'object':\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null';\n }\n\n // Make an array to hold the partial results of stringifying this object value.\n gap += indent;\n partial = [];\n\n // Is the value an array?\n if (toString.apply(value) === '[object Array]') {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n v = partial.length === 0 ? '[]' :\n gap ? '[\\n' + gap +\n partial.join(',\\n' + gap) + '\\n' +\n mind + ']' :\n '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n // Iterate through all of the keys in the object.\n for (k in value) {\n if (hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n\n // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n v = partial.length === 0 ? '{}' :\n gap ? '{' + partial.join(',') + '' +\n mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n };\n\n // Make a fake root object containing our value under the key of ''.\n // Return the result of stringifying the value.\n return str('', {\n '': value\n });\n };\n})();\n\n/**\n * From https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js\n * Slightly modified to throw a real Error rather than a POJO\n */\n_.JSONDecode = (function() {\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t'\n },\n text,\n error = function(m) {\n var e = new SyntaxError(m);\n e.at = at;\n e.text = text;\n throw e;\n },\n next = function(c) {\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== ch) {\n error('Expected \\'' + c + '\\' instead of \\'' + ch + '\\'');\n }\n // Get the next character. When there are no more characters,\n // return the empty string.\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function() {\n // Parse a number value.\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n return number;\n }\n },\n\n string = function() {\n // Parse a string value.\n var hex,\n i,\n string = '',\n uffff;\n // When parsing for string values, we must look for \" and \\ characters.\n if (ch === '\"') {\n while (next()) {\n if (ch === '\"') {\n next();\n return string;\n }\n if (ch === '\\\\') {\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n } else {\n string += ch;\n }\n }\n }\n error('Bad string');\n },\n white = function() {\n // Skip whitespace.\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function() {\n // true, false, or null.\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error('Unexpected \"' + ch + '\"');\n },\n value, // Placeholder for the value function.\n array = function() {\n // Parse an array value.\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function() {\n // Parse an object value.\n var key,\n object = {};\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (Object.hasOwnProperty.call(object, key)) {\n error('Duplicate key \"' + key + '\"');\n }\n object[key] = value();\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function() {\n // Parse a JSON value. It could be an object, an array, a string,\n // a number, or a word.\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the\n // above functions and variables.\n return function(source) {\n var result;\n\n text = source;\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n return result;\n };\n})();\n\n_.base64Encode = function(data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = '',\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data = _.utf8Encode(data);\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n\n return enc;\n};\n\n_.utf8Encode = function(string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n var utftext = '',\n start,\n end;\n var stringl = 0,\n n;\n\n start = end = 0;\n stringl = string.length;\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n\n if (c1 < 128) {\n end++;\n } else if ((c1 > 127) && (c1 < 2048)) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length);\n }\n\n return utftext;\n};\n\n_.UUID = (function() {\n\n // Time-based entropy\n var T = function() {\n var time = 1 * new Date(); // cross-browser version of Date.now()\n var ticks;\n if (win.performance && win.performance.now) {\n ticks = win.performance.now();\n } else {\n // fall back to busy loop\n ticks = 0;\n\n // this while loop figures how many browser ticks go by\n // before 1*new Date() returns a new number, ie the amount\n // of ticks that go by per millisecond\n while (time == 1 * new Date()) {\n ticks++;\n }\n }\n return time.toString(16) + Math.floor(ticks).toString(16);\n };\n\n // Math.Random entropy\n var R = function() {\n return Math.random().toString(16).replace('.', '');\n };\n\n // User agent entropy\n // This function takes the user agent string, and then xors\n // together each sequence of 8 bytes. This produces a final\n // sequence of 8 bytes which it returns as hex.\n var UA = function() {\n var ua = userAgent,\n i, ch, buffer = [],\n ret = 0;\n\n function xor(result, byte_array) {\n var j, tmp = 0;\n for (j = 0; j < byte_array.length; j++) {\n tmp |= (buffer[j] << j * 8);\n }\n return result ^ tmp;\n }\n\n for (i = 0; i < ua.length; i++) {\n ch = ua.charCodeAt(i);\n buffer.unshift(ch & 0xFF);\n if (buffer.length >= 4) {\n ret = xor(ret, buffer);\n buffer = [];\n }\n }\n\n if (buffer.length > 0) {\n ret = xor(ret, buffer);\n }\n\n return ret.toString(16);\n };\n\n return function() {\n var se = (screen.height * screen.width).toString(16);\n return (T() + '-' + R() + '-' + UA() + '-' + se + '-' + T());\n };\n})();\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false tracking data\nvar BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'ahrefssiteaudit',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'chrome-lighthouse',\n 'facebookexternal',\n 'petalbot',\n 'pinterest',\n 'screaming frog',\n 'yahoo! slurp',\n 'yandexbot',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google'\n];\n_.isBlockedUA = function(ua) {\n var i;\n ua = ua.toLowerCase();\n for (i = 0; i < BLOCKED_UA_STRS.length; i++) {\n if (ua.indexOf(BLOCKED_UA_STRS[i]) !== -1) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {Object=} formdata\n * @param {string=} arg_separator\n */\n_.HTTPBuildQuery = function(formdata, arg_separator) {\n var use_val, use_key, tmp_arr = [];\n\n if (_.isUndefined(arg_separator)) {\n arg_separator = '&';\n }\n\n _.each(formdata, function(val, key) {\n use_val = encodeURIComponent(val.toString());\n use_key = encodeURIComponent(key);\n tmp_arr[tmp_arr.length] = use_key + '=' + use_val;\n });\n\n return tmp_arr.join(arg_separator);\n};\n\n_.getQueryParam = function(url, param) {\n // Expects a raw URL\n\n param = param.replace(/[[]/g, '\\\\[').replace(/[\\]]/g, '\\\\]');\n var regexS = '[\\\\?&]' + param + '=([^&#]*)',\n regex = new RegExp(regexS),\n results = regex.exec(url);\n if (results === null || (results && typeof(results[1]) !== 'string' && results[1].length)) {\n return '';\n } else {\n var result = results[1];\n try {\n result = decodeURIComponent(result);\n } catch(err) {\n console$1.error('Skipping decoding for malformed query param: ' + result);\n }\n return result.replace(/\\+/g, ' ');\n }\n};\n\n\n// _.cookie\n// Methods partially borrowed from quirksmode.org/js/cookies.html\n_.cookie = {\n get: function(name) {\n var nameEQ = name + '=';\n var ca = document$1.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n }\n return null;\n },\n\n parse: function(name) {\n var cookie;\n try {\n cookie = _.JSONDecode(_.cookie.get(name)) || {};\n } catch (err) {\n // noop\n }\n return cookie;\n },\n\n set_seconds: function(name, value, seconds, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '',\n expires = '',\n secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (seconds) {\n var date = new Date();\n date.setTime(date.getTime() + (seconds * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n document$1.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n },\n\n set: function(name, value, days, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '', expires = '', secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n var new_cookie_val = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n document$1.cookie = new_cookie_val;\n return new_cookie_val;\n },\n\n remove: function(name, is_cross_subdomain, domain_override) {\n _.cookie.set(name, '', -1, is_cross_subdomain, false, false, domain_override);\n }\n};\n\nvar _localStorageSupported = null;\nvar localStorageSupported = function(storage, forceCheck) {\n if (_localStorageSupported !== null && !forceCheck) {\n return _localStorageSupported;\n }\n\n var supported = true;\n try {\n storage = storage || window.localStorage;\n var key = '__mplss_' + cheap_guid(8),\n val = 'xyz';\n storage.setItem(key, val);\n if (storage.getItem(key) !== val) {\n supported = false;\n }\n storage.removeItem(key);\n } catch (err) {\n supported = false;\n }\n\n _localStorageSupported = supported;\n return supported;\n};\n\n// _.localStorage\n_.localStorage = {\n is_supported: function(force_check) {\n var supported = localStorageSupported(null, force_check);\n if (!supported) {\n console$1.error('localStorage unsupported; falling back to cookie store');\n }\n return supported;\n },\n\n error: function(msg) {\n console$1.error('localStorage error: ' + msg);\n },\n\n get: function(name) {\n try {\n return window.localStorage.getItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n return null;\n },\n\n parse: function(name) {\n try {\n return _.JSONDecode(_.localStorage.get(name)) || {};\n } catch (err) {\n // noop\n }\n return null;\n },\n\n set: function(name, value) {\n try {\n window.localStorage.setItem(name, value);\n } catch (err) {\n _.localStorage.error(err);\n }\n },\n\n remove: function(name) {\n try {\n window.localStorage.removeItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n }\n};\n\n_.register_event = (function() {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from Mixpanel\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n var register_event = function(element, type, handler, oldSchool, useCapture) {\n if (!element) {\n console$1.error('No valid element provided to register_event');\n return;\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture);\n } else {\n var ontype = 'on' + type;\n var old_handler = element[ontype]; // can be undefined\n element[ontype] = makeHandler(element, handler, old_handler);\n }\n };\n\n function makeHandler(element, new_handler, old_handlers) {\n var handler = function(event) {\n event = event || fixEvent(window.event);\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined;\n }\n\n var ret = true;\n var old_result, new_result;\n\n if (_.isFunction(old_handlers)) {\n old_result = old_handlers(event);\n }\n new_result = new_handler.call(element, event);\n\n if ((false === old_result) || (false === new_result)) {\n ret = false;\n }\n\n return ret;\n };\n\n return handler;\n }\n\n function fixEvent(event) {\n if (event) {\n event.preventDefault = fixEvent.preventDefault;\n event.stopPropagation = fixEvent.stopPropagation;\n }\n return event;\n }\n fixEvent.preventDefault = function() {\n this.returnValue = false;\n };\n fixEvent.stopPropagation = function() {\n this.cancelBubble = true;\n };\n\n return register_event;\n})();\n\n\nvar TOKEN_MATCH_REGEX = new RegExp('^(\\\\w*)\\\\[(\\\\w+)([=~\\\\|\\\\^\\\\$\\\\*]?)=?\"?([^\\\\]\"]*)\"?\\\\]$');\n\n_.dom_query = (function() {\n /* document.getElementsBySelector(selector)\n - returns an array of element objects from the current document\n matching the CSS selector. Selectors can contain element names,\n class names and ids and can be nested. For example:\n\n elements = document.getElementsBySelector('div#main p a.external')\n\n Will return an array of all 'a' elements with 'external' in their\n class attribute that are contained inside 'p' elements that are\n contained inside the 'div' element which has id=\"main\"\n\n New in version 0.4: Support for CSS2 and CSS3 attribute selectors:\n See http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\n Version 0.4 - Simon Willison, March 25th 2003\n -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows\n -- Opera 7 fails\n\n Version 0.5 - Carl Sverre, Jan 7th 2013\n -- Now uses jQuery-esque `hasClass` for testing class name\n equality. This fixes a bug related to '-' characters being\n considered not part of a 'word' in regex.\n */\n\n function getAllChildren(e) {\n // Returns all children of element. Workaround required for IE5/Windows. Ugh.\n return e.all ? e.all : e.getElementsByTagName('*');\n }\n\n var bad_whitespace = /[\\t\\r\\n]/g;\n\n function hasClass(elem, selector) {\n var className = ' ' + selector + ' ';\n return ((' ' + elem.className + ' ').replace(bad_whitespace, ' ').indexOf(className) >= 0);\n }\n\n function getElementsBySelector(selector) {\n // Attempt to fail gracefully in lesser browsers\n if (!document$1.getElementsByTagName) {\n return [];\n }\n // Split selector in to tokens\n var tokens = selector.split(' ');\n var token, bits, tagName, found, foundCount, i, j, k, elements, currentContextIndex;\n var currentContext = [document$1];\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i].replace(/^\\s+/, '').replace(/\\s+$/, '');\n if (token.indexOf('#') > -1) {\n // Token is an ID selector\n bits = token.split('#');\n tagName = bits[0];\n var id = bits[1];\n var element = document$1.getElementById(id);\n if (!element || (tagName && element.nodeName.toLowerCase() != tagName)) {\n // element not found or tag with that ID not found, return false\n return [];\n }\n // Set currentContext to contain just this element\n currentContext = [element];\n continue; // Skip to next token\n }\n if (token.indexOf('.') > -1) {\n // Token contains a class selector\n bits = token.split('.');\n tagName = bits[0];\n var className = bits[1];\n if (!tagName) {\n tagName = '*';\n }\n // Get elements matching tag, filter them for class selector\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (found[j].className &&\n _.isString(found[j].className) && // some SVG elements have classNames which are not strings\n hasClass(found[j], className)\n ) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n continue; // Skip to next token\n }\n // Code to deal with attribute selectors\n var token_match = token.match(TOKEN_MATCH_REGEX);\n if (token_match) {\n tagName = token_match[1];\n var attrName = token_match[2];\n var attrOperator = token_match[3];\n var attrValue = token_match[4];\n if (!tagName) {\n tagName = '*';\n }\n // Grab all of the tagName elements within current context\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n var checkFunction; // This function will be used to filter the elements\n switch (attrOperator) {\n case '=': // Equality\n checkFunction = function(e) {\n return (e.getAttribute(attrName) == attrValue);\n };\n break;\n case '~': // Match one of space seperated words\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('\\\\b' + attrValue + '\\\\b')));\n };\n break;\n case '|': // Match start with value followed by optional hyphen\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('^' + attrValue + '-?')));\n };\n break;\n case '^': // Match starts with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) === 0);\n };\n break;\n case '$': // Match ends with value - fails with \"Warning\" in Opera 7\n checkFunction = function(e) {\n return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length);\n };\n break;\n case '*': // Match ends with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) > -1);\n };\n break;\n default:\n // Just test for existence of attribute\n checkFunction = function(e) {\n return e.getAttribute(attrName);\n };\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (checkFunction(found[j])) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);\n continue; // Skip to next token\n }\n // If we get here, token is JUST an element (not a class or ID selector)\n tagName = token;\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n elements = currentContext[j].getElementsByTagName(tagName);\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = found;\n }\n return currentContext;\n }\n\n return function(query) {\n if (_.isElement(query)) {\n return [query];\n } else if (_.isObject(query) && !_.isUndefined(query.length)) {\n return query;\n } else {\n return getElementsBySelector.call(this, query);\n }\n };\n})();\n\nvar CAMPAIGN_KEYWORDS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term', 'utm_id', 'utm_source_platform','utm_campaign_id', 'utm_creative_format', 'utm_marketing_tactic'];\nvar CLICK_IDS = ['dclid', 'fbclid', 'gclid', 'ko_click_id', 'li_fat_id', 'msclkid', 'sccid', 'ttclid', 'twclid', 'wbraid'];\n\n_.info = {\n campaignParams: function(default_value) {\n var kw = '',\n params = {};\n _.each(CAMPAIGN_KEYWORDS, function(kwkey) {\n kw = _.getQueryParam(document$1.URL, kwkey);\n if (kw.length) {\n params[kwkey] = kw;\n } else if (default_value !== undefined) {\n params[kwkey] = default_value;\n }\n });\n\n return params;\n },\n\n clickParams: function() {\n var id = '',\n params = {};\n _.each(CLICK_IDS, function(idkey) {\n id = _.getQueryParam(document$1.URL, idkey);\n if (id.length) {\n params[idkey] = id;\n }\n });\n\n return params;\n },\n\n marketingParams: function() {\n return _.extend(_.info.campaignParams(), _.info.clickParams());\n },\n\n searchEngine: function(referrer) {\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google';\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing';\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo';\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo';\n } else {\n return null;\n }\n },\n\n searchInfo: function(referrer) {\n var search = _.info.searchEngine(referrer),\n param = (search != 'yahoo') ? 'q' : 'p',\n ret = {};\n\n if (search !== null) {\n ret['$search_engine'] = search;\n\n var keyword = _.getQueryParam(referrer, param);\n if (keyword.length) {\n ret['mp_keyword'] = keyword;\n }\n }\n\n return ret;\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function(user_agent, vendor, opera) {\n vendor = vendor || ''; // vendor is undefined for at least IE9\n if (opera || _.includes(user_agent, ' OPR/')) {\n if (_.includes(user_agent, 'Mini')) {\n return 'Opera Mini';\n }\n return 'Opera';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (_.includes(user_agent, 'IEMobile') || _.includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile';\n } else if (_.includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet';\n } else if (_.includes(user_agent, 'Edge') || _.includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge';\n } else if (_.includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile';\n } else if (_.includes(user_agent, 'Chrome')) {\n return 'Chrome';\n } else if (_.includes(user_agent, 'CriOS')) {\n return 'Chrome iOS';\n } else if (_.includes(user_agent, 'UCWEB') || _.includes(user_agent, 'UCBrowser')) {\n return 'UC Browser';\n } else if (_.includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS';\n } else if (_.includes(vendor, 'Apple')) {\n if (_.includes(user_agent, 'Mobile')) {\n return 'Mobile Safari';\n }\n return 'Safari';\n } else if (_.includes(user_agent, 'Android')) {\n return 'Android Mobile';\n } else if (_.includes(user_agent, 'Konqueror')) {\n return 'Konqueror';\n } else if (_.includes(user_agent, 'Firefox')) {\n return 'Firefox';\n } else if (_.includes(user_agent, 'MSIE') || _.includes(user_agent, 'Trident/')) {\n return 'Internet Explorer';\n } else if (_.includes(user_agent, 'Gecko')) {\n return 'Mozilla';\n } else {\n return '';\n }\n },\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n */\n browserVersion: function(userAgent, vendor, opera) {\n var browser = _.info.browser(userAgent, vendor, opera);\n var versionRegexs = {\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\n 'Chrome': /Chrome\\/(\\d+(\\.\\d+)?)/,\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\n 'UC Browser' : /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\n 'Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Opera': /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\n 'Firefox': /Firefox\\/(\\d+(\\.\\d+)?)/,\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\n 'Konqueror': /Konqueror:(\\d+(\\.\\d+)?)/,\n 'BlackBerry': /BlackBerry (\\d+(\\.\\d+)?)/,\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\n 'Mozilla': /rv:(\\d+(\\.\\d+)?)/\n };\n var regex = versionRegexs[browser];\n if (regex === undefined) {\n return null;\n }\n var matches = userAgent.match(regex);\n if (!matches) {\n return null;\n }\n return parseFloat(matches[matches.length - 2]);\n },\n\n os: function() {\n var a = userAgent;\n if (/Windows/i.test(a)) {\n if (/Phone/.test(a) || /WPDesktop/.test(a)) {\n return 'Windows Phone';\n }\n return 'Windows';\n } else if (/(iPhone|iPad|iPod)/.test(a)) {\n return 'iOS';\n } else if (/Android/.test(a)) {\n return 'Android';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {\n return 'BlackBerry';\n } else if (/Mac/i.test(a)) {\n return 'Mac OS X';\n } else if (/Linux/.test(a)) {\n return 'Linux';\n } else if (/CrOS/.test(a)) {\n return 'Chrome OS';\n } else {\n return '';\n }\n },\n\n device: function(user_agent) {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone';\n } else if (/iPad/.test(user_agent)) {\n return 'iPad';\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch';\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (/Android/.test(user_agent)) {\n return 'Android';\n } else {\n return '';\n }\n },\n\n referringDomain: function(referrer) {\n var split = referrer.split('/');\n if (split.length >= 3) {\n return split[2];\n }\n return '';\n },\n\n currentUrl: function() {\n return win.location.href;\n },\n\n properties: function(extra_props) {\n if (typeof extra_props !== 'object') {\n extra_props = {};\n }\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera),\n '$referrer': document$1.referrer,\n '$referring_domain': _.info.referringDomain(document$1.referrer),\n '$device': _.info.device(userAgent)\n }), {\n '$current_url': _.info.currentUrl(),\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera),\n '$screen_height': screen.height,\n '$screen_width': screen.width,\n 'mp_lib': 'web',\n '$lib_version': Config.LIB_VERSION,\n '$insert_id': cheap_guid(),\n 'time': _.timestamp() / 1000 // epoch time in seconds\n }, _.strip_empty_properties(extra_props));\n },\n\n people_properties: function() {\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera)\n }), {\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera)\n });\n },\n\n mpPageViewProperties: function() {\n return _.strip_empty_properties({\n 'current_page_title': document$1.title,\n 'current_domain': win.location.hostname,\n 'current_url_path': win.location.pathname,\n 'current_url_protocol': win.location.protocol,\n 'current_url_search': win.location.search\n });\n }\n};\n\nvar cheap_guid = function(maxlen) {\n var guid = Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10);\n return maxlen ? guid.substring(0, maxlen) : guid;\n};\n\n// naive way to extract domain name (example.com) from full hostname (my.sub.example.com)\nvar SIMPLE_DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]*\\.[a-z]+$/i;\n// this next one attempts to account for some ccSLDs, e.g. extracting oxford.ac.uk from www.oxford.ac.uk\nvar DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z.]{2,6}$/i;\n/**\n * Attempts to extract main domain name from full hostname, using a few blunt heuristics. For\n * common TLDs like .com/.org that always have a simple SLD.TLD structure (example.com), we\n * simply extract the last two .-separated parts of the hostname (SIMPLE_DOMAIN_MATCH_REGEX).\n * For others, we attempt to account for short ccSLD+TLD combos (.ac.uk) with the legacy\n * DOMAIN_MATCH_REGEX (kept to maintain backwards compatibility with existing Mixpanel\n * integrations). The only _reliable_ way to extract domain from hostname is with an up-to-date\n * list like at https://publicsuffix.org/ so for cases that this helper fails at, the SDK\n * offers the 'cookie_domain' config option to set it explicitly.\n * @example\n * extract_domain('my.sub.example.com')\n * // 'example.com'\n */\nvar extract_domain = function(hostname) {\n var domain_regex = DOMAIN_MATCH_REGEX;\n var parts = hostname.split('.');\n var tld = parts[parts.length - 1];\n if (tld.length > 4 || tld === 'com' || tld === 'org') {\n domain_regex = SIMPLE_DOMAIN_MATCH_REGEX;\n }\n var matches = hostname.match(domain_regex);\n return matches ? matches[0] : '';\n};\n\n/**\n * Check whether we have network connection. default to true for browsers that don't support navigator.onLine (IE)\n * @returns {boolean}\n */\nvar isOnline = function() {\n var onLine = win.navigator['onLine'];\n return _.isUndefined(onLine) || onLine;\n};\n\nvar JSONStringify = null, JSONParse = null;\nif (typeof JSON !== 'undefined') {\n JSONStringify = JSON.stringify;\n JSONParse = JSON.parse;\n}\nJSONStringify = JSONStringify || _.JSONEncode;\nJSONParse = JSONParse || _.JSONDecode;\n\n// EXPORTS (for closure compiler)\n_['toArray'] = _.toArray;\n_['isObject'] = _.isObject;\n_['JSONEncode'] = _.JSONEncode;\n_['JSONDecode'] = _.JSONDecode;\n_['isBlockedUA'] = _.isBlockedUA;\n_['isEmptyObject'] = _.isEmptyObject;\n_['info'] = _.info;\n_['info']['device'] = _.info.device;\n_['info']['browser'] = _.info.browser;\n_['info']['browserVersion'] = _.info.browserVersion;\n_['info']['properties'] = _.info.properties;\n\n/**\n * GDPR utils\n *\n * The General Data Protection Regulation (GDPR) is a regulation in EU law on data protection\n * and privacy for all individuals within the European Union. It addresses the export of personal\n * data outside the EU. The GDPR aims primarily to give control back to citizens and residents\n * over their personal data and to simplify the regulatory environment for international business\n * by unifying the regulation within the EU.\n *\n * This set of utilities is intended to enable opt in/out functionality in the Mixpanel JS SDK.\n * These functions are used internally by the SDK and are not intended to be publicly exposed.\n */\n\n/**\n * A function used to track a Mixpanel event (e.g. MixpanelLib.track)\n * @callback trackFunction\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n */\n\n/** Public **/\n\nvar GDPR_DEFAULT_PERSISTENCE_PREFIX = '__mp_opt_in_out_';\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction optIn(token, options) {\n _optInOut(true, token, options);\n}\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-out cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-out cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-out cookie is set as secure or not\n */\nfunction optOut(token, options) {\n _optInOut(false, token, options);\n}\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} whether the user has opted in to the given opt type\n */\nfunction hasOptedIn(token, options) {\n return _getStorageValue(token, options) === '1';\n}\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the user has opted out of the given opt type\n */\nfunction hasOptedOut(token, options) {\n if (_hasDoNotTrackFlagOn(options)) {\n console$1.warn('This browser has \"Do Not Track\" enabled. This will prevent the Mixpanel SDK from sending any data. To ignore the \"Do Not Track\" browser setting, initialize the Mixpanel instance with the config \"ignore_dnt: true\"');\n return true;\n }\n var optedOut = _getStorageValue(token, options) === '0';\n if (optedOut) {\n console$1.warn('You are opted out of Mixpanel tracking. This will prevent the Mixpanel SDK from sending any data.');\n }\n return optedOut;\n}\n\n/**\n * Wrap a MixpanelLib method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelLib(method) {\n return _addOptOutCheck(method, function(name) {\n return this.get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelPeople method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelPeople(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelGroup method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelGroup(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction clearOptInOut(token, options) {\n options = options || {};\n _getStorage(options).remove(\n _getStorageKey(token, options), !!options.crossSubdomainCookie, options.cookieDomain\n );\n}\n\n/** Private **/\n\n/**\n * Get storage util\n * @param {Object} [options]\n * @param {string} [options.persistenceType]\n * @returns {object} either _.cookie or _.localstorage\n */\nfunction _getStorage(options) {\n options = options || {};\n return options.persistenceType === 'localStorage' ? _.localStorage : _.cookie;\n}\n\n/**\n * Get the name of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the name of the cookie for the given opt type\n */\nfunction _getStorageKey(token, options) {\n options = options || {};\n return (options.persistencePrefix || GDPR_DEFAULT_PERSISTENCE_PREFIX) + token;\n}\n\n/**\n * Get the value of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the value of the cookie for the given opt type\n */\nfunction _getStorageValue(token, options) {\n return _getStorage(options).get(_getStorageKey(token, options));\n}\n\n/**\n * Check whether the user has set the DNT/doNotTrack setting to true in their browser\n * @param {Object} [options]\n * @param {string} [options.window] - alternate window object to check; used to force various DNT settings in browser tests\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the DNT setting is true\n */\nfunction _hasDoNotTrackFlagOn(options) {\n if (options && options.ignoreDnt) {\n return false;\n }\n var win$1 = (options && options.window) || win;\n var nav = win$1['navigator'] || {};\n var hasDntOn = false;\n\n _.each([\n nav['doNotTrack'], // standard\n nav['msDoNotTrack'],\n win$1['doNotTrack']\n ], function(dntValue) {\n if (_.includes([true, 1, '1', 'yes'], dntValue)) {\n hasDntOn = true;\n }\n });\n\n return hasDntOn;\n}\n\n/**\n * Set cookie/localstorage for the user indicating that they are opted in or out for the given opt type\n * @param {boolean} optValue - whether to opt the user in or out for the given opt type\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction _optInOut(optValue, token, options) {\n if (!_.isString(token) || !token.length) {\n console$1.error('gdpr.' + (optValue ? 'optIn' : 'optOut') + ' called with an invalid token');\n return;\n }\n\n options = options || {};\n\n _getStorage(options).set(\n _getStorageKey(token, options),\n optValue ? 1 : 0,\n _.isNumber(options.cookieExpiration) ? options.cookieExpiration : null,\n !!options.crossSubdomainCookie,\n !!options.secureCookie,\n !!options.crossSiteCookie,\n options.cookieDomain\n );\n\n if (options.track && optValue) { // only track event if opting in (optValue=true)\n options.track(options.trackEventName || '$opt_in', options.trackProperties, {\n 'send_immediately': true\n });\n }\n}\n\n/**\n * Wrap a method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @param {function} getConfigValue - getter function for the Mixpanel API token and other options to be used with opt-out check\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction _addOptOutCheck(method, getConfigValue) {\n return function() {\n var optedOut = false;\n\n try {\n var token = getConfigValue.call(this, 'token');\n var ignoreDnt = getConfigValue.call(this, 'ignore_dnt');\n var persistenceType = getConfigValue.call(this, 'opt_out_tracking_persistence_type');\n var persistencePrefix = getConfigValue.call(this, 'opt_out_tracking_cookie_prefix');\n var win = getConfigValue.call(this, 'window'); // used to override window during browser tests\n\n if (token) { // if there was an issue getting the token, continue method execution as normal\n optedOut = hasOptedOut(token, {\n ignoreDnt: ignoreDnt,\n persistenceType: persistenceType,\n persistencePrefix: persistencePrefix,\n window: win\n });\n }\n } catch(err) {\n console$1.error('Unexpected error when checking tracking opt-out status: ' + err);\n }\n\n if (!optedOut) {\n return method.apply(this, arguments);\n }\n\n var callback = arguments[arguments.length - 1];\n if (typeof(callback) === 'function') {\n callback(0);\n }\n\n return;\n };\n}\n\nvar logger$3 = console_with_prefix('lock');\n\n/**\n * SharedLock: a mutex built on HTML5 localStorage, to ensure that only one browser\n * window/tab at a time will be able to access shared resources.\n *\n * Based on the Alur and Taubenfeld fast lock\n * (http://www.cs.rochester.edu/research/synchronization/pseudocode/fastlock.html)\n * with an added timeout to ensure there will be eventual progress in the event\n * that a window is closed in the middle of the callback.\n *\n * Implementation based on the original version by David Wolever (https://github.com/wolever)\n * at https://gist.github.com/wolever/5fd7573d1ef6166e8f8c4af286a69432.\n *\n * @example\n * const myLock = new SharedLock('some-key');\n * myLock.withLock(function() {\n * console.log('I hold the mutex!');\n * });\n *\n * @constructor\n */\nvar SharedLock = function(key, options) {\n options = options || {};\n\n this.storageKey = key;\n this.storage = options.storage || window.localStorage;\n this.pollIntervalMS = options.pollIntervalMS || 100;\n this.timeoutMS = options.timeoutMS || 2000;\n};\n\n// pass in a specific pid to test contention scenarios; otherwise\n// it is chosen randomly for each acquisition attempt\nSharedLock.prototype.withLock = function(lockedCB, errorCB, pid) {\n if (!pid && typeof errorCB !== 'function') {\n pid = errorCB;\n errorCB = null;\n }\n\n var i = pid || (new Date().getTime() + '|' + Math.random());\n var startTime = new Date().getTime();\n\n var key = this.storageKey;\n var pollIntervalMS = this.pollIntervalMS;\n var timeoutMS = this.timeoutMS;\n var storage = this.storage;\n\n var keyX = key + ':X';\n var keyY = key + ':Y';\n var keyZ = key + ':Z';\n\n var reportError = function(err) {\n errorCB && errorCB(err);\n };\n\n var delay = function(cb) {\n if (new Date().getTime() - startTime > timeoutMS) {\n logger$3.error('Timeout waiting for mutex on ' + key + '; clearing lock. [' + i + ']');\n storage.removeItem(keyZ);\n storage.removeItem(keyY);\n loop();\n return;\n }\n setTimeout(function() {\n try {\n cb();\n } catch(err) {\n reportError(err);\n }\n }, pollIntervalMS * (Math.random() + 0.1));\n };\n\n var waitFor = function(predicate, cb) {\n if (predicate()) {\n cb();\n } else {\n delay(function() {\n waitFor(predicate, cb);\n });\n }\n };\n\n var getSetY = function() {\n var valY = storage.getItem(keyY);\n if (valY && valY !== i) { // if Y == i then this process already has the lock (useful for test cases)\n return false;\n } else {\n storage.setItem(keyY, i);\n if (storage.getItem(keyY) === i) {\n return true;\n } else {\n if (!localStorageSupported(storage, true)) {\n throw new Error('localStorage support dropped while acquiring lock');\n }\n return false;\n }\n }\n };\n\n var loop = function() {\n storage.setItem(keyX, i);\n\n waitFor(getSetY, function() {\n if (storage.getItem(keyX) === i) {\n criticalSection();\n return;\n }\n\n delay(function() {\n if (storage.getItem(keyY) !== i) {\n loop();\n return;\n }\n waitFor(function() {\n return !storage.getItem(keyZ);\n }, criticalSection);\n });\n });\n };\n\n var criticalSection = function() {\n storage.setItem(keyZ, '1');\n try {\n lockedCB();\n } finally {\n storage.removeItem(keyZ);\n if (storage.getItem(keyY) === i) {\n storage.removeItem(keyY);\n }\n if (storage.getItem(keyX) === i) {\n storage.removeItem(keyX);\n }\n }\n };\n\n try {\n if (localStorageSupported(storage, true)) {\n loop();\n } else {\n throw new Error('localStorage support check failed');\n }\n } catch(err) {\n reportError(err);\n }\n};\n\nvar logger$2 = console_with_prefix('batch');\n\n/**\n * RequestQueue: queue for batching API requests with localStorage backup for retries.\n * Maintains an in-memory queue which represents the source of truth for the current\n * page, but also writes all items out to a copy in the browser's localStorage, which\n * can be read on subsequent pageloads and retried. For batchability, all the request\n * items in the queue should be of the same type (events, people updates, group updates)\n * so they can be sent in a single request to the same API endpoint.\n *\n * LocalStorage keying and locking: In order for reloads and subsequent pageloads of\n * the same site to access the same persisted data, they must share the same localStorage\n * key (for instance based on project token and queue type). Therefore access to the\n * localStorage entry is guarded by an asynchronous mutex (SharedLock) to prevent\n * simultaneously open windows/tabs from overwriting each other's data (which would lead\n * to data loss in some situations).\n * @constructor\n */\nvar RequestQueue = function(storageKey, options) {\n options = options || {};\n this.storageKey = storageKey;\n this.storage = options.storage || window.localStorage;\n this.reportError = options.errorReporter || _.bind(logger$2.error, logger$2);\n this.lock = new SharedLock(storageKey, {storage: this.storage});\n\n this.usePersistence = options.usePersistence;\n this.pid = options.pid || null; // pass pid to test out storage lock contention scenarios\n\n this.memQueue = [];\n};\n\n/**\n * Add one item to queues (memory and localStorage). The queued entry includes\n * the given item along with an auto-generated ID and a \"flush-after\" timestamp.\n * It is expected that the item will be sent over the network and dequeued\n * before the flush-after time; if this doesn't happen it is considered orphaned\n * (e.g., the original tab where it was enqueued got closed before it could be\n * sent) and the item can be sent by any tab that finds it in localStorage.\n *\n * The final callback param is called with a param indicating success or\n * failure of the enqueue operation; it is asynchronous because the localStorage\n * lock is asynchronous.\n */\nRequestQueue.prototype.enqueue = function(item, flushInterval, cb) {\n var queueEntry = {\n 'id': cheap_guid(),\n 'flushAfter': new Date().getTime() + flushInterval * 2,\n 'payload': item\n };\n\n if (!this.usePersistence) {\n this.memQueue.push(queueEntry);\n if (cb) {\n cb(true);\n }\n } else {\n this.lock.withLock(_.bind(function lockAcquired() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue.push(queueEntry);\n succeeded = this.saveToStorage(storedQueue);\n if (succeeded) {\n // only add to in-memory queue when storage succeeds\n this.memQueue.push(queueEntry);\n }\n } catch(err) {\n this.reportError('Error enqueueing item', item);\n succeeded = false;\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), _.bind(function lockFailure(err) {\n this.reportError('Error acquiring storage lock', err);\n if (cb) {\n cb(false);\n }\n }, this), this.pid);\n }\n};\n\n/**\n * Read out the given number of queue entries. If this.memQueue\n * has fewer than batchSize items, then look for \"orphaned\" items\n * in the persisted queue (items where the 'flushAfter' time has\n * already passed).\n */\nRequestQueue.prototype.fillBatch = function(batchSize) {\n var batch = this.memQueue.slice(0, batchSize);\n if (this.usePersistence && batch.length < batchSize) {\n // don't need lock just to read events; localStorage is thread-safe\n // and the worst that could happen is a duplicate send of some\n // orphaned events, which will be deduplicated on the server side\n var storedQueue = this.readFromStorage();\n if (storedQueue.length) {\n // item IDs already in batch; don't duplicate out of storage\n var idsInBatch = {}; // poor man's Set\n _.each(batch, function(item) { idsInBatch[item['id']] = true; });\n\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (new Date().getTime() > item['flushAfter'] && !idsInBatch[item['id']]) {\n item.orphaned = true;\n batch.push(item);\n if (batch.length >= batchSize) {\n break;\n }\n }\n }\n }\n }\n return batch;\n};\n\n/**\n * Remove items with matching 'id' from array (immutably)\n * also remove any item without a valid id (e.g., malformed\n * storage entries).\n */\nvar filterOutIDsAndInvalid = function(items, idSet) {\n var filteredItems = [];\n _.each(items, function(item) {\n if (item['id'] && !idSet[item['id']]) {\n filteredItems.push(item);\n }\n });\n return filteredItems;\n};\n\n/**\n * Remove items with matching IDs from both in-memory queue\n * and persisted queue\n */\nRequestQueue.prototype.removeItemsByID = function(ids, cb) {\n var idSet = {}; // poor man's Set\n _.each(ids, function(id) { idSet[id] = true; });\n\n this.memQueue = filterOutIDsAndInvalid(this.memQueue, idSet);\n if (!this.usePersistence) {\n if (cb) {\n cb(true);\n }\n } else {\n var removeFromStorage = _.bind(function() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue = filterOutIDsAndInvalid(storedQueue, idSet);\n succeeded = this.saveToStorage(storedQueue);\n\n // an extra check: did storage report success but somehow\n // the items are still there?\n if (succeeded) {\n storedQueue = this.readFromStorage();\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (item['id'] && !!idSet[item['id']]) {\n this.reportError('Item not removed from storage');\n return false;\n }\n }\n }\n } catch(err) {\n this.reportError('Error removing items', ids);\n succeeded = false;\n }\n return succeeded;\n }, this);\n\n this.lock.withLock(function lockAcquired() {\n var succeeded = removeFromStorage();\n if (cb) {\n cb(succeeded);\n }\n }, _.bind(function lockFailure(err) {\n var succeeded = false;\n this.reportError('Error acquiring storage lock', err);\n if (!localStorageSupported(this.storage, true)) {\n // Looks like localStorage writes have stopped working sometime after\n // initialization (probably full), and so nobody can acquire locks\n // anymore. Consider it temporarily safe to remove items without the\n // lock, since nobody's writing successfully anyway.\n succeeded = removeFromStorage();\n if (!succeeded) {\n // OK, we couldn't even write out the smaller queue. Try clearing it\n // entirely.\n try {\n this.storage.removeItem(this.storageKey);\n } catch(err) {\n this.reportError('Error clearing queue', err);\n }\n }\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), this.pid);\n }\n\n};\n\n// internal helper for RequestQueue.updatePayloads\nvar updatePayloads = function(existingItems, itemsToUpdate) {\n var newItems = [];\n _.each(existingItems, function(item) {\n var id = item['id'];\n if (id in itemsToUpdate) {\n var newPayload = itemsToUpdate[id];\n if (newPayload !== null) {\n item['payload'] = newPayload;\n newItems.push(item);\n }\n } else {\n // no update\n newItems.push(item);\n }\n });\n return newItems;\n};\n\n/**\n * Update payloads of given items in both in-memory queue and\n * persisted queue. Items set to null are removed from queues.\n */\nRequestQueue.prototype.updatePayloads = function(itemsToUpdate, cb) {\n this.memQueue = updatePayloads(this.memQueue, itemsToUpdate);\n if (!this.usePersistence) {\n if (cb) {\n cb(true);\n }\n } else {\n this.lock.withLock(_.bind(function lockAcquired() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue = updatePayloads(storedQueue, itemsToUpdate);\n succeeded = this.saveToStorage(storedQueue);\n } catch(err) {\n this.reportError('Error updating items', itemsToUpdate);\n succeeded = false;\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), _.bind(function lockFailure(err) {\n this.reportError('Error acquiring storage lock', err);\n if (cb) {\n cb(false);\n }\n }, this), this.pid);\n }\n\n};\n\n/**\n * Read and parse items array from localStorage entry, handling\n * malformed/missing data if necessary.\n */\nRequestQueue.prototype.readFromStorage = function() {\n var storageEntry;\n try {\n storageEntry = this.storage.getItem(this.storageKey);\n if (storageEntry) {\n storageEntry = JSONParse(storageEntry);\n if (!_.isArray(storageEntry)) {\n this.reportError('Invalid storage entry:', storageEntry);\n storageEntry = null;\n }\n }\n } catch (err) {\n this.reportError('Error retrieving queue', err);\n storageEntry = null;\n }\n return storageEntry || [];\n};\n\n/**\n * Serialize the given items array to localStorage.\n */\nRequestQueue.prototype.saveToStorage = function(queue) {\n try {\n this.storage.setItem(this.storageKey, JSONStringify(queue));\n return true;\n } catch (err) {\n this.reportError('Error saving queue', err);\n return false;\n }\n};\n\n/**\n * Clear out queues (memory and localStorage).\n */\nRequestQueue.prototype.clear = function() {\n this.memQueue = [];\n\n if (this.usePersistence) {\n this.storage.removeItem(this.storageKey);\n }\n};\n\n// maximum interval between request retries after exponential backoff\nvar MAX_RETRY_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes\n\nvar logger$1 = console_with_prefix('batch');\n\n/**\n * RequestBatcher: manages the queueing, flushing, retry etc of requests of one\n * type (events, people, groups).\n * Uses RequestQueue to manage the backing store.\n * @constructor\n */\nvar RequestBatcher = function(storageKey, options) {\n this.errorReporter = options.errorReporter;\n this.queue = new RequestQueue(storageKey, {\n errorReporter: _.bind(this.reportError, this),\n storage: options.storage,\n usePersistence: options.usePersistence\n });\n\n this.libConfig = options.libConfig;\n this.sendRequest = options.sendRequestFunc;\n this.beforeSendHook = options.beforeSendHook;\n this.stopAllBatching = options.stopAllBatchingFunc;\n\n // seed variable batch size + flush interval with configured values\n this.batchSize = this.libConfig['batch_size'];\n this.flushInterval = this.libConfig['batch_flush_interval_ms'];\n\n this.stopped = !this.libConfig['batch_autostart'];\n this.consecutiveRemovalFailures = 0;\n\n // extra client-side dedupe\n this.itemIdsSentSuccessfully = {};\n\n // Make the flush occur at the interval specified by flushIntervalMs, default behavior will attempt consecutive flushes\n // as long as the queue is not empty. This is useful for high-frequency events like Session Replay where we might end up\n // in a request loop and get ratelimited by the server.\n this.flushOnlyOnInterval = options.flushOnlyOnInterval || false;\n};\n\n/**\n * Add one item to queue.\n */\nRequestBatcher.prototype.enqueue = function(item, cb) {\n this.queue.enqueue(item, this.flushInterval, cb);\n};\n\n/**\n * Start flushing batches at the configured time interval. Must call\n * this method upon SDK init in order to send anything over the network.\n */\nRequestBatcher.prototype.start = function() {\n this.stopped = false;\n this.consecutiveRemovalFailures = 0;\n this.flush();\n};\n\n/**\n * Stop flushing batches. Can be restarted by calling start().\n */\nRequestBatcher.prototype.stop = function() {\n this.stopped = true;\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n this.timeoutID = null;\n }\n};\n\n/**\n * Clear out queue.\n */\nRequestBatcher.prototype.clear = function() {\n this.queue.clear();\n};\n\n/**\n * Restore batch size configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetBatchSize = function() {\n this.batchSize = this.libConfig['batch_size'];\n};\n\n/**\n * Restore flush interval time configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetFlush = function() {\n this.scheduleFlush(this.libConfig['batch_flush_interval_ms']);\n};\n\n/**\n * Schedule the next flush in the given number of milliseconds.\n */\nRequestBatcher.prototype.scheduleFlush = function(flushMS) {\n this.flushInterval = flushMS;\n if (!this.stopped) { // don't schedule anymore if batching has been stopped\n this.timeoutID = setTimeout(_.bind(function() {\n if (!this.stopped) {\n this.flush();\n }\n }, this), this.flushInterval);\n }\n};\n\n/**\n * Flush one batch to network. Depending on success/failure modes, it will either\n * remove the batch from the queue or leave it in for retry, and schedule the next\n * flush. In cases of most network or API failures, it will back off exponentially\n * when retrying.\n * @param {Object} [options]\n * @param {boolean} [options.sendBeacon] - whether to send batch with\n * navigator.sendBeacon (only useful for sending batches before page unloads, as\n * sendBeacon offers no callbacks or status indications)\n */\nRequestBatcher.prototype.flush = function(options) {\n try {\n\n if (this.requestInProgress) {\n logger$1.log('Flush: Request already in progress');\n return;\n }\n\n options = options || {};\n var timeoutMS = this.libConfig['batch_request_timeout_ms'];\n var startTime = new Date().getTime();\n var currentBatchSize = this.batchSize;\n var batch = this.queue.fillBatch(currentBatchSize);\n // if there's more items in the queue than the batch size, attempt\n // to flush again after the current batch is done.\n var attemptSecondaryFlush = batch.length === currentBatchSize;\n var dataForRequest = [];\n var transformedItems = {};\n _.each(batch, function(item) {\n var payload = item['payload'];\n if (this.beforeSendHook && !item.orphaned) {\n payload = this.beforeSendHook(payload);\n }\n if (payload) {\n // mp_sent_by_lib_version prop captures which lib version actually\n // sends each event (regardless of which version originally queued\n // it for sending)\n if (payload['event'] && payload['properties']) {\n payload['properties'] = _.extend(\n {},\n payload['properties'],\n {'mp_sent_by_lib_version': Config.LIB_VERSION}\n );\n }\n var addPayload = true;\n var itemId = item['id'];\n if (itemId) {\n if ((this.itemIdsSentSuccessfully[itemId] || 0) > 5) {\n this.reportError('[dupe] item ID sent too many times, not sending', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n addPayload = false;\n }\n } else {\n this.reportError('[dupe] found item with no ID', {item: item});\n }\n\n if (addPayload) {\n dataForRequest.push(payload);\n }\n }\n transformedItems[item['id']] = payload;\n }, this);\n if (dataForRequest.length < 1) {\n this.resetFlush();\n return; // nothing to do\n }\n\n this.requestInProgress = true;\n\n var batchSendCallback = _.bind(function(res) {\n this.requestInProgress = false;\n\n try {\n\n // handle API response in a try-catch to make sure we can reset the\n // flush operation if something goes wrong\n\n var removeItemsFromQueue = false;\n if (options.unloading) {\n // update persisted data to include hook transformations\n this.queue.updatePayloads(transformedItems);\n } else if (\n _.isObject(res) &&\n res.error === 'timeout' &&\n new Date().getTime() - startTime >= timeoutMS\n ) {\n this.reportError('Network timeout; retrying');\n this.flush();\n } else if (\n _.isObject(res) &&\n (\n res.httpStatusCode >= 500\n || res.httpStatusCode === 429\n || (res.httpStatusCode <= 0 && !isOnline())\n || res.error === 'timeout'\n )\n ) {\n // network or API error, or 429 Too Many Requests, retry\n var retryMS = this.flushInterval * 2;\n if (res.retryAfter) {\n retryMS = (parseInt(res.retryAfter, 10) * 1000) || retryMS;\n }\n retryMS = Math.min(MAX_RETRY_INTERVAL_MS, retryMS);\n this.reportError('Error; retry in ' + retryMS + ' ms');\n this.scheduleFlush(retryMS);\n } else if (_.isObject(res) && res.httpStatusCode === 413) {\n // 413 Payload Too Large\n if (batch.length > 1) {\n var halvedBatchSize = Math.max(1, Math.floor(currentBatchSize / 2));\n this.batchSize = Math.min(this.batchSize, halvedBatchSize, batch.length - 1);\n this.reportError('413 response; reducing batch size to ' + this.batchSize);\n this.resetFlush();\n } else {\n this.reportError('Single-event request too large; dropping', batch);\n this.resetBatchSize();\n removeItemsFromQueue = true;\n }\n } else {\n // successful network request+response; remove each item in batch from queue\n // (even if it was e.g. a 400, in which case retrying won't help)\n removeItemsFromQueue = true;\n }\n\n if (removeItemsFromQueue) {\n this.queue.removeItemsByID(\n _.map(batch, function(item) { return item['id']; }),\n _.bind(function(succeeded) {\n if (succeeded) {\n this.consecutiveRemovalFailures = 0;\n if (this.flushOnlyOnInterval && !attemptSecondaryFlush) {\n this.resetFlush(); // schedule next batch with a delay\n } else {\n this.flush(); // handle next batch if the queue isn't empty\n }\n } else {\n this.reportError('Failed to remove items from queue');\n if (++this.consecutiveRemovalFailures > 5) {\n this.reportError('Too many queue failures; disabling batching system.');\n this.stopAllBatching();\n } else {\n this.resetFlush();\n }\n }\n }, this)\n );\n\n // client-side dedupe\n _.each(batch, _.bind(function(item) {\n var itemId = item['id'];\n if (itemId) {\n this.itemIdsSentSuccessfully[itemId] = this.itemIdsSentSuccessfully[itemId] || 0;\n this.itemIdsSentSuccessfully[itemId]++;\n if (this.itemIdsSentSuccessfully[itemId] > 5) {\n this.reportError('[dupe] item ID sent too many times', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n }\n } else {\n this.reportError('[dupe] found item with no ID while removing', {item: item});\n }\n }, this));\n }\n\n } catch(err) {\n this.reportError('Error handling API response', err);\n this.resetFlush();\n }\n }, this);\n var requestOptions = {\n method: 'POST',\n verbose: true,\n ignore_json_errors: true, // eslint-disable-line camelcase\n timeout_ms: timeoutMS // eslint-disable-line camelcase\n };\n if (options.unloading) {\n requestOptions.transport = 'sendBeacon';\n }\n logger$1.log('MIXPANEL REQUEST:', dataForRequest);\n this.sendRequest(dataForRequest, requestOptions, batchSendCallback);\n } catch(err) {\n this.reportError('Error flushing request queue', err);\n this.resetFlush();\n }\n};\n\n/**\n * Log error to global logger and optional user-defined logger.\n */\nRequestBatcher.prototype.reportError = function(msg, err) {\n logger$1.error.apply(logger$1.error, arguments);\n if (this.errorReporter) {\n try {\n if (!(err instanceof Error)) {\n err = new Error(msg);\n }\n this.errorReporter(msg, err);\n } catch(err) {\n logger$1.error(err);\n }\n }\n};\n\nvar logger = console_with_prefix('recorder');\nvar CompressionStream = win['CompressionStream'];\n\nvar RECORDER_BATCHER_LIB_CONFIG = {\n 'batch_size': 1000,\n 'batch_flush_interval_ms': 10 * 1000,\n 'batch_request_timeout_ms': 90 * 1000,\n 'batch_autostart': true\n};\n\nvar ACTIVE_SOURCES = new Set([\n IncrementalSource.MouseMove,\n IncrementalSource.MouseInteraction,\n IncrementalSource.Scroll,\n IncrementalSource.ViewportResize,\n IncrementalSource.Input,\n IncrementalSource.TouchMove,\n IncrementalSource.MediaInteraction,\n IncrementalSource.Drag,\n IncrementalSource.Selection,\n]);\n\nfunction isUserEvent(ev) {\n return ev.type === EventType.IncrementalSnapshot && ACTIVE_SOURCES.has(ev.data.source);\n}\n\nvar MixpanelRecorder = function(mixpanelInstance) {\n this._mixpanel = mixpanelInstance;\n\n // internal rrweb stopRecording function\n this._stopRecording = null;\n\n this.recEvents = [];\n this.seqNo = 0;\n this.replayId = null;\n this.replayStartTime = null;\n this.sendBatchId = null;\n\n this.idleTimeoutId = null;\n this.maxTimeoutId = null;\n\n this.recordMaxMs = MAX_RECORDING_MS;\n this.recordMinMs = 0;\n this._initBatcher();\n};\n\n\nMixpanelRecorder.prototype._initBatcher = function () {\n this.batcher = new RequestBatcher('__mprec', {\n libConfig: RECORDER_BATCHER_LIB_CONFIG,\n sendRequestFunc: _.bind(this.flushEventsWithOptOut, this),\n errorReporter: _.bind(this.reportError, this),\n flushOnlyOnInterval: true,\n usePersistence: false\n });\n};\n\n// eslint-disable-next-line camelcase\nMixpanelRecorder.prototype.get_config = function(configVar) {\n return this._mixpanel.get_config(configVar);\n};\n\nMixpanelRecorder.prototype.startRecording = function (shouldStopBatcher) {\n if (this._stopRecording !== null) {\n logger.log('Recording already in progress, skipping startRecording.');\n return;\n }\n\n this.recordMaxMs = this.get_config('record_max_ms');\n if (this.recordMaxMs > MAX_RECORDING_MS) {\n this.recordMaxMs = MAX_RECORDING_MS;\n logger.critical('record_max_ms cannot be greater than ' + MAX_RECORDING_MS + 'ms. Capping value.');\n }\n\n this.recordMinMs = this.get_config('record_min_ms');\n if (this.recordMinMs > MAX_VALUE_FOR_MIN_RECORDING_MS) {\n this.recordMinMs = MAX_VALUE_FOR_MIN_RECORDING_MS;\n logger.critical('record_min_ms cannot be greater than ' + MAX_VALUE_FOR_MIN_RECORDING_MS + 'ms. Capping value.');\n }\n\n this.recEvents = [];\n this.seqNo = 0;\n this.replayStartTime = new Date().getTime();\n\n this.replayId = _.UUID();\n\n if (shouldStopBatcher || this.recordMinMs > 0) {\n // the primary case for shouldStopBatcher is when we're starting recording after a reset\n // and don't want to send anything over the network until there's\n // actual user activity\n // this also applies if the minimum recording length has not been hit yet\n // so that we don't send data until we know the recording will be long enough\n this.batcher.stop();\n } else {\n this.batcher.start();\n }\n\n var resetIdleTimeout = _.bind(function () {\n clearTimeout(this.idleTimeoutId);\n this.idleTimeoutId = setTimeout(_.bind(function () {\n logger.log('Idle timeout reached, restarting recording.');\n this.resetRecording();\n }, this), this.get_config('record_idle_timeout_ms'));\n }, this);\n\n var blockSelector = this.get_config('record_block_selector');\n if (blockSelector === '' || blockSelector === null) {\n blockSelector = undefined;\n }\n\n this._stopRecording = record({\n 'emit': _.bind(function (ev) {\n this.batcher.enqueue(ev);\n if (isUserEvent(ev)) {\n if (this.batcher.stopped && new Date().getTime() - this.replayStartTime >= this.recordMinMs) {\n // start flushing again after user activity\n this.batcher.start();\n }\n resetIdleTimeout();\n }\n }, this),\n 'blockClass': this.get_config('record_block_class'),\n 'blockSelector': blockSelector,\n 'collectFonts': this.get_config('record_collect_fonts'),\n 'inlineImages': this.get_config('record_inline_images'),\n 'maskAllInputs': true,\n 'maskTextClass': this.get_config('record_mask_text_class'),\n 'maskTextSelector': this.get_config('record_mask_text_selector')\n });\n\n resetIdleTimeout();\n\n this.maxTimeoutId = setTimeout(_.bind(this.resetRecording, this), this.recordMaxMs);\n};\n\nMixpanelRecorder.prototype.resetRecording = function () {\n this.stopRecording();\n this.startRecording(true);\n};\n\nMixpanelRecorder.prototype.stopRecording = function () {\n if (this._stopRecording !== null) {\n this._stopRecording();\n this._stopRecording = null;\n }\n\n if (this.batcher.stopped) {\n // never got user activity to flush after reset, so just clear the batcher\n this.batcher.clear();\n } else {\n // flush any remaining events from running batcher\n this.batcher.flush();\n this.batcher.stop();\n }\n this.replayId = null;\n\n clearTimeout(this.idleTimeoutId);\n clearTimeout(this.maxTimeoutId);\n};\n\n/**\n * Flushes the current batch of events to the server, but passes an opt-out callback to make sure\n * we stop recording and dump any queued events if the user has opted out.\n */\nMixpanelRecorder.prototype.flushEventsWithOptOut = function (data, options, cb) {\n this._flushEvents(data, options, cb, _.bind(this._onOptOut, this));\n};\n\nMixpanelRecorder.prototype._onOptOut = function (code) {\n // addOptOutCheckMixpanelLib invokes this function with code=0 when the user has opted out\n if (code === 0) {\n this.recEvents = [];\n this.stopRecording();\n }\n};\n\nMixpanelRecorder.prototype._sendRequest = function(currentReplayId, reqParams, reqBody, callback) {\n var onSuccess = _.bind(function (response, responseBody) {\n // Increment sequence counter only if the request was successful to guarantee ordering.\n // RequestBatcher will always flush the next batch after the previous one succeeds.\n // extra check to see if the replay ID has changed so that we don't increment the seqNo on the wrong replay\n if (response.status === 200 && this.replayId === currentReplayId) {\n this.seqNo++;\n }\n callback({\n status: 0,\n httpStatusCode: response.status,\n responseBody: responseBody,\n retryAfter: response.headers.get('Retry-After')\n });\n }, this);\n\n win['fetch'](this.get_config('api_host') + '/' + this.get_config('api_routes')['record'] + '?' + new URLSearchParams(reqParams), {\n 'method': 'POST',\n 'headers': {\n 'Authorization': 'Basic ' + btoa(this.get_config('token') + ':'),\n 'Content-Type': 'application/octet-stream'\n },\n 'body': reqBody,\n }).then(function (response) {\n response.json().then(function (responseBody) {\n onSuccess(response, responseBody);\n }).catch(function (error) {\n callback({error: error});\n });\n }).catch(function (error) {\n callback({error: error, httpStatusCode: 0});\n });\n};\n\nMixpanelRecorder.prototype._flushEvents = addOptOutCheckMixpanelLib(function (data, options, callback) {\n const numEvents = data.length;\n\n if (numEvents > 0) {\n var replayId = this.replayId;\n // each rrweb event has a timestamp - leverage those to get time properties\n var batchStartTime = data[0].timestamp;\n if (this.seqNo === 0 || !this.replayStartTime) {\n // extra safety net so that we don't send a null replay start time\n if (this.seqNo !== 0) {\n this.reportError('Replay start time not set but seqNo is not 0. Using current batch start time as a fallback.');\n }\n\n this.replayStartTime = batchStartTime;\n }\n var replayLengthMs = data[numEvents - 1].timestamp - this.replayStartTime;\n\n var reqParams = {\n 'distinct_id': String(this._mixpanel.get_distinct_id()),\n 'seq': this.seqNo,\n 'batch_start_time': batchStartTime / 1000,\n 'replay_id': replayId,\n 'replay_length_ms': replayLengthMs,\n 'replay_start_time': this.replayStartTime / 1000\n };\n var eventsJson = _.JSONEncode(data);\n\n // send ID management props if they exist\n var deviceId = this._mixpanel.get_property('$device_id');\n if (deviceId) {\n reqParams['$device_id'] = deviceId;\n }\n var userId = this._mixpanel.get_property('$user_id');\n if (userId) {\n reqParams['$user_id'] = userId;\n }\n\n if (CompressionStream) {\n var jsonStream = new Blob([eventsJson], {type: 'application/json'}).stream();\n var gzipStream = jsonStream.pipeThrough(new CompressionStream('gzip'));\n new Response(gzipStream)\n .blob()\n .then(_.bind(function(compressedBlob) {\n reqParams['format'] = 'gzip';\n this._sendRequest(replayId, reqParams, compressedBlob, callback);\n }, this));\n } else {\n reqParams['format'] = 'body';\n this._sendRequest(replayId, reqParams, eventsJson, callback);\n }\n }\n});\n\n\nMixpanelRecorder.prototype.reportError = function(msg, err) {\n logger.error.apply(logger.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.get_config('error_reporter')(msg, err);\n } catch(err) {\n logger.error(err);\n }\n};\n\n\nwin['__mp_recorder'] = MixpanelRecorder;\n\n/* eslint camelcase: \"off\" */\n\n/**\n * DomTracker Object\n * @constructor\n */\nvar DomTracker = function() {};\n\n\n// interface\nDomTracker.prototype.create_properties = function() {};\nDomTracker.prototype.event_handler = function() {};\nDomTracker.prototype.after_track_handler = function() {};\n\nDomTracker.prototype.init = function(mixpanel_instance) {\n this.mp = mixpanel_instance;\n return this;\n};\n\n/**\n * @param {Object|string} query\n * @param {string} event_name\n * @param {Object=} properties\n * @param {function=} user_callback\n */\nDomTracker.prototype.track = function(query, event_name, properties, user_callback) {\n var that = this;\n var elements = _.dom_query(query);\n\n if (elements.length === 0) {\n console$1.error('The DOM query (' + query + ') returned 0 elements');\n return;\n }\n\n _.each(elements, function(element) {\n _.register_event(element, this.override_event, function(e) {\n var options = {};\n var props = that.create_properties(properties, this);\n var timeout = that.mp.get_config('track_links_timeout');\n\n that.event_handler(e, this, options);\n\n // in case the mixpanel servers don't get back to us in time\n window.setTimeout(that.track_callback(user_callback, props, options, true), timeout);\n\n // fire the tracking event\n that.mp.track(event_name, props, that.track_callback(user_callback, props, options));\n });\n }, this);\n\n return true;\n};\n\n/**\n * @param {function} user_callback\n * @param {Object} props\n * @param {boolean=} timeout_occured\n */\nDomTracker.prototype.track_callback = function(user_callback, props, options, timeout_occured) {\n timeout_occured = timeout_occured || false;\n var that = this;\n\n return function() {\n // options is referenced from both callbacks, so we can have\n // a 'lock' of sorts to ensure only one fires\n if (options.callback_fired) { return; }\n options.callback_fired = true;\n\n if (user_callback && user_callback(timeout_occured, props) === false) {\n // user can prevent the default functionality by\n // returning false from their callback\n return;\n }\n\n that.after_track_handler(props, options, timeout_occured);\n };\n};\n\nDomTracker.prototype.create_properties = function(properties, element) {\n var props;\n\n if (typeof(properties) === 'function') {\n props = properties(element);\n } else {\n props = _.extend({}, properties);\n }\n\n return props;\n};\n\n/**\n * LinkTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar LinkTracker = function() {\n this.override_event = 'click';\n};\n_.inherit(LinkTracker, DomTracker);\n\nLinkTracker.prototype.create_properties = function(properties, element) {\n var props = LinkTracker.superclass.create_properties.apply(this, arguments);\n\n if (element.href) { props['url'] = element.href; }\n\n return props;\n};\n\nLinkTracker.prototype.event_handler = function(evt, element, options) {\n options.new_tab = (\n evt.which === 2 ||\n evt.metaKey ||\n evt.ctrlKey ||\n element.target === '_blank'\n );\n options.href = element.href;\n\n if (!options.new_tab) {\n evt.preventDefault();\n }\n};\n\nLinkTracker.prototype.after_track_handler = function(props, options) {\n if (options.new_tab) { return; }\n\n setTimeout(function() {\n window.location = options.href;\n }, 0);\n};\n\n/**\n * FormTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar FormTracker = function() {\n this.override_event = 'submit';\n};\n_.inherit(FormTracker, DomTracker);\n\nFormTracker.prototype.event_handler = function(evt, element, options) {\n options.element = element;\n evt.preventDefault();\n};\n\nFormTracker.prototype.after_track_handler = function(props, options) {\n setTimeout(function() {\n options.element.submit();\n }, 0);\n};\n\n/* eslint camelcase: \"off\" */\n\n/** @const */ var SET_ACTION = '$set';\n/** @const */ var SET_ONCE_ACTION = '$set_once';\n/** @const */ var UNSET_ACTION = '$unset';\n/** @const */ var ADD_ACTION = '$add';\n/** @const */ var APPEND_ACTION = '$append';\n/** @const */ var UNION_ACTION = '$union';\n/** @const */ var REMOVE_ACTION = '$remove';\n/** @const */ var DELETE_ACTION = '$delete';\n\n// Common internal methods for mixpanel.people and mixpanel.group APIs.\n// These methods shouldn't involve network I/O.\nvar apiActions = {\n set_action: function(prop, to) {\n var data = {};\n var $set = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set[k] = v;\n }\n }, this);\n } else {\n $set[prop] = to;\n }\n\n data[SET_ACTION] = $set;\n return data;\n },\n\n unset_action: function(prop) {\n var data = {};\n var $unset = [];\n if (!_.isArray(prop)) {\n prop = [prop];\n }\n\n _.each(prop, function(k) {\n if (!this._is_reserved_property(k)) {\n $unset.push(k);\n }\n }, this);\n\n data[UNSET_ACTION] = $unset;\n return data;\n },\n\n set_once_action: function(prop, to) {\n var data = {};\n var $set_once = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set_once[k] = v;\n }\n }, this);\n } else {\n $set_once[prop] = to;\n }\n data[SET_ONCE_ACTION] = $set_once;\n return data;\n },\n\n union_action: function(list_name, values) {\n var data = {};\n var $union = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $union[k] = _.isArray(v) ? v : [v];\n }\n }, this);\n } else {\n $union[list_name] = _.isArray(values) ? values : [values];\n }\n data[UNION_ACTION] = $union;\n return data;\n },\n\n append_action: function(list_name, value) {\n var data = {};\n var $append = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $append[k] = v;\n }\n }, this);\n } else {\n $append[list_name] = value;\n }\n data[APPEND_ACTION] = $append;\n return data;\n },\n\n remove_action: function(list_name, value) {\n var data = {};\n var $remove = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $remove[k] = v;\n }\n }, this);\n } else {\n $remove[list_name] = value;\n }\n data[REMOVE_ACTION] = $remove;\n return data;\n },\n\n delete_action: function() {\n var data = {};\n data[DELETE_ACTION] = '';\n return data;\n }\n};\n\n/* eslint camelcase: \"off\" */\n\n/**\n * Mixpanel Group Object\n * @constructor\n */\nvar MixpanelGroup = function() {};\n\n_.extend(MixpanelGroup.prototype, apiActions);\n\nMixpanelGroup.prototype._init = function(mixpanel_instance, group_key, group_id) {\n this._mixpanel = mixpanel_instance;\n this._group_key = group_key;\n this._group_id = group_id;\n};\n\n/**\n * Set properties on a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, dates, or lists\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Set properties on a group, only if they do not yet exist.\n * This will not overwrite previous group property values, unlike\n * group.set().\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set_once('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set_once({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, lists or dates\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set_once = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Unset properties on a group permanently.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').unset('Founded');\n *\n * @param {String} prop The name of the property.\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.unset = addOptOutCheckMixpanelGroup(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/**\n * Merge a given list with a list-valued group property, excluding duplicate values.\n *\n * ### Usage:\n *\n * // merge a value to a list, creating it if needed\n * mixpanel.get_group('company', 'mixpanel').union('Location', ['San Francisco', 'London']);\n *\n * @param {String} list_name Name of the property.\n * @param {Array} values Values to merge with the given property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.union = addOptOutCheckMixpanelGroup(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/**\n * Permanently delete a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').delete();\n *\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype['delete'] = addOptOutCheckMixpanelGroup(function(callback) {\n // bracket notation above prevents a minification error related to reserved words\n var data = this.delete_action();\n return this._send_request(data, callback);\n});\n\n/**\n * Remove a property from a group. The value will be ignored if doesn't exist.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').remove('Location', 'London');\n *\n * @param {String} list_name Name of the property.\n * @param {Object} value Value to remove from the given group property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.remove = addOptOutCheckMixpanelGroup(function(list_name, value, callback) {\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\nMixpanelGroup.prototype._send_request = function(data, callback) {\n data['$group_key'] = this._group_key;\n data['$group_id'] = this._group_id;\n data['$token'] = this._get_config('token');\n\n var date_encoded_data = _.encodeDates(data);\n return this._mixpanel._track_or_batch({\n type: 'groups',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/' + this._get_config('api_routes')['groups'],\n batcher: this._mixpanel.request_batchers.groups\n }, callback);\n};\n\nMixpanelGroup.prototype._is_reserved_property = function(prop) {\n return prop === '$group_key' || prop === '$group_id';\n};\n\nMixpanelGroup.prototype._get_config = function(conf) {\n return this._mixpanel.get_config(conf);\n};\n\nMixpanelGroup.prototype.toString = function() {\n return this._mixpanel.toString() + '.group.' + this._group_key + '.' + this._group_id;\n};\n\n// MixpanelGroup Exports\nMixpanelGroup.prototype['remove'] = MixpanelGroup.prototype.remove;\nMixpanelGroup.prototype['set'] = MixpanelGroup.prototype.set;\nMixpanelGroup.prototype['set_once'] = MixpanelGroup.prototype.set_once;\nMixpanelGroup.prototype['union'] = MixpanelGroup.prototype.union;\nMixpanelGroup.prototype['unset'] = MixpanelGroup.prototype.unset;\nMixpanelGroup.prototype['toString'] = MixpanelGroup.prototype.toString;\n\n/* eslint camelcase: \"off\" */\n\n/**\n * Mixpanel People Object\n * @constructor\n */\nvar MixpanelPeople = function() {};\n\n_.extend(MixpanelPeople.prototype, apiActions);\n\nMixpanelPeople.prototype._init = function(mixpanel_instance) {\n this._mixpanel = mixpanel_instance;\n};\n\n/*\n* Set properties on a user record.\n*\n* ### Usage:\n*\n* mixpanel.people.set('gender', 'm');\n*\n* // or set multiple properties at once\n* mixpanel.people.set({\n* 'Company': 'Acme',\n* 'Plan': 'Premium',\n* 'Upgrade date': new Date()\n* });\n* // properties can be strings, integers, dates, or lists\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n // make sure that the referrer info has been updated and saved\n if (this._get_config('save_referrer')) {\n this._mixpanel['persistence'].update_referrer_info(document.referrer);\n }\n\n // update $set object with default people properties\n data[SET_ACTION] = _.extend(\n {},\n _.info.people_properties(),\n data[SET_ACTION]\n );\n return this._send_request(data, callback);\n});\n\n/*\n* Set properties on a user record, only if they do not yet exist.\n* This will not overwrite previous people property values, unlike\n* people.set().\n*\n* ### Usage:\n*\n* mixpanel.people.set_once('First Login Date', new Date());\n*\n* // or set multiple properties at once\n* mixpanel.people.set_once({\n* 'First Login Date': new Date(),\n* 'Starting Plan': 'Premium'\n* });\n*\n* // properties can be strings, integers or dates\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set_once = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/*\n* Unset properties on a user record (permanently removes the properties and their values from a profile).\n*\n* ### Usage:\n*\n* mixpanel.people.unset('gender');\n*\n* // or unset multiple properties at once\n* mixpanel.people.unset(['gender', 'Company']);\n*\n* @param {Array|String} prop If a string, this is the name of the property. If an array, this is a list of property names.\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.unset = addOptOutCheckMixpanelPeople(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/*\n* Increment/decrement numeric people analytics properties.\n*\n* ### Usage:\n*\n* mixpanel.people.increment('page_views', 1);\n*\n* // or, for convenience, if you're just incrementing a counter by\n* // 1, you can simply do\n* mixpanel.people.increment('page_views');\n*\n* // to decrement a counter, pass a negative number\n* mixpanel.people.increment('credits_left', -1);\n*\n* // like mixpanel.people.set(), you can increment multiple\n* // properties at once:\n* mixpanel.people.increment({\n* counter1: 1,\n* counter2: 6\n* });\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and numeric values.\n* @param {Number} [by] An amount to increment the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.increment = addOptOutCheckMixpanelPeople(function(prop, by, callback) {\n var data = {};\n var $add = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n if (isNaN(parseFloat(v))) {\n console$1.error('Invalid increment value passed to mixpanel.people.increment - must be a number');\n return;\n } else {\n $add[k] = v;\n }\n }\n }, this);\n callback = by;\n } else {\n // convenience: mixpanel.people.increment('property'); will\n // increment 'property' by 1\n if (_.isUndefined(by)) {\n by = 1;\n }\n $add[prop] = by;\n }\n data[ADD_ACTION] = $add;\n\n return this._send_request(data, callback);\n});\n\n/*\n* Append a value to a list-valued people analytics property.\n*\n* ### Usage:\n*\n* // append a value to a list, creating it if needed\n* mixpanel.people.append('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.append({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value An item to append to the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.append = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.append_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Remove a value from a list-valued people analytics property.\n*\n* ### Usage:\n*\n* mixpanel.people.remove('School', 'UCB');\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value Item to remove from the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.remove = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Merge a given list with a list-valued people analytics property,\n* excluding duplicate values.\n*\n* ### Usage:\n*\n* // merge a value to a list, creating it if needed\n* mixpanel.people.union('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.union({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* // like mixpanel.people.append(), you can append multiple\n* // values to the same list:\n* mixpanel.people.union({\n* list1: ['bob', 'billy']\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] Value / values to merge with the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.union = addOptOutCheckMixpanelPeople(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/*\n * Record that you have charged the current user a certain amount\n * of money. Charges recorded with track_charge() will appear in the\n * Mixpanel revenue report.\n *\n * ### Usage:\n *\n * // charge a user $50\n * mixpanel.people.track_charge(50);\n *\n * // charge a user $30.50 on the 2nd of january\n * mixpanel.people.track_charge(30.50, {\n * '$time': new Date('jan 1 2012')\n * });\n *\n * @param {Number} amount The amount of money charged to the current user\n * @param {Object} [properties] An associative array of properties associated with the charge\n * @param {Function} [callback] If provided, the callback will be called when the server responds\n * @deprecated\n */\nMixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function(amount, properties, callback) {\n if (!_.isNumber(amount)) {\n amount = parseFloat(amount);\n if (isNaN(amount)) {\n console$1.error('Invalid value passed to mixpanel.people.track_charge - must be a number');\n return;\n }\n }\n\n return this.append('$transactions', _.extend({\n '$amount': amount\n }, properties), callback);\n});\n\n/*\n * Permanently clear all revenue report transactions from the\n * current user's people analytics profile.\n *\n * ### Usage:\n *\n * mixpanel.people.clear_charges();\n *\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n * @deprecated\n */\nMixpanelPeople.prototype.clear_charges = function(callback) {\n return this.set('$transactions', [], callback);\n};\n\n/*\n* Permanently deletes the current people analytics profile from\n* Mixpanel (using the current distinct_id).\n*\n* ### Usage:\n*\n* // remove the all data you have stored about the current user\n* mixpanel.people.delete_user();\n*\n*/\nMixpanelPeople.prototype.delete_user = function() {\n if (!this._identify_called()) {\n console$1.error('mixpanel.people.delete_user() requires you to call identify() first');\n return;\n }\n var data = {'$delete': this._mixpanel.get_distinct_id()};\n return this._send_request(data);\n};\n\nMixpanelPeople.prototype.toString = function() {\n return this._mixpanel.toString() + '.people';\n};\n\nMixpanelPeople.prototype._send_request = function(data, callback) {\n data['$token'] = this._get_config('token');\n data['$distinct_id'] = this._mixpanel.get_distinct_id();\n var device_id = this._mixpanel.get_property('$device_id');\n var user_id = this._mixpanel.get_property('$user_id');\n var had_persisted_distinct_id = this._mixpanel.get_property('$had_persisted_distinct_id');\n if (device_id) {\n data['$device_id'] = device_id;\n }\n if (user_id) {\n data['$user_id'] = user_id;\n }\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id;\n }\n\n var date_encoded_data = _.encodeDates(data);\n\n if (!this._identify_called()) {\n this._enqueue(data);\n if (!_.isUndefined(callback)) {\n if (this._get_config('verbose')) {\n callback({status: -1, error: null});\n } else {\n callback(-1);\n }\n }\n return _.truncate(date_encoded_data, 255);\n }\n\n return this._mixpanel._track_or_batch({\n type: 'people',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/' + this._get_config('api_routes')['engage'],\n batcher: this._mixpanel.request_batchers.people\n }, callback);\n};\n\nMixpanelPeople.prototype._get_config = function(conf_var) {\n return this._mixpanel.get_config(conf_var);\n};\n\nMixpanelPeople.prototype._identify_called = function() {\n return this._mixpanel._flags.identify_called === true;\n};\n\n// Queue up engage operations if identify hasn't been called yet.\nMixpanelPeople.prototype._enqueue = function(data) {\n if (SET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ACTION, data);\n } else if (SET_ONCE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ONCE_ACTION, data);\n } else if (UNSET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNSET_ACTION, data);\n } else if (ADD_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(ADD_ACTION, data);\n } else if (APPEND_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, data);\n } else if (REMOVE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, data);\n } else if (UNION_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNION_ACTION, data);\n } else {\n console$1.error('Invalid call to _enqueue():', data);\n }\n};\n\nMixpanelPeople.prototype._flush_one_queue = function(action, action_method, callback, queue_to_params_fn) {\n var _this = this;\n var queued_data = _.extend({}, this._mixpanel['persistence'].load_queue(action));\n var action_params = queued_data;\n\n if (!_.isUndefined(queued_data) && _.isObject(queued_data) && !_.isEmptyObject(queued_data)) {\n _this._mixpanel['persistence']._pop_from_people_queue(action, queued_data);\n _this._mixpanel['persistence'].save();\n if (queue_to_params_fn) {\n action_params = queue_to_params_fn(queued_data);\n }\n action_method.call(_this, action_params, function(response, data) {\n // on bad response, we want to add it back to the queue\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(action, queued_data);\n }\n if (!_.isUndefined(callback)) {\n callback(response, data);\n }\n });\n }\n};\n\n// Flush queued engage operations - order does not matter,\n// and there are network level race conditions anyway\nMixpanelPeople.prototype._flush = function(\n _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n var _this = this;\n\n this._flush_one_queue(SET_ACTION, this.set, _set_callback);\n this._flush_one_queue(SET_ONCE_ACTION, this.set_once, _set_once_callback);\n this._flush_one_queue(UNSET_ACTION, this.unset, _unset_callback, function(queue) { return _.keys(queue); });\n this._flush_one_queue(ADD_ACTION, this.increment, _add_callback);\n this._flush_one_queue(UNION_ACTION, this.union, _union_callback);\n\n // we have to fire off each $append individually since there is\n // no concat method server side\n var $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n if (!_.isUndefined($append_queue) && _.isArray($append_queue) && $append_queue.length) {\n var $append_item;\n var append_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, $append_item);\n }\n if (!_.isUndefined(_append_callback)) {\n _append_callback(response, data);\n }\n };\n for (var i = $append_queue.length - 1; i >= 0; i--) {\n $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n $append_item = $append_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($append_item)) {\n _this.append($append_item, append_callback);\n }\n }\n }\n\n // same for $remove\n var $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n if (!_.isUndefined($remove_queue) && _.isArray($remove_queue) && $remove_queue.length) {\n var $remove_item;\n var remove_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, $remove_item);\n }\n if (!_.isUndefined(_remove_callback)) {\n _remove_callback(response, data);\n }\n };\n for (var j = $remove_queue.length - 1; j >= 0; j--) {\n $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n $remove_item = $remove_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($remove_item)) {\n _this.remove($remove_item, remove_callback);\n }\n }\n }\n};\n\nMixpanelPeople.prototype._is_reserved_property = function(prop) {\n return prop === '$distinct_id' || prop === '$token' || prop === '$device_id' || prop === '$user_id' || prop === '$had_persisted_distinct_id';\n};\n\n// MixpanelPeople Exports\nMixpanelPeople.prototype['set'] = MixpanelPeople.prototype.set;\nMixpanelPeople.prototype['set_once'] = MixpanelPeople.prototype.set_once;\nMixpanelPeople.prototype['unset'] = MixpanelPeople.prototype.unset;\nMixpanelPeople.prototype['increment'] = MixpanelPeople.prototype.increment;\nMixpanelPeople.prototype['append'] = MixpanelPeople.prototype.append;\nMixpanelPeople.prototype['remove'] = MixpanelPeople.prototype.remove;\nMixpanelPeople.prototype['union'] = MixpanelPeople.prototype.union;\nMixpanelPeople.prototype['track_charge'] = MixpanelPeople.prototype.track_charge;\nMixpanelPeople.prototype['clear_charges'] = MixpanelPeople.prototype.clear_charges;\nMixpanelPeople.prototype['delete_user'] = MixpanelPeople.prototype.delete_user;\nMixpanelPeople.prototype['toString'] = MixpanelPeople.prototype.toString;\n\n/* eslint camelcase: \"off\" */\n\n/*\n * Constants\n */\n/** @const */ var SET_QUEUE_KEY = '__mps';\n/** @const */ var SET_ONCE_QUEUE_KEY = '__mpso';\n/** @const */ var UNSET_QUEUE_KEY = '__mpus';\n/** @const */ var ADD_QUEUE_KEY = '__mpa';\n/** @const */ var APPEND_QUEUE_KEY = '__mpap';\n/** @const */ var REMOVE_QUEUE_KEY = '__mpr';\n/** @const */ var UNION_QUEUE_KEY = '__mpu';\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\n/** @const */ var PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';\n/** @const */ var ALIAS_ID_KEY = '__alias';\n/** @const */ var EVENT_TIMERS_KEY = '__timers';\n/** @const */ var RESERVED_PROPERTIES = [\n SET_QUEUE_KEY,\n SET_ONCE_QUEUE_KEY,\n UNSET_QUEUE_KEY,\n ADD_QUEUE_KEY,\n APPEND_QUEUE_KEY,\n REMOVE_QUEUE_KEY,\n UNION_QUEUE_KEY,\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n EVENT_TIMERS_KEY\n];\n\n/**\n * Mixpanel Persistence Object\n * @constructor\n */\nvar MixpanelPersistence = function(config) {\n this['props'] = {};\n this.campaign_params_saved = false;\n\n if (config['persistence_name']) {\n this.name = 'mp_' + config['persistence_name'];\n } else {\n this.name = 'mp_' + config['token'] + '_mixpanel';\n }\n\n var storage_type = config['persistence'];\n if (storage_type !== 'cookie' && storage_type !== 'localStorage') {\n console$1.critical('Unknown persistence type ' + storage_type + '; falling back to cookie');\n storage_type = config['persistence'] = 'cookie';\n }\n\n if (storage_type === 'localStorage' && _.localStorage.is_supported()) {\n this.storage = _.localStorage;\n } else {\n this.storage = _.cookie;\n }\n\n this.load();\n this.update_config(config);\n this.upgrade();\n this.save();\n};\n\nMixpanelPersistence.prototype.properties = function() {\n var p = {};\n\n this.load();\n\n // Filter out reserved properties\n _.each(this['props'], function(v, k) {\n if (!_.include(RESERVED_PROPERTIES, k)) {\n p[k] = v;\n }\n });\n return p;\n};\n\nMixpanelPersistence.prototype.load = function() {\n if (this.disabled) { return; }\n\n var entry = this.storage.parse(this.name);\n\n if (entry) {\n this['props'] = _.extend({}, entry);\n }\n};\n\nMixpanelPersistence.prototype.upgrade = function() {\n var old_cookie,\n old_localstorage;\n\n // if transferring from cookie to localStorage or vice-versa, copy existing\n // super properties over to new storage mode\n if (this.storage === _.localStorage) {\n old_cookie = _.cookie.parse(this.name);\n\n _.cookie.remove(this.name);\n _.cookie.remove(this.name, true);\n\n if (old_cookie) {\n this.register_once(old_cookie);\n }\n } else if (this.storage === _.cookie) {\n old_localstorage = _.localStorage.parse(this.name);\n\n _.localStorage.remove(this.name);\n\n if (old_localstorage) {\n this.register_once(old_localstorage);\n }\n }\n};\n\nMixpanelPersistence.prototype.save = function() {\n if (this.disabled) { return; }\n\n this.storage.set(\n this.name,\n _.JSONEncode(this['props']),\n this.expire_days,\n this.cross_subdomain,\n this.secure,\n this.cross_site,\n this.cookie_domain\n );\n};\n\nMixpanelPersistence.prototype.load_prop = function(key) {\n this.load();\n return this['props'][key];\n};\n\nMixpanelPersistence.prototype.remove = function() {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false, this.cookie_domain);\n this.storage.remove(this.name, true, this.cookie_domain);\n};\n\n// removes the storage entry and deletes all loaded data\n// forced name for tests\nMixpanelPersistence.prototype.clear = function() {\n this.remove();\n this['props'] = {};\n};\n\n/**\n* @param {Object} props\n* @param {*=} default_value\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register_once = function(props, default_value, days) {\n if (_.isObject(props)) {\n if (typeof(default_value) === 'undefined') { default_value = 'None'; }\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n\n _.each(props, function(val, prop) {\n if (!this['props'].hasOwnProperty(prop) || this['props'][prop] === default_value) {\n this['props'][prop] = val;\n }\n }, this);\n\n this.save();\n\n return true;\n }\n return false;\n};\n\n/**\n* @param {Object} props\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register = function(props, days) {\n if (_.isObject(props)) {\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n _.extend(this['props'], props);\n this.save();\n\n return true;\n }\n return false;\n};\n\nMixpanelPersistence.prototype.unregister = function(prop) {\n this.load();\n if (prop in this['props']) {\n delete this['props'][prop];\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.update_search_keyword = function(referrer) {\n this.register(_.info.searchInfo(referrer));\n};\n\n// EXPORTED METHOD, we test this directly.\nMixpanelPersistence.prototype.update_referrer_info = function(referrer) {\n // If referrer doesn't exist, we want to note the fact that it was type-in traffic.\n this.register_once({\n '$initial_referrer': referrer || '$direct',\n '$initial_referring_domain': _.info.referringDomain(referrer) || '$direct'\n }, '');\n};\n\nMixpanelPersistence.prototype.get_referrer_info = function() {\n return _.strip_empty_properties({\n '$initial_referrer': this['props']['$initial_referrer'],\n '$initial_referring_domain': this['props']['$initial_referring_domain']\n });\n};\n\nMixpanelPersistence.prototype.update_config = function(config) {\n this.default_expiry = this.expire_days = config['cookie_expiration'];\n this.set_disabled(config['disable_persistence']);\n this.set_cookie_domain(config['cookie_domain']);\n this.set_cross_site(config['cross_site_cookie']);\n this.set_cross_subdomain(config['cross_subdomain_cookie']);\n this.set_secure(config['secure_cookie']);\n};\n\nMixpanelPersistence.prototype.set_disabled = function(disabled) {\n this.disabled = disabled;\n if (this.disabled) {\n this.remove();\n } else {\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cookie_domain = function(cookie_domain) {\n if (cookie_domain !== this.cookie_domain) {\n this.remove();\n this.cookie_domain = cookie_domain;\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_site = function(cross_site) {\n if (cross_site !== this.cross_site) {\n this.cross_site = cross_site;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_subdomain = function(cross_subdomain) {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.get_cross_subdomain = function() {\n return this.cross_subdomain;\n};\n\nMixpanelPersistence.prototype.set_secure = function(secure) {\n if (secure !== this.secure) {\n this.secure = secure ? true : false;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype._add_to_people_queue = function(queue, data) {\n var q_key = this._get_queue_key(queue),\n q_data = data[queue],\n set_q = this._get_or_create_queue(SET_ACTION),\n set_once_q = this._get_or_create_queue(SET_ONCE_ACTION),\n unset_q = this._get_or_create_queue(UNSET_ACTION),\n add_q = this._get_or_create_queue(ADD_ACTION),\n union_q = this._get_or_create_queue(UNION_ACTION),\n remove_q = this._get_or_create_queue(REMOVE_ACTION, []),\n append_q = this._get_or_create_queue(APPEND_ACTION, []);\n\n if (q_key === SET_QUEUE_KEY) {\n // Update the set queue - we can override any existing values\n _.extend(set_q, q_data);\n // if there was a pending increment, override it\n // with the set.\n this._pop_from_people_queue(ADD_ACTION, q_data);\n // if there was a pending union, override it\n // with the set.\n this._pop_from_people_queue(UNION_ACTION, q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === SET_ONCE_QUEUE_KEY) {\n // only queue the data if there is not already a set_once call for it.\n _.each(q_data, function(v, k) {\n if (!(k in set_once_q)) {\n set_once_q[k] = v;\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNSET_QUEUE_KEY) {\n _.each(q_data, function(prop) {\n\n // undo previously-queued actions on this key\n _.each([set_q, set_once_q, add_q, union_q], function(enqueued_obj) {\n if (prop in enqueued_obj) {\n delete enqueued_obj[prop];\n }\n });\n _.each(append_q, function(append_obj) {\n if (prop in append_obj) {\n delete append_obj[prop];\n }\n });\n\n unset_q[prop] = true;\n\n });\n } else if (q_key === ADD_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n // If it exists in the set queue, increment\n // the value\n if (k in set_q) {\n set_q[k] += v;\n } else {\n // If it doesn't exist, update the add\n // queue\n if (!(k in add_q)) {\n add_q[k] = 0;\n }\n add_q[k] += v;\n }\n }, this);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNION_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n if (_.isArray(v)) {\n if (!(k in union_q)) {\n union_q[k] = [];\n }\n // We may send duplicates, the server will dedup them.\n union_q[k] = union_q[k].concat(v);\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === REMOVE_QUEUE_KEY) {\n remove_q.push(q_data);\n this._pop_from_people_queue(APPEND_ACTION, q_data);\n } else if (q_key === APPEND_QUEUE_KEY) {\n append_q.push(q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n }\n\n console$1.log('MIXPANEL PEOPLE REQUEST (QUEUED, PENDING IDENTIFY):');\n console$1.log(data);\n\n this.save();\n};\n\nMixpanelPersistence.prototype._pop_from_people_queue = function(queue, data) {\n var q = this['props'][this._get_queue_key(queue)];\n if (!_.isUndefined(q)) {\n _.each(data, function(v, k) {\n if (queue === APPEND_ACTION || queue === REMOVE_ACTION) {\n // list actions: only remove if both k+v match\n // e.g. remove should not override append in a case like\n // append({foo: 'bar'}); remove({foo: 'qux'})\n _.each(q, function(queued_action) {\n if (queued_action[k] === v) {\n delete queued_action[k];\n }\n });\n } else {\n delete q[k];\n }\n }, this);\n }\n};\n\nMixpanelPersistence.prototype.load_queue = function(queue) {\n return this.load_prop(this._get_queue_key(queue));\n};\n\nMixpanelPersistence.prototype._get_queue_key = function(queue) {\n if (queue === SET_ACTION) {\n return SET_QUEUE_KEY;\n } else if (queue === SET_ONCE_ACTION) {\n return SET_ONCE_QUEUE_KEY;\n } else if (queue === UNSET_ACTION) {\n return UNSET_QUEUE_KEY;\n } else if (queue === ADD_ACTION) {\n return ADD_QUEUE_KEY;\n } else if (queue === APPEND_ACTION) {\n return APPEND_QUEUE_KEY;\n } else if (queue === REMOVE_ACTION) {\n return REMOVE_QUEUE_KEY;\n } else if (queue === UNION_ACTION) {\n return UNION_QUEUE_KEY;\n } else {\n console$1.error('Invalid queue:', queue);\n }\n};\n\nMixpanelPersistence.prototype._get_or_create_queue = function(queue, default_val) {\n var key = this._get_queue_key(queue);\n default_val = _.isUndefined(default_val) ? {} : default_val;\n return this['props'][key] || (this['props'][key] = default_val);\n};\n\nMixpanelPersistence.prototype.set_event_timer = function(event_name, timestamp) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n timers[event_name] = timestamp;\n this['props'][EVENT_TIMERS_KEY] = timers;\n this.save();\n};\n\nMixpanelPersistence.prototype.remove_event_timer = function(event_name) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n var timestamp = timers[event_name];\n if (!_.isUndefined(timestamp)) {\n delete this['props'][EVENT_TIMERS_KEY][event_name];\n this.save();\n }\n return timestamp;\n};\n\n/* eslint camelcase: \"off\" */\n\n/*\n * Mixpanel JS Library\n *\n * Copyright 2012, Mixpanel, Inc. All Rights Reserved\n * http://mixpanel.com/\n *\n * Includes portions of Underscore.js\n * http://documentcloud.github.com/underscore/\n * (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.\n * Released under the MIT License.\n */\n\n// ==ClosureCompiler==\n// @compilation_level ADVANCED_OPTIMIZATIONS\n// @output_file_name mixpanel-2.8.min.js\n// ==/ClosureCompiler==\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nvar init_type; // MODULE or SNIPPET loader\n// allow bundlers to specify how extra code (recorder bundle) should be loaded\n// eslint-disable-next-line no-unused-vars\nvar load_extra_bundle = function(src, _onload) {\n throw new Error(src + ' not available in this build.');\n};\n\nvar mixpanel_master; // main mixpanel instance / object\nvar INIT_MODULE = 0;\nvar INIT_SNIPPET = 1;\n\nvar IDENTITY_FUNC = function(x) {return x;};\nvar NOOP_FUNC = function() {};\n\n/** @const */ var PRIMARY_INSTANCE_NAME = 'mixpanel';\n/** @const */ var PAYLOAD_TYPE_BASE64 = 'base64';\n/** @const */ var PAYLOAD_TYPE_JSON = 'json';\n/** @const */ var DEVICE_ID_PREFIX = '$device:';\n\n\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\nvar USE_XHR = (win.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest());\n\n// IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\nvar ENQUEUE_REQUESTS = !USE_XHR && (userAgent.indexOf('MSIE') === -1) && (userAgent.indexOf('Mozilla') === -1);\n\n// save reference to navigator.sendBeacon so it can be minified\nvar sendBeacon = null;\nif (navigator['sendBeacon']) {\n sendBeacon = function() {\n // late reference to navigator.sendBeacon to allow patching/spying\n return navigator['sendBeacon'].apply(navigator, arguments);\n };\n}\n\nvar DEFAULT_API_ROUTES = {\n 'track': 'track/',\n 'engage': 'engage/',\n 'groups': 'groups/',\n 'record': 'record/'\n};\n\n/*\n * Module-level globals\n */\nvar DEFAULT_CONFIG = {\n 'api_host': 'https://api-js.mixpanel.com',\n 'api_routes': DEFAULT_API_ROUTES,\n 'api_method': 'POST',\n 'api_transport': 'XHR',\n 'api_payload_format': PAYLOAD_TYPE_BASE64,\n 'app_host': 'https://mixpanel.com',\n 'cdn': 'https://cdn.mxpnl.com',\n 'cross_site_cookie': false,\n 'cross_subdomain_cookie': true,\n 'error_reporter': NOOP_FUNC,\n 'persistence': 'cookie',\n 'persistence_name': '',\n 'cookie_domain': '',\n 'cookie_name': '',\n 'loaded': NOOP_FUNC,\n 'mp_loader': null,\n 'track_marketing': true,\n 'track_pageview': false,\n 'skip_first_touch_marketing': false,\n 'store_google': true,\n 'stop_utm_persistence': false,\n 'save_referrer': true,\n 'test': false,\n 'verbose': false,\n 'img': false,\n 'debug': false,\n 'track_links_timeout': 300,\n 'cookie_expiration': 365,\n 'upgrade': false,\n 'disable_persistence': false,\n 'disable_cookie': false,\n 'secure_cookie': false,\n 'ip': true,\n 'opt_out_tracking_by_default': false,\n 'opt_out_persistence_by_default': false,\n 'opt_out_tracking_persistence_type': 'localStorage',\n 'opt_out_tracking_cookie_prefix': null,\n 'property_blacklist': [],\n 'xhr_headers': {}, // { header: value, header2: value }\n 'ignore_dnt': false,\n 'batch_requests': true,\n 'batch_size': 50,\n 'batch_flush_interval_ms': 5000,\n 'batch_request_timeout_ms': 90000,\n 'batch_autostart': true,\n 'hooks': {},\n 'record_block_class': new RegExp('^(mp-block|fs-exclude|amp-block|rr-block|ph-no-capture)$'),\n 'record_block_selector': 'img, video',\n 'record_collect_fonts': false,\n 'record_idle_timeout_ms': 30 * 60 * 1000, // 30 minutes\n 'record_inline_images': false,\n 'record_mask_text_class': new RegExp('^(mp-mask|fs-mask|amp-mask|rr-mask|ph-mask)$'),\n 'record_mask_text_selector': '*',\n 'record_max_ms': MAX_RECORDING_MS,\n 'record_min_ms': 0,\n 'record_sessions_percent': 0,\n 'recorder_src': 'https://cdn.mxpnl.com/libs/mixpanel-recorder.min.js'\n};\n\nvar DOM_LOADED = false;\n\n/**\n * Mixpanel Library Object\n * @constructor\n */\nvar MixpanelLib = function() {};\n\n\n/**\n * create_mplib(token:string, config:object, name:string)\n *\n * This function is used by the init method of MixpanelLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.mixpanel as well as any additional instances\n * declared before this file has loaded).\n */\nvar create_mplib = function(token, config, name) {\n var instance,\n target = (name === PRIMARY_INSTANCE_NAME) ? mixpanel_master : mixpanel_master[name];\n\n if (target && init_type === INIT_MODULE) {\n instance = target;\n } else {\n if (target && !_.isArray(target)) {\n console$1.error('You have already initialized ' + name);\n return;\n }\n instance = new MixpanelLib();\n }\n\n instance._cached_groups = {}; // cache groups in a pool\n\n instance._init(token, config, name);\n\n instance['people'] = new MixpanelPeople();\n instance['people']._init(instance);\n\n if (!instance.get_config('skip_first_touch_marketing')) {\n // We need null UTM params in the object because\n // UTM parameters act as a tuple. If any UTM param\n // is present, then we set all UTM params including\n // empty ones together\n var utm_params = _.info.campaignParams(null);\n var initial_utm_params = {};\n var has_utm = false;\n _.each(utm_params, function(utm_value, utm_key) {\n initial_utm_params['initial_' + utm_key] = utm_value;\n if (utm_value) {\n has_utm = true;\n }\n });\n if (has_utm) {\n instance['people'].set_once(initial_utm_params);\n }\n }\n\n // if any instance on the page has debug = true, we set the\n // global debug to be true\n Config.DEBUG = Config.DEBUG || instance.get_config('debug');\n\n // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n if (!_.isUndefined(target) && _.isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance['people'], target['people']);\n instance._execute_array(target);\n }\n\n return instance;\n};\n\n// Initialization methods\n\n/**\n * This function initializes a new instance of the Mixpanel tracking object.\n * All new instances are added to the main mixpanel object as sub properties (such as\n * mixpanel.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * mixpanel.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * mixpanel.library_name.track(...);\n *\n * @param {String} token Your Mixpanel API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options.\n * @param {String} [name] The name for the new mixpanel instance that you want created\n */\nMixpanelLib.prototype.init = function (token, config, name) {\n if (_.isUndefined(name)) {\n this.report_error('You must name your new library: init(token, config, name)');\n return;\n }\n if (name === PRIMARY_INSTANCE_NAME) {\n this.report_error('You must initialize the main mixpanel object right after you include the Mixpanel js snippet');\n return;\n }\n\n var instance = create_mplib(token, config, name);\n mixpanel_master[name] = instance;\n instance._loaded();\n\n return instance;\n};\n\n// mixpanel._init(token:string, config:object, name:string)\n//\n// This function sets up the current instance of the mixpanel\n// library. The difference between this method and the init(...)\n// method is this one initializes the actual instance, whereas the\n// init(...) method sets up a new library and calls _init on it.\n//\nMixpanelLib.prototype._init = function(token, config, name) {\n config = config || {};\n\n this['__loaded'] = true;\n this['config'] = {};\n\n var variable_features = {};\n\n // default to JSON payload for standard mixpanel.com API hosts\n if (!('api_payload_format' in config)) {\n var api_host = config['api_host'] || DEFAULT_CONFIG['api_host'];\n if (api_host.match(/\\.mixpanel\\.com/)) {\n variable_features['api_payload_format'] = PAYLOAD_TYPE_JSON;\n }\n }\n\n this.set_config(_.extend({}, DEFAULT_CONFIG, variable_features, config, {\n 'name': name,\n 'token': token,\n 'callback_fn': ((name === PRIMARY_INSTANCE_NAME) ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc'\n }));\n\n this['_jsc'] = NOOP_FUNC;\n\n this.__dom_loaded_queue = [];\n this.__request_queue = [];\n this.__disabled_events = [];\n this._flags = {\n 'disable_all_events': false,\n 'identify_called': false\n };\n\n // set up request queueing/batching\n this.request_batchers = {};\n this._batch_requests = this.get_config('batch_requests');\n if (this._batch_requests) {\n if (!_.localStorage.is_supported(true) || !USE_XHR) {\n this._batch_requests = false;\n console$1.log('Turning off Mixpanel request-queueing; needs XHR and localStorage support');\n _.each(this.get_batcher_configs(), function(batcher_config) {\n console$1.log('Clearing batch queue ' + batcher_config.queue_key);\n _.localStorage.remove(batcher_config.queue_key);\n });\n } else {\n this.init_batchers();\n if (sendBeacon && win.addEventListener) {\n // Before page closes or hides (user tabs away etc), attempt to flush any events\n // queued up via navigator.sendBeacon. Since sendBeacon doesn't report success/failure,\n // events will not be removed from the persistent store; if the site is loaded again,\n // the events will be flushed again on startup and deduplicated on the Mixpanel server\n // side.\n // There is no reliable way to capture only page close events, so we lean on the\n // visibilitychange and pagehide events as recommended at\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event#usage_notes.\n // These events fire when the user clicks away from the current page/tab, so will occur\n // more frequently than page unload, but are the only mechanism currently for capturing\n // this scenario somewhat reliably.\n var flush_on_unload = _.bind(function() {\n if (!this.request_batchers.events.stopped) {\n this.request_batchers.events.flush({unloading: true});\n }\n }, this);\n win.addEventListener('pagehide', function(ev) {\n if (ev['persisted']) {\n flush_on_unload();\n }\n });\n win.addEventListener('visibilitychange', function() {\n if (document$1['visibilityState'] === 'hidden') {\n flush_on_unload();\n }\n });\n }\n }\n }\n\n this['persistence'] = this['cookie'] = new MixpanelPersistence(this['config']);\n this.unpersisted_superprops = {};\n this._gdpr_init();\n\n var uuid = _.UUID();\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n }\n\n var track_pageview_option = this.get_config('track_pageview');\n if (track_pageview_option) {\n this._init_url_change_tracking(track_pageview_option);\n }\n\n if (this.get_config('record_sessions_percent') > 0 && Math.random() * 100 <= this.get_config('record_sessions_percent')) {\n this.start_session_recording();\n }\n};\n\nMixpanelLib.prototype.start_session_recording = addOptOutCheckMixpanelLib(function () {\n if (!win['MutationObserver']) {\n console$1.critical('Browser does not support MutationObserver; skipping session recording');\n return;\n }\n\n var handleLoadedRecorder = _.bind(function() {\n this._recorder = this._recorder || new win['__mp_recorder'](this);\n this._recorder['startRecording']();\n }, this);\n\n if (_.isUndefined(win['__mp_recorder'])) {\n load_extra_bundle(this.get_config('recorder_src'), handleLoadedRecorder);\n } else {\n handleLoadedRecorder();\n }\n});\n\nMixpanelLib.prototype.stop_session_recording = function () {\n if (this._recorder) {\n this._recorder['stopRecording']();\n } else {\n console$1.critical('Session recorder module not loaded');\n }\n};\n\nMixpanelLib.prototype.get_session_recording_properties = function () {\n var props = {};\n if (this._recorder) {\n var replay_id = this._recorder['replayId'];\n if (replay_id) {\n props['$mp_replay_id'] = replay_id;\n }\n }\n return props;\n};\n\n// Private methods\n\nMixpanelLib.prototype._loaded = function() {\n this.get_config('loaded')(this);\n this._set_default_superprops();\n this['people'].set_once(this['persistence'].get_referrer_info());\n\n // `store_google` is now deprecated and previously stored UTM parameters are cleared\n // from persistence by default.\n if (this.get_config('store_google') && this.get_config('stop_utm_persistence')) {\n var utm_params = _.info.campaignParams(null);\n _.each(utm_params, function(_utm_value, utm_key) {\n // We need to unregister persisted UTM parameters so old values\n // are not mixed with the new UTM parameters\n this.unregister(utm_key);\n }.bind(this));\n }\n};\n\n// update persistence with info on referrer, UTM params, etc\nMixpanelLib.prototype._set_default_superprops = function() {\n this['persistence'].update_search_keyword(document$1.referrer);\n // Registering super properties for UTM persistence by 'store_google' is deprecated.\n if (this.get_config('store_google') && !this.get_config('stop_utm_persistence')) {\n this.register(_.info.campaignParams());\n }\n if (this.get_config('save_referrer')) {\n this['persistence'].update_referrer_info(document$1.referrer);\n }\n};\n\nMixpanelLib.prototype._dom_loaded = function() {\n _.each(this.__dom_loaded_queue, function(item) {\n this._track_dom.apply(this, item);\n }, this);\n\n if (!this.has_opted_out_tracking()) {\n _.each(this.__request_queue, function(item) {\n this._send_request.apply(this, item);\n }, this);\n }\n\n delete this.__dom_loaded_queue;\n delete this.__request_queue;\n};\n\nMixpanelLib.prototype._track_dom = function(DomClass, args) {\n if (this.get_config('img')) {\n this.report_error('You can\\'t use DOM tracking functions with img = true.');\n return false;\n }\n\n if (!DOM_LOADED) {\n this.__dom_loaded_queue.push([DomClass, args]);\n return false;\n }\n\n var dt = new DomClass().init(this);\n return dt.track.apply(dt, args);\n};\n\nMixpanelLib.prototype._init_url_change_tracking = function(track_pageview_option) {\n var previous_tracked_url = '';\n var tracked = this.track_pageview();\n if (tracked) {\n previous_tracked_url = _.info.currentUrl();\n }\n\n if (_.include(['full-url', 'url-with-path-and-query-string', 'url-with-path'], track_pageview_option)) {\n win.addEventListener('popstate', function() {\n win.dispatchEvent(new Event('mp_locationchange'));\n });\n win.addEventListener('hashchange', function() {\n win.dispatchEvent(new Event('mp_locationchange'));\n });\n var nativePushState = win.history.pushState;\n if (typeof nativePushState === 'function') {\n win.history.pushState = function(state, unused, url) {\n nativePushState.call(win.history, state, unused, url);\n win.dispatchEvent(new Event('mp_locationchange'));\n };\n }\n var nativeReplaceState = win.history.replaceState;\n if (typeof nativeReplaceState === 'function') {\n win.history.replaceState = function(state, unused, url) {\n nativeReplaceState.call(win.history, state, unused, url);\n win.dispatchEvent(new Event('mp_locationchange'));\n };\n }\n win.addEventListener('mp_locationchange', function() {\n var current_url = _.info.currentUrl();\n var should_track = false;\n if (track_pageview_option === 'full-url') {\n should_track = current_url !== previous_tracked_url;\n } else if (track_pageview_option === 'url-with-path-and-query-string') {\n should_track = current_url.split('#')[0] !== previous_tracked_url.split('#')[0];\n } else if (track_pageview_option === 'url-with-path') {\n should_track = current_url.split('#')[0].split('?')[0] !== previous_tracked_url.split('#')[0].split('?')[0];\n }\n\n if (should_track) {\n var tracked = this.track_pageview();\n if (tracked) {\n previous_tracked_url = current_url;\n }\n }\n }.bind(this));\n }\n};\n\n/**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\nMixpanelLib.prototype._prepare_callback = function(callback, data) {\n if (_.isUndefined(callback)) {\n return null;\n }\n\n if (USE_XHR) {\n var callback_function = function(response) {\n callback(response, data);\n };\n return callback_function;\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n var jsc = this['_jsc'];\n var randomized_cb = '' + Math.floor(Math.random() * 100000000);\n var callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']';\n jsc[randomized_cb] = function(response) {\n delete jsc[randomized_cb];\n callback(response, data);\n };\n return callback_string;\n }\n};\n\nMixpanelLib.prototype._send_request = function(url, data, options, callback) {\n var succeeded = true;\n\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push(arguments);\n return succeeded;\n }\n\n var DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose')\n };\n var body_data = null;\n\n if (!callback && (_.isFunction(options) || typeof options === 'string')) {\n callback = options;\n options = null;\n }\n options = _.extend(DEFAULT_OPTIONS, options || {});\n if (!USE_XHR) {\n options.method = 'GET';\n }\n var use_post = options.method === 'POST';\n var use_sendBeacon = sendBeacon && use_post && options.transport.toLowerCase() === 'sendbeacon';\n\n // needed to correctly format responses\n var verbose_mode = options.verbose;\n if (data['verbose']) { verbose_mode = true; }\n\n if (this.get_config('test')) { data['test'] = 1; }\n if (verbose_mode) { data['verbose'] = 1; }\n if (this.get_config('img')) { data['img'] = 1; }\n if (!USE_XHR) {\n if (callback) {\n data['callback'] = callback;\n } else if (verbose_mode || this.get_config('test')) {\n // Verbose output (from verbose mode, or an error in test mode) is a json blob,\n // which by itself is not valid javascript. Without a callback, this verbose output will\n // cause an error when returned via jsonp, so we force a no-op callback param.\n // See the ECMA script spec: http://www.ecma-international.org/ecma-262/5.1/#sec-12.4\n data['callback'] = '(function(){})';\n }\n }\n\n data['ip'] = this.get_config('ip')?1:0;\n data['_'] = new Date().getTime().toString();\n\n if (use_post) {\n body_data = 'data=' + encodeURIComponent(data['data']);\n delete data['data'];\n }\n\n url += '?' + _.HTTPBuildQuery(data);\n\n var lib = this;\n if ('img' in data) {\n var img = document$1.createElement('img');\n img.src = url;\n document$1.body.appendChild(img);\n } else if (use_sendBeacon) {\n try {\n succeeded = sendBeacon(url, body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n try {\n if (callback) {\n callback(succeeded ? 1 : 0);\n }\n } catch (e) {\n lib.report_error(e);\n }\n } else if (USE_XHR) {\n try {\n var req = new XMLHttpRequest();\n req.open(options.method, url, true);\n\n var headers = this.get_config('xhr_headers');\n if (use_post) {\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n _.each(headers, function(headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue);\n });\n\n if (options.timeout_ms && typeof req.timeout !== 'undefined') {\n req.timeout = options.timeout_ms;\n var start_time = new Date().getTime();\n }\n\n // send the mp_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true;\n req.onreadystatechange = function () {\n if (req.readyState === 4) { // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.status === 200) {\n if (callback) {\n if (verbose_mode) {\n var response;\n try {\n response = _.JSONDecode(req.responseText);\n } catch (e) {\n lib.report_error(e);\n if (options.ignore_json_errors) {\n response = req.responseText;\n } else {\n return;\n }\n }\n callback(response);\n } else {\n callback(Number(req.responseText));\n }\n }\n } else {\n var error;\n if (\n req.timeout &&\n !req.status &&\n new Date().getTime() - start_time >= req.timeout\n ) {\n error = 'timeout';\n } else {\n error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText;\n }\n lib.report_error(error);\n if (callback) {\n if (verbose_mode) {\n var response_headers = req['responseHeaders'] || {};\n callback({status: 0, httpStatusCode: req['status'], error: error, retryAfter: response_headers['Retry-After']});\n } else {\n callback(0);\n }\n }\n }\n }\n };\n req.send(body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n } else {\n var script = document$1.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n var s = document$1.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(script, s);\n }\n\n return succeeded;\n};\n\n/**\n * _execute_array() deals with processing any mixpanel function\n * calls that were called before the Mixpanel library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the mixpanel function calls && user defined\n * functions BEFORE we fire off mixpanel tracking calls. This is so\n * identify/register/set_config calls can properly modify early\n * tracking calls.\n *\n * @param {Array} array\n */\nMixpanelLib.prototype._execute_array = function(array) {\n var fn_name, alias_calls = [], other_calls = [], tracking_calls = [];\n _.each(array, function(item) {\n if (item) {\n fn_name = item[0];\n if (_.isArray(fn_name)) {\n tracking_calls.push(item); // chained call e.g. mixpanel.get_group().set()\n } else if (typeof(item) === 'function') {\n item.call(this);\n } else if (_.isArray(item) && fn_name === 'alias') {\n alias_calls.push(item);\n } else if (_.isArray(item) && fn_name.indexOf('track') !== -1 && typeof(this[fn_name]) === 'function') {\n tracking_calls.push(item);\n } else {\n other_calls.push(item);\n }\n }\n }, this);\n\n var execute = function(calls, context) {\n _.each(calls, function(item) {\n if (_.isArray(item[0])) {\n // chained call\n var caller = context;\n _.each(item, function(call) {\n caller = caller[call[0]].apply(caller, call.slice(1));\n });\n } else {\n this[item[0]].apply(this, item.slice(1));\n }\n }, context);\n };\n\n execute(alias_calls, this);\n execute(other_calls, this);\n execute(tracking_calls, this);\n};\n\n// request queueing utils\n\nMixpanelLib.prototype.are_batchers_initialized = function() {\n return !!this.request_batchers.events;\n};\n\nMixpanelLib.prototype.get_batcher_configs = function() {\n var queue_prefix = '__mpq_' + this.get_config('token');\n var api_routes = this.get_config('api_routes');\n this._batcher_configs = this._batcher_configs || {\n events: {type: 'events', endpoint: '/' + api_routes['track'], queue_key: queue_prefix + '_ev'},\n people: {type: 'people', endpoint: '/' + api_routes['engage'], queue_key: queue_prefix + '_pp'},\n groups: {type: 'groups', endpoint: '/' + api_routes['groups'], queue_key: queue_prefix + '_gr'}\n };\n return this._batcher_configs;\n};\n\nMixpanelLib.prototype.init_batchers = function() {\n if (!this.are_batchers_initialized()) {\n var batcher_for = _.bind(function(attrs) {\n return new RequestBatcher(\n attrs.queue_key,\n {\n libConfig: this['config'],\n errorReporter: this.get_config('error_reporter'),\n sendRequestFunc: _.bind(function(data, options, cb) {\n this._send_request(\n this.get_config('api_host') + attrs.endpoint,\n this._encode_data_for_request(data),\n options,\n this._prepare_callback(cb, data)\n );\n }, this),\n beforeSendHook: _.bind(function(item) {\n return this._run_hook('before_send_' + attrs.type, item);\n }, this),\n stopAllBatchingFunc: _.bind(this.stop_batch_senders, this),\n usePersistence: true\n }\n );\n }, this);\n var batcher_configs = this.get_batcher_configs();\n this.request_batchers = {\n events: batcher_for(batcher_configs.events),\n people: batcher_for(batcher_configs.people),\n groups: batcher_for(batcher_configs.groups)\n };\n }\n if (this.get_config('batch_autostart')) {\n this.start_batch_senders();\n }\n};\n\nMixpanelLib.prototype.start_batch_senders = function() {\n this._batchers_were_started = true;\n if (this.are_batchers_initialized()) {\n this._batch_requests = true;\n _.each(this.request_batchers, function(batcher) {\n batcher.start();\n });\n }\n};\n\nMixpanelLib.prototype.stop_batch_senders = function() {\n this._batch_requests = false;\n _.each(this.request_batchers, function(batcher) {\n batcher.stop();\n batcher.clear();\n });\n};\n\n/**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * mixpanel.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\nMixpanelLib.prototype.push = function(item) {\n this._execute_array([item]);\n};\n\n/**\n * Disable events on the Mixpanel object. If passed no arguments,\n * this function disables tracking of any event. If passed an\n * array of event names, those events will be disabled, but other\n * events will continue to be tracked.\n *\n * Note: this function does not stop other mixpanel functions from\n * firing, such as register() or people.set().\n *\n * @param {Array} [events] An array of event names to disable\n */\nMixpanelLib.prototype.disable = function(events) {\n if (typeof(events) === 'undefined') {\n this._flags.disable_all_events = true;\n } else {\n this.__disabled_events = this.__disabled_events.concat(events);\n }\n};\n\nMixpanelLib.prototype._encode_data_for_request = function(data) {\n var encoded_data = _.JSONEncode(data);\n if (this.get_config('api_payload_format') === PAYLOAD_TYPE_BASE64) {\n encoded_data = _.base64Encode(encoded_data);\n }\n return {'data': encoded_data};\n};\n\n// internal method for handling track vs batch-enqueue logic\nMixpanelLib.prototype._track_or_batch = function(options, callback) {\n var truncated_data = _.truncate(options.data, 255);\n var endpoint = options.endpoint;\n var batcher = options.batcher;\n var should_send_immediately = options.should_send_immediately;\n var send_request_options = options.send_request_options || {};\n callback = callback || NOOP_FUNC;\n\n var request_enqueued_or_initiated = true;\n var send_request_immediately = _.bind(function() {\n if (!send_request_options.skip_hooks) {\n truncated_data = this._run_hook('before_send_' + options.type, truncated_data);\n }\n if (truncated_data) {\n console$1.log('MIXPANEL REQUEST:');\n console$1.log(truncated_data);\n return this._send_request(\n endpoint,\n this._encode_data_for_request(truncated_data),\n send_request_options,\n this._prepare_callback(callback, truncated_data)\n );\n } else {\n return null;\n }\n }, this);\n\n if (this._batch_requests && !should_send_immediately) {\n batcher.enqueue(truncated_data, function(succeeded) {\n if (succeeded) {\n callback(1, truncated_data);\n } else {\n send_request_immediately();\n }\n });\n } else {\n request_enqueued_or_initiated = send_request_immediately();\n }\n\n return request_enqueued_or_initiated && truncated_data;\n};\n\n/**\n * Track an event. This is the most important and\n * frequently used Mixpanel function.\n *\n * ### Usage:\n *\n * // track an event named 'Registered'\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // track an event using navigator.sendBeacon\n * mixpanel.track('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * To track link clicks or form submissions, see track_links() or track_forms().\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this track request.\n * @param {String} [options.transport] Transport method for network request ('xhr' or 'sendBeacon').\n * @param {Boolean} [options.send_immediately] Whether to bypass batching/queueing and send track request immediately.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track = addOptOutCheckMixpanelLib(function(event_name, properties, options, callback) {\n if (!callback && typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n var transport = options['transport']; // external API, don't minify 'transport' prop\n if (transport) {\n options.transport = transport; // 'transport' prop name can be minified internally\n }\n var should_send_immediately = options['send_immediately'];\n if (typeof callback !== 'function') {\n callback = NOOP_FUNC;\n }\n\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.track');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n callback(0);\n return;\n }\n\n // set defaults\n properties = _.extend({}, properties);\n properties['token'] = this.get_config('token');\n\n // set $duration if time_event was previously called for this event\n var start_timestamp = this['persistence'].remove_event_timer(event_name);\n if (!_.isUndefined(start_timestamp)) {\n var duration_in_ms = new Date().getTime() - start_timestamp;\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3));\n }\n\n this._set_default_superprops();\n\n var marketing_properties = this.get_config('track_marketing')\n ? _.info.marketingParams()\n : {};\n\n // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n\n // update properties with pageview info and super-properties\n properties = _.extend(\n {},\n _.info.properties({'mp_loader': this.get_config('mp_loader')}),\n marketing_properties,\n this['persistence'].properties(),\n this.unpersisted_superprops,\n this.get_session_recording_properties(),\n properties\n );\n\n var property_blacklist = this.get_config('property_blacklist');\n if (_.isArray(property_blacklist)) {\n _.each(property_blacklist, function(blacklisted_prop) {\n delete properties[blacklisted_prop];\n });\n } else {\n this.report_error('Invalid value for property_blacklist config: ' + property_blacklist);\n }\n\n var data = {\n 'event': event_name,\n 'properties': properties\n };\n var ret = this._track_or_batch({\n type: 'events',\n data: data,\n endpoint: this.get_config('api_host') + '/' + this.get_config('api_routes')['track'],\n batcher: this.request_batchers.events,\n should_send_immediately: should_send_immediately,\n send_request_options: options\n }, callback);\n\n return ret;\n});\n\n/**\n * Register the current user into one/many groups.\n *\n * ### Usage:\n *\n * mixpanel.set_group('company', ['mixpanel', 'google']) // an array of IDs\n * mixpanel.set_group('company', 'mixpanel')\n * mixpanel.set_group('company', 128746312)\n *\n * @param {String} group_key Group key\n * @param {Array|String|Number} group_ids An array of group IDs, or a singular group ID\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n *\n */\nMixpanelLib.prototype.set_group = addOptOutCheckMixpanelLib(function(group_key, group_ids, callback) {\n if (!_.isArray(group_ids)) {\n group_ids = [group_ids];\n }\n var prop = {};\n prop[group_key] = group_ids;\n this.register(prop);\n return this['people'].set(group_key, group_ids, callback);\n});\n\n/**\n * Add a new group for this user.\n *\n * ### Usage:\n *\n * mixpanel.add_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.add_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_values = this.get_property(group_key);\n var prop = {};\n if (old_values === undefined) {\n prop[group_key] = [group_id];\n this.register(prop);\n } else {\n if (old_values.indexOf(group_id) === -1) {\n old_values.push(group_id);\n prop[group_key] = old_values;\n this.register(prop);\n }\n }\n return this['people'].union(group_key, group_id, callback);\n});\n\n/**\n * Remove a group from this user.\n *\n * ### Usage:\n *\n * mixpanel.remove_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.remove_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_value = this.get_property(group_key);\n // if the value doesn't exist, the persistent store is unchanged\n if (old_value !== undefined) {\n var idx = old_value.indexOf(group_id);\n if (idx > -1) {\n old_value.splice(idx, 1);\n this.register({group_key: old_value});\n }\n if (old_value.length === 0) {\n this.unregister(group_key);\n }\n }\n return this['people'].remove(group_key, group_id, callback);\n});\n\n/**\n * Track an event with specific groups.\n *\n * ### Usage:\n *\n * mixpanel.track_with_groups('purchase', {'product': 'iphone'}, {'University': ['UCB', 'UCLA']})\n *\n * @param {String} event_name The name of the event (see `mixpanel.track()`)\n * @param {Object=} properties A set of properties to include with the event you're sending (see `mixpanel.track()`)\n * @param {Object=} groups An object mapping group name keys to one or more values\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.track_with_groups = addOptOutCheckMixpanelLib(function(event_name, properties, groups, callback) {\n var tracking_props = _.extend({}, properties || {});\n _.each(groups, function(v, k) {\n if (v !== null && v !== undefined) {\n tracking_props[k] = v;\n }\n });\n return this.track(event_name, tracking_props, callback);\n});\n\nMixpanelLib.prototype._create_map_key = function (group_key, group_id) {\n return group_key + '_' + JSON.stringify(group_id);\n};\n\nMixpanelLib.prototype._remove_group_from_cache = function (group_key, group_id) {\n delete this._cached_groups[this._create_map_key(group_key, group_id)];\n};\n\n/**\n * Look up reference to a Mixpanel group\n *\n * ### Usage:\n *\n * mixpanel.get_group(group_key, group_id)\n *\n * @param {String} group_key Group key\n * @param {Object} group_id A valid Mixpanel property type\n * @returns {Object} A MixpanelGroup identifier\n */\nMixpanelLib.prototype.get_group = function (group_key, group_id) {\n var map_key = this._create_map_key(group_key, group_id);\n var group = this._cached_groups[map_key];\n if (group === undefined || group._group_key !== group_key || group._group_id !== group_id) {\n group = new MixpanelGroup();\n group._init(this, group_key, group_id);\n this._cached_groups[map_key] = group;\n }\n return group;\n};\n\n/**\n * Track a default Mixpanel page view event, which includes extra default event properties to\n * improve page view data.\n *\n * ### Usage:\n *\n * // track a default $mp_web_page_view event\n * mixpanel.track_pageview();\n *\n * // track a page view event with additional event properties\n * mixpanel.track_pageview({'ab_test_variant': 'card-layout-b'});\n *\n * // example approach to track page views on different page types as event properties\n * mixpanel.track_pageview({'page': 'pricing'});\n * mixpanel.track_pageview({'page': 'homepage'});\n *\n * // UNCOMMON: Tracking a page view event with a custom event_name option. NOT expected to be used for\n * // individual pages on the same site or product. Use cases for custom event_name may be page\n * // views on different products or internal applications that are considered completely separate\n * mixpanel.track_pageview({'page': 'customer-search'}, {'event_name': '[internal] Admin Page View'});\n *\n * ### Notes:\n *\n * The `config.track_pageview` option for mixpanel.init()\n * may be turned on for tracking page loads automatically.\n *\n * // track only page loads\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: true});\n *\n * // track when the URL changes in any manner\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'full-url'});\n *\n * // track when the URL changes, ignoring any changes in the hash part\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'url-with-path-and-query-string'});\n *\n * // track when the path changes, ignoring any query parameter or hash changes\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'url-with-path'});\n *\n * @param {Object} [properties] An optional set of additional properties to send with the page view event\n * @param {Object} [options] Page view tracking options\n * @param {String} [options.event_name] - Alternate name for the tracking event\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track_pageview = addOptOutCheckMixpanelLib(function(properties, options) {\n if (typeof properties !== 'object') {\n properties = {};\n }\n options = options || {};\n var event_name = options['event_name'] || '$mp_web_page_view';\n\n var default_page_properties = _.extend(\n _.info.mpPageViewProperties(),\n _.info.campaignParams(),\n _.info.clickParams()\n );\n\n var event_properties = _.extend(\n {},\n default_page_properties,\n properties\n );\n\n return this.track(event_name, event_properties);\n});\n\n/**\n * Track clicks on a set of document elements. Selector must be a\n * valid query. Elements must exist on the page at the time track_links is called.\n *\n * ### Usage:\n *\n * // track click for link id #nav\n * mixpanel.track_links('#nav', 'Clicked Nav Link');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the Mixpanel\n * servers to respond. If they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] A properties object or function that returns a dictionary of properties when passed a DOMElement\n */\nMixpanelLib.prototype.track_links = function() {\n return this._track_dom.call(this, LinkTracker, arguments);\n};\n\n/**\n * Track form submissions. Selector must be a valid query.\n *\n * ### Usage:\n *\n * // track submission for form id 'register'\n * mixpanel.track_forms('#register', 'Created Account');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the mixpanel\n * servers to respond, if they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] This can be a set of properties, or a function that returns a set of properties after being passed a DOMElement\n */\nMixpanelLib.prototype.track_forms = function() {\n return this._track_dom.call(this, FormTracker, arguments);\n};\n\n/**\n * Time an event by including the time between this call and a\n * later 'track' call for the same event in the properties sent\n * with the event.\n *\n * ### Usage:\n *\n * // time an event named 'Registered'\n * mixpanel.time_event('Registered');\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * When called for a particular event name, the next track call for that event\n * name will include the elapsed time between the 'time_event' and 'track'\n * calls. This value is stored as seconds in the '$duration' property.\n *\n * @param {String} event_name The name of the event.\n */\nMixpanelLib.prototype.time_event = function(event_name) {\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.time_event');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n return;\n }\n\n this['persistence'].set_event_timer(event_name, new Date().getTime());\n};\n\nvar REGISTER_DEFAULTS = {\n 'persistent': true\n};\n/**\n * Helper to parse options param for register methods, maintaining\n * legacy support for plain \"days\" param instead of options object\n * @param {Number|Object} [days_or_options] 'days' option (Number), or Options object for register methods\n * @returns {Object} options object\n */\nvar options_for_register = function(days_or_options) {\n var options;\n if (_.isObject(days_or_options)) {\n options = days_or_options;\n } else if (!_.isUndefined(days_or_options)) {\n options = {'days': days_or_options};\n } else {\n options = {};\n }\n return _.extend({}, REGISTER_DEFAULTS, options);\n};\n\n/**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values.\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * mixpanel.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * mixpanel.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // register only for the current pageload\n * mixpanel.register({'Name': 'Pat'}, {persistent: false});\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register = function(props, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register(props, options['days']);\n } else {\n _.extend(this.unpersisted_superprops, props);\n }\n};\n\n/**\n * Register a set of super properties only once. This will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * mixpanel.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // register once, only for the current pageload\n * mixpanel.register_once({\n * 'First interaction time': new Date().toISOString()\n * }, 'None', {persistent: false});\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register_once = function(props, default_value, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register_once(props, default_value, options['days']);\n } else {\n if (typeof(default_value) === 'undefined') {\n default_value = 'None';\n }\n _.each(props, function(val, prop) {\n if (!this.unpersisted_superprops.hasOwnProperty(prop) || this.unpersisted_superprops[prop] === default_value) {\n this.unpersisted_superprops[prop] = val;\n }\n }, this);\n }\n};\n\n/**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n * @param {Object} [options]\n * @param {boolean} [options.persistent=true] - whether to look in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.unregister = function(property, options) {\n options = options_for_register(options);\n if (options['persistent']) {\n this['persistence'].unregister(property);\n } else {\n delete this.unpersisted_superprops[property];\n }\n};\n\nMixpanelLib.prototype._register_single = function(prop, value) {\n var props = {};\n props[prop] = value;\n this.register(props);\n};\n\n/**\n * Identify a user with a unique ID to track user activity across\n * devices, tie a user to their events, and create a user profile.\n * If you never call this method, unique visitors are tracked using\n * a UUID generated the first time they visit the site.\n *\n * Call identify when you know the identity of the current user,\n * typically after login or signup. We recommend against using\n * identify for anonymous visitors to your site.\n *\n * ### Notes:\n * If your project has\n * ID Merge\n * enabled, the identify method will connect pre- and\n * post-authentication events when appropriate.\n *\n * If your project does not have ID Merge enabled, identify will\n * change the user's local distinct_id to the unique ID you pass.\n * Events tracked prior to authentication will not be connected\n * to the same user identity. If ID Merge is disabled, alias can\n * be used to connect pre- and post-registration events.\n *\n * @param {String} [unique_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n */\nMixpanelLib.prototype.identify = function(\n new_distinct_id, _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n // Optional Parameters\n // _set_callback:function A callback to be run if and when the People set queue is flushed\n // _add_callback:function A callback to be run if and when the People add queue is flushed\n // _append_callback:function A callback to be run if and when the People append queue is flushed\n // _set_once_callback:function A callback to be run if and when the People set_once queue is flushed\n // _union_callback:function A callback to be run if and when the People union queue is flushed\n // _unset_callback:function A callback to be run if and when the People unset queue is flushed\n\n var previous_distinct_id = this.get_distinct_id();\n if (new_distinct_id && previous_distinct_id !== new_distinct_id) {\n // we allow the following condition if previous distinct_id is same as new_distinct_id\n // so that you can force flush people updates for anonymous profiles.\n if (typeof new_distinct_id === 'string' && new_distinct_id.indexOf(DEVICE_ID_PREFIX) === 0) {\n this.report_error('distinct_id cannot have $device: prefix');\n return -1;\n }\n this.register({'$user_id': new_distinct_id});\n }\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n var device_id = previous_distinct_id;\n this.register_once({\n '$had_persisted_distinct_id': true,\n '$device_id': device_id\n }, '');\n }\n\n // identify only changes the distinct id if it doesn't match either the existing or the alias;\n // if it's new, blow away the alias as well.\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY);\n this.register({'distinct_id': new_distinct_id});\n }\n this._flags.identify_called = true;\n // Flush any queued up people requests\n this['people']._flush(_set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback);\n\n // send an $identify event any time the distinct_id is changing - logic on the server\n // will determine whether or not to do anything with it.\n if (new_distinct_id !== previous_distinct_id) {\n this.track('$identify', {\n 'distinct_id': new_distinct_id,\n '$anon_distinct_id': previous_distinct_id\n }, {skip_hooks: true});\n }\n};\n\n/**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\nMixpanelLib.prototype.reset = function() {\n this['persistence'].clear();\n this._flags.identify_called = false;\n var uuid = _.UUID();\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n};\n\n/**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * distinct_id = mixpanel.get_distinct_id();\n * }\n * });\n */\nMixpanelLib.prototype.get_distinct_id = function() {\n return this.get_property('distinct_id');\n};\n\n/**\n * The alias method creates an alias which Mixpanel will use to\n * remap one id to another. Multiple aliases can point to the\n * same identifier.\n *\n * The following is a valid use of alias:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // You can add multiple id aliases to the existing ID\n * mixpanel.alias('newer_id', 'existing_id');\n *\n * Aliases can also be chained - the following is a valid example:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // chain newer_id - new_id - existing_id\n * mixpanel.alias('newer_id', 'new_id');\n *\n * Aliases cannot point to multiple identifiers - the following\n * example will not work:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // this is invalid as 'new_id' already points to 'existing_id'\n * mixpanel.alias('new_id', 'newer_id');\n *\n * ### Notes:\n *\n * If your project does not have\n * ID Merge\n * enabled, the best practice is to call alias once when a unique\n * ID is first created for a user (e.g., when a user first registers\n * for an account). Do not use alias multiple times for a single\n * user without ID Merge enabled.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\nMixpanelLib.prototype.alias = function(alias, original) {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // mixpanel.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n this.report_error('Attempting to create alias for existing People user - aborting.');\n return -2;\n }\n\n var _this = this;\n if (_.isUndefined(original)) {\n original = this.get_distinct_id();\n }\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias);\n return this.track('$create_alias', {\n 'alias': alias,\n 'distinct_id': original\n }, {\n skip_hooks: true\n }, function() {\n // Flush the people queue\n _this.identify(alias);\n });\n } else {\n this.report_error('alias matches current distinct_id - skipping api call.');\n this.identify(alias);\n return -1;\n }\n};\n\n/**\n * Provide a string to recognize the user by. The string passed to\n * this method will appear in the Mixpanel Streams product rather\n * than an automatically generated name. Name tags do not have to\n * be unique.\n *\n * This value will only be included in Streams data.\n *\n * @param {String} name_tag A human readable name for the user\n * @deprecated\n */\nMixpanelLib.prototype.name_tag = function(name_tag) {\n this._register_single('mp_name_tag', name_tag);\n};\n\n/**\n * Update the configuration of a mixpanel library instance.\n *\n * The default config is:\n *\n * {\n * // host for requests (customizable for e.g. a local proxy)\n * api_host: 'https://api-js.mixpanel.com',\n *\n * // endpoints for different types of requests\n * api_routes: {\n * track: 'track/',\n * engage: 'engage/',\n * groups: 'groups/',\n * }\n *\n * // HTTP method for tracking requests\n * api_method: 'POST'\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. Mixpanel\n * // tracking via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // request-batching/queueing/retry\n * batch_requests: true,\n *\n * // maximum number of events/updates to send in a single\n * // network request\n * batch_size: 50,\n *\n * // milliseconds to wait between sending batch requests\n * batch_flush_interval_ms: 5000,\n *\n * // milliseconds to wait for network responses to batch requests\n * // before they are considered timed-out and retried\n * batch_request_timeout_ms: 90000,\n *\n * // override value for cookie domain, only useful for ensuring\n * // correct cross-subdomain cookies on unusual domains like\n * // subdomain.mainsite.avocat.fr; NB this cannot be used to\n * // set cookies on a different domain than the current origin\n * cookie_domain: ''\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // if true, cookie will be set with SameSite=None; Secure\n * // this is only useful in special situations, like embedded\n * // 3rd-party iframes that set up a Mixpanel instance\n * cross_site_cookie: false\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the mixpanel cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, Mixpanel will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of tracking by this Mixpanel instance by default\n * opt_out_tracking_by_default: false\n *\n * // opt users out of browser data storage by this Mixpanel instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_tracking_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_tracking_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // mixpanel cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with track() calls\n * property_blacklist: []\n *\n * // if this is true, mixpanel cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // disables enriching user profiles with first touch marketing data\n * skip_first_touch_marketing: false\n *\n * // the amount of time track_links will\n * // wait for Mixpanel's servers to respond\n * track_links_timeout: 300\n *\n * // adds any UTM parameters and click IDs present on the page to any events fired\n * track_marketing: true\n *\n * // enables automatic page view tracking using default page view events through\n * // the track_pageview() method\n * track_pageview: false\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // whether to ignore or respect the web browser's Do Not Track setting\n * ignore_dnt: false\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\nMixpanelLib.prototype.set_config = function(config) {\n if (_.isObject(config)) {\n _.extend(this['config'], config);\n\n var new_batch_size = config['batch_size'];\n if (new_batch_size) {\n _.each(this.request_batchers, function(batcher) {\n batcher.resetBatchSize();\n });\n }\n\n if (!this.get_config('persistence_name')) {\n this['config']['persistence_name'] = this['config']['cookie_name'];\n }\n if (!this.get_config('disable_persistence')) {\n this['config']['disable_persistence'] = this['config']['disable_cookie'];\n }\n\n if (this['persistence']) {\n this['persistence'].update_config(this['config']);\n }\n Config.DEBUG = Config.DEBUG || this.get_config('debug');\n }\n};\n\n/**\n * returns the current config object for the library.\n */\nMixpanelLib.prototype.get_config = function(prop_name) {\n return this['config'][prop_name];\n};\n\n/**\n * Fetch a hook function from config, with safe default, and run it\n * against the given arguments\n * @param {string} hook_name which hook to retrieve\n * @returns {any|null} return value of user-provided hook, or null if nothing was returned\n */\nMixpanelLib.prototype._run_hook = function(hook_name) {\n var ret = (this['config']['hooks'][hook_name] || IDENTITY_FUNC).apply(this, slice.call(arguments, 1));\n if (typeof ret === 'undefined') {\n this.report_error(hook_name + ' hook did not return a value');\n ret = null;\n }\n return ret;\n};\n\n/**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * user_id = mixpanel.get_property('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\nMixpanelLib.prototype.get_property = function(property_name) {\n return this['persistence'].load_prop([property_name]);\n};\n\nMixpanelLib.prototype.toString = function() {\n var name = this.get_config('name');\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name;\n }\n return name;\n};\n\nMixpanelLib.prototype._event_is_disabled = function(event_name) {\n return _.isBlockedUA(userAgent) ||\n this._flags.disable_all_events ||\n _.include(this.__disabled_events, event_name);\n};\n\n// perform some housekeeping around GDPR opt-in/out state\nMixpanelLib.prototype._gdpr_init = function() {\n var is_localStorage_requested = this.get_config('opt_out_tracking_persistence_type') === 'localStorage';\n\n // try to convert opt-in/out cookies to localStorage if possible\n if (is_localStorage_requested && _.localStorage.is_supported()) {\n if (!this.has_opted_in_tracking() && this.has_opted_in_tracking({'persistence_type': 'cookie'})) {\n this.opt_in_tracking({'enable_persistence': false});\n }\n if (!this.has_opted_out_tracking() && this.has_opted_out_tracking({'persistence_type': 'cookie'})) {\n this.opt_out_tracking({'clear_persistence': false});\n }\n this.clear_opt_in_out_tracking({\n 'persistence_type': 'cookie',\n 'enable_persistence': false\n });\n }\n\n // check whether the user has already opted out - if so, clear & disable persistence\n if (this.has_opted_out_tracking()) {\n this._gdpr_update_persistence({'clear_persistence': true});\n\n // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n } else if (!this.has_opted_in_tracking() && (\n this.get_config('opt_out_tracking_by_default') || _.cookie.get('mp_optout')\n )) {\n _.cookie.remove('mp_optout');\n this.opt_out_tracking({\n 'clear_persistence': this.get_config('opt_out_persistence_by_default')\n });\n }\n};\n\n/**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\nMixpanelLib.prototype._gdpr_update_persistence = function(options) {\n var disabled;\n if (options && options['clear_persistence']) {\n disabled = true;\n } else if (options && options['enable_persistence']) {\n disabled = false;\n } else {\n return;\n }\n\n if (!this.get_config('disable_persistence') && this['persistence'].disabled !== disabled) {\n this['persistence'].set_disabled(disabled);\n }\n\n if (disabled) {\n this.stop_batch_senders();\n } else {\n // only start batchers after opt-in if they have previously been started\n // in order to avoid unintentionally starting up batching for the first time\n if (this._batchers_were_started) {\n this.start_batch_senders();\n }\n }\n};\n\n// call a base gdpr function after constructing the appropriate token and options args\nMixpanelLib.prototype._gdpr_call_func = function(func, options) {\n options = _.extend({\n 'track': _.bind(this.track, this),\n 'persistence_type': this.get_config('opt_out_tracking_persistence_type'),\n 'cookie_prefix': this.get_config('opt_out_tracking_cookie_prefix'),\n 'cookie_expiration': this.get_config('cookie_expiration'),\n 'cross_site_cookie': this.get_config('cross_site_cookie'),\n 'cross_subdomain_cookie': this.get_config('cross_subdomain_cookie'),\n 'cookie_domain': this.get_config('cookie_domain'),\n 'secure_cookie': this.get_config('secure_cookie'),\n 'ignore_dnt': this.get_config('ignore_dnt')\n }, options);\n\n // check if localStorage can be used for recording opt out status, fall back to cookie if not\n if (!_.localStorage.is_supported()) {\n options['persistence_type'] = 'cookie';\n }\n\n return func(this.get_config('token'), {\n track: options['track'],\n trackEventName: options['track_event_name'],\n trackProperties: options['track_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieDomain: options['cookie_domain'],\n cookieExpiration: options['cookie_expiration'],\n crossSiteCookie: options['cross_site_cookie'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie'],\n ignoreDnt: options['ignore_dnt']\n });\n};\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // opt user in\n * mixpanel.opt_in_tracking();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * mixpanel.opt_in_tracking({\n * track_event_name: 'User opted in',\n * track_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.track] Function used for tracking a Mixpanel event to record the opt-in action (default is this Mixpanel instance's track method)\n * @param {string} [options.track_event_name=$opt_in] Event name to be used for tracking the opt-in action\n * @param {Object} [options.track_properties] Set of properties to be tracked along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_in_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(optIn, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // opt user out\n * mixpanel.opt_out_tracking();\n *\n * // opt user out with different cookie configuration from Mixpanel instance\n * mixpanel.opt_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.delete_user=true] If true, will delete the currently identified user's profile and clear all charges after opting the user out\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_out_tracking = function(options) {\n options = _.extend({\n 'clear_persistence': true,\n 'delete_user': true\n }, options);\n\n // delete user and clear charges since these methods may be disabled by opt-out\n if (options['delete_user'] && this['people'] && this['people']._identify_called()) {\n this['people'].delete_user();\n this['people'].clear_charges();\n }\n\n this._gdpr_call_func(optOut, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * var has_opted_in = mixpanel.has_opted_in_tracking();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\nMixpanelLib.prototype.has_opted_in_tracking = function(options) {\n return this._gdpr_call_func(hasOptedIn, options);\n};\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * var has_opted_out = mixpanel.has_opted_out_tracking();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\nMixpanelLib.prototype.has_opted_out_tracking = function(options) {\n return this._gdpr_call_func(hasOptedOut, options);\n};\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // clear user's opt-in/out status\n * mixpanel.clear_opt_in_out_tracking();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_tracking/opt_out_tracking methods were called.\n * mixpanel.clear_opt_in_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.clear_opt_in_out_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(clearOptInOut, options);\n this._gdpr_update_persistence(options);\n};\n\nMixpanelLib.prototype.report_error = function(msg, err) {\n console$1.error.apply(console$1.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.get_config('error_reporter')(msg, err);\n } catch(err) {\n console$1.error(err);\n }\n};\n\n// EXPORTS (for closure compiler)\n\n// MixpanelLib Exports\nMixpanelLib.prototype['init'] = MixpanelLib.prototype.init;\nMixpanelLib.prototype['reset'] = MixpanelLib.prototype.reset;\nMixpanelLib.prototype['disable'] = MixpanelLib.prototype.disable;\nMixpanelLib.prototype['time_event'] = MixpanelLib.prototype.time_event;\nMixpanelLib.prototype['track'] = MixpanelLib.prototype.track;\nMixpanelLib.prototype['track_links'] = MixpanelLib.prototype.track_links;\nMixpanelLib.prototype['track_forms'] = MixpanelLib.prototype.track_forms;\nMixpanelLib.prototype['track_pageview'] = MixpanelLib.prototype.track_pageview;\nMixpanelLib.prototype['register'] = MixpanelLib.prototype.register;\nMixpanelLib.prototype['register_once'] = MixpanelLib.prototype.register_once;\nMixpanelLib.prototype['unregister'] = MixpanelLib.prototype.unregister;\nMixpanelLib.prototype['identify'] = MixpanelLib.prototype.identify;\nMixpanelLib.prototype['alias'] = MixpanelLib.prototype.alias;\nMixpanelLib.prototype['name_tag'] = MixpanelLib.prototype.name_tag;\nMixpanelLib.prototype['set_config'] = MixpanelLib.prototype.set_config;\nMixpanelLib.prototype['get_config'] = MixpanelLib.prototype.get_config;\nMixpanelLib.prototype['get_property'] = MixpanelLib.prototype.get_property;\nMixpanelLib.prototype['get_distinct_id'] = MixpanelLib.prototype.get_distinct_id;\nMixpanelLib.prototype['toString'] = MixpanelLib.prototype.toString;\nMixpanelLib.prototype['opt_out_tracking'] = MixpanelLib.prototype.opt_out_tracking;\nMixpanelLib.prototype['opt_in_tracking'] = MixpanelLib.prototype.opt_in_tracking;\nMixpanelLib.prototype['has_opted_out_tracking'] = MixpanelLib.prototype.has_opted_out_tracking;\nMixpanelLib.prototype['has_opted_in_tracking'] = MixpanelLib.prototype.has_opted_in_tracking;\nMixpanelLib.prototype['clear_opt_in_out_tracking'] = MixpanelLib.prototype.clear_opt_in_out_tracking;\nMixpanelLib.prototype['get_group'] = MixpanelLib.prototype.get_group;\nMixpanelLib.prototype['set_group'] = MixpanelLib.prototype.set_group;\nMixpanelLib.prototype['add_group'] = MixpanelLib.prototype.add_group;\nMixpanelLib.prototype['remove_group'] = MixpanelLib.prototype.remove_group;\nMixpanelLib.prototype['track_with_groups'] = MixpanelLib.prototype.track_with_groups;\nMixpanelLib.prototype['start_batch_senders'] = MixpanelLib.prototype.start_batch_senders;\nMixpanelLib.prototype['stop_batch_senders'] = MixpanelLib.prototype.stop_batch_senders;\nMixpanelLib.prototype['start_session_recording'] = MixpanelLib.prototype.start_session_recording;\nMixpanelLib.prototype['stop_session_recording'] = MixpanelLib.prototype.stop_session_recording;\nMixpanelLib.prototype['get_session_recording_properties'] = MixpanelLib.prototype.get_session_recording_properties;\nMixpanelLib.prototype['DEFAULT_API_ROUTES'] = DEFAULT_API_ROUTES;\n\n// MixpanelPersistence Exports\nMixpanelPersistence.prototype['properties'] = MixpanelPersistence.prototype.properties;\nMixpanelPersistence.prototype['update_search_keyword'] = MixpanelPersistence.prototype.update_search_keyword;\nMixpanelPersistence.prototype['update_referrer_info'] = MixpanelPersistence.prototype.update_referrer_info;\nMixpanelPersistence.prototype['get_cross_subdomain'] = MixpanelPersistence.prototype.get_cross_subdomain;\nMixpanelPersistence.prototype['clear'] = MixpanelPersistence.prototype.clear;\n\n\nvar instances = {};\nvar extend_mp = function() {\n // add all the sub mixpanel instances\n _.each(instances, function(instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) { mixpanel_master[name] = instance; }\n });\n\n // add private functions as _\n mixpanel_master['_'] = _;\n};\n\nvar override_mp_init_func = function() {\n // we override the snippets init function to handle the case where a\n // user initializes the mixpanel library after the script loads & runs\n mixpanel_master['init'] = function(token, config, name) {\n if (name) {\n // initialize a sub library\n if (!mixpanel_master[name]) {\n mixpanel_master[name] = instances[name] = create_mplib(token, config, name);\n mixpanel_master[name]._loaded();\n }\n return mixpanel_master[name];\n } else {\n var instance = mixpanel_master;\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main mixpanel lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME];\n } else if (token) {\n // intialize the main mixpanel lib\n instance = create_mplib(token, config, PRIMARY_INSTANCE_NAME);\n instance._loaded();\n instances[PRIMARY_INSTANCE_NAME] = instance;\n }\n\n mixpanel_master = instance;\n if (init_type === INIT_SNIPPET) {\n win[PRIMARY_INSTANCE_NAME] = mixpanel_master;\n }\n extend_mp();\n }\n };\n};\n\nvar add_dom_loaded_handler = function() {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if (dom_loaded_handler.done) { return; }\n dom_loaded_handler.done = true;\n\n DOM_LOADED = true;\n ENQUEUE_REQUESTS = false;\n\n _.each(instances, function(inst) {\n inst._dom_loaded();\n });\n }\n\n function do_scroll_check() {\n try {\n document$1.documentElement.doScroll('left');\n } catch(e) {\n setTimeout(do_scroll_check, 1);\n return;\n }\n\n dom_loaded_handler();\n }\n\n if (document$1.addEventListener) {\n if (document$1.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler();\n } else {\n document$1.addEventListener('DOMContentLoaded', dom_loaded_handler, false);\n }\n } else if (document$1.attachEvent) {\n // IE\n document$1.attachEvent('onreadystatechange', dom_loaded_handler);\n\n // check to make sure we arn't in a frame\n var toplevel = false;\n try {\n toplevel = win.frameElement === null;\n } catch(e) {\n // noop\n }\n\n if (document$1.documentElement.doScroll && toplevel) {\n do_scroll_check();\n }\n }\n\n // fallback handler, always will work\n _.register_event(win, 'load', dom_loaded_handler, true);\n};\n\nfunction init_as_module(bundle_loader) {\n load_extra_bundle = bundle_loader;\n init_type = INIT_MODULE;\n mixpanel_master = new MixpanelLib();\n\n override_mp_init_func();\n mixpanel_master['init']();\n add_dom_loaded_handler();\n\n return mixpanel_master;\n}\n\n// For loading separate bundles asynchronously via script tag\n\n// For builds that have everything in one bundle, no extra work.\nfunction loadNoop (_src, onload) {\n onload();\n}\n\n/* eslint camelcase: \"off\" */\n\nvar mixpanel = init_as_module(loadNoop);\n\nexport { mixpanel as default };\n","import mixpanel from \"mixpanel-browser\";\n\nconst ENV = { MIXPANEL_ABTEST_TOKEN: process.env.MIXPANEL_ABTEST_TOKEN };\nconst is_production = process.env.NODE_ENV === \"production\";\n\nmixpanel.init(ENV[\"MIXPANEL_ABTEST_TOKEN\"], {\n debug: !is_production,\n track_pageview: true,\n persistence: \"localStorage\",\n});\n\nexport default mixpanel;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SlimSelect = factory());\n})(this, (function () { 'use strict';\n\n class CssClasses {\n constructor(classes) {\n if (!classes) {\n classes = {};\n }\n this.main = classes.main || 'ss-main';\n this.placeholder = classes.placeholder || 'ss-placeholder';\n this.values = classes.values || 'ss-values';\n this.single = classes.single || 'ss-single';\n this.max = classes.max || 'ss-max';\n this.value = classes.value || 'ss-value';\n this.valueText = classes.valueText || 'ss-value-text';\n this.valueDelete = classes.valueDelete || 'ss-value-delete';\n this.valueOut = classes.valueOut || 'ss-value-out';\n this.deselect = classes.deselect || 'ss-deselect';\n this.deselectPath = classes.deselectPath || 'M10,10 L90,90 M10,90 L90,10';\n this.arrow = classes.arrow || 'ss-arrow';\n this.arrowClose = classes.arrowClose || 'M10,30 L50,70 L90,30';\n this.arrowOpen = classes.arrowOpen || 'M10,70 L50,30 L90,70';\n this.content = classes.content || 'ss-content';\n this.openAbove = classes.openAbove || 'ss-open-above';\n this.openBelow = classes.openBelow || 'ss-open-below';\n this.search = classes.search || 'ss-search';\n this.searchHighlighter = classes.searchHighlighter || 'ss-search-highlight';\n this.searching = classes.searching || 'ss-searching';\n this.addable = classes.addable || 'ss-addable';\n this.addablePath = classes.addablePath || 'M50,10 L50,90 M10,50 L90,50';\n this.list = classes.list || 'ss-list';\n this.optgroup = classes.optgroup || 'ss-optgroup';\n this.optgroupLabel = classes.optgroupLabel || 'ss-optgroup-label';\n this.optgroupLabelText = classes.optgroupLabelText || 'ss-optgroup-label-text';\n this.optgroupActions = classes.optgroupActions || 'ss-optgroup-actions';\n this.optgroupSelectAll = classes.optgroupSelectAll || 'ss-selectall';\n this.optgroupSelectAllBox = classes.optgroupSelectAllBox || 'M60,10 L10,10 L10,90 L90,90 L90,50';\n this.optgroupSelectAllCheck = classes.optgroupSelectAllCheck || 'M30,45 L50,70 L90,10';\n this.optgroupClosable = classes.optgroupClosable || 'ss-closable';\n this.option = classes.option || 'ss-option';\n this.optionDelete = classes.optionDelete || 'M10,10 L90,90 M10,90 L90,10';\n this.highlighted = classes.highlighted || 'ss-highlighted';\n this.open = classes.open || 'ss-open';\n this.close = classes.close || 'ss-close';\n this.selected = classes.selected || 'ss-selected';\n this.error = classes.error || 'ss-error';\n this.disabled = classes.disabled || 'ss-disabled';\n this.hide = classes.hide || 'ss-hide';\n }\n }\n\n function generateID() {\n return Math.random().toString(36).substring(2, 10);\n }\n function hasClassInTree(element, className) {\n function hasClass(e, c) {\n if (c && e && e.classList && e.classList.contains(c)) {\n return e;\n }\n if (c && e && e.dataset && e.dataset.id && e.dataset.id === className) {\n return e;\n }\n return null;\n }\n function parentByClass(e, c) {\n if (!e || e === document) {\n return null;\n }\n else if (hasClass(e, c)) {\n return e;\n }\n else {\n return parentByClass(e.parentNode, c);\n }\n }\n return hasClass(element, className) || parentByClass(element, className);\n }\n function debounce(func, wait = 50, immediate = false) {\n let timeout;\n return function (...args) {\n const context = self;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n function isEqual(a, b) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n function kebabCase(str) {\n const result = str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match) => '-' + match.toLowerCase());\n return str[0] === str[0].toUpperCase() ? result.substring(1) : result;\n }\n\n class Optgroup {\n constructor(optgroup) {\n this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;\n this.label = optgroup.label || '';\n this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;\n this.selectAllText = optgroup.selectAllText || 'Select All';\n this.closable = optgroup.closable || 'off';\n this.options = [];\n if (optgroup.options) {\n for (const o of optgroup.options) {\n this.options.push(new Option(o));\n }\n }\n }\n }\n class Option {\n constructor(option) {\n this.id = !option.id || option.id === '' ? generateID() : option.id;\n this.value = option.value === undefined ? option.text : option.value;\n this.text = option.text || '';\n this.html = option.html || '';\n this.selected = option.selected !== undefined ? option.selected : false;\n this.display = option.display !== undefined ? option.display : true;\n this.disabled = option.disabled !== undefined ? option.disabled : false;\n this.mandatory = option.mandatory !== undefined ? option.mandatory : false;\n this.placeholder = option.placeholder !== undefined ? option.placeholder : false;\n this.class = option.class || '';\n this.style = option.style || '';\n this.data = option.data || {};\n }\n }\n class Store {\n constructor(type, data) {\n this.selectType = 'single';\n this.data = [];\n this.selectedOrder = [];\n this.selectType = type;\n this.setData(data);\n }\n validateDataArray(data) {\n if (!Array.isArray(data)) {\n return new Error('Data must be an array');\n }\n for (let dataObj of data) {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n if (!('label' in dataObj)) {\n return new Error('Optgroup must have a label');\n }\n if ('options' in dataObj && dataObj.options) {\n for (let option of dataObj.options) {\n const validationError = this.validateOption(option);\n if (validationError) {\n return validationError;\n }\n }\n }\n }\n else if (dataObj instanceof Option || 'text' in dataObj) {\n const validationError = this.validateOption(dataObj);\n if (validationError) {\n return validationError;\n }\n }\n else {\n return new Error('Data object must be a valid optgroup or option');\n }\n }\n return null;\n }\n validateOption(option) {\n if (!('text' in option)) {\n return new Error('Option must have a text');\n }\n return null;\n }\n partialToFullData(data) {\n let dataFinal = [];\n data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n let optOptions = [];\n if ('options' in dataObj && dataObj.options) {\n dataObj.options.forEach((option) => {\n optOptions.push(new Option(option));\n });\n }\n if (optOptions.length > 0) {\n dataFinal.push(new Optgroup(dataObj));\n }\n }\n if (dataObj instanceof Option || 'text' in dataObj) {\n dataFinal.push(new Option(dataObj));\n }\n });\n return dataFinal;\n }\n setData(data) {\n this.data = this.partialToFullData(data);\n if (this.selectType === 'single') {\n this.setSelectedBy('id', this.getSelected());\n }\n }\n getData() {\n return this.filter(null, true);\n }\n getDataOptions() {\n return this.filter(null, false);\n }\n addOption(option, addToStart = false) {\n if (addToStart) {\n let data = [new Option(option)];\n this.setData(data.concat(this.getData()));\n }\n else {\n this.setData(this.getData().concat(new Option(option)));\n }\n }\n setSelectedBy(selectedType, selectedValues) {\n let firstOption = null;\n let hasSelected = false;\n const selectedObjects = [];\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n for (let option of dataObj.options) {\n if (!firstOption) {\n firstOption = option;\n }\n option.selected = hasSelected ? false : selectedValues.includes(option[selectedType]);\n if (option.selected) {\n selectedObjects.push(option);\n if (this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n }\n if (dataObj instanceof Option) {\n if (!firstOption) {\n firstOption = dataObj;\n }\n dataObj.selected = hasSelected ? false : selectedValues.includes(dataObj[selectedType]);\n if (dataObj.selected) {\n selectedObjects.push(dataObj);\n if (this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n }\n if (this.selectType === 'single' && firstOption && !hasSelected) {\n firstOption.selected = true;\n selectedObjects.push(firstOption);\n }\n const selectedIds = selectedValues.map((value) => {\n var _a;\n return ((_a = selectedObjects.find((option) => option[selectedType] === value)) === null || _a === void 0 ? void 0 : _a.id) || '';\n });\n this.selectedOrder = selectedIds;\n }\n getSelected() {\n return this.getSelectedOptions().map((option) => option.id);\n }\n getSelectedValues() {\n return this.getSelectedOptions().map((option) => option.value);\n }\n getSelectedOptions() {\n return this.filter((opt) => {\n return opt.selected;\n }, false);\n }\n getOptgroupByID(id) {\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup && dataObj.id === id) {\n return dataObj;\n }\n }\n return null;\n }\n getOptionByID(id) {\n let options = this.filter((opt) => {\n return opt.id === id;\n }, false);\n return options.length ? options[0] : null;\n }\n getSelectType() {\n return this.selectType;\n }\n getFirstOption() {\n let option = null;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n option = dataObj.options[0];\n }\n else if (dataObj instanceof Option) {\n option = dataObj;\n }\n if (option) {\n break;\n }\n }\n return option;\n }\n search(search, searchFilter) {\n search = search.trim();\n if (search === '') {\n return this.getData();\n }\n return this.filter((opt) => {\n return searchFilter(opt, search);\n }, true);\n }\n filter(filter, includeOptgroup) {\n const dataSearch = [];\n this.data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup) {\n let optOptions = [];\n dataObj.options.forEach((option) => {\n if (!filter || filter(option)) {\n if (!includeOptgroup) {\n dataSearch.push(new Option(option));\n }\n else {\n optOptions.push(new Option(option));\n }\n }\n });\n if (optOptions.length > 0) {\n let optgroup = new Optgroup(dataObj);\n optgroup.options = optOptions;\n dataSearch.push(optgroup);\n }\n }\n if (dataObj instanceof Option) {\n if (!filter || filter(dataObj)) {\n dataSearch.push(new Option(dataObj));\n }\n }\n });\n return dataSearch;\n }\n selectedOrderOptions(options) {\n const newOrder = [];\n this.selectedOrder.forEach((id) => {\n const option = options.find((opt) => opt.id === id);\n if (option) {\n newOrder.push(option);\n }\n });\n options.forEach((option) => {\n let isIn = false;\n newOrder.forEach((selectedOption) => {\n if (option.id === selectedOption.id) {\n isIn = true;\n return;\n }\n });\n if (!isIn) {\n newOrder.push(option);\n }\n });\n return newOrder;\n }\n }\n\n class Render {\n constructor(settings, classes, store, callbacks) {\n this.store = store;\n this.settings = settings;\n this.classes = classes;\n this.callbacks = callbacks;\n this.main = this.mainDiv();\n this.content = this.contentDiv();\n this.updateClassStyles();\n this.updateAriaAttributes();\n this.settings.contentLocation.appendChild(this.content.main);\n }\n enable() {\n this.main.main.classList.remove(this.classes.disabled);\n this.content.search.input.disabled = false;\n }\n disable() {\n this.main.main.classList.add(this.classes.disabled);\n this.content.search.input.disabled = true;\n }\n open() {\n this.main.arrow.path.setAttribute('d', this.classes.arrowOpen);\n this.main.main.classList.add(this.settings.openPosition === 'up' ? this.classes.openAbove : this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'true');\n this.moveContent();\n const selectedOptions = this.store.getSelectedOptions();\n if (selectedOptions.length) {\n const selectedId = selectedOptions[selectedOptions.length - 1].id;\n const selectedOption = this.content.list.querySelector('[data-id=\"' + selectedId + '\"]');\n if (selectedOption) {\n this.ensureElementInView(this.content.list, selectedOption);\n }\n }\n }\n close() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.main.arrow.path.setAttribute('d', this.classes.arrowClose);\n }\n updateClassStyles() {\n this.main.main.className = '';\n this.main.main.removeAttribute('style');\n this.content.main.className = '';\n this.content.main.removeAttribute('style');\n this.main.main.classList.add(this.classes.main);\n this.content.main.classList.add(this.classes.content);\n if (this.settings.style !== '') {\n this.main.main.style.cssText = this.settings.style;\n this.content.main.style.cssText = this.settings.style;\n }\n if (this.settings.class.length) {\n for (const c of this.settings.class) {\n if (c.trim() !== '') {\n this.main.main.classList.add(c.trim());\n this.content.main.classList.add(c.trim());\n }\n }\n }\n if (this.settings.contentPosition === 'relative') {\n this.content.main.classList.add('ss-' + this.settings.contentPosition);\n }\n }\n updateAriaAttributes() {\n this.main.main.role = 'combobox';\n this.main.main.setAttribute('aria-haspopup', 'listbox');\n this.main.main.setAttribute('aria-controls', this.content.main.id);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.setAttribute('role', 'listbox');\n }\n mainDiv() {\n var _a;\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n main.setAttribute('aria-label', this.settings.ariaLabel);\n main.tabIndex = 0;\n main.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n this.callbacks.open();\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Enter':\n case ' ':\n this.callbacks.open();\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n }\n return false;\n case 'Escape':\n this.callbacks.close();\n return false;\n }\n return true;\n };\n main.onclick = (e) => {\n if (this.settings.disabled) {\n return;\n }\n this.settings.isOpen ? this.callbacks.close() : this.callbacks.open();\n };\n const values = document.createElement('div');\n values.classList.add(this.classes.values);\n main.appendChild(values);\n const deselect = document.createElement('div');\n deselect.classList.add(this.classes.deselect);\n const selectedOptions = (_a = this.store) === null || _a === void 0 ? void 0 : _a.getSelectedOptions();\n if (!this.settings.allowDeselect || (this.settings.isMultiple && selectedOptions && selectedOptions.length <= 0)) {\n deselect.classList.add(this.classes.hide);\n }\n else {\n deselect.classList.remove(this.classes.hide);\n }\n deselect.onclick = (e) => {\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = [];\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n if (this.settings.isMultiple) {\n this.callbacks.setSelected([], false);\n this.updateDeselectAll();\n }\n else {\n const firstOption = this.store.getFirstOption();\n const id = firstOption ? firstOption.id : '';\n this.callbacks.setSelected(id, false);\n }\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(this.store.getSelectedOptions());\n }\n }\n };\n const deselectSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deselectSvg.setAttribute('viewBox', '0 0 100 100');\n const deselectPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deselectPath.setAttribute('d', this.classes.deselectPath);\n deselectSvg.appendChild(deselectPath);\n deselect.appendChild(deselectSvg);\n main.appendChild(deselect);\n const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n arrow.classList.add(this.classes.arrow);\n arrow.setAttribute('viewBox', '0 0 100 100');\n const arrowPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n arrowPath.setAttribute('d', this.classes.arrowClose);\n if (this.settings.alwaysOpen) {\n arrow.classList.add(this.classes.hide);\n }\n arrow.appendChild(arrowPath);\n main.appendChild(arrow);\n return {\n main: main,\n values: values,\n deselect: {\n main: deselect,\n svg: deselectSvg,\n path: deselectPath\n },\n arrow: {\n main: arrow,\n path: arrowPath\n }\n };\n }\n mainFocus(eventType) {\n if (eventType !== 'click') {\n this.main.main.focus({ preventScroll: true });\n }\n }\n placeholder() {\n const placeholderOption = this.store.filter((o) => o.placeholder, false);\n let placeholderText = this.settings.placeholderText;\n if (placeholderOption.length) {\n if (placeholderOption[0].html !== '') {\n placeholderText = placeholderOption[0].html;\n }\n else if (placeholderOption[0].text !== '') {\n placeholderText = placeholderOption[0].text;\n }\n }\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.placeholder);\n placeholder.innerHTML = placeholderText;\n return placeholder;\n }\n renderValues() {\n if (!this.settings.isMultiple) {\n this.renderSingleValue();\n return;\n }\n this.renderMultipleValues();\n this.updateDeselectAll();\n }\n renderSingleValue() {\n const selected = this.store.filter((o) => {\n return o.selected && !o.placeholder;\n }, false);\n const selectedSingle = selected.length > 0 ? selected[0] : null;\n if (!selectedSingle) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n }\n else {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.single);\n if (selectedSingle.html) {\n singleValue.innerHTML = selectedSingle.html;\n }\n else {\n singleValue.innerText = selectedSingle.text;\n }\n this.main.values.innerHTML = singleValue.outerHTML;\n }\n if (!this.settings.allowDeselect || !selected.length) {\n this.main.deselect.main.classList.add(this.classes.hide);\n }\n else {\n this.main.deselect.main.classList.remove(this.classes.hide);\n }\n }\n renderMultipleValues() {\n let currentNodes = this.main.values.childNodes;\n let selectedOptions = this.store.filter((opt) => {\n return opt.selected && opt.display;\n }, false);\n if (selectedOptions.length === 0) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n return;\n }\n else {\n const placeholder = this.main.values.querySelector('.' + this.classes.placeholder);\n if (placeholder) {\n placeholder.remove();\n }\n }\n if (selectedOptions.length > this.settings.maxValuesShown) {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.max);\n singleValue.textContent = this.settings.maxValuesMessage.replace('{number}', selectedOptions.length.toString());\n this.main.values.innerHTML = singleValue.outerHTML;\n return;\n }\n else {\n const maxValuesMessage = this.main.values.querySelector('.' + this.classes.max);\n if (maxValuesMessage) {\n maxValuesMessage.remove();\n }\n }\n if (this.settings.keepOrder) {\n selectedOptions = this.store.selectedOrderOptions(selectedOptions);\n }\n let removeNodes = [];\n for (let i = 0; i < currentNodes.length; i++) {\n const node = currentNodes[i];\n const id = node.getAttribute('data-id');\n if (id) {\n const found = selectedOptions.filter((opt) => {\n return opt.id === id;\n }, false);\n if (!found.length) {\n removeNodes.push(node);\n }\n }\n }\n for (const n of removeNodes) {\n n.classList.add(this.classes.valueOut);\n setTimeout(() => {\n if (this.main.values.hasChildNodes() && this.main.values.contains(n)) {\n this.main.values.removeChild(n);\n }\n }, 100);\n }\n currentNodes = this.main.values.childNodes;\n for (let d = 0; d < selectedOptions.length; d++) {\n let shouldAdd = true;\n for (let i = 0; i < currentNodes.length; i++) {\n if (selectedOptions[d].id === String(currentNodes[i].dataset.id)) {\n shouldAdd = false;\n }\n }\n if (shouldAdd) {\n if (this.settings.keepOrder) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else {\n if (currentNodes.length === 0) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else if (d === 0) {\n this.main.values.insertBefore(this.multipleValue(selectedOptions[d]), currentNodes[d]);\n }\n else {\n currentNodes[d - 1].insertAdjacentElement('afterend', this.multipleValue(selectedOptions[d]));\n }\n }\n }\n }\n }\n multipleValue(option) {\n const value = document.createElement('div');\n value.classList.add(this.classes.value);\n value.dataset.id = option.id;\n const text = document.createElement('div');\n text.classList.add(this.classes.valueText);\n text.textContent = option.text;\n value.appendChild(text);\n if (!option.mandatory) {\n const deleteDiv = document.createElement('div');\n deleteDiv.classList.add(this.classes.valueDelete);\n deleteDiv.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = before.filter((o) => {\n return o.selected && o.id !== option.id;\n }, true);\n if (this.settings.minSelected && after.length < this.settings.minSelected) {\n return;\n }\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n let selectedIds = [];\n for (const o of after) {\n if (o instanceof Optgroup) {\n for (const c of o.options) {\n selectedIds.push(c.id);\n }\n }\n if (o instanceof Option) {\n selectedIds.push(o.id);\n }\n }\n this.callbacks.setSelected(selectedIds, false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n this.updateDeselectAll();\n }\n };\n const deleteSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deleteSvg.setAttribute('viewBox', '0 0 100 100');\n const deletePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deletePath.setAttribute('d', this.classes.optionDelete);\n deleteSvg.appendChild(deletePath);\n deleteDiv.appendChild(deleteSvg);\n value.appendChild(deleteDiv);\n }\n return value;\n }\n contentDiv() {\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n const search = this.searchDiv();\n main.appendChild(search.main);\n const list = this.listDiv();\n main.appendChild(list);\n return {\n main: main,\n search: search,\n list: list\n };\n }\n moveContent() {\n if (this.settings.contentPosition === 'relative') {\n this.moveContentBelow();\n return;\n }\n if (this.settings.openPosition === 'down') {\n this.moveContentBelow();\n return;\n }\n else if (this.settings.openPosition === 'up') {\n this.moveContentAbove();\n return;\n }\n if (this.putContent() === 'up') {\n this.moveContentAbove();\n }\n else {\n this.moveContentBelow();\n }\n }\n searchDiv() {\n const main = document.createElement('div');\n const input = document.createElement('input');\n const addable = document.createElement('div');\n main.classList.add(this.classes.search);\n const searchReturn = {\n main,\n input\n };\n if (!this.settings.showSearch) {\n main.classList.add(this.classes.hide);\n input.readOnly = true;\n }\n input.type = 'search';\n input.placeholder = this.settings.searchPlaceholder;\n input.tabIndex = -1;\n input.setAttribute('aria-label', this.settings.searchPlaceholder);\n input.setAttribute('autocapitalize', 'off');\n input.setAttribute('autocomplete', 'off');\n input.setAttribute('autocorrect', 'off');\n input.oninput = debounce((e) => {\n this.callbacks.search(e.target.value);\n }, 100);\n input.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Escape':\n this.callbacks.close();\n return false;\n case ' ':\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n return false;\n }\n return true;\n case 'Enter':\n if (this.callbacks.addable) {\n addable.click();\n return false;\n }\n else {\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n return false;\n }\n }\n return true;\n }\n return true;\n };\n main.appendChild(input);\n if (this.callbacks.addable) {\n addable.classList.add(this.classes.addable);\n const plus = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n plus.setAttribute('viewBox', '0 0 100 100');\n const plusPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n plusPath.setAttribute('d', this.classes.addablePath);\n plus.appendChild(plusPath);\n addable.appendChild(plus);\n addable.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!this.callbacks.addable) {\n return;\n }\n const inputValue = this.content.search.input.value.trim();\n if (inputValue === '') {\n this.content.search.input.focus();\n return;\n }\n const runFinish = (oo) => {\n let newOption = new Option(oo);\n this.callbacks.addOption(newOption);\n if (this.settings.isMultiple) {\n let ids = this.store.getSelected();\n ids.push(newOption.id);\n this.callbacks.setSelected(ids, true);\n }\n else {\n this.callbacks.setSelected([newOption.id], true);\n }\n this.callbacks.search('');\n if (this.settings.closeOnSelect) {\n setTimeout(() => {\n this.callbacks.close();\n }, 100);\n }\n };\n const addableValue = this.callbacks.addable(inputValue);\n if (addableValue === false || addableValue === undefined || addableValue === null) {\n return;\n }\n if (addableValue instanceof Promise) {\n addableValue.then((value) => {\n if (typeof value === 'string') {\n runFinish({\n text: value,\n value: value\n });\n }\n else if (addableValue instanceof Error) {\n this.renderError(addableValue.message);\n }\n else {\n runFinish(value);\n }\n });\n }\n else if (typeof addableValue === 'string') {\n runFinish({\n text: addableValue,\n value: addableValue\n });\n }\n else if (addableValue instanceof Error) {\n this.renderError(addableValue.message);\n }\n else {\n runFinish(addableValue);\n }\n return;\n };\n main.appendChild(addable);\n searchReturn.addable = {\n main: addable,\n svg: plus,\n path: plusPath\n };\n }\n return searchReturn;\n }\n searchFocus() {\n this.content.search.input.focus();\n }\n getOptions(notPlaceholder = false, notDisabled = false, notHidden = false) {\n let query = '.' + this.classes.option;\n if (notPlaceholder) {\n query += ':not(.' + this.classes.placeholder + ')';\n }\n if (notDisabled) {\n query += ':not(.' + this.classes.disabled + ')';\n }\n if (notHidden) {\n query += ':not(.' + this.classes.hide + ')';\n }\n return Array.from(this.content.list.querySelectorAll(query));\n }\n highlight(dir) {\n const options = this.getOptions(true, true, true);\n if (options.length === 0) {\n return;\n }\n if (options.length === 1) {\n if (!options[0].classList.contains(this.classes.highlighted)) {\n options[0].classList.add(this.classes.highlighted);\n return;\n }\n }\n let highlighted = false;\n for (const o of options) {\n if (o.classList.contains(this.classes.highlighted)) {\n highlighted = true;\n }\n }\n if (!highlighted) {\n for (const o of options) {\n if (o.classList.contains(this.classes.selected)) {\n o.classList.add(this.classes.highlighted);\n break;\n }\n }\n }\n for (let i = 0; i < options.length; i++) {\n if (options[i].classList.contains(this.classes.highlighted)) {\n const prevOption = options[i];\n prevOption.classList.remove(this.classes.highlighted);\n const prevParent = prevOption.parentElement;\n if (prevParent && prevParent.classList.contains(this.classes.open)) {\n const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];\n selectOption.classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, selectOption);\n const selectParent = selectOption.parentElement;\n if (selectParent && selectParent.classList.contains(this.classes.close)) {\n const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n return;\n }\n }\n options[dir === 'down' ? 0 : options.length - 1].classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, options[dir === 'down' ? 0 : options.length - 1]);\n }\n listDiv() {\n const options = document.createElement('div');\n options.classList.add(this.classes.list);\n return options;\n }\n renderError(error) {\n this.content.list.innerHTML = '';\n const errorDiv = document.createElement('div');\n errorDiv.classList.add(this.classes.error);\n errorDiv.textContent = error;\n this.content.list.appendChild(errorDiv);\n }\n renderSearching() {\n this.content.list.innerHTML = '';\n const searchingDiv = document.createElement('div');\n searchingDiv.classList.add(this.classes.searching);\n searchingDiv.textContent = this.settings.searchingText;\n this.content.list.appendChild(searchingDiv);\n }\n renderOptions(data) {\n this.content.list.innerHTML = '';\n if (data.length === 0) {\n const noResults = document.createElement('div');\n noResults.classList.add(this.classes.search);\n if (this.callbacks.addable) {\n noResults.innerHTML = this.settings.addableText.replace('{value}', this.content.search.input.value);\n }\n else {\n noResults.innerHTML = this.settings.searchText;\n }\n this.content.list.appendChild(noResults);\n return;\n }\n if (this.settings.allowDeselect && !this.settings.isMultiple) {\n const placeholderOption = this.store.filter((o) => o.placeholder, false);\n if (!placeholderOption.length) {\n this.store.addOption(new Option({\n text: '',\n value: '',\n selected: false,\n placeholder: true\n }), true);\n }\n }\n for (const d of data) {\n if (d instanceof Optgroup) {\n const optgroupEl = document.createElement('div');\n optgroupEl.classList.add(this.classes.optgroup);\n const optgroupLabel = document.createElement('div');\n optgroupLabel.classList.add(this.classes.optgroupLabel);\n optgroupEl.appendChild(optgroupLabel);\n const optgroupLabelText = document.createElement('div');\n optgroupLabelText.classList.add(this.classes.optgroupLabelText);\n optgroupLabelText.textContent = d.label;\n optgroupLabel.appendChild(optgroupLabelText);\n const optgroupActions = document.createElement('div');\n optgroupActions.classList.add(this.classes.optgroupActions);\n optgroupLabel.appendChild(optgroupActions);\n if (this.settings.isMultiple && d.selectAll) {\n const selectAll = document.createElement('div');\n selectAll.classList.add(this.classes.optgroupSelectAll);\n let allSelected = true;\n for (const o of d.options) {\n if (!o.selected) {\n allSelected = false;\n break;\n }\n }\n if (allSelected) {\n selectAll.classList.add(this.classes.selected);\n }\n const selectAllText = document.createElement('span');\n selectAllText.textContent = d.selectAllText;\n selectAll.appendChild(selectAllText);\n const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n selectAllSvg.setAttribute('viewBox', '0 0 100 100');\n selectAll.appendChild(selectAllSvg);\n const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);\n selectAllSvg.appendChild(selectAllBox);\n const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);\n selectAllSvg.appendChild(selectAllCheck);\n selectAll.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const currentSelected = this.store.getSelected();\n if (allSelected) {\n const newSelected = currentSelected.filter((s) => {\n for (const o of d.options) {\n if (s === o.id) {\n return false;\n }\n }\n return true;\n });\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n else {\n const newSelected = currentSelected.concat(d.options.map((o) => o.id));\n for (const o of d.options) {\n if (!this.store.getOptionByID(o.id)) {\n this.callbacks.addOption(o);\n }\n }\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n });\n optgroupActions.appendChild(selectAll);\n }\n if (d.closable !== 'off') {\n const optgroupClosable = document.createElement('div');\n optgroupClosable.classList.add(this.classes.optgroupClosable);\n const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');\n optgroupClosableSvg.classList.add(this.classes.arrow);\n optgroupClosable.appendChild(optgroupClosableSvg);\n const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n optgroupClosableSvg.appendChild(optgroupClosableArrow);\n if (d.options.some((o) => o.selected) || this.content.search.input.value.trim() !== '') {\n optgroupClosable.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'open') {\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'close') {\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n optgroupLabel.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (optgroupEl.classList.contains(this.classes.close)) {\n optgroupEl.classList.remove(this.classes.close);\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else {\n optgroupEl.classList.remove(this.classes.open);\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n });\n optgroupActions.appendChild(optgroupClosable);\n }\n optgroupEl.appendChild(optgroupLabel);\n for (const o of d.options) {\n optgroupEl.appendChild(this.option(o));\n }\n this.content.list.appendChild(optgroupEl);\n }\n if (d instanceof Option) {\n this.content.list.appendChild(this.option(d));\n }\n }\n }\n option(option) {\n if (option.placeholder) {\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.option);\n placeholder.classList.add(this.classes.hide);\n return placeholder;\n }\n const optionEl = document.createElement('div');\n optionEl.dataset.id = option.id;\n optionEl.id = option.id;\n optionEl.classList.add(this.classes.option);\n optionEl.setAttribute('role', 'option');\n if (option.class) {\n option.class.split(' ').forEach((dataClass) => {\n optionEl.classList.add(dataClass);\n });\n }\n if (option.style) {\n optionEl.style.cssText = option.style;\n }\n if (this.settings.searchHighlight && this.content.search.input.value.trim() !== '') {\n optionEl.innerHTML = this.highlightText(option.html !== '' ? option.html : option.text, this.content.search.input.value, this.classes.searchHighlighter);\n }\n else if (option.html !== '') {\n optionEl.innerHTML = option.html;\n }\n else {\n optionEl.textContent = option.text;\n }\n if (this.settings.showOptionTooltips && optionEl.textContent) {\n optionEl.setAttribute('title', optionEl.textContent);\n }\n if (!option.display) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.disabled) {\n optionEl.classList.add(this.classes.disabled);\n }\n if (option.selected && this.settings.hideSelected) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.selected) {\n optionEl.classList.add(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'true');\n this.main.main.setAttribute('aria-activedescendant', optionEl.id);\n }\n else {\n optionEl.classList.remove(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'false');\n }\n optionEl.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const selectedOptions = this.store.getSelected();\n const element = e.currentTarget;\n const elementID = String(element.dataset.id);\n if (option.disabled || (option.selected && !this.settings.allowDeselect)) {\n return;\n }\n if ((this.settings.isMultiple && this.settings.maxSelected <= selectedOptions.length && !option.selected) ||\n (this.settings.isMultiple && this.settings.minSelected >= selectedOptions.length && option.selected)) {\n return;\n }\n let shouldUpdate = false;\n const before = this.store.getSelectedOptions();\n let after = [];\n if (this.settings.isMultiple) {\n if (option.selected) {\n after = before.filter((o) => o.id !== elementID);\n }\n else {\n after = before.concat(option);\n }\n }\n if (!this.settings.isMultiple) {\n if (option.selected) {\n after = [];\n }\n else {\n after = [option];\n }\n }\n if (!this.callbacks.beforeChange) {\n shouldUpdate = true;\n }\n if (this.callbacks.beforeChange) {\n if (this.callbacks.beforeChange(after, before) === false) {\n shouldUpdate = false;\n }\n else {\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n if (!this.store.getOptionByID(elementID)) {\n this.callbacks.addOption(option);\n }\n this.callbacks.setSelected(after.map((o) => o.id), false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n }\n });\n return optionEl;\n }\n destroy() {\n this.main.main.remove();\n this.content.main.remove();\n }\n highlightText(str, search, className) {\n let completedString = str;\n const regex = new RegExp('(?![^<]*>)(' + search.trim() + ')(?![^<]*>[^<>]*${originalTextFoundByRegex}`);\n return completedString;\n }\n moveContentAbove() {\n const mainHeight = this.main.main.offsetHeight;\n const contentHeight = this.content.main.offsetHeight;\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.classList.add(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.content.main.classList.add(this.classes.openAbove);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-' + (mainHeight + contentHeight - 1) + 'px 0px 0px 0px';\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n moveContentBelow() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.add(this.classes.openBelow);\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.add(this.classes.openBelow);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-1px 0px 0px 0px';\n if (this.settings.contentPosition !== 'relative') {\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n }\n ensureElementInView(container, element) {\n const cTop = container.scrollTop + container.offsetTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n if (eTop < cTop) {\n container.scrollTop -= cTop - eTop;\n }\n else if (eBottom > cBottom) {\n container.scrollTop += eBottom - cBottom;\n }\n }\n putContent() {\n const mainHeight = this.main.main.offsetHeight;\n const mainRect = this.main.main.getBoundingClientRect();\n const contentHeight = this.content.main.offsetHeight;\n const spaceBelow = window.innerHeight - (mainRect.top + mainHeight);\n if (spaceBelow <= contentHeight) {\n if (mainRect.top > contentHeight) {\n return 'up';\n }\n else {\n return 'down';\n }\n }\n return 'down';\n }\n updateDeselectAll() {\n if (!this.store || !this.settings) {\n return;\n }\n const selected = this.store.getSelectedOptions();\n const hasSelectedItems = selected && selected.length > 0;\n const isMultiple = this.settings.isMultiple;\n const allowDeselect = this.settings.allowDeselect;\n const deselectButton = this.main.deselect.main;\n const hideClass = this.classes.hide;\n if (allowDeselect && !(isMultiple && !hasSelectedItems)) {\n deselectButton.classList.remove(hideClass);\n }\n else {\n deselectButton.classList.add(hideClass);\n }\n }\n }\n\n class Select {\n constructor(select) {\n this.listen = false;\n this.observer = null;\n this.select = select;\n this.valueChange = this.valueChange.bind(this);\n this.select.addEventListener('change', this.valueChange, {\n passive: true\n });\n this.observer = new MutationObserver(this.observeCall.bind(this));\n this.changeListen(true);\n }\n enable() {\n this.select.disabled = false;\n }\n disable() {\n this.select.disabled = true;\n }\n hideUI() {\n this.select.tabIndex = -1;\n this.select.style.display = 'none';\n this.select.setAttribute('aria-hidden', 'true');\n }\n showUI() {\n this.select.removeAttribute('tabindex');\n this.select.style.display = '';\n this.select.removeAttribute('aria-hidden');\n }\n changeListen(listen) {\n this.listen = listen;\n if (listen) {\n if (this.observer) {\n this.observer.observe(this.select, {\n subtree: true,\n childList: true,\n attributes: true\n });\n }\n }\n if (!listen) {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n }\n valueChange(ev) {\n if (this.listen && this.onValueChange) {\n this.onValueChange(this.getSelectedOptions());\n }\n return true;\n }\n observeCall(mutations) {\n if (!this.listen) {\n return;\n }\n let classChanged = false;\n let disabledChanged = false;\n let optgroupOptionChanged = false;\n for (const m of mutations) {\n if (m.target === this.select) {\n if (m.attributeName === 'disabled') {\n disabledChanged = true;\n }\n if (m.attributeName === 'class') {\n classChanged = true;\n }\n if (m.type === 'childList') {\n for (const n of m.addedNodes) {\n if (n.nodeName === 'OPTION' && n.value === this.select.value) {\n this.select.dispatchEvent(new Event('change'));\n break;\n }\n }\n optgroupOptionChanged = true;\n }\n }\n if (m.target.nodeName === 'OPTGROUP' || m.target.nodeName === 'OPTION') {\n optgroupOptionChanged = true;\n }\n }\n if (classChanged && this.onClassChange) {\n this.onClassChange(this.select.className.split(' '));\n }\n if (disabledChanged && this.onDisabledChange) {\n this.changeListen(false);\n this.onDisabledChange(this.select.disabled);\n this.changeListen(true);\n }\n if (optgroupOptionChanged && this.onOptionsChange) {\n this.changeListen(false);\n this.onOptionsChange(this.getData());\n this.changeListen(true);\n }\n }\n getData() {\n let data = [];\n const nodes = this.select.childNodes;\n for (const n of nodes) {\n if (n.nodeName === 'OPTGROUP') {\n data.push(this.getDataFromOptgroup(n));\n }\n if (n.nodeName === 'OPTION') {\n data.push(this.getDataFromOption(n));\n }\n }\n return data;\n }\n getDataFromOptgroup(optgroup) {\n let data = {\n id: optgroup.id,\n label: optgroup.label,\n selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,\n selectAllText: optgroup.dataset ? optgroup.dataset.selectalltext : 'Select all',\n closable: optgroup.dataset ? optgroup.dataset.closable : 'off',\n options: []\n };\n const options = optgroup.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTION') {\n data.options.push(this.getDataFromOption(o));\n }\n }\n return data;\n }\n getDataFromOption(option) {\n return {\n id: option.id,\n value: option.value,\n text: option.text,\n html: option.dataset && option.dataset.html ? option.dataset.html : '',\n selected: option.selected,\n display: option.style.display !== 'none',\n disabled: option.disabled,\n mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,\n placeholder: option.dataset.placeholder === 'true',\n class: option.className,\n style: option.style.cssText,\n data: option.dataset\n };\n }\n getSelectedOptions() {\n let options = [];\n const opts = this.select.childNodes;\n for (const o of opts) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroupOptions = o.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n if (option.selected) {\n options.push(this.getDataFromOption(option));\n }\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n if (option.selected) {\n options.push(this.getDataFromOption(option));\n }\n }\n }\n return options;\n }\n getSelectedValues() {\n return this.getSelectedOptions().map((option) => option.value);\n }\n setSelected(ids) {\n this.changeListen(false);\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroup = o;\n const optgroupOptions = optgroup.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n option.selected = ids.includes(option.id);\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n option.selected = ids.includes(option.id);\n }\n }\n this.changeListen(true);\n }\n setSelectedByValue(values) {\n this.changeListen(false);\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroup = o;\n const optgroupOptions = optgroup.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n option.selected = values.includes(option.value);\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n option.selected = values.includes(option.value);\n }\n }\n this.changeListen(true);\n }\n updateSelect(id, style, classes) {\n this.changeListen(false);\n if (id) {\n this.select.dataset.id = id;\n }\n if (style) {\n this.select.style.cssText = style;\n }\n if (classes) {\n this.select.className = '';\n classes.forEach((c) => {\n if (c.trim() !== '') {\n this.select.classList.add(c.trim());\n }\n });\n }\n this.changeListen(true);\n }\n updateOptions(data) {\n this.changeListen(false);\n this.select.innerHTML = '';\n for (const d of data) {\n if (d instanceof Optgroup) {\n this.select.appendChild(this.createOptgroup(d));\n }\n if (d instanceof Option) {\n this.select.appendChild(this.createOption(d));\n }\n }\n this.select.dispatchEvent(new Event('change', { bubbles: true }));\n this.changeListen(true);\n }\n createOptgroup(optgroup) {\n const optgroupEl = document.createElement('optgroup');\n optgroupEl.id = optgroup.id;\n optgroupEl.label = optgroup.label;\n if (optgroup.selectAll) {\n optgroupEl.dataset.selectAll = 'true';\n }\n if (optgroup.closable !== 'off') {\n optgroupEl.dataset.closable = optgroup.closable;\n }\n if (optgroup.options) {\n for (const o of optgroup.options) {\n optgroupEl.appendChild(this.createOption(o));\n }\n }\n return optgroupEl;\n }\n createOption(info) {\n const optionEl = document.createElement('option');\n optionEl.id = info.id;\n optionEl.value = info.value;\n optionEl.innerHTML = info.text;\n if (info.html !== '') {\n optionEl.setAttribute('data-html', info.html);\n }\n if (info.selected) {\n optionEl.selected = info.selected;\n }\n if (info.disabled) {\n optionEl.disabled = true;\n }\n if (!info.display) {\n optionEl.style.display = 'none';\n }\n if (info.placeholder) {\n optionEl.setAttribute('data-placeholder', 'true');\n }\n if (info.mandatory) {\n optionEl.setAttribute('data-mandatory', 'true');\n }\n if (info.class) {\n info.class.split(' ').forEach((optionClass) => {\n optionEl.classList.add(optionClass);\n });\n }\n if (info.data && typeof info.data === 'object') {\n Object.keys(info.data).forEach((key) => {\n optionEl.setAttribute('data-' + kebabCase(key), info.data[key]);\n });\n }\n return optionEl;\n }\n destroy() {\n this.changeListen(false);\n this.select.removeEventListener('change', this.valueChange);\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n delete this.select.dataset.id;\n this.showUI();\n }\n }\n\n class Settings {\n constructor(settings) {\n this.id = '';\n this.style = '';\n this.class = [];\n this.isMultiple = false;\n this.isOpen = false;\n this.isFullOpen = false;\n this.intervalMove = null;\n if (!settings) {\n settings = {};\n }\n this.id = 'ss-' + generateID();\n this.style = settings.style || '';\n this.class = settings.class || [];\n this.disabled = settings.disabled !== undefined ? settings.disabled : false;\n this.alwaysOpen = settings.alwaysOpen !== undefined ? settings.alwaysOpen : false;\n this.showSearch = settings.showSearch !== undefined ? settings.showSearch : true;\n this.focusSearch = settings.focusSearch !== undefined ? settings.focusSearch : true;\n this.ariaLabel = settings.ariaLabel || 'Combobox';\n this.searchPlaceholder = settings.searchPlaceholder || 'Search';\n this.searchText = settings.searchText || 'No Results';\n this.searchingText = settings.searchingText || 'Searching...';\n this.searchHighlight = settings.searchHighlight !== undefined ? settings.searchHighlight : false;\n this.closeOnSelect = settings.closeOnSelect !== undefined ? settings.closeOnSelect : true;\n this.contentLocation = settings.contentLocation || document.body;\n this.contentPosition = settings.contentPosition || 'absolute';\n this.openPosition = settings.openPosition || 'auto';\n this.placeholderText = settings.placeholderText !== undefined ? settings.placeholderText : 'Select Value';\n this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;\n this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;\n this.keepOrder = settings.keepOrder !== undefined ? settings.keepOrder : false;\n this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;\n this.minSelected = settings.minSelected || 0;\n this.maxSelected = settings.maxSelected || 1000;\n this.timeoutDelay = settings.timeoutDelay || 200;\n this.maxValuesShown = settings.maxValuesShown || 20;\n this.maxValuesMessage = settings.maxValuesMessage || '{number} selected';\n this.addableText = settings.addableText || 'Press \"Enter\" to add {value}';\n }\n }\n\n class SlimSelect {\n constructor(config) {\n var _a;\n this.events = {\n search: undefined,\n searchFilter: (opt, search) => {\n return opt.text.toLowerCase().indexOf(search.toLowerCase()) !== -1;\n },\n addable: undefined,\n beforeChange: undefined,\n afterChange: undefined,\n beforeOpen: undefined,\n afterOpen: undefined,\n beforeClose: undefined,\n afterClose: undefined\n };\n this.windowResize = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.windowScroll = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.documentClick = (e) => {\n if (!this.settings.isOpen) {\n return;\n }\n if (e.target && !hasClassInTree(e.target, this.settings.id)) {\n this.close(e.type);\n }\n };\n this.windowVisibilityChange = () => {\n if (document.hidden) {\n this.close();\n }\n };\n this.selectEl = (typeof config.select === 'string' ? document.querySelector(config.select) : config.select);\n if (!this.selectEl) {\n if (config.events && config.events.error) {\n config.events.error(new Error('Could not find select element'));\n }\n return;\n }\n if (this.selectEl.tagName !== 'SELECT') {\n if (config.events && config.events.error) {\n config.events.error(new Error('Element isnt of type select'));\n }\n return;\n }\n if (this.selectEl.dataset.ssid) {\n this.destroy();\n }\n this.settings = new Settings(config.settings);\n this.cssClasses = new CssClasses(config.cssClasses);\n const debounceEvents = ['afterChange', 'beforeOpen', 'afterOpen', 'beforeClose', 'afterClose'];\n for (const key in config.events) {\n if (!config.events.hasOwnProperty(key)) {\n continue;\n }\n if (debounceEvents.indexOf(key) !== -1) {\n this.events[key] = debounce(config.events[key], 100);\n }\n else {\n this.events[key] = config.events[key];\n }\n }\n this.settings.disabled = ((_a = config.settings) === null || _a === void 0 ? void 0 : _a.disabled) ? config.settings.disabled : this.selectEl.disabled;\n this.settings.isMultiple = this.selectEl.multiple;\n this.settings.style = this.selectEl.style.cssText;\n this.settings.class = this.selectEl.className.split(' ');\n this.select = new Select(this.selectEl);\n this.select.updateSelect(this.settings.id, this.settings.style, this.settings.class);\n this.select.hideUI();\n this.select.onValueChange = (options) => {\n this.setSelected(options.map((option) => option.id));\n };\n this.select.onClassChange = (classes) => {\n this.settings.class = classes;\n this.render.updateClassStyles();\n };\n this.select.onDisabledChange = (disabled) => {\n if (disabled) {\n this.disable();\n }\n else {\n this.enable();\n }\n };\n this.select.onOptionsChange = (data) => {\n this.setData(data);\n };\n this.store = new Store(this.settings.isMultiple ? 'multiple' : 'single', config.data ? config.data : this.select.getData());\n if (config.data) {\n this.select.updateOptions(this.store.getData());\n }\n const renderCallbacks = {\n open: this.open.bind(this),\n close: this.close.bind(this),\n addable: this.events.addable ? this.events.addable : undefined,\n setSelected: this.setSelected.bind(this),\n addOption: this.addOption.bind(this),\n search: this.search.bind(this),\n beforeChange: this.events.beforeChange,\n afterChange: this.events.afterChange\n };\n this.render = new Render(this.settings, this.cssClasses, this.store, renderCallbacks);\n this.render.renderValues();\n this.render.renderOptions(this.store.getData());\n const selectAriaLabel = this.selectEl.getAttribute('aria-label');\n const selectAriaLabelledBy = this.selectEl.getAttribute('aria-labelledby');\n if (selectAriaLabel) {\n this.render.main.main.setAttribute('aria-label', selectAriaLabel);\n }\n else if (selectAriaLabelledBy) {\n this.render.main.main.setAttribute('aria-labelledby', selectAriaLabelledBy);\n }\n if (this.selectEl.parentNode) {\n this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);\n }\n window.addEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.addEventListener('scroll', this.windowScroll, false);\n }\n document.addEventListener('visibilitychange', this.windowVisibilityChange);\n if (this.settings.disabled) {\n this.disable();\n }\n if (this.settings.alwaysOpen) {\n this.open();\n }\n this.selectEl.slim = this;\n }\n enable() {\n this.settings.disabled = false;\n this.select.enable();\n this.render.enable();\n }\n disable() {\n this.settings.disabled = true;\n this.select.disable();\n this.render.disable();\n }\n getData() {\n return this.store.getData();\n }\n setData(data) {\n const selected = this.store.getSelected();\n const err = this.store.validateDataArray(data);\n if (err) {\n if (this.events.error) {\n this.events.error(err);\n }\n return;\n }\n this.store.setData(data);\n const dataClean = this.store.getData();\n this.select.updateOptions(dataClean);\n this.render.renderValues();\n this.render.renderOptions(dataClean);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n getSelected() {\n let options = this.store.getSelectedOptions();\n if (this.settings.keepOrder) {\n options = this.store.selectedOrderOptions(options);\n }\n return options.map((option) => option.value);\n }\n setSelected(values, runAfterChange = true) {\n const selected = this.store.getSelected();\n const options = this.store.getDataOptions();\n values = Array.isArray(values) ? values : [values];\n const ids = [];\n for (const value of values) {\n if (options.find((option) => option.id == value)) {\n ids.push(value);\n continue;\n }\n for (const option of options.filter((option) => option.value == value)) {\n ids.push(option.id);\n }\n }\n this.store.setSelectedBy('id', ids);\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n if (this.render.content.search.input.value !== '') {\n this.search(this.render.content.search.input.value);\n }\n else {\n this.render.renderOptions(data);\n }\n if (runAfterChange && this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n addOption(option) {\n const selected = this.store.getSelected();\n if (!this.store.getDataOptions().some((o) => { var _a; return o.value === ((_a = option.value) !== null && _a !== void 0 ? _a : option.text); })) {\n this.store.addOption(option);\n }\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n this.render.renderOptions(data);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n open() {\n if (this.settings.disabled || this.settings.isOpen) {\n return;\n }\n if (this.events.beforeOpen) {\n this.events.beforeOpen();\n }\n this.render.open();\n if (this.settings.showSearch && this.settings.focusSearch) {\n this.render.searchFocus();\n }\n this.settings.isOpen = true;\n setTimeout(() => {\n if (this.events.afterOpen) {\n this.events.afterOpen();\n }\n if (this.settings.isOpen) {\n this.settings.isFullOpen = true;\n }\n document.addEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.contentPosition === 'absolute') {\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n this.settings.intervalMove = setInterval(this.render.moveContent.bind(this.render), 500);\n }\n }\n close(eventType = null) {\n if (!this.settings.isOpen || this.settings.alwaysOpen) {\n return;\n }\n if (this.events.beforeClose) {\n this.events.beforeClose();\n }\n this.render.close();\n if (this.render.content.search.input.value !== '') {\n this.search('');\n }\n this.render.mainFocus(eventType);\n this.settings.isOpen = false;\n this.settings.isFullOpen = false;\n setTimeout(() => {\n if (this.events.afterClose) {\n this.events.afterClose();\n }\n document.removeEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n }\n search(value) {\n if (this.render.content.search.input.value !== value) {\n this.render.content.search.input.value = value;\n }\n if (!this.events.search) {\n this.render.renderOptions(value === '' ? this.store.getData() : this.store.search(value, this.events.searchFilter));\n return;\n }\n this.render.renderSearching();\n const searchResp = this.events.search(value, this.store.getSelectedOptions());\n if (searchResp instanceof Promise) {\n searchResp\n .then((data) => {\n this.render.renderOptions(this.store.partialToFullData(data));\n })\n .catch((err) => {\n this.render.renderError(typeof err === 'string' ? err : err.message);\n });\n return;\n }\n else if (Array.isArray(searchResp)) {\n this.render.renderOptions(this.store.partialToFullData(searchResp));\n }\n else {\n this.render.renderError('Search event must return a promise or an array of data');\n }\n }\n destroy() {\n document.removeEventListener('click', this.documentClick);\n window.removeEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.removeEventListener('scroll', this.windowScroll, false);\n }\n document.removeEventListener('visibilitychange', this.windowVisibilityChange);\n this.store.setData([]);\n this.render.destroy();\n this.select.destroy();\n }\n }\n\n return SlimSelect;\n\n}));\n","/*\nStimulus 3.2.1\nCopyright © 2022 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n hasBindings() {\n return this.unorderedBindings.size > 0;\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n const { stopImmediatePropagation } = event;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n },\n });\n }\n}\n\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach((eventListener) => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding, clearEventListeners = false) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n if (clearEventListeners)\n this.clearEventListenersForBinding(binding);\n }\n handleError(error, message, detail = {}) {\n this.application.handleError(error, `Error ${message}`, detail);\n }\n clearEventListenersForBinding(binding) {\n const eventListener = this.fetchEventListenerForBinding(binding);\n if (!eventListener.hasBindings()) {\n eventListener.disconnect();\n this.removeMappedEventListenerFor(binding);\n }\n }\n removeMappedEventListenerFor(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n eventListenerMap.delete(cacheKey);\n if (eventListenerMap.size == 0)\n this.eventListenerMaps.delete(eventTarget);\n }\n fetchEventListenerForBinding(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions)\n .sort()\n .forEach((key) => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\n\nconst defaultActionDescriptorFilters = {\n stop({ event, value }) {\n if (value)\n event.stopPropagation();\n return true;\n },\n prevent({ event, value }) {\n if (value)\n event.preventDefault();\n return true;\n },\n self({ event, value, element }) {\n if (value) {\n return element === event.target;\n }\n else {\n return true;\n }\n },\n};\nconst descriptorPattern = /^(?:(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n let eventName = matches[1];\n let keyFilter = matches[2];\n if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n eventName += `.${keyFilter}`;\n keyFilter = \"\";\n }\n return {\n eventTarget: parseEventTarget(matches[3]),\n eventName,\n eventOptions: matches[6] ? parseEventOptions(matches[6]) : {},\n identifier: matches[4],\n methodName: matches[5],\n keyFilter,\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n }\n else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions\n .split(\":\")\n .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nclass Action {\n constructor(element, index, descriptor, schema) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n this.keyFilter = descriptor.keyFilter || \"\";\n this.schema = schema;\n }\n static forToken(token, schema) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n }\n toString() {\n const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n }\n isFilterTarget(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filteres = this.keyFilter.split(\"+\");\n const modifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\n const [meta, ctrl, alt, shift] = modifiers.map((modifier) => filteres.includes(modifier));\n if (event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift) {\n return true;\n }\n const standardFilter = filteres.filter((key) => !modifiers.includes(key))[0];\n if (!standardFilter) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(this.keyMappings, standardFilter)) {\n error(`contains unknown key filter: ${this.keyFilter}`);\n }\n return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n }\n get params() {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n for (const { name, value } of Array.from(this.element.attributes)) {\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n params[camelize(key)] = typecast(value);\n }\n }\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n get keyMappings() {\n return this.schema.keyMappings;\n }\n}\nconst defaultEventNames = {\n a: () => \"click\",\n button: () => \"click\",\n form: () => \"submit\",\n details: () => \"toggle\",\n input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n select: () => \"change\",\n textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n }\n catch (o_O) {\n return value;\n }\n}\n\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(event)) {\n this.invokeWithEvent(event);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n }\n applyEventModifiers(event) {\n const { element } = this.action;\n const { actionDescriptorFilters } = this.context.application;\n let passes = true;\n for (const [name, value] of Object.entries(this.eventOptions)) {\n if (name in actionDescriptorFilters) {\n const filter = actionDescriptorFilters[name];\n passes = passes && filter({ name, value, event, element });\n }\n else {\n continue;\n }\n }\n return passes;\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n const { params } = this.action;\n const actionEvent = Object.assign(event, { params });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n }\n catch (error) {\n const { identifier, controller, element, index } = this;\n const detail = { identifier, controller, element, index, event };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (event instanceof KeyboardEvent && this.action.isFilterTarget(event)) {\n return false;\n }\n if (this.element === eventTarget) {\n return true;\n }\n else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n }\n else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(node, attributeName) {\n const element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree(tree = this.element) {\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n }\n addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n}\n\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\n\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some((set) => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey)\n .filter(([_key, values]) => values.has(value))\n .map(([key, _values]) => key);\n }\n}\n\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map();\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\n\nclass SelectorObserver {\n constructor(element, selector, delegate, details = {}) {\n this.selector = selector;\n this.details = details;\n this.elementObserver = new ElementObserver(element, this);\n this.delegate = delegate;\n this.matchesByElement = new Multimap();\n }\n get started() {\n return this.elementObserver.started;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get element() {\n return this.elementObserver.element;\n }\n matchElement(element) {\n const matches = element.matches(this.selector);\n if (this.delegate.selectorMatchElement) {\n return matches && this.delegate.selectorMatchElement(element, this.details);\n }\n return matches;\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector)).filter((match) => this.matchElement(match));\n return match.concat(matches);\n }\n elementMatched(element) {\n this.selectorMatched(element);\n }\n elementUnmatched(element) {\n this.selectorUnmatched(element);\n }\n elementAttributeChanged(element, _attributeName) {\n const matches = this.matchElement(element);\n const matchedBefore = this.matchesByElement.has(this.selector, element);\n if (!matches && matchedBefore) {\n this.selectorUnmatched(element);\n }\n }\n selectorMatched(element) {\n if (this.delegate.selectorMatched) {\n this.delegate.selectorMatched(element, this.selector, this.details);\n this.matchesByElement.add(this.selector, element);\n }\n }\n selectorUnmatched(element) {\n this.delegate.selectorUnmatched(element, this.selector, this.details);\n this.matchesByElement.delete(this.selector, element);\n }\n}\n\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue)\n this.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map((attribute) => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\n\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach((token) => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach((token) => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString\n .trim()\n .split(/\\s+/)\n .filter((content) => content.length)\n .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n constructor(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return { value };\n }\n catch (error) {\n return { error };\n }\n }\n}\n\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token, this.schema);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\n\nclass ValueObserver {\n constructor(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n }\n start() {\n this.stringMapObserver.start();\n this.invokeChangedCallbacksForDefaultValues();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null)\n return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n }\n else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n try {\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n catch (error) {\n if (error instanceof TypeError) {\n error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n }\n throw error;\n }\n }\n }\n get valueDescriptors() {\n const { valueDescriptorMap } = this;\n return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach((key) => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\n\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched({ element, content: name }) {\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched({ element, content: name }) {\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.outletsByName = new Multimap();\n this.outletElementsByName = new Multimap();\n this.selectorObserverMap = new Map();\n }\n start() {\n if (this.selectorObserverMap.size === 0) {\n this.outletDefinitions.forEach((outletName) => {\n const selector = this.selector(outletName);\n const details = { outletName };\n if (selector) {\n this.selectorObserverMap.set(outletName, new SelectorObserver(document.body, selector, this, details));\n }\n });\n this.selectorObserverMap.forEach((observer) => observer.start());\n }\n this.dependentContexts.forEach((context) => context.refresh());\n }\n stop() {\n if (this.selectorObserverMap.size > 0) {\n this.disconnectAllOutlets();\n this.selectorObserverMap.forEach((observer) => observer.stop());\n this.selectorObserverMap.clear();\n }\n }\n refresh() {\n this.selectorObserverMap.forEach((observer) => observer.refresh());\n }\n selectorMatched(element, _selector, { outletName }) {\n const outlet = this.getOutlet(element, outletName);\n if (outlet) {\n this.connectOutlet(outlet, element, outletName);\n }\n }\n selectorUnmatched(element, _selector, { outletName }) {\n const outlet = this.getOutletFromMap(element, outletName);\n if (outlet) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n selectorMatchElement(element, { outletName }) {\n return (this.hasOutlet(element, outletName) &&\n element.matches(`[${this.context.application.schema.controllerAttribute}~=${outletName}]`));\n }\n connectOutlet(outlet, element, outletName) {\n var _a;\n if (!this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.add(outletName, outlet);\n this.outletElementsByName.add(outletName, element);\n (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n }\n }\n disconnectOutlet(outlet, element, outletName) {\n var _a;\n if (this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.delete(outletName, outlet);\n this.outletElementsByName.delete(outletName, element);\n (_a = this.selectorObserverMap\n .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n }\n }\n disconnectAllOutlets() {\n for (const outletName of this.outletElementsByName.keys) {\n for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n }\n }\n selector(outletName) {\n return this.scope.outlets.getSelectorForOutletName(outletName);\n }\n get outletDependencies() {\n const dependencies = new Multimap();\n this.router.modules.forEach((module) => {\n const constructor = module.definition.controllerConstructor;\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n });\n return dependencies;\n }\n get outletDefinitions() {\n return this.outletDependencies.getKeysForValue(this.identifier);\n }\n get dependentControllerIdentifiers() {\n return this.outletDependencies.getValuesForKey(this.identifier);\n }\n get dependentContexts() {\n const identifiers = this.dependentControllerIdentifiers;\n return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n }\n hasOutlet(element, outletName) {\n return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n }\n getOutlet(element, outletName) {\n return this.application.getControllerForElementAndIdentifier(element, outletName);\n }\n getOutletFromMap(element, outletName) {\n return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n }\n get scope() {\n return this.context.scope;\n }\n get identifier() {\n return this.context.identifier;\n }\n get application() {\n return this.context.application;\n }\n get router() {\n return this.application.router;\n }\n}\n\nclass Context {\n constructor(module, scope) {\n this.logDebugActivity = (functionName, detail = {}) => {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.logDebugActivity(this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n this.outletObserver = new OutletObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n this.outletObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n refresh() {\n this.outletObserver.refresh();\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.outletObserver.stop();\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message, detail = {}) {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n outletConnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n }\n outletDisconnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n }\n invokeControllerMethod(methodName, ...args) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n controller[methodName](...args);\n }\n }\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, { [key]: descriptor });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: { value: extended },\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n const a = function () {\n this.a.call(this);\n };\n const b = extendWithReflect(a);\n b.prototype.a = function () { };\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n }\n catch (error) {\n return (constructor) => class extended extends constructor {\n };\n }\n})();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor),\n };\n}\n\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n}\n\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\n\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n }\n else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\n\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n warn(object, key, message) {\n let warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find(...targetNames) {\n return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n }\n findAll(...targetNames) {\n return targetNames.reduce((targets, targetName) => [\n ...targets,\n ...this.findAllTargets(targetName),\n ...this.findAllLegacyTargets(targetName),\n ], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const { identifier } = this;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\n\nclass OutletSet {\n constructor(scope, controllerElement) {\n this.scope = scope;\n this.controllerElement = controllerElement;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(outletName) {\n return this.find(outletName) != null;\n }\n find(...outletNames) {\n return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n }\n findAll(...outletNames) {\n return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n }\n getSelectorForOutletName(outletName) {\n const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n return this.controllerElement.getAttribute(attributeName);\n }\n findOutlet(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n if (selector)\n return this.findElement(selector, outletName);\n }\n findAllOutlets(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n return selector ? this.findAllElements(selector, outletName) : [];\n }\n findElement(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n }\n findAllElements(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName));\n }\n matchesElement(element, selector, outletName) {\n const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n }\n}\n\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = (element) => {\n return element.closest(this.controllerSelector) === this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n this.outlets = new OutletSet(this.documentScope, element);\n }\n findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [\n ...(this.element.matches(selector) ? [this.element] : []),\n ...this.queryElements(selector).filter(this.containsElement),\n ];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n get isDocumentScope() {\n return this.element === document.documentElement;\n }\n get documentScope() {\n return this.isDocumentScope\n ? this\n : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n }\n}\n\nclass ScopeObserver {\n constructor(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const { element, content: identifier } = token;\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n elementMatchedValue(element, value) {\n const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n elementUnmatchedValue(element, value) {\n const referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\n\nclass Router {\n constructor(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n const afterLoad = definition.controllerConstructor.afterLoad;\n if (afterLoad) {\n afterLoad(definition.identifier, this.application);\n }\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find((context) => context.element == element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.disconnectContextForScope(scope));\n }\n}\n\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n constructor(element = document.documentElement, schema = defaultSchema) {\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = (identifier, functionName, detail = {}) => {\n if (this.debug) {\n this.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n }\n static start(element, schema) {\n const application = new this(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n this.load({ identifier, controllerConstructor });\n }\n registerActionOption(name, filter) {\n this.actionDescriptorFilters[name] = filter;\n }\n load(head, ...rest) {\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach((definition) => {\n if (definition.controllerConstructor.shouldLoad) {\n this.router.loadDefinition(definition);\n }\n });\n }\n unload(head, ...rest) {\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map((context) => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName, detail = {}) {\n detail = Object.assign({ application: this }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise((resolve) => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n }\n else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const { classes } = this;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n },\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n },\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n },\n },\n };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n return outlets.reduce((properties, outletDefinition) => {\n return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n }, {});\n}\nfunction propertiesForOutletDefinition(name) {\n const camelizedName = namespaceCamelize(name);\n return {\n [`${camelizedName}Outlet`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n const outletController = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (outletController) {\n return outletController;\n }\n else {\n throw new Error(`Missing \"data-controller=${name}\" attribute on outlet element for \"${this.identifier}\" controller`);\n }\n }\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n },\n },\n [`${camelizedName}Outlets`]: {\n get() {\n const outlets = this.outlets.findAll(name);\n if (outlets.length > 0) {\n return outlets\n .map((outlet) => {\n const controller = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (controller) {\n return controller;\n }\n else {\n console.warn(`The provided outlet element is missing the outlet controller \"${name}\" for \"${this.identifier}\"`, outlet);\n }\n })\n .filter((controller) => controller);\n }\n return [];\n },\n },\n [`${camelizedName}OutletElement`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n return outlet;\n }\n else {\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${camelizedName}OutletElements`]: {\n get() {\n return this.outlets.findAll(name);\n },\n },\n [`has${capitalize(camelizedName)}Outlet`]: {\n get() {\n return this.outlets.has(name);\n },\n },\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n },\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n },\n },\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, { [attributeName]: valueDescriptor });\n }, {});\n },\n },\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n const { key, name, reader: read, writer: write } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n },\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n },\n },\n };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n return valueDescriptorForTokenAndTypeDefinition({\n controller,\n token,\n typeDefinition,\n });\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue))\n return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n const typeFromObject = parseValueTypeConstant(payload.typeObject.type);\n if (!typeFromObject)\n return;\n const defaultValueType = parseValueTypeDefault(payload.typeObject.default);\n if (typeFromObject !== defaultValueType) {\n const propertyPath = payload.controller ? `${payload.controller}.${payload.token}` : payload.token;\n throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${payload.typeObject.default}\" is of type \"${defaultValueType}\".`);\n }\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const typeFromObject = parseValueTypeObject({\n controller: payload.controller,\n token: payload.token,\n typeObject: payload.typeDefinition,\n });\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeDefinition);\n const typeFromConstant = parseValueTypeConstant(payload.typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n const propertyPath = payload.controller ? `${payload.controller}.${payload.typeDefinition}` : payload.token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${payload.token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const defaultValue = typeDefinition.default;\n if (defaultValue !== undefined)\n return defaultValue;\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const key = `${dasherize(payload.token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(payload.typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(payload.typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers.default,\n };\n}\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\",\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n },\n number(value) {\n return Number(value);\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n }\n return object;\n },\n string(value) {\n return value;\n },\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON,\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n static afterLoad(_identifier, _application) {\n return;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get outlets() {\n return this.scope.outlets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {\n }\n connect() {\n }\n disconnect() {\n }\n dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, { detail, bubbles, cancelable });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [\n ClassPropertiesBlessing,\n TargetPropertiesBlessing,\n ValuePropertiesBlessing,\n OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n","/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function(){}).call(this),function(){var t;null==window.Set&&(window.Set=t=function(){function t(){this.clear()}return t.prototype.clear=function(){return this.values=[]},t.prototype.has=function(t){return-1!==this.values.indexOf(t)},t.prototype.add=function(t){return this.has(t)||this.values.push(t),this},t.prototype[\"delete\"]=function(t){var e;return-1===(e=this.values.indexOf(t))?!1:(this.values.splice(e,1),!0)},t.prototype.forEach=function(){var t;return(t=this.values).forEach.apply(t,arguments)},t}())}.call(this),function(t){function e(){}function n(t,e){return function(){t.apply(e,arguments)}}function i(t){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof t)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(t,this)}function o(t,e){for(;3===t._state;)t=t._value;return 0===t._state?void t._deferreds.push(e):(t._handled=!0,void h(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?r:s)(e.promise,t._value);var i;try{i=n(t._value)}catch(o){return void s(e.promise,o)}r(e.promise,i)}))}function r(t,e){try{if(e===t)throw new TypeError(\"A promise cannot be resolved with itself.\");if(e&&(\"object\"==typeof e||\"function\"==typeof e)){var o=e.then;if(e instanceof i)return t._state=3,t._value=e,void a(t);if(\"function\"==typeof o)return void c(n(o,e),t)}t._state=1,t._value=e,a(t)}catch(r){s(t,r)}}function s(t,e){t._state=2,t._value=e,a(t)}function a(t){2===t._state&&0===t._deferreds.length&&setTimeout(function(){t._handled||p(t._value)},1);for(var e=0,n=t._deferreds.length;n>e;e++)o(t,t._deferreds[e]);t._deferreds=null}function u(t,e,n){this.onFulfilled=\"function\"==typeof t?t:null,this.onRejected=\"function\"==typeof e?e:null,this.promise=n}function c(t,e){var n=!1;try{t(function(t){n||(n=!0,r(e,t))},function(t){n||(n=!0,s(e,t))})}catch(i){if(n)return;n=!0,s(e,i)}}var l=setTimeout,h=\"function\"==typeof setImmediate&&setImmediate||function(t){l(t,1)},p=function(t){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",t)};i.prototype[\"catch\"]=function(t){return this.then(null,t)},i.prototype.then=function(t,n){var r=new i(e);return o(this,new u(t,n,r)),r},i.all=function(t){var e=Array.prototype.slice.call(t);return new i(function(t,n){function i(r,s){try{if(s&&(\"object\"==typeof s||\"function\"==typeof s)){var a=s.then;if(\"function\"==typeof a)return void a.call(s,function(t){i(r,t)},n)}e[r]=s,0===--o&&t(e)}catch(u){n(u)}}if(0===e.length)return t([]);for(var o=e.length,r=0;ri;i++)t[i].then(e,n)})},i._setImmediateFn=function(t){h=t},i._setUnhandledRejectionFn=function(t){p=t},\"undefined\"!=typeof module&&module.exports?module.exports=i:t.Promise||(t.Promise=i)}(this),function(){var t=\"object\"==typeof window.customElements,e=\"function\"==typeof document.registerElement,n=t||e;n||(/**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\"undefined\"==typeof WeakMap&&!function(){var t=Object.defineProperty,e=Date.now()%1e9,n=function(){this.name=\"__st\"+(1e9*Math.random()>>>0)+(e++ +\"__\")};n.prototype={set:function(e,n){var i=e[this.name];return i&&i[0]===e?i[1]=n:t(e,this.name,{value:[e,n],writable:!0}),this},get:function(t){var e;return(e=t[this.name])&&e[0]===t?e[1]:void 0},\"delete\":function(t){var e=t[this.name];return e&&e[0]===t?(e[0]=e[1]=void 0,!0):!1},has:function(t){var e=t[this.name];return e?e[0]===t:!1}},window.WeakMap=n}(),function(t){function e(t){A.push(t),b||(b=!0,g(i))}function n(t){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(t)||t}function i(){b=!1;var t=A;A=[],t.sort(function(t,e){return t.uid_-e.uid_});var e=!1;t.forEach(function(t){var n=t.takeRecords();o(t),n.length&&(t.callback_(n,t),e=!0)}),e&&i()}function o(t){t.nodes_.forEach(function(e){var n=m.get(e);n&&n.forEach(function(e){e.observer===t&&e.removeTransientObservers()})})}function r(t,e){for(var n=t;n;n=n.parentNode){var i=m.get(n);if(i)for(var o=0;o0){var o=n[i-1],r=d(o,t);if(r)return void(n[i-1]=r)}else e(this.observer);n[i]=t},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(t){var e=this.options;e.attributes&&t.addEventListener(\"DOMAttrModified\",this,!0),e.characterData&&t.addEventListener(\"DOMCharacterDataModified\",this,!0),e.childList&&t.addEventListener(\"DOMNodeInserted\",this,!0),(e.childList||e.subtree)&&t.addEventListener(\"DOMNodeRemoved\",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(t){var e=this.options;e.attributes&&t.removeEventListener(\"DOMAttrModified\",this,!0),e.characterData&&t.removeEventListener(\"DOMCharacterDataModified\",this,!0),e.childList&&t.removeEventListener(\"DOMNodeInserted\",this,!0),(e.childList||e.subtree)&&t.removeEventListener(\"DOMNodeRemoved\",this,!0)},addTransientObserver:function(t){if(t!==this.target){this.addListeners_(t),this.transientObservedNodes.push(t);var e=m.get(t);e||m.set(t,e=[]),e.push(this)}},removeTransientObservers:function(){var t=this.transientObservedNodes;this.transientObservedNodes=[],t.forEach(function(t){this.removeListeners_(t);for(var e=m.get(t),n=0;n=0)){n.push(t);for(var i,o=t.querySelectorAll(\"link[rel=\"+s+\"]\"),a=0,u=o.length;u>a&&(i=o[a]);a++)i.import&&r(i.import,e,n);e(t)}}var s=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:\"none\";t.forDocumentTree=o,t.forSubtree=e}),window.CustomElements.addModule(function(t){function e(t,e){return n(t,e)||i(t,e)}function n(e,n){return t.upgrade(e,n)?!0:void(n&&s(e))}function i(t,e){b(t,function(t){return n(t,e)?!0:void 0})}function o(t){w.push(t),x||(x=!0,setTimeout(r))}function r(){x=!1;for(var t,e=w,n=0,i=e.length;i>n&&(t=e[n]);n++)t();w=[]}function s(t){C?o(function(){a(t)}):a(t)}function a(t){t.__upgraded__&&!t.__attached&&(t.__attached=!0,t.attachedCallback&&t.attachedCallback())}function u(t){c(t),b(t,function(t){c(t)})}function c(t){C?o(function(){l(t)}):l(t)}function l(t){t.__upgraded__&&t.__attached&&(t.__attached=!1,t.detachedCallback&&t.detachedCallback())}function h(t){for(var e=t,n=window.wrap(document);e;){if(e==n)return!0;e=e.parentNode||e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.host}}function p(t){if(t.shadowRoot&&!t.shadowRoot.__watched){y.dom&&console.log(\"watching shadow-root for: \",t.localName);for(var e=t.shadowRoot;e;)g(e),e=e.olderShadowRoot}}function d(t,n){if(y.dom){var i=n[0];if(i&&\"childList\"===i.type&&i.addedNodes&&i.addedNodes){for(var o=i.addedNodes[0];o&&o!==document&&!o.host;)o=o.parentNode;var r=o&&(o.URL||o._URL||o.host&&o.host.localName)||\"\";r=r.split(\"/?\").shift().split(\"/\").pop()}console.group(\"mutations (%d) [%s]\",n.length,r||\"\")}var s=h(t);n.forEach(function(t){\"childList\"===t.type&&(E(t.addedNodes,function(t){t.localName&&e(t,s)}),E(t.removedNodes,function(t){t.localName&&u(t)}))}),y.dom&&console.groupEnd()}function f(t){for(t=window.wrap(t),t||(t=window.wrap(document));t.parentNode;)t=t.parentNode;var e=t.__observer;e&&(d(t,e.takeRecords()),r())}function g(t){if(!t.__observer){var e=new MutationObserver(d.bind(this,t));e.observe(t,{childList:!0,subtree:!0}),t.__observer=e}}function m(t){t=window.wrap(t),y.dom&&console.group(\"upgradeDocument: \",t.baseURI.split(\"/\").pop());var n=t===window.wrap(document);e(t,n),g(t),y.dom&&console.groupEnd()}function v(t){A(t,m)}var y=t.flags,b=t.forSubtree,A=t.forDocumentTree,C=window.MutationObserver._isPolyfilled&&y[\"throttle-attached\"];t.hasPolyfillMutations=C,t.hasThrottledAttached=C;var x=!1,w=[],E=Array.prototype.forEach.call.bind(Array.prototype.forEach),S=Element.prototype.createShadowRoot;S&&(Element.prototype.createShadowRoot=function(){var t=S.call(this);return window.CustomElements.watchShadow(this),t}),t.watchShadow=p,t.upgradeDocumentTree=v,t.upgradeDocument=m,t.upgradeSubtree=i,t.upgradeAll=e,t.attached=s,t.takeRecords=f}),window.CustomElements.addModule(function(t){function e(e,i){if(\"template\"===e.localName&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(e),!e.__upgraded__&&e.nodeType===Node.ELEMENT_NODE){var o=e.getAttribute(\"is\"),r=t.getRegisteredDefinition(e.localName)||t.getRegisteredDefinition(o);if(r&&(o&&r.tag==e.localName||!o&&!r.extends))return n(e,r,i)}}function n(e,n,o){return s.upgrade&&console.group(\"upgrade:\",e.localName),n.is&&e.setAttribute(\"is\",n.is),i(e,n),e.__upgraded__=!0,r(e),o&&t.attached(e),t.upgradeSubtree(e,o),s.upgrade&&console.groupEnd(),e}function i(t,e){Object.__proto__?t.__proto__=e.prototype:(o(t,e.prototype,e.native),t.__proto__=e.prototype)}function o(t,e,n){for(var i={},o=e;o!==n&&o!==HTMLElement.prototype;){for(var r,s=Object.getOwnPropertyNames(o),a=0;r=s[a];a++)i[r]||(Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(o,r)),i[r]=1);o=Object.getPrototypeOf(o)}}function r(t){t.createdCallback&&t.createdCallback()}var s=t.flags;t.upgrade=e,t.upgradeWithDefinition=n,t.implementPrototype=i}),window.CustomElements.addModule(function(t){function e(e,i){var u=i||{};if(!e)throw new Error(\"document.registerElement: first argument `name` must not be empty\");if(e.indexOf(\"-\")<0)throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\"+String(e)+\"'.\");if(o(e))throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\"+String(e)+\"'. The type name is invalid.\");if(c(e))throw new Error(\"DuplicateDefinitionError: a type with name '\"+String(e)+\"' is already registered\");return u.prototype||(u.prototype=Object.create(HTMLElement.prototype)),u.__name=e.toLowerCase(),u.extends&&(u.extends=u.extends.toLowerCase()),u.lifecycle=u.lifecycle||{},u.ancestry=r(u.extends),s(u),a(u),n(u.prototype),l(u.__name,u),u.ctor=h(u),u.ctor.prototype=u.prototype,u.prototype.constructor=u.ctor,t.ready&&m(document),u.ctor}function n(t){if(!t.setAttribute._polyfilled){var e=t.setAttribute;t.setAttribute=function(t,n){i.call(this,t,n,e)};var n=t.removeAttribute;t.removeAttribute=function(t){i.call(this,t,null,n)},t.setAttribute._polyfilled=!0}}function i(t,e,n){t=t.toLowerCase();var i=this.getAttribute(t);n.apply(this,arguments);var o=this.getAttribute(t);this.attributeChangedCallback&&o!==i&&this.attributeChangedCallback(t,i,o)}function o(t){for(var e=0;e=0&&b(i,HTMLElement),i)}function f(t,e){var n=t[e];t[e]=function(){var t=n.apply(this,arguments);return v(t),t}}var g,m=(t.isIE,t.upgradeDocumentTree),v=t.upgradeAll,y=t.upgradeWithDefinition,b=t.implementPrototype,A=t.useNative,C=[\"annotation-xml\",\"color-profile\",\"font-face\",\"font-face-src\",\"font-face-uri\",\"font-face-format\",\"font-face-name\",\"missing-glyph\"],x={},w=\"http://www.w3.org/1999/xhtml\",E=document.createElement.bind(document),S=document.createElementNS.bind(document);g=Object.__proto__||A?function(t,e){return t instanceof e}:function(t,e){if(t instanceof e)return!0;for(var n=t;n;){if(n===e.prototype)return!0;n=n.__proto__}return!1},f(Node.prototype,\"cloneNode\"),f(document,\"importNode\"),document.registerElement=e,document.createElement=d,document.createElementNS=p,t.registry=x,t.instanceof=g,t.reservedTagList=C,t.getRegisteredDefinition=c,document.register=document.registerElement}),function(t){function e(){r(window.wrap(document)),window.CustomElements.ready=!0;var t=window.requestAnimationFrame||function(t){setTimeout(t,16)};t(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent(\"WebComponentsReady\",{bubbles:!0}))})})}var n=t.useNative,i=t.initializeModules;if(t.isIE,n){var o=function(){};t.watchShadow=o,t.upgrade=o,t.upgradeAll=o,t.upgradeDocumentTree=o,t.upgradeSubtree=o,t.takeRecords=o,t.instanceof=function(t,e){return t instanceof e}}else i();var r=t.upgradeDocumentTree,s=t.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(t){return t}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(t){t.import&&s(wrap(t.import))}),\"complete\"===document.readyState||t.flags.eager)e();else if(\"interactive\"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var a=window.HTMLImports&&!window.HTMLImports.ready?\"HTMLImportsLoaded\":\"DOMContentLoaded\";window.addEventListener(a,e)}else e()}(window.CustomElements))}.call(this),function(){}.call(this),function(){var t=this;(function(){(function(){this.Trix={VERSION:\"1.3.1\",ZERO_WIDTH_SPACE:\"\\ufeff\",NON_BREAKING_SPACE:\"\\xa0\",OBJECT_REPLACEMENT_CHARACTER:\"\\ufffc\",browser:{composesExistingText:/Android.*Chrome/.test(navigator.userAgent),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:function(){var t,e,n,i;if(\"undefined\"==typeof InputEvent)return!1;for(i=[\"data\",\"getTargetRanges\",\"inputType\"],t=0,e=i.length;e>t;t++)if(n=i[t],!(n in InputEvent.prototype))return!1;return!0}()},config:{}}}).call(this)}).call(t);var e=t.Trix;(function(){(function(){e.BasicObject=function(){function t(){}var e,n,i;return t.proxyMethod=function(t){var i,o,r,s,a;return r=n(t),i=r.name,s=r.toMethod,a=r.toProperty,o=r.optional,this.prototype[i]=function(){var t,n;return t=null!=s?o?\"function\"==typeof this[s]?this[s]():void 0:this[s]():null!=a?this[a]:void 0,o?(n=null!=t?t[i]:void 0,null!=n?e.call(n,t,arguments):void 0):(n=t[i],e.call(n,t,arguments))}},n=function(t){var e,n;if(!(n=t.match(i)))throw new Error(\"can't parse @proxyMethod expression: \"+t);return e={name:n[4]},null!=n[2]?e.toMethod=n[1]:e.toProperty=n[1],null!=n[3]&&(e.optional=!0),e},e=Function.prototype.apply,i=/^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/,t}()}).call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Object=function(n){function i(){this.id=++o}var o;return t(i,n),o=0,i.fromJSONString=function(t){return this.fromJSON(JSON.parse(t))},i.prototype.hasSameConstructorAs=function(t){return this.constructor===(null!=t?t.constructor:void 0)},i.prototype.isEqualTo=function(t){return this===t},i.prototype.inspect=function(){var t,e,n;return t=function(){var t,i,o;i=null!=(t=this.contentsForInspection())?t:{},o=[];for(e in i)n=i[e],o.push(e+\"=\"+n);return o}.call(this),\"#<\"+this.constructor.name+\":\"+this.id+(t.length?\" \"+t.join(\", \"):\"\")+\">\"},i.prototype.contentsForInspection=function(){},i.prototype.toJSONString=function(){return JSON.stringify(this)},i.prototype.toUTF16String=function(){return e.UTF16String.box(this)},i.prototype.getCacheKey=function(){return this.id.toString()},i}(e.BasicObject)}.call(this),function(){e.extend=function(t){var e,n;for(e in t)n=t[e],this[e]=n;return this}}.call(this),function(){e.extend({defer:function(t){return setTimeout(t,1)}})}.call(this),function(){var t,n;e.extend({normalizeSpaces:function(t){return t.replace(RegExp(\"\"+e.ZERO_WIDTH_SPACE,\"g\"),\"\").replace(RegExp(\"\"+e.NON_BREAKING_SPACE,\"g\"),\" \")},normalizeNewlines:function(t){return t.replace(/\\r\\n/g,\"\\n\")},breakableWhitespacePattern:RegExp(\"[^\\\\S\"+e.NON_BREAKING_SPACE+\"]\"),squishBreakableWhitespace:function(t){return t.replace(RegExp(\"\"+e.breakableWhitespacePattern.source,\"g\"),\" \").replace(/\\ {2,}/g,\" \")},summarizeStringChange:function(t,i){var o,r,s,a;return t=e.UTF16String.box(t),i=e.UTF16String.box(i),i.lengthn&&t.charAt(n).isEqualTo(e.charAt(n));)n++;for(;i>n+1&&t.charAt(i-1).isEqualTo(e.charAt(o-1));)i--,o--;return{utf16String:t.slice(n,i),offset:n}}}.call(this),function(){e.extend({copyObject:function(t){var e,n,i;null==t&&(t={}),n={};for(e in t)i=t[e],n[e]=i;return n},objectsAreEqual:function(t,e){var n,i;if(null==t&&(t={}),null==e&&(e={}),Object.keys(t).length!==Object.keys(e).length)return!1;for(n in t)if(i=t[n],i!==e[n])return!1;return!0}})}.call(this),function(){var t=[].slice;e.extend({arraysAreEqual:function(t,e){var n,i,o,r;if(null==t&&(t=[]),null==e&&(e=[]),t.length!==e.length)return!1;for(i=n=0,o=t.length;o>n;i=++n)if(r=t[i],r!==e[i])return!1;return!0},arrayStartsWith:function(t,n){return null==t&&(t=[]),null==n&&(n=[]),e.arraysAreEqual(t.slice(0,n.length),n)},spliceArray:function(){var e,n,i;return n=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],i=n.slice(0),i.splice.apply(i,e),i},summarizeArrayChange:function(t,e){var n,i,o,r,s,a,u,c,l,h,p;for(null==t&&(t=[]),null==e&&(e=[]),n=[],h=[],o=new Set,r=0,u=t.length;u>r;r++)p=t[r],o.add(p);for(i=new Set,s=0,c=e.length;c>s;s++)p=e[s],i.add(p),o.has(p)||n.push(p);for(a=0,l=t.length;l>a;a++)p=t[a],i.has(p)||h.push(p);return{added:n,removed:h}}})}.call(this),function(){var t,n,i,o;t=null,n=null,o=null,i=null,e.extend({getAllAttributeNames:function(){return null!=t?t:t=e.getTextAttributeNames().concat(e.getBlockAttributeNames())},getBlockConfig:function(t){return e.config.blockAttributes[t]},getBlockAttributeNames:function(){return null!=n?n:n=Object.keys(e.config.blockAttributes)},getTextConfig:function(t){return e.config.textAttributes[t]},getTextAttributeNames:function(){return null!=o?o:o=Object.keys(e.config.textAttributes)},getListAttributeNames:function(){var t,n;return null!=i?i:i=function(){var i,o;i=e.config.blockAttributes,o=[];for(t in i)n=i[t].listAttribute,null!=n&&o.push(n);return o}()}})}.call(this),function(){var t,n,i,o,r,s=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=document.documentElement,n=null!=(i=null!=(o=null!=(r=t.matchesSelector)?r:t.webkitMatchesSelector)?o:t.msMatchesSelector)?i:t.mozMatchesSelector,e.extend({handleEvent:function(n,i){var o,r,s,a,u,c,l,h,p,d,f,g;return h=null!=i?i:{},c=h.onElement,u=h.matchingSelector,g=h.withCallback,a=h.inPhase,l=h.preventDefault,d=h.times,r=null!=c?c:t,p=u,o=g,f=\"capturing\"===a,s=function(t){var n;return null!=d&&0===--d&&s.destroy(),n=e.findClosestElementFromNode(t.target,{matchingSelector:p}),null!=n&&(null!=g&&g.call(n,t,n),l)?t.preventDefault():void 0},s.destroy=function(){return r.removeEventListener(n,s,f)},r.addEventListener(n,s,f),s},handleEventOnce:function(t,n){return null==n&&(n={}),n.times=1,e.handleEvent(t,n)},triggerEvent:function(n,i){var o,r,s,a,u,c,l;return l=null!=i?i:{},c=l.onElement,r=l.bubbles,s=l.cancelable,o=l.attributes,a=null!=c?c:t,r=r!==!1,s=s!==!1,u=document.createEvent(\"Events\"),u.initEvent(n,r,s),null!=o&&e.extend.call(u,o),a.dispatchEvent(u)},elementMatchesSelector:function(t,e){return 1===(null!=t?t.nodeType:void 0)?n.call(t,e):void 0},findClosestElementFromNode:function(t,n){var i,o,r;for(o=null!=n?n:{},i=o.matchingSelector,r=o.untilNode;null!=t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.parentNode;if(null!=t){if(null==i)return t;if(t.closest&&null==r)return t.closest(i);for(;t&&t!==r;){if(e.elementMatchesSelector(t,i))return t;t=t.parentNode}}},findInnerElement:function(t){for(;null!=t?t.firstElementChild:void 0;)t=t.firstElementChild;return t},innerElementIsActive:function(t){return document.activeElement!==t&&e.elementContainsNode(t,document.activeElement)},elementContainsNode:function(t,e){if(t&&e)for(;e;){if(e===t)return!0;e=e.parentNode}},findNodeFromContainerAndOffset:function(t,e){var n;if(t)return t.nodeType===Node.TEXT_NODE?t:0===e?null!=(n=t.firstChild)?n:t:t.childNodes.item(e-1)},findElementFromContainerAndOffset:function(t,n){var i;return i=e.findNodeFromContainerAndOffset(t,n),e.findClosestElementFromNode(i)},findChildIndexOfNode:function(t){var e;if(null!=t?t.parentNode:void 0){for(e=0;t=t.previousSibling;)e++;return e}},removeNode:function(t){var e;return null!=t&&null!=(e=t.parentNode)?e.removeChild(t):void 0},walkTree:function(t,e){var n,i,o,r,s;return o=null!=e?e:{},i=o.onlyNodesOfType,r=o.usingFilter,n=o.expandEntityReferences,s=function(){switch(i){case\"element\":return NodeFilter.SHOW_ELEMENT;case\"text\":return NodeFilter.SHOW_TEXT;case\"comment\":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}}(),document.createTreeWalker(t,s,null!=r?r:null,n===!0)},tagName:function(t){var e;return null!=t&&null!=(e=t.tagName)?e.toLowerCase():void 0},makeElement:function(t,e){var n,i,o,r,s,a,u,c,l,h,p,d,f,g;if(null==e&&(e={}),\"object\"==typeof t?(e=t,t=e.tagName):e={attributes:e},o=document.createElement(t),null!=e.editable&&(null==e.attributes&&(e.attributes={}),e.attributes.contenteditable=e.editable),e.attributes){l=e.attributes;for(a in l)g=l[a],o.setAttribute(a,g)}if(e.style){h=e.style;for(a in h)g=h[a],o.style[a]=g}if(e.data){p=e.data;for(a in p)g=p[a],o.dataset[a]=g}if(e.className)for(d=e.className.split(\" \"),r=0,u=d.length;u>r;r++)i=d[r],o.classList.add(i);if(e.textContent&&(o.textContent=e.textContent),e.childNodes)for(f=[].concat(e.childNodes),s=0,c=f.length;c>s;s++)n=f[s],o.appendChild(n);return o},getBlockTagNames:function(){var t,n;return null!=e.blockTagNames?e.blockTagNames:e.blockTagNames=function(){var i,o;i=e.config.blockAttributes,o=[];for(t in i)n=i[t].tagName,n&&o.push(n);return o}()},nodeIsBlockContainer:function(t){return e.nodeIsBlockStartComment(null!=t?t.firstChild:void 0)},nodeProbablyIsBlockContainer:function(t){var n,i;return n=e.tagName(t),s.call(e.getBlockTagNames(),n)>=0&&(i=e.tagName(t.firstChild),s.call(e.getBlockTagNames(),i)<0)},nodeIsBlockStart:function(t,n){var i;return i=(null!=n?n:{strict:!0}).strict,i?e.nodeIsBlockStartComment(t):e.nodeIsBlockStartComment(t)||!e.nodeIsBlockStartComment(t.firstChild)&&e.nodeProbablyIsBlockContainer(t)},nodeIsBlockStartComment:function(t){return e.nodeIsCommentNode(t)&&\"block\"===(null!=t?t.data:void 0)},nodeIsCommentNode:function(t){return(null!=t?t.nodeType:void 0)===Node.COMMENT_NODE},nodeIsCursorTarget:function(t,n){var i;return i=(null!=n?n:{}).name,t?e.nodeIsTextNode(t)?t.data===e.ZERO_WIDTH_SPACE?i?t.parentNode.dataset.trixCursorTarget===i:!0:void 0:e.nodeIsCursorTarget(t.firstChild):void 0},nodeIsAttachmentElement:function(t){return e.elementMatchesSelector(t,e.AttachmentView.attachmentSelector)},nodeIsEmptyTextNode:function(t){return e.nodeIsTextNode(t)&&\"\"===(null!=t?t.data:void 0)},nodeIsTextNode:function(t){return(null!=t?t.nodeType:void 0)===Node.TEXT_NODE}})}.call(this),function(){var t,n,i,o,r;t=e.copyObject,o=e.objectsAreEqual,e.extend({normalizeRange:i=function(t){var e;if(null!=t)return Array.isArray(t)||(t=[t,t]),[n(t[0]),n(null!=(e=t[1])?e:t[0])]},rangeIsCollapsed:function(t){var e,n,o;if(null!=t)return n=i(t),o=n[0],e=n[1],r(o,e)},rangesAreEqual:function(t,e){var n,o,s,a,u,c;if(null!=t&&null!=e)return s=i(t),o=s[0],n=s[1],a=i(e),c=a[0],u=a[1],r(o,c)&&r(n,u)}}),n=function(e){return\"number\"==typeof e?e:t(e)},r=function(t,e){return\"number\"==typeof t?t===e:o(t,e)}}.call(this),function(){var t,n,i,o,r,s,a;e.registerElement=function(t,e){var n,i;return null==e&&(e={}),t=t.toLowerCase(),e=a(e),i=s(e),(n=i.defaultCSS)&&(delete i.defaultCSS,o(n,t)),r(t,i)},o=function(t,e){var n;return n=i(e),n.textContent=t.replace(/%t/g,e)},i=function(e){var n,i;return n=document.createElement(\"style\"),n.setAttribute(\"type\",\"text/css\"),n.setAttribute(\"data-tag-name\",e.toLowerCase()),(i=t())&&n.setAttribute(\"nonce\",i),document.head.insertBefore(n,document.head.firstChild),n},t=function(){var t;return(t=n(\"trix-csp-nonce\")||n(\"csp-nonce\"))?t.getAttribute(\"content\"):void 0},n=function(t){return document.head.querySelector(\"meta[name=\"+t+\"]\")},s=function(t){var e,n,i;n={};for(e in t)i=t[e],n[e]=\"function\"==typeof i?{value:i}:i;return n},a=function(){var t;return t=function(t){var e,n,i,o,r;for(e={},r=[\"initialize\",\"connect\",\"disconnect\"],n=0,o=r.length;o>n;n++)i=r[n],e[i]=t[i],delete t[i];return e},window.customElements?function(e){var n,i,o,r,s;return s=t(e),o=s.initialize,n=s.connect,i=s.disconnect,o&&(r=n,n=function(){return this.initialized||(this.initialized=!0,o.call(this)),null!=r?r.call(this):void 0}),n&&(e.connectedCallback=n),i&&(e.disconnectedCallback=i),e}:function(e){var n,i,o,r;return r=t(e),o=r.initialize,n=r.connect,i=r.disconnect,o&&(e.createdCallback=o),n&&(e.attachedCallback=n),i&&(e.detachedCallback=i),e}}(),r=function(){return window.customElements?function(t,e){var n;return n=function(){return\"object\"==typeof Reflect?Reflect.construct(HTMLElement,[],n):HTMLElement.apply(this)},Object.setPrototypeOf(n.prototype,HTMLElement.prototype),Object.setPrototypeOf(n,HTMLElement),Object.defineProperties(n.prototype,e),window.customElements.define(t,n),n}:function(t,e){var n,i;return i=Object.create(HTMLElement.prototype,e),n=document.registerElement(t,{prototype:i}),Object.defineProperty(i,\"constructor\",{value:n}),n}}()}.call(this),function(){var t,n;e.extend({getDOMSelection:function(){var t;return t=window.getSelection(),t.rangeCount>0?t:void 0},getDOMRange:function(){var n,i;return(n=null!=(i=e.getDOMSelection())?i.getRangeAt(0):void 0)&&!t(n)?n:void 0},setDOMRange:function(t){var n;return n=window.getSelection(),n.removeAllRanges(),n.addRange(t),e.selectionChangeObserver.update()}}),t=function(t){return n(t.startContainer)||n(t.endContainer)},n=function(t){return!Object.getPrototypeOf(t)}}.call(this),function(){var t;t={\"application/x-trix-feature-detection\":\"test\"},e.extend({dataTransferIsPlainText:function(t){var e,n,i;return i=t.getData(\"text/plain\"),n=t.getData(\"text/html\"),i&&n?(e=(new DOMParser).parseFromString(n,\"text/html\").body,e.textContent===i?!e.querySelector(\"*\"):void 0):null!=i?i.length:void 0},dataTransferIsWritable:function(e){var n,i;if(null!=(null!=e?e.setData:void 0)){for(n in t)if(i=t[n],!function(){try{return e.setData(n,i),e.getData(n)===i}catch(t){}}())return;return!0}},keyEventIsKeyboardCommand:function(){return/Mac|^iP/.test(navigator.platform)?function(t){return t.metaKey}:function(t){return t.ctrlKey}}()})}.call(this),function(){e.extend({RTL_PATTERN:/[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,getDirection:function(){var t,n,i,o;return n=e.makeElement(\"input\",{dir:\"auto\",name:\"x\",dirName:\"x.dir\"}),t=e.makeElement(\"form\"),t.appendChild(n),i=function(){try{return new FormData(t).has(n.dirName)}catch(e){}}(),o=function(){try{return n.matches(\":dir(ltr),:dir(rtl)\")}catch(t){}}(),i?function(e){return n.value=e,new FormData(t).get(n.dirName)}:o?function(t){return n.value=t,n.matches(\":dir(rtl)\")?\"rtl\":\"ltr\"}:function(t){var n;return n=t.trim().charAt(0),e.RTL_PATTERN.test(n)?\"rtl\":\"ltr\"}}()})}.call(this),function(){}.call(this),function(){var t,n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty;t=e.arraysAreEqual,e.Hash=function(i){function o(t){null==t&&(t={}),this.values=s(t),o.__super__.constructor.apply(this,arguments)}var r,s,a,u,c;return n(o,i),o.fromCommonAttributesOfObjects=function(t){var e,n,i,o,s,a;if(null==t&&(t=[]),!t.length)return new this;for(e=r(t[0]),i=e.getKeys(),a=t.slice(1),n=0,o=a.length;o>n;n++)s=a[n],i=e.getKeysCommonToHash(r(s)),e=e.slice(i);return e},o.box=function(t){return r(t)},o.prototype.add=function(t,e){return this.merge(u(t,e))},o.prototype.remove=function(t){return new e.Hash(s(this.values,t))},o.prototype.get=function(t){return this.values[t]},o.prototype.has=function(t){return t in this.values},o.prototype.merge=function(t){return new e.Hash(a(this.values,c(t)))},o.prototype.slice=function(t){var n,i,o,r;for(r={},n=0,o=t.length;o>n;n++)i=t[n],this.has(i)&&(r[i]=this.values[i]);return new e.Hash(r)},o.prototype.getKeys=function(){return Object.keys(this.values)},o.prototype.getKeysCommonToHash=function(t){var e,n,i,o,s;for(t=r(t),o=this.getKeys(),s=[],e=0,i=o.length;i>e;e++)n=o[e],this.values[n]===t.values[n]&&s.push(n);return s},o.prototype.isEqualTo=function(e){return t(this.toArray(),r(e).toArray())},o.prototype.isEmpty=function(){return 0===this.getKeys().length},o.prototype.toArray=function(){var t,e,n;return(null!=this.array?this.array:this.array=function(){var i;e=[],i=this.values;for(t in i)n=i[t],e.push(t,n);return e}.call(this)).slice(0)},o.prototype.toObject=function(){return s(this.values)},o.prototype.toJSON=function(){return this.toObject()},o.prototype.contentsForInspection=function(){return{values:JSON.stringify(this.values)}},u=function(t,e){var n;return n={},n[t]=e,n},a=function(t,e){var n,i,o;i=s(t);for(n in e)o=e[n],i[n]=o;return i},s=function(t,e){var n,i,o,r,s;for(r={},s=Object.keys(t).sort(),n=0,o=s.length;o>n;n++)i=s[n],i!==e&&(r[i]=t[i]);return r},r=function(t){return t instanceof e.Hash?t:new e.Hash(t)},c=function(t){return t instanceof e.Hash?t.values:t\n},o}(e.Object)}.call(this),function(){e.ObjectGroup=function(){function t(t,e){var n,i;this.objects=null!=t?t:[],i=e.depth,n=e.asTree,n&&(this.depth=i,this.objects=this.constructor.groupObjects(this.objects,{asTree:n,depth:this.depth+1}))}return t.groupObjects=function(t,e){var n,i,o,r,s,a,u,c,l;for(null==t&&(t=[]),l=null!=e?e:{},o=l.depth,n=l.asTree,n&&null==o&&(o=0),c=[],s=0,a=t.length;a>s;s++){if(u=t[s],r){if((\"function\"==typeof u.canBeGrouped?u.canBeGrouped(o):void 0)&&(\"function\"==typeof(i=r[r.length-1]).canBeGroupedWith?i.canBeGroupedWith(u,o):void 0)){r.push(u);continue}c.push(new this(r,{depth:o,asTree:n})),r=null}(\"function\"==typeof u.canBeGrouped?u.canBeGrouped(o):void 0)?r=[u]:c.push(u)}return r&&c.push(new this(r,{depth:o,asTree:n})),c},t.prototype.getObjects=function(){return this.objects},t.prototype.getDepth=function(){return this.depth},t.prototype.getCacheKey=function(){var t,e,n,i,o;for(e=[\"objectGroup\"],o=this.getObjects(),t=0,n=o.length;n>t;t++)i=o[t],e.push(i.getCacheKey());return e.join(\"/\")},t}()}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.ObjectMap=function(e){function n(t){var e,n,i,o,r;for(null==t&&(t=[]),this.objects={},i=0,o=t.length;o>i;i++)r=t[i],n=JSON.stringify(r),null==(e=this.objects)[n]&&(e[n]=r)}return t(n,e),n.prototype.find=function(t){var e;return e=JSON.stringify(t),this.objects[e]},n}(e.BasicObject)}.call(this),function(){e.ElementStore=function(){function t(t){this.reset(t)}var e;return t.prototype.add=function(t){var n;return n=e(t),this.elements[n]=t},t.prototype.remove=function(t){var n,i;return n=e(t),(i=this.elements[n])?(delete this.elements[n],i):void 0},t.prototype.reset=function(t){var e,n,i;for(null==t&&(t=[]),this.elements={},n=0,i=t.length;i>n;n++)e=t[n],this.add(e);return t},e=function(t){return t.dataset.trixStoreKey},t}()}.call(this),function(){}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Operation=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return t(n,e),n.prototype.isPerforming=function(){return this.performing===!0},n.prototype.hasPerformed=function(){return this.performed===!0},n.prototype.hasSucceeded=function(){return this.performed&&this.succeeded},n.prototype.hasFailed=function(){return this.performed&&!this.succeeded},n.prototype.getPromise=function(){return null!=this.promise?this.promise:this.promise=new Promise(function(t){return function(e,n){return t.performing=!0,t.perform(function(i,o){return t.succeeded=i,t.performing=!1,t.performed=!0,t.succeeded?e(o):n(o)})}}(this))},n.prototype.perform=function(t){return t(!1)},n.prototype.release=function(){var t;return null!=(t=this.promise)&&\"function\"==typeof t.cancel&&t.cancel(),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null},n.proxyMethod(\"getPromise().then\"),n.proxyMethod(\"getPromise().catch\"),n}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s=function(t,e){function n(){this.constructor=t}for(var i in e)a.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},a={}.hasOwnProperty;e.UTF16String=function(t){function e(t,e){this.ucs2String=t,this.codepoints=e,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}return s(e,t),e.box=function(t){return null==t&&(t=\"\"),t instanceof this?t:this.fromUCS2String(null!=t?t.toString():void 0)},e.fromUCS2String=function(t){return new this(t,o(t))},e.fromCodepoints=function(t){return new this(r(t),t)},e.prototype.offsetToUCS2Offset=function(t){return r(this.codepoints.slice(0,Math.max(0,t))).length},e.prototype.offsetFromUCS2Offset=function(t){return o(this.ucs2String.slice(0,Math.max(0,t))).length},e.prototype.slice=function(){var t;return this.constructor.fromCodepoints((t=this.codepoints).slice.apply(t,arguments))},e.prototype.charAt=function(t){return this.slice(t,t+1)},e.prototype.isEqualTo=function(t){return this.constructor.box(t).ucs2String===this.ucs2String},e.prototype.toJSON=function(){return this.ucs2String},e.prototype.getCacheKey=function(){return this.ucs2String},e.prototype.toString=function(){return this.ucs2String},e}(e.BasicObject),t=1===(\"function\"==typeof Array.from?Array.from(\"\\ud83d\\udc7c\").length:void 0),n=null!=(\"function\"==typeof\" \".codePointAt?\" \".codePointAt(0):void 0),i=\" \\ud83d\\udc7c\"===(\"function\"==typeof String.fromCodePoint?String.fromCodePoint(32,128124):void 0),o=t&&n?function(t){return Array.from(t).map(function(t){return t.codePointAt(0)})}:function(t){var e,n,i,o,r;for(o=[],e=0,i=t.length;i>e;)r=t.charCodeAt(e++),r>=55296&&56319>=r&&i>e&&(n=t.charCodeAt(e++),56320===(64512&n)?r=((1023&r)<<10)+(1023&n)+65536:e--),o.push(r);return o},r=i?function(t){return String.fromCodePoint.apply(String,t)}:function(t){var e,n,i;return e=function(){var e,o,r;for(r=[],e=0,o=t.length;o>e;e++)i=t[e],n=\"\",i>65535&&(i-=65536,n+=String.fromCharCode(i>>>10&1023|55296),i=56320|1023&i),r.push(n+String.fromCharCode(i));return r}(),e.join(\"\")}}.call(this),function(){}.call(this),function(){}.call(this),function(){e.config.lang={attachFiles:\"Attach Files\",bold:\"Bold\",bullets:\"Bullets\",\"byte\":\"Byte\",bytes:\"Bytes\",captionPlaceholder:\"Add a caption\\u2026\",code:\"Code\",heading1:\"Heading\",indent:\"Increase Level\",italic:\"Italic\",link:\"Link\",numbers:\"Numbers\",outdent:\"Decrease Level\",quote:\"Quote\",redo:\"Redo\",remove:\"Remove\",strike:\"Strikethrough\",undo:\"Undo\",unlink:\"Unlink\",url:\"URL\",urlPlaceholder:\"Enter a URL\\u2026\",GB:\"GB\",KB:\"KB\",MB:\"MB\",PB:\"PB\",TB:\"TB\"}}.call(this),function(){e.config.css={attachment:\"attachment\",attachmentCaption:\"attachment__caption\",attachmentCaptionEditor:\"attachment__caption-editor\",attachmentMetadata:\"attachment__metadata\",attachmentMetadataContainer:\"attachment__metadata-container\",attachmentName:\"attachment__name\",attachmentProgress:\"attachment__progress\",attachmentSize:\"attachment__size\",attachmentToolbar:\"attachment__toolbar\",attachmentGallery:\"attachment-gallery\"}}.call(this),function(){var t;e.config.blockAttributes=t={\"default\":{tagName:\"div\",parse:!1},quote:{tagName:\"blockquote\",nestable:!0},heading1:{tagName:\"h1\",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:\"pre\",terminal:!0,text:{plaintext:!0}},bulletList:{tagName:\"ul\",parse:!1},bullet:{tagName:\"li\",listAttribute:\"bulletList\",group:!1,nestable:!0,test:function(n){return e.tagName(n.parentNode)===t[this.listAttribute].tagName}},numberList:{tagName:\"ol\",parse:!1},number:{tagName:\"li\",listAttribute:\"numberList\",group:!1,nestable:!0,test:function(n){return e.tagName(n.parentNode)===t[this.listAttribute].tagName}},attachmentGallery:{tagName:\"div\",exclusive:!0,terminal:!0,parse:!1,group:!1}}}.call(this),function(){var t,n;t=e.config.lang,n=[t.bytes,t.KB,t.MB,t.GB,t.TB,t.PB],e.config.fileSize={prefix:\"IEC\",precision:2,formatter:function(e){var i,o,r,s,a;switch(e){case 0:return\"0 \"+t.bytes;case 1:return\"1 \"+t.byte;default:return i=function(){switch(this.prefix){case\"SI\":return 1e3;case\"IEC\":return 1024}}.call(this),o=Math.floor(Math.log(e)/Math.log(i)),r=e/Math.pow(i,o),s=r.toFixed(this.precision),a=s.replace(/0*$/,\"\").replace(/\\.$/,\"\"),a+\" \"+n[o]}}}}.call(this),function(){e.config.textAttributes={bold:{tagName:\"strong\",inheritable:!0,parser:function(t){var e;return e=window.getComputedStyle(t),\"bold\"===e.fontWeight||e.fontWeight>=600}},italic:{tagName:\"em\",inheritable:!0,parser:function(t){var e;return e=window.getComputedStyle(t),\"italic\"===e.fontStyle}},href:{groupTagName:\"a\",parser:function(t){var n,i,o;return n=e.AttachmentView.attachmentSelector,o=\"a:not(\"+n+\")\",(i=e.findClosestElementFromNode(t,{matchingSelector:o}))?i.getAttribute(\"href\"):void 0}},strike:{tagName:\"del\",inheritable:!0},frozen:{style:{backgroundColor:\"highlight\"}}}}.call(this),function(){var t,n,i,o,r;r=\"[data-trix-serialize=false]\",o=[\"contenteditable\",\"data-trix-id\",\"data-trix-store-key\",\"data-trix-mutable\",\"data-trix-placeholder\",\"tabindex\"],n=\"data-trix-serialized-attributes\",i=\"[\"+n+\"]\",t=new RegExp(\"\",\"g\"),e.extend({serializers:{\"application/json\":function(t){var n;if(t instanceof e.Document)n=t;else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");n=e.Document.fromHTML(t.innerHTML)}return n.toSerializableDocument().toJSONString()},\"text/html\":function(s){var a,u,c,l,h,p,d,f,g,m,v,y,b,A,C,x,w;if(s instanceof e.Document)l=e.DocumentView.render(s);else{if(!(s instanceof HTMLElement))throw new Error(\"unserializable object\");l=s.cloneNode(!0)}for(A=l.querySelectorAll(r),h=0,g=A.length;g>h;h++)c=A[h],e.removeNode(c);for(p=0,m=o.length;m>p;p++)for(a=o[p],C=l.querySelectorAll(\"[\"+a+\"]\"),d=0,v=C.length;v>d;d++)c=C[d],c.removeAttribute(a);for(x=l.querySelectorAll(i),f=0,y=x.length;y>f;f++){c=x[f];try{u=JSON.parse(c.getAttribute(n)),c.removeAttribute(n);for(b in u)w=u[b],c.setAttribute(b,w)}catch(E){}}return l.innerHTML.replace(t,\"\")}},deserializers:{\"application/json\":function(t){return e.Document.fromJSONString(t)},\"text/html\":function(t){return e.Document.fromHTML(t)}},serializeToContentType:function(t,n){var i;if(i=e.serializers[n])return i(t);throw new Error(\"unknown content type: \"+n)},deserializeFromContentType:function(t,n){var i;if(i=e.deserializers[n])return i(t);throw new Error(\"unknown content type: \"+n)}})}.call(this),function(){var t;t=e.config.lang,e.config.toolbar={getDefaultHTML:function(){return'
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
'}}}.call(this),function(){e.config.undoInterval=5e3}.call(this),function(){e.config.attachments={preview:{presentation:\"gallery\",caption:{name:!0,size:!0}},file:{caption:{size:!0}}}}.call(this),function(){e.config.keyNames={8:\"backspace\",9:\"tab\",13:\"return\",27:\"escape\",37:\"left\",39:\"right\",46:\"delete\",68:\"d\",72:\"h\",79:\"o\"}}.call(this),function(){e.config.input={level2Enabled:!0,getLevel:function(){return this.level2Enabled&&e.browser.supportsInputEvents?2:0},pickFiles:function(t){var n;return n=e.makeElement(\"input\",{type:\"file\",multiple:!0,hidden:!0,id:this.fileInputId}),n.addEventListener(\"change\",function(){return t(n.files),e.removeNode(n)}),e.removeNode(document.getElementById(this.fileInputId)),document.body.appendChild(n),n.click()},fileInputId:\"trix-file-input-\"+Date.now().toString(16)}}.call(this),function(){}.call(this),function(){e.registerElement(\"trix-toolbar\",{defaultCSS:\"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",initialize:function(){return\"\"===this.innerHTML?this.innerHTML=e.config.toolbar.getDefaultHTML():void 0}})}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty,i=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};e.ObjectView=function(n){function o(t,e){this.object=t,this.options=null!=e?e:{},this.childViews=[],this.rootView=this}return t(o,n),o.prototype.getNodes=function(){var t,e,n,i,o;for(null==this.nodes&&(this.nodes=this.createNodes()),i=this.nodes,o=[],t=0,e=i.length;e>t;t++)n=i[t],o.push(n.cloneNode(!0));return o},o.prototype.invalidate=function(){var t;return this.nodes=null,this.childViews=[],null!=(t=this.parentView)?t.invalidate():void 0},o.prototype.invalidateViewForObject=function(t){var e;return null!=(e=this.findViewForObject(t))?e.invalidate():void 0},o.prototype.findOrCreateCachedChildView=function(t,e){var n;return(n=this.getCachedViewForObject(e))?this.recordChildView(n):(n=this.createChildView.apply(this,arguments),this.cacheViewForObject(n,e)),n},o.prototype.createChildView=function(t,n,i){var o;return null==i&&(i={}),n instanceof e.ObjectGroup&&(i.viewClass=t,t=e.ObjectGroupView),o=new t(n,i),this.recordChildView(o)},o.prototype.recordChildView=function(t){return t.parentView=this,t.rootView=this.rootView,this.childViews.push(t),t},o.prototype.getAllChildViews=function(){var t,e,n,i,o;for(o=[],i=this.childViews,e=0,n=i.length;n>e;e++)t=i[e],o.push(t),o=o.concat(t.getAllChildViews());return o},o.prototype.findElement=function(){return this.findElementForObject(this.object)},o.prototype.findElementForObject=function(t){var e;return(e=null!=t?t.id:void 0)?this.rootView.element.querySelector(\"[data-trix-id='\"+e+\"']\"):void 0},o.prototype.findViewForObject=function(t){var e,n,i,o;for(i=this.getAllChildViews(),e=0,n=i.length;n>e;e++)if(o=i[e],o.object===t)return o},o.prototype.getViewCache=function(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?null!=this.viewCache?this.viewCache:this.viewCache={}:void 0},o.prototype.isViewCachingEnabled=function(){return this.shouldCacheViews!==!1},o.prototype.enableViewCaching=function(){return this.shouldCacheViews=!0},o.prototype.disableViewCaching=function(){return this.shouldCacheViews=!1},o.prototype.getCachedViewForObject=function(t){var e;return null!=(e=this.getViewCache())?e[t.getCacheKey()]:void 0},o.prototype.cacheViewForObject=function(t,e){var n;return null!=(n=this.getViewCache())?n[e.getCacheKey()]=t:void 0},o.prototype.garbageCollectCachedViews=function(){var t,e,n,o,r,s;if(t=this.getViewCache()){s=this.getAllChildViews().concat(this),n=function(){var t,e,n;for(n=[],t=0,e=s.length;e>t;t++)r=s[t],n.push(r.object.getCacheKey());return n}(),o=[];for(e in t)i.call(n,e)<0&&o.push(delete t[e]);return o}},o}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.ObjectGroupView=function(e){function n(){n.__super__.constructor.apply(this,arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}return t(n,e),n.prototype.getChildViews=function(){var t,e,n,i;if(!this.childViews.length)for(i=this.objectGroup.getObjects(),t=0,e=i.length;e>t;t++)n=i[t],this.findOrCreateCachedChildView(this.viewClass,n,this.options);return this.childViews},n.prototype.createNodes=function(){var t,e,n,i,o,r,s,a,u;for(t=this.createContainerElement(),s=this.getChildViews(),e=0,i=s.length;i>e;e++)for(u=s[e],a=u.getNodes(),n=0,o=a.length;o>n;n++)r=a[n],t.appendChild(r);return[t]},n.prototype.createContainerElement=function(t){return null==t&&(t=this.objectGroup.getDepth()),this.getChildViews()[0].createContainerElement(t)},n}(e.ObjectView)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Controller=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return t(n,e),n}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s,a=function(t,e){return function(){return t.apply(e,arguments)}},u=function(t,e){function n(){this.constructor=t}for(var i in e)c.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},c={}.hasOwnProperty,l=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.findClosestElementFromNode,i=e.nodeIsEmptyTextNode,n=e.nodeIsBlockStartComment,o=e.normalizeSpaces,r=e.summarizeStringChange,s=e.tagName,e.MutationObserver=function(e){function c(t){this.element=t,this.didMutate=a(this.didMutate,this),this.observer=new window.MutationObserver(this.didMutate),this.start()}var h,p,d,f;return u(c,e),p=\"data-trix-mutable\",d=\"[\"+p+\"]\",f={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0},c.prototype.start=function(){return this.reset(),this.observer.observe(this.element,f)},c.prototype.stop=function(){return this.observer.disconnect()},c.prototype.didMutate=function(t){var e,n;return(e=this.mutations).push.apply(e,this.findSignificantMutations(t)),this.mutations.length?(null!=(n=this.delegate)&&\"function\"==typeof n.elementDidMutate&&n.elementDidMutate(this.getMutationSummary()),this.reset()):void 0},c.prototype.reset=function(){return this.mutations=[]},c.prototype.findSignificantMutations=function(t){var e,n,i,o;for(o=[],e=0,n=t.length;n>e;e++)i=t[e],this.mutationIsSignificant(i)&&o.push(i);return o},c.prototype.mutationIsSignificant=function(t){var e,n,i,o;if(this.nodeIsMutable(t.target))return!1;for(o=this.nodesModifiedByMutation(t),e=0,n=o.length;n>e;e++)if(i=o[e],this.nodeIsSignificant(i))return!0;return!1},c.prototype.nodeIsSignificant=function(t){return t!==this.element&&!this.nodeIsMutable(t)&&!i(t)},c.prototype.nodeIsMutable=function(e){return t(e,{matchingSelector:d})},c.prototype.nodesModifiedByMutation=function(t){var e;switch(e=[],t.type){case\"attributes\":t.attributeName!==p&&e.push(t.target);break;case\"characterData\":e.push(t.target.parentNode),e.push(t.target);break;case\"childList\":e.push.apply(e,t.addedNodes),e.push.apply(e,t.removedNodes)}return e},c.prototype.getMutationSummary=function(){return this.getTextMutationSummary()},c.prototype.getTextMutationSummary=function(){var t,e,n,i,o,r,s,a,u,c,h;for(a=this.getTextChangesFromCharacterData(),n=a.additions,o=a.deletions,h=this.getTextChangesFromChildList(),u=h.additions,r=0,s=u.length;s>r;r++)e=u[r],l.call(n,e)<0&&n.push(e);return o.push.apply(o,h.deletions),c={},(t=n.join(\"\"))&&(c.textAdded=t),(i=o.join(\"\"))&&(c.textDeleted=i),c},c.prototype.getMutationsByType=function(t){var e,n,i,o,r;for(o=this.mutations,r=[],e=0,n=o.length;n>e;e++)i=o[e],i.type===t&&r.push(i);return r},c.prototype.getTextChangesFromChildList=function(){var t,e,i,r,s,a,u,c,l,p,d;for(t=[],u=[],a=this.getMutationsByType(\"childList\"),e=0,r=a.length;r>e;e++)s=a[e],t.push.apply(t,s.addedNodes),u.push.apply(u,s.removedNodes);return c=0===t.length&&1===u.length&&n(u[0]),c?(p=[],d=[\"\\n\"]):(p=h(t),d=h(u)),{additions:function(){var t,e,n;for(n=[],i=t=0,e=p.length;e>t;i=++t)l=p[i],l!==d[i]&&n.push(o(l));return n}(),deletions:function(){var t,e,n;for(n=[],i=t=0,e=d.length;e>t;i=++t)l=d[i],l!==p[i]&&n.push(o(l));return n}()}},c.prototype.getTextChangesFromCharacterData=function(){var t,e,n,i,s,a,u,c;return e=this.getMutationsByType(\"characterData\"),e.length&&(c=e[0],n=e[e.length-1],s=o(c.oldValue),i=o(n.target.data),a=r(s,i),t=a.added,u=a.removed),{additions:t?[t]:[],deletions:u?[u]:[]}},h=function(t){var e,n,i,o;for(null==t&&(t=[]),o=[],e=0,n=t.length;n>e;e++)switch(i=t[e],i.nodeType){case Node.TEXT_NODE:o.push(i.data);break;case Node.ELEMENT_NODE:\"br\"===s(i)?o.push(\"\\n\"):o.push.apply(o,h(i.childNodes))}return o},c}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.FileVerificationOperation=function(e){function n(t){this.file=t}return t(n,e),n.prototype.perform=function(t){var e;return e=new FileReader,e.onerror=function(){return t(!1)},e.onload=function(n){return function(){e.onerror=null;try{e.abort()}catch(i){}return t(!0,n.file)}}(this),e.readAsArrayBuffer(this.file)},n}(e.Operation)}.call(this),function(){var t,n,i=function(t,e){function n(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},o={}.hasOwnProperty;t=e.handleEvent,n=e.innerElementIsActive,e.InputController=function(o){function r(n){var i;this.element=n,this.mutationObserver=new e.MutationObserver(this.element),this.mutationObserver.delegate=this;for(i in this.events)t(i,{onElement:this.element,withCallback:this.handlerFor(i)})}return i(r,o),r.prototype.events={},r.prototype.elementDidMutate=function(){},r.prototype.editorWillSyncDocumentView=function(){return this.mutationObserver.stop()},r.prototype.editorDidSyncDocumentView=function(){return this.mutationObserver.start()},r.prototype.requestRender=function(){var t;return null!=(t=this.delegate)&&\"function\"==typeof t.inputControllerDidRequestRender?t.inputControllerDidRequestRender():void 0},r.prototype.requestReparse=function(){var t;return null!=(t=this.delegate)&&\"function\"==typeof t.inputControllerDidRequestReparse&&t.inputControllerDidRequestReparse(),this.requestRender()},r.prototype.attachFiles=function(t){var n,i;return i=function(){var i,o,r;for(r=[],i=0,o=t.length;o>i;i++)n=t[i],r.push(new e.FileVerificationOperation(n));return r}(),Promise.all(i).then(function(t){return function(e){return t.handleInput(function(){var t,n;return null!=(t=this.delegate)&&t.inputControllerWillAttachFiles(),null!=(n=this.responder)&&n.insertFiles(e),this.requestRender()})}}(this))},r.prototype.handlerFor=function(t){return function(e){return function(i){return i.defaultPrevented?void 0:e.handleInput(function(){return n(this.element)?void 0:(this.eventName=t,this.events[t].call(this,i))})}}(this)},r.prototype.handleInput=function(t){var e,n;try{return null!=(e=this.delegate)&&e.inputControllerWillHandleInput(),t.call(this)}finally{null!=(n=this.delegate)&&n.inputControllerDidHandleInput()}},r.prototype.createLinkHTML=function(t,e){var n;return n=document.createElement(\"a\"),n.href=t,n.textContent=null!=e?e:t,n.outerHTML},r}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h,p,d,f=function(t,e){function n(){this.constructor=t}for(var i in e)g.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},g={}.hasOwnProperty,m=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};c=e.makeElement,l=e.objectsAreEqual,d=e.tagName,n=e.browser,a=e.keyEventIsKeyboardCommand,o=e.dataTransferIsWritable,i=e.dataTransferIsPlainText,u=e.config.keyNames,e.Level0InputController=function(n){function s(){s.__super__.constructor.apply(this,arguments),this.resetInputSummary()}var d;return f(s,n),d=0,s.prototype.setInputSummary=function(t){var e,n;null==t&&(t={}),this.inputSummary.eventName=this.eventName;for(e in t)n=t[e],this.inputSummary[e]=n;return this.inputSummary},s.prototype.resetInputSummary=function(){return this.inputSummary={}},s.prototype.reset=function(){return this.resetInputSummary(),e.selectionChangeObserver.reset()},s.prototype.elementDidMutate=function(t){var e;return this.isComposing()?null!=(e=this.delegate)&&\"function\"==typeof e.inputControllerDidAllowUnhandledInput?e.inputControllerDidAllowUnhandledInput():void 0:this.handleInput(function(){return this.mutationIsSignificant(t)&&(this.mutationIsExpected(t)?this.requestRender():this.requestReparse()),this.reset()})},s.prototype.mutationIsExpected=function(t){var e,n,i,o,r,s,a,u,c,l;return a=t.textAdded,u=t.textDeleted,this.inputSummary.preferDocument?!0:(e=null!=a?a===this.inputSummary.textAdded:!this.inputSummary.textAdded,n=null!=u?this.inputSummary.didDelete:!this.inputSummary.didDelete,c=(\"\\n\"===a||\" \\n\"===a)&&!e,l=\"\\n\"===u&&!n,s=c&&!l||l&&!c,s&&(o=this.getSelectedRange())&&(i=c?a.replace(/\\n$/,\"\").length||-1:(null!=a?a.length:void 0)||1,null!=(r=this.responder)?r.positionIsBlockBreak(o[1]+i):void 0)?!0:e&&n)},s.prototype.mutationIsSignificant=function(t){var e,n,i;return i=Object.keys(t).length>0,e=\"\"===(null!=(n=this.compositionInput)?n.getEndData():void 0),i||!e},s.prototype.events={keydown:function(t){var n,i,o,r,s,c,l,h,p;if(this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0,r=u[t.keyCode]){for(i=this.keys,h=[\"ctrl\",\"alt\",\"shift\",\"meta\"],o=0,c=h.length;c>o;o++)l=h[o],t[l+\"Key\"]&&(\"ctrl\"===l&&(l=\"control\"),i=null!=i?i[l]:void 0);null!=(null!=i?i[r]:void 0)&&(this.setInputSummary({keyName:r}),e.selectionChangeObserver.reset(),i[r].call(this,t))}return a(t)&&(n=String.fromCharCode(t.keyCode).toLowerCase())&&(s=function(){var e,n,i,o;for(i=[\"alt\",\"shift\"],o=[],e=0,n=i.length;n>e;e++)l=i[e],t[l+\"Key\"]&&o.push(l);return o}(),s.push(n),null!=(p=this.delegate)?p.inputControllerDidReceiveKeyboardCommand(s):void 0)?t.preventDefault():void 0},keypress:function(t){var e,n,i;if(null==this.inputSummary.eventName&&!t.metaKey&&(!t.ctrlKey||t.altKey))return(i=p(t))?(null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.insertString(i),this.setInputSummary({textAdded:i,didDelete:this.selectionIsExpanded()})):void 0},textInput:function(t){var e,n,i,o;return e=t.data,o=this.inputSummary.textAdded,o&&o!==e&&o.toUpperCase()===e?(n=this.getSelectedRange(),this.setSelectedRange([n[0],n[1]+o.length]),null!=(i=this.responder)&&i.insertString(e),this.setInputSummary({textAdded:e}),this.setSelectedRange(n)):void 0},dragenter:function(t){return t.preventDefault()},dragstart:function(t){var e,n;return n=t.target,this.serializeSelectionToDataTransfer(t.dataTransfer),this.draggedRange=this.getSelectedRange(),null!=(e=this.delegate)&&\"function\"==typeof e.inputControllerDidStartDrag?e.inputControllerDidStartDrag():void 0},dragover:function(t){var e,n;return!this.draggedRange&&!this.canAcceptDataTransfer(t.dataTransfer)||(t.preventDefault(),e={x:t.clientX,y:t.clientY},l(e,this.draggingPoint))?void 0:(this.draggingPoint=e,null!=(n=this.delegate)&&\"function\"==typeof n.inputControllerDidReceiveDragOverPoint?n.inputControllerDidReceiveDragOverPoint(this.draggingPoint):void 0)},dragend:function(){var t;return null!=(t=this.delegate)&&\"function\"==typeof t.inputControllerDidCancelDrag&&t.inputControllerDidCancelDrag(),this.draggedRange=null,this.draggingPoint=null},drop:function(t){var n,i,o,r,s,a,u,c,l;return t.preventDefault(),o=null!=(s=t.dataTransfer)?s.files:void 0,r={x:t.clientX,y:t.clientY},null!=(a=this.responder)&&a.setLocationRangeFromPointRange(r),(null!=o?o.length:void 0)?this.attachFiles(o):this.draggedRange?(null!=(u=this.delegate)&&u.inputControllerWillMoveText(),null!=(c=this.responder)&&c.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()):(i=t.dataTransfer.getData(\"application/x-trix-document\"))&&(n=e.Document.fromJSONString(i),null!=(l=this.responder)&&l.insertDocument(n),this.requestRender()),this.draggedRange=null,this.draggingPoint=null},cut:function(t){var e,n;return(null!=(e=this.responder)?e.selectionIsExpanded():void 0)&&(this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault(),null!=(n=this.delegate)&&n.inputControllerWillCutText(),this.deleteInDirection(\"backward\"),t.defaultPrevented)?this.requestRender():void 0},copy:function(t){var e;return(null!=(e=this.responder)?e.selectionIsExpanded():void 0)&&this.serializeSelectionToDataTransfer(t.clipboardData)?t.preventDefault():void 0},paste:function(t){var n,o,s,a,u,c,l,p,f,g,v,y,b,A,C,x,w,E,S,R,k,D,L;return n=null!=(p=t.clipboardData)?p:t.testClipboardData,l={clipboard:n},null==n||h(t)?void this.getPastedHTMLUsingHiddenElement(function(t){return function(e){var n,i,o;return l.type=\"text/html\",l.html=e,null!=(n=t.delegate)&&n.inputControllerWillPaste(l),null!=(i=t.responder)&&i.insertHTML(l.html),t.requestRender(),null!=(o=t.delegate)?o.inputControllerDidPaste(l):void 0}}(this)):((a=n.getData(\"URL\"))?(l.type=\"text/html\",L=(c=n.getData(\"public.url-name\"))?e.squishBreakableWhitespace(c).trim():a,l.html=this.createLinkHTML(a,L),null!=(f=this.delegate)&&f.inputControllerWillPaste(l),this.setInputSummary({textAdded:L,didDelete:this.selectionIsExpanded()}),null!=(C=this.responder)&&C.insertHTML(l.html),this.requestRender(),null!=(x=this.delegate)&&x.inputControllerDidPaste(l)):i(n)?(l.type=\"text/plain\",l.string=n.getData(\"text/plain\"),null!=(w=this.delegate)&&w.inputControllerWillPaste(l),this.setInputSummary({textAdded:l.string,didDelete:this.selectionIsExpanded()}),null!=(E=this.responder)&&E.insertString(l.string),this.requestRender(),null!=(S=this.delegate)&&S.inputControllerDidPaste(l)):(u=n.getData(\"text/html\"))?(l.type=\"text/html\",l.html=u,null!=(R=this.delegate)&&R.inputControllerWillPaste(l),null!=(k=this.responder)&&k.insertHTML(l.html),this.requestRender(),null!=(D=this.delegate)&&D.inputControllerDidPaste(l)):m.call(n.types,\"Files\")>=0&&(s=null!=(g=n.items)&&null!=(v=g[0])&&\"function\"==typeof v.getAsFile?v.getAsFile():void 0)&&(!s.name&&(o=r(s))&&(s.name=\"pasted-file-\"+ ++d+\".\"+o),l.type=\"File\",l.file=s,null!=(y=this.delegate)&&y.inputControllerWillAttachFiles(),null!=(b=this.responder)&&b.insertFile(l.file),this.requestRender(),null!=(A=this.delegate)&&A.inputControllerDidPaste(l)),t.preventDefault())},compositionstart:function(t){return this.getCompositionInput().start(t.data)},compositionupdate:function(t){return this.getCompositionInput().update(t.data)},compositionend:function(t){return this.getCompositionInput().end(t.data)},beforeinput:function(){return this.inputSummary.didInput=!0\n},input:function(t){return this.inputSummary.didInput=!0,t.stopPropagation()}},s.prototype.keys={backspace:function(t){var e;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},\"delete\":function(t){var e;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},\"return\":function(){var t,e;return this.setInputSummary({preferDocument:!0}),null!=(t=this.delegate)&&t.inputControllerWillPerformTyping(),null!=(e=this.responder)?e.insertLineBreak():void 0},tab:function(t){var e,n;return(null!=(e=this.responder)?e.canIncreaseNestingLevel():void 0)?(null!=(n=this.responder)&&n.increaseNestingLevel(),this.requestRender(),t.preventDefault()):void 0},left:function(t){var e;return this.selectionIsInCursorTarget()?(t.preventDefault(),null!=(e=this.responder)?e.moveCursorInDirection(\"backward\"):void 0):void 0},right:function(t){var e;return this.selectionIsInCursorTarget()?(t.preventDefault(),null!=(e=this.responder)?e.moveCursorInDirection(\"forward\"):void 0):void 0},control:{d:function(t){var e;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},h:function(t){var e;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},o:function(t){var e,n;return t.preventDefault(),null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.insertString(\"\\n\",{updatePosition:!1}),this.requestRender()}},shift:{\"return\":function(t){var e,n;return null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.insertString(\"\\n\"),this.requestRender(),t.preventDefault()},tab:function(t){var e,n;return(null!=(e=this.responder)?e.canDecreaseNestingLevel():void 0)?(null!=(n=this.responder)&&n.decreaseNestingLevel(),this.requestRender(),t.preventDefault()):void 0},left:function(t){return this.selectionIsInCursorTarget()?(t.preventDefault(),this.expandSelectionInDirection(\"backward\")):void 0},right:function(t){return this.selectionIsInCursorTarget()?(t.preventDefault(),this.expandSelectionInDirection(\"forward\")):void 0}},alt:{backspace:function(){var t;return this.setInputSummary({preferDocument:!1}),null!=(t=this.delegate)?t.inputControllerWillPerformTyping():void 0}},meta:{backspace:function(){var t;return this.setInputSummary({preferDocument:!1}),null!=(t=this.delegate)?t.inputControllerWillPerformTyping():void 0}}},s.prototype.getCompositionInput=function(){return this.isComposing()?this.compositionInput:this.compositionInput=new t(this)},s.prototype.isComposing=function(){return null!=this.compositionInput&&!this.compositionInput.isEnded()},s.prototype.deleteInDirection=function(t,e){var n;return(null!=(n=this.responder)?n.deleteInDirection(t):void 0)!==!1?this.setInputSummary({didDelete:!0}):e?(e.preventDefault(),this.requestRender()):void 0},s.prototype.serializeSelectionToDataTransfer=function(t){var n,i;if(o(t))return n=null!=(i=this.responder)?i.getSelectedDocument().toSerializableDocument():void 0,t.setData(\"application/x-trix-document\",JSON.stringify(n)),t.setData(\"text/html\",e.DocumentView.render(n).innerHTML),t.setData(\"text/plain\",n.toString().replace(/\\n$/,\"\")),!0},s.prototype.canAcceptDataTransfer=function(t){var e,n,i,o,r,s;for(s={},o=null!=(i=null!=t?t.types:void 0)?i:[],e=0,n=o.length;n>e;e++)r=o[e],s[r]=!0;return s.Files||s[\"application/x-trix-document\"]||s[\"text/html\"]||s[\"text/plain\"]},s.prototype.getPastedHTMLUsingHiddenElement=function(t){var n,i,o;return i=this.getSelectedRange(),o={position:\"absolute\",left:window.pageXOffset+\"px\",top:window.pageYOffset+\"px\",opacity:0},n=c({style:o,tagName:\"div\",editable:!0}),document.body.appendChild(n),n.focus(),requestAnimationFrame(function(o){return function(){var r;return r=n.innerHTML,e.removeNode(n),o.setSelectedRange(i),t(r)}}(this))},s.proxyMethod(\"responder?.getSelectedRange\"),s.proxyMethod(\"responder?.setSelectedRange\"),s.proxyMethod(\"responder?.expandSelectionInDirection\"),s.proxyMethod(\"responder?.selectionIsInCursorTarget\"),s.proxyMethod(\"responder?.selectionIsExpanded\"),s}(e.InputController),r=function(t){var e,n;return null!=(e=t.type)&&null!=(n=e.match(/\\/(\\w+)$/))?n[1]:void 0},s=null!=(\"function\"==typeof\" \".codePointAt?\" \".codePointAt(0):void 0),p=function(t){var n;return t.key&&s&&t.key.codePointAt(0)===t.keyCode?t.key:(null===t.which?n=t.keyCode:0!==t.which&&0!==t.charCode&&(n=t.charCode),null!=n&&\"escape\"!==u[n]?e.UTF16String.fromCodepoints([n]).toString():void 0)},h=function(t){var e,n,i,o,r,s,a,u,c,l;if(u=t.clipboardData){if(m.call(u.types,\"text/html\")>=0){for(c=u.types,i=0,s=c.length;s>i;i++)if(l=c[i],e=/^CorePasteboardFlavorType/.test(l),n=/^dyn\\./.test(l)&&u.getData(l),a=e||n)return!0;return!1}return o=m.call(u.types,\"com.apple.webarchive\")>=0,r=m.call(u.types,\"com.apple.flat-rtfd\")>=0,o||r}},t=function(t){function e(t){var e;this.inputController=t,e=this.inputController,this.responder=e.responder,this.delegate=e.delegate,this.inputSummary=e.inputSummary,this.data={}}return f(e,t),e.prototype.start=function(t){var e,n;return this.data.start=t,this.isSignificant()?(\"keypress\"===this.inputSummary.eventName&&this.inputSummary.textAdded&&null!=(e=this.responder)&&e.deleteInDirection(\"left\"),this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=null!=(n=this.responder)?n.getSelectedRange():void 0):void 0},e.prototype.update=function(t){var e;return this.data.update=t,this.isSignificant()&&(e=this.selectPlaceholder())?(this.forgetPlaceholder(),this.range=e):void 0},e.prototype.end=function(t){var e,n,i,o;return this.data.end=t,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.setSelectedRange(this.range),null!=(i=this.responder)&&i.insertString(this.data.end),null!=(o=this.responder)?o.setSelectedRange(this.range[0]+this.data.end.length):void 0):null!=this.data.start||null!=this.data.update?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset()},e.prototype.getEndData=function(){return this.data.end},e.prototype.isEnded=function(){return null!=this.getEndData()},e.prototype.isSignificant=function(){return n.composesExistingText?this.inputSummary.didInput:!0},e.prototype.canApplyToDocument=function(){var t,e;return 0===(null!=(t=this.data.start)?t.length:void 0)&&(null!=(e=this.data.end)?e.length:void 0)>0&&null!=this.range},e.proxyMethod(\"inputController.setInputSummary\"),e.proxyMethod(\"inputController.requestRender\"),e.proxyMethod(\"inputController.requestReparse\"),e.proxyMethod(\"responder?.selectionIsExpanded\"),e.proxyMethod(\"responder?.insertPlaceholder\"),e.proxyMethod(\"responder?.selectPlaceholder\"),e.proxyMethod(\"responder?.forgetPlaceholder\"),e}(e.BasicObject)}.call(this),function(){var t,n,i,o=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function n(){this.constructor=t}for(var i in e)s.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},s={}.hasOwnProperty,a=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.dataTransferIsPlainText,n=e.keyEventIsKeyboardCommand,i=e.objectsAreEqual,e.Level2InputController=function(s){function u(){return this.render=o(this.render,this),u.__super__.constructor.apply(this,arguments)}var c,l,h,p,d,f;return r(u,s),u.prototype.elementDidMutate=function(){var t;return this.scheduledRender?this.composing&&null!=(t=this.delegate)&&\"function\"==typeof t.inputControllerDidAllowUnhandledInput?t.inputControllerDidAllowUnhandledInput():void 0:this.reparse()},u.prototype.scheduleRender=function(){return null!=this.scheduledRender?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)},u.prototype.render=function(){var t;return cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing||null!=(t=this.delegate)&&t.render(),\"function\"==typeof this.afterRender&&this.afterRender(),this.afterRender=null},u.prototype.reparse=function(){var t;return null!=(t=this.delegate)?t.reparse():void 0},u.prototype.events={keydown:function(t){var e,i,o,r;if(n(t)){if(e=l(t),null!=(r=this.delegate)?r.inputControllerDidReceiveKeyboardCommand(e):void 0)return t.preventDefault()}else if(o=t.key,t.altKey&&(o+=\"+Alt\"),t.shiftKey&&(o+=\"+Shift\"),i=this.keys[o])return this.withEvent(t,i)},paste:function(t){var e,n,i,o,r,s,a,u,c;return h(t)?(t.preventDefault(),this.attachFiles(t.clipboardData.files)):p(t)?(t.preventDefault(),n={type:\"text/plain\",string:t.clipboardData.getData(\"text/plain\")},null!=(i=this.delegate)&&i.inputControllerWillPaste(n),null!=(o=this.responder)&&o.insertString(n.string),this.render(),null!=(r=this.delegate)?r.inputControllerDidPaste(n):void 0):(e=null!=(s=t.clipboardData)?s.getData(\"URL\"):void 0)?(t.preventDefault(),n={type:\"text/html\",html:this.createLinkHTML(e)},null!=(a=this.delegate)&&a.inputControllerWillPaste(n),null!=(u=this.responder)&&u.insertHTML(n.html),this.render(),null!=(c=this.delegate)?c.inputControllerDidPaste(n):void 0):void 0},beforeinput:function(t){var e;return(e=this.inputTypes[t.inputType])?(this.withEvent(t,e),this.scheduleRender()):void 0},input:function(){return e.selectionChangeObserver.reset()},dragstart:function(t){var e,n;return(null!=(e=this.responder)?e.selectionContainsAttachments():void 0)?(t.dataTransfer.setData(\"application/x-trix-dragging\",!0),this.dragging={range:null!=(n=this.responder)?n.getSelectedRange():void 0,point:d(t)}):void 0},dragenter:function(t){return c(t)?t.preventDefault():void 0},dragover:function(t){var e,n;if(this.dragging){if(t.preventDefault(),e=d(t),!i(e,this.dragging.point))return this.dragging.point=e,null!=(n=this.responder)?n.setLocationRangeFromPointRange(e):void 0}else if(c(t))return t.preventDefault()},drop:function(t){var e,n,i,o;return this.dragging?(t.preventDefault(),null!=(n=this.delegate)&&n.inputControllerWillMoveText(),null!=(i=this.responder)&&i.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender()):c(t)?(t.preventDefault(),e=d(t),null!=(o=this.responder)&&o.setLocationRangeFromPointRange(e),this.attachFiles(t.dataTransfer.files)):void 0},dragend:function(){var t;return this.dragging?(null!=(t=this.responder)&&t.setSelectedRange(this.dragging.range),this.dragging=null):void 0},compositionend:function(){return this.composing?(this.composing=!1,this.scheduleRender()):void 0}},u.prototype.keys={ArrowLeft:function(){var t,e;return(null!=(t=this.responder)?t.shouldManageMovingCursorInDirection(\"backward\"):void 0)?(this.event.preventDefault(),null!=(e=this.responder)?e.moveCursorInDirection(\"backward\"):void 0):void 0},ArrowRight:function(){var t,e;return(null!=(t=this.responder)?t.shouldManageMovingCursorInDirection(\"forward\"):void 0)?(this.event.preventDefault(),null!=(e=this.responder)?e.moveCursorInDirection(\"forward\"):void 0):void 0},Backspace:function(){var t,e,n;return(null!=(t=this.responder)?t.shouldManageDeletingInDirection(\"backward\"):void 0)?(this.event.preventDefault(),null!=(e=this.delegate)&&e.inputControllerWillPerformTyping(),null!=(n=this.responder)&&n.deleteInDirection(\"backward\"),this.render()):void 0},Tab:function(){var t,e;return(null!=(t=this.responder)?t.canIncreaseNestingLevel():void 0)?(this.event.preventDefault(),null!=(e=this.responder)&&e.increaseNestingLevel(),this.render()):void 0},\"Tab+Shift\":function(){var t,e;return(null!=(t=this.responder)?t.canDecreaseNestingLevel():void 0)?(this.event.preventDefault(),null!=(e=this.responder)&&e.decreaseNestingLevel(),this.render()):void 0}},u.prototype.inputTypes={deleteByComposition:function(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteByCut:function(){return this.deleteInDirection(\"backward\")},deleteByDrag:function(){return this.event.preventDefault(),this.withTargetDOMRange(function(){var t;return this.deleteByDragRange=null!=(t=this.responder)?t.getSelectedRange():void 0})},deleteCompositionText:function(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteContent:function(){return this.deleteInDirection(\"backward\")},deleteContentBackward:function(){return this.deleteInDirection(\"backward\")},deleteContentForward:function(){return this.deleteInDirection(\"forward\")},deleteEntireSoftLine:function(){return this.deleteInDirection(\"forward\")},deleteHardLineBackward:function(){return this.deleteInDirection(\"backward\")},deleteHardLineForward:function(){return this.deleteInDirection(\"forward\")},deleteSoftLineBackward:function(){return this.deleteInDirection(\"backward\")},deleteSoftLineForward:function(){return this.deleteInDirection(\"forward\")},deleteWordBackward:function(){return this.deleteInDirection(\"backward\")},deleteWordForward:function(){return this.deleteInDirection(\"forward\")},formatBackColor:function(){return this.activateAttributeIfSupported(\"backgroundColor\",this.event.data)},formatBold:function(){return this.toggleAttributeIfSupported(\"bold\")},formatFontColor:function(){return this.activateAttributeIfSupported(\"color\",this.event.data)},formatFontName:function(){return this.activateAttributeIfSupported(\"font\",this.event.data)},formatIndent:function(){var t;return(null!=(t=this.responder)?t.canIncreaseNestingLevel():void 0)?this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.increaseNestingLevel():void 0}):void 0},formatItalic:function(){return this.toggleAttributeIfSupported(\"italic\")},formatJustifyCenter:function(){return this.toggleAttributeIfSupported(\"justifyCenter\")},formatJustifyFull:function(){return this.toggleAttributeIfSupported(\"justifyFull\")},formatJustifyLeft:function(){return this.toggleAttributeIfSupported(\"justifyLeft\")},formatJustifyRight:function(){return this.toggleAttributeIfSupported(\"justifyRight\")},formatOutdent:function(){var t;return(null!=(t=this.responder)?t.canDecreaseNestingLevel():void 0)?this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.decreaseNestingLevel():void 0}):void 0},formatRemove:function(){return this.withTargetDOMRange(function(){var t,e,n,i;i=[];for(t in null!=(e=this.responder)?e.getCurrentAttributes():void 0)i.push(null!=(n=this.responder)?n.removeCurrentAttribute(t):void 0);return i})},formatSetBlockTextDirection:function(){return this.activateAttributeIfSupported(\"blockDir\",this.event.data)},formatSetInlineTextDirection:function(){return this.activateAttributeIfSupported(\"textDir\",this.event.data)},formatStrikeThrough:function(){return this.toggleAttributeIfSupported(\"strike\")},formatSubscript:function(){return this.toggleAttributeIfSupported(\"sub\")},formatSuperscript:function(){return this.toggleAttributeIfSupported(\"sup\")},formatUnderline:function(){return this.toggleAttributeIfSupported(\"underline\")},historyRedo:function(){var t;return null!=(t=this.delegate)?t.inputControllerWillPerformRedo():void 0},historyUndo:function(){var t;return null!=(t=this.delegate)?t.inputControllerWillPerformUndo():void 0},insertCompositionText:function(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition:function(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop:function(){var t,e;return(t=this.deleteByDragRange)?(this.deleteByDragRange=null,null!=(e=this.delegate)&&e.inputControllerWillMoveText(),this.withTargetDOMRange(function(){var e;return null!=(e=this.responder)?e.moveTextFromRange(t):void 0})):void 0},insertFromPaste:function(){var n,i,o,r,s,a,u,c,l,h,p;return n=this.event.dataTransfer,s={dataTransfer:n},(i=n.getData(\"URL\"))?(this.event.preventDefault(),s.type=\"text/html\",p=(r=n.getData(\"public.url-name\"))?e.squishBreakableWhitespace(r).trim():i,s.html=this.createLinkHTML(i,p),null!=(a=this.delegate)&&a.inputControllerWillPaste(s),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertHTML(s.html):void 0}),this.afterRender=function(t){return function(){var e;return null!=(e=t.delegate)?e.inputControllerDidPaste(s):void 0}}(this)):t(n)?(s.type=\"text/plain\",s.string=n.getData(\"text/plain\"),null!=(u=this.delegate)&&u.inputControllerWillPaste(s),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertString(s.string):void 0}),this.afterRender=function(t){return function(){var e;return null!=(e=t.delegate)?e.inputControllerDidPaste(s):void 0}}(this)):(o=n.getData(\"text/html\"))?(this.event.preventDefault(),s.type=\"text/html\",s.html=o,null!=(c=this.delegate)&&c.inputControllerWillPaste(s),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertHTML(s.html):void 0}),this.afterRender=function(t){return function(){var e;return null!=(e=t.delegate)?e.inputControllerDidPaste(s):void 0}}(this)):(null!=(l=n.files)?l.length:void 0)?(s.type=\"File\",s.file=n.files[0],null!=(h=this.delegate)&&h.inputControllerWillPaste(s),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertFile(s.file):void 0}),this.afterRender=function(t){return function(){var e;return null!=(e=t.delegate)?e.inputControllerDidPaste(s):void 0}}(this)):void 0},insertFromYank:function(){return this.insertString(this.event.data)},insertLineBreak:function(){return this.insertString(\"\\n\")},insertLink:function(){return this.activateAttributeIfSupported(\"href\",this.event.data)},insertOrderedList:function(){return this.toggleAttributeIfSupported(\"number\")},insertParagraph:function(){var t;return null!=(t=this.delegate)&&t.inputControllerWillPerformTyping(),this.withTargetDOMRange(function(){var t;return null!=(t=this.responder)?t.insertLineBreak():void 0})},insertReplacementText:function(){return this.insertString(this.event.dataTransfer.getData(\"text/plain\"),{updatePosition:!1})},insertText:function(){var t,e;return this.insertString(null!=(t=this.event.data)?t:null!=(e=this.event.dataTransfer)?e.getData(\"text/plain\"):void 0)},insertTranspose:function(){return this.insertString(this.event.data)},insertUnorderedList:function(){return this.toggleAttributeIfSupported(\"bullet\")}},u.prototype.insertString=function(t,e){var n;return null==t&&(t=\"\"),null!=(n=this.delegate)&&n.inputControllerWillPerformTyping(),this.withTargetDOMRange(function(){var n;return null!=(n=this.responder)?n.insertString(t,e):void 0})},u.prototype.toggleAttributeIfSupported=function(t){var n;return a.call(e.getAllAttributeNames(),t)>=0?(null!=(n=this.delegate)&&n.inputControllerWillPerformFormatting(t),this.withTargetDOMRange(function(){var e;return null!=(e=this.responder)?e.toggleCurrentAttribute(t):void 0})):void 0},u.prototype.activateAttributeIfSupported=function(t,n){var i;return a.call(e.getAllAttributeNames(),t)>=0?(null!=(i=this.delegate)&&i.inputControllerWillPerformFormatting(t),this.withTargetDOMRange(function(){var e;return null!=(e=this.responder)?e.setCurrentAttribute(t,n):void 0})):void 0},u.prototype.deleteInDirection=function(t,e){var n,i,o,r;return o=(null!=e?e:{recordUndoEntry:!0}).recordUndoEntry,o&&null!=(r=this.delegate)&&r.inputControllerWillPerformTyping(),i=function(e){return function(){var n;return null!=(n=e.responder)?n.deleteInDirection(t):void 0}}(this),(n=this.getTargetDOMRange({minLength:2}))?this.withTargetDOMRange(n,i):i()},u.prototype.withTargetDOMRange=function(t,n){var i;return\"function\"==typeof t&&(n=t,t=this.getTargetDOMRange()),t?null!=(i=this.responder)?i.withTargetDOMRange(t,n.bind(this)):void 0:(e.selectionChangeObserver.reset(),n.call(this))},u.prototype.getTargetDOMRange=function(t){var e,n,i,o;return i=(null!=t?t:{minLength:0}).minLength,(o=\"function\"==typeof(e=this.event).getTargetRanges?e.getTargetRanges():void 0)&&o.length&&(n=f(o[0]),0===i||n.toString().length>=i)?n:void 0},f=function(t){var e;return e=document.createRange(),e.setStart(t.startContainer,t.startOffset),e.setEnd(t.endContainer,t.endOffset),e},u.prototype.withEvent=function(t,e){var n;this.event=t;try{n=e.call(this)}finally{this.event=null}return n},c=function(t){var e,n;return a.call(null!=(e=null!=(n=t.dataTransfer)?n.types:void 0)?e:[],\"Files\")>=0},h=function(t){var e;return(e=t.clipboardData)?a.call(e.types,\"Files\")>=0&&1===e.types.length&&e.files.length>=1:void 0},p=function(t){var e;return(e=t.clipboardData)?a.call(e.types,\"text/plain\")>=0&&1===e.types.length:void 0},l=function(t){var e;return e=[],t.altKey&&e.push(\"alt\"),t.shiftKey&&e.push(\"shift\"),e.push(t.key),e},d=function(t){return{x:t.clientX,y:t.clientY}},u}(e.InputController)}.call(this),function(){var t,n,i,o,r,s,a,u,c=function(t,e){return function(){return t.apply(e,arguments)}},l=function(t,e){function n(){this.constructor=t}for(var i in e)h.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},h={}.hasOwnProperty;n=e.defer,i=e.handleEvent,s=e.makeElement,u=e.tagName,a=e.config,r=a.lang,t=a.css,o=a.keyNames,e.AttachmentEditorController=function(a){function h(t,e,n,i){this.attachmentPiece=t,this.element=e,this.container=n,this.options=null!=i?i:{},this.didBlurCaption=c(this.didBlurCaption,this),this.didChangeCaption=c(this.didChangeCaption,this),this.didInputCaption=c(this.didInputCaption,this),this.didKeyDownCaption=c(this.didKeyDownCaption,this),this.didClickActionButton=c(this.didClickActionButton,this),this.didClickToolbar=c(this.didClickToolbar,this),this.attachment=this.attachmentPiece.attachment,\"a\"===u(this.element)&&(this.element=this.element.firstChild),this.install()}var p;return l(h,a),p=function(t){return function(){var e;return e=t.apply(this,arguments),e[\"do\"](),null==this.undos&&(this.undos=[]),this.undos.push(e.undo)}},h.prototype.install=function(){return this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()?this.installCaptionEditor():void 0},h.prototype.uninstall=function(){var t,e;for(this.savePendingCaption();e=this.undos.pop();)e();return null!=(t=this.delegate)?t.didUninstallAttachmentEditor(this):void 0},h.prototype.savePendingCaption=function(){var t,e,n;return null!=this.pendingCaption?(t=this.pendingCaption,this.pendingCaption=null,t?null!=(e=this.delegate)&&\"function\"==typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment?e.attachmentEditorDidRequestUpdatingAttributesForAttachment({caption:t},this.attachment):void 0:null!=(n=this.delegate)&&\"function\"==typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment?n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\",this.attachment):void 0):void 0},h.prototype.makeElementMutable=p(function(){return{\"do\":function(t){return function(){return t.element.dataset.trixMutable=!0}}(this),undo:function(t){return function(){return delete t.element.dataset.trixMutable}}(this)}}),h.prototype.addToolbar=p(function(){var n;return n=s({tagName:\"div\",className:t.attachmentToolbar,data:{trixMutable:!0},childNodes:s({tagName:\"div\",className:\"trix-button-row\",childNodes:s({tagName:\"span\",className:\"trix-button-group trix-button-group--actions\",childNodes:s({tagName:\"button\",className:\"trix-button trix-button--remove\",textContent:r.remove,attributes:{title:r.remove},data:{trixAction:\"remove\"}})})})}),this.attachment.isPreviewable()&&n.appendChild(s({tagName:\"div\",className:t.attachmentMetadataContainer,childNodes:s({tagName:\"span\",className:t.attachmentMetadata,childNodes:[s({tagName:\"span\",className:t.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),s({tagName:\"span\",className:t.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),i(\"click\",{onElement:n,withCallback:this.didClickToolbar}),i(\"click\",{onElement:n,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),{\"do\":function(t){return function(){return t.element.appendChild(n)}}(this),undo:function(){return function(){return e.removeNode(n)}}(this)}}),h.prototype.installCaptionEditor=p(function(){var o,a,u,c,l;return c=s({tagName:\"textarea\",className:t.attachmentCaptionEditor,attributes:{placeholder:r.captionPlaceholder},data:{trixMutable:!0}}),c.value=this.attachmentPiece.getCaption(),l=c.cloneNode(),l.classList.add(\"trix-autoresize-clone\"),l.tabIndex=-1,o=function(){return l.value=c.value,c.style.height=l.scrollHeight+\"px\"},i(\"input\",{onElement:c,withCallback:o}),i(\"input\",{onElement:c,withCallback:this.didInputCaption}),i(\"keydown\",{onElement:c,withCallback:this.didKeyDownCaption}),i(\"change\",{onElement:c,withCallback:this.didChangeCaption}),i(\"blur\",{onElement:c,withCallback:this.didBlurCaption}),u=this.element.querySelector(\"figcaption\"),a=u.cloneNode(),{\"do\":function(e){return function(){return u.style.display=\"none\",a.appendChild(c),a.appendChild(l),a.classList.add(t.attachmentCaption+\"--editing\"),u.parentElement.insertBefore(a,u),o(),e.options.editCaption?n(function(){return c.focus()}):void 0}}(this),undo:function(){return e.removeNode(a),u.style.display=null}}}),h.prototype.didClickToolbar=function(t){return t.preventDefault(),t.stopPropagation()},h.prototype.didClickActionButton=function(t){var e,n;switch(e=t.target.getAttribute(\"data-trix-action\")){case\"remove\":return null!=(n=this.delegate)?n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment):void 0}},h.prototype.didKeyDownCaption=function(t){var e;return\"return\"===o[t.keyCode]?(t.preventDefault(),this.savePendingCaption(),null!=(e=this.delegate)&&\"function\"==typeof e.attachmentEditorDidRequestDeselectingAttachment?e.attachmentEditorDidRequestDeselectingAttachment(this.attachment):void 0):void 0},h.prototype.didInputCaption=function(t){return this.pendingCaption=t.target.value.replace(/\\s/g,\" \").trim()},h.prototype.didChangeCaption=function(){return this.savePendingCaption()},h.prototype.didBlurCaption=function(){return this.savePendingCaption()},h}(e.BasicObject)}.call(this),function(){var t,n,i,o=function(t,e){function n(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;i=e.makeElement,t=e.config.css,e.AttachmentView=function(r){function s(){s.__super__.constructor.apply(this,arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}var a;return o(s,r),s.attachmentSelector=\"[data-trix-attachment]\",s.prototype.createContentNodes=function(){return[]},s.prototype.createNodes=function(){var e,n,o,r,s,u,c;if(e=r=i({tagName:\"figure\",className:this.getClassName(),data:this.getData(),editable:!1}),(n=this.getHref())&&(r=i({tagName:\"a\",editable:!1,attributes:{href:n,tabindex:-1}}),e.appendChild(r)),this.attachment.hasContent())r.innerHTML=this.attachment.getContent();else for(c=this.createContentNodes(),o=0,s=c.length;s>o;o++)u=c[o],r.appendChild(u);return r.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=i({tagName:\"progress\",attributes:{\"class\":t.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:[\"progressElement\",this.attachment.id].join(\"/\")}}),e.appendChild(this.progressElement)),[a(\"left\"),e,a(\"right\")]},s.prototype.createCaptionElement=function(){var e,n,o,r,s,a,u;return o=i({tagName:\"figcaption\",className:t.attachmentCaption}),(e=this.attachmentPiece.getCaption())?(o.classList.add(t.attachmentCaption+\"--edited\"),o.textContent=e):(n=this.getCaptionConfig(),n.name&&(r=this.attachment.getFilename()),n.size&&(a=this.attachment.getFormattedFilesize()),r&&(s=i({tagName:\"span\",className:t.attachmentName,textContent:r}),o.appendChild(s)),a&&(r&&o.appendChild(document.createTextNode(\" \")),u=i({tagName:\"span\",className:t.attachmentSize,textContent:a}),o.appendChild(u))),o},s.prototype.getClassName=function(){var e,n;return n=[t.attachment,t.attachment+\"--\"+this.attachment.getType()],(e=this.attachment.getExtension())&&n.push(t.attachment+\"--\"+e),n.join(\" \")},s.prototype.getData=function(){var t,e;return e={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},t=this.attachmentPiece.attributes,t.isEmpty()||(e.trixAttributes=JSON.stringify(t)),this.attachment.isPending()&&(e.trixSerialize=!1),e},s.prototype.getHref=function(){return n(this.attachment.getContent(),\"a\")?void 0:this.attachment.getHref()},s.prototype.getCaptionConfig=function(){var t,n,i;return i=this.attachment.getType(),t=e.copyObject(null!=(n=e.config.attachments[i])?n.caption:void 0),\"file\"===i&&(t.name=!0),t},s.prototype.findProgressElement=function(){var t;return null!=(t=this.findElement())?t.querySelector(\"progress\"):void 0},a=function(t){return i({tagName:\"span\",textContent:e.ZERO_WIDTH_SPACE,data:{trixCursorTarget:t,trixSerialize:!1}})},s.prototype.attachmentDidChangeUploadProgress=function(){var t,e;return e=this.attachment.getUploadProgress(),null!=(t=this.findProgressElement())?t.value=e:void 0},s}(e.ObjectView),n=function(t,e){var n;return n=i(\"div\"),n.innerHTML=null!=t?t:\"\",n.querySelector(e)}}.call(this),function(){var t,n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty;t=e.makeElement,e.PreviewableAttachmentView=function(i){function o(){o.__super__.constructor.apply(this,arguments),this.attachment.previewDelegate=this}return n(o,i),o.prototype.createContentNodes=function(){return this.image=t({tagName:\"img\",attributes:{src:\"\"},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]},o.prototype.createCaptionElement=function(){var t;return t=o.__super__.createCaptionElement.apply(this,arguments),t.textContent||t.setAttribute(\"data-trix-placeholder\",e.config.lang.captionPlaceholder),t},o.prototype.refresh=function(t){var e;return null==t&&(t=null!=(e=this.findElement())?e.querySelector(\"img\"):void 0),t?this.updateAttributesForImage(t):void 0},o.prototype.updateAttributesForImage=function(t){var e,n,i,o,r,s;return r=this.attachment.getURL(),n=this.attachment.getPreviewURL(),t.src=n||r,n===r?t.removeAttribute(\"data-trix-serialized-attributes\"):(i=JSON.stringify({src:r}),t.setAttribute(\"data-trix-serialized-attributes\",i)),s=this.attachment.getWidth(),e=this.attachment.getHeight(),null!=s&&(t.width=s),null!=e&&(t.height=e),o=[\"imageElement\",this.attachment.id,t.src,t.width,t.height].join(\"/\"),t.dataset.trixStoreKey=o},o.prototype.attachmentDidChangeAttributes=function(){return this.refresh(this.image),this.refresh()},o}(e.AttachmentView)}.call(this),function(){var t,n,i,o=function(t,e){function n(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;i=e.makeElement,t=e.findInnerElement,n=e.getTextConfig,e.PieceView=function(r){function s(){var t;s.__super__.constructor.apply(this,arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),t=this.options,this.textConfig=t.textConfig,this.context=t.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}var a;return o(s,r),s.prototype.createNodes=function(){var e,n,i,o,r,s;if(s=this.attachment?this.createAttachmentNodes():this.createStringNodes(),e=this.createElement()){for(i=t(e),n=0,o=s.length;o>n;n++)r=s[n],i.appendChild(r);s=[e]}return s},s.prototype.createAttachmentNodes=function(){var t,n;return t=this.attachment.isPreviewable()?e.PreviewableAttachmentView:e.AttachmentView,n=this.createChildView(t,this.piece.attachment,{piece:this.piece}),n.getNodes()},s.prototype.createStringNodes=function(){var t,e,n,o,r,s,a,u,c,l;if(null!=(u=this.textConfig)?u.plaintext:void 0)return[document.createTextNode(this.string)];for(a=[],c=this.string.split(\"\\n\"),n=e=0,o=c.length;o>e;n=++e)l=c[n],n>0&&(t=i(\"br\"),a.push(t)),(r=l.length)&&(s=document.createTextNode(this.preserveSpaces(l)),a.push(s));return a},s.prototype.createElement=function(){var t,e,o,r,s,a,u,c,l;c={},a=this.attributes;for(r in a)if(l=a[r],(t=n(r))&&(t.tagName&&(s=i(t.tagName),o?(o.appendChild(s),o=s):e=o=s),t.styleProperty&&(c[t.styleProperty]=l),t.style)){u=t.style;for(r in u)l=u[r],c[r]=l}if(Object.keys(c).length){null==e&&(e=i(\"span\"));for(r in c)l=c[r],e.style[r]=l}return e},s.prototype.createContainerElement=function(){var t,e,o,r,s;r=this.attributes;for(o in r)if(s=r[o],(e=n(o))&&e.groupTagName)return t={},t[o]=s,i(e.groupTagName,t)},a=e.NON_BREAKING_SPACE,s.prototype.preserveSpaces=function(t){return this.context.isLast&&(t=t.replace(/\\ $/,a)),t=t.replace(/(\\S)\\ {3}(\\S)/g,\"$1 \"+a+\" $2\").replace(/\\ {2}/g,a+\" \").replace(/\\ {2}/g,\" \"+a),(this.context.isFirst||this.context.followsWhitespace)&&(t=t.replace(/^\\ /,a)),t},s}(e.ObjectView)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t\n}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.TextView=function(n){function i(){i.__super__.constructor.apply(this,arguments),this.text=this.object,this.textConfig=this.options.textConfig}var o;return t(i,n),i.prototype.createNodes=function(){var t,n,i,r,s,a,u,c,l,h;for(a=[],c=e.ObjectGroup.groupObjects(this.getPieces()),r=c.length-1,i=n=0,s=c.length;s>n;i=++n)u=c[i],t={},0===i&&(t.isFirst=!0),i===r&&(t.isLast=!0),o(l)&&(t.followsWhitespace=!0),h=this.findOrCreateCachedChildView(e.PieceView,u,{textConfig:this.textConfig,context:t}),a.push.apply(a,h.getNodes()),l=u;return a},i.prototype.getPieces=function(){var t,e,n,i,o;for(i=this.text.getPieces(),o=[],t=0,e=i.length;e>t;t++)n=i[t],n.hasAttribute(\"blockBreak\")||o.push(n);return o},o=function(t){return/\\s$/.test(null!=t?t.toString():void 0)},i}(e.ObjectView)}.call(this),function(){var t,n,i,o=function(t,e){function n(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;i=e.makeElement,n=e.getBlockConfig,t=e.config.css,e.BlockView=function(r){function s(){s.__super__.constructor.apply(this,arguments),this.block=this.object,this.attributes=this.block.getAttributes()}return o(s,r),s.prototype.createNodes=function(){var t,o,r,s,a,u,c,l,h,p,d;if(o=document.createComment(\"block\"),c=[o],this.block.isEmpty()?c.push(i(\"br\")):(p=null!=(l=n(this.block.getLastAttribute()))?l.text:void 0,d=this.findOrCreateCachedChildView(e.TextView,this.block.text,{textConfig:p}),c.push.apply(c,d.getNodes()),this.shouldAddExtraNewlineElement()&&c.push(i(\"br\"))),this.attributes.length)return c;for(h=e.config.blockAttributes[\"default\"].tagName,this.block.isRTL()&&(t={dir:\"rtl\"}),r=i({tagName:h,attributes:t}),s=0,a=c.length;a>s;s++)u=c[s],r.appendChild(u);return[r]},s.prototype.createContainerElement=function(e){var o,r,s,a,u;return o=this.attributes[e],u=n(o).tagName,0===e&&this.block.isRTL()&&(r={dir:\"rtl\"}),\"attachmentGallery\"===o&&(a=this.block.getBlockBreakPosition(),s=t.attachmentGallery+\" \"+t.attachmentGallery+\"--\"+a),i({tagName:u,className:s,attributes:r})},s.prototype.shouldAddExtraNewlineElement=function(){return/\\n\\n$/.test(this.block.toString())},s}(e.ObjectView)}.call(this),function(){var t,n,i=function(t,e){function n(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},o={}.hasOwnProperty;t=e.defer,n=e.makeElement,e.DocumentView=function(o){function r(){r.__super__.constructor.apply(this,arguments),this.element=this.options.element,this.elementStore=new e.ElementStore,this.setDocument(this.object)}var s,a,u;return i(r,o),r.render=function(t){var e,i;return e=n(\"div\"),i=new this(t,{element:e}),i.render(),i.sync(),e},r.prototype.setDocument=function(t){return t.isEqualTo(this.document)?void 0:this.document=this.object=t},r.prototype.render=function(){var t,i,o,r,s,a,u;if(this.childViews=[],this.shadowElement=n(\"div\"),!this.document.isEmpty()){for(s=e.ObjectGroup.groupObjects(this.document.getBlocks(),{asTree:!0}),a=[],t=0,i=s.length;i>t;t++)r=s[t],u=this.findOrCreateCachedChildView(e.BlockView,r),a.push(function(){var t,e,n,i;for(n=u.getNodes(),i=[],t=0,e=n.length;e>t;t++)o=n[t],i.push(this.shadowElement.appendChild(o));return i}.call(this));return a}},r.prototype.isSynced=function(){return s(this.shadowElement,this.element)},r.prototype.sync=function(){var t;for(t=this.createDocumentFragmentForSync();this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(t),this.didSync()},r.prototype.didSync=function(){return this.elementStore.reset(a(this.element)),t(function(t){return function(){return t.garbageCollectCachedViews()}}(this))},r.prototype.createDocumentFragmentForSync=function(){var t,e,n,i,o,r,s,u,c,l;for(e=document.createDocumentFragment(),u=this.shadowElement.childNodes,n=0,o=u.length;o>n;n++)s=u[n],e.appendChild(s.cloneNode(!0));for(c=a(e),i=0,r=c.length;r>i;i++)t=c[i],(l=this.elementStore.remove(t))&&t.parentNode.replaceChild(l,t);return e},a=function(t){return t.querySelectorAll(\"[data-trix-store-key]\")},s=function(t,e){return u(t.innerHTML)===u(e.innerHTML)},u=function(t){return t.replace(/ /g,\" \")},r}(e.ObjectView)}.call(this),function(){var t,n,i,o,r,s=function(t,e){return function(){return t.apply(e,arguments)}},a=function(t,e){function n(){this.constructor=t}for(var i in e)u.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},u={}.hasOwnProperty;i=e.findClosestElementFromNode,o=e.handleEvent,r=e.innerElementIsActive,n=e.defer,t=e.AttachmentView.attachmentSelector,e.CompositionController=function(u){function c(n,i){this.element=n,this.composition=i,this.didClickAttachment=s(this.didClickAttachment,this),this.didBlur=s(this.didBlur,this),this.didFocus=s(this.didFocus,this),this.documentView=new e.DocumentView(this.composition.document,{element:this.element}),o(\"focus\",{onElement:this.element,withCallback:this.didFocus}),o(\"blur\",{onElement:this.element,withCallback:this.didBlur}),o(\"click\",{onElement:this.element,matchingSelector:\"a[contenteditable=false]\",preventDefault:!0}),o(\"mousedown\",{onElement:this.element,matchingSelector:t,withCallback:this.didClickAttachment}),o(\"click\",{onElement:this.element,matchingSelector:\"a\"+t,preventDefault:!0})}return a(c,u),c.prototype.didFocus=function(){var t,e,n;return t=function(t){return function(){var e;return t.focused?void 0:(t.focused=!0,null!=(e=t.delegate)&&\"function\"==typeof e.compositionControllerDidFocus?e.compositionControllerDidFocus():void 0)}}(this),null!=(e=null!=(n=this.blurPromise)?n.then(t):void 0)?e:t()},c.prototype.didBlur=function(){return this.blurPromise=new Promise(function(t){return function(e){return n(function(){var n;return r(t.element)||(t.focused=null,null!=(n=t.delegate)&&\"function\"==typeof n.compositionControllerDidBlur&&n.compositionControllerDidBlur()),t.blurPromise=null,e()})}}(this))},c.prototype.didClickAttachment=function(t,e){var n,o,r;return n=this.findAttachmentForElement(e),o=null!=i(t.target,{matchingSelector:\"figcaption\"}),null!=(r=this.delegate)&&\"function\"==typeof r.compositionControllerDidSelectAttachment?r.compositionControllerDidSelectAttachment(n,{editCaption:o}):void 0},c.prototype.getSerializableElement=function(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element},c.prototype.render=function(){var t,e,n;return this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced()&&(null!=(t=this.delegate)&&\"function\"==typeof t.compositionControllerWillSyncDocumentView&&t.compositionControllerWillSyncDocumentView(),this.documentView.sync(),null!=(e=this.delegate)&&\"function\"==typeof e.compositionControllerDidSyncDocumentView&&e.compositionControllerDidSyncDocumentView()),null!=(n=this.delegate)&&\"function\"==typeof n.compositionControllerDidRender?n.compositionControllerDidRender():void 0},c.prototype.rerenderViewForObject=function(t){return this.invalidateViewForObject(t),this.render()},c.prototype.invalidateViewForObject=function(t){return this.documentView.invalidateViewForObject(t)},c.prototype.isViewCachingEnabled=function(){return this.documentView.isViewCachingEnabled()},c.prototype.enableViewCaching=function(){return this.documentView.enableViewCaching()},c.prototype.disableViewCaching=function(){return this.documentView.disableViewCaching()},c.prototype.refreshViewCache=function(){return this.documentView.garbageCollectCachedViews()},c.prototype.isEditingAttachment=function(){return null!=this.attachmentEditor},c.prototype.installAttachmentEditorForAttachment=function(t,n){var i,o,r;if((null!=(r=this.attachmentEditor)?r.attachment:void 0)!==t&&(o=this.documentView.findElementForObject(t)))return this.uninstallAttachmentEditor(),i=this.composition.document.getAttachmentPieceForAttachment(t),this.attachmentEditor=new e.AttachmentEditorController(i,o,this.element,n),this.attachmentEditor.delegate=this},c.prototype.uninstallAttachmentEditor=function(){var t;return null!=(t=this.attachmentEditor)?t.uninstall():void 0},c.prototype.didUninstallAttachmentEditor=function(){return this.attachmentEditor=null,this.render()},c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment=function(t,e){var n;return null!=(n=this.delegate)&&\"function\"==typeof n.compositionControllerWillUpdateAttachment&&n.compositionControllerWillUpdateAttachment(e),this.composition.updateAttributesForAttachment(t,e)},c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment=function(t,e){var n;return null!=(n=this.delegate)&&\"function\"==typeof n.compositionControllerWillUpdateAttachment&&n.compositionControllerWillUpdateAttachment(e),this.composition.removeAttributeForAttachment(t,e)},c.prototype.attachmentEditorDidRequestRemovalOfAttachment=function(t){var e;return null!=(e=this.delegate)&&\"function\"==typeof e.compositionControllerDidRequestRemovalOfAttachment?e.compositionControllerDidRequestRemovalOfAttachment(t):void 0},c.prototype.attachmentEditorDidRequestDeselectingAttachment=function(t){var e;return null!=(e=this.delegate)&&\"function\"==typeof e.compositionControllerDidRequestDeselectingAttachment?e.compositionControllerDidRequestDeselectingAttachment(t):void 0},c.prototype.canSyncDocumentView=function(){return!this.isEditingAttachment()},c.prototype.findAttachmentForElement=function(t){return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId,10))},c}(e.BasicObject)}.call(this),function(){var t,n,i,o=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function n(){this.constructor=t}for(var i in e)s.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},s={}.hasOwnProperty;n=e.handleEvent,i=e.triggerEvent,t=e.findClosestElementFromNode,e.ToolbarController=function(e){function s(t){this.element=t,this.didKeyDownDialogInput=o(this.didKeyDownDialogInput,this),this.didClickDialogButton=o(this.didClickDialogButton,this),this.didClickAttributeButton=o(this.didClickAttributeButton,this),this.didClickActionButton=o(this.didClickActionButton,this),this.attributes={},this.actions={},this.resetDialogInputs(),n(\"mousedown\",{onElement:this.element,matchingSelector:a,withCallback:this.didClickActionButton}),n(\"mousedown\",{onElement:this.element,matchingSelector:c,withCallback:this.didClickAttributeButton}),n(\"click\",{onElement:this.element,matchingSelector:v,preventDefault:!0}),n(\"click\",{onElement:this.element,matchingSelector:l,withCallback:this.didClickDialogButton}),n(\"keydown\",{onElement:this.element,matchingSelector:h,withCallback:this.didKeyDownDialogInput})}var a,u,c,l,h,p,d,f,g,m,v;return r(s,e),c=\"[data-trix-attribute]\",a=\"[data-trix-action]\",v=c+\", \"+a,p=\"[data-trix-dialog]\",u=p+\"[data-trix-active]\",l=p+\" [data-trix-method]\",h=p+\" [data-trix-input]\",s.prototype.didClickActionButton=function(t,e){var n,i,o;return null!=(i=this.delegate)&&i.toolbarDidClickButton(),t.preventDefault(),n=d(e),this.getDialog(n)?this.toggleDialog(n):null!=(o=this.delegate)?o.toolbarDidInvokeAction(n):void 0},s.prototype.didClickAttributeButton=function(t,e){var n,i,o;return null!=(i=this.delegate)&&i.toolbarDidClickButton(),t.preventDefault(),n=f(e),this.getDialog(n)?this.toggleDialog(n):null!=(o=this.delegate)&&o.toolbarDidToggleAttribute(n),this.refreshAttributeButtons()},s.prototype.didClickDialogButton=function(e,n){var i,o;return i=t(n,{matchingSelector:p}),o=n.getAttribute(\"data-trix-method\"),this[o].call(this,i)},s.prototype.didKeyDownDialogInput=function(t,e){var n,i;return 13===t.keyCode&&(t.preventDefault(),n=e.getAttribute(\"name\"),i=this.getDialog(n),this.setAttribute(i)),27===t.keyCode?(t.preventDefault(),this.hideDialog()):void 0},s.prototype.updateActions=function(t){return this.actions=t,this.refreshActionButtons()},s.prototype.refreshActionButtons=function(){return this.eachActionButton(function(t){return function(e,n){return e.disabled=t.actions[n]===!1}}(this))},s.prototype.eachActionButton=function(t){var e,n,i,o,r;for(o=this.element.querySelectorAll(a),r=[],n=0,i=o.length;i>n;n++)e=o[n],r.push(t(e,d(e)));return r},s.prototype.updateAttributes=function(t){return this.attributes=t,this.refreshAttributeButtons()},s.prototype.refreshAttributeButtons=function(){return this.eachAttributeButton(function(t){return function(e,n){return e.disabled=t.attributes[n]===!1,t.attributes[n]||t.dialogIsVisible(n)?(e.setAttribute(\"data-trix-active\",\"\"),e.classList.add(\"trix-active\")):(e.removeAttribute(\"data-trix-active\"),e.classList.remove(\"trix-active\"))}}(this))},s.prototype.eachAttributeButton=function(t){var e,n,i,o,r;for(o=this.element.querySelectorAll(c),r=[],n=0,i=o.length;i>n;n++)e=o[n],r.push(t(e,f(e)));return r},s.prototype.applyKeyboardCommand=function(t){var e,n,o,r,s,a,u;for(s=JSON.stringify(t.sort()),u=this.element.querySelectorAll(\"[data-trix-key]\"),r=0,a=u.length;a>r;r++)if(e=u[r],o=e.getAttribute(\"data-trix-key\").split(\"+\"),n=JSON.stringify(o.sort()),n===s)return i(\"mousedown\",{onElement:e}),!0;return!1},s.prototype.dialogIsVisible=function(t){var e;return(e=this.getDialog(t))?e.hasAttribute(\"data-trix-active\"):void 0},s.prototype.toggleDialog=function(t){return this.dialogIsVisible(t)?this.hideDialog():this.showDialog(t)},s.prototype.showDialog=function(t){var e,n,i,o,r,s,a,u,c,l;for(this.hideDialog(),null!=(a=this.delegate)&&a.toolbarWillShowDialog(),i=this.getDialog(t),i.setAttribute(\"data-trix-active\",\"\"),i.classList.add(\"trix-active\"),u=i.querySelectorAll(\"input[disabled]\"),o=0,s=u.length;s>o;o++)n=u[o],n.removeAttribute(\"disabled\");return(e=f(i))&&(r=m(i,t))&&(r.value=null!=(c=this.attributes[e])?c:\"\",r.select()),null!=(l=this.delegate)?l.toolbarDidShowDialog(t):void 0},s.prototype.setAttribute=function(t){var e,n,i;return e=f(t),n=m(t,e),n.willValidate&&!n.checkValidity()?(n.setAttribute(\"data-trix-validate\",\"\"),n.classList.add(\"trix-validate\"),n.focus()):(null!=(i=this.delegate)&&i.toolbarDidUpdateAttribute(e,n.value),this.hideDialog())},s.prototype.removeAttribute=function(t){var e,n;return e=f(t),null!=(n=this.delegate)&&n.toolbarDidRemoveAttribute(e),this.hideDialog()},s.prototype.hideDialog=function(){var t,e;return(t=this.element.querySelector(u))?(t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\"),this.resetDialogInputs(),null!=(e=this.delegate)?e.toolbarDidHideDialog(g(t)):void 0):void 0},s.prototype.resetDialogInputs=function(){var t,e,n,i,o;for(i=this.element.querySelectorAll(h),o=[],t=0,n=i.length;n>t;t++)e=i[t],e.setAttribute(\"disabled\",\"disabled\"),e.removeAttribute(\"data-trix-validate\"),o.push(e.classList.remove(\"trix-validate\"));return o},s.prototype.getDialog=function(t){return this.element.querySelector(\"[data-trix-dialog=\"+t+\"]\")},m=function(t,e){return null==e&&(e=f(t)),t.querySelector(\"[data-trix-input][name='\"+e+\"']\")},d=function(t){return t.getAttribute(\"data-trix-action\")},f=function(t){var e;return null!=(e=t.getAttribute(\"data-trix-attribute\"))?e:t.getAttribute(\"data-trix-dialog-attribute\")},g=function(t){return t.getAttribute(\"data-trix-dialog\")},s}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.ImagePreloadOperation=function(e){function n(t){this.url=t}return t(n,e),n.prototype.perform=function(t){var e;return e=new Image,e.onload=function(n){return function(){return e.width=n.width=e.naturalWidth,e.height=n.height=e.naturalHeight,t(!0,e)}}(this),e.onerror=function(){return t(!1)},e.src=this.url},n}(e.Operation)}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}},n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty;e.Attachment=function(i){function o(n){null==n&&(n={}),this.releaseFile=t(this.releaseFile,this),o.__super__.constructor.apply(this,arguments),this.attributes=e.Hash.box(n),this.didChangeAttributes()}return n(o,i),o.previewablePattern=/^image(\\/(gif|png|jpe?g)|$)/,o.attachmentForFile=function(t){var e,n;return n=this.attributesForFile(t),e=new this(n),e.setFile(t),e},o.attributesForFile=function(t){return new e.Hash({filename:t.name,filesize:t.size,contentType:t.type})},o.fromJSON=function(t){return new this(t)},o.prototype.getAttribute=function(t){return this.attributes.get(t)},o.prototype.hasAttribute=function(t){return this.attributes.has(t)},o.prototype.getAttributes=function(){return this.attributes.toObject()},o.prototype.setAttributes=function(t){var e,n,i;return null==t&&(t={}),e=this.attributes.merge(t),this.attributes.isEqualTo(e)?void 0:(this.attributes=e,this.didChangeAttributes(),null!=(n=this.previewDelegate)&&\"function\"==typeof n.attachmentDidChangeAttributes&&n.attachmentDidChangeAttributes(this),null!=(i=this.delegate)&&\"function\"==typeof i.attachmentDidChangeAttributes?i.attachmentDidChangeAttributes(this):void 0)},o.prototype.didChangeAttributes=function(){return this.isPreviewable()?this.preloadURL():void 0},o.prototype.isPending=function(){return null!=this.file&&!(this.getURL()||this.getHref())},o.prototype.isPreviewable=function(){return this.attributes.has(\"previewable\")?this.attributes.get(\"previewable\"):this.constructor.previewablePattern.test(this.getContentType())},o.prototype.getType=function(){return this.hasContent()?\"content\":this.isPreviewable()?\"preview\":\"file\"},o.prototype.getURL=function(){return this.attributes.get(\"url\")},o.prototype.getHref=function(){return this.attributes.get(\"href\")},o.prototype.getFilename=function(){var t;return null!=(t=this.attributes.get(\"filename\"))?t:\"\"},o.prototype.getFilesize=function(){return this.attributes.get(\"filesize\")},o.prototype.getFormattedFilesize=function(){var t;return t=this.attributes.get(\"filesize\"),\"number\"==typeof t?e.config.fileSize.formatter(t):\"\"},o.prototype.getExtension=function(){var t;return null!=(t=this.getFilename().match(/\\.(\\w+)$/))?t[1].toLowerCase():void 0},o.prototype.getContentType=function(){return this.attributes.get(\"contentType\")},o.prototype.hasContent=function(){return this.attributes.has(\"content\")},o.prototype.getContent=function(){return this.attributes.get(\"content\")},o.prototype.getWidth=function(){return this.attributes.get(\"width\")},o.prototype.getHeight=function(){return this.attributes.get(\"height\")},o.prototype.getFile=function(){return this.file},o.prototype.setFile=function(t){return this.file=t,this.isPreviewable()?this.preloadFile():void 0},o.prototype.releaseFile=function(){return this.releasePreloadedFile(),this.file=null},o.prototype.getUploadProgress=function(){var t;return null!=(t=this.uploadProgress)?t:0},o.prototype.setUploadProgress=function(t){var e;return this.uploadProgress!==t?(this.uploadProgress=t,null!=(e=this.uploadProgressDelegate)&&\"function\"==typeof e.attachmentDidChangeUploadProgress?e.attachmentDidChangeUploadProgress(this):void 0):void 0},o.prototype.toJSON=function(){return this.getAttributes()},o.prototype.getCacheKey=function(){return[o.__super__.getCacheKey.apply(this,arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join(\"/\")},o.prototype.getPreviewURL=function(){return this.previewURL||this.preloadingURL},o.prototype.setPreviewURL=function(t){var e,n;return t!==this.getPreviewURL()?(this.previewURL=t,null!=(e=this.previewDelegate)&&\"function\"==typeof e.attachmentDidChangeAttributes&&e.attachmentDidChangeAttributes(this),null!=(n=this.delegate)&&\"function\"==typeof n.attachmentDidChangePreviewURL?n.attachmentDidChangePreviewURL(this):void 0):void 0},o.prototype.preloadURL=function(){return this.preload(this.getURL(),this.releaseFile)},o.prototype.preloadFile=function(){return this.file?(this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)):void 0},o.prototype.releasePreloadedFile=function(){return this.fileObjectURL?(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null):void 0},o.prototype.preload=function(t,n){var i;return t&&t!==this.getPreviewURL()?(this.preloadingURL=t,i=new e.ImagePreloadOperation(t),i.then(function(e){return function(i){var o,r;return r=i.width,o=i.height,e.getWidth()&&e.getHeight()||e.setAttributes({width:r,height:o}),e.preloadingURL=null,e.setPreviewURL(t),\"function\"==typeof n?n():void 0}}(this))[\"catch\"](function(t){return function(){return t.preloadingURL=null,\"function\"==typeof n?n():void 0}}(this))):void 0},o}(e.Object)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Piece=function(n){function i(t,n){null==n&&(n={}),i.__super__.constructor.apply(this,arguments),this.attributes=e.Hash.box(n)}return t(i,n),i.types={},i.registerType=function(t,e){return e.type=t,this.types[t]=e},i.fromJSON=function(t){var e;return(e=this.types[t.type])?e.fromJSON(t):void 0},i.prototype.copyWithAttributes=function(t){return new this.constructor(this.getValue(),t)},i.prototype.copyWithAdditionalAttributes=function(t){return this.copyWithAttributes(this.attributes.merge(t))},i.prototype.copyWithoutAttribute=function(t){return this.copyWithAttributes(this.attributes.remove(t))},i.prototype.copy=function(){return this.copyWithAttributes(this.attributes)},i.prototype.getAttribute=function(t){return this.attributes.get(t)},i.prototype.getAttributesHash=function(){return this.attributes},i.prototype.getAttributes=function(){return this.attributes.toObject()},i.prototype.getCommonAttributes=function(){var t,e,n;return(n=pieceList.getPieceAtIndex(0))?(t=n.attributes,e=t.getKeys(),pieceList.eachPiece(function(n){return e=t.getKeysCommonToHash(n.attributes),t=t.slice(e)}),t.toObject()):{}},i.prototype.hasAttribute=function(t){return this.attributes.has(t)},i.prototype.hasSameStringValueAsPiece=function(t){return null!=t&&this.toString()===t.toString()},i.prototype.hasSameAttributesAsPiece=function(t){return null!=t&&(this.attributes===t.attributes||this.attributes.isEqualTo(t.attributes))},i.prototype.isBlockBreak=function(){return!1},i.prototype.isEqualTo=function(t){return i.__super__.isEqualTo.apply(this,arguments)||this.hasSameConstructorAs(t)&&this.hasSameStringValueAsPiece(t)&&this.hasSameAttributesAsPiece(t)},i.prototype.isEmpty=function(){return 0===this.length},i.prototype.isSerializable=function(){return!0},i.prototype.toJSON=function(){return{type:this.constructor.type,attributes:this.getAttributes()}},i.prototype.contentsForInspection=function(){return{type:this.constructor.type,attributes:this.attributes.inspect()}},i.prototype.canBeGrouped=function(){return this.hasAttribute(\"href\")},i.prototype.canBeGroupedWith=function(t){return this.getAttribute(\"href\")===t.getAttribute(\"href\")},i.prototype.getLength=function(){return this.length},i.prototype.canBeConsolidatedWith=function(){return!1},i}(e.Object)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Piece.registerType(\"attachment\",e.AttachmentPiece=function(n){function i(t){this.attachment=t,i.__super__.constructor.apply(this,arguments),this.length=1,this.ensureAttachmentExclusivelyHasAttribute(\"href\"),this.attachment.hasContent()||this.removeProhibitedAttributes()}return t(i,n),i.fromJSON=function(t){return new this(e.Attachment.fromJSON(t.attachment),t.attributes)},i.permittedAttributes=[\"caption\",\"presentation\"],i.prototype.ensureAttachmentExclusivelyHasAttribute=function(t){return this.hasAttribute(t)?(this.attachment.hasAttribute(t)||this.attachment.setAttributes(this.attributes.slice(t)),this.attributes=this.attributes.remove(t)):void 0},i.prototype.removeProhibitedAttributes=function(){var t;return t=this.attributes.slice(this.constructor.permittedAttributes),t.isEqualTo(this.attributes)?void 0:this.attributes=t},i.prototype.getValue=function(){return this.attachment},i.prototype.isSerializable=function(){return!this.attachment.isPending()},i.prototype.getCaption=function(){var t;return null!=(t=this.attributes.get(\"caption\"))?t:\"\"},i.prototype.isEqualTo=function(t){var e;return i.__super__.isEqualTo.apply(this,arguments)&&this.attachment.id===(null!=t&&null!=(e=t.attachment)?e.id:void 0)},i.prototype.toString=function(){return e.OBJECT_REPLACEMENT_CHARACTER},i.prototype.toJSON=function(){var t;return t=i.__super__.toJSON.apply(this,arguments),t.attachment=this.attachment,t},i.prototype.getCacheKey=function(){return[i.__super__.getCacheKey.apply(this,arguments),this.attachment.getCacheKey()].join(\"/\")},i.prototype.toConsole=function(){return JSON.stringify(this.toString())},i}(e.Piece))}.call(this),function(){var t,n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty;t=e.normalizeNewlines,e.Piece.registerType(\"string\",e.StringPiece=function(e){function i(e){i.__super__.constructor.apply(this,arguments),this.string=t(e),this.length=this.string.length}return n(i,e),i.fromJSON=function(t){return new this(t.string,t.attributes)},i.prototype.getValue=function(){return this.string},i.prototype.toString=function(){return this.string.toString()},i.prototype.isBlockBreak=function(){return\"\\n\"===this.toString()&&this.getAttribute(\"blockBreak\")===!0},i.prototype.toJSON=function(){var t;return t=i.__super__.toJSON.apply(this,arguments),t.string=this.string,t},i.prototype.canBeConsolidatedWith=function(t){return null!=t&&this.hasSameConstructorAs(t)&&this.hasSameAttributesAsPiece(t)},i.prototype.consolidateWith=function(t){return new this.constructor(this.toString()+t.toString(),this.attributes)},i.prototype.splitAtOffset=function(t){var e,n;return 0===t?(e=null,n=this):t===this.length?(e=this,n=null):(e=new this.constructor(this.string.slice(0,t),this.attributes),n=new this.constructor(this.string.slice(t),this.attributes)),[e,n]},i.prototype.toConsole=function(){var t;return t=this.string,t.length>15&&(t=t.slice(0,14)+\"\\u2026\"),JSON.stringify(t.toString())},i}(e.Piece))}.call(this),function(){var t,n=function(t,e){function n(){this.constructor=t}for(var o in e)i.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},i={}.hasOwnProperty,o=[].slice;t=e.spliceArray,e.SplittableList=function(e){function i(t){null==t&&(t=[]),i.__super__.constructor.apply(this,arguments),this.objects=t.slice(0),this.length=this.objects.length}var r,s,a;return n(i,e),i.box=function(t){return t instanceof this?t:new this(t)},i.prototype.indexOf=function(t){return this.objects.indexOf(t)},i.prototype.splice=function(){var e;return e=1<=arguments.length?o.call(arguments,0):[],new this.constructor(t.apply(null,[this.objects].concat(o.call(e))))},i.prototype.eachObject=function(t){var e,n,i,o,r,s;for(r=this.objects,s=[],n=e=0,i=r.length;i>e;n=++e)o=r[n],s.push(t(o,n));return s},i.prototype.insertObjectAtIndex=function(t,e){return this.splice(e,0,t)},i.prototype.insertSplittableListAtIndex=function(t,e){return this.splice.apply(this,[e,0].concat(o.call(t.objects)))},i.prototype.insertSplittableListAtPosition=function(t,e){var n,i,o;return o=this.splitObjectAtPosition(e),i=o[0],n=o[1],new this.constructor(i).insertSplittableListAtIndex(t,n)},i.prototype.editObjectAtIndex=function(t,e){return this.replaceObjectAtIndex(e(this.objects[t]),t)},i.prototype.replaceObjectAtIndex=function(t,e){return this.splice(e,1,t)},i.prototype.removeObjectAtIndex=function(t){return this.splice(t,1)},i.prototype.getObjectAtIndex=function(t){return this.objects[t]},i.prototype.getSplittableListInRange=function(t){var e,n,i,o;return i=this.splitObjectsAtRange(t),n=i[0],e=i[1],o=i[2],new this.constructor(n.slice(e,o+1))},i.prototype.selectSplittableList=function(t){var e,n;return n=function(){var n,i,o,r;for(o=this.objects,r=[],n=0,i=o.length;i>n;n++)e=o[n],t(e)&&r.push(e);return r}.call(this),new this.constructor(n)},i.prototype.removeObjectsInRange=function(t){var e,n,i,o;return i=this.splitObjectsAtRange(t),n=i[0],e=i[1],o=i[2],new this.constructor(n).splice(e,o-e+1)},i.prototype.transformObjectsInRange=function(t,e){var n,i,o,r,s,a,u;return s=this.splitObjectsAtRange(t),r=s[0],i=s[1],a=s[2],u=function(){var t,s,u;for(u=[],n=t=0,s=r.length;s>t;n=++t)o=r[n],u.push(n>=i&&a>=n?e(o):o);return u}(),new this.constructor(u)},i.prototype.splitObjectsAtRange=function(t){var e,n,i,o,s,u;return o=this.splitObjectAtPosition(a(t)),n=o[0],e=o[1],i=o[2],s=new this.constructor(n).splitObjectAtPosition(r(t)+i),n=s[0],u=s[1],[n,e,u-1]},i.prototype.getObjectAtPosition=function(t){var e,n,i;return i=this.findIndexAndOffsetAtPosition(t),e=i.index,n=i.offset,this.objects[e]},i.prototype.splitObjectAtPosition=function(t){var e,n,i,o,r,s,a,u,c,l;return s=this.findIndexAndOffsetAtPosition(t),e=s.index,r=s.offset,o=this.objects.slice(0),null!=e?0===r?(c=e,l=0):(i=this.getObjectAtIndex(e),a=i.splitAtOffset(r),n=a[0],u=a[1],o.splice(e,1,n,u),c=e+1,l=n.getLength()-r):(c=o.length,l=0),[o,c,l]},i.prototype.consolidate=function(){var t,e,n,i,o,r;for(i=[],o=this.objects[0],r=this.objects.slice(1),t=0,e=r.length;e>t;t++)n=r[t],(\"function\"==typeof o.canBeConsolidatedWith?o.canBeConsolidatedWith(n):void 0)?o=o.consolidateWith(n):(i.push(o),o=n);return null!=o&&i.push(o),new this.constructor(i)},i.prototype.consolidateFromIndexToIndex=function(t,e){var n,i,r;return i=this.objects.slice(0),r=i.slice(t,e+1),n=new this.constructor(r).consolidate().toArray(),this.splice.apply(this,[t,r.length].concat(o.call(n)))},i.prototype.findIndexAndOffsetAtPosition=function(t){var e,n,i,o,r,s,a;for(e=0,a=this.objects,i=n=0,o=a.length;o>n;i=++n){if(s=a[i],r=e+s.getLength(),t>=e&&r>t)return{index:i,offset:t-e};e=r}return{index:null,offset:null}},i.prototype.findPositionAtIndexAndOffset=function(t,e){var n,i,o,r,s,a;for(s=0,a=this.objects,n=i=0,o=a.length;o>i;n=++i)if(r=a[n],t>n)s+=r.getLength();else if(n===t){s+=e;break}return s},i.prototype.getEndPosition=function(){var t,e;return null!=this.endPosition?this.endPosition:this.endPosition=function(){var n,i,o;for(e=0,o=this.objects,n=0,i=o.length;i>n;n++)t=o[n],e+=t.getLength();return e}.call(this)},i.prototype.toString=function(){return this.objects.join(\"\")},i.prototype.toArray=function(){return this.objects.slice(0)},i.prototype.toJSON=function(){return this.toArray()},i.prototype.isEqualTo=function(t){return i.__super__.isEqualTo.apply(this,arguments)||s(this.objects,null!=t?t.objects:void 0)},s=function(t,e){var n,i,o,r,s;if(null==e&&(e=[]),t.length!==e.length)return!1;for(s=!0,i=n=0,o=t.length;o>n;i=++n)r=t[i],s&&!r.isEqualTo(e[i])&&(s=!1);return s},i.prototype.contentsForInspection=function(){var t;return{objects:\"[\"+function(){var e,n,i,o;for(i=this.objects,o=[],e=0,n=i.length;n>e;e++)t=i[e],o.push(t.inspect());return o}.call(this).join(\", \")+\"]\"}},a=function(t){return t[0]},r=function(t){return t[1]},i}(e.Object)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.Text=function(n){function i(t){var n;null==t&&(t=[]),i.__super__.constructor.apply(this,arguments),this.pieceList=new e.SplittableList(function(){var e,i,o;for(o=[],e=0,i=t.length;i>e;e++)n=t[e],n.isEmpty()||o.push(n);return o}())}return t(i,n),i.textForAttachmentWithAttributes=function(t,n){var i;return i=new e.AttachmentPiece(t,n),new this([i])},i.textForStringWithAttributes=function(t,n){var i;return i=new e.StringPiece(t,n),new this([i])},i.fromJSON=function(t){var n,i;return i=function(){var i,o,r;for(r=[],i=0,o=t.length;o>i;i++)n=t[i],r.push(e.Piece.fromJSON(n));return r}(),new this(i)},i.prototype.copy=function(){return this.copyWithPieceList(this.pieceList)},i.prototype.copyWithPieceList=function(t){return new this.constructor(t.consolidate().toArray())},i.prototype.copyUsingObjectMap=function(t){var e,n;return n=function(){var n,i,o,r,s;for(o=this.getPieces(),s=[],n=0,i=o.length;i>n;n++)e=o[n],s.push(null!=(r=t.find(e))?r:e);return s}.call(this),new this.constructor(n)},i.prototype.appendText=function(t){return this.insertTextAtPosition(t,this.getLength())},i.prototype.insertTextAtPosition=function(t,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList,e))\n},i.prototype.removeTextAtRange=function(t){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t))},i.prototype.replaceTextAtRange=function(t,e){return this.removeTextAtRange(e).insertTextAtPosition(t,e[0])},i.prototype.moveTextFromRangeToPosition=function(t,e){var n,i;if(!(t[0]<=e&&e<=t[1]))return i=this.getTextAtRange(t),n=i.getLength(),t[0]t;t++)n=i[t],o.push(n.getAttributes());return o}.call(this),e.Hash.fromCommonAttributesOfObjects(t).toObject()},i.prototype.getCommonAttributesAtRange=function(t){var e;return null!=(e=this.getTextAtRange(t).getCommonAttributes())?e:{}},i.prototype.getExpandedRangeForAttributeAtOffset=function(t,e){var n,i,o;for(n=o=e,i=this.getLength();n>0&&this.getCommonAttributesAtRange([n-1,o])[t];)n--;for(;i>o&&this.getCommonAttributesAtRange([e,o+1])[t];)o++;return[n,o]},i.prototype.getTextAtRange=function(t){return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t))},i.prototype.getStringAtRange=function(t){return this.pieceList.getSplittableListInRange(t).toString()},i.prototype.getStringAtPosition=function(t){return this.getStringAtRange([t,t+1])},i.prototype.startsWithString=function(t){return this.getStringAtRange([0,t.length])===t},i.prototype.endsWithString=function(t){var e;return e=this.getLength(),this.getStringAtRange([e-t.length,e])===t},i.prototype.getAttachmentPieces=function(){var t,e,n,i,o;for(i=this.pieceList.toArray(),o=[],t=0,e=i.length;e>t;t++)n=i[t],null!=n.attachment&&o.push(n);return o},i.prototype.getAttachments=function(){var t,e,n,i,o;for(i=this.getAttachmentPieces(),o=[],t=0,e=i.length;e>t;t++)n=i[t],o.push(n.attachment);return o},i.prototype.getAttachmentAndPositionById=function(t){var e,n,i,o,r,s;for(o=0,r=this.pieceList.toArray(),e=0,n=r.length;n>e;e++){if(i=r[e],(null!=(s=i.attachment)?s.id:void 0)===t)return{attachment:i.attachment,position:o};o+=i.length}return{attachment:null,position:null}},i.prototype.getAttachmentById=function(t){var e,n,i;return i=this.getAttachmentAndPositionById(t),e=i.attachment,n=i.position,e},i.prototype.getRangeOfAttachment=function(t){var e,n;return n=this.getAttachmentAndPositionById(t.id),t=n.attachment,e=n.position,null!=t?[e,e+1]:void 0},i.prototype.updateAttributesForAttachment=function(t,e){var n;return(n=this.getRangeOfAttachment(e))?this.addAttributesAtRange(t,n):this},i.prototype.getLength=function(){return this.pieceList.getEndPosition()},i.prototype.isEmpty=function(){return 0===this.getLength()},i.prototype.isEqualTo=function(t){var e;return i.__super__.isEqualTo.apply(this,arguments)||(null!=t&&null!=(e=t.pieceList)?e.isEqualTo(this.pieceList):void 0)},i.prototype.isBlockBreak=function(){return 1===this.getLength()&&this.pieceList.getObjectAtIndex(0).isBlockBreak()},i.prototype.eachPiece=function(t){return this.pieceList.eachObject(t)},i.prototype.getPieces=function(){return this.pieceList.toArray()},i.prototype.getPieceAtPosition=function(t){return this.pieceList.getObjectAtPosition(t)},i.prototype.contentsForInspection=function(){return{pieceList:this.pieceList.inspect()}},i.prototype.toSerializableText=function(){var t;return t=this.pieceList.selectSplittableList(function(t){return t.isSerializable()}),this.copyWithPieceList(t)},i.prototype.toString=function(){return this.pieceList.toString()},i.prototype.toJSON=function(){return this.pieceList.toJSON()},i.prototype.toConsole=function(){var t;return JSON.stringify(function(){var e,n,i,o;for(i=this.pieceList.toArray(),o=[],e=0,n=i.length;n>e;e++)t=i[e],o.push(JSON.parse(t.toConsole()));return o}.call(this))},i.prototype.getDirection=function(){return e.getDirection(this.toString())},i.prototype.isRTL=function(){return\"rtl\"===this.getDirection()},i}(e.Object)}.call(this),function(){var t,n,i,o,r,s=function(t,e){function n(){this.constructor=t}for(var i in e)a.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},a={}.hasOwnProperty,u=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},c=[].slice;t=e.arraysAreEqual,r=e.spliceArray,i=e.getBlockConfig,n=e.getBlockAttributeNames,o=e.getListAttributeNames,e.Block=function(n){function a(t,n){null==t&&(t=new e.Text),null==n&&(n=[]),a.__super__.constructor.apply(this,arguments),this.text=h(t),this.attributes=n}var l,h,p,d,f,g,m,v,y;return s(a,n),a.fromJSON=function(t){var n;return n=e.Text.fromJSON(t.text),new this(n,t.attributes)},a.prototype.isEmpty=function(){return this.text.isBlockBreak()},a.prototype.isEqualTo=function(e){return a.__super__.isEqualTo.apply(this,arguments)||this.text.isEqualTo(null!=e?e.text:void 0)&&t(this.attributes,null!=e?e.attributes:void 0)},a.prototype.copyWithText=function(t){return new this.constructor(t,this.attributes)},a.prototype.copyWithoutText=function(){return this.copyWithText(null)},a.prototype.copyWithAttributes=function(t){return new this.constructor(this.text,t)},a.prototype.copyWithoutAttributes=function(){return this.copyWithAttributes(null)},a.prototype.copyUsingObjectMap=function(t){var e;return this.copyWithText((e=t.find(this.text))?e:this.text.copyUsingObjectMap(t))},a.prototype.addAttribute=function(t){var e;return e=this.attributes.concat(d(t)),this.copyWithAttributes(e)},a.prototype.removeAttribute=function(t){var e,n;return n=i(t).listAttribute,e=g(g(this.attributes,t),n),this.copyWithAttributes(e)},a.prototype.removeLastAttribute=function(){return this.removeAttribute(this.getLastAttribute())},a.prototype.getLastAttribute=function(){return f(this.attributes)},a.prototype.getAttributes=function(){return this.attributes.slice(0)},a.prototype.getAttributeLevel=function(){return this.attributes.length},a.prototype.getAttributeAtLevel=function(t){return this.attributes[t-1]},a.prototype.hasAttribute=function(t){return u.call(this.attributes,t)>=0},a.prototype.hasAttributes=function(){return this.getAttributeLevel()>0},a.prototype.getLastNestableAttribute=function(){return f(this.getNestableAttributes())},a.prototype.getNestableAttributes=function(){var t,e,n,o,r;for(o=this.attributes,r=[],e=0,n=o.length;n>e;e++)t=o[e],i(t).nestable&&r.push(t);return r},a.prototype.getNestingLevel=function(){return this.getNestableAttributes().length},a.prototype.decreaseNestingLevel=function(){var t;return(t=this.getLastNestableAttribute())?this.removeAttribute(t):this},a.prototype.increaseNestingLevel=function(){var t,e,n;return(t=this.getLastNestableAttribute())?(n=this.attributes.lastIndexOf(t),e=r.apply(null,[this.attributes,n+1,0].concat(c.call(d(t)))),this.copyWithAttributes(e)):this},a.prototype.getListItemAttributes=function(){var t,e,n,o,r;for(o=this.attributes,r=[],e=0,n=o.length;n>e;e++)t=o[e],i(t).listAttribute&&r.push(t);return r},a.prototype.isListItem=function(){var t;return null!=(t=i(this.getLastAttribute()))?t.listAttribute:void 0},a.prototype.isTerminalBlock=function(){var t;return null!=(t=i(this.getLastAttribute()))?t.terminal:void 0},a.prototype.breaksOnReturn=function(){var t;return null!=(t=i(this.getLastAttribute()))?t.breakOnReturn:void 0},a.prototype.findLineBreakInDirectionFromPosition=function(t,e){var n,i;return i=this.toString(),n=function(){switch(t){case\"forward\":return i.indexOf(\"\\n\",e);case\"backward\":return i.slice(0,e).lastIndexOf(\"\\n\")}}(),-1!==n?n:void 0},a.prototype.contentsForInspection=function(){return{text:this.text.inspect(),attributes:this.attributes}},a.prototype.toString=function(){return this.text.toString()},a.prototype.toJSON=function(){return{text:this.text,attributes:this.attributes}},a.prototype.getDirection=function(){return this.text.getDirection()},a.prototype.isRTL=function(){return this.text.isRTL()},a.prototype.getLength=function(){return this.text.getLength()},a.prototype.canBeConsolidatedWith=function(t){return!this.hasAttributes()&&!t.hasAttributes()&&this.getDirection()===t.getDirection()},a.prototype.consolidateWith=function(t){var n,i;return n=e.Text.textForStringWithAttributes(\"\\n\"),i=this.getTextWithoutBlockBreak().appendText(n),this.copyWithText(i.appendText(t.text))},a.prototype.splitAtOffset=function(t){var e,n;return 0===t?(e=null,n=this):t===this.getLength()?(e=this,n=null):(e=this.copyWithText(this.text.getTextAtRange([0,t])),n=this.copyWithText(this.text.getTextAtRange([t,this.getLength()]))),[e,n]},a.prototype.getBlockBreakPosition=function(){return this.text.getLength()-1},a.prototype.getTextWithoutBlockBreak=function(){return m(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()},a.prototype.canBeGrouped=function(t){return this.attributes[t]},a.prototype.canBeGroupedWith=function(t,e){var n,r,s,a;return s=t.getAttributes(),r=s[e],n=this.attributes[e],!(n!==r||i(n).group===!1&&(a=s[e+1],u.call(o(),a)<0)||this.getDirection()!==t.getDirection()&&!t.isEmpty())},h=function(t){return t=y(t),t=l(t)},y=function(t){var n,i,o,r,s,a;return r=!1,a=t.getPieces(),i=2<=a.length?c.call(a,0,n=a.length-1):(n=0,[]),o=a[n++],null==o?t:(i=function(){var t,e,n;for(n=[],t=0,e=i.length;e>t;t++)s=i[t],s.isBlockBreak()?(r=!0,n.push(v(s))):n.push(s);return n}(),r?new e.Text(c.call(i).concat([o])):t)},p=e.Text.textForStringWithAttributes(\"\\n\",{blockBreak:!0}),l=function(t){return m(t)?t:t.appendText(p)},m=function(t){var e,n;return n=t.getLength(),0===n?!1:(e=t.getTextAtRange([n-1,n]),e.isBlockBreak())},v=function(t){return t.copyWithoutAttribute(\"blockBreak\")},d=function(t){var e;return e=i(t).listAttribute,null!=e?[e,t]:[t]},f=function(t){return t.slice(-1)[0]},g=function(t,e){var n;return n=t.lastIndexOf(e),-1===n?t:r(t,n,1)},a}(e.Object)}.call(this),function(){var t,n,i,o=function(t,e){function n(){this.constructor=t}for(var i in e)r.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty,s=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},a=[].slice;n=e.tagName,i=e.walkTree,t=e.nodeIsAttachmentElement,e.HTMLSanitizer=function(r){function u(t,e){var n;n=null!=e?e:{},this.allowedAttributes=n.allowedAttributes,this.forbiddenProtocols=n.forbiddenProtocols,this.forbiddenElements=n.forbiddenElements,null==this.allowedAttributes&&(this.allowedAttributes=c),null==this.forbiddenProtocols&&(this.forbiddenProtocols=h),null==this.forbiddenElements&&(this.forbiddenElements=l),this.body=p(t)}var c,l,h,p;return o(u,r),c=\"style href src width height class\".split(\" \"),h=\"javascript:\".split(\" \"),l=\"script iframe\".split(\" \"),u.sanitize=function(t,e){var n;return n=new this(t,e),n.sanitize(),n},u.prototype.sanitize=function(){return this.sanitizeElements(),this.normalizeListElementNesting()},u.prototype.getHTML=function(){return this.body.innerHTML},u.prototype.getBody=function(){return this.body},u.prototype.sanitizeElements=function(){var t,n,o,r,s;for(s=i(this.body),r=[];s.nextNode();)switch(o=s.currentNode,o.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(o)?r.push(o):this.sanitizeElement(o);break;case Node.COMMENT_NODE:r.push(o)}for(t=0,n=r.length;n>t;t++)o=r[t],e.removeNode(o);return this.body},u.prototype.sanitizeElement=function(t){var e,n,i,o,r;for(t.hasAttribute(\"href\")&&(o=t.protocol,s.call(this.forbiddenProtocols,o)>=0&&t.removeAttribute(\"href\")),r=a.call(t.attributes),e=0,n=r.length;n>e;e++)i=r[e].name,s.call(this.allowedAttributes,i)>=0||0===i.indexOf(\"data-trix\")||t.removeAttribute(i);return t},u.prototype.normalizeListElementNesting=function(){var t,e,i,o,r;for(r=a.call(this.body.querySelectorAll(\"ul,ol\")),t=0,e=r.length;e>t;t++)i=r[t],(o=i.previousElementSibling)&&\"li\"===n(o)&&o.appendChild(i);return this.body},u.prototype.elementIsRemovable=function(t){return(null!=t?t.nodeType:void 0)===Node.ELEMENT_NODE?this.elementIsForbidden(t)||this.elementIsntSerializable(t):void 0},u.prototype.elementIsForbidden=function(t){var e;return e=n(t),s.call(this.forbiddenElements,e)>=0},u.prototype.elementIsntSerializable=function(e){return\"false\"===e.getAttribute(\"data-trix-serialize\")&&!t(e)},p=function(t){var e,n,i,o,r;for(null==t&&(t=\"\"),t=t.replace(/<\\/html[^>]*>[^]*$/i,\"\"),e=document.implementation.createHTMLDocument(\"\"),e.documentElement.innerHTML=t,r=e.head.querySelectorAll(\"style\"),i=0,o=r.length;o>i;i++)n=r[i],e.body.appendChild(n);return e.body},u}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h,p=function(t,e){function n(){this.constructor=t}for(var i in e)d.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},d={}.hasOwnProperty,f=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.arraysAreEqual,s=e.makeElement,l=e.tagName,r=e.getBlockTagNames,h=e.walkTree,o=e.findClosestElementFromNode,i=e.elementContainsNode,a=e.nodeIsAttachmentElement,u=e.normalizeSpaces,n=e.breakableWhitespacePattern,c=e.squishBreakableWhitespace,e.HTMLParser=function(d){function g(t,e){this.html=t,this.referenceElement=(null!=e?e:{}).referenceElement,this.blocks=[],this.blockElements=[],this.processedElements=[]}var m,v,y,b,A,C,x,w,E,S,R,k;return p(g,d),g.parse=function(t,e){var n;return n=new this(t,e),n.parse(),n},g.prototype.getDocument=function(){return e.Document.fromJSON(this.blocks)},g.prototype.parse=function(){var t,n;try{for(this.createHiddenContainer(),t=e.HTMLSanitizer.sanitize(this.html).getHTML(),this.containerElement.innerHTML=t,n=h(this.containerElement,{usingFilter:x});n.nextNode();)this.processNode(n.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}},g.prototype.createHiddenContainer=function(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute(\"id\"),this.containerElement.setAttribute(\"data-trix-internal\",\"\"),this.containerElement.style.display=\"none\",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=s({tagName:\"div\",style:{display:\"none\"}}),document.body.appendChild(this.containerElement))},g.prototype.removeHiddenContainer=function(){return e.removeNode(this.containerElement)},x=function(t){return\"style\"===l(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},g.prototype.processNode=function(t){switch(t.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(t))return this.appendBlockForTextNode(t),this.processTextNode(t);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(t),this.processElement(t)}},g.prototype.appendBlockForTextNode=function(e){var n,i,o;return i=e.parentNode,i===this.currentBlockElement&&this.isBlockElement(e.previousSibling)?this.appendStringWithAttributes(\"\\n\"):i!==this.containerElement&&!this.isBlockElement(i)||(n=this.getBlockAttributes(i),t(n,null!=(o=this.currentBlock)?o.attributes:void 0))?void 0:(this.currentBlock=this.appendBlockForAttributesWithElement(n,i),this.currentBlockElement=i)},g.prototype.appendBlockForElement=function(e){var n,o,r,s;if(r=this.isBlockElement(e),o=i(this.currentBlockElement,e),r&&!this.isBlockElement(e.firstChild)){if((!this.isInsignificantTextNode(e.firstChild)||!this.isBlockElement(e.firstElementChild))&&(n=this.getBlockAttributes(e),e.firstChild))return o&&t(n,this.currentBlock.attributes)?this.appendStringWithAttributes(\"\\n\"):(this.currentBlock=this.appendBlockForAttributesWithElement(n,e),this.currentBlockElement=e)}else if(this.currentBlockElement&&!o&&!r)return(s=this.findParentBlockElement(e))?this.appendBlockForElement(s):(this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null)},g.prototype.findParentBlockElement=function(t){var e;for(e=t.parentElement;e&&e!==this.containerElement;){if(this.isBlockElement(e)&&f.call(this.blockElements,e)>=0)return e;e=e.parentElement}return null},g.prototype.processTextNode=function(t){var e,n;return n=t.data,v(t.parentNode)||(n=c(n),R(null!=(e=t.previousSibling)?e.textContent:void 0)&&(n=A(n))),this.appendStringWithAttributes(n,this.getTextAttributes(t.parentNode))},g.prototype.processElement=function(t){var e,n,i,o,r;if(a(t))return e=w(t,\"attachment\"),Object.keys(e).length&&(o=this.getTextAttributes(t),this.appendAttachmentWithAttributes(e,o),t.innerHTML=\"\"),this.processedElements.push(t);switch(l(t)){case\"br\":return this.isExtraBR(t)||this.isBlockElement(t.nextSibling)||this.appendStringWithAttributes(\"\\n\",this.getTextAttributes(t)),this.processedElements.push(t);case\"img\":e={url:t.getAttribute(\"src\"),contentType:\"image\"},i=b(t);for(n in i)r=i[n],e[n]=r;return this.appendAttachmentWithAttributes(e,this.getTextAttributes(t)),this.processedElements.push(t);case\"tr\":if(t.parentNode.firstChild!==t)return this.appendStringWithAttributes(\"\\n\");break;case\"td\":if(t.parentNode.firstChild!==t)return this.appendStringWithAttributes(\" | \")}},g.prototype.appendBlockForAttributesWithElement=function(t,e){var n;return this.blockElements.push(e),n=m(t),this.blocks.push(n),n},g.prototype.appendEmptyBlock=function(){return this.appendBlockForAttributesWithElement([],null)},g.prototype.appendStringWithAttributes=function(t,e){return this.appendPiece(S(t,e))},g.prototype.appendAttachmentWithAttributes=function(t,e){return this.appendPiece(E(t,e))},g.prototype.appendPiece=function(t){return 0===this.blocks.length&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(t)},g.prototype.appendStringToTextAtIndex=function(t,e){var n,i;return i=this.blocks[e].text,n=i[i.length-1],\"string\"===(null!=n?n.type:void 0)?n.string+=t:i.push(S(t))},g.prototype.prependStringToTextAtIndex=function(t,e){var n,i;return i=this.blocks[e].text,n=i[0],\"string\"===(null!=n?n.type:void 0)?n.string=t+n.string:i.unshift(S(t))},S=function(t,e){var n;return null==e&&(e={}),n=\"string\",t=u(t),{string:t,attributes:e,type:n}},E=function(t,e){var n;return null==e&&(e={}),n=\"attachment\",{attachment:t,attributes:e,type:n}},m=function(t){var e;return null==t&&(t={}),e=[],{text:e,attributes:t}},g.prototype.getTextAttributes=function(t){var n,i,r,s,u,c,l,h,p,d,f,g;r={},p=e.config.textAttributes;for(n in p)if(u=p[n],u.tagName&&o(t,{matchingSelector:u.tagName,untilNode:this.containerElement}))r[n]=!0;else if(u.parser){if(g=u.parser(t)){for(i=!1,d=this.findBlockElementAncestors(t),c=0,h=d.length;h>c;c++)if(s=d[c],u.parser(s)===g){i=!0;break}i||(r[n]=g)}}else u.styleProperty&&(g=t.style[u.styleProperty])&&(r[n]=g);if(a(t)){f=w(t,\"attributes\");for(l in f)g=f[l],r[l]=g}return r},g.prototype.getBlockAttributes=function(t){var n,i,o,r;for(i=[];t&&t!==this.containerElement;){r=e.config.blockAttributes;for(n in r)o=r[n],o.parse!==!1&&l(t)===o.tagName&&((\"function\"==typeof o.test?o.test(t):void 0)||!o.test)&&(i.push(n),o.listAttribute&&i.push(o.listAttribute));t=t.parentNode}return i.reverse()},g.prototype.findBlockElementAncestors=function(t){var e,n;for(e=[];t&&t!==this.containerElement;)n=l(t),f.call(r(),n)>=0&&e.push(t),t=t.parentNode;return e},w=function(t,e){try{return JSON.parse(t.getAttribute(\"data-trix-\"+e))}catch(n){return{}}},b=function(t){var e,n,i;return i=t.getAttribute(\"width\"),n=t.getAttribute(\"height\"),e={},i&&(e.width=parseInt(i,10)),n&&(e.height=parseInt(n,10)),e},g.prototype.isBlockElement=function(t){var e;if((null!=t?t.nodeType:void 0)===Node.ELEMENT_NODE&&!a(t)&&!o(t,{matchingSelector:\"td\",untilNode:this.containerElement}))return e=l(t),f.call(r(),e)>=0||\"block\"===window.getComputedStyle(t).display},g.prototype.isInsignificantTextNode=function(t){var e,n,i;if((null!=t?t.nodeType:void 0)===Node.TEXT_NODE&&k(t.data)&&(n=t.parentNode,i=t.previousSibling,e=t.nextSibling,(!C(n.previousSibling)||this.isBlockElement(n.previousSibling))&&!v(n)))return!i||this.isBlockElement(i)||!e||this.isBlockElement(e)},g.prototype.isExtraBR=function(t){return\"br\"===l(t)&&this.isBlockElement(t.parentNode)&&t.parentNode.lastChild===t},v=function(t){var e;return e=window.getComputedStyle(t).whiteSpace,\"pre\"===e||\"pre-wrap\"===e||\"pre-line\"===e},C=function(t){return t&&!R(t.textContent)},g.prototype.translateBlockElementMarginsToNewlines=function(){var t,e,n,i,o,r,s,a;for(e=this.getMarginOfDefaultBlockElement(),s=this.blocks,a=[],i=n=0,o=s.length;o>n;i=++n)t=s[i],(r=this.getMarginOfBlockElementAtIndex(i))&&(r.top>2*e.top&&this.prependStringToTextAtIndex(\"\\n\",i),a.push(r.bottom>2*e.bottom?this.appendStringToTextAtIndex(\"\\n\",i):void 0));return a},g.prototype.getMarginOfBlockElementAtIndex=function(t){var e,n;return!(e=this.blockElements[t])||!e.textContent||(n=l(e),f.call(r(),n)>=0||f.call(this.processedElements,e)>=0)?void 0:y(e)},g.prototype.getMarginOfDefaultBlockElement=function(){var t;return t=s(e.config.blockAttributes[\"default\"].tagName),this.containerElement.appendChild(t),y(t)},y=function(t){var e;return e=window.getComputedStyle(t),\"block\"===e.display?{top:parseInt(e.marginTop),bottom:parseInt(e.marginBottom)}:void 0},A=function(t){return t.replace(RegExp(\"^\"+n.source+\"+\"),\"\")},k=function(t){return RegExp(\"^\"+n.source+\"*$\").test(t)},R=function(t){return/\\s$/.test(t)},g}(e.BasicObject)}.call(this),function(){var t,n,i,o,r=function(t,e){function n(){this.constructor=t}for(var i in e)s.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},s={}.hasOwnProperty,a=[].slice,u=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.arraysAreEqual,i=e.normalizeRange,o=e.rangeIsCollapsed,n=e.getBlockConfig,e.Document=function(s){function c(t){null==t&&(t=[]),c.__super__.constructor.apply(this,arguments),0===t.length&&(t=[new e.Block]),this.blockList=e.SplittableList.box(t)}var l;return r(c,s),c.fromJSON=function(t){var n,i;return i=function(){var i,o,r;for(r=[],i=0,o=t.length;o>i;i++)n=t[i],r.push(e.Block.fromJSON(n));return r}(),new this(i)},c.fromHTML=function(t,n){return e.HTMLParser.parse(t,n).getDocument()},c.fromString=function(t,n){var i;return i=e.Text.textForStringWithAttributes(t,n),new this([new e.Block(i)])},c.prototype.isEmpty=function(){var t;return 1===this.blockList.length&&(t=this.getBlockAtIndex(0),t.isEmpty()&&!t.hasAttributes())},c.prototype.copy=function(t){var e;return null==t&&(t={}),e=t.consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray(),new this.constructor(e)},c.prototype.copyUsingObjectsFromDocument=function(t){var n;return n=new e.ObjectMap(t.getObjects()),this.copyUsingObjectMap(n)},c.prototype.copyUsingObjectMap=function(t){var e,n,i;return n=function(){var n,o,r,s;for(r=this.getBlocks(),s=[],n=0,o=r.length;o>n;n++)e=r[n],s.push((i=t.find(e))?i:e.copyUsingObjectMap(t));return s}.call(this),new this.constructor(n)},c.prototype.copyWithBaseBlockAttributes=function(t){var e,n,i;return null==t&&(t=[]),i=function(){var i,o,r,s;for(r=this.getBlocks(),s=[],i=0,o=r.length;o>i;i++)n=r[i],e=t.concat(n.getAttributes()),s.push(n.copyWithAttributes(e));return s}.call(this),new this.constructor(i)},c.prototype.replaceBlock=function(t,e){var n;return n=this.blockList.indexOf(t),-1===n?this:new this.constructor(this.blockList.replaceObjectAtIndex(e,n))},c.prototype.insertDocumentAtRange=function(t,e){var n,r,s,a,u,c,l;return r=t.blockList,u=(e=i(e))[0],c=this.locationFromPosition(u),s=c.index,a=c.offset,l=this,n=this.getBlockAtPosition(u),o(e)&&n.isEmpty()&&!n.hasAttributes()?l=new this.constructor(l.blockList.removeObjectAtIndex(s)):n.getBlockBreakPosition()===a&&u++,l=l.removeTextAtRange(e),new this.constructor(l.blockList.insertSplittableListAtPosition(r,u))},c.prototype.mergeDocumentAtRange=function(e,n){var o,r,s,a,u,c,l,h,p,d,f,g;return f=(n=i(n))[0],d=this.locationFromPosition(f),r=this.getBlockAtIndex(d.index).getAttributes(),o=e.getBaseBlockAttributes(),g=r.slice(-o.length),t(o,g)?(l=r.slice(0,-o.length),c=e.copyWithBaseBlockAttributes(l)):c=e.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(r),s=c.getBlockCount(),a=c.getBlockAtIndex(0),t(r,a.getAttributes())?(u=a.getTextWithoutBlockBreak(),p=this.insertTextAtRange(u,n),s>1&&(c=new this.constructor(c.getBlocks().slice(1)),h=f+u.getLength(),p=p.insertDocumentAtRange(c,h))):p=this.insertDocumentAtRange(c,n),p},c.prototype.insertTextAtRange=function(t,e){var n,o,r,s,a;return a=(e=i(e))[0],s=this.locationFromPosition(a),o=s.index,r=s.offset,n=this.removeTextAtRange(e),new this.constructor(n.blockList.editObjectAtIndex(o,function(e){return e.copyWithText(e.text.insertTextAtPosition(t,r))}))},c.prototype.removeTextAtRange=function(t){var e,n,r,s,a,u,c,l,h,p,d,f,g,m,v,y,b,A,C,x,w;return p=t=i(t),l=p[0],A=p[1],o(t)?this:(d=this.locationRangeFromRange(t),u=d[0],y=d[1],a=u.index,c=u.offset,s=this.getBlockAtIndex(a),v=y.index,b=y.offset,m=this.getBlockAtIndex(v),f=A-l===1&&s.getBlockBreakPosition()===c&&m.getBlockBreakPosition()!==b&&\"\\n\"===m.text.getStringAtPosition(b),f?r=this.blockList.editObjectAtIndex(v,function(t){return t.copyWithText(t.text.removeTextAtRange([b,b+1]))}):(h=s.text.getTextAtRange([0,c]),C=m.text.getTextAtRange([b,m.getLength()]),x=h.appendText(C),g=a!==v&&0===c,w=g&&s.getAttributeLevel()>=m.getAttributeLevel(),n=w?m.copyWithText(x):s.copyWithText(x),e=v+1-a,r=this.blockList.splice(a,e,n)),new this.constructor(r))},c.prototype.moveTextFromRangeToPosition=function(t,e){var n,o,r,s,u,c,l,h,p,d;return c=t=i(t),p=c[0],r=c[1],e>=p&&r>=e?this:(o=this.getDocumentAtRange(t),h=this.removeTextAtRange(t),u=e>p,u&&(e-=o.getLength()),l=o.getBlocks(),s=l[0],n=2<=l.length?a.call(l,1):[],0===n.length?(d=s.getTextWithoutBlockBreak(),u&&(e+=1)):d=s.text,h=h.insertTextAtRange(d,e),0===n.length?h:(o=new this.constructor(n),e+=d.getLength(),h.insertDocumentAtRange(o,e)))},c.prototype.addAttributeAtRange=function(t,e,i){var o;return o=this.blockList,this.eachBlockAtRange(i,function(i,r,s){return o=o.editObjectAtIndex(s,function(){return n(t)?i.addAttribute(t,e):r[0]===r[1]?i:i.copyWithText(i.text.addAttributeAtRange(t,e,r))})}),new this.constructor(o)},c.prototype.addAttribute=function(t,e){var n;return n=this.blockList,this.eachBlock(function(i,o){return n=n.editObjectAtIndex(o,function(){return i.addAttribute(t,e)})}),new this.constructor(n)},c.prototype.removeAttributeAtRange=function(t,e){var i;return i=this.blockList,this.eachBlockAtRange(e,function(e,o,r){return n(t)?i=i.editObjectAtIndex(r,function(){return e.removeAttribute(t)}):o[0]!==o[1]?i=i.editObjectAtIndex(r,function(){return e.copyWithText(e.text.removeAttributeAtRange(t,o))}):void 0}),new this.constructor(i)},c.prototype.updateAttributesForAttachment=function(t,e){var n,i,o,r;return o=(i=this.getRangeOfAttachment(e))[0],n=this.locationFromPosition(o).index,r=this.getTextAtIndex(n),new this.constructor(this.blockList.editObjectAtIndex(n,function(n){return n.copyWithText(r.updateAttributesForAttachment(t,e))}))},c.prototype.removeAttributeForAttachment=function(t,e){var n;return n=this.getRangeOfAttachment(e),this.removeAttributeAtRange(t,n)},c.prototype.insertBlockBreakAtRange=function(t){var n,o,r,s;return s=(t=i(t))[0],r=this.locationFromPosition(s).offset,o=this.removeTextAtRange(t),0===r&&(n=[new e.Block]),new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n),s))},c.prototype.applyBlockAttributeAtRange=function(t,e,i){var o,r,s,a;return s=this.expandRangeToLineBreaksAndSplitBlocks(i),r=s.document,i=s.range,o=n(t),o.listAttribute?(r=r.removeLastListAttributeAtRange(i,{exceptAttributeName:t}),a=r.convertLineBreaksToBlockBreaksInRange(i),r=a.document,i=a.range):r=o.exclusive?r.removeBlockAttributesAtRange(i):o.terminal?r.removeLastTerminalAttributeAtRange(i):r.consolidateBlocksAtRange(i),r.addAttributeAtRange(t,e,i)},c.prototype.removeLastListAttributeAtRange=function(t,e){var i;return null==e&&(e={}),i=this.blockList,this.eachBlockAtRange(t,function(t,o,r){var s;if((s=t.getLastAttribute())&&n(s).listAttribute&&s!==e.exceptAttributeName)return i=i.editObjectAtIndex(r,function(){return t.removeAttribute(s)})}),new this.constructor(i)},c.prototype.removeLastTerminalAttributeAtRange=function(t){var e;return e=this.blockList,this.eachBlockAtRange(t,function(t,i,o){var r;if((r=t.getLastAttribute())&&n(r).terminal)return e=e.editObjectAtIndex(o,function(){return t.removeAttribute(r)})}),new this.constructor(e)},c.prototype.removeBlockAttributesAtRange=function(t){var e;return e=this.blockList,this.eachBlockAtRange(t,function(t,n,i){return t.hasAttributes()?e=e.editObjectAtIndex(i,function(){return t.copyWithoutAttributes()}):void 0}),new this.constructor(e)},c.prototype.expandRangeToLineBreaksAndSplitBlocks=function(t){var e,n,o,r,s,a,u,c,l;return a=t=i(t),l=a[0],r=a[1],c=this.locationFromPosition(l),o=this.locationFromPosition(r),e=this,u=e.getBlockAtIndex(c.index),null!=(c.offset=u.findLineBreakInDirectionFromPosition(\"backward\",c.offset))&&(s=e.positionFromLocation(c),e=e.insertBlockBreakAtRange([s,s+1]),o.index+=1,o.offset-=e.getBlockAtIndex(c.index).getLength(),c.index+=1),c.offset=0,0===o.offset&&o.index>c.index?(o.index-=1,o.offset=e.getBlockAtIndex(o.index).getBlockBreakPosition()):(n=e.getBlockAtIndex(o.index),\"\\n\"===n.text.getStringAtRange([o.offset-1,o.offset])?o.offset-=1:o.offset=n.findLineBreakInDirectionFromPosition(\"forward\",o.offset),o.offset!==n.getBlockBreakPosition()&&(s=e.positionFromLocation(o),e=e.insertBlockBreakAtRange([s,s+1]))),l=e.positionFromLocation(c),r=e.positionFromLocation(o),t=i([l,r]),{document:e,range:t}},c.prototype.convertLineBreaksToBlockBreaksInRange=function(t){var e,n,o;return n=(t=i(t))[0],o=this.getStringAtRange(t).slice(0,-1),e=this,o.replace(/.*?\\n/g,function(t){return n+=t.length,e=e.insertBlockBreakAtRange([n-1,n])}),{document:e,range:t}},c.prototype.consolidateBlocksAtRange=function(t){var e,n,o,r,s;return o=t=i(t),s=o[0],n=o[1],r=this.locationFromPosition(s).index,e=this.locationFromPosition(n).index,new this.constructor(this.blockList.consolidateFromIndexToIndex(r,e))},c.prototype.getDocumentAtRange=function(t){var e;return t=i(t),e=this.blockList.getSplittableListInRange(t).toArray(),new this.constructor(e)},c.prototype.getStringAtRange=function(t){var e,n,o;return o=t=i(t),n=o[o.length-1],n!==this.getLength()&&(e=-1),this.getDocumentAtRange(t).toString().slice(0,e)},c.prototype.getBlockAtIndex=function(t){return this.blockList.getObjectAtIndex(t)},c.prototype.getBlockAtPosition=function(t){var e;return e=this.locationFromPosition(t).index,this.getBlockAtIndex(e)},c.prototype.getTextAtIndex=function(t){var e;return null!=(e=this.getBlockAtIndex(t))?e.text:void 0},c.prototype.getTextAtPosition=function(t){var e;return e=this.locationFromPosition(t).index,this.getTextAtIndex(e)},c.prototype.getPieceAtPosition=function(t){var e,n,i;return i=this.locationFromPosition(t),e=i.index,n=i.offset,this.getTextAtIndex(e).getPieceAtPosition(n)},c.prototype.getCharacterAtPosition=function(t){var e,n,i;return i=this.locationFromPosition(t),e=i.index,n=i.offset,this.getTextAtIndex(e).getStringAtRange([n,n+1])},c.prototype.getLength=function(){return this.blockList.getEndPosition()},c.prototype.getBlocks=function(){return this.blockList.toArray()},c.prototype.getBlockCount=function(){return this.blockList.length},c.prototype.getEditCount=function(){return this.editCount},c.prototype.eachBlock=function(t){return this.blockList.eachObject(t)},c.prototype.eachBlockAtRange=function(t,e){var n,o,r,s,a,u,c,l,h,p,d,f;if(u=t=i(t),d=u[0],r=u[1],p=this.locationFromPosition(d),o=this.locationFromPosition(r),p.index===o.index)return n=this.getBlockAtIndex(p.index),f=[p.offset,o.offset],e(n,f,p.index);for(h=[],a=s=c=p.index,l=o.index;l>=c?l>=s:s>=l;a=l>=c?++s:--s)(n=this.getBlockAtIndex(a))?(f=function(){switch(a){case p.index:return[p.offset,n.text.getLength()];case o.index:return[0,o.offset];default:return[0,n.text.getLength()]}}(),h.push(e(n,f,a))):h.push(void 0);return h},c.prototype.getCommonAttributesAtRange=function(t){var n,r,s;return r=(t=i(t))[0],o(t)?this.getCommonAttributesAtPosition(r):(s=[],n=[],this.eachBlockAtRange(t,function(t,e){return e[0]!==e[1]?(s.push(t.text.getCommonAttributesAtRange(e)),n.push(l(t))):void 0\n}),e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject())},c.prototype.getCommonAttributesAtPosition=function(t){var n,i,o,r,s,a,c,h,p,d;if(p=this.locationFromPosition(t),s=p.index,h=p.offset,o=this.getBlockAtIndex(s),!o)return{};r=l(o),n=o.text.getAttributesAtPosition(h),i=o.text.getAttributesAtPosition(h-1),a=function(){var t,n;t=e.config.textAttributes,n=[];for(c in t)d=t[c],d.inheritable&&n.push(c);return n}();for(c in i)d=i[c],(d===n[c]||u.call(a,c)>=0)&&(r[c]=d);return r},c.prototype.getRangeOfCommonAttributeAtPosition=function(t,e){var n,o,r,s,a,u,c,l,h;return a=this.locationFromPosition(e),r=a.index,s=a.offset,h=this.getTextAtIndex(r),u=h.getExpandedRangeForAttributeAtOffset(t,s),l=u[0],o=u[1],c=this.positionFromLocation({index:r,offset:l}),n=this.positionFromLocation({index:r,offset:o}),i([c,n])},c.prototype.getBaseBlockAttributes=function(){var t,e,n,i,o,r,s;for(t=this.getBlockAtIndex(0).getAttributes(),n=i=1,s=this.getBlockCount();s>=1?s>i:i>s;n=s>=1?++i:--i)e=this.getBlockAtIndex(n).getAttributes(),r=Math.min(t.length,e.length),t=function(){var n,i,s;for(s=[],o=n=0,i=r;(i>=0?i>n:n>i)&&e[o]===t[o];o=i>=0?++n:--n)s.push(e[o]);return s}();return t},l=function(t){var e,n;return n={},(e=t.getLastAttribute())&&(n[e]=!0),n},c.prototype.getAttachmentById=function(t){var e,n,i,o;for(o=this.getAttachments(),n=0,i=o.length;i>n;n++)if(e=o[n],e.id===t)return e},c.prototype.getAttachmentPieces=function(){var t;return t=[],this.blockList.eachObject(function(e){var n;return n=e.text,t=t.concat(n.getAttachmentPieces())}),t},c.prototype.getAttachments=function(){var t,e,n,i,o;for(i=this.getAttachmentPieces(),o=[],t=0,e=i.length;e>t;t++)n=i[t],o.push(n.attachment);return o},c.prototype.getRangeOfAttachment=function(t){var e,n,o,r,s,a,u;for(r=0,s=this.blockList.toArray(),n=e=0,o=s.length;o>e;n=++e){if(a=s[n].text,u=a.getRangeOfAttachment(t))return i([r+u[0],r+u[1]]);r+=a.getLength()}},c.prototype.getLocationRangeOfAttachment=function(t){var e;return e=this.getRangeOfAttachment(t),this.locationRangeFromRange(e)},c.prototype.getAttachmentPieceForAttachment=function(t){var e,n,i,o;for(o=this.getAttachmentPieces(),e=0,n=o.length;n>e;e++)if(i=o[e],i.attachment===t)return i},c.prototype.findRangesForBlockAttribute=function(t){var e,n,i,o,r,s,a;for(r=0,s=[],a=this.getBlocks(),n=0,i=a.length;i>n;n++)e=a[n],o=e.getLength(),e.hasAttribute(t)&&s.push([r,r+o]),r+=o;return s},c.prototype.findRangesForTextAttribute=function(t,e){var n,i,o,r,s,a,u,c,l,h;for(h=(null!=e?e:{}).withValue,a=0,u=[],c=[],r=function(e){return null!=h?e.getAttribute(t)===h:e.hasAttribute(t)},l=this.getPieces(),n=0,i=l.length;i>n;n++)s=l[n],o=s.getLength(),r(s)&&(u[1]===a?u[1]=a+o:c.push(u=[a,a+o])),a+=o;return c},c.prototype.locationFromPosition=function(t){var e,n;return n=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,t)),null!=n.index?n:(e=this.getBlocks(),{index:e.length-1,offset:e[e.length-1].getLength()})},c.prototype.positionFromLocation=function(t){return this.blockList.findPositionAtIndexAndOffset(t.index,t.offset)},c.prototype.locationRangeFromPosition=function(t){return i(this.locationFromPosition(t))},c.prototype.locationRangeFromRange=function(t){var e,n,o,r;if(t=i(t))return r=t[0],n=t[1],o=this.locationFromPosition(r),e=this.locationFromPosition(n),i([o,e])},c.prototype.rangeFromLocationRange=function(t){var e,n;return t=i(t),e=this.positionFromLocation(t[0]),o(t)||(n=this.positionFromLocation(t[1])),i([e,n])},c.prototype.isEqualTo=function(t){return this.blockList.isEqualTo(null!=t?t.blockList:void 0)},c.prototype.getTexts=function(){var t,e,n,i,o;for(i=this.getBlocks(),o=[],e=0,n=i.length;n>e;e++)t=i[e],o.push(t.text);return o},c.prototype.getPieces=function(){var t,e,n,i,o;for(n=[],i=this.getTexts(),t=0,e=i.length;e>t;t++)o=i[t],n.push.apply(n,o.getPieces());return n},c.prototype.getObjects=function(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())},c.prototype.toSerializableDocument=function(){var t;return t=[],this.blockList.eachObject(function(e){return t.push(e.copyWithText(e.text.toSerializableText()))}),new this.constructor(t)},c.prototype.toString=function(){return this.blockList.toString()},c.prototype.toJSON=function(){return this.blockList.toJSON()},c.prototype.toConsole=function(){var t;return JSON.stringify(function(){var e,n,i,o;for(i=this.blockList.toArray(),o=[],e=0,n=i.length;n>e;e++)t=i[e],o.push(JSON.parse(t.text.toConsole()));return o}.call(this))},c}(e.Object)}.call(this),function(){e.LineBreakInsertion=function(){function t(t){var e;this.composition=t,this.document=this.composition.document,e=this.composition.getSelectedRange(),this.startPosition=e[0],this.endPosition=e[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}return t.prototype.shouldInsertBlockBreak=function(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?0!==this.startLocation.offset:this.breaksOnReturn&&\"\\n\"!==this.nextCharacter},t.prototype.shouldBreakFormattedBlock=function(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&\"\\n\"===this.nextCharacter||\"\\n\"===this.previousCharacter)},t.prototype.shouldDecreaseListLevel=function(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()},t.prototype.shouldPrependListItem=function(){return this.block.isListItem()&&0===this.startLocation.offset&&!this.block.isEmpty()},t.prototype.shouldRemoveLastBlockAttribute=function(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()},t}()}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h=function(t,e){function n(){this.constructor=t}for(var i in e)p.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},p={}.hasOwnProperty;s=e.normalizeRange,c=e.rangesAreEqual,u=e.rangeIsCollapsed,a=e.objectsAreEqual,t=e.arrayStartsWith,l=e.summarizeArrayChange,i=e.getAllAttributeNames,o=e.getBlockConfig,r=e.getTextConfig,n=e.extend,e.Composition=function(p){function d(){this.document=new e.Document,this.attachments=[],this.currentAttributes={},this.revision=0}var f;return h(d,p),d.prototype.setDocument=function(t){var e;return t.isEqualTo(this.document)?void 0:(this.document=t,this.refreshAttachments(),this.revision++,null!=(e=this.delegate)&&\"function\"==typeof e.compositionDidChangeDocument?e.compositionDidChangeDocument(t):void 0)},d.prototype.getSnapshot=function(){return{document:this.document,selectedRange:this.getSelectedRange()}},d.prototype.loadSnapshot=function(t){var n,i,o,r;return n=t.document,r=t.selectedRange,null!=(i=this.delegate)&&\"function\"==typeof i.compositionWillLoadSnapshot&&i.compositionWillLoadSnapshot(),this.setDocument(null!=n?n:new e.Document),this.setSelection(null!=r?r:[0,0]),null!=(o=this.delegate)&&\"function\"==typeof o.compositionDidLoadSnapshot?o.compositionDidLoadSnapshot():void 0},d.prototype.insertText=function(t,e){var n,i,o,r;return r=(null!=e?e:{updatePosition:!0}).updatePosition,i=this.getSelectedRange(),this.setDocument(this.document.insertTextAtRange(t,i)),o=i[0],n=o+t.getLength(),r&&this.setSelection(n),this.notifyDelegateOfInsertionAtRange([o,n])},d.prototype.insertBlock=function(t){var n;return null==t&&(t=new e.Block),n=new e.Document([t]),this.insertDocument(n)},d.prototype.insertDocument=function(t){var n,i,o;return null==t&&(t=new e.Document),i=this.getSelectedRange(),this.setDocument(this.document.insertDocumentAtRange(t,i)),o=i[0],n=o+t.getLength(),this.setSelection(n),this.notifyDelegateOfInsertionAtRange([o,n])},d.prototype.insertString=function(t,n){var i,o;return i=this.getCurrentTextAttributes(),o=e.Text.textForStringWithAttributes(t,i),this.insertText(o,n)},d.prototype.insertBlockBreak=function(){var t,e,n;return e=this.getSelectedRange(),this.setDocument(this.document.insertBlockBreakAtRange(e)),n=e[0],t=n+1,this.setSelection(t),this.notifyDelegateOfInsertionAtRange([n,t])},d.prototype.insertLineBreak=function(){var t,n;return n=new e.LineBreakInsertion(this),n.shouldDecreaseListLevel()?(this.decreaseListLevel(),this.setSelection(n.startPosition)):n.shouldPrependListItem()?(t=new e.Document([n.block.copyWithoutText()]),this.insertDocument(t)):n.shouldInsertBlockBreak()?this.insertBlockBreak():n.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():n.shouldBreakFormattedBlock()?this.breakFormattedBlock(n):this.insertString(\"\\n\")},d.prototype.insertHTML=function(t){var n,i,o,r;return n=e.Document.fromHTML(t),o=this.getSelectedRange(),this.setDocument(this.document.mergeDocumentAtRange(n,o)),r=o[0],i=r+n.getLength()-1,this.setSelection(i),this.notifyDelegateOfInsertionAtRange([r,i])},d.prototype.replaceHTML=function(t){var n,i,o;return n=e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document),i=this.getLocationRange({strict:!1}),o=this.document.rangeFromLocationRange(i),this.setDocument(n),this.setSelection(o)},d.prototype.insertFile=function(t){return this.insertFiles([t])},d.prototype.insertFiles=function(t){var n,i,o,r,s,a;for(i=[],r=0,s=t.length;s>r;r++)o=t[r],(null!=(a=this.delegate)?a.compositionShouldAcceptFile(o):void 0)&&(n=e.Attachment.attachmentForFile(o),i.push(n));return this.insertAttachments(i)},d.prototype.insertAttachment=function(t){return this.insertAttachments([t])},d.prototype.insertAttachments=function(t){var n,i,o,r,s,a,u,c,l;for(c=new e.Text,r=0,s=t.length;s>r;r++)n=t[r],l=n.getType(),a=null!=(u=e.config.attachments[l])?u.presentation:void 0,o=this.getCurrentTextAttributes(),a&&(o.presentation=a),i=e.Text.textForAttachmentWithAttributes(n,o),c=c.appendText(i);return this.insertText(c)},d.prototype.shouldManageDeletingInDirection=function(t){var e;if(e=this.getLocationRange(),u(e)){if(\"backward\"===t&&0===e[0].offset)return!0;if(this.shouldManageMovingCursorInDirection(t))return!0}else if(e[0].index!==e[1].index)return!0;return!1},d.prototype.deleteInDirection=function(t,e){var n,i,o,r,s,a,c,l;return r=(null!=e?e:{}).length,s=this.getLocationRange(),a=this.getSelectedRange(),c=u(a),c?o=\"backward\"===t&&0===s[0].offset:l=s[0].index!==s[1].index,o&&this.canDecreaseBlockAttributeLevel()&&(i=this.getBlock(),i.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(a[0]),i.isEmpty())?!1:(c&&(a=this.getExpandedRangeInDirection(t,{length:r}),\"backward\"===t&&(n=this.getAttachmentAtRange(a))),n?(this.editAttachment(n),!1):(this.setDocument(this.document.removeTextAtRange(a)),this.setSelection(a[0]),o||l?!1:void 0))},d.prototype.moveTextFromRange=function(t){var e;return e=this.getSelectedRange()[0],this.setDocument(this.document.moveTextFromRangeToPosition(t,e)),this.setSelection(e)},d.prototype.removeAttachment=function(t){var e;return(e=this.document.getRangeOfAttachment(t))?(this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(e)),this.setSelection(e[0])):void 0},d.prototype.removeLastBlockAttribute=function(){var t,e,n,i;return n=this.getSelectedRange(),i=n[0],e=n[1],t=this.document.getBlockAtPosition(e),this.removeCurrentAttribute(t.getLastAttribute()),this.setSelection(i)},f=\" \",d.prototype.insertPlaceholder=function(){return this.placeholderPosition=this.getPosition(),this.insertString(f)},d.prototype.selectPlaceholder=function(){return null!=this.placeholderPosition?(this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+f.length]),this.getSelectedRange()):void 0},d.prototype.forgetPlaceholder=function(){return this.placeholderPosition=null},d.prototype.hasCurrentAttribute=function(t){var e;return e=this.currentAttributes[t],null!=e&&e!==!1},d.prototype.toggleCurrentAttribute=function(t){var e;return(e=!this.currentAttributes[t])?this.setCurrentAttribute(t,e):this.removeCurrentAttribute(t)},d.prototype.canSetCurrentAttribute=function(t){return o(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)},d.prototype.canSetCurrentTextAttribute=function(){var t,e,n,i,o;if(e=this.getSelectedDocument()){for(o=e.getAttachments(),n=0,i=o.length;i>n;n++)if(t=o[n],!t.hasContent())return!1;return!0}},d.prototype.canSetCurrentBlockAttribute=function(){var t;if(t=this.getBlock())return!t.isTerminalBlock()},d.prototype.setCurrentAttribute=function(t,e){return o(t)?this.setBlockAttribute(t,e):(this.setTextAttribute(t,e),this.currentAttributes[t]=e,this.notifyDelegateOfCurrentAttributesChange())},d.prototype.setTextAttribute=function(t,n){var i,o,r,s;if(o=this.getSelectedRange())return r=o[0],i=o[1],r!==i?this.setDocument(this.document.addAttributeAtRange(t,n,o)):\"href\"===t?(s=e.Text.textForStringWithAttributes(n,{href:n}),this.insertText(s)):void 0},d.prototype.setBlockAttribute=function(t,e){var n,i;if(i=this.getSelectedRange())return this.canSetCurrentAttribute(t)?(n=this.getBlock(),this.setDocument(this.document.applyBlockAttributeAtRange(t,e,i)),this.setSelection(i)):void 0},d.prototype.removeCurrentAttribute=function(t){return o(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())},d.prototype.removeTextAttribute=function(t){var e;if(e=this.getSelectedRange())return this.setDocument(this.document.removeAttributeAtRange(t,e))},d.prototype.removeBlockAttribute=function(t){var e;if(e=this.getSelectedRange())return this.setDocument(this.document.removeAttributeAtRange(t,e))},d.prototype.canDecreaseNestingLevel=function(){var t;return(null!=(t=this.getBlock())?t.getNestingLevel():void 0)>0},d.prototype.canIncreaseNestingLevel=function(){var e,n,i;if(e=this.getBlock())return(null!=(i=o(e.getLastNestableAttribute()))?i.listAttribute:0)?(n=this.getPreviousBlock())?t(n.getListItemAttributes(),e.getListItemAttributes()):void 0:e.getNestingLevel()>0},d.prototype.decreaseNestingLevel=function(){var t;if(t=this.getBlock())return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))},d.prototype.increaseNestingLevel=function(){var t;if(t=this.getBlock())return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))},d.prototype.canDecreaseBlockAttributeLevel=function(){var t;return(null!=(t=this.getBlock())?t.getAttributeLevel():void 0)>0},d.prototype.decreaseBlockAttributeLevel=function(){var t,e;return(t=null!=(e=this.getBlock())?e.getLastAttribute():void 0)?this.removeCurrentAttribute(t):void 0},d.prototype.decreaseListLevel=function(){var t,e,n,i,o,r;for(r=this.getSelectedRange()[0],o=this.document.locationFromPosition(r).index,n=o,t=this.getBlock().getAttributeLevel();(e=this.document.getBlockAtIndex(n+1))&&e.isListItem()&&e.getAttributeLevel()>t;)n++;return r=this.document.positionFromLocation({index:o,offset:0}),i=this.document.positionFromLocation({index:n,offset:0}),this.setDocument(this.document.removeLastListAttributeAtRange([r,i]))},d.prototype.updateCurrentAttributes=function(){var t,e,n,o,r,s;if(s=this.getSelectedRange({ignoreLock:!0})){for(e=this.document.getCommonAttributesAtRange(s),r=i(),n=0,o=r.length;o>n;n++)t=r[n],e[t]||this.canSetCurrentAttribute(t)||(e[t]=!1);if(!a(e,this.currentAttributes))return this.currentAttributes=e,this.notifyDelegateOfCurrentAttributesChange()}},d.prototype.getCurrentAttributes=function(){return n.call({},this.currentAttributes)},d.prototype.getCurrentTextAttributes=function(){var t,e,n,i;t={},n=this.currentAttributes;for(e in n)i=n[e],i!==!1&&r(e)&&(t[e]=i);return t},d.prototype.freezeSelection=function(){return this.setCurrentAttribute(\"frozen\",!0)},d.prototype.thawSelection=function(){return this.removeCurrentAttribute(\"frozen\")},d.prototype.hasFrozenSelection=function(){return this.hasCurrentAttribute(\"frozen\")},d.proxyMethod(\"getSelectionManager().getPointRange\"),d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"),d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"),d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"),d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"),d.proxyMethod(\"delegate?.getSelectionManager\"),d.prototype.setSelection=function(t){var e,n;return e=this.document.locationRangeFromRange(t),null!=(n=this.delegate)?n.compositionDidRequestChangingSelectionToLocationRange(e):void 0},d.prototype.getSelectedRange=function(){var t;return(t=this.getLocationRange())?this.document.rangeFromLocationRange(t):void 0},d.prototype.setSelectedRange=function(t){var e;return e=this.document.locationRangeFromRange(t),this.getSelectionManager().setLocationRange(e)},d.prototype.getPosition=function(){var t;return(t=this.getLocationRange())?this.document.positionFromLocation(t[0]):void 0},d.prototype.getLocationRange=function(t){var e,n;return null!=(e=null!=(n=this.targetLocationRange)?n:this.getSelectionManager().getLocationRange(t))?e:s({index:0,offset:0})},d.prototype.withTargetLocationRange=function(t,e){var n;this.targetLocationRange=t;try{n=e()}finally{this.targetLocationRange=null}return n},d.prototype.withTargetRange=function(t,e){var n;return n=this.document.locationRangeFromRange(t),this.withTargetLocationRange(n,e)},d.prototype.withTargetDOMRange=function(t,e){var n;return n=this.createLocationRangeFromDOMRange(t,{strict:!1}),this.withTargetLocationRange(n,e)},d.prototype.getExpandedRangeInDirection=function(t,e){var n,i,o,r;return i=(null!=e?e:{}).length,o=this.getSelectedRange(),r=o[0],n=o[1],\"backward\"===t?i?r-=i:r=this.translateUTF16PositionFromOffset(r,-1):i?n+=i:n=this.translateUTF16PositionFromOffset(n,1),s([r,n])},d.prototype.shouldManageMovingCursorInDirection=function(t){var e;return this.editingAttachment?!0:(e=this.getExpandedRangeInDirection(t),null!=this.getAttachmentAtRange(e))},d.prototype.moveCursorInDirection=function(t){var e,n,i,o;return this.editingAttachment?i=this.document.getRangeOfAttachment(this.editingAttachment):(o=this.getSelectedRange(),i=this.getExpandedRangeInDirection(t),n=!c(o,i)),this.setSelectedRange(\"backward\"===t?i[0]:i[1]),n&&(e=this.getAttachmentAtRange(i))?this.editAttachment(e):void 0},d.prototype.expandSelectionInDirection=function(t,e){var n,i;return n=(null!=e?e:{}).length,i=this.getExpandedRangeInDirection(t,{length:n}),this.setSelectedRange(i)},d.prototype.expandSelectionForEditing=function(){return this.hasCurrentAttribute(\"href\")?this.expandSelectionAroundCommonAttribute(\"href\"):void 0},d.prototype.expandSelectionAroundCommonAttribute=function(t){var e,n;return e=this.getPosition(),n=this.document.getRangeOfCommonAttributeAtPosition(t,e),this.setSelectedRange(n)},d.prototype.selectionContainsAttachments=function(){var t;return(null!=(t=this.getSelectedAttachments())?t.length:void 0)>0},d.prototype.selectionIsInCursorTarget=function(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())},d.prototype.positionIsCursorTarget=function(t){var e;return(e=this.document.locationFromPosition(t))?this.locationIsCursorTarget(e):void 0},d.prototype.positionIsBlockBreak=function(t){var e;return null!=(e=this.document.getPieceAtPosition(t))?e.isBlockBreak():void 0},d.prototype.getSelectedDocument=function(){var t;return(t=this.getSelectedRange())?this.document.getDocumentAtRange(t):void 0},d.prototype.getSelectedAttachments=function(){var t;return null!=(t=this.getSelectedDocument())?t.getAttachments():void 0},d.prototype.getAttachments=function(){return this.attachments.slice(0)},d.prototype.refreshAttachments=function(){var t,e,n,i,o,r,s,a,u,c,h,p;for(n=this.document.getAttachments(),a=l(this.attachments,n),t=a.added,h=a.removed,this.attachments=n,i=0,r=h.length;r>i;i++)e=h[i],e.delegate=null,null!=(u=this.delegate)&&\"function\"==typeof u.compositionDidRemoveAttachment&&u.compositionDidRemoveAttachment(e);for(p=[],o=0,s=t.length;s>o;o++)e=t[o],e.delegate=this,p.push(null!=(c=this.delegate)&&\"function\"==typeof c.compositionDidAddAttachment?c.compositionDidAddAttachment(e):void 0);return p},d.prototype.attachmentDidChangeAttributes=function(t){var e;return this.revision++,null!=(e=this.delegate)&&\"function\"==typeof e.compositionDidEditAttachment?e.compositionDidEditAttachment(t):void 0},d.prototype.attachmentDidChangePreviewURL=function(t){var e;return this.revision++,null!=(e=this.delegate)&&\"function\"==typeof e.compositionDidChangeAttachmentPreviewURL?e.compositionDidChangeAttachmentPreviewURL(t):void 0},d.prototype.editAttachment=function(t,e){var n;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,null!=(n=this.delegate)&&\"function\"==typeof n.compositionDidStartEditingAttachment?n.compositionDidStartEditingAttachment(this.editingAttachment,e):void 0},d.prototype.stopEditingAttachment=function(){var t;if(this.editingAttachment)return null!=(t=this.delegate)&&\"function\"==typeof t.compositionDidStopEditingAttachment&&t.compositionDidStopEditingAttachment(this.editingAttachment),this.editingAttachment=null},d.prototype.updateAttributesForAttachment=function(t,e){return this.setDocument(this.document.updateAttributesForAttachment(t,e))},d.prototype.removeAttributeForAttachment=function(t,e){return this.setDocument(this.document.removeAttributeForAttachment(t,e))},d.prototype.breakFormattedBlock=function(t){var n,i,o,r,s;return i=t.document,n=t.block,r=t.startPosition,s=[r-1,r],n.getBlockBreakPosition()===t.startLocation.offset?(n.breaksOnReturn()&&\"\\n\"===t.nextCharacter?r+=1:i=i.removeTextAtRange(s),s=[r,r]):\"\\n\"===t.nextCharacter?\"\\n\"===t.previousCharacter?s=[r-1,r+1]:(s=[r,r+1],r+=1):t.startLocation.offset-1!==0&&(r+=1),o=new e.Document([n.removeLastAttribute().copyWithoutText()]),this.setDocument(i.insertDocumentAtRange(o,s)),this.setSelection(r)},d.prototype.getPreviousBlock=function(){var t,e;return(e=this.getLocationRange())&&(t=e[0].index,t>0)?this.document.getBlockAtIndex(t-1):void 0},d.prototype.getBlock=function(){var t;return(t=this.getLocationRange())?this.document.getBlockAtIndex(t[0].index):void 0},d.prototype.getAttachmentAtRange=function(t){var n;return n=this.document.getDocumentAtRange(t),n.toString()===e.OBJECT_REPLACEMENT_CHARACTER+\"\\n\"?n.getAttachments()[0]:void 0},d.prototype.notifyDelegateOfCurrentAttributesChange=function(){var t;return null!=(t=this.delegate)&&\"function\"==typeof t.compositionDidChangeCurrentAttributes?t.compositionDidChangeCurrentAttributes(this.currentAttributes):void 0},d.prototype.notifyDelegateOfInsertionAtRange=function(t){var e;return null!=(e=this.delegate)&&\"function\"==typeof e.compositionDidPerformInsertionAtRange?e.compositionDidPerformInsertionAtRange(t):void 0},d.prototype.translateUTF16PositionFromOffset=function(t,e){var n,i;return i=this.document.toUTF16String(),n=i.offsetFromUCS2Offset(t),i.offsetToUCS2Offset(n+e)},d}(e.BasicObject)}.call(this),function(){var t=function(t,e){function i(){this.constructor=t}for(var o in e)n.call(e,o)&&(t[o]=e[o]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},n={}.hasOwnProperty;e.UndoManager=function(e){function n(t){this.composition=t,this.undoEntries=[],this.redoEntries=[]}var i;return t(n,e),n.prototype.recordUndoEntry=function(t,e){var n,o,r,s,a;return s=null!=e?e:{},o=s.context,n=s.consolidatable,r=this.undoEntries.slice(-1)[0],n&&i(r,t,o)?void 0:(a=this.createEntry({description:t,context:o}),this.undoEntries.push(a),this.redoEntries=[])},n.prototype.undo=function(){var t,e;return(e=this.undoEntries.pop())?(t=this.createEntry(e),this.redoEntries.push(t),this.composition.loadSnapshot(e.snapshot)):void 0},n.prototype.redo=function(){var t,e;return(t=this.redoEntries.pop())?(e=this.createEntry(t),this.undoEntries.push(e),this.composition.loadSnapshot(t.snapshot)):void 0},n.prototype.canUndo=function(){return this.undoEntries.length>0},n.prototype.canRedo=function(){return this.redoEntries.length>0},n.prototype.createEntry=function(t){var e,n,i;return i=null!=t?t:{},n=i.description,e=i.context,{description:null!=n?n.toString():void 0,context:JSON.stringify(e),snapshot:this.composition.getSnapshot()}},i=function(t,e,n){return(null!=t?t.description:void 0)===(null!=e?e.toString():void 0)&&(null!=t?t.context:void 0)===JSON.stringify(n)},n}(e.BasicObject)}.call(this),function(){var t;e.attachmentGalleryFilter=function(e){var n;return n=new t(e),n.perform(),n.getSnapshot()},t=function(){function t(t){this.document=t.document,this.selectedRange=t.selectedRange}var e,n,i;return e=\"attachmentGallery\",n=\"presentation\",i=\"gallery\",t.prototype.perform=function(){return this.removeBlockAttribute(),this.applyBlockAttribute()},t.prototype.getSnapshot=function(){return{document:this.document,selectedRange:this.selectedRange}},t.prototype.removeBlockAttribute=function(){var t,n,i,o,r;for(o=this.findRangesOfBlocks(),r=[],t=0,n=o.length;n>t;t++)i=o[t],r.push(this.document=this.document.removeAttributeAtRange(e,i));return r},t.prototype.applyBlockAttribute=function(){var t,n,i,o,r,s;for(i=0,r=this.findRangesOfPieces(),s=[],t=0,n=r.length;n>t;t++)o=r[t],o[1]-o[0]>1&&(o[0]+=i,o[1]+=i,\"\\n\"!==this.document.getCharacterAtPosition(o[1])&&(this.document=this.document.insertBlockBreakAtRange(o[1]),o[1]n;n++)e=t[n],this.manageAttachment(e)}return t(i,n),i.prototype.getAttachments=function(){var t,e,n,i;n=this.managedAttachments,i=[];for(e in n)t=n[e],i.push(t);return i},i.prototype.manageAttachment=function(t){var n,i;return null!=(n=this.managedAttachments)[i=t.id]?n[i]:n[i]=new e.ManagedAttachment(this,t)},i.prototype.attachmentIsManaged=function(t){return t.id in this.managedAttachments},i.prototype.requestRemovalOfAttachment=function(t){var e;return this.attachmentIsManaged(t)&&null!=(e=this.delegate)&&\"function\"==typeof e.attachmentManagerDidRequestRemovalOfAttachment?e.attachmentManagerDidRequestRemovalOfAttachment(t):void 0},i.prototype.unmanageAttachment=function(t){var e;return e=this.managedAttachments[t.id],delete this.managedAttachments[t.id],e},i}(e.BasicObject)}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h;t=e.elementContainsNode,n=e.findChildIndexOfNode,r=e.nodeIsBlockStart,s=e.nodeIsBlockStartComment,o=e.nodeIsBlockContainer,a=e.nodeIsCursorTarget,u=e.nodeIsEmptyTextNode,c=e.nodeIsTextNode,i=e.nodeIsAttachmentElement,l=e.tagName,h=e.walkTree,e.LocationMapper=function(){function e(t){this.element=t}var p,d,f,g;return e.prototype.findLocationFromContainerAndOffset=function(e,i,o){var s,u,l,p,g,m,v;for(m=(null!=o?o:{strict:!0}).strict,u=0,l=!1,p={index:0,offset:0},(s=this.findAttachmentElementParentForNode(e))&&(e=s.parentNode,i=n(s)),v=h(this.element,{usingFilter:f});v.nextNode();){if(g=v.currentNode,g===e&&c(e)){a(g)||(p.offset+=i);\nbreak}if(g.parentNode===e){if(u++===i)break}else if(!t(e,g)&&u>0)break;r(g,{strict:m})?(l&&p.index++,p.offset=0,l=!0):p.offset+=d(g)}return p},e.prototype.findContainerAndOffsetFromLocation=function(t){var e,i,s,u,l;if(0===t.index&&0===t.offset){for(e=this.element,u=0;e.firstChild;)if(e=e.firstChild,o(e)){u=1;break}return[e,u]}if(l=this.findNodeAndOffsetFromLocation(t),i=l[0],s=l[1],i){if(c(i))0===d(i)?(e=i.parentNode.parentNode,u=n(i.parentNode),a(i,{name:\"right\"})&&u++):(e=i,u=t.offset-s);else{if(e=i.parentNode,!r(i.previousSibling)&&!o(e))for(;i===e.lastChild&&(i=e,e=e.parentNode,!o(e)););u=n(i),0!==t.offset&&u++}return[e,u]}},e.prototype.findNodeAndOffsetFromLocation=function(t){var e,n,i,o,r,s,u,l;for(u=0,l=this.getSignificantNodesForIndex(t.index),n=0,i=l.length;i>n;n++){if(e=l[n],o=d(e),t.offset<=u+o)if(c(e)){if(r=e,s=u,t.offset===s&&a(r))break}else r||(r=e,s=u);if(u+=o,u>t.offset)break}return[r,s]},e.prototype.findAttachmentElementParentForNode=function(t){for(;t&&t!==this.element;){if(i(t))return t;t=t.parentNode}},e.prototype.getSignificantNodesForIndex=function(t){var e,n,i,o,r;for(i=[],r=h(this.element,{usingFilter:p}),o=!1;r.nextNode();)if(n=r.currentNode,s(n)){if(\"undefined\"!=typeof e&&null!==e?e++:e=0,e===t)o=!0;else if(o)break}else o&&i.push(n);return i},d=function(t){var e;return t.nodeType===Node.TEXT_NODE?a(t)?0:(e=t.textContent,e.length):\"br\"===l(t)||i(t)?1:0},p=function(t){return g(t)===NodeFilter.FILTER_ACCEPT?f(t):NodeFilter.FILTER_REJECT},g=function(t){return u(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},f=function(t){return i(t.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},e}()}.call(this),function(){var t,n,i=[].slice;t=e.getDOMRange,n=e.setDOMRange,e.PointMapper=function(){function e(){}return e.prototype.createDOMRangeFromPoint=function(e){var i,o,r,s,a,u,c,l;if(c=e.x,l=e.y,document.caretPositionFromPoint)return a=document.caretPositionFromPoint(c,l),r=a.offsetNode,o=a.offset,i=document.createRange(),i.setStart(r,o),i;if(document.caretRangeFromPoint)return document.caretRangeFromPoint(c,l);if(document.body.createTextRange){s=t();try{u=document.body.createTextRange(),u.moveToPoint(c,l),u.select()}catch(h){}return i=t(),n(s),i}},e.prototype.getClientRectsForDOMRange=function(t){var e,n,o;return n=i.call(t.getClientRects()),o=n[0],e=n[n.length-1],[o,e]},e}()}.call(this),function(){var t,n=function(t,e){return function(){return t.apply(e,arguments)}},i=function(t,e){function n(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},o={}.hasOwnProperty,r=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};t=e.getDOMRange,e.SelectionChangeObserver=function(e){function o(){this.run=n(this.run,this),this.update=n(this.update,this),this.selectionManagers=[]}var s;return i(o,e),o.prototype.start=function(){return this.started?void 0:(this.started=!0,\"onselectionchange\"in document?document.addEventListener(\"selectionchange\",this.update,!0):this.run())},o.prototype.stop=function(){return this.started?(this.started=!1,document.removeEventListener(\"selectionchange\",this.update,!0)):void 0},o.prototype.registerSelectionManager=function(t){return r.call(this.selectionManagers,t)<0?(this.selectionManagers.push(t),this.start()):void 0},o.prototype.unregisterSelectionManager=function(t){var e;return this.selectionManagers=function(){var n,i,o,r;for(o=this.selectionManagers,r=[],n=0,i=o.length;i>n;n++)e=o[n],e!==t&&r.push(e);return r}.call(this),0===this.selectionManagers.length?this.stop():void 0},o.prototype.notifySelectionManagersOfSelectionChange=function(){var t,e,n,i,o;for(n=this.selectionManagers,i=[],t=0,e=n.length;e>t;t++)o=n[t],i.push(o.selectionDidChange());return i},o.prototype.update=function(){var e;return e=t(),s(e,this.domRange)?void 0:(this.domRange=e,this.notifySelectionManagersOfSelectionChange())},o.prototype.reset=function(){return this.domRange=null,this.update()},o.prototype.run=function(){return this.started?(this.update(),requestAnimationFrame(this.run)):void 0},s=function(t,e){return(null!=t?t.startContainer:void 0)===(null!=e?e.startContainer:void 0)&&(null!=t?t.startOffset:void 0)===(null!=e?e.startOffset:void 0)&&(null!=t?t.endContainer:void 0)===(null!=e?e.endContainer:void 0)&&(null!=t?t.endOffset:void 0)===(null!=e?e.endOffset:void 0)},o}(e.BasicObject),null==e.selectionChangeObserver&&(e.selectionChangeObserver=new e.SelectionChangeObserver)}.call(this),function(){var t,n,i,o,r,s,a,u,c,l,h=function(t,e){return function(){return t.apply(e,arguments)}},p=function(t,e){function n(){this.constructor=t}for(var i in e)d.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},d={}.hasOwnProperty;i=e.getDOMSelection,n=e.getDOMRange,l=e.setDOMRange,t=e.elementContainsNode,s=e.nodeIsCursorTarget,r=e.innerElementIsActive,o=e.handleEvent,a=e.normalizeRange,u=e.rangeIsCollapsed,c=e.rangesAreEqual,e.SelectionManager=function(d){function f(t){this.element=t,this.selectionDidChange=h(this.selectionDidChange,this),this.didMouseDown=h(this.didMouseDown,this),this.locationMapper=new e.LocationMapper(this.element),this.pointMapper=new e.PointMapper,this.lockCount=0,o(\"mousedown\",{onElement:this.element,withCallback:this.didMouseDown})}return p(f,d),f.prototype.getLocationRange=function(t){var e,i;return null==t&&(t={}),e=t.strict===!1?this.createLocationRangeFromDOMRange(n(),{strict:!1}):t.ignoreLock?this.currentLocationRange:null!=(i=this.lockedLocationRange)?i:this.currentLocationRange},f.prototype.setLocationRange=function(t){var e;if(!this.lockedLocationRange)return t=a(t),(e=this.createDOMRangeFromLocationRange(t))?(l(e),this.updateCurrentLocationRange(t)):void 0},f.prototype.setLocationRangeFromPointRange=function(t){var e,n;return t=a(t),n=this.getLocationAtPoint(t[0]),e=this.getLocationAtPoint(t[1]),this.setLocationRange([n,e])},f.prototype.getClientRectAtLocationRange=function(t){var e;return(e=this.createDOMRangeFromLocationRange(t))?this.getClientRectsForDOMRange(e)[1]:void 0},f.prototype.locationIsCursorTarget=function(t){var e,n,i;return i=this.findNodeAndOffsetFromLocation(t),e=i[0],n=i[1],s(e)},f.prototype.lock=function(){return 0===this.lockCount++?(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange()):void 0},f.prototype.unlock=function(){var t;return 0===--this.lockCount&&(t=this.lockedLocationRange,this.lockedLocationRange=null,null!=t)?this.setLocationRange(t):void 0},f.prototype.clearSelection=function(){var t;return null!=(t=i())?t.removeAllRanges():void 0},f.prototype.selectionIsCollapsed=function(){var t;return(null!=(t=n())?t.collapsed:void 0)===!0},f.prototype.selectionIsExpanded=function(){return!this.selectionIsCollapsed()},f.prototype.createLocationRangeFromDOMRange=function(t,e){var n,i;if(null!=t&&this.domRangeWithinElement(t)&&(i=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,e)))return t.collapsed||(n=this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,e)),a([i,n])},f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"),f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"),f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"),f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"),f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"),f.prototype.didMouseDown=function(){return this.pauseTemporarily()},f.prototype.pauseTemporarily=function(){var e,n,i,r;return this.paused=!0,n=function(e){return function(){var n,o,s;for(e.paused=!1,clearTimeout(r),o=0,s=i.length;s>o;o++)n=i[o],n.destroy();return t(document,e.element)?e.selectionDidChange():void 0}}(this),r=setTimeout(n,200),i=function(){var t,i,r,s;for(r=[\"mousemove\",\"keydown\"],s=[],t=0,i=r.length;i>t;t++)e=r[t],s.push(o(e,{onElement:document,withCallback:n}));return s}()},f.prototype.selectionDidChange=function(){return this.paused||r(this.element)?void 0:this.updateCurrentLocationRange()},f.prototype.updateCurrentLocationRange=function(t){var e;return(null!=t?t:t=this.createLocationRangeFromDOMRange(n()))&&!c(t,this.currentLocationRange)?(this.currentLocationRange=t,null!=(e=this.delegate)&&\"function\"==typeof e.locationRangeDidChange?e.locationRangeDidChange(this.currentLocationRange.slice(0)):void 0):void 0},f.prototype.createDOMRangeFromLocationRange=function(t){var e,n,i,o;return i=this.findContainerAndOffsetFromLocation(t[0]),n=u(t)?i:null!=(o=this.findContainerAndOffsetFromLocation(t[1]))?o:i,null!=i&&null!=n?(e=document.createRange(),e.setStart.apply(e,i),e.setEnd.apply(e,n),e):void 0},f.prototype.getLocationAtPoint=function(t){var e,n;return(e=this.createDOMRangeFromPoint(t))&&null!=(n=this.createLocationRangeFromDOMRange(e))?n[0]:void 0},f.prototype.domRangeWithinElement=function(e){return e.collapsed?t(this.element,e.startContainer):t(this.element,e.startContainer)&&t(this.element,e.endContainer)},f}(e.BasicObject)}.call(this),function(){var t,n,i,o,r=function(t,e){function n(){this.constructor=t}for(var i in e)s.call(e,i)&&(t[i]=e[i]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},s={}.hasOwnProperty,a=[].slice;i=e.rangeIsCollapsed,o=e.rangesAreEqual,n=e.objectsAreEqual,t=e.getBlockConfig,e.EditorController=function(s){function u(t){var n,i;this.editorElement=t.editorElement,n=t.document,i=t.html,this.selectionManager=new e.SelectionManager(this.editorElement),this.selectionManager.delegate=this,this.composition=new e.Composition,this.composition.delegate=this,this.attachmentManager=new e.AttachmentManager(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=new(e[\"Level\"+e.config.input.getLevel()+\"InputController\"])(this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new e.CompositionController(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new e.ToolbarController(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new e.Editor(this.composition,this.selectionManager,this.editorElement),null!=n?this.editor.loadDocument(n):this.editor.loadHTML(i)}var c;return r(u,s),u.prototype.registerSelectionManager=function(){return e.selectionChangeObserver.registerSelectionManager(this.selectionManager)},u.prototype.unregisterSelectionManager=function(){return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager)},u.prototype.render=function(){return this.compositionController.render()},u.prototype.reparse=function(){return this.composition.replaceHTML(this.editorElement.innerHTML)},u.prototype.compositionDidChangeDocument=function(){return this.notifyEditorElement(\"document-change\"),this.handlingInput?void 0:this.render()},u.prototype.compositionDidChangeCurrentAttributes=function(t){return this.currentAttributes=t,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement(\"attributes-change\",{attributes:this.currentAttributes})},u.prototype.compositionDidPerformInsertionAtRange=function(t){return this.pasting?this.pastedRange=t:void 0},u.prototype.compositionShouldAcceptFile=function(t){return this.notifyEditorElement(\"file-accept\",{file:t})},u.prototype.compositionDidAddAttachment=function(t){var e;return e=this.attachmentManager.manageAttachment(t),this.notifyEditorElement(\"attachment-add\",{attachment:e})},u.prototype.compositionDidEditAttachment=function(t){var e;return this.compositionController.rerenderViewForObject(t),e=this.attachmentManager.manageAttachment(t),this.notifyEditorElement(\"attachment-edit\",{attachment:e}),this.notifyEditorElement(\"change\")},u.prototype.compositionDidChangeAttachmentPreviewURL=function(t){return this.compositionController.invalidateViewForObject(t),this.notifyEditorElement(\"change\")},u.prototype.compositionDidRemoveAttachment=function(t){var e;return e=this.attachmentManager.unmanageAttachment(t),this.notifyEditorElement(\"attachment-remove\",{attachment:e})},u.prototype.compositionDidStartEditingAttachment=function(t,e){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(t),this.compositionController.installAttachmentEditorForAttachment(t,e),this.selectionManager.setLocationRange(this.attachmentLocationRange)},u.prototype.compositionDidStopEditingAttachment=function(){return this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null},u.prototype.compositionDidRequestChangingSelectionToLocationRange=function(t){return!this.loadingSnapshot||this.isFocused()?(this.requestedLocationRange=t,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()):void 0},u.prototype.compositionWillLoadSnapshot=function(){return this.loadingSnapshot=!0},u.prototype.compositionDidLoadSnapshot=function(){return this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1},u.prototype.getSelectionManager=function(){return this.selectionManager},u.proxyMethod(\"getSelectionManager().setLocationRange\"),u.proxyMethod(\"getSelectionManager().getLocationRange\"),u.prototype.attachmentManagerDidRequestRemovalOfAttachment=function(t){return this.removeAttachment(t)},u.prototype.compositionControllerWillSyncDocumentView=function(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()},u.prototype.compositionControllerDidSyncDocumentView=function(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement(\"sync\")},u.prototype.compositionControllerDidRender=function(){return null!=this.requestedLocationRange&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement(\"render\")),this.renderedCompositionRevision=this.composition.revision},u.prototype.compositionControllerDidFocus=function(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement(\"focus\")},u.prototype.compositionControllerDidBlur=function(){return this.notifyEditorElement(\"blur\")},u.prototype.compositionControllerDidSelectAttachment=function(t,e){return this.toolbarController.hideDialog(),this.composition.editAttachment(t,e)},u.prototype.compositionControllerDidRequestDeselectingAttachment=function(t){var e,n;return e=null!=(n=this.attachmentLocationRange)?n:this.composition.document.getLocationRangeOfAttachment(t),this.selectionManager.setLocationRange(e[1])},u.prototype.compositionControllerWillUpdateAttachment=function(t){return this.editor.recordUndoEntry(\"Edit Attachment\",{context:t.id,consolidatable:!0})},u.prototype.compositionControllerDidRequestRemovalOfAttachment=function(t){return this.removeAttachment(t)},u.prototype.inputControllerWillHandleInput=function(){return this.handlingInput=!0,this.requestedRender=!1},u.prototype.inputControllerDidRequestRender=function(){return this.requestedRender=!0},u.prototype.inputControllerDidHandleInput=function(){return this.handlingInput=!1,this.requestedRender?(this.requestedRender=!1,this.render()):void 0},u.prototype.inputControllerDidAllowUnhandledInput=function(){return this.notifyEditorElement(\"change\")},u.prototype.inputControllerDidRequestReparse=function(){return this.reparse()},u.prototype.inputControllerWillPerformTyping=function(){return this.recordTypingUndoEntry()},u.prototype.inputControllerWillPerformFormatting=function(t){return this.recordFormattingUndoEntry(t)},u.prototype.inputControllerWillCutText=function(){return this.editor.recordUndoEntry(\"Cut\")},u.prototype.inputControllerWillPaste=function(t){return this.editor.recordUndoEntry(\"Paste\"),this.pasting=!0,this.notifyEditorElement(\"before-paste\",{paste:t})},u.prototype.inputControllerDidPaste=function(t){return t.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement(\"paste\",{paste:t})},u.prototype.inputControllerWillMoveText=function(){return this.editor.recordUndoEntry(\"Move\")},u.prototype.inputControllerWillAttachFiles=function(){return this.editor.recordUndoEntry(\"Drop Files\")},u.prototype.inputControllerWillPerformUndo=function(){return this.editor.undo()},u.prototype.inputControllerWillPerformRedo=function(){return this.editor.redo()},u.prototype.inputControllerDidReceiveKeyboardCommand=function(t){return this.toolbarController.applyKeyboardCommand(t)},u.prototype.inputControllerDidStartDrag=function(){return this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()},u.prototype.inputControllerDidReceiveDragOverPoint=function(t){return this.selectionManager.setLocationRangeFromPointRange(t)},u.prototype.inputControllerDidCancelDrag=function(){return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null},u.prototype.locationRangeDidChange=function(t){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!o(this.attachmentLocationRange,t)&&this.composition.stopEditingAttachment(),this.notifyEditorElement(\"selection-change\")},u.prototype.toolbarDidClickButton=function(){return this.getLocationRange()?void 0:this.setLocationRange({index:0,offset:0})},u.prototype.toolbarDidInvokeAction=function(t){return this.invokeAction(t)},u.prototype.toolbarDidToggleAttribute=function(t){return this.recordFormattingUndoEntry(t),this.composition.toggleCurrentAttribute(t),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},u.prototype.toolbarDidUpdateAttribute=function(t,e){return this.recordFormattingUndoEntry(t),this.composition.setCurrentAttribute(t,e),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},u.prototype.toolbarDidRemoveAttribute=function(t){return this.recordFormattingUndoEntry(t),this.composition.removeCurrentAttribute(t),this.render(),this.selectionFrozen?void 0:this.editorElement.focus()},u.prototype.toolbarWillShowDialog=function(){return this.composition.expandSelectionForEditing(),this.freezeSelection()},u.prototype.toolbarDidShowDialog=function(t){return this.notifyEditorElement(\"toolbar-dialog-show\",{dialogName:t})},u.prototype.toolbarDidHideDialog=function(t){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement(\"toolbar-dialog-hide\",{dialogName:t})},u.prototype.freezeSelection=function(){return this.selectionFrozen?void 0:(this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render())},u.prototype.thawSelection=function(){return this.selectionFrozen?(this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()):void 0},u.prototype.actions={undo:{test:function(){return this.editor.canUndo()},perform:function(){return this.editor.undo()}},redo:{test:function(){return this.editor.canRedo()},perform:function(){return this.editor.redo()}},link:{test:function(){return this.editor.canActivateAttribute(\"href\")}},increaseNestingLevel:{test:function(){return this.editor.canIncreaseNestingLevel()},perform:function(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test:function(){return this.editor.canDecreaseNestingLevel()},perform:function(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:function(){return!0},perform:function(){return e.config.input.pickFiles(this.editor.insertFiles)}}},u.prototype.canInvokeAction=function(t){var e,n;return this.actionIsExternal(t)?!0:!!(null!=(e=this.actions[t])&&null!=(n=e.test)?n.call(this):void 0)},u.prototype.invokeAction=function(t){var e,n;return this.actionIsExternal(t)?this.notifyEditorElement(\"action-invoke\",{actionName:t}):null!=(e=this.actions[t])&&null!=(n=e.perform)?n.call(this):void 0},u.prototype.actionIsExternal=function(t){return/^x-./.test(t)},u.prototype.getCurrentActions=function(){var t,e;e={};for(t in this.actions)e[t]=this.canInvokeAction(t);return e},u.prototype.updateCurrentActions=function(){var t;return t=this.getCurrentActions(),n(t,this.currentActions)?void 0:(this.currentActions=t,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement(\"actions-change\",{actions:this.currentActions}))},u.prototype.runEditorFilters=function(){var t,e,n,i,o,r,s,a;for(a=this.composition.getSnapshot(),o=this.editor.filters,n=0,i=o.length;i>n;n++)e=o[n],t=a.document,s=a.selectedRange,a=null!=(r=e.call(this.editor,a))?r:{},null==a.document&&(a.document=t),null==a.selectedRange&&(a.selectedRange=s);return c(a,this.composition.getSnapshot())?void 0:this.composition.loadSnapshot(a)},c=function(t,e){return o(t.selectedRange,e.selectedRange)&&t.document.isEqualTo(e.document)},u.prototype.updateInputElement=function(){var t,n;return t=this.compositionController.getSerializableElement(),n=e.serializeToContentType(t,\"text/html\"),this.editorElement.setInputElementValue(n)},u.prototype.notifyEditorElement=function(t,e){switch(t){case\"document-change\":this.documentChangedSinceLastRender=!0;break;case\"render\":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement(\"change\"));break;case\"change\":case\"attachment-add\":case\"attachment-edit\":case\"attachment-remove\":this.updateInputElement()}return this.editorElement.notify(t,e)},u.prototype.removeAttachment=function(t){return this.editor.recordUndoEntry(\"Delete Attachment\"),this.composition.removeAttachment(t),this.render()},u.prototype.recordFormattingUndoEntry=function(e){var n,o;return n=t(e),o=this.selectionManager.getLocationRange(),n||!i(o)?this.editor.recordUndoEntry(\"Formatting\",{context:this.getUndoContext(),consolidatable:!0}):void 0},u.prototype.recordTypingUndoEntry=function(){return this.editor.recordUndoEntry(\"Typing\",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})},u.prototype.getUndoContext=function(){var t;return t=1<=arguments.length?a.call(arguments,0):[],[this.getLocationContext(),this.getTimeContext()].concat(a.call(t))},u.prototype.getLocationContext=function(){var t;return t=this.selectionManager.getLocationRange(),i(t)?t[0].index:t},u.prototype.getTimeContext=function(){return e.config.undoInterval>0?Math.floor((new Date).getTime()/e.config.undoInterval):0},u.prototype.isFocused=function(){var t;return this.editorElement===(null!=(t=this.editorElement.ownerDocument)?t.activeElement:void 0)},u.prototype.isFocusedInvisibly=function(){return this.isFocused()&&!this.getLocationRange()},u}(e.Controller)}.call(this),function(){var t,n,i,o,r,s,a,u=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};n=e.browser,s=e.makeElement,a=e.triggerEvent,o=e.handleEvent,r=e.handleEventOnce,i=e.findClosestElementFromNode,t=e.AttachmentView.attachmentSelector,e.registerElement(\"trix-editor\",function(){var c,l,h,p,d,f,g,m,v;return g=0,l=function(t){return!document.querySelector(\":focus\")&&t.hasAttribute(\"autofocus\")&&document.querySelector(\"[autofocus]\")===t?t.focus():void 0},m=function(t){return t.hasAttribute(\"contenteditable\")?void 0:(t.setAttribute(\"contenteditable\",\"\"),r(\"focus\",{onElement:t,withCallback:function(){return h(t)}}))},h=function(t){return d(t),v(t)},d=function(t){return(\"function\"==typeof document.queryCommandSupported?document.queryCommandSupported(\"enableObjectResizing\"):void 0)?(document.execCommand(\"enableObjectResizing\",!1,!1),o(\"mscontrolselect\",{onElement:t,preventDefault:!0})):void 0},v=function(){var t;return(\"function\"==typeof document.queryCommandSupported?document.queryCommandSupported(\"DefaultParagraphSeparator\"):void 0)&&(t=e.config.blockAttributes[\"default\"].tagName,\"div\"===t||\"p\"===t)?document.execCommand(\"DefaultParagraphSeparator\",!1,t):void 0},c=function(t){return t.hasAttribute(\"role\")?void 0:t.setAttribute(\"role\",\"textbox\")},f=function(t){var e;if(!t.hasAttribute(\"aria-label\")&&!t.hasAttribute(\"aria-labelledby\"))return(e=function(){var e,n,i;return i=function(){var n,i,o,r;for(o=t.labels,r=[],n=0,i=o.length;i>n;n++)e=o[n],e.contains(t)||r.push(e.textContent);return r}(),(n=i.join(\" \"))?t.setAttribute(\"aria-label\",n):t.removeAttribute(\"aria-label\")})(),o(\"focus\",{onElement:t,withCallback:e})},p=function(){return n.forcesObjectResizing?{display:\"inline\",width:\"auto\"}:{display:\"inline-block\",width:\"1px\"}}(),{defaultCSS:\"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \"+t+\" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \"+t+\" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \"+t+\" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \"+p.display+\" !important;\\n width: \"+p.width+\" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",trixId:{get:function(){return this.hasAttribute(\"trix-id\")?this.getAttribute(\"trix-id\"):(this.setAttribute(\"trix-id\",++g),this.trixId)}},labels:{get:function(){var t,e,n;return e=[],this.id&&this.ownerDocument&&e.push.apply(e,this.ownerDocument.querySelectorAll(\"label[for='\"+this.id+\"']\")),(t=i(this,{matchingSelector:\"label\"}))&&((n=t.control)===this||null===n)&&e.push(t),e}},toolbarElement:{get:function(){var t,e,n;return this.hasAttribute(\"toolbar\")?null!=(e=this.ownerDocument)?e.getElementById(this.getAttribute(\"toolbar\")):void 0:this.parentNode?(n=\"trix-toolbar-\"+this.trixId,this.setAttribute(\"toolbar\",n),t=s(\"trix-toolbar\",{id:n}),this.parentNode.insertBefore(t,this),t):void 0}},inputElement:{get:function(){var t,e,n;return this.hasAttribute(\"input\")?null!=(n=this.ownerDocument)?n.getElementById(this.getAttribute(\"input\")):void 0:this.parentNode?(e=\"trix-input-\"+this.trixId,this.setAttribute(\"input\",e),t=s(\"input\",{type:\"hidden\",id:e}),this.parentNode.insertBefore(t,this.nextElementSibling),t):void 0}},editor:{get:function(){var t;return null!=(t=this.editorController)?t.editor:void 0}},name:{get:function(){var t;return null!=(t=this.inputElement)?t.name:void 0}},value:{get:function(){var t;return null!=(t=this.inputElement)?t.value:void 0},set:function(t){var e;return this.defaultValue=t,null!=(e=this.editor)?e.loadHTML(this.defaultValue):void 0}},notify:function(t,e){return this.editorController?a(\"trix-\"+t,{onElement:this,attributes:e}):void 0},setInputElementValue:function(t){var e;return null!=(e=this.inputElement)?e.value=t:void 0},initialize:function(){return this.hasAttribute(\"data-trix-internal\")?void 0:(m(this),c(this),f(this))},connect:function(){return this.hasAttribute(\"data-trix-internal\")?void 0:(this.editorController||(a(\"trix-before-initialize\",{onElement:this}),this.editorController=new e.EditorController({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame(function(t){return function(){return a(\"trix-initialize\",{onElement:t})}}(this))),this.editorController.registerSelectionManager(),this.registerResetListener(),this.registerClickListener(),l(this))},disconnect:function(){var t;return null!=(t=this.editorController)&&t.unregisterSelectionManager(),this.unregisterResetListener(),this.unregisterClickListener()},registerResetListener:function(){return this.resetListener=this.resetBubbled.bind(this),window.addEventListener(\"reset\",this.resetListener,!1)},unregisterResetListener:function(){return window.removeEventListener(\"reset\",this.resetListener,!1)},registerClickListener:function(){return this.clickListener=this.clickBubbled.bind(this),window.addEventListener(\"click\",this.clickListener,!1)},unregisterClickListener:function(){return window.removeEventListener(\"click\",this.clickListener,!1)},resetBubbled:function(t){var e;if(!t.defaultPrevented&&t.target===(null!=(e=this.inputElement)?e.form:void 0))return this.reset()},clickBubbled:function(t){var e;if(!(t.defaultPrevented||this.contains(t.target)||!(e=i(t.target,{matchingSelector:\"label\"}))||u.call(this.labels,e)<0))return this.focus()},reset:function(){return this.value=this.defaultValue}}}())}.call(this),function(){}.call(this)}).call(this),\"object\"==typeof module&&module.exports?module.exports=e:\"function\"==typeof define&&define.amd&&define(e)}.call(this);","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { DirectUpload } from \"@rails/activestorage\"\n\nexport class AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment\n this.element = element\n this.directUpload = new DirectUpload(attachment.file, this.directUploadUrl, this)\n }\n\n start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this))\n }\n\n directUploadWillStoreFileWithXHR(xhr) {\n xhr.upload.addEventListener(\"progress\", event => {\n const progress = event.loaded / event.total * 100\n this.attachment.setUploadProgress(progress)\n })\n }\n\n directUploadDidComplete(error, attributes) {\n if (error) {\n throw new Error(`Direct upload failed: ${error}`)\n }\n\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n })\n }\n\n createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate\n .replace(\":signed_id\", signedId)\n .replace(\":filename\", encodeURIComponent(filename))\n }\n\n get directUploadUrl() {\n return this.element.dataset.directUploadUrl\n }\n\n get blobUrlTemplate() {\n return this.element.dataset.blobUrlTemplate\n }\n}\n","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_include_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\nimport mixpanel from \"./helpers/mixpanel\";\nimport \"./controllers\";\n//= require_tree ./helpers\nimport \"trix\";\nimport \"@rails/actiontext\";\n\nfunction trackClick(selector, eventName) {\n const elements = document.querySelectorAll(selector);\n elements.forEach((element) => {\n element.addEventListener(\"click\", () => {\n mixpanel.track(eventName);\n });\n });\n}\n\n// Track specific selectors\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n // Track hogaru landing page quote button\n // stimulus file app/javascript/controllers/public_pages/home/show_services_controller.js and app/views/public_pages/home/_new_landing_hogaru.html.slim view\n\n // Track Services cards\n trackClick(\".track-card-limpia\", \"track-select-limpia-quote\");\n trackClick(\".track-card-aporta\", \"track-select-aporta-quote\");\n\n // Track Hogarú landing cards\n trackClick(\".track-home-card-limpia\", \"track-card-limpia-quote\");\n trackClick(\".track-home-card-aporta\", \"track-card-aporta-quote\");\n\n // Track cleaning landing page quote button\n // Stimulus file app/javascript/controllers/public_pages/cleaning/landing_cleaning_controller.js and app/views/public_pages/cleaning/_new_landing_cleaning.html.slim view\n\n //track boton registrarse ambos a/b test\n trackClick(\n \".track-back-button-register\",\n \"track-back-button-register-limpia\"\n );\n trackClick(\n \".track-back-button-companies-register\",\n \"track-back-button-companies-register\"\n );\n // Track welcome client cards\n trackClick(\"#track-welcome-card-limpia\", \"track-welcome-card-limpia\");\n trackClick(\"#track-welcome-card-aporta\", \"track-welcome-card-aporta\");\n trackClick(\"#track-welcome-card-encuentra\", \"track-welcome-card-encuentra\");\n\n //track quote version\n trackClick(\".track-occasional\", \"track-occasional-option-frecuency\");\n trackClick(\".track-once-a-week\", \"track-once-a-week-option-frecuency\");\n trackClick(\".track-biweekly\", \"track-biwwekly-option-frecuency\");\n trackClick(\n \".track-occasional-companies\",\n \"track-companies-occasional-option-frecuency\"\n );\n trackClick(\n \".track-once-a-week-companies\",\n \"track-companies-once-a-week-option-frecuency\"\n );\n trackClick(\n \".track-biweekly-companies\",\n \"track-companies-biweekly-option-frecuency\"\n );\n //trackClick(\".track-button-frecuency\", \"track-continue-button-frecuency\"); Stimulus\n trackClick(\".track-back-button-frecuency\", \"track-back-button-frecuency\");\n trackClick(\n \".track-back-button-companies-frecuency\",\n \"track-back-button-companies-frecuency\"\n );\n //track shifts quote single version\n trackClick(\".track-m-single\", \"track-single-morning-option-shift\");\n trackClick(\".track-t-single\", \"track-single-afternoon-option-shift\");\n trackClick(\".track-c-single\", \"track-single-complete-option-shift\");\n trackClick(\n \".track-continue-single-shift\",\n \"track-continue-button-shift-single\"\n );\n trackClick(\".track-back-single-shift\", \"track-back-button-shift-single\");\n trackClick(\n \".track-m-companies-single\",\n \"track-single-morning-companies-option-shift\"\n );\n trackClick(\n \".track-t-companies-single\",\n \"track-single-afternoon-companies-option-shift\"\n );\n trackClick(\n \".track-c-companies-single\",\n \"track-single-complete-companies-option-shift\"\n );\n trackClick(\n \".track-back-companies-single-shift\",\n \"track-back-companies-single-shift\"\n );\n //trackClick(\".track-continue-button-calendar-single\", \"track-continue-button-calendar-single\"); stimulus\n trackClick(\n \".track-back-button-calendar-single\",\n \"track-back-button-calendar-single\"\n );\n trackClick(\n \".track-back-button-companies-calendar-single\",\n \"track-back-button-companies-calendar-single\"\n );\n trackClick(\n \".track-button-continue-summary-single\",\n \"track-button-continue-summary-single\"\n );\n trackClick(\n \".track-button-companies-continue-summary-single\",\n \"track-button-companies-continue-summary-single\"\n );\n trackClick(\n \".track-button-back-summary-single\",\n \"track-button-back-summary-single\"\n );\n trackClick(\n \".track-button-companies-back-summary-single\",\n \"track-button-companies-back-summary-single\"\n );\n //track recurrency quote version\n trackClick(\".track-discout-button\", \"track-discount-button\");\n trackClick(\n \".track-companies-discout-button\",\n \"track-companies-discount-button\"\n );\n trackClick(\".track-m\", \"track-morning-option-shift\");\n trackClick(\".track-t\", \"track-afternoon-option-shift\");\n trackClick(\".track-c\", \"track-complete-option-shift\");\n trackClick(\".track-companies-m\", \"track-morning-companies-option-shift\");\n trackClick(\".track-companies-t\", \"track-afternoon-companies-option-shift\");\n trackClick(\".track-companies-c\", \"track-complete-companies-option-shift\");\n //trackClick(\".track-button-continue-shifts\", \"track-continue-button-shift\"); Stimulus\n trackClick(\".track-button-back-shifts\", \"track-back-button-shift\");\n trackClick(\n \".track-companies-button-back-shifts\",\n \"track-companies-button-back-shifts\"\n );\n trackClick(\".quote-box-day-1\", \"track-monday-option-schedule\");\n trackClick(\".quote-box-day-2\", \"track-tuesday-option-schedule\");\n trackClick(\".quote-box-day-3\", \"track-wednesday-option-schedule\");\n trackClick(\".quote-box-day-4\", \"track-thursday-option-schedule\");\n trackClick(\".quote-box-day-5\", \"track-friday-option-schedule\");\n trackClick(\".quote-box-day-6\", \"track-saturday-option-schedule\");\n\n trackClick(\n \".companies-quote-box-day-1\",\n \"track-monday-companies-option-schedule\"\n );\n trackClick(\n \".companies-quote-box-day-2\",\n \"track-tuesday-companies-option-schedule\"\n );\n trackClick(\n \".companies-quote-box-day-3\",\n \"track-wednesday-companies-option-schedule\"\n );\n trackClick(\n \".companies-quote-box-day-4\",\n \"track-thursday-companies-option-schedule\"\n );\n trackClick(\n \".companies-quote-box-day-5\",\n \"track-friday-companies-option-schedule\"\n );\n trackClick(\n \".companies-quote-box-day-6\",\n \"track-saturday-companies-option-schedule\"\n );\n //trackClick(\".track-continue-button-schedule\", \"track-continue-button-schedule\"); stimulus\n trackClick(\".track-back-button-schedule\", \"track-back-button-schedule\");\n trackClick(\n \".track-back-companies-button-schedule\",\n \"track-back-companies-button-schedule\"\n );\n trackClick(\".track-change-plan\", \"track-button-change-plan\");\n trackClick(\".track-not-interested\", \"track-button-not-interested\");\n trackClick(\n \".track-companies-change-plan\",\n \"track-companies-button-change-plan\"\n );\n trackClick(\n \".track-companies-not-interested\",\n \"track-companies-button-not-interested\"\n );\n trackClick(\n \".track-back-recurrency-schedule\",\n \"track-back-recurrency-schedule\"\n );\n trackClick(\n \".track-back-companies-recurrency-schedule\",\n \"track-back-companies-recurrency-schedule\"\n );\n trackClick(\n \".track-continue-recurrency-schedule\",\n \"track-recurrency-schedule\"\n );\n trackClick(\n \".track-companies-continue-recurrency-schedule\",\n \"track-companies-continue-recurrency-schedule\"\n );\n //track sign up version\n trackClick(\n \".track-client-occasional\",\n \"track-occasional-option-frecuency-signup\"\n );\n trackClick(\n \".track-client-once-a-week\",\n \"track-once-a-week-option-frecuency-signup\"\n );\n trackClick(\n \".track-client-biweekly\",\n \"track-biweekly-option-frecuency-signup\"\n );\n //trackClick(\".track-button-client-frecuency\", \"track-continue-button-frecuency-signup\"); Stimulus\n trackClick(\n \".track-back-button-client-frecuency\",\n \"track-back-button-frecuency-signup\"\n );\n //track single service client version\n trackClick(\n \".track-m-client-single\",\n \"track-single-client-morning-option-shift-signup\"\n );\n trackClick(\n \".track-t-client-single\",\n \"track-single-client-afternoon-option-shift-signup\"\n );\n trackClick(\n \".track-c-client-single\",\n \"track-single-client-complete-option-shift-signup\"\n );\n //trackClick(\".track-continue-single-client-shift\", \"track-continue-button-shift-single-signup\"); Stimulus\n trackClick(\n \".track-back-single-client-shift\",\n \"track-back-button-shift-single-signup\"\n );\n trackClick(\n \".track-continue-button-calendar-single-signup\",\n \"track-continue-button-calendar-single-signup\"\n );\n trackClick(\n \".track-back-button-calendar-single-signup\",\n \"track-back-button-calendar-single-signup\"\n );\n trackClick(\n \".track-button-continue-summary-single-client\",\n \"track-button-continue-summary-single-signup\"\n );\n trackClick(\n \".track-button-back-summary-single-client\",\n \"track-button-back-summary-single-signup\"\n );\n //track recurrency client version\n trackClick(\".track-m-client\", \"track-morning-option-shift-signup\");\n trackClick(\".track-t-client\", \"track-afternoon-option-shift-signup\");\n trackClick(\".track-c-client\", \"track-complete-option-shift-signup\");\n //trackClick(\".track-button-client-shifts\",\"track-continue-button-shift-signup\"); Stimulus\n trackClick(\n \".track-back-button-client-shifts\",\n \"track-back-button-shift-signup\"\n );\n trackClick(\".client-box-day-1\", \"track-monday-option-schedule-signup\");\n trackClick(\".client-box-day-2\", \"track-tuesday-option-schedule-signup\");\n trackClick(\".client-box-day-3\", \"track-wednesday-option-schedule-signup\");\n trackClick(\".client-box-day-4\", \"track-thursday-option-schedule-signup\");\n trackClick(\".client-box-day-5\", \"track-friday-option-schedule-signup\");\n trackClick(\".client-box-day-6\", \"track-saturday-option-schedule-signup\");\n //trackClick(\".track-button-client-schedule\",\"track-continue-recurrency-schedule-signup\"); Stimulus\n trackClick(\n \".track-back-client-schedule\",\n \"track-back-recurrency-schedule-signup\"\n );\n trackClick(\n \".track-button-back-schedule-client\",\n \"track-button-back-schedule-client\"\n );\n trackClick(\n \".track-button-continue-summary-client\",\n \"track-button-continue-summary-client\"\n ); // Stimulus\n //track next billing\n trackClick(\".track-next-billing\", \"track-next-billing\");\n\n //Track Elisa landing page\n trackClick(\".track-start-affiliation-top\", \"track-start-affiliation-top\");\n trackClick(\n \".track-start-affiliation-bottom\",\n \"track-start-affiliation-bottom\"\n );\n trackClick(\".track-free-consulting-top\", \"track-free-consulting-top\");\n trackClick(\".track-free-consulting-bottom\", \"track-free-consulting-bottom\");\n});\n","import { AttachmentUpload } from \"./attachment_upload\"\n\naddEventListener(\"trix-attachment-add\", event => {\n const { attachment, target } = event\n\n if (attachment.file) {\n const upload = new AttachmentUpload(attachment, target)\n upload.start()\n }\n})\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","fn","sparkMd5","undefined","hex_chr","md5cycle","x","k","a","b","c","d","md5blk","s","i","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","n","state","substring","toString","match","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","result","byteLength","set","buffer","hexToBinaryString","bytes","push","substr","SparkMD5","this","reset","prototype","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","content","call","factory","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","value","callback","create","_this","md5Buffer","fileReader","FileReader","addEventListener","event","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","name","start","readAsArrayBuffer","findElement","root","selector","document","querySelector","dispatchEvent","element","type","eventInit","arguments","disabled","bubbles","cancelable","detail","createEvent","initEvent","toArray$1","Array","isArray","BlobRecord","checksum","url","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","head","getAttribute","getMetaValue","requestDidLoad","requestDidError","send","JSON","stringify","blob","status","response","direct_upload","directUploadData","toJSON","get","_xhr","parse","BlobUpload","_blob$directUploadDat","headers","DirectUpload","delegate","error","notify","upload","object","methodName","_len","messages","_key","DirectUploadController","input","directUpload","dispatch","hiddenInput","createElement","insertAdjacentElement","parentNode","removeChild","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","_this2","uploadRequestDidProgress","DirectUploadsController","form","inputs","querySelectorAll","filter","files","controllers","createDirectUploadControllers","startNextController","controller","shift","forEach","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","button","focus","click","style","display","appendChild","submitForm","setTimeout","window","ActiveStorage","calendarLibrary","run","dateElementId","$","removeClass","addClass","newDate","data","newPrice","sameTier","empty","nextElementSibling","classList","contains","remove","Controller","initialize","geocoder","google","maps","Geocoder","autocomplete","city_bounds","connect","setGeocomplete","geocomplete_name","address_body","city_name","split","prop","geocode","address","componentRestrictions","country","results","geometry","flashAlert","bounds","north_east","getNorthEast","south_west","getSouthWest","default_bounds","north","lat","south","east","lng","west","LatLngBounds","LatLng","getElementById","clearInstanceListeners","initializeAutocomplete","options","fields","strictBounds","places","Autocomplete","addListener","handlePlaceChanged","bind","place","getPlace","place_id","help_text_html","add","insertAdjacentHTML","placeId","then","_ref","location","formatted_address","latitude","longitude","text","markerIconPath","dataset","icon","geocomplete","mapOptions","zoom","markerOptions","draggable","details","detailsAttribute","latLng","_ref2","catch","last_valid_position","setPosition","trigger","_Class","documentNumberInputTarget","rules","documentNumber","number","documentTypeSelectTarget","vDigitFieldTarget","vDigitInputTarget","required","vDigit","showVDigitField","closeModal","modalClientRegisteredTarget","submitButtonTarget","validateDocumentNumber","document_number","v_digit","document_type","request","fetch","method","json","createServicesFormTarget","Event","targets","total_price","total_days","cleaning_discount","new_days","sendSummaryPage","message","pointerEvents","HelperText","hasRecurrencyValue","redirectToSummaryPage","showModalBetterPlan","selectDays","checkboxInput","currentTarget","dayValue","checkboxDay","checked","day","getAvgPriceCombination","checkAvailability","buttonNextPageTarget","help_text","enableButton","removeHelpText","formatted_days","sort","should_disable_button","combinationAvailableValue","checkRecurrencyAvailabilityValue","toggle","disableButton","addHelpText","helpText","removeLoader","lastBox","filtered_prices","pricesValue","toggleTotalPriceCard","totalPriceTarget","innerHTML","referencePriceTarget","closeModalBetterPlan","modalBetterPlanTarget","formatted_total_days","total_days_string","showModalShowDiscount","week_days","smallest_promotional_price","smallest_key","promotional_price","_pricesValue$smallest","price","reference_price","description","modalBetterPlanreferencePriceTarget","formattedPrice","modalBetterPlanTotalPriceTarget","modalBetterPlanDescriptionTarget","notInterested","modalShowDiscountTarget","acceptBetterPlan","box","checkbox_day","closeModalShowDiscount","cleaningFrequencyTarget","total_promotional_price","formatted_promotional_price","total_reference_price","cleaning_frequency","cleaning_intensity","cleaningIntensityTarget","summary_service_url","summaryServiceUrlValue","address_id","hasAddressIdTarget","addressIdTarget","mixpanel","track","Turbolinks","clearCache","visit","action","values","prices","combinationAvailable","checkRecurrencyAvailability","Number","summaryServiceUrl","hasRecurrency","Boolean","cleaning_service_date","cleaningServiceDateTarget","summary_url","summaryUrlValue","summaryUrl","selectIntensity","boxSingleServiceTargets","radioInput","removeHelperText","_this$durationValue$t","durationValue","hours","minutes","HelperTextForServiceDuration","sendSchedulePage","schedule_service_url","scheduleServiceUrlValue","mixpanelEventName","scheduleServiceUrl","duration","totalPriceMonth","startDateTarget","showModifyPlanModal","modifyPlanModalTarget","modifyPlan","buttonsContainer","modifyPlanButtonsContainerTarget","height","history","replaceState","modifyPlanFormTarget","showModal","editDateModalTarget","toggleClassBoxSelected","selectStartDate","date_elements","abbreviated_day","textContent","day_number","month_name","optionalStartDateTarget","confirmDate","BoxSelectStartDateTargets","start_date","business_days","businessDaysValue","cleaning_total_days","totalDaysArrayTarget","cleaning_total_price","cleaningTotalPriceTarget","cleaning_has_discount","cleaningHasDiscountTarget","format_start_date","Date","format_total_days","last_day_month","getFullYear","getMonth","total_services","type_of_week","typeOfWeek","frequency","date_to_string","toISOString","includes","getDay","setDate","getDate","total_price_per_month","formatted_total_price_per_month","boxTotalMonthTarget","date","floor","getTime","sendToFillInfo","billingInfoFormTarget","submit","businessDays","sendWorkDayPage","single_service_url","singleServiceUrlValue","services_url","servicesUrlValue","boxCleaningTargets","selectFrequency","singleServiceUrl","servicesUrl","priceSubscriptionValue","selectBox","checkbox","check_icon","priceSubscription","editCesantiasEntity","edit_form","add_form","cesantia_entity_label","pay_cesantias_button","educationLevels","toggleRequiredDegreeField","educationLevelTarget","updateRequiredDegreeField","education_level","requiredDegreeFieldTarget","requiredDegreeInputTarget","validateForm","inputTargets","toggleForm","validateVerificationDigitInput","first_name","last_name","company_name","contact_name","verification_digit","update_form_visibility","firstNameInputTarget","lastNameInputTarget","legalRepresentativeContainerTarget","nitInputTargets","legalRepresentativeInputTargets","has_empty_inputs","inputIsDanger","toggleIcons","iconId","index","formValue","form_create_address","form_edit_address","addressesValue","validateRadioButtons","toggleFormCreateAddress","toggleFormEditAddress","radio_buttons","getElementsByName","radio_button","button_return","addresses","baseSalary","maxWorkHours","monthlySalaryQuestion","dailySalaryQuestion","salaryNote","salaryError","calculateSalaryBasedOnTime","selectedBaseSalary","entryHour","exitHour","some","validateHours","validateSalary","setHours","entryHourTarget","entry_hour","exitHourTarget","exit_hour","parseFloat","salary","validateMinimumSalary","inputSalaryTarget","checked_checkboxes","calculateHour","difference","calculateSalary","timeString","_timeString$split2","days","is_full_time","is_monthly","salary_key","labelSalaryTarget","minimumSalariesValue","internEmployeeContainerTarget","internEmployeeTrueTarget","internEmployeeFalseTarget","is_intern","noteSalaryTarget","className","minimumSalaries","uncheckBoxes","boxes","otherBox","checkFormsStatus","addValidations","each","validate","focusCleanup","email","validateEmail","colCellphone","findFinancialInstitutions","disablePse","financialInstitutionCodesValue","financialInstEndpoint","loggedUserValue","clientIdValue","ok","isPseDisabledValue","enablePse","options_html","info","financialInstitutionSelectValue","pendingTransactionValue","paymentFormTarget","pendingTxMessageTarget","pseContainerPartialValue","showPaymentForm","incomingContainer","params","container","currentContainerValue","checkPendingTxStatus","pendingTransactionUuidValue","updateEndpoint","pendingTxButtonTarget","reload","resetEncryptedInformation","encryptInformation","encrypt","JSEncrypt","setPublicKey","gon","public_key","validator","creditCardFormTarget","invalid","encryptInputTargets","unencrypted","encryptionPerformed","encrypted","disableSubmitButtons","submitButtonTargets","enableSubmitButtons","pendingTransactionUuidValueChanged","previousValue","pendingTransactionValueChanged","validateFormInfo","isNotValid","preloaderTarget","currentContainer","financialInstitutionCodes","pseContainerPartial","default","pseFormPartial","isPseDisabled","financialInstitutionSelect","pendingTransaction","pendingTransactionUuid","loggedUser","clientId","cardNumberInputTarget","creditCardNumber","holderNameInput","cardNumberInput","monthInput","yearInput","cvvInput","changeNumber","cursorPosition","selectionStart","currentInput","replace","cardNumberValue","deleteFranchiseLogo","lastCardNumber","delta","selectionEnd","cardNumber","findCardNumberFormat","franchiseCard","findFranchiseLogo","franchiseValue","newCardNumber","finalPosition","findFinalPosition","inputType","lastNumber","currentNumber","currentPosition","_lastNumber","_currentNumber","arrayRegEx","visa","master","amex","diners","brand","visaMasterIndexes","indexes","franchise","trim","changeHolderName","holderNameInputTarget","holderNameValue","capitalizedName","toUpperCase","changeMonthYear","year","yearInputTarget","month","monthInputTarget","validMonthYear","monthYearValue","current_date","current_year","expiration_date","changeCvv","cvvValue","cvvInputTarget","showCardBacksided","cardFlipperTarget","hideCardBacksided","cardNumberValueChanged","cardNumberTarget","holderNameValueChanged","holderNameTarget","monthYearValueChanged","monthYearTarget","cvvValueChanged","cvvTarget","cvvAmexTarget","franchiseValueChanged","franchiseLogoTarget","cardContainerTargets","hideCreditCardForm","holderName","monthYear","cvv","copy","phoneNumber","tempInput","body","select","execCommand","inputAlert","changeDate","toLocaleDateString","timeZone","dateTarget","changeDuration","isNaN","durationTarget","toFixed","validateDate","validateEntryHour","validateExitHour","validateValue","validateDuration","update_form","documentTypeTarget","firstNameContainerTarget","lastNameContainerTarget","ccDocTypeInputTargets","nitDocTypeContainerTargets","nitDocTypeInputTargets","bothDocTypeInputTargets","registerPayment","invoice","saveSiigoId","siigo_id","paidValue","saveSiigoComprobante","siigo_comprobante","paid","assignEmployee","employee","service_date","checkDate","checkHour","entry_hour_value","exit_hour_value","educationStatusTarget","endDateContainerTarget","educationStatusChange","endDateMonthTarget","endDateYearTarget","validateData","education_status","end_date_month","end_date_year","start_date_month","startDateMonthTarget","start_date_year","startDateYearTarget","ConsumerChannel","constructor","meta_element","consumer","ActionCable","createConsumer","console","log","channel_name","app","subscriptions","channel","grace_employee_id","employeeIdValue","connected","disconnected","rejected","received","message_sent_count","disconnect","unsubscribe","employeeId","selectAllEmployees","selectEmployeeTargets","addressInputTargets","SlimSelect","settings","placeholder","placeholderText","searchPlaceholder","searchText","changeForm","toLowerCase","time_fields","generateAlert","_slicedToArray","_timeString$split4","search","emailTarget","searchClient","cancel","path","new_client","formNewClientTarget","clientCardTarget","importClientTarget","viewProfileTarget","acceptTermsTarget","createAcceptTermsTarget","clientNameTarget","full_name","clientPhoneTarget","phone_number","business_line","grace_employer_id","businessLineGrace","otherBusinessLine","clientAlertTarget","clientBusinessLineTarget","new_url","viewProfileColumnTarget","importClientColumnTarget","confirmCreateEmployerTarget","acceptTerms","experienceYearsTarget","toggleContainerClassTargets","workExperienceChange","input_targets","previousJobDescriptionTarget","previousJobPositionTarget","locationTarget","previousJobStartDateTarget","previousJobEndDateTarget","experience_years","skills_description","skillsDescriptionTarget","allowDeselect","deselectLabel","toggleBoxButton","uncheckTargets","noneCompanyTarget","companyTargets","noneTaskTarget","taskTargets","box_button","getElementsByClassName","checkboxes_companies","checkboxes_tasks","checked_companies","checked_tasks","container_flash","flash_html","msg","requestValidation","help_message","updateInputStatus","isValid","helpMessage","after","checkboxes_days","checkboxes_preferences","checked_days","checked_preferences","closable","hideSelected","application","Application","context","require","load","identifier","logicalName","identifierForContextKey","controllerConstructor","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","initializeAutoComplete","_initializeAutoComplete","autoCompleteFieldTarget","types","updateProgressBar","innerWidth","progressValueTarget","left","progressBarTarget","valid","validateClientExists","validate_client_path","validatePathValue","phoneNumberFieldTarget","emailFieldTarget","createClientFormTarget","validatePath","sendWorkdayPage","city","cityFriendlyNameTarget","href","sendWorkFrequency","cityTarget","selectCityFormTarget","star_header","city_friendly_name","getAvailableDays","urlValue","city_id","cityIdValue","shiftValue","highlightDayAndMonth","day_selected","start_month","getUTCMonth","cityId","modalEditDateTarget","has_city","city_select","calculateAmount","elisaAmountTarget","elisa_work_total_days","elisaWorkTotalDaysTarget","elisa_intensity","elisaIntensityTarget","elisa_amount","elisaAmountConstantValue","elisaAmountConstant","sendWorkTimePage","boxElisaWorkTimeTargets","toggleInfoVisibility","clicked_label","target_info","targetInfo","target_info_box","birthday","birthday_input","birthday_container","validateBirthday","checkBirthday","redirectToEmployerRegister","slick","dots","infinite","slidesToShow","slidesToScroll","autoplay","autoplaySpeed","responsive","breakpoint","is_mobile","navigator","userAgent","openPosition","events","searchFilter","option","normalize_text","normalize","slim_select","dropdown","item","listbox","showServices","showCards","cards","cardsTarget","card","openSideBar","sideBarTarget","width","mainTarget","position","bodyTarget","minHeight","opacity","backgroundColor","navbarTarget","hasHomeFooterTarget","homeFooterTarget","zIndex","hasCircleHeaderTarget","circleHeaderTarget","hasStarHeaderTarget","starHeaderTarget","closeSideBar","checkSideBar","hasSideBarTarget","input_alert","modifier","children","firstChild","toLocaleString","currency","minimumFractionDigits","maximumFractionDigits","fontSize","warning","success","helpClass","loaderClass","_regeneratorRuntime","t","r","hasOwnProperty","Symbol","iterator","asyncIterator","u","toStringTag","define","wrap","Generator","Context","makeInvokeMethod","tryCatch","arg","h","l","f","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","delegateYield","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_createForOfIteratorHelper","_n2","F","_classCallCheck","_defineProperties","_toPropertyKey","_createClass","toPrimitive","_toPrimitive","NodeType","isShadowRoot","host","shadowRoot","isNativeShadowDom","stringifyStylesheet","cssRules","cssText","stringifyRule","rule","importStringified","regex","isCSSImportRule","styleSheet","statement","concat","layerName","supportsText","media","mediaText","escapeImportStatement","isCSSStyleRule","selectorText","Mirror","idNodeMap","Map","nodeMetaMap","_a","getMeta","getId","childNodes","childNode","removeNodeFromMap","has","node","meta","oldNode","getNode","maskInputValue","maskInputOptions","maskInputFn","actualType","repeat","ORIGINAL_ATTRIBUTE_NAME","getInputType","extractFileExtension","baseURL","URL","err","pathname","canvasService","canvasCtx","_id","tagNameRegex","RegExp","genId","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","absoluteToStylesheet","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","indexOf","stack","parts","_step","_iterator","part","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","absoluteToDoc","doc","attributeValue","getHref","transformAttribute","pos","collectCharacters","regEx","chars","exec","output","descriptorsStr","inParens","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","nodeType","ELEMENT_NODE","eIndex","needMaskingText","maskTextClass","maskTextSelector","el","parentElement","closest","matches","lowerIfExists","maybeAttr","serializeNodeWithId","mirror","blockClass","blockSelector","_options$skipChild","skipChild","_options$inlineStyles","inlineStylesheet","_options$maskInputOpt3","maskTextFn","slimDOMOptions","_options$dataURLOptio3","dataURLOptions","_options$inlineImages","inlineImages","_options$recordCanvas","recordCanvas","onSerialize","onIframeLoad","_options$iframeLoadTi","iframeLoadTimeout","onStylesheetLoad","_options$stylesheetLo","stylesheetLoadTimeout","_options$keepIframeSr","keepIframeSrcFn","_options$newlyAddedEl3","newlyAddedElement","needsMask","_options$preserveWhit","preserveWhiteSpace","_serializedNode","_options$maskInputOpt","_options$dataURLOptio","_options$newlyAddedEl","rootId","hasNode","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","isCustomElement","_options$maskInputOpt2","_options$dataURLOptio2","_options$newlyAddedEl2","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName","len","attr","stylesheet","styleSheets","find","rel","_cssText","sheet","innerText","selected","__context","canvas","ctx","getContext","getImageData","originalGetImageData","Uint32Array","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","oldValue","crossOrigin","recordInlineImage","removeEventListener","naturalWidth","naturalHeight","drawImage","warn","currentSrc","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","_n$getBoundingClientR","getBoundingClientRect","class","rr_width","rr_height","src","contentDocument","rr_src","customElements","Element","isSVG","ownerSVGElement","isCustom","serializeElementNode","TEXT_NODE","parentTagName","isStyle","isScript","nextSibling","previousSibling","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","serializeNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","assign","recordChild","isShadowHost","headWhitespace","bypassOptions","_i2","_Array$from","serializedChildNode","isElement","_i3","_Array$from2","isShadow","iframeEl","listener","win","contentWindow","readyState","fired","blankUrl","timer","clearTimeout","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","on","capture","passive","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","func","wait","timeout","previous","args","now","leading","remaining","trailing","hookSetter","isRevoked","original","getOwnPropertyDescriptor","_this3","patch","source","replacement","wrapped","__rrweb_original__","Proxy","Reflect","receiver","nowTimestamp","getWindowScroll","_b","_c","_d","_e","_f","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","StyleSheetMirror","styleIDMap","idStyleMap","newId","getShadowHost","shadowHost","getRootNode","Node","DOCUMENT_FRAGMENT_NODE","inDom","ownerDocument","rootShadowHost","getRootShadowHost","shadowHostInDom","EventType$1","EventType2","IncrementalSource$1","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","isNodeInLinkedList","errorHandler","DoubleLinkedList","current","__ln","moveKey","parentId","MutationBuffer","_this5","frozen","locked","texts","attributeMap","removes","mapRemoves","movedMap","addedSet","Set","movedSet","droppedSet","processMutations","mutations","processMutation","emit","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","addNode","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","_step2","_iterator2","isParentRemoved","_step3","_iterator3","isAncestorInSet","candidate","tailNode","_node","unhandledNode","removeNode","payload","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","mutationCb","textarea","cn","m","attributeName","unattachedDoc","implementation","createHTMLDocument","old","_i4","_Array$from3","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","_i5","_Array$from4","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","processedNodeManager","inOtherBuffer","targetId","childN","_this6","canvasManager","freeze","unfreeze","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","callbackWrapper","cb","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","init","mutationObserverCtor","MutationObserver","__rrMutationObserver","angularZoneSymbol","Zone","__symbol__","observer","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initScrollObserver","_ref6","scrollCb","sampling","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","unshift","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","styleId","ownerNode","initAdoptedStyleSheetObserver","_ref16","hostId","patchTarget","ShadowRoot","originalPropertyDescriptor","sheets","adoptStyleSheets","initObservers","mutationObserver","hooks","currentWindow","mousemoveCb","mouseInteractionCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","mouseInteraction","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","_ref3","timeBaseline","threshold","callbackThreshold","mousemoveCallback","positions","wrappedCb","totalOffset","timeOffset","updatePosition","_ref4","clientX","clientY","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","handlers","initMoveObserver","mouseInteractionHandler","_ref5","disableMap","currentPointerType","endsWith","eventKey","eventName","handler","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","startsWith","Click","getHandler","PointerEvent","TouchStart","TouchEnd","initMouseInteractionObserver","scrollHandler","viewportResizeHandler","_ref7","_ref8","lastH","lastW","initViewportResizeObserver","inputHandler","_ref9","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","_ref19","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","_ref10","_ref11","CSSStyleSheet","insertRule","thisArg","argumentsList","_argumentsList","_getIdAndStyleId","replaceSync","deleteRule","_getIdAndStyleId2","_getIdAndStyleId3","_getIdAndStyleId4","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","entries","_ref12","_ref13","typeKey","_argumentsList5","_getIdAndStyleId5","_getIdAndStyleId6","_ref14","_ref15","initStyleSheetObserver","_ref17","_ref18","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","_argumentsList7","priority","_getIdAndStyleId7","removeProperty","_getIdAndStyleId8","initStyleDeclarationObserver","collectFonts","_ref20","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","restoreHandler","fonts","initFontObserver","_step4","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","range","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","_ref21","initCustomElementObserver","pluginHandlers","_iterator4","plugins","plugin","CrossOriginIframeMirror","generateIdFn","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","_this7","ids","_this8","getRemoteId","IframeManager","iframes","crossOriginIframeMap","crossOriginIframeMirror","crossOriginIframeRootIdMap","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","generateId","handleMessage","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","_this9","FullSnapshot","replaceIdOnNode","patchRootIdOnNode","timestamp","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","Input","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","obj","_step5","_iterator5","getIds","_this10","child","_this11","ShadowDomManager","shadowDoms","WeakSet","restoreHandlers","patchAttachShadow","_this12","iframeElement","manager","lookup","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","list","ctor","contextMap","variableListFor","serializeArg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","base64","arraybuffer","encode","DataView","byteOffset","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","_len4","_key4","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","splice","patchGLPrototype","_step7","_iterator7","getOwnPropertyNames","_loop2","_len5","_key5","recordArgs","hookHandler","setter","takeFullSnapshot","WorkerFactory","__awaiter","_arguments","P","generator","reject","fulfilled","step","lastBlobMap","transparentBlobMap","getTransparentBlobFor","_callee","offscreen","arrayBuffer","_context","globalThis","OffscreenCanvas","convertToBlob","worker","self","onmessage","_callee2","_e$data","bitmap","transparentBase64","_context2","close","t0","t1","t2","postMessage","lines","blankPrefixLength","funcToSource","Blob","createObjectURL","createURL","Worker","CanvasManager","_this14","pendingCanvasMutations","rafStamps","latestId","invokeId","_options$sampling","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","_this15","canvasContextReset","snapshotInProgressMap","_e$data2","commands","rafId","timeBetweenSnapshots","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","_callee3","_context3","getContextAttributes","COLOR_BUFFER_BIT","createImageBitmap","requestAnimationFrame","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","_step6","_iterator6","CanvasRenderingContext2D","_loop","_this13","_len3","_key3","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","_this16","flushPendingCanvasMutations","_this17","setLatestRAFTimestamp","_this18","flushPendingCanvasMutationFor","valuesWithType","rest","getOwnPropertySymbols","propertyIsEnumerable","__rest","StylesheetManager","trackedLinkElements","adoptedStyleSheetCb","linkEl","trackStylesheetInLinkElement","_step8","adoptedStyleSheetData","styleIds","_iterator8","CSSRule","ProcessedNodeManager","nodeMap","periodicallyClear","_this19","thisBuffer","buffers","wrapEvent","recording","record","checkoutEveryNms","checkoutEveryNth","_options$blockClass","_options$blockSelecto","_options$ignoreClass","_options$ignoreSelect","_options$maskTextClas","_options$maskTextSele","_options$inlineStyles2","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","_options$sampling2","_options$dataURLOptio4","mousemoveWait","_options$recordDOM","_options$recordCanvas2","_options$recordCrossO","_options$recordAfter","recordAfter","_options$userTriggere","_options$collectFonts","_options$inlineImages2","_options$keepIframeSr2","_options$ignoreCSSAtt","inEmittingFrame","parent","passEmitsToParent","lastFullSnapshotEvent","color","tel","time","week","password","_this4","NodeList","DOMTokenList","_len2","_key2","polyfill","incrementalSnapshotCount","eventProcessor","_step9","_iterator9","isFrozen","buf","exceedCount","exceedTime","_step10","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","_iterator10","getMirror","nodeMirror","_ref2$mirror","_ref2$blockClass","_ref2$blockSelector","_ref2$maskTextClass","_ref2$maskTextSelecto","_ref2$inlineStyleshee","_ref2$inlineImages","_ref2$recordCanvas","_ref2$maskAllInputs","_ref2$slimDOM","slimDOM","_ref2$keepIframeSrcFn","snapshot","initialOffset","CustomElement","addLoadListener","addCustomEvent","tag","freezePage","EventType","IncrementalSource","Config","DEBUG","LIB_VERSION","loc","hostname","onLine","referrer","screen","at","ch","escapee","string","white","array","T","MAX_RECORDING_MS","ArrayProto","FuncProto","Function","ObjProto","windowConsole","document$1","windowOpera","opera","nativeBind","nativeForEach","nativeIndexOf","nativeMap","nativeIsArray","breaker","_","console$1","isUndefined","toArray","critical","log_func_with_prefix","prefix","console_with_prefix","bound","isFunction","extend","isArguments","iterable","include","found","needle","inherit","subclass","superclass","isObject","isEmptyObject","isString","isDate","isNumber","encodeDates","formatDate","pad","getUTCFullYear","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","strip_empty_properties","truncate","JSONEncode","mixed_val","quote","escapable","lastIndex","holder","gap","mind","partial","isFinite","JSONDecode","SyntaxError","uffff","word","base64Encode","h1","h2","h3","h4","bits","b64","ac","enc","tmp_arr","utf8Encode","stringl","utftext","c1","UUID","ticks","performance","se","random","ua","xor","byte_array","UA","BLOCKED_UA_STRS","isBlockedUA","HTTPBuildQuery","formdata","arg_separator","use_val","use_key","getQueryParam","decodeURIComponent","cookie","nameEQ","ca","set_seconds","seconds","is_cross_subdomain","is_secure","is_cross_site","domain_override","cdomain","expires","secure","domain","extract_domain","setTime","toGMTString","new_cookie_val","_localStorageSupported","localStorageSupported","storage","forceCheck","supported","localStorage","cheap_guid","setItem","getItem","removeItem","is_supported","force_check","register_event","fixEvent","stopPropagation","returnValue","cancelBubble","oldSchool","useCapture","ontype","old_handler","new_handler","old_handlers","old_result","new_result","makeHandler","TOKEN_MATCH_REGEX","dom_query","getAllChildren","all","getElementsByTagName","bad_whitespace","hasClass","elem","getElementsBySelector","token","foundCount","elements","currentContextIndex","tokens","currentContext","token_match","checkFunction","attrName","attrOperator","attrValue","lastIndexOf","query","CAMPAIGN_KEYWORDS","CLICK_IDS","campaignParams","default_value","kw","kwkey","clickParams","idkey","marketingParams","searchEngine","searchInfo","keyword","browser","user_agent","vendor","browserVersion","os","device","referringDomain","currentUrl","properties","extra_props","people_properties","mpPageViewProperties","title","protocol","maxlen","guid","SIMPLE_DOMAIN_MATCH_REGEX","DOMAIN_MATCH_REGEX","domain_regex","tld","JSONStringify","JSONParse","optIn","_optInOut","optOut","hasOptedIn","_getStorageValue","hasOptedOut","ignoreDnt","win$1","nav","hasDntOn","dntValue","_hasDoNotTrackFlagOn","optedOut","addOptOutCheckMixpanelLib","_addOptOutCheck","get_config","addOptOutCheckMixpanelPeople","_get_config","addOptOutCheckMixpanelGroup","clearOptInOut","_getStorage","_getStorageKey","crossSubdomainCookie","cookieDomain","persistenceType","persistencePrefix","optValue","cookieExpiration","secureCookie","crossSiteCookie","trackEventName","trackProperties","getConfigValue","logger$3","SharedLock","storageKey","pollIntervalMS","timeoutMS","withLock","lockedCB","errorCB","pid","startTime","keyX","keyY","keyZ","reportError","delay","waitFor","predicate","getSetY","valY","criticalSection","logger$2","RequestQueue","errorReporter","usePersistence","memQueue","enqueue","flushInterval","queueEntry","succeeded","storedQueue","readFromStorage","saveToStorage","fillBatch","batchSize","batch","idsInBatch","orphaned","filterOutIDsAndInvalid","items","idSet","filteredItems","removeItemsByID","removeFromStorage","updatePayloads","existingItems","itemsToUpdate","newItems","newPayload","storageEntry","queue","logger$1","RequestBatcher","libConfig","sendRequest","sendRequestFunc","beforeSendHook","stopAllBatching","stopAllBatchingFunc","stopped","consecutiveRemovalFailures","itemIdsSentSuccessfully","flushOnlyOnInterval","flush","timeoutID","resetBatchSize","resetFlush","scheduleFlush","flushMS","requestInProgress","currentBatchSize","attemptSecondaryFlush","dataForRequest","transformedItems","addPayload","itemId","timesSent","batchSendCallback","res","removeItemsFromQueue","unloading","httpStatusCode","retryMS","retryAfter","halvedBatchSize","requestOptions","verbose","ignore_json_errors","timeout_ms","transport","logger","CompressionStream","RECORDER_BATCHER_LIB_CONFIG","ACTIVE_SOURCES","MixpanelRecorder","mixpanelInstance","_mixpanel","_stopRecording","recEvents","seqNo","replayId","replayStartTime","sendBatchId","idleTimeoutId","maxTimeoutId","recordMaxMs","recordMinMs","_initBatcher","batcher","flushEventsWithOptOut","configVar","startRecording","shouldStopBatcher","resetIdleTimeout","resetRecording","ev","isUserEvent","stopRecording","_flushEvents","_onOptOut","_sendRequest","currentReplayId","reqParams","reqBody","onSuccess","responseBody","URLSearchParams","numEvents","batchStartTime","replayLengthMs","get_distinct_id","eventsJson","deviceId","get_property","userId","gzipStream","stream","pipeThrough","Response","compressedBlob","DomTracker","create_properties","event_handler","after_track_handler","mixpanel_instance","mp","event_name","user_callback","that","override_event","track_callback","timeout_occured","callback_fired","LinkTracker","new_tab","which","metaKey","ctrlKey","FormTracker","SET_ACTION","SET_ONCE_ACTION","UNSET_ACTION","ADD_ACTION","APPEND_ACTION","UNION_ACTION","REMOVE_ACTION","apiActions","set_action","$set","_is_reserved_property","unset_action","$unset","set_once_action","$set_once","union_action","list_name","$union","append_action","$append","remove_action","$remove","delete_action","MixpanelGroup","_init","group_key","group_id","_group_key","_group_id","_send_request","set_once","unset","union","date_encoded_data","_track_or_batch","endpoint","request_batchers","groups","conf","MixpanelPeople","update_referrer_info","increment","by","$add","track_charge","amount","clear_charges","delete_user","_identify_called","device_id","user_id","had_persisted_distinct_id","people","_enqueue","conf_var","_flags","identify_called","_add_to_people_queue","_flush_one_queue","action_method","queue_to_params_fn","queued_data","load_queue","action_params","_pop_from_people_queue","save","_flush","_set_callback","_add_callback","_append_callback","_set_once_callback","_union_callback","_unset_callback","_remove_callback","$append_queue","$append_item","append_callback","$remove_queue","$remove_item","remove_callback","init_type","SET_QUEUE_KEY","SET_ONCE_QUEUE_KEY","UNSET_QUEUE_KEY","ADD_QUEUE_KEY","APPEND_QUEUE_KEY","REMOVE_QUEUE_KEY","UNION_QUEUE_KEY","PEOPLE_DISTINCT_ID_KEY","ALIAS_ID_KEY","EVENT_TIMERS_KEY","RESERVED_PROPERTIES","MixpanelPersistence","config","campaign_params_saved","storage_type","update_config","upgrade","entry","old_cookie","old_localstorage","register_once","expire_days","cross_subdomain","cross_site","cookie_domain","load_prop","default_expiry","register","unregister","update_search_keyword","get_referrer_info","set_disabled","set_cookie_domain","set_cross_site","set_cross_subdomain","set_secure","get_cross_subdomain","q_key","_get_queue_key","q_data","set_q","_get_or_create_queue","set_once_q","unset_q","add_q","union_q","remove_q","append_q","enqueued_obj","append_obj","q","queued_action","default_val","set_event_timer","timers","remove_event_timer","mixpanel_master","load_extra_bundle","_onload","IDENTITY_FUNC","NOOP_FUNC","PRIMARY_INSTANCE_NAME","PAYLOAD_TYPE_BASE64","DEVICE_ID_PREFIX","USE_XHR","ENQUEUE_REQUESTS","sendBeacon","DEFAULT_API_ROUTES","DEFAULT_CONFIG","DOM_LOADED","MixpanelLib","create_mplib","_cached_groups","utm_params","initial_utm_params","has_utm","utm_value","utm_key","_execute_array","report_error","_loaded","variable_features","set_config","__dom_loaded_queue","__request_queue","__disabled_events","_batch_requests","init_batchers","flush_on_unload","get_batcher_configs","batcher_config","queue_key","unpersisted_superprops","_gdpr_init","uuid","track_pageview_option","_init_url_change_tracking","start_session_recording","handleLoadedRecorder","_recorder","stop_session_recording","get_session_recording_properties","replay_id","_set_default_superprops","_utm_value","_dom_loaded","_track_dom","has_opted_out_tracking","DomClass","dt","previous_tracked_url","track_pageview","nativePushState","pushState","unused","nativeReplaceState","current_url","should_track","_prepare_callback","jsc","randomized_cb","callback_string","DEFAULT_OPTIONS","body_data","use_post","use_sendBeacon","verbose_mode","lib","img","headerValue","headerName","start_time","withCredentials","onreadystatechange","responseText","statusText","response_headers","defer","insertBefore","fn_name","alias_calls","other_calls","tracking_calls","execute","calls","caller","are_batchers_initialized","queue_prefix","api_routes","_batcher_configs","batcher_for","attrs","_encode_data_for_request","_run_hook","stop_batch_senders","batcher_configs","start_batch_senders","_batchers_were_started","disable_all_events","encoded_data","truncated_data","should_send_immediately","send_request_options","request_enqueued_or_initiated","send_request_immediately","skip_hooks","_event_is_disabled","start_timestamp","duration_in_ms","marketing_properties","property_blacklist","blacklisted_prop","set_group","group_ids","add_group","old_values","remove_group","old_value","idx","track_with_groups","tracking_props","_create_map_key","_remove_group_from_cache","get_group","map_key","group","default_page_properties","event_properties","track_links","track_forms","time_event","REGISTER_DEFAULTS","options_for_register","days_or_options","_register_single","identify","new_distinct_id","previous_distinct_id","alias","name_tag","prop_name","hook_name","property_name","has_opted_in_tracking","opt_in_tracking","opt_out_tracking","clear_opt_in_out_tracking","_gdpr_update_persistence","_gdpr_call_func","instances","_src","onload","dom_loaded_handler","inst","attachEvent","toplevel","frameElement","doScroll","do_scroll_check","add_dom_loaded_handler","process","debug","persistence","CssClasses","classes","main","single","valueText","valueDelete","valueOut","deselect","deselectPath","arrow","arrowClose","arrowOpen","openAbove","openBelow","searchHighlighter","searching","addable","addablePath","optgroup","optgroupLabel","optgroupLabelText","optgroupActions","optgroupSelectAll","optgroupSelectAllBox","optgroupSelectAllCheck","optgroupClosable","optionDelete","highlighted","hide","generateID","debounce","immediate","callNow","isEqual","Optgroup","label","selectAll","selectAllText","Option","html","mandatory","Store","selectType","selectedOrder","setData","dataObj","validationError","validateOption","dataFinal","optOptions","partialToFullData","setSelectedBy","getSelected","getData","selectedType","selectedValues","firstOption","hasSelected","selectedObjects","selectedIds","getSelectedOptions","opt","includeOptgroup","dataSearch","newOrder","isIn","selectedOption","Render","store","callbacks","mainDiv","contentDiv","updateClassStyles","updateAriaAttributes","contentLocation","moveContent","selectedOptions","selectedId","ensureElementInView","contentPosition","role","ariaLabel","tabIndex","onkeydown","highlight","onclick","isOpen","isMultiple","shouldDelete","before","beforeChange","setSelected","updateDeselectAll","getFirstOption","closeOnSelect","afterChange","deselectSvg","createElementNS","arrowPath","alwaysOpen","svg","eventType","preventScroll","placeholderOption","renderMultipleValues","renderSingleValue","selectedSingle","singleValue","outerHTML","currentNodes","maxValuesShown","maxValuesMessage","keepOrder","selectedOrderOptions","removeNodes","_removeNodes","_i","hasChildNodes","shouldAdd","multipleValue","deleteDiv","minSelected","deleteSvg","deletePath","searchDiv","listDiv","putContent","moveContentAbove","moveContentBelow","searchReturn","showSearch","readOnly","oninput","plus","plusPath","inputValue","runFinish","oo","newOption","addOption","addableValue","renderError","notPlaceholder","notDisabled","notHidden","dir","getOptions","_step11","_iterator11","_step12","_iterator12","prevOption","prevParent","selectOption","selectParent","errorDiv","searchingDiv","searchingText","noResults","addableText","_step13","_iterator13","_loop3","optgroupEl","_step14","allSelected","_iterator14","selectAllSvg","selectAllBox","selectAllCheck","currentSelected","newSelected","_step15","_iterator15","_step16","_iterator16","getOptionByID","optgroupClosableSvg","optgroupClosableArrow","_step17","_iterator17","optionEl","dataClass","searchHighlight","highlightText","showOptionTooltips","elementID","maxSelected","shouldUpdate","completedString","matchStartPosition","matchEndPosition","originalTextFoundByRegex","mainHeight","offsetHeight","contentHeight","containerRect","margin","scrollY","scrollX","cTop","offsetTop","cBottom","eTop","eBottom","mainRect","hasSelectedItems","deselectButton","hideClass","Select","listen","valueChange","observeCall","changeListen","onValueChange","_step18","classChanged","disabledChanged","optgroupOptionChanged","_iterator18","_step19","_iterator19","onClassChange","onDisabledChange","onOptionsChange","_step20","_iterator20","getDataFromOptgroup","getDataFromOption","_step21","selectall","selectalltext","_iterator21","_step22","_iterator22","_step23","_iterator23","_step24","_iterator24","_step25","_iterator25","_step26","_iterator26","_step27","_iterator27","_step28","_iterator28","createOptgroup","createOption","_step29","_iterator29","optionClass","showUI","Settings","isFullOpen","intervalMove","focusSearch","timeoutDelay","beforeOpen","afterOpen","beforeClose","afterClose","windowResize","render","windowScroll","documentClick","parentByClass","hasClassInTree","windowVisibilityChange","hidden","selectEl","ssid","cssClasses","debounceEvents","multiple","updateSelect","hideUI","updateOptions","renderCallbacks","renderValues","renderOptions","selectAriaLabel","selectAriaLabelledBy","slim","validateDataArray","dataClean","runAfterChange","getDataOptions","_step30","_iterator30","_loop4","_step31","_iterator31","searchFocus","clearInterval","setInterval","mainFocus","renderSearching","searchResp","asyncGeneratorStep","_isNativeReflectConstruct","valueOf","construct","_getPrototypeOf","_setPrototypeOf","_defineProperty","_n","EventListener","eventTarget","eventOptions","unorderedBindings","binding","extendedEvent","stopImmediatePropagation","immediatePropagationStopped","extendEvent","bindings","handleEvent","right","leftIndex","rightIndex","Dispatcher","eventListenerMaps","eventListeners","eventListener","reduce","listeners","fetchEventListenerForBinding","bindingConnected","clearEventListeners","bindingDisconnected","clearEventListenersForBinding","handleError","hasBindings","removeMappedEventListenerFor","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","fetchEventListener","createEventListener","defaultActionDescriptorFilters","prevent","descriptorPattern","camelize","char","namespaceCamelize","capitalize","dasherize","Action","schema","defaultEventNames","getDefaultEventNameForElement","keyFilter","eventFilter","eventTargetName","filteres","modifiers","_modifiers$map2","ctrl","alt","altKey","shiftKey","standardFilter","keyMappings","pattern","typecast","o_O","Binding","willBeInvokedByEvent","applyEventModifiers","invokeWithEvent","actionDescriptorFilters","passes","_Object$entries","actionEvent","logDebugActivity","KeyboardEvent","isFilterTarget","scope","containsElement","ElementObserver","mutationObserverInit","refresh","takeRecords","matchElementsInTree","removeElement","addElement","processAttributeChange","processRemovedNodes","processAddedNodes","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","_i6","_Array$from5","elementIsActive","tree","processor","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","pause","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","Multimap","valuesByKey","prune","del","SelectorObserver","matchesByElement","selectorMatchElement","selectorMatched","selectorUnmatched","_attributeName","matchedBefore","StringMapObserver","stringMap","knownAttributeNames","refreshAttribute","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","_this$refreshTokensFo2","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","getValuesForKey","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","forToken","connectAction","disconnectAction","ValueObserver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","hasValue","invokeChangedCallback","writer","defaultValue","valueDescriptorNameMap","valueDescriptors","rawValue","rawOldValue","changedMethodName","changedMethod","reader","hasMethodName","TargetObserver","targetsByName","disconnectAllTargets","connectTarget","disconnectTarget","targetConnected","targetDisconnected","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","OutletObserver","outletsByName","outletElementsByName","selectorObserverMap","outletDefinitions","outletName","dependentContexts","disconnectAllOutlets","_selector","outlet","getOutlet","connectOutlet","getOutletFromMap","disconnectOutlet","hasOutlet","controllerAttribute","outletConnected","outletDisconnected","outlets","getSelectorForOutletName","dependencies","router","modules","outletDependencies","getKeysForValue","identifiers","dependentControllerIdentifiers","contexts","getControllerForElementAndIdentifier","functionName","bindingObserver","dispatcher","valueObserver","targetObserver","outletObserver","invokeControllerMethod","getOwnKeys","extendWithReflect","extended","_constructor","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_inherits","Module","shadowConstructor","shadowProperties","shadowingDescriptor","getShadowedDescriptor","getShadowProperties","shadow","blessedProperties","blessing","getBlessedProperties","blessDefinition","contextsByScope","connectedContexts","fetchContextForScope","ClassMap","getDataKey","getAll","getAttributeNameForKey","DataMap","Guide","warnedKeysByObject","warnedKeys","attributeValueContainsToken","TargetSet","targetName","targetNames","findTarget","findLegacyTarget","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findAllElements","targetAttributeForScope","getLegacySelectorForTargetName","deprecate","targetDescriptor","targetAttribute","revisedAttributeName","guide","OutletSet","controllerElement","outletNames","findOutlet","_key6","findAllOutlets","outletAttributeForScope","_this20","queryElements","matchesElement","_this21","Scope","_this22","controllerSelector","documentScope","isDocumentScope","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","unloadIdentifier","connectModule","afterLoad","disconnectModule","connectContextForScope","disconnectContextForScope","defaultSchema","enter","tab","esc","space","up","down","home","objectFromEntries","memo","_this23","logFormattedMessage","_start","_next","_throw","_this24","_len6","_key7","shouldLoad","loadDefinition","_this25","_len7","_key8","getContextForElementAndIdentifier","onerror","groupCollapsed","groupEnd","parseValueDefinitionPair","_ref25","_ref26","typeDefinition","typeFromObject","parseValueTypeConstant","typeObject","defaultValueType","parseValueTypeDefault","propertyPath","parseValueTypeObject","typeFromDefaultValue","typeFromConstant","parseValueTypeDefinition","constant","defaultValuesByType","defaultValueForDefinition","hasCustomDefaultValue","readers","writers","boolean","writeJSON","_ref27","_ref27$target","_ref27$detail","_ref27$prefix","_ref27$bubbles","_ref27$cancelable","CustomEvent","_identifier","_application","blessings","classDefinition","getAttributeName","targetDefinition","findAll","valueDefinitionPairs","pairs","getOwnStaticObjectPairs","readInheritableStaticObjectPairs","propertyDescriptorMap","_this27","valueDefinitionPair","valueDescriptor","propertiesForValueDefinitionPair","read","write","outletDefinition","camelizedName","outletController","_this26","_state","_handled","_deferreds","onFulfilled","onRejected","promise","setImmediate","race","_setImmediateFn","_setUnhandledRejectionFn","registerElement","A","uid_","nodes_","removeTransientObservers","callback_","records_","C","attributeNamespace","w","transientObservedNodes","JsMutationObserver","ShadowDOMPolyfill","wrapIfNeeded","attributeFilter","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","_isPolyfilled","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","initCustomEvent","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","HTMLImports","firstElementChild","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","__upgraded__","__attached","attachedCallback","detachedCallback","dom","_URL","localName","E","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","HTMLElement","HTMLTemplateElement","decorate","getRegisteredDefinition","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","__name","lifecycle","ancestry","ready","registry","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","eager","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","getCacheKey","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","added","removed","utf16String","offset","codepoints","fromCodepoints","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","findElementFromContainerAndOffset","findChildIndexOfNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","initialized","connectedCallback","disconnectedCallback","getDOMSelection","getDOMRange","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","dataTransferIsPlainText","DOMParser","parseFromString","dataTransferIsWritable","keyEventIsKeyboardCommand","platform","RTL_PATTERN","getDirection","dirName","FormData","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","isEmpty","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","ElementStore","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","hasFailed","getPromise","perform","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","lang","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","numbers","outdent","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","exclusive","fileSize","precision","formatter","pow","inheritable","parser","getComputedStyle","fontWeight","fontStyle","groupTagName","serializers","fromHTML","toSerializableDocument","DocumentView","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","level2Enabled","getLevel","pickFiles","fileInputId","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","didMutate","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","FileVerificationOperation","abort","InputController","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","paste","R","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","isEnded","getSelectedDocument","Files","charCode","inputController","isSignificant","insertPlaceholder","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","withEvent","inputTypes","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","setEnd","AttachmentEditorController","attachmentPiece","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","trixAction","getFilename","getFormattedFilesize","getCaption","scrollHeight","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","ImagePreloadOperation","Image","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","revokeObjectURL","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","previousElementSibling","elementIsForbidden","elementIsntSerializable","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","bottom","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","clearSelection","selectionIsCollapsed","domRangeWithinElement","pauseTemporarily","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","queryCommandSupported","labels","inputElement","editorController","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","trackClick"],"sourceRoot":""}