: https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/ss.js\n// module id = 424\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/sv.js\n// module id = 425\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/sw.js\n// module id = 426\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/ta.js\n// module id = 427\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/te.js\n// module id = 428\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tet.js\n// module id = 429\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tg.js\n// module id = 430\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/th.js\n// module id = 431\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tk.js\n// module id = 432\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tl-ph.js\n// module id = 433\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tlh.js\n// module id = 434\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tr.js\n// module id = 435\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tzl.js\n// module id = 436\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tzm-latn.js\n// module id = 437\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/tzm.js\n// module id = 438\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/ug-cn.js\n// module id = 439\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/uk.js\n// module id = 440\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/ur.js\n// module id = 441\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/uz-latn.js\n// module id = 442\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/uz.js\n// module id = 443\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/vi.js\n// module id = 444\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/x-pseudo.js\n// module id = 445\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/yo.js\n// module id = 446\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/zh-cn.js\n// module id = 447\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/zh-hk.js\n// module id = 448\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/zh-mo.js\n// module id = 449\n// module chunks = 19","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale/zh-tw.js\n// module id = 450\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport ChromeFields from './ChromeFields';\nimport ChromePointer from './ChromePointer';\nimport ChromePointerCircle from './ChromePointerCircle';\n\nexport var Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: ChromePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement('div', { style: styles.active }),\n React.createElement(Checkboard, { renderers: renderers })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.toggles },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: ChromePointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: ChromePointer,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n React.createElement(ChromeFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disableAlpha: PropTypes.bool,\n styles: PropTypes.object,\n defaultView: PropTypes.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexport default ColorWrap(Chrome);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/chrome/Chrome.js\n// module id = 452\n// module chunks = 19","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash-es/debounce';\nimport * as color from '../../helpers/color';\n\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(PureComponent || Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexport default ColorWrap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/common/ColorWrap.js\n// module id = 453\n// module chunks = 19","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ga4/dist/index.js\n// module id = 454\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId()\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'UNSAFE_componentWillReceiveProps',\n\t\tvalue: function UNSAFE_componentWillReceiveProps(nextProps) {\n\t\t\tvar id = nextProps.id;\n\n\t\t\tif (id !== this.props.id) {\n\t\t\t\tthis.setState({ inputId: id || generateId() });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-input-autosize/lib/AutosizeInput.js\n// module id = 455\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\nexports.resetForTesting = resetForTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = \"length\" in el ? el[0] : el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n if (!appElement && !globalElement) {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return false;\n }\n\n return true;\n}\n\nfunction hide(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).setAttribute(\"aria-hidden\", \"true\");\n }\n}\n\nfunction show(appElement) {\n if (validateElement(appElement)) {\n (appElement || globalElement).removeAttribute(\"aria-hidden\");\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}\n\nfunction resetForTesting() {\n globalElement = null;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/ariaAppHider.js\n// module id = 456\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\nexports.default = portalOpenInstances;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/portalOpenInstances.js\n// module id = 457\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n}\n\nfunction visible(element) {\n var parentElement = element;\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n return [].slice.call(element.querySelectorAll(\"*\"), 0).filter(tabbable);\n}\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/tabbable.js\n// module id = 458\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/~/prop-types/index.js\n// module id = 459\n// module chunks = 19","import React, { Component, PureComponent } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { jsx } from '@emotion/core';\nimport { findDOMNode } from 'react-dom';\nimport { i as isTouchCapable, d as isMobileDevice, e as cleanValue, f as scrollIntoView, h as classNames, n as noop, j as isDocumentElement } from './utils-06b0d5a4.browser.esm.js';\nimport { c as clearIndicatorCSS, a as containerCSS, b as css, d as dropdownIndicatorCSS, g as groupCSS, e as groupHeadingCSS, i as indicatorsContainerCSS, f as indicatorSeparatorCSS, h as inputCSS, l as loadingIndicatorCSS, j as loadingMessageCSS, m as menuCSS, k as menuListCSS, n as menuPortalCSS, o as multiValueCSS, p as multiValueLabelCSS, q as multiValueRemoveCSS, r as noOptionsMessageCSS, s as optionCSS, t as placeholderCSS, u as css$1, v as valueContainerCSS, M as MenuPlacer, w as defaultComponents, x as exportedEqual } from './index-4322c0ed.browser.esm.js';\nimport _css from '@emotion/css';\n\nvar diacritics = [{\n base: 'A',\n letters: /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g\n}, {\n base: 'AA',\n letters: /[\\uA732]/g\n}, {\n base: 'AE',\n letters: /[\\u00C6\\u01FC\\u01E2]/g\n}, {\n base: 'AO',\n letters: /[\\uA734]/g\n}, {\n base: 'AU',\n letters: /[\\uA736]/g\n}, {\n base: 'AV',\n letters: /[\\uA738\\uA73A]/g\n}, {\n base: 'AY',\n letters: /[\\uA73C]/g\n}, {\n base: 'B',\n letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g\n}, {\n base: 'C',\n letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g\n}, {\n base: 'D',\n letters: /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g\n}, {\n base: 'DZ',\n letters: /[\\u01F1\\u01C4]/g\n}, {\n base: 'Dz',\n letters: /[\\u01F2\\u01C5]/g\n}, {\n base: 'E',\n letters: /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g\n}, {\n base: 'F',\n letters: /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g\n}, {\n base: 'G',\n letters: /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g\n}, {\n base: 'H',\n letters: /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g\n}, {\n base: 'I',\n letters: /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g\n}, {\n base: 'J',\n letters: /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g\n}, {\n base: 'K',\n letters: /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g\n}, {\n base: 'L',\n letters: /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g\n}, {\n base: 'LJ',\n letters: /[\\u01C7]/g\n}, {\n base: 'Lj',\n letters: /[\\u01C8]/g\n}, {\n base: 'M',\n letters: /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g\n}, {\n base: 'N',\n letters: /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g\n}, {\n base: 'NJ',\n letters: /[\\u01CA]/g\n}, {\n base: 'Nj',\n letters: /[\\u01CB]/g\n}, {\n base: 'O',\n letters: /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g\n}, {\n base: 'OI',\n letters: /[\\u01A2]/g\n}, {\n base: 'OO',\n letters: /[\\uA74E]/g\n}, {\n base: 'OU',\n letters: /[\\u0222]/g\n}, {\n base: 'P',\n letters: /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g\n}, {\n base: 'Q',\n letters: /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g\n}, {\n base: 'R',\n letters: /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g\n}, {\n base: 'S',\n letters: /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g\n}, {\n base: 'T',\n letters: /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g\n}, {\n base: 'TZ',\n letters: /[\\uA728]/g\n}, {\n base: 'U',\n letters: /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g\n}, {\n base: 'V',\n letters: /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g\n}, {\n base: 'VY',\n letters: /[\\uA760]/g\n}, {\n base: 'W',\n letters: /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g\n}, {\n base: 'X',\n letters: /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g\n}, {\n base: 'Y',\n letters: /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g\n}, {\n base: 'Z',\n letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g\n}, {\n base: 'a',\n letters: /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g\n}, {\n base: 'aa',\n letters: /[\\uA733]/g\n}, {\n base: 'ae',\n letters: /[\\u00E6\\u01FD\\u01E3]/g\n}, {\n base: 'ao',\n letters: /[\\uA735]/g\n}, {\n base: 'au',\n letters: /[\\uA737]/g\n}, {\n base: 'av',\n letters: /[\\uA739\\uA73B]/g\n}, {\n base: 'ay',\n letters: /[\\uA73D]/g\n}, {\n base: 'b',\n letters: /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g\n}, {\n base: 'c',\n letters: /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g\n}, {\n base: 'd',\n letters: /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g\n}, {\n base: 'dz',\n letters: /[\\u01F3\\u01C6]/g\n}, {\n base: 'e',\n letters: /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g\n}, {\n base: 'f',\n letters: /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g\n}, {\n base: 'g',\n letters: /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g\n}, {\n base: 'h',\n letters: /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g\n}, {\n base: 'hv',\n letters: /[\\u0195]/g\n}, {\n base: 'i',\n letters: /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g\n}, {\n base: 'j',\n letters: /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g\n}, {\n base: 'k',\n letters: /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g\n}, {\n base: 'l',\n letters: /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g\n}, {\n base: 'lj',\n letters: /[\\u01C9]/g\n}, {\n base: 'm',\n letters: /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g\n}, {\n base: 'n',\n letters: /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g\n}, {\n base: 'nj',\n letters: /[\\u01CC]/g\n}, {\n base: 'o',\n letters: /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g\n}, {\n base: 'oi',\n letters: /[\\u01A3]/g\n}, {\n base: 'ou',\n letters: /[\\u0223]/g\n}, {\n base: 'oo',\n letters: /[\\uA74F]/g\n}, {\n base: 'p',\n letters: /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g\n}, {\n base: 'q',\n letters: /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g\n}, {\n base: 'r',\n letters: /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g\n}, {\n base: 's',\n letters: /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g\n}, {\n base: 't',\n letters: /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g\n}, {\n base: 'tz',\n letters: /[\\uA729]/g\n}, {\n base: 'u',\n letters: /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g\n}, {\n base: 'v',\n letters: /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g\n}, {\n base: 'vy',\n letters: /[\\uA761]/g\n}, {\n base: 'w',\n letters: /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g\n}, {\n base: 'x',\n letters: /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g\n}, {\n base: 'y',\n letters: /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g\n}, {\n base: 'z',\n letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g\n}];\nvar stripDiacritics = function stripDiacritics(str) {\n for (var i = 0; i < diacritics.length; i++) {\n str = str.replace(diacritics[i].letters, diacritics[i].base);\n }\n\n return str;\n};\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return option.label + \" \" + option.value;\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _extends({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = stripDiacritics(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"1laao21-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;\"\n} : {\n name: \"1laao21-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFNIiwiZmlsZSI6IkExMXlUZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgdHlwZSBFbGVtZW50Q29uZmlnIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5cbi8vIEFzc2lzdGl2ZSB0ZXh0IHRvIGRlc2NyaWJlIHZpc3VhbCBlbGVtZW50cy4gSGlkZGVuIGZvciBzaWdodGVkIHVzZXJzLlxuY29uc3QgQTExeVRleHQgPSAocHJvcHM6IEVsZW1lbnRDb25maWc8J3NwYW4nPikgPT4gKFxuICAgIDxzcGFuXG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdhMTF5VGV4dCcsXG4gICAgICAgIHpJbmRleDogOTk5OSxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICBjbGlwOiAncmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpJyxcbiAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgICB9fVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBBMTF5VGV4dDtcbiJdfQ== */\"\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends$1({\n css: _ref\n }, props));\n};\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction DummyInput(_ref) {\n var inProp = _ref.in,\n out = _ref.out,\n onExited = _ref.onExited,\n appear = _ref.appear,\n enter = _ref.enter,\n exit = _ref.exit,\n innerRef = _ref.innerRef,\n emotion = _ref.emotion,\n props = _objectWithoutPropertiesLoose(_ref, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return jsx(\"input\", _extends$2({\n ref: innerRef\n }, props, {\n css:\n /*#__PURE__*/\n _css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJNIiwiZmlsZSI6IkR1bW15SW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9jb3JlJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRHVtbXlJbnB1dCh7XG4gIGluOiBpblByb3AsXG4gIG91dCxcbiAgb25FeGl0ZWQsXG4gIGFwcGVhcixcbiAgZW50ZXIsXG4gIGV4aXQsXG4gIGlubmVyUmVmLFxuICBlbW90aW9uLFxuICAuLi5wcm9wc1xufTogYW55KSB7XG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLnByb3BzfVxuICAgICAgY3NzPXt7XG4gICAgICAgIGxhYmVsOiAnZHVtbXlJbnB1dCcsXG4gICAgICAgIC8vIGdldCByaWQgb2YgYW55IGRlZmF1bHQgc3R5bGVzXG4gICAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICAgIGJvcmRlcjogMCxcbiAgICAgICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICAgICAgb3V0bGluZTogMCxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgLy8gaW1wb3J0YW50ISB3aXRob3V0IGB3aWR0aGAgYnJvd3NlcnMgd29uJ3QgYWxsb3cgZm9jdXNcbiAgICAgICAgd2lkdGg6IDEsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBkZXNrdG9wXG4gICAgICAgIGNvbG9yOiAndHJhbnNwYXJlbnQnLFxuXG4gICAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gbW9iaWxlIHdoaWxzdCBtYWludGFpbmluZyBcInNjcm9sbCBpbnRvIHZpZXdcIiBiZWhhdmlvdXJcbiAgICAgICAgbGVmdDogLTEwMCxcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDApJyxcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn1cbiJdfQ== */\")\n }));\n}\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar NodeResolver =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(NodeResolver, _Component);\n\n function NodeResolver() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = NodeResolver.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.props.innerRef(findDOMNode(this));\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.innerRef(null);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return NodeResolver;\n}(Component);\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nfunction _inheritsLoose$1(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\nvar canUseDOM = !!( window.document && window.document.createElement);\nvar activeScrollLocks = 0;\n\nvar ScrollLock =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose$1(ScrollLock, _Component);\n\n function ScrollLock() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.originalStyles = {};\n _this.listenerOptions = {\n capture: false,\n passive: false\n };\n return _this;\n }\n\n var _proto = ScrollLock.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n var _this$props = this.props,\n accountForScrollbars = _this$props.accountForScrollbars,\n touchScrollTarget = _this$props.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n _this2.originalStyles[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(this.originalStyles.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = adjustedPadding + \"px\";\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, this.listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var _this3 = this;\n\n if (!canUseDOM) return;\n var _this$props2 = this.props,\n accountForScrollbars = _this$props2.accountForScrollbars,\n touchScrollTarget = _this$props2.touchScrollTarget;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = _this3.originalStyles[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return ScrollLock;\n}(Component);\n\nScrollLock.defaultProps = {\n accountForScrollbars: true\n};\n\nfunction _inheritsLoose$2(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar _ref$1 = process.env.NODE_ENV === \"production\" ? {\n name: \"1dsbpcp\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;\"\n} : {\n name: \"1dsbpcp\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbEJsb2NrLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZEVSIsImZpbGUiOiJTY3JvbGxCbG9jay5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG4vKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IFB1cmVDb21wb25lbnQsIHR5cGUgRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuaW1wb3J0IE5vZGVSZXNvbHZlciBmcm9tICcuL05vZGVSZXNvbHZlcic7XG5pbXBvcnQgU2Nyb2xsTG9jayBmcm9tICcuL1Njcm9sbExvY2svaW5kZXgnO1xuXG50eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbjogRWxlbWVudDwqPixcbiAgaXNFbmFibGVkOiBib29sZWFuLFxufTtcbnR5cGUgU3RhdGUgPSB7XG4gIHRvdWNoU2Nyb2xsVGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwsXG59O1xuXG4vLyBOT1RFOlxuLy8gV2Ugc2hvdWxkbid0IG5lZWQgdGhpcyBhZnRlciB1cGRhdGluZyB0byBSZWFjdCB2MTYuMy4wLCB3aGljaCBpbnRyb2R1Y2VzOlxuLy8gLSBjcmVhdGVSZWYoKSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjcmVhdGVyZWZcbi8vIC0gZm9yd2FyZFJlZigpIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGZvcndhcmRyZWZcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2Nyb2xsQmxvY2sgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFByb3BzLCBTdGF0ZT4ge1xuICBzdGF0ZSA9IHsgdG91Y2hTY3JvbGxUYXJnZXQ6IG51bGwgfTtcblxuICAvLyBtdXN0IGJlIGluIHN0YXRlIHRvIHRyaWdnZXIgYSByZS1yZW5kZXIsIG9ubHkgcnVucyBvbmNlIHBlciBpbnN0YW5jZVxuICBnZXRTY3JvbGxUYXJnZXQgPSAocmVmOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGlmIChyZWYgPT09IHRoaXMuc3RhdGUudG91Y2hTY3JvbGxUYXJnZXQpIHJldHVybjtcbiAgICB0aGlzLnNldFN0YXRlKHsgdG91Y2hTY3JvbGxUYXJnZXQ6IHJlZiB9KTtcbiAgfTtcblxuICAvLyB0aGlzIHdpbGwgY2xvc2UgdGhlIG1lbnUgd2hlbiBhIHVzZXIgY2xpY2tzIG91dHNpZGVcbiAgYmx1clNlbGVjdElucHV0ID0gKCkgPT4ge1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGlzRW5hYmxlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHRvdWNoU2Nyb2xsVGFyZ2V0IH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgLy8gYmFpbCBlYXJseSBpZiBub3QgZW5hYmxlZFxuICAgIGlmICghaXNFbmFibGVkKSByZXR1cm4gY2hpbGRyZW47XG5cbiAgICAvKlxuICAgICAqIERpdlxuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGJsb2NrcyBzY3JvbGxpbmcgb24gbm9uLWJvZHkgZWxlbWVudHMgYmVoaW5kIHRoZSBtZW51XG5cbiAgICAgKiBOb2RlUmVzb2x2ZXJcbiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgKiB3ZSBuZWVkIGEgcmVmZXJlbmNlIHRvIHRoZSBzY3JvbGxhYmxlIGVsZW1lbnQgdG8gXCJ1bmxvY2tcIiBzY3JvbGwgb25cbiAgICAgKiBtb2JpbGUgZGV2aWNlc1xuXG4gICAgICogU2Nyb2xsTG9ja1xuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGFjdHVhbGx5IGRvZXMgdGhlIHNjcm9sbCBsb2NraW5nXG4gICAgICovXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmJsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgICA8Tm9kZVJlc29sdmVyIGlubmVyUmVmPXt0aGlzLmdldFNjcm9sbFRhcmdldH0+e2NoaWxkcmVufTwvTm9kZVJlc29sdmVyPlxuICAgICAgICB7dG91Y2hTY3JvbGxUYXJnZXQgPyAoXG4gICAgICAgICAgPFNjcm9sbExvY2sgdG91Y2hTY3JvbGxUYXJnZXQ9e3RvdWNoU2Nyb2xsVGFyZ2V0fSAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdfQ== */\"\n};\n\n// NOTE:\n// We shouldn't need this after updating to React v16.3.0, which introduces:\n// - createRef() https://reactjs.org/docs/react-api.html#reactcreateref\n// - forwardRef() https://reactjs.org/docs/react-api.html#reactforwardref\nvar ScrollBlock =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inheritsLoose$2(ScrollBlock, _PureComponent);\n\n function ScrollBlock() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this;\n _this.state = {\n touchScrollTarget: null\n };\n\n _this.getScrollTarget = function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n\n _this.setState({\n touchScrollTarget: ref\n });\n };\n\n _this.blurSelectInput = function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n };\n\n return _this;\n }\n\n var _proto = ScrollBlock.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n isEnabled = _this$props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget; // bail early if not enabled\n\n if (!isEnabled) return children;\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n\n return jsx(\"div\", null, jsx(\"div\", {\n onClick: this.blurSelectInput,\n css: _ref$1\n }), jsx(NodeResolver, {\n innerRef: this.getScrollTarget\n }, children), touchScrollTarget ? jsx(ScrollLock, {\n touchScrollTarget: touchScrollTarget\n }) : null);\n };\n\n return ScrollBlock;\n}(PureComponent);\n\nfunction _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose$3(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar ScrollCaptor =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose$3(ScrollCaptor, _Component);\n\n function ScrollCaptor() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.isBottom = false;\n _this.isTop = false;\n _this.scrollTarget = void 0;\n _this.touchStart = void 0;\n\n _this.cancelScroll = function (event) {\n event.preventDefault();\n event.stopPropagation();\n };\n\n _this.handleEventDelta = function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n };\n\n _this.onWheel = function (event) {\n _this.handleEventDelta(event, event.deltaY);\n };\n\n _this.onTouchStart = function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n };\n\n _this.onTouchMove = function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n\n _this.handleEventDelta(event, deltaY);\n };\n\n _this.getScrollTarget = function (ref) {\n _this.scrollTarget = ref;\n };\n\n return _this;\n }\n\n var _proto = ScrollCaptor.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.startListening(this.scrollTarget);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n };\n\n _proto.startListening = function startListening(el) {\n // bail early if no element is available to attach to\n if (!el) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', this.onTouchMove, false);\n }\n };\n\n _proto.stopListening = function stopListening(el) {\n // all the if statements are to appease Flow 😢\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n };\n\n _proto.render = function render() {\n return React.createElement(NodeResolver, {\n innerRef: this.getScrollTarget\n }, this.props.children);\n };\n\n return ScrollCaptor;\n}(Component);\n\nfunction ScrollCaptorSwitch(_ref) {\n var _ref$isEnabled = _ref.isEnabled,\n isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,\n props = _objectWithoutPropertiesLoose$1(_ref, [\"isEnabled\"]);\n\n return isEnabled ? React.createElement(ScrollCaptor, props) : props.children;\n}\n\nvar instructionsAriaMessage = function instructionsAriaMessage(event, context) {\n if (context === void 0) {\n context = {};\n }\n\n var _context = context,\n isSearchable = _context.isSearchable,\n isMulti = _context.isMulti,\n label = _context.label,\n isDisabled = _context.isDisabled;\n\n switch (event) {\n case 'menu':\n return \"Use Up and Down to choose options\" + (isDisabled ? '' : ', press Enter to select the currently focused option') + \", press Escape to exit the menu, press Tab to select the option and exit the menu.\";\n\n case 'input':\n return (label ? label : 'Select') + \" is focused \" + (isSearchable ? ',type to refine list' : '') + \", press Down to open the menu, \" + (isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n }\n};\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value,\n isDisabled = context.isDisabled;\n if (!value) return;\n\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \" + value + \", deselected.\";\n\n case 'select-option':\n return isDisabled ? \"option \" + value + \" is disabled. Select another option.\" : \"option \" + value + \", selected.\";\n }\n};\nvar valueFocusAriaMessage = function valueFocusAriaMessage(_ref) {\n var focusedValue = _ref.focusedValue,\n getOptionLabel = _ref.getOptionLabel,\n selectValue = _ref.selectValue;\n return \"value \" + getOptionLabel(focusedValue) + \" focused, \" + (selectValue.indexOf(focusedValue) + 1) + \" of \" + selectValue.length + \".\";\n};\nvar optionFocusAriaMessage = function optionFocusAriaMessage(_ref2) {\n var focusedOption = _ref2.focusedOption,\n getOptionLabel = _ref2.getOptionLabel,\n options = _ref2.options;\n return \"option \" + getOptionLabel(focusedOption) + \" focused\" + (focusedOption.isDisabled ? ' disabled' : '') + \", \" + (options.indexOf(focusedOption) + 1) + \" of \" + options.length + \".\";\n};\nvar resultsAriaMessage = function resultsAriaMessage(_ref3) {\n var inputValue = _ref3.inputValue,\n screenReaderMessage = _ref3.screenReaderMessage;\n return \"\" + screenReaderMessage + (inputValue ? ' for search term ' + inputValue : '') + \".\";\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$1,\n valueContainer: valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source, target) {\n if (target === void 0) {\n target = {};\n }\n\n // initialize with source styles\n var styles = _extends$3({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nfunction _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }\n\nfunction _inheritsLoose$4(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return count + \" result\" + (count !== 1 ? 's' : '') + \" available\";\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\nvar instanceId = 1;\n\nvar Select =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose$4(Select, _Component);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _this = _Component.call(this, _props) || this;\n _this.state = {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n menuOptions: {\n render: [],\n focusable: []\n },\n selectValue: []\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.clearFocusValueOnUpdate = false;\n _this.commonProps = void 0;\n _this.components = void 0;\n _this.hasGroups = false;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.inputIsHiddenAfterUpdate = void 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n\n _this.focusedOptionRef = null;\n\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n\n _this.menuListRef = null;\n\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n\n _this.inputRef = null;\n\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n\n _this.cacheComponents = function (components) {\n _this.components = defaultComponents({\n components: components\n });\n };\n\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n onChange(newValue, _extends$4({}, actionMeta, {\n name: name\n }));\n };\n\n _this.setValue = function (newValue, action, option) {\n if (action === void 0) {\n action = 'set-value';\n }\n\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.clearFocusValueOnUpdate = true;\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti;\n var selectValue = _this.state.selectValue;\n\n if (isMulti) {\n if (_this.isOptionSelected(newValue, selectValue)) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'deselect-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue([].concat(selectValue, [newValue]), 'select-option', newValue);\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n } else {\n if (!_this.isOptionDisabled(newValue, selectValue)) {\n _this.setValue(newValue, 'select-option');\n\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue)\n }\n });\n } else {\n // announce that option is disabled\n _this.announceAriaLiveSelection({\n event: 'select-option',\n context: {\n value: _this.getOptionLabel(newValue),\n isDisabled: true\n }\n });\n }\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n\n _this.removeValue = function (removedValue) {\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValue = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n\n _this.onChange(newValue.length ? newValue : null, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this.getOptionLabel(removedValue) : ''\n }\n });\n\n _this.focusInput();\n };\n\n _this.clearValue = function () {\n var isMulti = _this.props.isMulti;\n\n _this.onChange(isMulti ? [] : null, {\n action: 'clear'\n });\n };\n\n _this.popValue = function () {\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValue = selectValue.slice(0, selectValue.length - 1);\n\n _this.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this.getOptionLabel(lastSelectedValue) : ''\n }\n });\n\n _this.onChange(newValue.length ? newValue : null, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n _this.getOptionLabel = function (data) {\n return _this.props.getOptionLabel(data);\n };\n\n _this.getOptionValue = function (data) {\n return _this.props.getOptionValue(data);\n };\n\n _this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n _this.getElementId = function (element) {\n return _this.instancePrefix + \"-\" + element;\n };\n\n _this.getActiveDescendentId = function () {\n var menuIsOpen = _this.props.menuIsOpen;\n var _this$state = _this.state,\n menuOptions = _this$state.menuOptions,\n focusedOption = _this$state.focusedOption;\n if (!focusedOption || !menuIsOpen) return undefined;\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n return option && option.key;\n };\n\n _this.announceAriaLiveSelection = function (_ref2) {\n var event = _ref2.event,\n context = _ref2.context;\n\n _this.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context)\n });\n };\n\n _this.announceAriaLiveContext = function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this.setState({\n ariaLiveContext: instructionsAriaMessage(event, _extends$4({}, context, {\n label: _this.props['aria-label']\n }))\n });\n };\n\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n };\n\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n\n _this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = !isMulti;\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n\n _this.onTouchStart = function (_ref4) {\n var touches = _ref4.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n\n _this.onTouchMove = function (_ref5) {\n var touches = _ref5.touches;\n var touch = touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n };\n\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n };\n\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n };\n\n _this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n _this.onMenuOpen();\n };\n\n _this.onInputFocus = function (event) {\n var _this$props5 = _this.props,\n isSearchable = _this$props5.isSearchable,\n isMulti = _this$props5.isMulti;\n\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n\n _this.setState({\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n };\n\n _this.onInputBlur = function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n };\n\n _this.shouldHideSelectedOptions = function () {\n var _this$props6 = _this.props,\n hideSelectedOptions = _this$props6.hideSelectedOptions,\n isMulti = _this$props6.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n };\n\n _this.onKeyDown = function (event) {\n var _this$props7 = _this.props,\n isMulti = _this$props7.isMulti,\n backspaceRemovesValue = _this$props7.backspaceRemovesValue,\n escapeClearsValue = _this$props7.escapeClearsValue,\n inputValue = _this$props7.inputValue,\n isClearable = _this$props7.isClearable,\n isDisabled = _this$props7.isDisabled,\n menuIsOpen = _this$props7.menuIsOpen,\n onKeyDown = _this$props7.onKeyDown,\n tabSelectsValue = _this$props7.tabSelectsValue,\n openMenuOnFocus = _this$props7.openMenuOnFocus;\n var _this$state2 = _this.state,\n focusedOption = _this$state2.focusedOption,\n focusedValue = _this$state2.focusedValue,\n selectValue = _this$state2.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.inputIsHiddenAfterUpdate = false;\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n };\n\n _this.buildMenuOptions = function (props, selectValue) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue,\n options = props.options;\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this.isOptionDisabled(option, selectValue);\n\n var isSelected = _this.isOptionSelected(option, selectValue);\n\n var label = _this.getOptionLabel(option);\n\n var value = _this.getOptionValue(option);\n\n if (_this.shouldHideSelectedOptions() && isSelected || !_this.filterOption({\n label: label,\n value: value,\n data: option\n }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this.selectOption(option);\n };\n var optionId = _this.getElementId('option') + \"-\" + id;\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this.hasGroups) _this.hasGroups = true;\n var items = item.options;\n var children = items.map(function (child, i) {\n var option = toOption(child, itemIndex + \"-\" + i);\n if (option) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n\n if (children.length) {\n var groupId = _this.getElementId('group') + \"-\" + itemIndex;\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, \"\" + itemIndex);\n\n if (option) {\n acc.render.push(option);\n acc.focusable.push(item);\n }\n }\n\n return acc;\n }, {\n render: [],\n focusable: []\n });\n };\n\n var _value = _props.value;\n _this.cacheComponents = memoizeOne(_this.cacheComponents, exportedEqual).bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n _this.cacheComponents(_props.components);\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var _selectValue = cleanValue(_value);\n\n _this.buildMenuOptions = memoizeOne(_this.buildMenuOptions, function (newArgs, lastArgs) {\n var _ref6 = newArgs,\n newProps = _ref6[0],\n newSelectValue = _ref6[1];\n var _ref7 = lastArgs,\n lastProps = _ref7[0],\n lastSelectValue = _ref7[1];\n return exportedEqual(newSelectValue, lastSelectValue) && exportedEqual(newProps.inputValue, lastProps.inputValue) && exportedEqual(newProps.options, lastProps.options);\n }).bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n var _menuOptions = _props.menuIsOpen ? _this.buildMenuOptions(_props, _selectValue) : {\n render: [],\n focusable: []\n };\n\n _this.state.menuOptions = _menuOptions;\n _this.state.selectValue = _selectValue;\n return _this;\n }\n\n var _proto = Select.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n };\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n var _this$props8 = this.props,\n options = _this$props8.options,\n value = _this$props8.value,\n menuIsOpen = _this$props8.menuIsOpen,\n inputValue = _this$props8.inputValue; // re-cache custom components\n\n this.cacheComponents(nextProps.components); // rebuild the menu options\n\n if (nextProps.value !== value || nextProps.options !== options || nextProps.menuIsOpen !== menuIsOpen || nextProps.inputValue !== inputValue) {\n var selectValue = cleanValue(nextProps.value);\n var menuOptions = nextProps.menuIsOpen ? this.buildMenuOptions(nextProps, selectValue) : {\n render: [],\n focusable: []\n };\n var focusedValue = this.getNextFocusedValue(selectValue);\n var focusedOption = this.getNextFocusedOption(menuOptions.focusable);\n this.setState({\n menuOptions: menuOptions,\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue\n });\n } // some updates should toggle the state of the input visibility\n\n\n if (this.inputIsHiddenAfterUpdate != null) {\n this.setState({\n inputIsHidden: this.inputIsHiddenAfterUpdate\n });\n delete this.inputIsHiddenAfterUpdate;\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n isDisabled = _this$props9.isDisabled,\n menuIsOpen = _this$props9.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n };\n\n // ==============================\n // Consumer Handlers\n // ==============================\n _proto.onMenuOpen = function onMenuOpen() {\n this.props.onMenuOpen();\n };\n\n _proto.onMenuClose = function onMenuClose() {\n var _this$props10 = this.props,\n isSearchable = _this$props10.isSearchable,\n isMulti = _this$props10.isMulti;\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n };\n\n _proto.onInputChange = function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n ;\n\n _proto.focusInput = function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n };\n\n _proto.blurInput = function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n ;\n\n _proto.openMenu = function openMenu(focusOption) {\n var _this2 = this;\n\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n isFocused = _this$state3.isFocused;\n var menuOptions = this.buildMenuOptions(this.props, selectValue);\n var isMulti = this.props.isMulti;\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.inputIsHiddenAfterUpdate = false;\n this.setState({\n menuOptions: menuOptions,\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n }, function () {\n _this2.onMenuOpen();\n\n _this2.announceAriaLiveContext({\n event: 'menu'\n });\n });\n };\n\n _proto.focusValue = function focusValue(direction) {\n var _this$props11 = this.props,\n isMulti = _this$props11.isMulti,\n isSearchable = _this$props11.isSearchable;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue; // Only multiselects support value focusing\n\n if (!isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'value'\n });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: {\n isSearchable: isSearchable,\n isMulti: isMulti\n }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n };\n\n _proto.focusOption = function focusOption(direction) {\n if (direction === void 0) {\n direction = 'first';\n }\n\n var pageSize = this.props.pageSize;\n var _this$state5 = this.state,\n focusedOption = _this$state5.focusedOption,\n menuOptions = _this$state5.menuOptions;\n var options = menuOptions.focusable;\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\n this.announceAriaLiveContext({\n event: 'menu'\n });\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n this.announceAriaLiveContext({\n event: 'menu',\n context: {\n isDisabled: isOptionDisabled(options[nextFocus])\n }\n });\n };\n\n // ==============================\n // Getters\n // ==============================\n _proto.getTheme = function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n } // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _extends$4({}, defaultTheme, this.props.theme);\n };\n\n _proto.getCommonProps = function getCommonProps() {\n var clearValue = this.clearValue,\n getStyles = this.getStyles,\n setValue = this.setValue,\n selectOption = this.selectOption,\n props = this.props;\n var classNamePrefix = props.classNamePrefix,\n isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var selectValue = this.state.selectValue;\n var hasValue = this.hasValue();\n\n var getValue = function getValue() {\n return selectValue;\n };\n\n var cx = classNames.bind(null, classNamePrefix);\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n };\n\n _proto.getNextFocusedValue = function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n\n var _this$state6 = this.state,\n focusedValue = _this$state6.focusedValue,\n lastSelectValue = _this$state6.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n };\n\n _proto.getNextFocusedOption = function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n };\n\n _proto.hasValue = function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n };\n\n _proto.hasOptions = function hasOptions() {\n return !!this.state.menuOptions.render.length;\n };\n\n _proto.countOptions = function countOptions() {\n return this.state.menuOptions.focusable.length;\n };\n\n _proto.isClearable = function isClearable() {\n var _this$props12 = this.props,\n isClearable = _this$props12.isClearable,\n isMulti = _this$props12.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n };\n\n _proto.isOptionDisabled = function isOptionDisabled(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n };\n\n _proto.isOptionSelected = function isOptionSelected(option, selectValue) {\n var _this3 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this3.getOptionValue(i) === candidate;\n });\n };\n\n _proto.filterOption = function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n };\n\n _proto.formatOptionLabel = function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var inputValue = this.props.inputValue;\n var selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n };\n\n _proto.formatGroupLabel = function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n ;\n\n // ==============================\n // Composition Handlers\n // ==============================\n _proto.startListeningComposition = function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n };\n\n _proto.stopListeningComposition = function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n };\n\n // ==============================\n // Touch Handlers\n // ==============================\n _proto.startListeningToTouch = function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n };\n\n _proto.stopListeningToTouch = function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n };\n\n // ==============================\n // Renderers\n // ==============================\n _proto.constructAriaLiveMessage = function constructAriaLiveMessage() {\n var _this$state7 = this.state,\n ariaLiveContext = _this$state7.ariaLiveContext,\n selectValue = _this$state7.selectValue,\n focusedValue = _this$state7.focusedValue,\n focusedOption = _this$state7.focusedOption;\n var _this$props13 = this.props,\n options = _this$props13.options,\n menuIsOpen = _this$props13.menuIsOpen,\n inputValue = _this$props13.inputValue,\n screenReaderStatus = _this$props13.screenReaderStatus; // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? valueFocusAriaMessage({\n focusedValue: focusedValue,\n getOptionLabel: this.getOptionLabel,\n selectValue: selectValue\n }) : ''; // An aria live message representing the currently focused option in the select.\n\n var focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({\n focusedOption: focusedOption,\n getOptionLabel: this.getOptionLabel,\n options: options\n }) : ''; // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n\n var resultsMsg = resultsAriaMessage({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({\n count: this.countOptions()\n })\n });\n return focusedValueMsg + \" \" + focusedOptionMsg + \" \" + resultsMsg + \" \" + ariaLiveContext;\n };\n\n _proto.renderInput = function renderInput() {\n var _this$props14 = this.props,\n isDisabled = _this$props14.isDisabled,\n isSearchable = _this$props14.isSearchable,\n inputId = _this$props14.inputId,\n inputValue = _this$props14.inputValue,\n tabIndex = _this$props14.tabIndex;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n var id = inputId || this.getElementId('input'); // aria attributes makes the JSX \"noisy\", separated for clarity\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return React.createElement(DummyInput, _extends$4({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n disabled: isDisabled,\n tabIndex: tabIndex,\n value: \"\"\n }, ariaAttributes));\n }\n\n var _this$commonProps = this.commonProps,\n cx = _this$commonProps.cx,\n theme = _this$commonProps.theme,\n selectProps = _this$commonProps.selectProps;\n return React.createElement(Input, _extends$4({\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n selectProps: selectProps,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n theme: theme,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n };\n\n _proto.renderPlaceholderOrValue = function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _this$components = this.components,\n MultiValue = _this$components.MultiValue,\n MultiValueContainer = _this$components.MultiValueContainer,\n MultiValueLabel = _this$components.MultiValueLabel,\n MultiValueRemove = _this$components.MultiValueRemove,\n SingleValue = _this$components.SingleValue,\n Placeholder = _this$components.Placeholder;\n var commonProps = this.commonProps;\n var _this$props15 = this.props,\n controlShouldRenderValue = _this$props15.controlShouldRenderValue,\n isDisabled = _this$props15.isDisabled,\n isMulti = _this$props15.isMulti,\n inputValue = _this$props15.inputValue,\n placeholder = _this$props15.placeholder;\n var _this$state8 = this.state,\n selectValue = _this$state8.selectValue,\n focusedValue = _this$state8.focusedValue,\n isFocused = _this$state8.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : React.createElement(Placeholder, _extends$4({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused\n }), placeholder);\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n return React.createElement(MultiValue, _extends$4({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this4.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return React.createElement(SingleValue, _extends$4({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n };\n\n _proto.renderClearIndicator = function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props16 = this.props,\n isDisabled = _this$props16.isDisabled,\n isLoading = _this$props16.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return React.createElement(ClearIndicator, _extends$4({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n };\n\n _proto.renderLoadingIndicator = function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props17 = this.props,\n isDisabled = _this$props17.isDisabled,\n isLoading = _this$props17.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return React.createElement(LoadingIndicator, _extends$4({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n };\n\n _proto.renderIndicatorSeparator = function renderIndicatorSeparator() {\n var _this$components2 = this.components,\n DropdownIndicator = _this$components2.DropdownIndicator,\n IndicatorSeparator = _this$components2.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return React.createElement(IndicatorSeparator, _extends$4({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n };\n\n _proto.renderDropdownIndicator = function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return React.createElement(DropdownIndicator, _extends$4({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n };\n\n _proto.renderMenu = function renderMenu() {\n var _this5 = this;\n\n var _this$components3 = this.components,\n Group = _this$components3.Group,\n GroupHeading = _this$components3.GroupHeading,\n Menu = _this$components3.Menu,\n MenuList = _this$components3.MenuList,\n MenuPortal = _this$components3.MenuPortal,\n LoadingMessage = _this$components3.LoadingMessage,\n NoOptionsMessage = _this$components3.NoOptionsMessage,\n Option = _this$components3.Option;\n var commonProps = this.commonProps;\n var _this$state9 = this.state,\n focusedOption = _this$state9.focusedOption,\n menuOptions = _this$state9.menuOptions;\n var _this$props18 = this.props,\n captureMenuScroll = _this$props18.captureMenuScroll,\n inputValue = _this$props18.inputValue,\n isLoading = _this$props18.isLoading,\n loadingMessage = _this$props18.loadingMessage,\n minMenuHeight = _this$props18.minMenuHeight,\n maxMenuHeight = _this$props18.maxMenuHeight,\n menuIsOpen = _this$props18.menuIsOpen,\n menuPlacement = _this$props18.menuPlacement,\n menuPosition = _this$props18.menuPosition,\n menuPortalTarget = _this$props18.menuPortalTarget,\n menuShouldBlockScroll = _this$props18.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props18.menuShouldScrollIntoView,\n noOptionsMessage = _this$props18.noOptionsMessage,\n onMenuScrollToTop = _this$props18.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props18.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n return React.createElement(Option, _extends$4({}, commonProps, props, {\n isFocused: isFocused\n }), _this5.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = _objectWithoutPropertiesLoose$2(item, [\"type\"]);\n\n var headingId = item.key + \"-heading\";\n return React.createElement(Group, _extends$4({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option);\n }));\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = React.createElement(MenuPlacer, _extends$4({}, commonProps, menuPlacementProps), function (_ref8) {\n var ref = _ref8.ref,\n _ref8$placerProps = _ref8.placerProps,\n placement = _ref8$placerProps.placement,\n maxHeight = _ref8$placerProps.maxHeight;\n return React.createElement(Menu, _extends$4({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), React.createElement(ScrollCaptorSwitch, {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n }, React.createElement(ScrollBlock, {\n isEnabled: menuShouldBlockScroll\n }, React.createElement(MenuList, _extends$4({}, commonProps, {\n innerRef: _this5.getMenuListRef,\n isLoading: isLoading,\n maxHeight: maxHeight\n }), menuUI))));\n }); // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n\n return menuPortalTarget || menuPosition === 'fixed' ? React.createElement(MenuPortal, _extends$4({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n };\n\n _proto.renderFormField = function renderFormField() {\n var _this6 = this;\n\n var _this$props19 = this.props,\n delimiter = _this$props19.delimiter,\n isDisabled = _this$props19.isDisabled,\n isMulti = _this$props19.isMulti,\n name = _this$props19.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return React.createElement(\"input\", {\n key: \"i-\" + i,\n name: name,\n type: \"hidden\",\n value: _this6.getOptionValue(opt)\n });\n }) : React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return React.createElement(\"div\", null, input);\n }\n } else {\n var _value2 = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value2\n });\n }\n };\n\n _proto.renderLiveRegion = function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return React.createElement(A11yText, {\n \"aria-live\": \"polite\"\n }, React.createElement(\"p\", {\n id: \"aria-selection-event\"\n }, \"\\xA0\", this.state.ariaLiveSelection), React.createElement(\"p\", {\n id: \"aria-context\"\n }, \"\\xA0\", this.constructAriaLiveMessage()));\n };\n\n _proto.render = function render() {\n var _this$components4 = this.components,\n Control = _this$components4.Control,\n IndicatorsContainer = _this$components4.IndicatorsContainer,\n SelectContainer = _this$components4.SelectContainer,\n ValueContainer = _this$components4.ValueContainer;\n var _this$props20 = this.props,\n className = _this$props20.className,\n id = _this$props20.id,\n isDisabled = _this$props20.isDisabled,\n menuIsOpen = _this$props20.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return React.createElement(SelectContainer, _extends$4({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), React.createElement(Control, _extends$4({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), React.createElement(ValueContainer, _extends$4({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), React.createElement(IndicatorsContainer, _extends$4({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n };\n\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, defaultTheme as a, createFilter as c, defaultProps as d, mergeStyles as m };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/dist/Select-9fdb8cd0.browser.esm.js\n// module id = 467\n// module chunks = 19","import { Component } from 'react';\nimport { jsx, keyframes, ClassNames } from '@emotion/core';\nimport { createPortal } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { g as getBoundingClientObj, a as getScrollParent, b as getScrollTop, c as animatedScrollTo, s as scrollTo } from './utils-06b0d5a4.browser.esm.js';\nimport _css from '@emotion/css';\nimport AutosizeInput from 'react-input-autosize';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: maxHeight\n }; // something went wrong, return default state\n\n if (!menuEl || !menuEl.offsetParent) return defaultState; // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n } // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n } // 4. Forked beviour when there isn't enough space below\n // AUTO: flip the menu, render above\n\n\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n } // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n\n\n if (placement === 'bottom') {\n scrollTo(scrollParent, scrollDown);\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n }\n\n break;\n\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight; // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n } // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n\n default:\n throw new Error(\"Invalid placement provided \\\"\" + placement + \"\\\".\");\n } // fulfil contract with flow: implicit return value of undefined\n\n\n return defaultState;\n} // Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\n\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {\n label: 'menu'\n }, _ref3[alignToControl(placement)] = '100%', _ref3.backgroundColor = colors.neutral0, _ref3.borderRadius = borderRadius, _ref3.boxShadow = '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)', _ref3.marginBottom = spacing.menuGutter, _ref3.marginTop = spacing.menuGutter, _ref3.position = 'absolute', _ref3.width = '100%', _ref3.zIndex = 1, _ref3;\n}; // NOTE: internal only\n\nvar MenuPlacer =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(MenuPlacer, _Component);\n\n function MenuPlacer() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n };\n\n _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n };\n\n _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _extends({}, _this.props, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n };\n\n return _this;\n }\n\n var _proto = MenuPlacer.prototype;\n\n _proto.render = function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n };\n\n return MenuPlacer;\n}(Component);\nMenuPlacer.contextTypes = {\n getPortalPlacement: PropTypes.func\n};\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('menu', props),\n className: cx({\n menu: true\n }, className)\n }, innerProps, {\n ref: innerRef\n }), children);\n};\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isMulti = props.isMulti,\n innerRef = props.innerRef;\n return jsx(\"div\", {\n css: getStyles('menuList', props),\n className: cx({\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return {\n color: colors.neutral40,\n padding: baseUnit * 2 + \"px \" + baseUnit * 3 + \"px\",\n textAlign: 'center'\n };\n};\n\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('noOptionsMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('loadingMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n}; // ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal =\n/*#__PURE__*/\nfunction (_Component2) {\n _inheritsLoose(MenuPortal, _Component2);\n\n function MenuPortal() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _Component2.call.apply(_Component2, [this].concat(args)) || this;\n _this2.state = {\n placement: null\n };\n\n _this2.getPortalPlacement = function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = MenuPortal.prototype;\n\n _proto2.getChildContext = function getChildContext() {\n return {\n getPortalPlacement: this.getPortalPlacement\n };\n } // callback for occassions where the menu must \"flip\"\n ;\n\n _proto2.render = function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n controlElement = _this$props2.controlElement,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = {\n offset: offset,\n position: position,\n rect: rect\n }; // same wrapper element whether fixed or portalled\n\n var menuWrapper = jsx(\"div\", {\n css: getStyles('menuPortal', state)\n }, children);\n return appendTo ? createPortal(menuWrapper, appendTo) : menuWrapper;\n };\n\n return MenuPortal;\n}(Component);\nMenuPortal.childContextTypes = {\n getPortalPlacement: PropTypes.func\n};\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n } // end fast-deep-equal\n // Custom handling for React\n\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n } // fast-deep-equal index.js 2.0.1\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n}\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends$1({\n css: getStyles('container', props),\n className: cx({\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: spacing.baseUnit / 2 + \"px \" + spacing.baseUnit * 2 + \"px\",\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n isMulti = props.isMulti,\n getStyles = props.getStyles,\n hasValue = props.hasValue;\n return jsx(\"div\", {\n css: getStyles('valueContainer', props),\n className: cx({\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, children);\n}; // ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n return jsx(\"div\", {\n css: getStyles('indicatorsContainer', props),\n className: cx({\n indicators: true\n }, className)\n }, children);\n};\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteralLoose([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"19bqh2r\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;\"\n} : {\n name: \"19bqh2r\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vblByb3BzLCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHsgc2l6ZSwgLi4ucHJvcHMgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gKFxuICA8c3ZnXG4gICAgaGVpZ2h0PXtzaXplfVxuICAgIHdpZHRoPXtzaXplfVxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIGNzcz17e1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgfX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBhbnkpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk00LjUxNiA3LjU0OGMwLjQzNi0wLjQ0NiAxLjA0My0wLjQ4MSAxLjU3NiAwbDMuOTA4IDMuNzQ3IDMuOTA4LTMuNzQ3YzAuNTMzLTAuNDgxIDEuMTQxLTAuNDQ2IDEuNTc0IDAgMC40MzYgMC40NDUgMC40MDggMS4xOTcgMCAxLjYxNS0wLjQwNiAwLjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMi0wLjIxNyAwLjIyMy0wLjUwMiAwLjMzNS0wLjc4NyAwLjMzNXMtMC41Ny0wLjExMi0wLjc4OS0wLjMzNWMwIDAtNC4yODctNC4wODQtNC42OTUtNC41MDJzLTAuNDM2LTEuMTcgMC0xLjYxNXpcIiAvPlxuICA8L1N2Zz5cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBCdXR0b25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yUHJvcHMgPSBDb21tb25Qcm9wcyAmIHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW46IE5vZGUsXG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufTtcblxuY29uc3QgYmFzZUNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogSW5kaWNhdG9yUHJvcHMpID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yQ29udGFpbmVyJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcblxuICAnOmhvdmVyJzoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDgwIDogY29sb3JzLm5ldXRyYWw0MCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2Ryb3Bkb3duSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnZHJvcGRvd24taW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnY2xlYXItaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50eXBlIFNlcGFyYXRvclN0YXRlID0geyBpc0Rpc2FibGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSAoe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBDb21tb25Qcm9wcyAmIFNlcGFyYXRvclN0YXRlKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gKHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiB7XG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgc2l6ZTogbnVtYmVyLFxuICB0aGVtZTogVGhlbWUsXG59KSA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxufSk7XG5cbnR5cGUgRG90UHJvcHMgPSB7IGRlbGF5OiBudW1iZXIsIG9mZnNldDogYm9vbGVhbiB9O1xuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogRG90UHJvcHMpID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGFuaW1hdGlvbjogYCR7bG9hZGluZ0RvdEFuaW1hdGlvbnN9IDFzIGVhc2UtaW4tb3V0ICR7ZGVsYXl9bXMgaW5maW5pdGU7YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxZW0nLFxuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBtYXJnaW5MZWZ0OiBvZmZzZXQgPyAnMWVtJyA6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdJY29uUHJvcHMgPSB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufSAmIENvbW1vblByb3BzICYge1xuICAgIC8qKiBTZXQgc2l6ZSBvZiB0aGUgY29udGFpbmVyLiAqL1xuICAgIHNpemU6IG51bWJlcixcbiAgfTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gKHByb3BzOiBMb2FkaW5nSWNvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdsb2FkaW5nSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\"\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutPropertiesLoose(_ref, [\"size\"]);\n\n return jsx(\"svg\", _extends$2({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends$2({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends$2({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n}; // ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n label: 'indicatorContainer',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$2({}, innerProps, {\n css: getStyles('dropdownIndicator', props),\n className: cx({\n indicator: true,\n 'dropdown-indicator': true\n }, className)\n }), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$2({}, innerProps, {\n css: getStyles('clearIndicator', props),\n className: cx({\n indicator: true,\n 'clear-indicator': true\n }, className)\n }), children || jsx(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return {\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"span\", _extends$2({}, innerProps, {\n css: getStyles('indicatorSeparator', props),\n className: cx({\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject());\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return {\n label: 'loadingIndicator',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css:\n /*#__PURE__*/\n _css({\n animation: loadingDotAnimations + \" 1s ease-in-out \" + delay + \"ms infinite;\",\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0xJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vblByb3BzLCBUaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHsgc2l6ZSwgLi4ucHJvcHMgfTogeyBzaXplOiBudW1iZXIgfSkgPT4gKFxuICA8c3ZnXG4gICAgaGVpZ2h0PXtzaXplfVxuICAgIHdpZHRoPXtzaXplfVxuICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgIGNzcz17e1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgfX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBhbnkpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk00LjUxNiA3LjU0OGMwLjQzNi0wLjQ0NiAxLjA0My0wLjQ4MSAxLjU3NiAwbDMuOTA4IDMuNzQ3IDMuOTA4LTMuNzQ3YzAuNTMzLTAuNDgxIDEuMTQxLTAuNDQ2IDEuNTc0IDAgMC40MzYgMC40NDUgMC40MDggMS4xOTcgMCAxLjYxNS0wLjQwNiAwLjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMi0wLjIxNyAwLjIyMy0wLjUwMiAwLjMzNS0wLjc4NyAwLjMzNXMtMC41Ny0wLjExMi0wLjc4OS0wLjMzNWMwIDAtNC4yODctNC4wODQtNC42OTUtNC41MDJzLTAuNDM2LTEuMTcgMC0xLjYxNXpcIiAvPlxuICA8L1N2Zz5cbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBCdXR0b25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW5kaWNhdG9yUHJvcHMgPSBDb21tb25Qcm9wcyAmIHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW46IE5vZGUsXG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufTtcblxuY29uc3QgYmFzZUNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogSW5kaWNhdG9yUHJvcHMpID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yQ29udGFpbmVyJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcblxuICAnOmhvdmVyJzoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDgwIDogY29sb3JzLm5ldXRyYWw0MCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IERyb3Bkb3duSW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2Ryb3Bkb3duSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnZHJvcGRvd24taW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8RG93bkNoZXZyb24gLz59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xuZXhwb3J0IGNvbnN0IENsZWFySW5kaWNhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnY2xlYXItaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG50eXBlIFNlcGFyYXRvclN0YXRlID0geyBpc0Rpc2FibGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSAoe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBDb21tb25Qcm9wcyAmIFNlcGFyYXRvclN0YXRlKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gKHByb3BzOiBJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gKHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiB7XG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgc2l6ZTogbnVtYmVyLFxuICB0aGVtZTogVGhlbWUsXG59KSA9PiAoe1xuICBsYWJlbDogJ2xvYWRpbmdJbmRpY2F0b3InLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxufSk7XG5cbnR5cGUgRG90UHJvcHMgPSB7IGRlbGF5OiBudW1iZXIsIG9mZnNldDogYm9vbGVhbiB9O1xuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogRG90UHJvcHMpID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGFuaW1hdGlvbjogYCR7bG9hZGluZ0RvdEFuaW1hdGlvbnN9IDFzIGVhc2UtaW4tb3V0ICR7ZGVsYXl9bXMgaW5maW5pdGU7YCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBib3JkZXJSYWRpdXM6ICcxZW0nLFxuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICBtYXJnaW5MZWZ0OiBvZmZzZXQgPyAnMWVtJyA6IG51bGwsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIExvYWRpbmdJY29uUHJvcHMgPSB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogYW55LFxuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuLFxuICAvKiogV2hldGhlciB0aGUgdGV4dCBpcyByaWdodCB0byBsZWZ0ICovXG4gIGlzUnRsOiBib29sZWFuLFxufSAmIENvbW1vblByb3BzICYge1xuICAgIC8qKiBTZXQgc2l6ZSBvZiB0aGUgY29udGFpbmVyLiAqL1xuICAgIHNpemU6IG51bWJlcixcbiAgfTtcbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gKHByb3BzOiBMb2FkaW5nSWNvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdsb2FkaW5nSW5kaWNhdG9yJywgcHJvcHMpfVxuICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAge1xuICAgICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgICAnbG9hZGluZy1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\")\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends$2({}, innerProps, {\n css: getStyles('loadingIndicator', props),\n className: cx({\n indicator: true,\n 'loading-indicator': true\n }, className)\n }), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\nvar css = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n label: 'control',\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \" + colors.primary : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends$3({\n ref: innerRef,\n css: getStyles('control', props),\n className: cx({\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nfunction _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends$4() { _extends$4 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", {\n css: getStyles('group', props),\n className: cx({\n group: true\n }, className)\n }, jsx(Heading, _extends$4({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n label: 'group',\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\nvar GroupHeading = function GroupHeading(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n theme = props.theme,\n selectProps = props.selectProps,\n cleanProps = _objectWithoutPropertiesLoose$1(props, [\"className\", \"cx\", \"getStyles\", \"theme\", \"selectProps\"]);\n\n return jsx(\"div\", _extends$4({\n css: getStyles('groupHeading', _extends$4({\n theme: theme\n }, cleanProps)),\n className: cx({\n 'group-heading': true\n }, className)\n }, cleanProps));\n};\n\nfunction _extends$5() { _extends$5 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\n\nvar inputStyle = function inputStyle(isHidden) {\n return {\n label: 'input',\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(_ref2) {\n var className = _ref2.className,\n cx = _ref2.cx,\n getStyles = _ref2.getStyles,\n innerRef = _ref2.innerRef,\n isHidden = _ref2.isHidden,\n isDisabled = _ref2.isDisabled,\n theme = _ref2.theme,\n selectProps = _ref2.selectProps,\n props = _objectWithoutPropertiesLoose$2(_ref2, [\"className\", \"cx\", \"getStyles\", \"innerRef\", \"isHidden\", \"isDisabled\", \"theme\", \"selectProps\"]);\n\n return jsx(\"div\", {\n css: getStyles('input', _extends$5({\n theme: theme\n }, props))\n }, jsx(AutosizeInput, _extends$5({\n className: cx({\n input: true\n }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props)));\n};\n\nfunction _extends$6() { _extends$6 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); }\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n label: 'multiValue',\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n\n };\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return jsx(\"div\", innerProps, children || jsx(CrossIcon, {\n size: 14\n }));\n}\n\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n className = props.className,\n components = props.components,\n cx = props.cx,\n data = props.data,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(ClassNames, null, function (_ref6) {\n var css = _ref6.css,\n emotionCx = _ref6.cx;\n return jsx(Container, {\n data: data,\n innerProps: _extends$6({}, innerProps, {\n className: emotionCx(css(getStyles('multiValue', props)), cx({\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className))\n }),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: {\n className: emotionCx(css(getStyles('multiValueLabel', props)), cx({\n 'multi-value__label': true\n }, className))\n },\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _extends$6({\n className: emotionCx(css(getStyles('multiValueRemove', props)), cx({\n 'multi-value__remove': true\n }, className))\n }, removeProps),\n selectProps: selectProps\n }));\n });\n};\n\nMultiValue.defaultProps = {\n cropWithEllipsis: true\n};\n\nfunction _extends$7() { _extends$7 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); }\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'option',\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: spacing.baseUnit * 2 + \"px \" + spacing.baseUnit * 3 + \"px\",\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled && (isSelected ? colors.primary : colors.primary50)\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$7({\n css: getStyles('option', props),\n className: cx({\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className),\n ref: innerRef\n }, innerProps), children);\n};\n\nfunction _extends$8() { _extends$8 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'placeholder',\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$8({\n css: getStyles('placeholder', props),\n className: cx({\n placeholder: true\n }, className)\n }, innerProps), children);\n};\n\nfunction _extends$9() { _extends$9 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); }\nvar css$1 = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'singleValue',\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: \"calc(100% - \" + spacing.baseUnit * 2 + \"px)\",\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends$9({\n css: getStyles('singleValue', props),\n className: cx({\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nfunction _extends$a() { _extends$a = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); }\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _extends$a({}, components, props.components);\n};\n\nexport { MenuPlacer as M, containerCSS as a, css as b, clearIndicatorCSS as c, dropdownIndicatorCSS as d, groupHeadingCSS as e, indicatorSeparatorCSS as f, groupCSS as g, inputCSS as h, indicatorsContainerCSS as i, loadingMessageCSS as j, menuListCSS as k, loadingIndicatorCSS as l, menuCSS as m, menuPortalCSS as n, multiValueCSS as o, multiValueLabelCSS as p, multiValueRemoveCSS as q, noOptionsMessageCSS as r, optionCSS as s, placeholderCSS as t, css$1 as u, valueContainerCSS as v, defaultComponents as w, exportedEqual as x, components as y };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/dist/index-4322c0ed.browser.esm.js\n// module id = 468\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/~/prop-types/index.js\n// module id = 469\n// module chunks = 19","import { page as pageIndex, globals } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\nimport { logOut } from './auth'\r\nimport { clearHistory, saveInitialValues } from './undo'\r\nimport { showModal, hideModal } from './modal'\r\nimport { returnRegions } from './regions'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_QUERIES_AND_PARAMETERS_START = 'GET_QUERIES_AND_PARAMETERS_START'\r\nexport const GET_QUERIES_AND_PARAMETERS_FETCHED = 'GET_QUERIES_AND_PARAMETERS_FETCHED'\r\nexport const GET_QUERIES_AND_PARAMETERS_FAILURE = 'GET_QUERIES_AND_PARAMETERS_FAILURE'\r\nexport const GET_REGS_URLS_START = 'GET_REGS_URLS_START'\r\nexport const GET_REGS_URLS_FETCHED = 'GET_REGS_URLS_FETCHED'\r\nexport const GET_REGS_URLS_FAILURE = 'GET_REGS_URLS_FAILURE'\r\nexport const GET_REGS_URL_START = 'GET_REGS_URL_START'\r\nexport const GET_REGS_URL_FETCHED = 'GET_REGS_URL_FETCHED'\r\nexport const GET_REGS_URL_FAILURE = 'GET_REGS_URL_FAILURE'\r\nexport const SAVE_REGS_URL_START = 'SAVE_REGS_URL_START'\r\nexport const REGS_URL_SAVED = 'REGS_URL_SAVED'\r\nexport const SAVE_REGS_URL_FAILURE = 'SAVE_REGS_URL_FAILURE'\r\nexport const RETURN_INITIAL_REGS_URLS = 'RETURN_INITIAL_REGS_URLS'\r\nexport const GET_REGS_URL_ENTITY_START = 'GET_REGS_URL_ENTITY_START'\r\nexport const REGS_URL_ENTITY_FETCHED = 'REGS_URL_ENTITY_FETCHED'\r\nexport const GET_REGS_URL_ENTITY_FAILURE = 'GET_REGS_URL_ENTITY_FAILURE'\r\nexport const CLEAR_REGS_URL_FORM = 'CLEAR_REGS_URL_FORM'\r\nexport const CREATE_REGS_URL_START = 'CREATE_REGS_URL_START'\r\nexport const REGS_URL_CREATED = 'REGS_URL_CREATED'\r\nexport const CREATE_REGS_URL_FAILURE = 'CREATE_REGS_URL_FAILURE'\r\nexport const UPDATE_REGS_URL_START = 'UPDATE_REGS_URL_START'\r\nexport const REGS_URL_UPDATED = 'REGS_URL_UPDATED'\r\nexport const UPDATE_REGS_URL_FAILURE = 'UPDATE_REGS_URL_FAILURE'\r\nexport const DELETE_REGS_URL_START = 'DELETE_REGS_URL_START'\r\nexport const REGS_URL_DELETED = 'REGS_URL_DELETED'\r\nexport const DELETE_REGS_URL_FAILURE = 'DELETE_REGS_URL_FAILURE'\r\nexport const REGS_URL_EXISTS = 'REGS_URL_EXISTS'\r\nexport const GET_SET_OPTIONS_START = 'GET_SET_OPTIONS_START'\r\nexport const SET_OPTIONS_FETCHED = 'SET_OPTIONS_FETCHED'\r\nexport const GET_SET_OPTIONS_FAILURE = 'GET_SET_OPTIONS_FAILURE'\r\nexport const CLEAR_FIELD_FOR_NO_RESULTS_RU = 'CLEAR_FIELD_FOR_NO_RESULTS_RU'\r\nexport const SAVE_REGS_URL_FEEDBACK_START = 'SAVE_REGS_URL_FEEDBACK_START'\r\nexport const SAVE_REGS_URL_FEEDBACK_SUCCESS = 'SAVE_REGS_URL_FEEDBACK_SUCCESS'\r\nexport const SAVE_REGS_URL_FEEDBACK_FAILURE = 'SAVE_REGS_URL_FEEDBACK_FAILURE'\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function getQueriesWithParameters () {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QUERIES_AND_PARAMETERS_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrls`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QUERIES_AND_PARAMETERS_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_QUERIES_AND_PARAMETERS_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function getRegsUrls (regsUrlsParameters, queryId, openRecordId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGS_URLS_START })\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(regsUrlsParameters)\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrls`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGS_URLS_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n if (json.length === 0) {\r\n dispatch(showModal('No-results'))\r\n } else if (openRecordId) {\r\n dispatch(getRegsUrlData(openRecordId, queryId))\r\n } else {\r\n dispatch(getRegsUrlData(json[0].Id, queryId))\r\n }\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_REGS_URLS_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function getRegsUrlData (id, queryId) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: GET_REGS_URL_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrlReview/${id}?queryId=${queryId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGS_URL_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n dispatch(\r\n saveInitialValues(\r\n pageIndex.regsUrls,\r\n getState().regsUrls.formDataValue.RU\r\n )\r\n );\r\n dispatch(clearHistory(pageIndex.regsUrls));\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_REGS_URL_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function sendRegUrlFeedback (feedback, feedbackNote, RegsURLsId) {\r\n return (dispatch) => {\r\n dispatch({ type: SAVE_REGS_URL_FEEDBACK_START })\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify({ Feedback: feedback, FeedbackNote: feedbackNote, Id: parseInt(RegsURLsId, 10) })\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrlFeedback`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SAVE_REGS_URL_FEEDBACK_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: SAVE_REGS_URL_FEEDBACK_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function saveRegsUrlData (regsUrlDetail, queryId, trackData, openRecord) {\r\n return (dispatch) => {\r\n dispatch({ type: SAVE_REGS_URL_START })\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(regsUrlDetail)\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrlReview?queryId=${queryId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REGS_URL_SAVED,\r\n payload: {\r\n json\r\n }\r\n })\r\n if (localStorage.getItem('signOut')) {\r\n dispatch(logOut())\r\n localStorage.removeItem('signOut')\r\n }\r\n dispatch(clearHistory(pageIndex.regsUrls))\r\n dispatch(saveInitialValues(pageIndex.regsUrls, trackData))\r\n if (openRecord) {\r\n dispatch(getRegsUrlData(openRecord, queryId))\r\n }\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: SAVE_REGS_URL_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function bringEditedRegsUrlItem (id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGS_URL_ENTITY_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrl/${id}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REGS_URL_ENTITY_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_REGS_URL_ENTITY_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function createRegsUrl (regsUrlSummary, queryId) {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_REGS_URL_START })\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(regsUrlSummary)\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrl`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 409) {\r\n response.json().then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REGS_URL_EXISTS,\r\n payload: {\r\n json\r\n }\r\n })\r\n dispatch(hideModal('Add-new-item-url'))\r\n dispatch(hideModal('List-url'))\r\n dispatch(showModal('Duplicate-modal'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REGS_URL_CREATED,\r\n payload: {\r\n json\r\n }\r\n })\r\n dispatch(hideModal('Add-new-item-url'))\r\n dispatch(hideModal('List-url'))\r\n dispatch(getRegsUrlData (json.Id, queryId))\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: CREATE_REGS_URL_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function updateRegsUrl (regsUrlSummary, queryId) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_REGS_URL_START })\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(regsUrlSummary)\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrl`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REGS_URL_UPDATED,\r\n payload: {\r\n json\r\n }\r\n })\r\n if (queryId) {\r\n dispatch(getRegsUrlData(json.Id, queryId))\r\n }\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: UPDATE_REGS_URL_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function deleteRegsUrl (id, queryId, allRecords) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_REGS_URL_START })\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrl/${id}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.text()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then(() => {\r\n const allUrls = allRecords.filter(item => item.Id !== id)\r\n dispatch({\r\n type: REGS_URL_DELETED,\r\n payload: {\r\n id,\r\n allRecords: allUrls\r\n }\r\n })\r\n if (queryId) {\r\n dispatch(getRegsUrlData(allUrls[0].Id, queryId))\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: DELETE_REGS_URL_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function getSetOptions () {\r\n return (dispatch) => {\r\n dispatch({ type: GET_SET_OPTIONS_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/RegsUrlSet`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_OPTIONS_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_SET_OPTIONS_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nfunction returnDropdownOptions (data, field) {\r\n let resultedOptions = []\r\n data.map(item => {\r\n if (!resultedOptions.find(elem => elem.label === item[field])) {\r\n resultedOptions = [...resultedOptions, {\r\n value: item[field],\r\n label: item[field]\r\n }]\r\n }\r\n })\r\n return resultedOptions\r\n}\r\n\r\nexport function returnInitialState () {\r\n return {\r\n type: RETURN_INITIAL_REGS_URLS\r\n }\r\n}\r\n\r\nexport function clearEditUrlForm () {\r\n return {\r\n type: CLEAR_REGS_URL_FORM\r\n }\r\n}\r\n\r\nfunction updateStates (data, allRegions) {\r\n const recordStates = returnDropdownOptions(data, 'RegionShortName')\r\n const transformStates = allRegions.map(item => {\r\n const checkAllRegions = recordStates.find(el => el.value === item.value)\r\n if (checkAllRegions) {\r\n return item\r\n } else return null\r\n }).filter(elem => elem)\r\n return [...transformStates]\r\n}\r\n\r\nexport function clearFormFields () {\r\n return {\r\n type: CLEAR_FIELD_FOR_NO_RESULTS_RU\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.regsUrls\r\n ? state : actionHandler(state, action),\r\n [GET_QUERIES_AND_PARAMETERS_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queriesWithParameters: json,\r\n queries: json.map(item => {\r\n return {\r\n value: item.QueryId,\r\n label: item.QueryName\r\n }\r\n })\r\n }\r\n }\r\n },\r\n 'FILTER_REGIONS' : (state, action) => {\r\n const { country, page } = action.payload\r\n if (page !== 'RU') {\r\n return {\r\n ...state\r\n }\r\n } else {\r\n const checkRecords = state.renderData.allRecords.filter(item => item.Country === country)\r\n const checkState = state.renderData.allRecords.filter(el =>\r\n el.Country === state.formDataValue.RU.baseData.radio.country)\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n amountOfRecords: country === 'all' ? state.renderData.allRecords : checkRecords\r\n },\r\n formDataValue: {\r\n RU: checkRecords.length !== 0 ? {\r\n ...state.formDataValue.RU,\r\n baseData: {\r\n ...state.formDataValue.RU.baseData,\r\n state: checkState[0].RegionShortName\r\n }\r\n } : {\r\n ...state.formDataValue.RU,\r\n queryLine: { ...state.formDataValue.RU.queryLine },\r\n baseData: {\r\n ...state.formDataValue.RU.baseData,\r\n radio: {\r\n ...state.formDataValue.RU.baseData.radio,\r\n country: 'all',\r\n state: 'all'\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n 'GET_ALL_REGIONS_FETCHED' : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allRegions: returnRegions(json),\r\n regionsList: returnRegions(json),\r\n regions: json\r\n }\r\n }\r\n },\r\n [GET_REGS_URLS_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [GET_REGS_URLS_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n disableEditing: json.length === 0,\r\n renderData: {\r\n ...state.renderData,\r\n amountOfRecords: json,\r\n allRecords: json,\r\n agencies: returnDropdownOptions(json, 'Agency'),\r\n allRegions: json.length === 0 ? state.renderData.allRegions : updateStates(json, state.renderData.regionsList)\r\n }\r\n }\r\n },\r\n [GET_REGS_URLS_FAILURE] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false\r\n }\r\n },\r\n [GET_REGS_URL_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [GET_REGS_URL_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n const checkRecordExistance = state.renderData.amountOfRecords.find(item => item.Id === json.Id)\r\n let recordPosition\r\n let allRecords = state.renderData.allRecords\r\n if (checkRecordExistance) {\r\n recordPosition = state.renderData.amountOfRecords.findIndex(item => item.Id === json.Id)\r\n } else {\r\n recordPosition = allRecords.findIndex(item => item.RegionShortName === json.RegionShortName)\r\n allRecords.splice(recordPosition, 0, json)\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n regsUrlData: json,\r\n allRecords: allRecords,\r\n amountOfRecords: allRecords\r\n },\r\n formDataValue: {\r\n RU: {\r\n ...state.formDataValue.RU,\r\n navigation: {\r\n textValues: {\r\n currentRecord: recordPosition + 1\r\n }\r\n },\r\n radio: {\r\n ...state.formDataValue.RU.radio,\r\n agency: json.Agency,\r\n country: json.Country,\r\n state: json.RegionShortName, \r\n comparisonType: json.RegsUrlsReviewType, \r\n compareLinkUrls: json.CompareLinkUrls, \r\n saveVersions: json.SaveVersions, \r\n },\r\n textValues: {\r\n url: json.Url,\r\n id: json.Id,\r\n document: json.Document, \r\n compareUser: json.CompareUser, \r\n selector: json.Selector,\r\n },\r\n baseData: {\r\n radio: {\r\n ...state.formDataValue.RU.baseData.radio,\r\n agency: json.Agency,\r\n country: json.Country,\r\n state: json.RegionShortName, \r\n comparisonType: json.RegsUrlsReviewType, \r\n compareLinkUrls: json.CompareLinkUrls, \r\n saveVersions: json.SaveVersions, \r\n },\r\n textValues: {\r\n ...state.formDataValue.RU.baseData.textValues,\r\n url: json.Url,\r\n id: json.Id,\r\n document: json.Document, \r\n compareUser: json.CompareUser, \r\n selector: json.Selector,\r\n }\r\n },\r\n textBlocks: {\r\n textValues: {\r\n log: json.HistoryDetails || ''\r\n }\r\n },\r\n notesSetData: {\r\n textValues: {\r\n ...state.formDataValue.RU.notesSetData.textValues,\r\n contactInfo: json.OfficialContact || '',\r\n reviewNotes: json.Notes || '',\r\n reviewInstructions: json.ReviewInstructions || '',\r\n clients: json.Clients || ''\r\n },\r\n // radio: {\r\n // ...state.formDataValue.RU.notesSetData.radio,\r\n // //comparisonType: json.RegsUrlsReviewType, \r\n // //compareLinkUrls: json.CompareLinkUrls, \r\n // //saveVersions: json.SaveVersions, \r\n // },\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [GET_REGS_URL_FAILURE] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false\r\n }\r\n },\r\n [RETURN_INITIAL_REGS_URLS] : () => {\r\n return {\r\n ...initialState\r\n }\r\n },\r\n [REGS_URL_ENTITY_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n formDataValue: {\r\n RU: {\r\n ...state.formDataValue.RU,\r\n editUrlData: {\r\n radio: {\r\n set: json.Set,\r\n state: json.RegionShortName,\r\n country: json.Country\r\n },\r\n textValues: {\r\n agency: json.Agency,\r\n document: json.Document,\r\n url: json.Url\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [CLEAR_REGS_URL_FORM] : (state) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n RU: {\r\n ...state.formDataValue.RU,\r\n editUrlData: {\r\n radio: {\r\n set: '',\r\n state: '',\r\n country: ''\r\n },\r\n textValues: {\r\n agency: '',\r\n document: '',\r\n url: ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [REGS_URL_CREATED] : (state, action) => {\r\n const { json } = action.payload\r\n let allRecords = state.renderData.allRecords\r\n const insertIndex = allRecords.findIndex(item => item.RegionShortName === json.RegionShortName)\r\n allRecords.splice(insertIndex, 0, json)\r\n const checkStateExistance = state.renderData.allRegions.find(item => item.value === json.RegionShortName)\r\n let allRegions = state.renderData.allRegions\r\n if (!checkStateExistance) {\r\n allRegions = updateStates(allRecords, state.renderData.allRegions)\r\n }\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allRecords: allRecords,\r\n amountOfRecords: allRecords,\r\n agencies: returnDropdownOptions(allRecords, 'Agency'),\r\n allRegions: allRegions,\r\n newRegUrl: true\r\n }\r\n }\r\n },\r\n [REGS_URL_UPDATED] : (state, action) => {\r\n const { json } = action.payload\r\n const allRecords = state.renderData.allRecords\r\n const updatedRecords = allRecords.map(item => {\r\n if (item.Id === json.Id) {\r\n return {\r\n Agency: json.Agency,\r\n Country: json.Country,\r\n Document: json.Document,\r\n Id: item.Id,\r\n RegionShortName: json.RegionShortName,\r\n Set:json.Set\r\n }\r\n } return item\r\n })\r\n const checkStateExistance = allRecords.find(item => item.value === json.RegionShortName)\r\n let allRegions = state.renderData.allRegions\r\n if (!checkStateExistance) {\r\n allRegions = updateStates(updatedRecords, allRegions)\r\n }\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allRecords: updatedRecords,\r\n amountOfRecords: updatedRecords,\r\n agencies: returnDropdownOptions(updatedRecords, 'Agency'),\r\n allRegions: allRegions,\r\n newRegUrl: false\r\n }\r\n }\r\n },\r\n [REGS_URL_DELETED] : (state, action) => {\r\n const { id, allRecords } = action.payload\r\n const deletedAgency = state.renderData.allRecords.find(item => item.Id === id)\r\n const checkAgencyExistance = state.renderData.allRegions.filter(item =>\r\n item.Agency === deletedAgency.Agency)\r\n let newAgenciesList = state.renderData.agencies\r\n if (checkAgencyExistance.length === 1 && id === checkAgencyExistance[0].Id) {\r\n newAgenciesList = state.renderData.agencies.filter(item => item.label !== deletedAgency.Agency)\r\n }\r\n const findIndex = allRecords.findIndex(item => item.Id === state.renderData.regsUrlData.Id)\r\n const checkStateExistance = state.renderData.allRegions.filter(item =>\r\n item.RegionShortName === deletedAgency.RegionShortName)\r\n let allRegions = state.renderData.allRegions\r\n if (checkStateExistance.length === 1 && id === checkStateExistance[0].Id) {\r\n allRegions = allRecords.filter(item => item.RegionShortName !== deletedAgency.RegionShortName)\r\n }\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allRecords: allRecords,\r\n amountOfRecords: allRecords,\r\n agencies: newAgenciesList,\r\n allRegions: allRegions\r\n },\r\n formDataValue: {\r\n RU: {\r\n ...state.formDataValue.RU,\r\n navigation: {\r\n textValues: {\r\n currentRecord: findIndex + 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [REGS_URL_EXISTS] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n duplicatedRegsUrl: json\r\n }\r\n }\r\n },\r\n [SET_OPTIONS_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n sets: returnDropdownOptions(json, 'SetName')\r\n }\r\n }\r\n },\r\n [REGS_URL_SAVED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n regsUrlData: json,\r\n newRegUrl: false\r\n }\r\n }\r\n },\r\n [CLEAR_FIELD_FOR_NO_RESULTS_RU] : (state) => {\r\n return {\r\n ...initialState,\r\n disableEditing: true,\r\n renderData: {\r\n ...initialState.renderData,\r\n queriesWithParameters: state.renderData.queriesWithParameters,\r\n queries: state.renderData.queries,\r\n allRegions: state.renderData.allRegions,\r\n regions: state.renderData.regions,\r\n regionsList: state.renderData.regionsList\r\n },\r\n formDataValue: {\r\n RU: {\r\n ...initialState.formDataValue.RU,\r\n queryLine: {\r\n ...state.formDataValue.RU.queryLine\r\n },\r\n parametersSection: {\r\n ...state.formDataValue.RU.parametersSection\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nexport const initialState = {\r\n isFetchingData: false,\r\n disableEditing: true,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n RU: {\r\n queryLine: {\r\n radio: {\r\n query: 'Select Query'\r\n },\r\n textValues: {\r\n keywordSearch: ''\r\n },\r\n selected: []\r\n },\r\n parametersSection: {\r\n textValues: {},\r\n dateTime: {},\r\n radio: [],\r\n },\r\n sortParameters: {\r\n radio: [],\r\n fields: [],\r\n },\r\n sortDirections: {\r\n radio: [],\r\n },\r\n filterParameters: {\r\n fields: [],\r\n },\r\n navigation: {\r\n textValues: {\r\n currentRecord: \"1\",\r\n },\r\n },\r\n\r\n // parametersSection: {\r\n // textValues: {},\r\n // dateTime: {}\r\n // },\r\n // navigation: {\r\n // textValues: {\r\n // currentRecord: '1'\r\n // }\r\n // },\r\n baseData: {\r\n radio: {\r\n state: '',\r\n country: '',\r\n agency: '', \r\n comparisonType: '', \r\n compareLinkUrls: false, \r\n saveVersions: 0, \r\n },\r\n textValues: {\r\n url: '',\r\n id: '',\r\n document: '',\r\n compareUser: '',\r\n selector: '',\r\n }\r\n },\r\n textBlocks: {\r\n textValues: {\r\n log: ''\r\n }\r\n },\r\n notesSetData: {\r\n textValues: {\r\n contactInfo: '',\r\n reviewNotes: '',\r\n reviewInstructions: '',\r\n clients: '',\r\n // compareUser: '',\r\n // selector: '',\r\n },\r\n // radio: {\r\n // comparisonType: '', \r\n // compareLinkUrls: false, \r\n // saveVersions: 0, \r\n // },\r\n },\r\n editUrlData: {\r\n radio: {\r\n set: '',\r\n state: '',\r\n country: ''\r\n },\r\n textValues: {\r\n agency: '',\r\n document: '',\r\n url: ''\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport default function regsUrlReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/regsUrls.js","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { editDeleteStyles } from \"../../../globals\";\r\nimport Modal from \"../../Modal/Modal\";\r\nimport STSComponent from \"../../STSComponent/STSComponent\";\r\n\r\nclass AddNewItem extends STSComponent {\r\n render() {\r\n const {\r\n modalType,\r\n title,\r\n toAdd,\r\n toCancel,\r\n content,\r\n customStyles,\r\n newIdentifier,\r\n modal,\r\n savingNotAvailable,\r\n zIndex,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n {newIdentifier || \"New\"} {title}\r\n \r\n
\r\n {content}\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n static propTypes = {\r\n modalType: PropTypes.string,\r\n title: PropTypes.string,\r\n toCancel: PropTypes.func,\r\n toAdd: PropTypes.func,\r\n content: PropTypes.node,\r\n customStyles: PropTypes.string,\r\n newIdentifier: PropTypes.string,\r\n modal: PropTypes.object,\r\n savingNotAvailable: PropTypes.bool,\r\n };\r\n}\r\n\r\nexport default AddNewItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Modal/components/AddNewItem.js","import moment from \"moment\";\r\nimport { globals, page as pageIndex } from \"../../globals\";\r\nimport { logOut } from \"./auth\";\r\nimport { showModal } from \"./modal\";\r\nimport { clearHistory, saveInitialValues } from \"./undo\";\r\nimport { actionHandler, UPDATE_DATA } from \"./updateData\";\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_REGISTER_QUEUE_START = \"GET_REGISTER_QUEUE_START\";\r\nexport const GET_REGISTER_QUEUE_FETCHED = \"GET_REGISTER_QUEUE_FETCHED\";\r\nexport const GET_REGISTER_QUEUE_FAILURE = \"GET_REGISTER_QUEUE_FAILURE\";\r\nexport const GET_REGISTER_RECORD_START = \"GET_REGISTER_RECORD_START\";\r\nexport const GET_REGISTER_RECORD_FETCHED = \"GET_REGISTER_RECORD_FETCHED\";\r\nexport const GET_REGISTER_RECORD_FAILURE = \"GET_REGISTER_RECORD_FAILURE\";\r\nexport const FILTER_BY_COUNTRY = \"FILTER_BY_COUNTRY\";\r\nexport const SAVE_REGISTER_START = \"SAVE_REGISTER_START\";\r\nexport const REGISTER_SAVED = \"REGISTER_SAVED\";\r\nexport const SAVE_REGISTER_FAILURE = \"SAVE_REGISTER_FAILURE\";\r\nexport const CREATE_REGISTER_START = \"CREATE_REGISTER_START\";\r\nexport const REGISTER_CREATED = \"REGISTER_CREATED\";\r\nexport const CREATE_REGISTER_FAILURE = \"CREATE_REGISTER_FAILURE\";\r\nexport const UPDATE_REGISTER_START = \"UPDATE_REGISTER_START\";\r\nexport const REGISTER_UPDATED = \"REGISTER_UPDATED\";\r\nexport const UPDATE_REGISTER_FAILURE = \"UPDATE_REGISTER_FAILURE\";\r\nexport const DELETE_REGISTER_START = \"DELETE_REGISTER_START\";\r\nexport const REGISTER_DELETED = \"REGISTER_DELETED\";\r\nexport const DELETE_REGISTER_FAILURE = \"DELETE_REGISTER_FAILURE\";\r\nexport const REGISTER_EXISTS = \"REGISTER_EXISTS\";\r\nexport const RETURN_REGISTER_DEFAULT = \"RETURN_REGISTER_DEFAULT\";\r\nexport const GET_INITIAL_REGISTER_FOR_QUERY = \"GET_INITIAL_REGISTER_FOR_QUERY\";\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n \"Content-Type\": \"application/json\",\r\n};\r\n\r\nfunction returnTypesForQueue(types) {\r\n if (types) {\r\n return types.map((item) => `¬estypes=${item}`).join(\"\");\r\n } else return \"\";\r\n}\r\n\r\nexport function getRegisterReviewQueue(\r\n actionType,\r\n searchDate,\r\n searchTerm,\r\n notesTypes,\r\n reviewer,\r\n seekToRegisterId = null\r\n) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGISTER_QUEUE_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n headers,\r\n };\r\n const newDateSearch =\r\n searchDate && searchDate !== \" \" && searchDate !== \"Invalid date\"\r\n ? `&searchdate=${moment(searchDate).format(\"YYYY-MM-DD\")}`\r\n : \"\";\r\n const newSearchTerm = searchTerm ? `&searchterm=${searchTerm}` : \"\";\r\n const newTypes = returnTypesForQueue(notesTypes);\r\n const review = actionType !== 0 ? `&reviewer=${reviewer || \"\"}` : \"\";\r\n const params = `${newDateSearch}${newSearchTerm}${newTypes}${review}`;\r\n return fetch(\r\n `${globals.apiUrl}/registerreview?actiondatetype=${actionType}${params}`,\r\n options\r\n )\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n return dispatch(logOut());\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGISTER_QUEUE_FETCHED,\r\n payload: {\r\n json,\r\n actionType,\r\n newDateSearch,\r\n },\r\n });\r\n\r\n let registerIndex = 0;\r\n\r\n if (json.length === 0) {\r\n dispatch(showModal(\"No-results\"));\r\n dispatch({ type: RETURN_REGISTER_DEFAULT });\r\n } else {\r\n registerIndex = seekToRegisterId\r\n ? json.findIndex((register) => {\r\n return register.RegisterReviewId === seekToRegisterId;\r\n })\r\n : 0;\r\n\r\n dispatch(getRegisterRecord(json[registerIndex], actionType));\r\n }\r\n\r\n return registerIndex;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_REGISTER_QUEUE_FAILURE });\r\n });\r\n };\r\n}\r\n\r\nexport function getRegisterRecord(record, actionType) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGISTER_RECORD_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n headers,\r\n };\r\n return fetch(\r\n `${globals.apiUrl}/registerreview/${record.RegisterReviewId}?actiondatetype=${actionType}`,\r\n options\r\n )\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n return dispatch(logOut());\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGISTER_RECORD_FETCHED,\r\n payload: {\r\n json,\r\n id: record.RegisterReviewId,\r\n url: record.Url,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_REGISTER_RECORD_FAILURE });\r\n });\r\n };\r\n}\r\n\r\nexport function saveRegisterChanges(\r\n parameters,\r\n trackData,\r\n openParameters,\r\n formData\r\n) {\r\n return (dispatch) => {\r\n dispatch({ type: SAVE_REGISTER_START });\r\n const options = {\r\n method: \"PUT\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(parameters),\r\n };\r\n fetch(`${globals.apiUrl}/registerreview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 400) {\r\n return response.text().then((text) => {\r\n if (text.includes(\"Please refresh data\")) {\r\n dispatch(showModal(\"Time-out-modal\"));\r\n } else {\r\n dispatch(showModal(\"Error\", { errorMessage: text }));\r\n }\r\n });\r\n } else if (response.status === 401) {\r\n return dispatch(logOut());\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REGISTER_SAVED,\r\n payload: {\r\n json,\r\n },\r\n });\r\n if (localStorage.getItem(\"signOut\")) {\r\n dispatch(logOut());\r\n localStorage.removeItem(\"signOut\");\r\n }\r\n dispatch(clearHistory(pageIndex.registerReview));\r\n dispatch(saveInitialValues(pageIndex.registerReview, trackData));\r\n if (openParameters) {\r\n const state = trackData.statesDD.radio.state;\r\n const url = trackData.statesDD.textValues.url;\r\n const record = formData.allRecords.find(\r\n (item) =>\r\n item.State === state &&\r\n item.Url === url &&\r\n item.RegisterReviewId === parameters.id\r\n );\r\n if (record) {\r\n const reviewer = trackData.parametersSection.textValues.reviewer;\r\n const actionType = trackData.queryLine.radio.query;\r\n dispatch(\r\n getRegisterReviewQueue(actionType, null, null, null, reviewer)\r\n );\r\n } else {\r\n dispatch(\r\n getRegisterRecord(\r\n openParameters.record,\r\n openParameters.actionType\r\n )\r\n );\r\n }\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: SAVE_REGISTER_FAILURE });\r\n });\r\n };\r\n}\r\n\r\nfunction returnDate(date) {\r\n if (date) {\r\n return moment(date).format(\"MMM / DD / YYYY\");\r\n } else return \" \";\r\n}\r\n\r\nfunction returnStates(states, countryType) {\r\n let newStates = [];\r\n if (countryType === \"All\") {\r\n let getCountries = states.map((item) => item.CountryCode);\r\n getCountries = new Set(getCountries);\r\n getCountries = Array.from(getCountries.values());\r\n for (let i = 0; i < getCountries.length; i++) {\r\n if (getCountries[i]) {\r\n newStates = [\r\n ...newStates,\r\n ...returnCountryStates(getCountries[i], states),\r\n ];\r\n }\r\n }\r\n } else {\r\n newStates = [...newStates, ...returnCountryStates(countryType, states)];\r\n }\r\n const transformedArray = newStates.map((item) => {\r\n return {\r\n label: item.NRREnabled ? `${item.RegionShortName} - ${item.RegionLongName} **` : `${item.RegionShortName} - ${item.RegionLongName}`,\r\n value: item.RegionShortName,\r\n upFlag: item.NRREnabled,\r\n };\r\n });\r\n return transformedArray;\r\n}\r\n\r\nfunction returnCountryStates(country, countryRegions) {\r\n let states = [];\r\n let checkDuplicates = [];\r\n if (countryRegions) {\r\n countryRegions.map((item) => {\r\n if (\r\n country === item.CountryCode &&\r\n !checkDuplicates.includes(\r\n `${item.RegionShortName} - ${item.RegionLongName}`\r\n )\r\n ) {\r\n checkDuplicates = [\r\n ...checkDuplicates,\r\n `${item.RegionShortName} - ${item.RegionLongName}`,\r\n ];\r\n states = [...states, item];\r\n }\r\n });\r\n }\r\n return states;\r\n}\r\n\r\nexport function filterByCountry(states, country) {\r\n const newRegions = returnStates(states, country);\r\n return (dispatch) => {\r\n if (newRegions.length !== 0) {\r\n dispatch({\r\n type: \"FILTER_BY_COUNTRY\",\r\n payload: {\r\n json: newRegions,\r\n countryCode: country,\r\n },\r\n });\r\n } else {\r\n dispatch(showModal(\"No-results\"));\r\n }\r\n };\r\n}\r\n\r\nexport function createRegister(registerInfo) {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_REGISTER_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(registerInfo),\r\n };\r\n return fetch(`${globals.apiUrl}/register`, options)\r\n .then((response) => {\r\n if (response.status === 409) {\r\n response.json().then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REGISTER_EXISTS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n dispatch(showModal(\"Duplicate-modal\"));\r\n }\r\n });\r\n } else if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n return dispatch(logOut());\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch(\r\n getRegisterReviewQueue(\r\n 0,\r\n null,\r\n null,\r\n null,\r\n null,\r\n json.RegisterReviewId\r\n )\r\n );\r\n\r\n dispatch({\r\n type: REGISTER_CREATED,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json.RegisterReviewId;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: CREATE_REGISTER_FAILURE });\r\n });\r\n };\r\n}\r\n\r\nexport function updateRegister(registerInfo) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_REGISTER_START });\r\n const options = {\r\n method: \"PUT\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(registerInfo),\r\n };\r\n fetch(`${globals.apiUrl}/register`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n return dispatch(logOut());\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REGISTER_UPDATED,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: UPDATE_REGISTER_FAILURE });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteRegister(registerId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_REGISTER_START });\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n headers,\r\n };\r\n fetch(`${globals.apiUrl}/register/${registerId}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n dispatch({\r\n type: REGISTER_DELETED,\r\n payload: {\r\n registerId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n return dispatch(logOut());\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: DELETE_REGISTER_FAILURE });\r\n });\r\n };\r\n}\r\n\r\nexport function getInitialStateForNewQuery() {\r\n return {\r\n type: GET_INITIAL_REGISTER_FOR_QUERY,\r\n };\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA]: (state, action) =>\r\n action.location.page !== pageIndex.registerReview\r\n ? state\r\n : actionHandler(state, action),\r\n [GET_REGISTER_QUEUE_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_REGISTER_QUEUE_FETCHED]: (state, action) => {\r\n const { json, actionType, newDateSearch } = action.payload;\r\n const countryType = state.formDataValue.RR.statesDD.radio.country;\r\n const states = returnStates(json, actionType === 0 ? \"All\" : countryType);\r\n const query = state.formDataValue.RR.queryLine.radio.query;\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n disableRegister: false,\r\n renderData: {\r\n ...state.renderData,\r\n amountOfRecords:\r\n countryType !== \"All\"\r\n ? json.filter((item) => item.CountryCode === countryType)\r\n : json,\r\n allRecords: json,\r\n registerRegions: states,\r\n },\r\n formDataValue: {\r\n RR: {\r\n ...state.formDataValue.RR,\r\n navigation: {\r\n textValues: {\r\n currentRecord: 1,\r\n },\r\n },\r\n statesDD: {\r\n ...state.formDataValue.RR.statesDD,\r\n radio: {\r\n ...state.formDataValue.RR.statesDD.radio,\r\n country: query === 0 ? \"All\" : countryType,\r\n state:\r\n json.length !== 0\r\n ? json[0].State\r\n : state.formDataValue.RR.statesDD.radio.state,\r\n },\r\n },\r\n queryLine: {\r\n ...state.formDataValue.RR.queryLine,\r\n dateTime: {\r\n filterDate: newDateSearch\r\n ? state.formDataValue.RR.queryLine.dateTime.filterDate\r\n : \" \",\r\n },\r\n selected: state.formDataValue.RR.queryLine.selected.filter(\r\n (item) => typeof item === \"string\"\r\n ),\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [GET_REGISTER_RECORD_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_REGISTER_RECORD_FETCHED]: (state, action) => {\r\n const { json, id, url } = action.payload;\r\n const records = state.renderData.amountOfRecords;\r\n const register =\r\n records && records.length !== 0\r\n ? records.find(\r\n (item) => item.RegisterReviewId === id && item.Url === url\r\n )\r\n : \"0\";\r\n const index = register\r\n ? records.findIndex(\r\n (item) => register.RegisterReviewId === item.RegisterReviewId\r\n )\r\n : null;\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n registerReviewRecord: json,\r\n },\r\n formDataValue: {\r\n RR: {\r\n ...state.formDataValue.RR,\r\n navigation: {\r\n textValues: {\r\n currentRecord: index + 1,\r\n },\r\n },\r\n statesDD: {\r\n ...state.formDataValue.RR.statesDD,\r\n radio: {\r\n ...state.formDataValue.RR.statesDD.radio,\r\n state: json.State || \"Select State\",\r\n },\r\n textValues: {\r\n url: json.Url || \"\",\r\n frequency: json.ReviewFreq || \"\",\r\n toolbox: json.ToolboxUrl || \"\",\r\n },\r\n },\r\n url: {\r\n textValues: {\r\n urlInput: json.Url || \"\",\r\n frequency: json.ReviewFreq || \"\",\r\n },\r\n },\r\n textBlocks: {\r\n textValues: {\r\n generalNotes: json.Notes || \"\",\r\n team1Reviewer: json.ReviewerTeam1 || \"\",\r\n team2Reviewer: json.ReviewerTeam2 || \"\",\r\n team3Reviewer: json.ReviewerTeam3 || \"\",\r\n team1Notes: json.Team1Note || \"\",\r\n team2Notes: json.Team2Note || \"\",\r\n team3Notes: json.Team3Note || \"\",\r\n log: json.ReviewHistory || \"\",\r\n },\r\n },\r\n dates: {\r\n dateTime: {\r\n team1Date: returnDate(json.Team1NextActionDate),\r\n team2Date: returnDate(json.Team2NextActionDate),\r\n team3Date: returnDate(json.Team3NextActionDate),\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [FILTER_BY_COUNTRY]: (state, action) => {\r\n const { json, countryCode } = action.payload;\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n registerRegions: json,\r\n amountOfRecords:\r\n countryCode === \"All\"\r\n ? state.renderData.allRecords\r\n : state.renderData.allRecords.filter(\r\n (item) => item.CountryCode === countryCode\r\n ),\r\n },\r\n formDataValue: {\r\n RR: {\r\n ...state.formDataValue.RR,\r\n statesDD: {\r\n ...state.formDataValue.RR.statesDD,\r\n radio: {\r\n ...state.formDataValue.RR.statesDD.radio,\r\n state: json[0].value,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [REGISTER_UPDATED]: (state, action) => {\r\n const { json } = action.payload;\r\n const newQueue = state.renderData.amountOfRecords.map((item) => {\r\n if (item.RegisterReviewId === json.RegisterReviewId) {\r\n return {\r\n Url: json.Url,\r\n ReviewFrequency: json.ReviewFrequency,\r\n CountryCode: item.CountryCode,\r\n RegionLongName: item.RegionLongName,\r\n RegionShortName: json.RegionShortName,\r\n RegisterReviewId: json.RegisterReviewId,\r\n ToolboxUrl:\r\n json.ToolboxUrl ||\r\n state.formDataValue.RR.editRegisters.textValues.toolbox,\r\n };\r\n } else return item;\r\n });\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n amountOfRecords: newQueue,\r\n allRecords: newQueue,\r\n },\r\n };\r\n },\r\n [REGISTER_EXISTS]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n duplicatedRegister: json,\r\n },\r\n };\r\n },\r\n [REGISTER_CREATED]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n newRegister: json,\r\n },\r\n formDataValue: {\r\n RR: {\r\n ...initialState.formDataValue.RR,\r\n statesDD: {\r\n ...state.formDataValue.RR.statesDD,\r\n textValues: {\r\n url: json.Url,\r\n frequency: json.ReviewFrequency,\r\n toolbox: json.ToolboxUrl,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [REGISTER_DELETED]: (state, action) => {\r\n const { registerId } = action.payload;\r\n const newQueue = state.renderData.amountOfRecords.filter(\r\n (item) => item.RegisterReviewId !== registerId\r\n );\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allRecords: newQueue,\r\n amountOfRecords: newQueue,\r\n },\r\n };\r\n },\r\n [REGISTER_SAVED]: (state) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n },\r\n };\r\n },\r\n [RETURN_REGISTER_DEFAULT]: (state) => {\r\n return {\r\n ...initialState,\r\n disableRegister: true,\r\n formDataValue: {\r\n RR: {\r\n ...initialState.formDataValue.RR,\r\n queryLine: {\r\n ...state.formDataValue.RR.queryLine,\r\n },\r\n parametersSection: {\r\n textValues: {\r\n reviewer:\r\n state.formDataValue.RR.parametersSection.textValues.reviewer,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [GET_INITIAL_REGISTER_FOR_QUERY]: (state) => {\r\n return {\r\n ...initialState,\r\n disableRegister: true,\r\n formDataValue: {\r\n RR: {\r\n ...initialState.formDataValue.RR,\r\n queryLine: {\r\n ...initialState.formDataValue.RR.queryLine,\r\n radio: {\r\n query: state.formDataValue.RR.queryLine.radio.query,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n};\r\n\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: \"\",\r\n renderData: {},\r\n formDataValue: {\r\n RR: {\r\n queryLine: {\r\n radio: {\r\n query: 0,\r\n },\r\n dateTime: {\r\n filterDate: \" \",\r\n },\r\n textValues: {\r\n keywordSearch: \"\",\r\n },\r\n selected: [],\r\n },\r\n parametersSection: {\r\n textValues: {\r\n reviewer: \"\",\r\n },\r\n },\r\n navigation: {\r\n textValues: {\r\n currentRecord: \"1\",\r\n },\r\n },\r\n statesDD: {\r\n radio: {\r\n state: \"\",\r\n country: \"All\",\r\n },\r\n textValues: {\r\n url: \"\",\r\n frequency: \"\",\r\n toolbox: \"\",\r\n },\r\n },\r\n editRegisters: {\r\n radio: {\r\n state: \"\",\r\n country: \"\",\r\n },\r\n textValues: {\r\n url: \"\",\r\n frequency: \"\",\r\n toolbox: \"\",\r\n },\r\n },\r\n url: {\r\n textValues: {\r\n urlInput: \"\",\r\n frequency: \"\",\r\n },\r\n },\r\n dates: {\r\n dateTime: {\r\n team1Date: \" \",\r\n team2Date: \" \",\r\n team3Date: \" \",\r\n },\r\n },\r\n textBlocks: {\r\n textValues: {\r\n generalNotes: \"\",\r\n team1Reviewer: \"\",\r\n team2Reviewer: \"\",\r\n team3Reviewer: \"\",\r\n team1Notes: \"\",\r\n team2Notes: \"\",\r\n team3Notes: \"\",\r\n log: \"\",\r\n },\r\n },\r\n },\r\n },\r\n};\r\nexport default function registerReviewReducer(state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/registerReviewData.js","import React, { Component } from 'react';\nimport memoizeOne from 'memoize-one';\nimport { CacheProvider } from '@emotion/core';\nimport 'react-dom';\nimport 'prop-types';\nimport './utils-06b0d5a4.browser.esm.js';\nexport { y as components } from './index-4322c0ed.browser.esm.js';\nimport { S as Select } from './Select-9fdb8cd0.browser.esm.js';\nexport { c as createFilter, a as defaultTheme, m as mergeStyles } from './Select-9fdb8cd0.browser.esm.js';\nimport '@emotion/css';\nimport 'react-input-autosize';\nimport { m as manageState } from './stateManager-04f734a2.browser.esm.js';\nimport createCache from '@emotion/cache';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar NonceProvider =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(NonceProvider, _Component);\n\n function NonceProvider(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.createEmotionCache = function (nonce) {\n return createCache({\n nonce: nonce\n });\n };\n\n _this.createEmotionCache = memoizeOne(_this.createEmotionCache);\n return _this;\n }\n\n var _proto = NonceProvider.prototype;\n\n _proto.render = function render() {\n var emotionCache = this.createEmotionCache(this.props.nonce);\n return React.createElement(CacheProvider, {\n value: emotionCache\n }, this.props.children);\n };\n\n return NonceProvider;\n}(Component);\n\nvar index = manageState(Select);\n\nexport default index;\nexport { NonceProvider };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/dist/react-select.browser.esm.js\n// module id = 479\n// module chunks = 19","import { globals, page as pageIndex } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\nimport { logOut } from './auth'\r\nimport {\r\n GET_COUNTRIES_FETCHED,\r\n GET_COUNTRY_REGIONS_FETCHED,\r\n GET_ALL_REGIONS_FETCHED } from './regions'\r\nimport { showModal, hideModal } from './modal'\r\nimport { sortAlphabetical } from './helpers'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_AGENCIES_START = 'GET_AGENCIES_START'\r\nexport const GET_AGENCIES_FAILURE = 'GET_AGENCIES_FAILURE'\r\nexport const GET_AGENCIES_SUCCESS = 'GET_AGENCIES_SUCCESS'\r\nexport const GET_AGENCY_HISTORY_START = 'GET_AGENCY_HISTORY_START'\r\nexport const GET_AGENCY_HISTORY_FAILURE = 'GET_AGENCY_HISTORY_FAILURE'\r\nexport const GET_AGENCY_HISTORY_SUCCESS = 'GET_AGENCY_HISTORY_SUCCESS'\r\nexport const DELETE_AGENCY_START = 'DELETE_AGENCY_START'\r\nexport const DELETE_AGENCY_SUCCESS = 'DELETE_AGENCY_SUCCESS'\r\nexport const DELETE_AGENCY_FAILURE = 'DELETE_AGENCY_FAILURE'\r\nexport const CREATE_AGENCY_START = 'CREATE_AGENCY_START'\r\nexport const CREATE_AGENCY_SUCCESS = 'CREATE_AGENCY_SUCCESS'\r\nexport const CREATE_AGENCY_FAILURE = 'CREATE_AGENCY_FAILURE'\r\nexport const UPDATE_AGENCY_START = 'UPDATE_AGENCY_START'\r\nexport const UPDATE_AGENCY_SUCCESS = 'UPDATE_AGENCY_SUCCESS'\r\nexport const RESTORE_AGENCY_SUCCESS = 'RESTORE_AGENCY_SUCCESS'\r\nexport const UPDATE_AGENCY_FAILURE = 'UPDATE_AGENCY_FAILURE'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function getAgencies (country, state, agency) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_AGENCIES_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n const countryV = country && country !== '*' ? `country=${country}` : ''\r\n const stateV = state && state !== '*' ? `state=${state}` : ''\r\n const agencyV = agency && agency !== '*' ? `agency=${agency}` : ''\r\n const params = countryV || stateV || agencyV ? '?' : ''\r\n const paramOptions = countryV || stateV || agencyV\r\n ? [countryV, stateV, agencyV].filter(item => item).join('&') : ''\r\n fetch(`${globals.apiUrl}/agency${params}${paramOptions}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_AGENCIES_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_AGENCIES_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_AGENCIES_FAILURE, json: err })\r\n })\r\n }\r\n}\r\n\r\nfunction returnDropDownOptions (data, value, label) {\r\n let options = []\r\n for (let i = 0; i < data.length; i++) {\r\n if (!options.find(item => item.label === data[i][label])) {\r\n options = [...options, {\r\n value: data[i][value],\r\n label: data[i][label].trim()\r\n }]\r\n }\r\n }\r\n return options\r\n}\r\n\r\nfunction sortAgencies (agencies) {\r\n return agencies.sort(function (a, b) {\r\n if (`${a['State']} ${a['AgencyName'].toLowerCase()}` <\r\n `${b['State']} ${b['AgencyName'].toLowerCase()}`) { return -1 }\r\n if (`${a['State']} ${a['AgencyName'].toLowerCase()}` >\r\n `${b['State']} ${b['AgencyName'].toLowerCase()}`) { return 1 }\r\n return 0\r\n })\r\n}\r\n\r\nexport function getAgencyHistory (searchOptions) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_AGENCY_HISTORY_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n const setSearchOptions = searchOptions ? `?search=${searchOptions.split(' ').join('*')}` : ''\r\n fetch(`${globals.apiUrl}/agencyhistory${setSearchOptions}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_AGENCY_HISTORY_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_AGENCY_HISTORY_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_AGENCY_HISTORY_FAILURE, json: err })\r\n })\r\n }\r\n}\r\n\r\nexport function deleteAgency (agencyId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_AGENCY_START })\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/agency/${agencyId}`, options).then((response) => {\r\n if (response.status === 200 || response.status === 204) {\r\n dispatch({\r\n type: DELETE_AGENCY_SUCCESS,\r\n agencyId\r\n })\r\n dispatch(hideModal('Delete-agency'))\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_AGENCY_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport function createAgency (agencyObj) {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_AGENCY_START })\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(agencyObj)\r\n }\r\n fetch(`${globals.apiUrl}/agency`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: CREATE_AGENCY_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n if (json.Message) {\r\n dispatch({ type: CREATE_AGENCY_FAILURE, json: json.Message, object: json })\r\n dispatch(showModal(json.Message == 'Agency already exists and is deleted' ? 'Restore-modal' : 'Error'))\r\n } else {\r\n dispatch({\r\n type: CREATE_AGENCY_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n dispatch(hideModal('Add-new-item-agency'))\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport function updateAgency (agencyObj, allAgencies) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_AGENCY_START })\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(agencyObj)\r\n }\r\n fetch(`${globals.apiUrl}/agency`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: UPDATE_AGENCY_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n if (json.Message) {\r\n dispatch({ type: UPDATE_AGENCY_FAILURE, json: json.Message })\r\n dispatch(showModal('Error'))\r\n } else if (allAgencies.find(item => item.Id === json.Id)) {\r\n dispatch({\r\n type: UPDATE_AGENCY_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n dispatch(hideModal('Edit-item-agency'))\r\n } else {\r\n dispatch({\r\n type: RESTORE_AGENCY_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n dispatch(hideModal('Restore-modal'))\r\n dispatch(hideModal('Add-new-item-agency'))\r\n }\r\n }\r\n })\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.agencyEdit\r\n ? state : actionHandler(state, action),\r\n [GET_AGENCIES_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [GET_AGENCIES_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n const agencyOptions = returnDropDownOptions(json, 'Id', 'AgencyName')\r\n const sortedOptions = [{ value: '*', label: 'All Agencies' }, ...sortAlphabetical(agencyOptions, 'label')]\r\n let statesList = []\r\n json.forEach(element => {\r\n if (!statesList.includes(element.State)) {\r\n statesList = [...statesList, element.State]\r\n }\r\n })\r\n statesList = statesList.map(item => {\r\n return {\r\n label: item,\r\n value: item\r\n }\r\n })\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n allAgencies: json,\r\n agencies: sortedOptions,\r\n clientAgencies: sortAgencies(json),\r\n agencyStates: [{ value: '*', label: 'All States' }, ...statesList]\r\n }\r\n }\r\n },\r\n [GET_AGENCIES_FAILURE] : (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [GET_COUNTRIES_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n const countries = [\r\n { value: '*', label: 'All Countries' },\r\n ...json.map(item => {\r\n return {\r\n label: item,\r\n value: item\r\n }\r\n })\r\n ]\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n agencyCountries: countries,\r\n addAgencyCountries: countries.filter(item => item.value !== '*')\r\n }\r\n }\r\n },\r\n [GET_AGENCY_HISTORY_START] : (state) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n history: undefined\r\n }\r\n }\r\n },\r\n [GET_AGENCY_HISTORY_SUCCESS] : (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n history: action.payload.json\r\n }\r\n }\r\n },\r\n [GET_AGENCY_HISTORY_FAILURE] : (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [DELETE_AGENCY_START] : (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [DELETE_AGENCY_SUCCESS] : (state, action) => {\r\n const { agencyId } = action\r\n const agencies = state.renderData.clientAgencies.filter(item => item.Id !== agencyId)\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n deleted: agencyId,\r\n clientAgencies: agencies,\r\n allAgencies: agencies\r\n }\r\n }\r\n },\r\n [DELETE_AGENCY_FAILURE] : (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [CREATE_AGENCY_START] : (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [CREATE_AGENCY_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n const stateValue = state.formDataValue.AE.queryLine.radio.state\r\n const agencyValue = state.formDataValue.AE.queryLine.radio.agency\r\n const allAgencies = [...state.renderData.allAgencies, json]\r\n const agencyOptions = returnDropDownOptions(allAgencies, 'Id', 'AgencyName')\r\n const sortedOptions = [{ value: '*', label: 'All Agencies' }, ...sortAlphabetical(agencyOptions, 'AgencyName')]\r\n let newClientAgencies\r\n if (stateValue !== '*') {\r\n newClientAgencies = allAgencies.filter(item => item.State === json.State)\r\n } else if (agencyValue !== '*') {\r\n const agencyName = state.renderData.allAgencies.find(item => item.Id === agencyValue)\r\n newClientAgencies = allAgencies.filter(item => item.AgencyName === agencyName.AgencyName)\r\n } else {\r\n newClientAgencies = allAgencies\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n allAgencies: allAgencies,\r\n agencies: sortedOptions,\r\n clientAgencies: sortAgencies(newClientAgencies)\r\n },\r\n formDataValue: {\r\n AE: {\r\n ...state.formDataValue.AE,\r\n newAgency: {\r\n radio: {\r\n country: '',\r\n state: ''\r\n },\r\n textValues: {\r\n agency: ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [CREATE_AGENCY_FAILURE] : (state, action) => {\r\n const { json, object } = action\r\n return {\r\n ...state,\r\n errorCode: json,\r\n renderData: {\r\n ...state.renderData,\r\n agencyToRestore: object,\r\n }\r\n }\r\n },\r\n [UPDATE_AGENCY_START] : (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [UPDATE_AGENCY_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n const newAllAgencies = state.renderData.allAgencies.map(item => {\r\n if (item.Id === json.Id) {\r\n return json\r\n } else return item\r\n })\r\n const agencyOptions = returnDropDownOptions(newAllAgencies, 'Id', 'AgencyName')\r\n const sortedOptions = [{ value: '*', label: 'All Agencies' }, ...sortAlphabetical(agencyOptions, 'AgencyName')]\r\n const newClientAgencies = state.renderData.clientAgencies.map(item => {\r\n if (item.Id === json.Id) {\r\n return json\r\n } else return item\r\n })\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allAgencies: newAllAgencies,\r\n agencies: sortedOptions,\r\n clientAgencies: sortAgencies(newClientAgencies)\r\n },\r\n formDataValue: {\r\n AE: {\r\n ...state.formDataValue.AE,\r\n editAgency: {\r\n textValues: {\r\n agency: ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [RESTORE_AGENCY_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n const allAgencies = state.renderData.allAgencies.find(item => item.Id === json.Id)\r\n ? state.renderData.allAgencies.map(item => {\r\n if (item.Id === json.Id) {\r\n return json\r\n } else return item\r\n })\r\n : [...state.renderData.allAgencies, json]\r\n let newClientAgencies\r\n const stateValue = state.formDataValue.AE.queryLine.radio.state\r\n const agencyValue = state.formDataValue.AE.queryLine.radio.agency\r\n const agencyOptions = returnDropDownOptions(allAgencies, 'Id', 'AgencyName')\r\n const sortedOptions = [{ value: '*', label: 'All Agencies' }, ...sortAlphabetical(agencyOptions, 'AgencyName')]\r\n if (stateValue !== '*') {\r\n newClientAgencies = allAgencies.filter(item => item.State === stateValue)\r\n } else if (agencyValue !== '*') {\r\n const agencyName = state.renderData.allAgencies.find(item => item.Id === agencyValue)\r\n newClientAgencies = allAgencies.filter(item => item.AgencyName === agencyName.AgencyName)\r\n } else {\r\n newClientAgencies = allAgencies\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n allAgencies: allAgencies,\r\n agencies: sortedOptions,\r\n clientAgencies: sortAgencies(newClientAgencies)\r\n },\r\n formDataValue: {\r\n AE: {\r\n ...state.formDataValue.AE,\r\n newAgency: {\r\n radio: {\r\n country: '',\r\n state: ''\r\n },\r\n textValues: {\r\n agency: ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [UPDATE_AGENCY_FAILURE] : (state, action) => {\r\n const { json } = action\r\n return {\r\n ...state,\r\n errorCode: json,\r\n renderData: {\r\n ...state.renderData\r\n }\r\n }\r\n },\r\n [GET_COUNTRY_REGIONS_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n addAgencyStates: returnDropDownOptions(json, 'Name', 'Name')\r\n }\r\n }\r\n },\r\n [GET_ALL_REGIONS_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allStates: json\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nexport const initialState = {\r\n isFetchingData: false,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n AE: {\r\n queryLine: {\r\n radio: {\r\n country: '*',\r\n state: '*',\r\n agency: '*'\r\n }\r\n },\r\n newAgency: {\r\n radio: {\r\n country: '',\r\n state: ''\r\n },\r\n textValues: {\r\n agency: ''\r\n }\r\n },\r\n editAgency: {\r\n textValues: {\r\n agency: ''\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default function agencyEditReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/agencyEdit.js","import { globals, page as pageIndex } from \"../../globals\";\r\nimport { showModal, hideModal } from \"./modal\";\r\nimport {\r\n GET_LOCALITIES_BY_STATE_START,\r\n GET_LOCALITIES_BY_STATE_SUCCESS,\r\n GET_LOCALITIES_BY_STATE_FAILURE,\r\n GET_COUNTRY_REGIONS_FETCHED,\r\n GET_ALL_REGIONS_FETCHED,\r\n} from \"./regions\";\r\nimport { actionHandler, UPDATE_DATA } from \"./updateData\";\r\nimport { logOut } from \"./auth\";\r\nimport { sortAlphabetical } from \"./helpers\";\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_LOCALITIES_BY_CLIENT_START = \"GET_LOCALITIES_BY_CLIENT_START\";\r\nexport const GET_LOCALITIES_BY_CLIENT_SUCCESS =\r\n \"GET_LOCALITIES_BY_CLIENT_SUCCESS\";\r\nexport const GET_LOCALITIES_BY_CLIENT_FAILURE =\r\n \"GET_LOCALITIES_BY_CLIENT_FAILURE\";\r\nexport const CREATE_CLIENT_LOCALITY_START = \"CREATE_CLIENT_LOCALITY_START\";\r\nexport const CREATE_CLIENT_LOCALITY_SUCCESS = \"CREATE_CLIENT_LOCALITY_SUCCESS\";\r\nexport const CREATE_CLIENT_LOCALITY_FAILURE = \"CREATE_CLIENT_LOCALITY_FAILURE\";\r\nexport const DELETE_CLIENT_LOCALITY_START = \"DELETE_CLIENT_LOCALITY_START\";\r\nexport const DELETE_CLIENT_LOCALITY_SUCCESS = \"DELETE_CLIENT_LOCALITY_SUCCESS\";\r\nexport const DELETE_CLIENT_LOCALITY_FAILURE = \"DELETE_CLIENT_LOCALITY_FAILURE\";\r\nexport const GET_LIST_OF_CLIENTS_START = \"GET_LIST_OF_CLIENTS_START\";\r\nexport const GET_LIST_OF_CLIENTS_SUCCESS = \"GET_LIST_OF_CLIENTS_SUCCESS\";\r\nexport const GET_LIST_OF_CLIENTS_FAILURE = \"GET_LIST_OF_CLIENTS_FAILURE\";\r\nexport const FILTER_CLIENT_LOCALITIES = \"FILTER_CLIENT_LOCALITIES\";\r\nexport const GET_LOCALITY_HISTORY_START = \"GET_LOCALITY_HISTORY_START\";\r\nexport const GET_LOCALITY_HISTORY_SUCCESS = \"GET_LOCALITY_HISTORY_SUCCESS\";\r\nexport const GET_LOCALITY_HISTORY_FAILURE = \"GET_LOCALITY_HISTORY_FAILURE\";\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n \"Content-Type\": \"application/json\",\r\n};\r\n\r\nexport function getLocalitiesByClient(clientName) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCALITIES_BY_CLIENT_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n headers,\r\n };\r\n const clientLocalityURL = clientName ? `?clientname=${clientName}` : \"\";\r\n fetch(`${globals.apiUrl}/clientlocality${clientLocalityURL}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LOCALITIES_BY_CLIENT_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCALITIES_BY_CLIENT_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LOCALITIES_BY_CLIENT_FAILURE, json: err });\r\n });\r\n };\r\n}\r\n\r\nexport function createClientLocality(localityClientObj) {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_CLIENT_LOCALITY_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(localityClientObj),\r\n };\r\n fetch(`${globals.apiUrl}/clientlocality`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: CREATE_CLIENT_LOCALITY_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: CREATE_CLIENT_LOCALITY_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n dispatch(hideModal(\"Add-new-item-client-locality\"));\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: CREATE_CLIENT_LOCALITY_FAILURE, json: err });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteClientLocality(localityId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_CLIENT_LOCALITY_START });\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n headers,\r\n };\r\n fetch(`${globals.apiUrl}/clientlocality/${localityId}`, options).then(\r\n (response) => {\r\n if (response.status === 200) {\r\n dispatch({\r\n type: DELETE_CLIENT_LOCALITY_SUCCESS,\r\n localityId,\r\n });\r\n dispatch(hideModal(\"Delete-client-locality\"));\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_CLIENT_LOCALITY_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n }\r\n );\r\n };\r\n}\r\n\r\nfunction returnLocalities(localities) {\r\n return localities.map((item) => {\r\n return {\r\n value: item.LocalReviewId,\r\n label: item.Locality,\r\n };\r\n });\r\n}\r\n\r\nexport function getListOfClients(isActive, searchType, serviceLevel) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LIST_OF_CLIENTS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n headers,\r\n };\r\n fetch(\r\n `${globals.apiUrl}/client?active=${isActive}&searchtype=${searchType}&servicelevel=${serviceLevel}`,\r\n options\r\n )\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LIST_OF_CLIENTS_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LIST_OF_CLIENTS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LIST_OF_CLIENTS_FAILURE, json: err });\r\n });\r\n };\r\n}\r\n\r\nfunction returnClients(clients) {\r\n return clients.map((item) => {\r\n return {\r\n value: item.Id,\r\n label: item.Name,\r\n };\r\n });\r\n}\r\n\r\nfunction returnLocalitiesForSelectedClient(localities, clientL) {\r\n const clientLocalities = clientL.map((item) => item.Locality);\r\n if (localities) {\r\n return localities.filter((item) => clientLocalities.includes(item.label));\r\n } else return clientL;\r\n}\r\n\r\nexport function filterClientLocalities(locality) {\r\n return {\r\n type: FILTER_CLIENT_LOCALITIES,\r\n locality,\r\n };\r\n}\r\n\r\nfunction sortByLocality(localities) {\r\n return localities.sort(function (a, b) {\r\n if (`${a[\"Client\"]} ${a[\"Locality\"]}` < `${b[\"Client\"]} ${b[\"Locality\"]}`) {\r\n return -1;\r\n }\r\n if (`${a[\"Client\"]} ${a[\"Locality\"]}` > `${b[\"Client\"]} ${b[\"Locality\"]}`) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n}\r\n\r\nexport function getLocalitiesHistory(searchOptions) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCALITY_HISTORY_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n headers,\r\n };\r\n const setSearchOptions = searchOptions\r\n ? `?search=${searchOptions.split(\" \").join(\"*\")}`\r\n : \"\";\r\n fetch(`${globals.apiUrl}/clientlocalityhistory${setSearchOptions}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LOCALITY_HISTORY_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCALITY_HISTORY_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LOCALITY_HISTORY_FAILURE, json: err });\r\n });\r\n };\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [GET_LOCALITIES_BY_CLIENT_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LOCALITIES_BY_CLIENT_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n clientLocalitiesAll: json,\r\n clientLocalities: sortByLocality(json),\r\n localities: [\r\n { label: \"All Localities\", value: \"*\" },\r\n ...returnLocalitiesForSelectedClient(\r\n state.renderData.allLocalities,\r\n json\r\n ),\r\n ],\r\n },\r\n };\r\n },\r\n [GET_LOCALITIES_BY_CLIENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json,\r\n };\r\n },\r\n [CREATE_CLIENT_LOCALITY_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [CREATE_CLIENT_LOCALITY_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n let newLocalities = state.renderData.clientLocalities;\r\n const clientValue = state.formDataValue.CLS.queryLine.radio.client;\r\n const clientName = state.renderData.clientsListAll.find(\r\n (item) => item.label === json.Client\r\n );\r\n if (clientValue === clientName.value || clientValue === \"*\") {\r\n newLocalities = sortAlphabetical(\r\n [...state.renderData.clientLocalities, json],\r\n \"Locality\"\r\n );\r\n }\r\n const localityValue = state.formDataValue.CLS.queryLine.radio.locality;\r\n let filteredLocalities = [];\r\n if (localityValue !== \"*\") {\r\n filteredLocalities = newLocalities.filter(\r\n (item) => item.Locality === localityValue\r\n );\r\n }\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n newClientLocality: json,\r\n clientLocalities:\r\n localityValue !== \"*\"\r\n ? sortByLocality(filteredLocalities)\r\n : sortByLocality(newLocalities),\r\n clientLocalitiesAll: [...state.renderData.clientLocalitiesAll, json],\r\n },\r\n formDataValue: {\r\n CLS: {\r\n ...state.formDataValue.CLS,\r\n newLocality: {\r\n radio: {\r\n state: \"\",\r\n locality: \"\",\r\n client: \"\",\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [CREATE_CLIENT_LOCALITY_FAILURE]: (state, action) => {\r\n const { json } = action;\r\n return {\r\n ...state,\r\n errorCode: json,\r\n renderData: {\r\n ...state.renderData,\r\n },\r\n };\r\n },\r\n [DELETE_CLIENT_LOCALITY_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_CLIENT_LOCALITY_SUCCESS]: (state, action) => {\r\n const { localityId } = action;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n deleted: localityId,\r\n clientLocalities: state.renderData.clientLocalities.filter(\r\n (item) => item.Id !== localityId\r\n ),\r\n },\r\n };\r\n },\r\n [DELETE_CLIENT_LOCALITY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json,\r\n };\r\n },\r\n [GET_LOCALITIES_BY_STATE_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LOCALITIES_BY_STATE_SUCCESS]: (state, action) => {\r\n const { json, stateId } = action.payload;\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n allLocalities:\r\n stateId === \"*\"\r\n ? [\r\n { label: \"All Localities\", value: \"*\" },\r\n ...returnLocalities(json),\r\n ]\r\n : state.renderData.allLocalities,\r\n localitiesByState: stateId === \"*\" ? [] : returnLocalities(json),\r\n localities:\r\n stateId === \"*\"\r\n ? [\r\n { label: \"All Localities\", value: \"*\" },\r\n ...returnLocalities(json),\r\n ]\r\n : state.renderData.allLocalities,\r\n },\r\n };\r\n },\r\n [GET_LOCALITIES_BY_STATE_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json,\r\n };\r\n },\r\n [GET_COUNTRY_REGIONS_FETCHED]: (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n clientStates: action.payload.json.map((item) => {\r\n return {\r\n value: item.ShortName,\r\n label: item.Name,\r\n };\r\n }),\r\n },\r\n };\r\n },\r\n [GET_ALL_REGIONS_FETCHED]: (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n clientStates: action.payload.json.map((item) => {\r\n return {\r\n value: item.ShortName,\r\n label: item.Name,\r\n };\r\n }).filter((elem) => {\r\n return elem.label !== \"All States\" \r\n && elem.label !== \"Canada\"\r\n && elem.label !== \"Spain\"\r\n }),\r\n },\r\n };\r\n },\r\n [UPDATE_DATA]: (state, action) =>\r\n action.location.page !== pageIndex.clientLocalities\r\n ? state\r\n : actionHandler(state, action),\r\n [GET_LIST_OF_CLIENTS_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LIST_OF_CLIENTS_SUCCESS]: (state, action) => {\r\n const clients = [\r\n { value: \"*\", label: \"All Clients\" },\r\n ...returnClients(action.payload.json),\r\n ];\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n clientsListAll: clients,\r\n clientsList: clients,\r\n },\r\n };\r\n },\r\n [GET_LIST_OF_CLIENTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json,\r\n };\r\n },\r\n [FILTER_CLIENT_LOCALITIES]: (state, action) => {\r\n let clientLocalities;\r\n let clientsList;\r\n const selectedLocality = state.renderData.allLocalities.find(\r\n (item) => item.value === action.locality\r\n );\r\n if (action.locality !== \"*\") {\r\n clientLocalities = state.renderData.clientLocalitiesAll.filter(\r\n (item) => item.Locality === selectedLocality.label\r\n );\r\n } else {\r\n clientLocalities = state.renderData.clientLocalitiesAll;\r\n }\r\n if (\r\n state.formDataValue.CLS.queryLine.radio.client ||\r\n action.locality === \"*\"\r\n ) {\r\n clientsList = state.renderData.clientsListAll;\r\n } else {\r\n const clients = state.renderData.clientLocalitiesAll\r\n .filter((item) => item.Locality === selectedLocality.label)\r\n .map((item) => item.Client);\r\n clientsList = state.renderData.clientsListAll.filter((item) =>\r\n clients.includes(item.label)\r\n );\r\n }\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n clientLocalities,\r\n clientsList,\r\n },\r\n };\r\n },\r\n [GET_LOCALITY_HISTORY_START]: (state) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n localitiesHistory: undefined,\r\n },\r\n };\r\n },\r\n [GET_LOCALITY_HISTORY_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n localitiesHistory: action.payload.json,\r\n },\r\n };\r\n },\r\n [GET_LOCALITY_HISTORY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json,\r\n };\r\n },\r\n};\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nexport const initialState = {\r\n isFetchingData: false,\r\n errorCode: \"\",\r\n renderData: {},\r\n formDataValue: {\r\n CLS: {\r\n queryLine: {\r\n radio: {\r\n client: \"*\",\r\n locality: \"*\",\r\n },\r\n },\r\n newLocality: {\r\n radio: {\r\n state: \"\",\r\n locality: \"\",\r\n client: \"\",\r\n },\r\n },\r\n },\r\n },\r\n};\r\nexport default function clientLocalitiesReducer(state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/clientLocalities.js","import {globals, page as pageIndex} from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\nimport {GET_COUNTRY_REGIONS_FETCHED} from './regions'\r\nimport {logOut} from \"./auth\";\r\nimport {hideModal, showModal} from \"./modal\";\r\nimport {getUniqueListBy} from \"./helpers\";\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const SET_EDIT_MODAL_CONTENT_A = 'SET_EDIT_MODAL_CONTENT_A'\r\nexport const RESET_NEW_MODAL_CONTENT = 'RESET_NEW_MODAL_CONTENT'\r\nexport const GET_ACTION_HELP_TEXT_START = 'GET_ACTION_HELP_TEXT_START'\r\nexport const GET_ACTION_HELP_TEXT_FETCHED = 'GET_ACTION_HELP_TEXT_FETCHED'\r\nexport const GET_ACTION_HELP_TEXT_FAILED = 'GET_ACTION_HELP_TEXT_FAILED'\r\nexport const REMOVE_ACTION_HELP_TEXT_START = 'REMOVE_ACTION_HELP_TEXT_START'\r\nexport const REMOVE_ACTION_HELP_TEXT_SUCCESS = 'REMOVE_ACTION_HELP_TEXT_SUCCESS'\r\nexport const REMOVE_ACTION_HELP_TEXT_FAILURE = 'REMOVE_ACTION_HELP_TEXT_FAILURE'\r\nexport const ADD_ACTION_HELP_TEXT_START = 'ADD_ACTION_HELP_TEXT_START'\r\nexport const ADD_ACTION_HELP_TEXT_SUCCESS = 'ADD_ACTION_HELP_TEXT_SUCCESS'\r\nexport const ADD_ACTION_HELP_TEXT_FAILURE = 'ADD_ACTION_HELP_TEXT_FAILURE'\r\nexport const UPDATE_ACTION_HELP_TEXT_START = 'UPDATE_ACTION_HELP_TEXT_START'\r\nexport const UPDATE_ACTION_HELP_TEXT_SUCCESS = 'UPDATE_ACTION_HELP_TEXT_SUCCESS'\r\nexport const UPDATE_ACTION_HELP_TEXT_FAILURE = 'UPDATE_ACTION_HELP_TEXT_FAILURE'\r\nexport const GET_HISTORY_TEXT_HISTORY_START = 'GET_HISTORY_TEXT_HISTORY_START'\r\nexport const GET_HISTORY_TEXT_HISTORY_FAILURE = 'GET_HISTORY_TEXT_HISTORY_FAILURE'\r\nexport const GET_HISTORY_TEXT_HISTORY_SUCCESS = 'GET_HISTORY_TEXT_HISTORY_SUCCESS'\r\nexport const FILTER_HISTORY_TEXT_HISTORY = 'FILTER_HISTORY_TEXT_HISTORY'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\n\r\n\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function removeHistoryTextAction(id) {\r\n return (dispatch) => {\r\n dispatch({type: REMOVE_ACTION_HELP_TEXT_START})\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/HistoryActionHelpText/${id}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.text()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then(() => {\r\n dispatch({\r\n type: REMOVE_ACTION_HELP_TEXT_SUCCESS,\r\n id\r\n })\r\n dispatch(hideModal('Delete-history-action'))\r\n dispatch(historyActionDataInit())\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({type: REMOVE_ACTION_HELP_TEXT_FAILURE})\r\n })\r\n }\r\n}\r\n\r\nexport function createHistoryTextAction(textActionInfo) {\r\n return (dispatch) => {\r\n dispatch({type: ADD_ACTION_HELP_TEXT_START})\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(textActionInfo)\r\n }\r\n fetch(`${globals.apiUrl}/HistoryActionHelpText`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n dispatch({\r\n type: ADD_ACTION_HELP_TEXT_SUCCESS,\r\n textActionInfo: json\r\n })\r\n dispatch(hideModal('Add-new-item-history-action'))\r\n dispatch(historyActionDataInit())\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({type: ADD_ACTION_HELP_TEXT_FAILURE})\r\n })\r\n }\r\n}\r\n\r\nexport function setResetHistoryModal(historyObj) {\r\n if (historyObj) {\r\n return {\r\n type: SET_EDIT_MODAL_CONTENT_A,\r\n historyObj\r\n }\r\n } else {\r\n return {\r\n type: RESET_NEW_MODAL_CONTENT\r\n }\r\n }\r\n}\r\n\r\nexport function historyActionDataInit() {\r\n return (dispatch) => {\r\n dispatch({type: GET_ACTION_HELP_TEXT_START})\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n }\r\n fetch(`${globals.apiUrl}/HistoryActionHelpText`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_ACTION_HELP_TEXT_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({type: GET_ACTION_HELP_TEXT_FAILED})\r\n })\r\n }\r\n}\r\n\r\nfunction returnHistoryText(historyTextData) {\r\n return historyTextData.map(item => {\r\n return {\r\n value: item,\r\n label: item\r\n }\r\n })\r\n\r\n}\r\n\r\nexport function updateHistoryTextAction(textActionInfo) {\r\n return (dispatch) => {\r\n dispatch({type: UPDATE_ACTION_HELP_TEXT_START})\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(textActionInfo)\r\n }\r\n fetch(`${globals.apiUrl}/HistoryActionHelpText`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({type: UPDATE_ACTION_HELP_TEXT_FAILURE, json: text})\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n if (json.Message) {\r\n dispatch({type: UPDATE_ACTION_HELP_TEXT_FAILURE, json: json.Message})\r\n dispatch(showModal('Error'))\r\n } else {\r\n dispatch({\r\n type: UPDATE_ACTION_HELP_TEXT_SUCCESS,\r\n textActionInfo: json\r\n })\r\n dispatch(hideModal('Edit-item-history-action'))\r\n dispatch(historyActionDataInit())\r\n }\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({type: UPDATE_ACTION_HELP_TEXT_FAILURE, json: err})\r\n })\r\n }\r\n}\r\n\r\nexport function getAgencyHistory(searchOptions) {\r\n return (dispatch) => {\r\n dispatch({type: GET_HISTORY_TEXT_HISTORY_START})\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n const setSearchOptions = searchOptions ? `?search=${searchOptions.split(' ').join('*')}` : ''\r\n fetch(`${globals.apiUrl}/HistoryActionHelpTextHistory${setSearchOptions}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({type: GET_HISTORY_TEXT_HISTORY_FAILURE, json: text})\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_HISTORY_TEXT_HISTORY_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({type: GET_HISTORY_TEXT_HISTORY_FAILURE, json: err})\r\n })\r\n }\r\n}\r\nconst sortOrderAdnState = (arr) => {\r\n return arr.sort((a, b) => {\r\n if(a.state === b.state) {\r\n return a.Sort - b.Sort\r\n }\r\n return a.state > b.state ? 1 : -1;\r\n })\r\n}\r\n\r\nexport function filterHelpActionText(actionHelpText, id) {\r\n return {\r\n type: FILTER_HISTORY_TEXT_HISTORY,\r\n actionHelpText,\r\n id\r\n }\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA]: (state, action) => action.location.page !== pageIndex.historyHelpText\r\n ? state : actionHandler(state, action),\r\n [GET_COUNTRY_REGIONS_FETCHED]: (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allStates: [{label: 'All States', value: '*'},\r\n ...action.payload.json.map(item => {\r\n return {\r\n value: item.ShortName,\r\n label: item.Name\r\n }\r\n })]\r\n }\r\n }\r\n },\r\n [RESET_NEW_MODAL_CONTENT]: (state) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n [pageIndex.historyHelpText]: {\r\n ...state.formDataValue[pageIndex.historyHelpText],\r\n modalContent: {\r\n ...initialState.formDataValue[pageIndex.historyHelpText].modalContent\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [SET_EDIT_MODAL_CONTENT_A]: (state, action) => {\r\n const {state: State, Action, ActionWords, Sort} = action.historyObj\r\n return {\r\n ...state,\r\n formDataValue: {\r\n HHT: {\r\n ...state.formDataValue[pageIndex.historyHelpText],\r\n modalContent: {\r\n radio: {\r\n state: State,\r\n historyText: Action\r\n },\r\n textValues: {\r\n historyAction: ActionWords,\r\n sort: Sort\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [GET_ACTION_HELP_TEXT_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [GET_ACTION_HELP_TEXT_FAILED]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [GET_ACTION_HELP_TEXT_FETCHED]: (state, action) => {\r\n const {json} = action.payload\r\n const existedStates = [...new Set(json.map(item => item.state))]\r\n const existedStrings = !state.renderData.actionHelpTextDataFiltered ? [...new Set(json.map(item => item.Action))] : [...new Set(state.renderData.actionHelpTextDataFiltered.map(item => item.Action))]\r\n const stringsMocked = [...new Set(json.map(item => item.Action))]\r\n\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n actionHelpTextData: sortOrderAdnState(json),\r\n actionHelpTextStrings: returnHistoryText(existedStrings),\r\n actionHelpTextStringsForModal: returnHistoryText([...new Set(json.map(item => item.Action))]),\r\n existedStates,\r\n existedStrings: stringsMocked\r\n }\r\n }\r\n },\r\n [GET_HISTORY_TEXT_HISTORY_START]: (state) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n isFetchingData: true,\r\n history: undefined\r\n }\r\n }\r\n },\r\n [GET_HISTORY_TEXT_HISTORY_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n isFetchingData: false,\r\n history: action.payload.json\r\n }\r\n }\r\n },\r\n [GET_HISTORY_TEXT_HISTORY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [UPDATE_ACTION_HELP_TEXT_START]: (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [UPDATE_ACTION_HELP_TEXT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [UPDATE_ACTION_HELP_TEXT_SUCCESS]: (state, action) => {\r\n const {textActionInfo} = action\r\n let actionHelpList = state.renderData.actionHelpTextData\r\n let actionHelpListFiltered = state.renderData.actionHelpTextDataFiltered\r\n let historyActionHelpRecordsFiltered\r\n if(actionHelpListFiltered) {\r\n historyActionHelpRecordsFiltered = actionHelpListFiltered.map(item => {\r\n if (item.id === textActionInfo.id) {\r\n return textActionInfo\r\n } else return item\r\n })\r\n }\r\n const historyActionHelpRecords = actionHelpList.map(item => {\r\n if (item.id === textActionInfo.id) {\r\n return textActionInfo\r\n } else return item\r\n })\r\n if(state.formDataValue.HHT.queryLine.radio.state !== '*') {\r\n historyActionHelpRecordsFiltered = historyActionHelpRecordsFiltered.filter(item => {\r\n if(item.state === state.formDataValue.HHT.queryLine.radio.state) {\r\n return item\r\n } else {\r\n return null\r\n }\r\n })\r\n }\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n actionHelpTextData: sortOrderAdnState(historyActionHelpRecords),\r\n actionHelpTextDataFiltered: actionHelpListFiltered ? sortOrderAdnState(historyActionHelpRecordsFiltered) : sortOrderAdnState(historyActionHelpRecords)\r\n }\r\n }\r\n },\r\n [ADD_ACTION_HELP_TEXT_START]: (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [ADD_ACTION_HELP_TEXT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [ADD_ACTION_HELP_TEXT_SUCCESS]: (state, action) => {\r\n let currentHistoryActionData = state.renderData.actionHelpTextData\r\n const {textActionInfo} = action\r\n currentHistoryActionData = textActionInfo ? [textActionInfo, ...currentHistoryActionData] : currentHistoryActionData\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n actionHelpTextData: sortOrderAdnState(currentHistoryActionData),\r\n actionHelpTextDataFiltered: textActionInfo && state.renderData.actionHelpTextDataFiltered ? sortOrderAdnState([textActionInfo, ...state.renderData.actionHelpTextDataFiltered]) : sortOrderAdnState(currentHistoryActionData)\r\n }\r\n }\r\n },\r\n [REMOVE_ACTION_HELP_TEXT_START]: (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [REMOVE_ACTION_HELP_TEXT_SUCCESS]: (state, action) => {\r\n const {id} = action\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n actionHelpTextData: state.renderData.actionHelpTextData.filter(item => item.id !== id),\r\n actionHelpTextDataFiltered: state.renderData.actionHelpTextDataFiltered && state.renderData.actionHelpTextDataFiltered.filter(item => item.id !== id)\r\n }\r\n }\r\n },\r\n [REMOVE_ACTION_HELP_TEXT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [FILTER_HISTORY_TEXT_HISTORY]: (state, action) => {\r\n let historyActionHelpTexts = state.renderData.actionHelpTextData;\r\n let historyActionStringsFiltered;\r\n let historyActionHelpTextsFiltered;\r\n const selectedState = action.actionHelpText\r\n if(action.actionHelpText.state !== '*') {\r\n historyActionHelpTextsFiltered= historyActionHelpTexts.filter(item => item.state === selectedState.state)\r\n historyActionStringsFiltered = historyActionHelpTextsFiltered.map(item => item.Action)\r\n } else {\r\n historyActionStringsFiltered = historyActionHelpTexts.map(item => item.Action)\r\n }\r\n if(action.actionHelpText.progress !== '*') {\r\n historyActionHelpTextsFiltered = historyActionHelpTexts.filter(item => item.Action === selectedState.progress)\r\n }\r\n if(action.actionHelpText.state !== '*' && action.actionHelpText.progress !== '*') {\r\n historyActionHelpTextsFiltered = historyActionHelpTexts\r\n .filter(item => item.Action === selectedState.progress)\r\n .filter(item => item.state === selectedState.state)\r\n }\r\n if(action.actionHelpText.state === '*' && action.actionHelpText.progress === '*') {\r\n historyActionHelpTextsFiltered = state.renderData.actionHelpTextData;\r\n }\r\n\r\n const filteredStrings = [...new Set(historyActionStringsFiltered)]\r\n\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n actionHelpTextDataFiltered: historyActionHelpTextsFiltered,\r\n actionHelpTextStrings: returnHistoryText(filteredStrings),\r\n existedStates: [...new Set(historyActionHelpTexts.map(item => item.state))]\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nexport const initialState = {\r\n isFetchingData: false,\r\n errorCode: '',\r\n renderData: {\r\n actionHelpTextData: {}\r\n },\r\n formDataValue: {\r\n [pageIndex.historyHelpText]: {\r\n queryLine: {\r\n radio: {\r\n state: '*',\r\n historyAction: '*'\r\n }\r\n },\r\n modalContent: {\r\n radio: {\r\n state: '',\r\n historyText: ''\r\n },\r\n textValues: {\r\n historyAction: '',\r\n sort: ''\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default function historyHelpTextReducer(state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/historyActionHelpText.js","import { page as pageIndex, globals } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\nimport { logOut } from './auth'\r\nimport { showModal, hideModal } from './modal'\r\nimport { sortAlphabetical, sortByDate } from './helpers'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const RESET_NEW_MODAL_CONTENT = 'RESET_NEW_MODAL_CONTENT'\r\nexport const SET_EDIT_MODAL_CONTENT = 'SET_EDIT_MODAL_CONTENT'\r\nexport const GET_MEETINGS_HISTORY_START = 'GET_MEETINGS_HISTORY_START'\r\nexport const GET_MEETINGS_HISTORY_FAILURE = 'GET_MEETINGS_HISTORY_FAILURE'\r\nexport const GET_MEETINGS_HISTORY_SUCCESS = 'GET_MEETINGS_HISTORY_SUCCESS'\r\nexport const GET_MEETING_RECORDS_START = 'GET_MEETING_RECORDS_START'\r\nexport const GET_MEETING_RECORDS_FAILURE = 'GET_MEETING_RECORDS_FAILURE'\r\nexport const GET_MEETING_RECORDS_SUCCESS = 'GET_MEETING_RECORDS_SUCCESS'\r\nexport const DELETE_MEETING_RECORD_START = 'DELETE_MEETING_RECORD_START'\r\nexport const DELETE_MEETING_RECORD_SUCCESS = 'DELETE_MEETING_RECORD_SUCCESS'\r\nexport const DELETE_MEETING_RECORD_FAILURE = 'DELETE_MEETING_RECORD_FAILURE'\r\nexport const SORT_BY_ASSOCIATION = 'SORT_BY_ASSOCIATION'\r\nexport const SORT_BY_START_DATE = 'SORT_BY_START_DATE'\r\nexport const SORT_MEETINGS_START = 'SORT_MEETINGS_START'\r\nexport const RESET_SEARCH_OPTIONS = 'RESET_SEARCH_OPTIONS'\r\nexport const CREATE_MEETING_RECORD_START = 'CREATE_MEETING_RECORD_START'\r\nexport const CREATE_MEETING_RECORD_FAILURE = 'CREATE_MEETING_RECORD_FAILURE'\r\nexport const CREATE_MEETING_RECORD_SUCCESS = 'CREATE_MEETING_RECORD_SUCCESS'\r\nexport const UPDATE_MEETING_RECORD_START = 'UPDATE_MEETING_RECORD_START'\r\nexport const UPDATE_MEETING_RECORD_FAILURE = 'UPDATE_MEETING_RECORD_FAILURE'\r\nexport const UPDATE_MEETING_RECORD_SUCCESS = 'UPDATE_MEETING_RECORD_SUCCESS'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport function setResetMeetingModal (meetingObj) {\r\n if (meetingObj) {\r\n return {\r\n type: SET_EDIT_MODAL_CONTENT,\r\n meetingObj\r\n }\r\n } else {\r\n return {\r\n type: RESET_NEW_MODAL_CONTENT\r\n }\r\n }\r\n}\r\n\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function getAgencyHistory (searchOptions) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_MEETINGS_HISTORY_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n const setSearchOptions = searchOptions ? `?search=${searchOptions.split(' ').join('*')}` : ''\r\n fetch(`${globals.apiUrl}/meetingdatehistory${setSearchOptions}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_MEETINGS_HISTORY_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_MEETINGS_HISTORY_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_MEETINGS_HISTORY_FAILURE, json: err })\r\n })\r\n }\r\n}\r\n\r\nexport function getMeetingRecords (searchOptions) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_MEETING_RECORDS_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n const setSearchOptions = searchOptions || ''\r\n fetch(`${globals.apiUrl}/meetingdate${setSearchOptions}`, options).then((response) => {\r\n console.log(setSearchOptions);\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_MEETING_RECORDS_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_MEETING_RECORDS_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_MEETING_RECORDS_FAILURE, json: err })\r\n })\r\n }\r\n}\r\n\r\nexport function deleteMeetingRecord (id) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_MEETING_RECORD_START })\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/meetingdate/${id}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.text()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_MEETING_RECORD_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then(() => {\r\n dispatch({\r\n type: DELETE_MEETING_RECORD_SUCCESS,\r\n id\r\n })\r\n dispatch(hideModal('Delete-meeting'))\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: DELETE_MEETING_RECORD_FAILURE, json: err })\r\n })\r\n }\r\n}\r\n\r\nexport function sortMeetingRecords (option, isAlphabetically) {\r\n return (dispatch) => {\r\n dispatch({ type: SORT_MEETINGS_START })\r\n setTimeout(function () {\r\n if (option === 'association') {\r\n dispatch({\r\n type: SORT_BY_ASSOCIATION,\r\n sortOrder: isAlphabetically\r\n })\r\n } else if (option === 'date') {\r\n dispatch({\r\n type: SORT_BY_START_DATE,\r\n sortOrder: isAlphabetically\r\n })\r\n }\r\n }),\r\n 2000\r\n }\r\n}\r\n\r\nexport function resetOptions () {\r\n return {\r\n type: RESET_SEARCH_OPTIONS\r\n }\r\n}\r\n\r\nexport function createMeetingRecord (meetingInfo) {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_MEETING_RECORD_START })\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(meetingInfo)\r\n }\r\n fetch(`${globals.apiUrl}/meetingdate`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: CREATE_MEETING_RECORD_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n if (json.Message) {\r\n dispatch({ type: CREATE_MEETING_RECORD_FAILURE, json: json.Message })\r\n dispatch(showModal('Error'))\r\n } else {\r\n dispatch({\r\n type: CREATE_MEETING_RECORD_SUCCESS,\r\n meetingInfo: json\r\n })\r\n dispatch(hideModal('Add-new-item-meeting'))\r\n }\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: CREATE_MEETING_RECORD_FAILURE, json: err })\r\n })\r\n }\r\n}\r\n\r\nconst capitalize = (string) => {\r\n return string.replace(/(?:^|\\s)\\S/g, function(a) { return a.toUpperCase() })\r\n}\r\n\r\nexport function updateMeetingRecord (meetingInfo) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_MEETING_RECORD_START })\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(meetingInfo)\r\n }\r\n fetch(`${globals.apiUrl}/meetingdate`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: UPDATE_MEETING_RECORD_FAILURE, json: text })\r\n dispatch(showModal('Error'))\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n if (json.Message) {\r\n dispatch({ type: UPDATE_MEETING_RECORD_FAILURE, json: json.Message })\r\n dispatch(showModal('Error'))\r\n } else {\r\n dispatch({\r\n type: UPDATE_MEETING_RECORD_SUCCESS,\r\n meetingInfo: json\r\n })\r\n dispatch(hideModal('Edit-item-meeting'))\r\n }\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: UPDATE_MEETING_RECORD_FAILURE, json: err })\r\n })\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.meetingDates\r\n ? state : actionHandler(state, action),\r\n [SET_EDIT_MODAL_CONTENT] : (state, action) => {\r\n const { Association, Meeting, WebSite, ContactNumber, Location, StartDate, EndDate } = action.meetingObj\r\n return {\r\n ...state,\r\n formDataValue: {\r\n MD: {\r\n ...state.formDataValue.MD,\r\n meetingModal: {\r\n textValues: {\r\n association: Association,\r\n meeting: Meeting,\r\n website: WebSite,\r\n contact: ContactNumber,\r\n location: Location\r\n },\r\n dateTime: {\r\n startDate: StartDate,\r\n endDate: EndDate\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [RESET_NEW_MODAL_CONTENT] : (state) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n MD: {\r\n ...state.formDataValue.MD,\r\n meetingModal: initialState.formDataValue.MD.meetingModal\r\n }\r\n }\r\n }\r\n },\r\n [GET_MEETINGS_HISTORY_START] : (state) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n history: undefined\r\n }\r\n }\r\n },\r\n [GET_MEETINGS_HISTORY_SUCCESS] : (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n history: action.payload.json\r\n }\r\n }\r\n },\r\n [GET_MEETINGS_HISTORY_FAILURE] : (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [GET_MEETING_RECORDS_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [GET_MEETING_RECORDS_FAILURE] : (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [GET_MEETING_RECORDS_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n const associations = json.map(item => capitalize(item.Association).trim())\r\n const associationslist = [...new Set(associations)].map(item => {\r\n return { label: item, value: item }\r\n })\r\n const query = state.formDataValue.MD.queryLine.radio.query === 0\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n meetingRecords: sortByDate(json, 'StartDate'),\r\n associationsList: sortAlphabetical(associationslist, 'label'),\r\n allAssociations: query ? sortAlphabetical(associationslist, 'label') : state.renderData.allAssociations\r\n }\r\n }\r\n },\r\n [DELETE_MEETING_RECORD_START] : (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [DELETE_MEETING_RECORD_SUCCESS] : (state, action) => {\r\n const { id } = action\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n meetingRecords: state.renderData.meetingRecords.filter(item => item.Id !== id)\r\n }\r\n }\r\n },\r\n [DELETE_MEETING_RECORD_FAILURE] : (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [SORT_MEETINGS_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n renderData: {\r\n ...state.renderData,\r\n beforeSortRecords: state.renderData.meetingRecords,\r\n meetingRecords: []\r\n }\r\n }\r\n },\r\n [SORT_BY_ASSOCIATION] : (state, action) => {\r\n const { sortOrder } = action\r\n const transformRecords = state.renderData.beforeSortRecords.map(item => {\r\n item.association = capitalize(item.Association)\r\n return item\r\n })\r\n const sortedRecords = sortAlphabetical(transformRecords, 'association')\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n sortApplied: sortOrder,\r\n meetingRecords: sortOrder ? sortedRecords : sortedRecords.reverse()\r\n }\r\n }\r\n },\r\n [SORT_BY_START_DATE] : (state, action) => {\r\n const { sortOrder } = action\r\n const sortedRecords = sortByDate(state.renderData.beforeSortRecords, 'StartDate')\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n sortApplied: sortOrder,\r\n meetingRecords: sortOrder ? sortedRecords : sortedRecords.reverse()\r\n }\r\n }\r\n },\r\n [RESET_SEARCH_OPTIONS] : (state) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n MD: {\r\n ...state.formDataValue.MD,\r\n queryLine: {\r\n radio: {\r\n ...initialState.formDataValue.MD.queryLine.radio,\r\n query: state.formDataValue.MD.queryLine.radio.query\r\n }\r\n },\r\n parametersSection: {\r\n textValues: {},\r\n dateTime: {\r\n 'Start Date': ' ',\r\n 'End Date': ' '\r\n },\r\n radio: {\r\n Association: ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [CREATE_MEETING_RECORD_START] : (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [CREATE_MEETING_RECORD_FAILURE] : (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [CREATE_MEETING_RECORD_SUCCESS] : (state, action) => {\r\n const { meetingInfo } = action\r\n let newRecords = state.renderData.meetingRecords\r\n let associationsList = state.renderData.allAssociations\r\n const sort = state.formDataValue.MD.queryLine.radio.sort === 'date'\r\n const query = state.formDataValue.MD.queryLine.radio.query\r\n if (query === 0) {\r\n newRecords = [...state.renderData.meetingRecords, meetingInfo]\r\n newRecords = state.renderData.sortApplied ? newRecords : newRecords.reverse()\r\n } else if (query === 'association') {\r\n const checkAssociation = state.formDataValue.MD.parametersSection.radio.Association\r\n if (meetingInfo.Association.toLowerCase() === checkAssociation.toLowerCase()) {\r\n newRecords = [...state.renderData.meetingRecords, meetingInfo]\r\n }\r\n } else {\r\n const checkStart = state.formDataValue.MD.parametersSection.dateTime['Start Date']\r\n const checkEnd = state.formDataValue.MD.parametersSection.dateTime['End Date']\r\n if (new Date(checkStart) < new Date(meetingInfo.StartDate) &&\r\n new Date(meetingInfo.StartDate) < new Date(checkEnd)) {\r\n newRecords = [...state.renderData.meetingRecords, meetingInfo]\r\n }\r\n }\r\n newRecords = sort ? sortByDate(newRecords, 'StartDate') : sortAlphabetical(newRecords, 'Association')\r\n associationsList = associationsList.find(item => capitalize(item.label) === capitalize(meetingInfo.Association))\r\n ? associationsList\r\n : [...associationsList,\r\n { label: capitalize(meetingInfo.Association), value: capitalize(meetingInfo.Association) }\r\n ]\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n meetingRecords: newRecords,\r\n allAssociations: associationsList\r\n }\r\n }\r\n },\r\n [UPDATE_MEETING_RECORD_START] : (state) => {\r\n return {\r\n ...state\r\n }\r\n },\r\n [UPDATE_MEETING_RECORD_FAILURE] : (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n errorCode: action.json\r\n }\r\n },\r\n [UPDATE_MEETING_RECORD_SUCCESS] : (state, action) => {\r\n const { meetingInfo } = action\r\n let associationsList = state.renderData.allAssociations\r\n const meetingRecords = state.renderData.meetingRecords.map(item => {\r\n if (item.Id === meetingInfo.Id) {\r\n return meetingInfo\r\n } else return item\r\n })\r\n associationsList = associationsList.find(item => capitalize(item.label) === capitalize(meetingInfo.Association))\r\n ? associationsList\r\n : [...associationsList,\r\n { label: capitalize(meetingInfo.Association), value: capitalize(meetingInfo.Association) }\r\n ]\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n meetingRecords,\r\n allAssociations: associationsList\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nexport const initialState = {\r\n isFetchingData: false,\r\n errorCode: '',\r\n renderData: {\r\n sortApplied: true\r\n },\r\n formDataValue: {\r\n MD: {\r\n queryLine: {\r\n radio: {\r\n query: 0,\r\n sort: 'date'\r\n }\r\n },\r\n meetingModal: {\r\n textValues: {\r\n association: '',\r\n meeting: '',\r\n website: '',\r\n contact: '',\r\n location: ''\r\n },\r\n dateTime: {\r\n startDate: ' ',\r\n endDate: ' '\r\n }\r\n },\r\n parametersSection: {\r\n textValues: {},\r\n dateTime: {},\r\n radio: {}\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default function meetingDatesReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/meetingDates.js","import { page as pageIndex, globals } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\nimport { saveInitialValues, clearHistory } from './undo'\r\nimport { showModal } from './modal'\r\nimport moment from 'moment'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const ADD_BILL_TO_STORE_START = 'ADD_BILL_TO_STORE_START'\r\nexport const BILL_SAVED = 'BILL_SAVED'\r\nexport const ADD_BILL_TO_STORE_FAILURE = 'ADD_BILL_TO_STORE_FAILURE'\r\nexport const RAW_BILL_DATA_ERROR = 'RAW_BILL_DATA_ERROR'\r\nexport const RETURN_INITIAL_RBD = 'RETURN_INITIAL_RBD'\r\nexport const CREATE_NEW_BILL_RECORD = 'CREATE_NEW_BILL_RECORD'\r\nexport const OPEN_BILL_RECORD = 'OPEN_BILL_RECORD'\r\nexport const ADD_NEW_HISTORY_ITEM = 'ADD_NEW_HISTORY_ITEM'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function addBillToStore (billData, trackData, id) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_BILL_TO_STORE_START })\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(billData)\r\n }\r\n fetch(`${globals.apiUrl}/LegisRawData`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 409 || response.status === 400) {\r\n return response.text().then((text) => {\r\n dispatch({\r\n type: RAW_BILL_DATA_ERROR,\r\n errorMessage: text\r\n })\r\n dispatch(showModal('Error-raw-bill-data-message'))\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: BILL_SAVED,\r\n payload: {\r\n billData: json\r\n }\r\n })\r\n dispatch(clearHistory(pageIndex.rawBillData))\r\n dispatch(saveInitialValues(pageIndex.rawBillData, trackData))\r\n if (id) {\r\n dispatch(openRawBillRecord(id, trackData))\r\n }\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: ADD_BILL_TO_STORE_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function returnInitialState () {\r\n return {\r\n type: RETURN_INITIAL_RBD\r\n }\r\n}\r\n\r\nexport function createNewBillRecord () {\r\n return (dispatch) => {\r\n dispatch({\r\n type: CREATE_NEW_BILL_RECORD,\r\n newRecord: {\r\n RawFileId: 0,\r\n State: null,\r\n BillType: null,\r\n Session: null,\r\n PrefileYear: null,\r\n BillNumber: null,\r\n Introdate: ' ',\r\n SponsorFirstName: null,\r\n Sponsor: null,\r\n Url: null,\r\n Summary: null,\r\n History: null\r\n }\r\n })\r\n dispatch(openRawBillRecord(0))\r\n dispatch(clearHistory(pageIndex.rawBillData))\r\n dispatch(saveInitialValues(pageIndex.rawBillData, initialState.formDataValue.RBD))\r\n }\r\n}\r\n\r\nexport function openRawBillRecord (id, trackData) {\r\n return (dispatch) => {\r\n dispatch({\r\n type: OPEN_BILL_RECORD,\r\n id\r\n })\r\n dispatch(saveInitialValues(pageIndex.rawBillData, id === 0 ? initialState.formDataValue.RBD : trackData))\r\n }\r\n}\r\n\r\nconst returnDateFormat = (date) => {\r\n return date && date !== ' ' ? moment(date).format('MMM / DD / YYYY') : ' '\r\n}\r\n\r\nexport function addNewHistoryItem (id) {\r\n return {\r\n type: ADD_NEW_HISTORY_ITEM,\r\n id\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.rawBillData\r\n ? state : actionHandler(state, action),\r\n [BILL_SAVED] : (state, action) => {\r\n const { billData } = action.payload\r\n const queue = state.renderData.rawBillDataQueue.map(item => {\r\n if (item.RawFileId === 0) {\r\n return billData\r\n } else return item\r\n })\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n billRecordSaved: true,\r\n rawBillDataQueue: queue,\r\n rawBillRecord: billData,\r\n amountOfBills: queue\r\n },\r\n formDataValue: {\r\n RBD: {\r\n ...state.formDataValue.RBD,\r\n notes: {\r\n textValues: {\r\n ...state.formDataValue.RBD.notes.textValues,\r\n history: billData.History\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [RAW_BILL_DATA_ERROR] : (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n billRecordSaved: false,\r\n errorMessage: action.errorMessage\r\n }\r\n }\r\n },\r\n [RETURN_INITIAL_RBD] : () => {\r\n return {\r\n ...initialState\r\n }\r\n },\r\n [CREATE_NEW_BILL_RECORD] : (state, action) => {\r\n const queue = [...state.renderData.rawBillDataQueue, action.newRecord]\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n billRecordSaved: false,\r\n rawBillDataQueue: queue,\r\n amountOfBills: queue\r\n },\r\n formDataValue: {\r\n RBD: {\r\n ...state.formDataValue.RBD,\r\n history: {\r\n dateTime: {\r\n 'date-0': ' '\r\n },\r\n textValues: {\r\n 'chamber-0': '',\r\n 'historyAction-0': ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [OPEN_BILL_RECORD] : (state, action) => {\r\n const { id } = action\r\n const record = state.renderData.rawBillDataQueue.find(item => item.RawFileId === id)\r\n const recordIndex = state.renderData.rawBillDataQueue.findIndex(item => item.RawFileId === id) + 1\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n rawBillRecord: record\r\n },\r\n formDataValue: {\r\n RBD: {\r\n ...state.formDataValue.RBD,\r\n navigation: {\r\n textValues: {\r\n currentRecord: recordIndex\r\n }\r\n },\r\n baseData: {\r\n radio: {\r\n state: record.State,\r\n billType: record.BillType,\r\n session: record.Session,\r\n prefileYear: record.PrefileYear\r\n },\r\n textValues: {\r\n billNumber: record.BillNumber || '',\r\n firstName: record.SponsorFirstName || '',\r\n lastName: record.Sponsor || '',\r\n url: record.Url || ''\r\n },\r\n dateTime: {\r\n introDate: returnDateFormat(record.Introdate)\r\n }\r\n },\r\n notes: {\r\n textValues: {\r\n summary: record.Summary || '',\r\n history: record.History || ''\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [ADD_NEW_HISTORY_ITEM] : (state, action) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n RBD: {\r\n ...state.formDataValue.RBD,\r\n history: {\r\n textValues: {\r\n ...state.formDataValue.RBD.history.textValues,\r\n [`chamber-${action.id}`]: '',\r\n [`historyAction-${action.id}`]: ''\r\n },\r\n dateTime: {\r\n ...state.formDataValue.RBD.history.dateTime,\r\n [`date-${action.id}`]: ' '\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nexport const initialState = {\r\n isFetchingData: false,\r\n errorCode: '',\r\n renderData: {\r\n errorMessage: '',\r\n billRecordSaved: false,\r\n rawBillDataQueue: [{\r\n RawFileId: 0,\r\n State: null,\r\n BillType: null,\r\n Session: null,\r\n PrefileYear: null,\r\n BillNumber: null,\r\n Introdate: ' ',\r\n SponsorFirstName: null,\r\n Sponsor: null,\r\n Url: null,\r\n Summary: null,\r\n History: null,\r\n disableEditing: false\r\n }],\r\n rawBillRecord: {\r\n RawFileId: 0\r\n }\r\n },\r\n formDataValue: {\r\n RBD: {\r\n navigation: {\r\n textValues: {\r\n currentRecord: '1'\r\n }\r\n },\r\n baseData: {\r\n radio: {\r\n state: '',\r\n billType: '',\r\n session: '',\r\n prefileYear: ''\r\n },\r\n textValues: {\r\n billNumber: '',\r\n firstName: '',\r\n lastName: '',\r\n url: ''\r\n },\r\n dateTime: {\r\n introDate: ' '\r\n }\r\n },\r\n notes: {\r\n textValues: {\r\n summary: '',\r\n history: ''\r\n }\r\n },\r\n history: {\r\n dateTime: {\r\n 'date-0': ' '\r\n },\r\n textValues: {\r\n 'chamber-0': '',\r\n 'historyAction-0': ''\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport default function rawBillDataReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/rawBillDataEntry.js","import PropTypes from \"prop-types\";\r\nimport React, { Fragment } from \"react\";\r\nimport { editDeleteStyles } from \"../../../globals\";\r\nimport Modal from \"../../Modal/Modal\";\r\nimport STSComponent from \"../../STSComponent/STSComponent\";\r\n\r\nclass EditItem extends STSComponent {\r\n render() {\r\n const {\r\n modalType,\r\n title,\r\n toSave,\r\n toCancel,\r\n content,\r\n customStyles,\r\n saveButton,\r\n titleArea,\r\n additionalBtn,\r\n modal,\r\n savingNotAvailable,\r\n zIndex,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n {title ? (\r\n Edit {title}\r\n ) : (\r\n \r\n {titleArea.title}\r\n {titleArea.node}\r\n \r\n )}\r\n
\r\n {content}\r\n \r\n \r\n {additionalBtn}\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n static propTypes = {\r\n modalType: PropTypes.string,\r\n title: PropTypes.string,\r\n toCancel: PropTypes.func,\r\n toSave: PropTypes.func,\r\n content: PropTypes.node,\r\n customStyles: PropTypes.string,\r\n saveButton: PropTypes.string,\r\n titleArea: PropTypes.object,\r\n additionalBtn: PropTypes.node,\r\n modal: PropTypes.object,\r\n savingNotAvailable: PropTypes.bool,\r\n };\r\n}\r\n\r\nexport default EditItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Modal/components/EditItem.js","import React from 'react'\r\n\r\nexport const Loading = () => {\r\n return LOADING...
\r\n}\r\n\r\nexport default Loading\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Loading/Loading.js","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/unsupportedIterableToArray.js\n// module id = 488\n// module chunks = 19","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { editDeleteStyles } from \"../../../globals\";\r\nimport Modal from \"../../Modal/Modal\";\r\nimport STSComponent from \"../../STSComponent/STSComponent\";\r\n\r\nclass ListModal extends STSComponent {\r\n constructor(props) {\r\n super(props);\r\n this.deleteConfirm = this.deleteConfirm.bind(this);\r\n this.bringEditItemScreen = this.bringEditItemScreen.bind(this);\r\n }\r\n\r\n deleteConfirm = (item) => () => {\r\n const { openModal, modalType, sendData } = this.props;\r\n sendData(item);\r\n openModal(`Delete-${modalType}`)();\r\n };\r\n\r\n bringEditItemScreen = (item) => () => {\r\n const { sendData, openModal, modalType } = this.props;\r\n sendData(item);\r\n openModal(`Edit-item-${modalType}`)();\r\n };\r\n\r\n returnListItem = () => {\r\n const { listArray, itemText, modalType, hideEditDelete } = this.props;\r\n const { deleteConfirm, bringEditItemScreen } = this;\r\n if (!listArray) return null;\r\n return listArray.map((item, i) => {\r\n let newItem = \"\";\r\n for (let i = 0; i < itemText.length; i++) {\r\n newItem = `${newItem} ${item[itemText[i]]}`;\r\n }\r\n const itemSubName =\r\n modalType === \"user\"\r\n ? item.FirstName + item.LastName\r\n : modalType === \"contact\"\r\n ? item.ContactName\r\n : typeof itemText === \"string\"\r\n ? item[itemText]\r\n : newItem;\r\n return (\r\n \r\n
\r\n {itemSubName}\r\n \r\n {hideEditDelete ? (\r\n \"\"\r\n ) : (\r\n
\r\n \r\n EDIT\r\n \r\n / \r\n \r\n DELETE\r\n \r\n
\r\n )}\r\n
\r\n );\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n modalType,\r\n title,\r\n toAddNew,\r\n toClose,\r\n content,\r\n btnArea,\r\n addNewBtn,\r\n customStyles,\r\n hideEditTitle,\r\n modal,\r\n } = this.props;\r\n return (\r\n \r\n \r\n \r\n {!hideEditTitle ? \"Edit \" : null} {title}\r\n {title === \"subject\" ||\r\n title === \"favorite\" ||\r\n title === \"contact\" ||\r\n title === \"user\"\r\n ? \"s\"\r\n : null}\r\n \r\n
\r\n \r\n
\r\n {content || (\r\n
\r\n {this.returnListItem()}\r\n
\r\n )}\r\n
\r\n
\r\n {btnArea || (\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n\r\n static propTypes = {\r\n modalType: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n toClose: PropTypes.func,\r\n toAddNew: PropTypes.func,\r\n openModal: PropTypes.func,\r\n listArray: PropTypes.array,\r\n itemText: PropTypes.any,\r\n sendData: PropTypes.func,\r\n content: PropTypes.node,\r\n btnArea: PropTypes.node,\r\n addNewBtn: PropTypes.string,\r\n customStyles: PropTypes.string,\r\n hideEditTitle: PropTypes.bool,\r\n hideEditDelete: PropTypes.bool,\r\n modal: PropTypes.object,\r\n };\r\n}\r\n\r\nexport default ListModal;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Modal/components/ListModal.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nexport const TabContent = ({ children, isActive }) => {\r\n return (\r\n \r\n {children}\r\n
\r\n )\r\n}\r\n\r\nTabContent.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n isActive: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default TabContent\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tab/TabContent.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport '../AdditionalReportFilters/css/AdditionalReportFilters.scss'\r\n\r\nexport const TabLabel = ({ children, isActive, tabName, onClick }) => {\r\n return (\r\n \r\n {children}\r\n
\r\n )\r\n}\r\n\r\nTabLabel.propTypes = {\r\n tabName: PropTypes.string.isRequired,\r\n onClick: PropTypes.func,\r\n children: PropTypes.string.isRequired,\r\n isActive: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default TabLabel\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Tab/TabLabel.js","import moment from \"moment\";\r\nimport { globals, page as pageIndex } from \"../../globals\";\r\nimport { logOut } from \"./auth\";\r\nimport { formatDate } from \"./formatDate\";\r\nimport {\r\n GET_CLIENTS_FAILURE,\r\n GET_CLIENT_SUBJECT_INFO_FAILURE,\r\n GET_GROUPING_FAILURE,\r\n GET_SUBJECTS_FAILURE,\r\n POST_CLIENT_SUBJECT_TAG_FAILURE,\r\n POST_CLIENT_SUBJECT_TAG_SUCCESS,\r\n} from \"./groupings\";\r\nimport { populateSortAndSearchParams } from \"./helpers\";\r\nimport { showModal } from \"./modal\";\r\nimport {\r\n addInitialValue,\r\n clearHistory,\r\n deleteInitialValueAt,\r\n saveInitialValues,\r\n} from \"./undo\";\r\nimport { UPDATE_DATA, actionHandler } from \"./updateData\";\r\n\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const LOCAL_TRACK_INT_OPEN_RECORD_START =\r\n \"LOCAL_TRACK_INT_OPEN_RECORD_START\";\r\nexport const REFRESH_LOCAL_TRACK_RECORDS = \"REFRESH_LOCAL_TRACK_RECORDS\";\r\nexport const UPDATE_LOCAL_TRACK_REVIEW_DATA = \"UPDATE_LOCAL_TRACK_REVIEW_DATA\";\r\nexport const GET_LOCAL_TRACK_QUERIES_LIST_START =\r\n \"GET_LOCAL_TRACK_QUERIES_LIST_START\";\r\nexport const GET_LOCAL_TRACK_INT_QUERY_DATA_START =\r\n \"GET_LOCAL_TRACK_INT_QUERY_DATA_START\";\r\nexport const GET_LOCAL_TRACK_INT_QUERY_DATA_SUCCESS =\r\n \"GET_LOCAL_TRACK_INT_QUERY_DATA_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_INT_QUERY_DATA_FAILURE =\r\n \"GET_LOCAL_TRACK_INT_QUERY_DATA_FAILURE\";\r\nexport const GET_LOCAL_TRACK_TEAM_REVIEW_DATA_START =\r\n \"GET_LOCAL_TRACK_TEAM_REVIEW_DATA_START\";\r\nexport const GET_LOCAL_TRACK_TEAM_REVIEW_DATA_SUCCESS =\r\n \"GET_LOCAL_TRACK_TEAM_REVIEW_DATA_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_TEAM_REVIEW_DATA_FAILURE =\r\n \"GET_LOCAL_TRACK_TEAM_REVIEW_DATA_FAILURE\";\r\nexport const SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_START =\r\n \"SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_START\";\r\nexport const SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_SUCCESS =\r\n \"SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_SUCCESS\";\r\nexport const SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_FAILURE =\r\n \"SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_FAILURE\";\r\nexport const POST_LOCAL_TRACK_DATA_START = \"POST_LOCAL_TRACK_DATA_START\";\r\nexport const POST_LOCAL_TRACK_DATA_SUCCESS = \"POST_LOCAL_TRACK_DATA_SUCCESS\";\r\nexport const POST_LOCAL_TRACK_DATA_FAILURE = \"POST_LOCAL_TRACK_DATA_FAILURE\";\r\nexport const PUT_LOCAL_INFO_START = \"PUT_LOCAL_INFO_START\";\r\nexport const PUT_LOCAL_INFO_SUCCESS = \"PUT_LOCAL_INFO_SUCCESS\";\r\nexport const PUT_LOCAL_INFO_FAILURE = \"PUT_LOCAL_INFO_FAILURE\";\r\nexport const PUT_CLIENT_ACTION_START = \"PUT_CLIENT_ACTION_START\";\r\nexport const PUT_CLIENT_ACTION_SUCCESS = \"PUT_CLIENT_ACTION_SUCCESS\";\r\nexport const PUT_CLIENT_ACTION_FAILURE = \"PUT_CLIENT_ACTION_FAILURE\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_START =\r\n \"PUT_CLIENT_ACTION_COMMENT_START\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_SUCCESS =\r\n \"PUT_CLIENT_ACTION_COMMENT_SUCCESS\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_FAILURE =\r\n \"PUT_CLIENT_ACTION_COMMENT_FAILURE\";\r\nexport const UPDATE_LOCAL_URLS = \"UPDATE_LOCAL_URLS\";\r\nexport const GET_LOCAL_TRACK_BASE_START = \"GET_LOCAL_TRACK_BASE_START\";\r\nexport const GET_LOCAL_TRACK_BASE_SUCCESS = \"GET_LOCAL_TRACK_BASE_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_BASE_FAILURE = \"GET_LOCAL_TRACK_BASE_FAILURE\";\r\nexport const GET_LOCAL_TRACK_IDS_START = \"GET_LOCAL_TRACK_IDS_START\";\r\nexport const GET_LOCAL_TRACK_IDS_SUCCESS = \"GET_LOCAL_TRACK_IDS_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_IDS_FAILURE = \"GET_LOCAL_TRACK_IDS_FAILURE\";\r\nexport const GET_LOCAL_TRACK_KEYWORDS_START = \"GET_LOCAL_TRACK_KEYWORDS_START\";\r\nexport const GET_LOCAL_TRACK_KEYWORDS_SUCCESS =\r\n \"GET_LOCAL_TRACK_KEYWORDS_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_KEYWORDS_FAILURE =\r\n \"GET_LOCAL_TRACK_KEYWORDS_FAILURE\";\r\nexport const GET_LOCAL_TRACK_CLIENT_SUBJECTS_START =\r\n \"GET_LOCAL_TRACK_CLIENT_SUBJECTS_START\";\r\nexport const GET_LOCAL_TRACK_CLIENT_SUBJECTS_SUCCESS =\r\n \"GET_LOCAL_TRACK_CLIENT_SUBJECTS_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_CLIENT_SUBJECTS_FAILURE =\r\n \"GET_LOCAL_TRACK_CLIENT_SUBJECTS_FAILURE\";\r\nexport const GET_LOCAL_TRACK_LOCAL_TYPE_START =\r\n \"GET_LOCAL_TRACK_LOCAL_TYPE_START\";\r\nexport const GET_LOCAL_TRACK_LOCAL_TYPE_SUCCESS =\r\n \"GET_LOCAL_TRACK_LOCAL_TYPE_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_LOCAL_TYPE_FAILURE =\r\n \"GET_LOCAL_TRACK_LOCAL_TYPE_FAILURE\";\r\nexport const GET_LOCAL_TRACK_LOAD_OPTIONS_START =\r\n \"GET_LOCAL_TRACK_LOAD_OPTIONS_START\";\r\nexport const GET_LOCAL_TRACK_LOAD_OPTIONS_FAILURE =\r\n \"GET_LOCAL_TRACK_LOAD_OPTIONS_FAILURE\";\r\nexport const CLEAR_LOCAL_TRACK_FIELD_FOR_NO_RESULTS =\r\n \"CLEAR_LOCAL_TRACK_FIELD_FOR_NO_RESULTS\";\r\nexport const RETURN_LOCAL_TRACK_INITIAL_STATE =\r\n \"RETURN_LOCAL_TRACK_INITIAL_STATE\";\r\nexport const OPEN_LOCAL_TRACK_RECORD_SUCCESS =\r\n \"OPEN_LOCAL_TRACK_RECORD_SUCCESS\";\r\nexport const SET_LOCAL_TRACK_ID_REVIEWED_START =\r\n \"SET_LOCAL_TRACK_ID_REVIEWED_START\";\r\nexport const SET_LOCAL_TRACK_ID_REVIEWED_FAILURE =\r\n \"SET_LOCAL_TRACK_ID_REVIEWED_FAILURE\";\r\nexport const SET_LOCAL_TRACK_ID_REVIEWED_SUCCESS =\r\n \"SET_LOCAL_TRACK_ID_REVIEWED_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_HIGHLIGHTED_DOC_START =\r\n \"GET_LOCAL_TRACK_HIGHLIGHTED_DOC_START\";\r\nexport const GET_LOCAL_TRACK_HIGHLIGHTED_DOC_FAILURE =\r\n \"GET_LOCAL_TRACK_HIGHLIGHTED_DOC_FAILURE\";\r\nexport const GET_LOCAL_TRACK_HIGHLIGHTED_DOC_SUCCESS =\r\n \"GET_LOCAL_TRACK_HIGHLIGHTED_DOC_SUCCESS\";\r\nexport const GET_LOCAL_TRACK_INITIAL_DATA_START =\r\n \"GET_LOCAL_TRACK_INITIAL_DATA_START\";\r\nexport const GET_LOCAL_TRACK_INITIAL_DATA_COMPLETE =\r\n \"GET_LOCAL_TRACK_INITIAL_DATA_COMPLETE\";\r\nexport const GET_QC_KEYWORD_MISSING_START = \"GET_QC_KEYWORD_MISSING_START\";\r\nexport const GET_QC_KEYWORD_MISSING_SUCCESS = \"GET_QC_KEYWORD_MISSING_SUCCESS\";\r\nexport const GET_QC_KEYWORD_MISSING_FAILURE = \"GET_QC_KEYWORD_MISSING_FAILURE\";\r\nexport const GET_QC_KEYWORD_REVIEW_START = \"GET_QC_KEYWORD_REVIEW_START\";\r\nexport const GET_QC_KEYWORD_REVIEW_SUCCESS = \"GET_QC_KEYWORD_REVIEW_SUCCESS\";\r\nexport const GET_QC_KEYWORD_REVIEW_FAILURE = \"GET_QC_KEYWORD_REVIEW_FAILURE\";\r\nexport const GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_START =\r\n \"GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_START\";\r\nexport const GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_FAILURE =\r\n \"GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_FAILURE\";\r\nexport const GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_SUCCESS =\r\n \"GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_SUCCESS\";\r\nexport const SET_QC_KEYWORD_REVIEW_START = \"SET_QC_KEYWORD_REVIEW_START\";\r\nexport const SET_QC_KEYWORD_REVIEW_FAILURE = \"SET_QC_KEYWORD_REVIEW_FAILURE\";\r\nexport const SET_QC_KEYWORD_REVIEW_SUCCESS = \"SET_QC_KEYWORD_REVIEW_SUCCESS\";\r\nexport const FLIP_LOCAL_RECORD_LOCK_LOAD_DATE =\r\n \"FLIP_LOCAL_RECORD_LOCK_LOAD_DATE\";\r\nexport const DELETE_LOCAL_DOC_START = \"DELETE_LOCAL_DOC_START\";\r\nexport const DELETE_LOCAL_DOC_SUCCESS = \"DELETE_LOCAL_DOC_SUCCESS\";\r\nexport const DELETE_LOCAL_DOC_FAILURE = \"DELETE_LOCAL_DOC_FAILURE\";\r\nexport const DELETE_LOCAL_RECORD_START = \"DELETE_LOCAL_RECORD_START\";\r\nexport const DELETE_LOCAL_RECORD_SUCCESS = \"DELETE_LOCAL_RECORD_SUCCESS\";\r\nexport const DELETE_LOCAL_RECORD_FAILURE = \"DELETE_LOCAL_RECORD_FAILURE\";\r\nexport const DELETE_LOCAL_HISTORY_START = \"DELETE_LOCAL_HISTORY_START\";\r\nexport const DELETE_LOCAL_HISTORY_SUCCESS = \"DELETE_LOCAL_HISTORY_SUCCESS\";\r\nexport const DELETE_LOCAL_HISTORY_FAILURE = \"DELETE_LOCAL_HISTORY_FAILURE\";\r\nexport const DELETE_LOCAL_URL_START = \"DELETE_LOCAL_URL_START\";\r\nexport const ADD_NEW_LOCAL_URL_RECORD = \"ADD_NEW_LOCAL_URL_RECORD\";\r\nexport const ADD_NEW_HISTORY_ACTION_RECORD = \"ADD_NEW_HISTORY_ACTION_RECORD\";\r\nexport const DELETE_LOCAL_URL_SUCCESS = \"DELETE_LOCAL_URL_SUCCESS\";\r\nexport const DELETE_LOCAL_URL_FAILURE = \"DELETE_LOCAL_URL_FAILURE\";\r\nexport const ADD_LOCAL_DOC_START = \"ADD_LOCAL_DOC_START\";\r\nexport const ADD_LOCAL_DOC_SUCCESS = \"ADD_LOCAL_DOC_SUCCESS\";\r\nexport const ADD_LOCAL_DOC_FAILURE = \"ADD_LOCAL_DOC_FAILURE\";\r\nexport const ADD_LOCAL_HISTORY_ACTION_START = \"ADD_LOCAL_HISTORY_ACTION_START\";\r\nexport const ADD_LOCAL_HISTORY_ACTION_SUCCESS =\r\n \"ADD_LOCAL_HISTORY_ACTION_SUCCESS\";\r\nexport const ADD_LOCAL_HISTORY_ACTION_FAILURE =\r\n \"ADD_LOCAL_HISTORY_ACTION_FAILURE\";\r\nexport const GET_LOCALITIES_START = \"GET_LOCALITIES_START\";\r\nexport const GET_LOCALITIES_FAILURE = \"GET_LOCALITIES_FAILURE\";\r\nexport const GET_LOCALITIES_SUCCESS = \"GET_LOCALITIES_SUCCESS\";\r\nexport const DELETE_LOCAL_CLIENT_SUBJECT_TAG_START =\r\n \"DELETE_LOCAL_CLIENT_SUBJECT_TAG_START\";\r\nexport const DELETE_LOCAL_CLIENT_SUBJECT_TAG_SUCCESS =\r\n \"DELETE_LOCAL_CLIENT_SUBJECT_TAG_SUCCESS\";\r\nexport const DELETE_LOCAL_CLIENT_SUBJECT_TAG_FAILURE =\r\n \"DELETE_LOCAL_CLIENT_SUBJECT_TAG_FAILURE\";\r\nexport const PUT_LOCAL_CLIENT_SUBJECT_TAG_START =\r\n \"PUT_LOCAL_CLIENT_SUBJECT_TAG_START\";\r\nexport const PUT_LOCAL_CLIENT_SUBJECT_TAG_SUCCESS =\r\n \"PUT_LOCAL_CLIENT_SUBJECT_TAG_SUCCESS\";\r\nexport const PUT_LOCAL_CLIENT_SUBJECT_TAG_FAILURE =\r\n \"PUT_LOCAL_CLIENT_SUBJECT_TAG_FAILURE\";\r\nexport const PUT_LOCAL_TRACK_INT_URL_START = \"PUT_LOCAL_TRACK_INT_URL_START\";\r\nexport const PUT_LOCAL_TRACK_INT_URL_SUCCESS =\r\n \"PUT_LOCAL_TRACK_INT_URL_SUCCESS\";\r\nexport const PUT_LOCAL_TRACK_INT_URL_FAILURE =\r\n \"PUT_LOCAL_TRACK_INT_URL_FAILURE\";\r\nexport const POST_LOCAL_TRACK_INT_URL_START = \"POST_LOCAL_TRACK_INT_URL_START\";\r\nexport const POST_LOCAL_TRACK_INT_URL_SUCCESS =\r\n \"POST_LOCAL_TRACK_INT_URL_SUCCESS\";\r\nexport const POST_LOCAL_TRACK_INT_URL_FAILURE =\r\n \"POST_LOCAL_TRACK_INT_URL_FAILURE\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_START =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_START\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_FAILURE =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_FAILURE\";\r\nexport const GET_LOCAL_HISTORY_START = \"GET_LOCAL_HISTORY_START\";\r\nexport const GET_LOCAL_HISTORY_FAILURE = \"GET_LOCAL_HISTORY_FAILURE\";\r\nexport const GET_LOCAL_HISTORY_SUCCESS = \"GET_LOCAL_HISTORY_SUCCESS\";\r\nexport const PUT_LOCAL_HISTORY_START = \"PUT_LOCAL_HISTORY_START\";\r\nexport const PUT_LOCAL_HISTORY_SUCCESS = \"PUT_LOCAL_HISTORY_SUCCESS\";\r\nexport const PUT_LOCAL_HISTORY_FAILURE = \"PUT_LOCAL_HISTORY_FAILURE\";\r\nexport const GET_LOCAL_HISTORY_LOG_START = \"GET_LOCAL_HISTORY_LOG_START\";\r\nexport const GET_LOCAL_HISTORY_LOG_SUCCESS = \"GET_LOCAL_HISTORY_LOG_SUCCESS\";\r\nexport const GET_LOCAL_HISTORY_LOG_FAILURE = \"GET_LOCAL_HISTORY_LOG_FAILURE\";\r\nexport const ADD_LOCAL_MANAGMENT_COMMENT_START =\r\n \"ADD_LOCAL_MANAGMENT_COMMENT_START\";\r\nexport const ADD_LOCAL_MANAGMENT_COMMENT_SUCCESS =\r\n \"ADD_LOCAL_MANAGMENT_COMMENT_SUCCESS\";\r\nexport const ADD_LOCAL_MANAGMENT_COMMENT_FAILURE =\r\n \"ADD_LOCAL_MANAGMENT_COMMENT_FAILURE\";\r\nexport const ADD_SENDALERT_HISTORY_LOG_START =\r\n \"ADD_SENDALERT_HISTORY_LOG_START\";\r\nexport const ADD_SENDALERT_HISTORY_LOG_SUCCESS =\r\n \"ADD_SENDALERT_HISTORY_LOG_SUCCESS\";\r\nexport const ADD_SENDALERT_HISTORY_LOG_FAILURE =\r\n \"ADD_SENDALERT_HISTORY_LOG_FAILURE\";\r\nexport const PUT_LOCAL_MANAGEMENT_COMMENT_START =\r\n \"PUT_LOCAL_MANAGEMENT_COMMENT_START\";\r\nexport const PUT_LOCAL_MANAGEMENT_COMMENT_SUCCESS =\r\n \"PUT_LOCAL_MANAGEMENT_COMMENT_SUCCESS\";\r\nexport const PUT_LOCAL_MANAGEMENT_COMMENT_FAILURE =\r\n \"PUT_LOCAL_MANAGEMENT_COMMENT_FAILURE\";\r\nexport const GET_LOCAL_TAG_COMPARISON_START = \"GET_LOCAL_TAG_COMPARISON_START\";\r\nexport const GET_LOCAL_TAG_COMPARISON_FAILURE =\r\n \"GET_LOCAL_TAG_COMPARISON_FAILURE\";\r\nexport const GET_LOCAL_TAG_COMPARISON_SUCCESS =\r\n \"GET_LOCAL_TAG_COMPARISON_SUCCESS\";\r\nexport const PUT_COMPANION_BILL_REVIEW_START =\r\n \"PUT_COMPANION_BILL_REVIEW_START\";\r\nexport const PUT_COMPANION_BILL_REVIEW_SUCCESS =\r\n \"PUT_COMPANION_BILL_REVIEW_SUCCESS\";\r\nexport const PUT_COMPANION_BILL_REVIEW_FAILURE =\r\n \"PUT_COMPANION_BILL_REVIEW_FAILURE\";\r\nexport const POST_LOCAL_START = \"POST_LOCAL_START\";\r\nexport const POST_LOCAL_SUCCESS = \"POST_LOCAL_SUCCESS\";\r\nexport const POST_LOCAL_FAILURE = \"POST_LOCAL_FAILURE\";\r\nexport const UPLOAD_DOCUMENT_START = \"UPLOAD_DOCUMENT_START\";\r\nexport const UPLOAD_DOCUMENT_SUCCESS = \"UPLOAD_DOCUMENT_SUCCESS\";\r\nexport const UPLOAD_DOCUMENT_FAILURE = \"UPLOAD_DOCUMENT_FAILURE\";\r\n\r\nconst headers = {\r\n \"Content-Type\": \"application/json\",\r\n};\r\n\r\nexport function getLocalTrackInternalInitialState() {\r\n return initialState;\r\n}\r\n\r\nfunction formatDateShort(date) {\r\n return date && date !== \"\" ? moment(date).format(\"MM/DD/YYYY\") : \"\";\r\n}\r\n\r\nfunction matchReviewRows(rows) {\r\n return rows.map((item) => {\r\n return {\r\n textValues: {\r\n team: item.Team || \"\",\r\n assignedBy: item.AssignedBy || \"\",\r\n assignedDate: formatDate(item.AssignedDate),\r\n reviewedBy: item.ReviewedBy || \"\",\r\n reviewedDate: formatDate(item.ReviewedDate),\r\n type: item.FlagTypeDesc,\r\n flag: String(item.FlagType),\r\n },\r\n isReviewed: item.ReviewedBy !== null,\r\n };\r\n });\r\n}\r\n\r\nfunction matchBaseRecordInfo(info) {\r\n const recordInfo = {\r\n textValues: {\r\n country: info.Country || \"\",\r\n contact: info.ContactInformation || \"\",\r\n notes: info.Notes || \"\",\r\n localId: info.LocalId,\r\n loadDate: formatDate(info.LoadDate),\r\n oldLoadDate: formatDate(info.LoadDate),\r\n summary: info.Summary || \"\",\r\n year: info.Year || \"\",\r\n lastUpdateToRecord: formatDate(info.LastUpdateTS),\r\n lastUpdateUserId: info.LastUpdateId || \"\",\r\n state: info.State || \"\",\r\n deleted: info.Deleted || false,\r\n title: info.Title || \"\",\r\n remarks: info.Remarks || \"\",\r\n },\r\n radio: {\r\n locality: info.Locality || \"\",\r\n active: info.Active || false,\r\n },\r\n };\r\n\r\n return matchSubHistoryData(recordInfo, info);\r\n}\r\n\r\nfunction matchRecordInfo(info, baseRecordInfo) {\r\n const recordCreated = formatDate(info.CreateDate);\r\n const reviewers = info.Reviewers || [];\r\n\r\n const recordInfo = combineRecordInfo(\r\n baseRecordInfo,\r\n recordCreated,\r\n reviewers\r\n );\r\n\r\n return matchSubHistoryData(recordInfo, info);\r\n}\r\n\r\nfunction combineRecordInfo(baseRecordInfo, recordCreated, reviewers) {\r\n return {\r\n ...baseRecordInfo,\r\n textValues: {\r\n ...baseRecordInfo.textValues,\r\n recordCreated: recordCreated,\r\n reviewers: reviewers,\r\n },\r\n };\r\n}\r\n\r\nfunction matchSubHistoryData(recordInfo, info) {\r\n return {\r\n ...recordInfo,\r\n textValues: {\r\n ...recordInfo.textValues,\r\n supplementalHistory: info.SupplementalHistory || \"\",\r\n historyRemarks: info.HistoryRemarks || \"\",\r\n historyRemarksUpdated: formatDate(info.RemarksUpdated),\r\n effectiveModifiedDate: formatDate(info.EffectiveModifiedDate),\r\n effectiveDate: formatDateShort(info.EffectiveDate),\r\n publicLawNumber: info.PublicActNo || \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchDocuments(documents) {\r\n return documents\r\n ? documents.map((doc) => {\r\n return {\r\n url: doc.Url,\r\n description: doc.Description,\r\n urlType: doc.Type,\r\n id: doc.Id,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchHistoryActionOptions(historyActionOptions) {\r\n return historyActionOptions\r\n ? historyActionOptions.map((historyActionOption) => {\r\n return matchHistoryActionOption(historyActionOption);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchHistoryActionOption(historyActionOption) {\r\n return {\r\n value: historyActionOption[0],\r\n label: historyActionOption[0],\r\n activeFlag: historyActionOption[1],\r\n };\r\n}\r\n\r\nfunction matchHistoryActions(historyActions) {\r\n return historyActions\r\n ? historyActions.map((historyAction) => {\r\n return matchHistoryAction(historyAction);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchHistoryAction(historyAction) {\r\n return {\r\n textValues: {\r\n CreateDate: formatDate(\r\n historyAction && historyAction.CreateDate\r\n ? historyAction.CreateDate\r\n : new Date()\r\n ),\r\n CreateUser:\r\n historyAction && historyAction.CreateUser\r\n ? historyAction.CreateUser\r\n : \"\",\r\n HistoryDate: formatDate(\r\n historyAction && historyAction.HistoryDate\r\n ? historyAction.HistoryDate\r\n : new Date()\r\n ),\r\n LocalHistoryId:\r\n historyAction && historyAction.LocalHistoryId\r\n ? historyAction.LocalHistoryId\r\n : -1,\r\n LocalId:\r\n historyAction && historyAction.LocalId ? historyAction.LocalId : -1,\r\n NewRecord: historyAction ? false : true,\r\n },\r\n radio: {\r\n HistoryAction:\r\n historyAction && historyAction.HistoryAction\r\n ? historyAction.HistoryAction\r\n : \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchLocalUrls(localUrls) {\r\n return localUrls\r\n ? localUrls.map((localUrl) => {\r\n return matchLocalUrl(localUrl);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchLocalUrl(localUrl = null) {\r\n const newLocalUrl = {\r\n textValues: {\r\n Url: localUrl && localUrl.Url ? localUrl.Url : \"\",\r\n Description: localUrl && localUrl.Description ? localUrl.Description : \"\",\r\n Page: \"\",\r\n Id: localUrl && localUrl.Id ? localUrl.Id : -1,\r\n LocalId: localUrl && localUrl.RecId ? localUrl.RecId : -1,\r\n LinkUrl: localUrl && localUrl.LinkUrl ? localUrl.LinkUrl : \"\",\r\n SSUrl: localUrl && localUrl.SSUrl ? localUrl.SSUrl : \"\",\r\n MaintainOnSS:\r\n !localUrl ? true : localUrl.MaintainOnSS,\r\n UrlBad: !localUrl ? false : localUrl.UrlBad,\r\n UrlCheckedDate: formatDate(\r\n localUrl && localUrl.UrlCheckedDate\r\n ? localUrl.UrlCheckedDate\r\n : new Date()\r\n ),\r\n SortOrder: localUrl && localUrl.SortOrder ? localUrl.SortOrder : 0,\r\n NewRecord: localUrl ? false : true,\r\n },\r\n };\r\n\r\n return newLocalUrl;\r\n}\r\n\r\nfunction matchManagementComments(managementComments) {\r\n return managementComments\r\n ? managementComments.map((managementComment) => {\r\n return matchManagementComment(managementComment);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchManagementComment(managementComment) {\r\n return {\r\n textValues: {\r\n Id: managementComment.Id || \"\",\r\n RecordId: managementComment.RecordId || \"\",\r\n DataType: managementComment.DataType || \"\",\r\n DateAdded: formatDate(managementComment.DateAdded),\r\n AssignedBy: managementComment.AssignedBy || \"\",\r\n Comment: managementComment.Comment || \"\",\r\n Response: managementComment.Response || \"\",\r\n ResponseBy: managementComment.ResponseBy || \"\",\r\n ResponseDate: formatDate(managementComment.ResponseDate),\r\n MissedBill: !!managementComment.MissedBill,\r\n LateTagRequest: !!managementComment.LateTagRequest,\r\n CommentComplete: !!managementComment.CommentComplete,\r\n Reviewed: !!managementComment.Reviewed,\r\n },\r\n radio: {\r\n TeamAssigned: managementComment.TeamAssigned || \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchClientSubjectTags(clientSubjectTags) {\r\n return clientSubjectTags\r\n ? clientSubjectTags.map((clientSubjectTag) => {\r\n return matchClientSubjectTag(clientSubjectTag);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchClientSubjectTag(clientSubjectTag) {\r\n return {\r\n SubjectId: clientSubjectTag.SubjectId,\r\n Client: clientSubjectTag.Client,\r\n Subject: clientSubjectTag.Subject,\r\n DataType: clientSubjectTag.DataType,\r\n RecordId: clientSubjectTag.RecordId,\r\n SubscribeDate: formatDate(clientSubjectTag.SubscribeDate),\r\n CreateUser: clientSubjectTag.CreateUser,\r\n OriginalCreateDate: formatDate(clientSubjectTag.OriginalCreateDate),\r\n LastUpdateDate: formatDate(clientSubjectTag.LastUpdateDate),\r\n LastUpdateUser: clientSubjectTag.LastUpdateUser,\r\n IssueId: clientSubjectTag.IssueId,\r\n EmailAlerts: clientSubjectTag.EmailAlerts,\r\n Deleted: clientSubjectTag.Deleted,\r\n Autoload: clientSubjectTag.Autoload,\r\n DeletedByAnalyst: clientSubjectTag.DeletedByAnalyst,\r\n CanEdit: clientSubjectTag.CanEdit,\r\n };\r\n}\r\n\r\nfunction matchStandardRemarks(standardRemarks) {\r\n return standardRemarks\r\n ? standardRemarks.map((standardRemark) => {\r\n return {\r\n label: standardRemark,\r\n value: standardRemark,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchLocalities(localities) {\r\n return localities\r\n ? localities.map((locality) => {\r\n return {\r\n label: locality.Locality,\r\n value: locality.Locality,\r\n activeFlag: locality.DeleteDate ? false : true,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchClientActions(info) {\r\n return info.ClientActions\r\n ? info.ClientActions.map((action) => {\r\n return matchClientAction(action);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchClientAction(action) {\r\n return {\r\n textValues: {\r\n stsReviewer: action.StateScapeCheckedBy || \"\",\r\n reviewDate: formatDate(action.StateScapeCheckedDate),\r\n stsComment: action.StateScapeComments || \"\",\r\n client: action.Client || \"\",\r\n loginId: action.LogonId || \"\",\r\n action: action.Action || \"\",\r\n changedDate: formatDate(action.ChangeDate),\r\n userEmail: action.Email || \"\",\r\n actionDetails: action.ActionDetail || \"\",\r\n clientComment: action.ClientComments || \"\",\r\n clientActionId: action.ClientActionId || \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchIderInfo(info) {\r\n return {\r\n textValues: {\r\n ider: info.IDer || \"\",\r\n iderReviewed: info.IDerReviewed || \"\",\r\n iderReviewedDate: formatDate(info.IDerReviewedDate),\r\n },\r\n };\r\n}\r\n\r\nfunction matchKeywordHits(hits) {\r\n return hits.map((hit) => {\r\n return {\r\n textValues: {\r\n team: hit.Team || \"\",\r\n client: hit.Client || \"\",\r\n grouping: hit.Subject || \"\",\r\n keyword: hit.Keyword || \"\",\r\n hits: hit.Hits,\r\n foundDate: formatDate(hit.FoundDate),\r\n changeDate: formatDate(hit.ChangeDate),\r\n oldHits: hit.OldHits,\r\n keywordId: hit.KeywordId,\r\n taggingInstructions: hit.GroupTaggingInstructions || \"\",\r\n description: hit.GroupDescription || \"\",\r\n overview: hit.GroupOverview || \"\",\r\n boolPhrase: hit.BoolPhrase,\r\n groupingId: hit.GroupingId,\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchClientSubjects(clients) {\r\n return clients.map((client) => {\r\n return {\r\n textValues: {\r\n deleted: client.DeleteIt || false,\r\n client: client.ClientName || \"\",\r\n clientDescription: client.ClientDescription || \"\",\r\n subject: client.Subject || \"\",\r\n subjectDescription: client.SubjectDescription || \"\",\r\n changeDate: formatDate(client.CreateDate),\r\n user: client.CreateUserId || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchBooleansToSelectionList(values) {\r\n return {\r\n selected: Object.keys(values).filter(\r\n (key) => values[key] && typeof values[key] == \"boolean\"\r\n ),\r\n };\r\n}\r\n\r\nfunction matchQCKeywordReview(keywordsReview) {\r\n return keywordsReview.map((keywordReview) => {\r\n return {\r\n textValues: {\r\n reviewDate: formatDate(keywordReview.ReviewDate),\r\n reviewer: keywordReview.Reviewer || \"\",\r\n client: keywordReview.Client || \"\",\r\n subject: keywordReview.Subject || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchQCKeywordMissing(keywordsMissing) {\r\n return keywordsMissing.map((keywordMissing) => {\r\n return {\r\n textValues: {\r\n client: keywordMissing.Client || \"\",\r\n subject: keywordMissing.Subject || \"\",\r\n team: keywordMissing.Team || \"\",\r\n id: keywordMissing.Id || \"\",\r\n reviewed: keywordMissing.Reviewed || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchHistoryLog(historyLog) {\r\n return historyLog.map((log) => {\r\n return {\r\n HistoryDate: log.CreateDate,\r\n User: log.UserName,\r\n HistoryAction: log.Activity,\r\n };\r\n });\r\n}\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\n\r\nconst getReviewData = (localId) => {\r\n return (dispatch) =>\r\n dispatch(getLocalTrackBase(localId, dispatch)).then(() => {\r\n Promise.all([\r\n dispatch(getLocalKeywords(localId)),\r\n dispatch(getLocalHistoryLog(localId)),\r\n ]);\r\n });\r\n};\r\n\r\nexport function openReviewRecord(localId) {\r\n return (dispatch) => {\r\n dispatch({ type: LOCAL_TRACK_INT_OPEN_RECORD_START });\r\n dispatch(getReviewData(localId, dispatch)).finally(() => {\r\n dispatch({\r\n type: OPEN_LOCAL_TRACK_RECORD_SUCCESS,\r\n payload: { localId },\r\n });\r\n });\r\n };\r\n}\r\n\r\nconst getInitialData = () => {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch(getLocalTrackInternalQueryData()),\r\n dispatch(getLocalities()),\r\n ]);\r\n};\r\n\r\nexport function loadInitialData() {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch({ type: GET_LOCAL_TRACK_INITIAL_DATA_START }),\r\n dispatch(getInitialData()).finally(() => {\r\n dispatch({ type: GET_LOCAL_TRACK_INITIAL_DATA_COMPLETE });\r\n }),\r\n ]);\r\n}\r\n\r\nexport function getLocalTrackInternalQueryData() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_TRACK_INT_QUERY_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/LocalTrackIntQuery`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_INT_QUERY_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_INT_QUERY_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_INT_QUERY_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postLocalTrackInternal(localUrlsParameters) {\r\n return (dispatch) => {\r\n dispatch({ type: POST_LOCAL_TRACK_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(localUrlsParameters),\r\n };\r\n return fetch(`${globals.apiUrl}/LocalTrackIntQuery`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: POST_LOCAL_TRACK_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: POST_LOCAL_TRACK_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n if (json.length > 0) {\r\n dispatch(openReviewRecord(json[0]));\r\n } else {\r\n dispatch(showModal(\"No-results\"));\r\n dispatch(clearFormFields());\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: POST_LOCAL_TRACK_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postLocalTrack(localTrackInfo) {\r\n return (dispatch) => {\r\n dispatch({ type: POST_LOCAL_START });\r\n const options = {\r\n method: \"Post\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(localTrackInfo),\r\n };\r\n return fetch(`${globals.apiUrl}/localtrackint`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: POST_LOCAL_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: POST_LOCAL_SUCCESS,\r\n payload: {\r\n baseRecordInfo: matchBaseRecordInfo(json),\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: POST_LOCAL_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putLocalTrackInfo(localTrackInfo) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LOCAL_INFO_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(localTrackInfo),\r\n };\r\n return fetch(`${globals.apiUrl}/localtrackint`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LOCAL_INFO_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LOCAL_INFO_SUCCESS,\r\n payload: {\r\n baseRecordInfo: matchBaseRecordInfo(json),\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LOCAL_INFO_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientAction(clientActionId) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_CLIENT_ACTION_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({ ClientActionId: clientActionId }),\r\n };\r\n return fetch(`${globals.apiUrl}/clientaction`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientActionComment(clientAction) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_CLIENT_ACTION_COMMENT_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(clientAction),\r\n };\r\n return fetch(`${globals.apiUrl}/clientactioncomment`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLocalTeamReview(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_TRACK_TEAM_REVIEW_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/TeamReview/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_TEAM_REVIEW_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_TEAM_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LOCAL_TRACK_TEAM_REVIEW_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postLocalTeamsReview(id, teams, reviewed, flagType) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n localId: id,\r\n team: teams[0],\r\n reviewed: reviewed,\r\n flagType: flagType,\r\n }),\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/TeamReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLocalTrackBase(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_TRACK_BASE_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/v2/LocalTrackInt/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LOCAL_TRACK_BASE_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n const recordInfo = matchRecordInfo(json, matchBaseRecordInfo(json));\r\n const clientActions = matchClientActions(json);\r\n const standardRemarks = matchStandardRemarks(json.StandardRemarks);\r\n const documents = matchDocuments(json.Documents);\r\n const clientSubjectTags = matchClientSubjectTags(json.ClientSubjects);\r\n const managementComments = matchManagementComments(\r\n json.ManagementComments\r\n );\r\n const historyActions = matchHistoryActions(json.HistoryActions).sort(\r\n (a, b) => b.HistoryDate - a.HistoryDate\r\n );\r\n\r\n const historyActionOptions = matchHistoryActionOptions(\r\n json.HistoryActionOptions\r\n );\r\n const localUrls = matchLocalUrls(json.LocalUrls).sort(\r\n (a, b) => a.textValues.SortOrder - b.textValues.SortOrder\r\n );\r\n\r\n dispatch({\r\n type: GET_LOCAL_TRACK_BASE_SUCCESS,\r\n payload: {\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n clientSubjectTags,\r\n managementComments,\r\n standardRemarks,\r\n historyActions,\r\n historyActionOptions,\r\n localUrls,\r\n },\r\n });\r\n dispatch(clearHistory(pageIndex.localTrackInternal));\r\n dispatch(\r\n saveInitialValues(pageIndex.localTrackInternal, {\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n clientSubjectTags,\r\n managementComments,\r\n standardRemarks,\r\n historyActions,\r\n localUrls,\r\n })\r\n );\r\n\r\n return recordInfo;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LOCAL_TRACK_BASE_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function moveURL(urlIndex, localUrls, direction) {\r\n return (dispatch) => {\r\n const { localUrlCurrent, localUrlNext } = moveUrlOrder(\r\n urlIndex,\r\n localUrls,\r\n direction\r\n );\r\n\r\n dispatch(\r\n updateLocalTrackIntURL(localUrlCurrent.textValues, urlIndex - direction)\r\n );\r\n dispatch(updateLocalTrackIntURL(localUrlNext.textValues, urlIndex));\r\n };\r\n}\r\n\r\nexport function getLocalTrackIds(locality, meetingDate) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_TRACK_IDS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/LocalTrackInt/`);\r\n\r\n const params = {\r\n locality,\r\n meetingDate,\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LOCAL_TRACK_IDS_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LOCAL_TRACK_IDS_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postIdReviewed(id) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_LOCAL_TRACK_ID_REVIEWED_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: id,\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/IdReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: SET_LOCAL_TRACK_ID_REVIEWED_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_LOCAL_TRACK_ID_REVIEWED_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: SET_LOCAL_TRACK_ID_REVIEWED_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLocalKeywords(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_TRACK_KEYWORDS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetKeywords/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LOCAL_TRACK_KEYWORDS_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_KEYWORDS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LOCAL_TRACK_KEYWORDS_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getQCKeywordReview(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QC_KEYWORD_REVIEW_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetQCKeywordReview/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getQCKeywordMissing(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QC_KEYWORD_MISSING_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetQCKeywordMissing/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getSubjectGroupList(client, subject) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/SubjectGroupList`);\r\n\r\n const params = {\r\n client,\r\n subject,\r\n searchType: \"Locallation\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getHighlightedDocument(teams, keywords, path) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_TRACK_HIGHLIGHTED_DOC_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/KeywordHits`);\r\n\r\n const params = {\r\n docpath: path,\r\n service: \"local\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n if (teams && teams.length != 0) {\r\n teams.forEach((team) => {\r\n if (String(team).length > 0) {\r\n url.searchParams.append(\"teamId\", team);\r\n }\r\n });\r\n }\r\n\r\n if (keywords && keywords.length != 0) {\r\n keywords.forEach((keyword) =>\r\n url.searchParams.append(\"keywordId\", keyword)\r\n );\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.url;\r\n } else if (response.status === 302) {\r\n return response.url;\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_HIGHLIGHTED_DOC_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((url) => {\r\n if (url) {\r\n dispatch({\r\n type: GET_LOCAL_TRACK_HIGHLIGHTED_DOC_SUCCESS,\r\n payload: {\r\n url,\r\n },\r\n });\r\n return url;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LOCAL_TRACK_HIGHLIGHTED_DOC_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function postQCKeywordReview(rawfileId, team, customName) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({ rawfileId, team, customName }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/RawFile/QCKeywordReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((success) => {\r\n return success;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteLocalDocument(docId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LOCAL_DOC_START });\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/localdoc/${docId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_LOCAL_DOC_SUCCESS,\r\n payload: {\r\n docId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_LOCAL_DOC_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: DELETE_LOCAL_DOC_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function flipLockLoadDate() {\r\n return (dispatch) => {\r\n dispatch({ type: FLIP_LOCAL_RECORD_LOCK_LOAD_DATE });\r\n };\r\n}\r\n\r\nexport function deleteLocalRecord(localId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LOCAL_RECORD_START });\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/localtrackint/${localId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_LOCAL_RECORD_SUCCESS,\r\n payload: {\r\n localId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_LOCAL_RECORD_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: DELETE_LOCAL_RECORD_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function addLocalDocument(document) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_LOCAL_DOC_START });\r\n\r\n const { type, url, description, linkedRecord } = document;\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n Type: type,\r\n Url: url,\r\n Description: description,\r\n RawFileId: linkedRecord,\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/localdoc`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: ADD_LOCAL_DOC_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_LOCAL_DOC_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: ADD_LOCAL_DOC_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function addLocalTrackIntURL(localTrackUrl, arrayIndex) {\r\n return (dispatch) => {\r\n dispatch({ type: POST_LOCAL_TRACK_INT_URL_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n recId: localTrackUrl.LocalId,\r\n description: localTrackUrl.Description,\r\n url: localTrackUrl.Url,\r\n maintainOnSS: localTrackUrl.MaintainOnSS,\r\n page: localTrackUrl.Page,\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/LocalTrackIntUrl`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 409 ||\r\n response.status === 404 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: POST_LOCAL_TRACK_INT_URL_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: POST_LOCAL_TRACK_INT_URL_SUCCESS,\r\n payload: {\r\n json,\r\n arrayIndex,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: POST_LOCAL_TRACK_INT_URL_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function updateLocalTrackIntURL(localTrackUrl, arrayIndex) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LOCAL_TRACK_INT_URL_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: [JSON.stringify(localTrackUrl)],\r\n };\r\n return fetch(`${globals.apiUrl}/LocalTrackIntUrl`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 500 ||\r\n response.status === 404\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LOCAL_TRACK_INT_URL_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LOCAL_TRACK_INT_URL_SUCCESS,\r\n payload: {\r\n json,\r\n arrayIndex,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LOCAL_TRACK_INT_URL_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function addActionRecordToHistoryActions() {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_NEW_HISTORY_ACTION_RECORD });\r\n dispatch(\r\n addInitialValue(\r\n pageIndex.localTrackInternal,\r\n \"historyActions\",\r\n matchHistoryAction()\r\n )\r\n );\r\n };\r\n}\r\n\r\nexport function addLocalUrlRecordToURls() {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_NEW_LOCAL_URL_RECORD });\r\n dispatch(\r\n addInitialValue(\r\n pageIndex.localTrackInternal,\r\n \"localUrls\",\r\n matchLocalUrl()\r\n )\r\n );\r\n };\r\n}\r\n\r\nexport function deleteLocalUrl(localUrlId, recordInfo, arrayIndex) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LOCAL_URL_START });\r\n\r\n if (localUrlId === -1) {\r\n dispatch(\r\n deleteInitialValueAt(\r\n {\r\n page: pageIndex.localTrackInternal,\r\n field: \"localUrls\",\r\n },\r\n arrayIndex\r\n )\r\n );\r\n\r\n return dispatch({\r\n type: DELETE_LOCAL_URL_SUCCESS,\r\n payload: {\r\n localUrlId,\r\n recordInfo,\r\n arrayIndex,\r\n },\r\n });\r\n }\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/LocalTrackIntUrl/${localUrlId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_LOCAL_URL_SUCCESS,\r\n payload: {\r\n localUrlId,\r\n recordInfo,\r\n arrayIndex,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_LOCAL_URL_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: DELETE_LOCAL_URL_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteHistoryAction(localHistoryId, recordInfo, arrayIndex) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LOCAL_HISTORY_START });\r\n\r\n if (localHistoryId === -1) {\r\n dispatch(\r\n deleteInitialValueAt(\r\n {\r\n page: pageIndex.localTrackInternal,\r\n field: \"historyActions\",\r\n },\r\n arrayIndex\r\n )\r\n );\r\n\r\n dispatch({\r\n type: DELETE_LOCAL_HISTORY_SUCCESS,\r\n payload: {\r\n localHistoryId,\r\n recordInfo,\r\n arrayIndex,\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(\r\n `${globals.apiUrl}/localtrackinthistory/${localHistoryId}`\r\n );\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_LOCAL_HISTORY_SUCCESS,\r\n payload: {\r\n localHistoryId,\r\n arrayIndex,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_LOCAL_HISTORY_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: DELETE_LOCAL_HISTORY_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function addHistoryAction(historyAction, arrayIndex) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_LOCAL_HISTORY_ACTION_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(historyAction),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/localtrackinthistory`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: ADD_LOCAL_HISTORY_ACTION_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_LOCAL_HISTORY_ACTION_SUCCESS,\r\n payload: {\r\n json,\r\n arrayIndex,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: ADD_LOCAL_HISTORY_ACTION_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLocalities() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCALITIES_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(\r\n `${globals.apiUrl}/localreview?actiondatetype=0&includedeleted=true`\r\n );\r\n\r\n try {\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LOCALITIES_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCALITIES_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LOCALITIES_FAILURE,\r\n json: \"Retrieving Localities\" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n } catch {\r\n (error) => {\r\n dispatch({\r\n type: GET_LOCALITIES_FAILURE,\r\n json: error,\r\n });\r\n };\r\n }\r\n };\r\n}\r\n\r\nexport function deleteClientSubjectTag(subjectId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LOCAL_CLIENT_SUBJECT_TAG_START });\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/clientSubjectTag/${subjectId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_LOCAL_CLIENT_SUBJECT_TAG_SUCCESS,\r\n payload: {\r\n subjectId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: DELETE_LOCAL_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: DELETE_LOCAL_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientSubjectTag(clientSubjectTag) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LOCAL_CLIENT_SUBJECT_TAG_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: [JSON.stringify(clientSubjectTag)],\r\n };\r\n return fetch(`${globals.apiUrl}/clientSubjectTag`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LOCAL_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LOCAL_CLIENT_SUBJECT_TAG_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LOCAL_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function updateSubscribeDateForAll(recordId, dataType, subscribeDate) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_SUBSCRIBE_DATE_ALL_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n recordId,\r\n dataType,\r\n subscribeDate,\r\n }),\r\n };\r\n return fetch(`${globals.apiUrl}/ClientSubjectSubscription`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n return true;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putLocalHistory(historyData) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LOCAL_HISTORY_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(historyData),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/localtrackinthistory`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LOCAL_HISTORY_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LOCAL_HISTORY_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LOCAL_HISTORY_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLocalHistoryLog(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_HISTORY_LOG_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/HistoryLog`);\r\n\r\n const params = {\r\n entityType: \"localid\",\r\n entityId: id,\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LOCAL_HISTORY_LOG_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCAL_HISTORY_LOG_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LOCAL_HISTORY_LOG_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function addManagementComment(\r\n recordId,\r\n team,\r\n comment,\r\n lateTagRequest,\r\n missedBill\r\n) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_LOCAL_MANAGMENT_COMMENT_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n recordId,\r\n DataType: \"local\",\r\n TeamAssigned: team,\r\n comment,\r\n lateTagRequest,\r\n missedBill,\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/managementcomments`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: ADD_LOCAL_MANAGMENT_COMMENT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_LOCAL_MANAGMENT_COMMENT_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: ADD_LOCAL_MANAGMENT_COMMENT_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function sendAlertHistoryLog(entityId, activityDescription) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_SENDALERT_HISTORY_LOG_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n entityType: \"LocalId\",\r\n workItemLocation: \"LocalTrack\",\r\n entityId,\r\n activityDescription,\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/HistoryLog`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: ADD_SENDALERT_HISTORY_LOG_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_SENDALERT_HISTORY_LOG_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: ADD_SENDALERT_HISTORY_LOG_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function updateManagementComment(managementComment) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LOCAL_MANAGEMENT_COMMENT_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(managementComment),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/managementcomments`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LOCAL_MANAGEMENT_COMMENT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LOCAL_MANAGEMENT_COMMENT_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LOCAL_MANAGEMENT_COMMENT_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLocalTagComparison(primaryLocalId, companionLocalId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LOCAL_TAG_COMPARISON_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/LocalTagComparison`);\r\n\r\n const params = {\r\n primaryLocalId,\r\n companionLocalId,\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LOCAL_TAG_COMPARISON_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LOCAL_TAG_COMPARISON_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LOCAL_TAG_COMPARISON_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putCompanionBillReview(localId, team, reviewed) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_COMPANION_BILL_REVIEW_START });\r\n\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n LocalId: localId,\r\n Reviews: [{ TeamGroupId: team, Reviewed: reviewed }],\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/CompanionBillReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_COMPANION_BILL_REVIEW_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_COMPANION_BILL_REVIEW_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_COMPANION_BILL_REVIEW_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function uploadUrl(\r\n recordId,\r\n uploadFile,\r\n recordType,\r\n description,\r\n page,\r\n arrayIndex\r\n) {\r\n return (dispatch) => {\r\n dispatch({ type: UPLOAD_DOCUMENT_START });\r\n\r\n const formData = new FormData();\r\n\r\n formData.append(\"Description\", description);\r\n formData.append(\"RecId\", recordId);\r\n formData.append(\"RecType\", recordType);\r\n formData.append(\"UploadedFile\", uploadFile);\r\n formData.append(\"PageNumber\", page);\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n body: formData,\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/document`, options)\r\n .then((response) => {\r\n if (response.redirected) {\r\n return { type: \"url\", url: response.url };\r\n }\r\n\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: UPLOAD_DOCUMENT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: POST_LOCAL_TRACK_INT_URL_SUCCESS,\r\n payload: {\r\n json,\r\n arrayIndex,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: UPLOAD_DOCUMENT_FAILURE,\r\n json: \"Uploading document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function clearFormFields() {\r\n return {\r\n type: CLEAR_LOCAL_TRACK_FIELD_FOR_NO_RESULTS,\r\n };\r\n}\r\n\r\nexport function returnInitialState() {\r\n return {\r\n type: RETURN_LOCAL_TRACK_INITIAL_STATE,\r\n };\r\n}\r\n\r\nfunction moveUrlOrder(urlIndex, localUrls, direction) {\r\n const localUrlCurrent = {\r\n ...localUrls[urlIndex],\r\n textValues: {\r\n ...localUrls[urlIndex].textValues,\r\n SortOrder: localUrls[urlIndex].textValues.SortOrder - direction,\r\n },\r\n };\r\n\r\n const localUrlNext = {\r\n ...localUrls[urlIndex - direction],\r\n textValues: {\r\n ...localUrls[urlIndex - direction].textValues,\r\n SortOrder:\r\n localUrls[urlIndex - direction].textValues.SortOrder + direction,\r\n },\r\n };\r\n\r\n const newLocalUrls = Object.assign([], localUrls, {\r\n [urlIndex]: localUrlCurrent,\r\n [urlIndex - direction]: localUrlNext,\r\n }).sort((a, b) => a.textValues.SortOrder - b.textValues.SortOrder);\r\n\r\n return { localUrlCurrent, localUrlNext, newLocalUrls };\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA]: (state, action) =>\r\n action.location.page !== pageIndex.localTrackInternal\r\n ? state\r\n : actionHandler(state, action),\r\n [RETURN_LOCAL_TRACK_INITIAL_STATE]: () => {\r\n return {\r\n ...initialState,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_INT_QUERY_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_INT_QUERY_DATA_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queriesWithParameters: json,\r\n queries: json.map((item) => {\r\n return {\r\n value: item.QueryId,\r\n label: item.QueryName,\r\n };\r\n }),\r\n },\r\n };\r\n },\r\n [UPDATE_LOCAL_URLS]: (state, action) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n localUrls: action.newLocalUrls,\r\n },\r\n },\r\n };\r\n },\r\n [POST_LOCAL_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [POST_LOCAL_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [POST_LOCAL_SUCCESS]: (state) => {\r\n // const baseRecordInfo = action.payload.baseRecordInfo;\r\n // const recordCreated =\r\n // state.formDataValue.LOTI.recordInfo.textValues.recordCreated;\r\n // const reviewers = state.formDataValue.LOTI.recordInfo.textValues.reviewers;\r\n\r\n // const recordInfo = combineRecordInfo(\r\n // baseRecordInfo,\r\n // recordCreated,\r\n // reviewers\r\n // );\r\n\r\n // return {\r\n // ...state,\r\n // formDataValue: {\r\n // ...state.formDataValue,\r\n // LOTI: {\r\n // ...state.formDataValue.LOTI,\r\n // recordInfo,\r\n // },\r\n // },\r\n // };\r\n return {\r\n ...state,\r\n };\r\n },\r\n [PUT_LOCAL_INFO_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LOCAL_INFO_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LOCAL_INFO_SUCCESS]: (state, action) => {\r\n const baseRecordInfo = action.payload.baseRecordInfo;\r\n const recordCreated =\r\n state.formDataValue.LOTI.recordInfo.textValues.recordCreated;\r\n const reviewers = state.formDataValue.LOTI.recordInfo.textValues.reviewers;\r\n\r\n const recordInfo = combineRecordInfo(\r\n baseRecordInfo,\r\n recordCreated,\r\n reviewers\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n recordInfo,\r\n },\r\n },\r\n };\r\n },\r\n [PUT_LOCAL_HISTORY_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LOCAL_HISTORY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LOCAL_HISTORY_SUCCESS]: (state, action) => {\r\n const newHistoryAction = action.payload.json;\r\n\r\n const historyActionIndex =\r\n state.formDataValue.LOTI.historyActions.findIndex(\r\n (historyAction) =>\r\n historyAction.textValues.LocalHistoryId ===\r\n newHistoryAction.LocalHistoryId\r\n );\r\n\r\n const newState = {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n historyActions: Object.assign(\r\n [],\r\n state.formDataValue.LOTI.historyActions,\r\n {\r\n [historyActionIndex]: matchHistoryAction(newHistoryAction),\r\n }\r\n ),\r\n },\r\n },\r\n };\r\n\r\n return newState;\r\n },\r\n [PUT_LOCAL_MANAGEMENT_COMMENT_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LOCAL_MANAGEMENT_COMMENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LOCAL_MANAGEMENT_COMMENT_SUCCESS]: (state, action) => {\r\n const newManagementComment = action.payload.json;\r\n\r\n const commentIndex = state.formDataValue.LOTI.managementComments.findIndex(\r\n (managementComment) =>\r\n managementComment.textValues.Id === newManagementComment.Id\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n managementComments: Object.assign(\r\n [],\r\n state.formDataValue.LOTI.managementComments,\r\n {\r\n [commentIndex]: matchManagementComment(newManagementComment),\r\n }\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [ADD_SENDALERT_HISTORY_LOG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LOCAL_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS]: (state, action) => {\r\n const clientSubjectTags = matchClientSubjectTags(action.payload.json);\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n clientSubjectTags,\r\n },\r\n },\r\n };\r\n },\r\n [PUT_LOCAL_CLIENT_SUBJECT_TAG_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LOCAL_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LOCAL_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const newCientSubjectTag = action.payload.json;\r\n\r\n const tageIndex = state.formDataValue.LOTI.clientSubjectTags.findIndex(\r\n (clientSubjectTag) =>\r\n clientSubjectTag.SubjectId === newCientSubjectTag.SubjectId\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n clientSubjectTags: Object.assign(\r\n [],\r\n state.formDataValue.LOTI.clientSubjectTags,\r\n {\r\n [tageIndex]: matchClientSubjectTag(newCientSubjectTag),\r\n }\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_SUCCESS]: (state, action) => {\r\n return clientAtionSuccess(action, state);\r\n },\r\n [PUT_CLIENT_ACTION_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_SUCCESS]: (state, action) => {\r\n return clientAtionSuccess(action, state);\r\n },\r\n [PUT_COMPANION_BILL_REVIEW_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_COMPANION_BILL_REVIEW_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_COMPANION_BILL_REVIEW_SUCCESS]: (state, action) => {\r\n const companionBill = action.payload.json;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n companionReviewedTeams: matchBooleansToSelectionList({\r\n 1: companionBill.CompanionReviewedTeamGroup1,\r\n 2: companionBill.CompanionReviewedTeamGroup2,\r\n 3: companionBill.CompanionReviewedTeamGroup3,\r\n }),\r\n },\r\n },\r\n };\r\n },\r\n [POST_LOCAL_TRACK_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [POST_LOCAL_TRACK_DATA_SUCCESS]: (state, action) => {\r\n const queryRecords = action.payload.json;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queryRecords,\r\n },\r\n };\r\n },\r\n [POST_LOCAL_TRACK_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_TEAM_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_TEAM_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TRACK_TEAM_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [SET_LOCAL_TRACK_TEAMS_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LOCAL_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_LOCAL_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LOCAL_DOC_SUCCESS]: (state, action) => {\r\n const { docId } = action.payload;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n documents: state.formDataValue.LOTI.documents.filter(\r\n (doc) => doc.id !== docId\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [ADD_NEW_HISTORY_ACTION_RECORD]: (state) => {\r\n const newHistoryAction = [\r\n matchHistoryAction(),\r\n ...state.formDataValue.LOTI.historyActions,\r\n ];\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n historyActions: newHistoryAction,\r\n },\r\n },\r\n };\r\n },\r\n [ADD_NEW_LOCAL_URL_RECORD]: (state) => {\r\n const newLocalUrls = [\r\n matchLocalUrl(),\r\n ...state.formDataValue.LOTI.localUrls,\r\n ];\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n localUrls: newLocalUrls,\r\n },\r\n },\r\n };\r\n },\r\n [DELETE_LOCAL_URL_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_LOCAL_URL_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LOCAL_URL_SUCCESS]: (state, action) => {\r\n const { arrayIndex } = action.payload;\r\n const newLocalUrls = [...state.formDataValue.LOTI.localUrls];\r\n newLocalUrls.splice(arrayIndex, 1);\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n localUrls: newLocalUrls,\r\n },\r\n },\r\n };\r\n },\r\n [DELETE_LOCAL_HISTORY_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_LOCAL_HISTORY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LOCAL_HISTORY_SUCCESS]: (state, action) => {\r\n const { arrayIndex } = action.payload;\r\n const newHistoryActions = [...state.formDataValue.LOTI.historyActions];\r\n newHistoryActions.splice(arrayIndex, 1);\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n historyActions: newHistoryActions,\r\n },\r\n },\r\n };\r\n },\r\n [FLIP_LOCAL_RECORD_LOCK_LOAD_DATE]: (state) => {\r\n return {\r\n ...state,\r\n lockLoadDate: !state.lockLoadDate,\r\n };\r\n },\r\n [DELETE_LOCAL_RECORD_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_LOCAL_RECORD_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LOCAL_RECORD_SUCCESS]: (state, action) => {\r\n const { localId } = action.payload;\r\n const queryRecords = state.renderData.queryRecords.filter(\r\n (id) => id !== localId\r\n );\r\n\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queryRecords,\r\n },\r\n };\r\n },\r\n [DELETE_LOCAL_CLIENT_SUBJECT_TAG_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_LOCAL_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LOCAL_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const { subjectId } = action.payload;\r\n const newClientSubjectTags = [\r\n ...state.formDataValue.LOTI.clientSubjectTags,\r\n ];\r\n const changingClientSubjectTag = newClientSubjectTags.find(\r\n (clientSubjectTag) => clientSubjectTag.SubjectId === subjectId\r\n );\r\n\r\n changingClientSubjectTag.Deleted = true;\r\n changingClientSubjectTag.DeletedByAnalyst = true;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n clientSubjectTags: newClientSubjectTags,\r\n },\r\n },\r\n };\r\n },\r\n [ADD_LOCAL_HISTORY_ACTION_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [ADD_LOCAL_HISTORY_ACTION_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [ADD_LOCAL_HISTORY_ACTION_SUCCESS]: (state, action) => {\r\n const { json, arrayIndex } = action.payload;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n historyActions: Object.values({\r\n ...state.formDataValue.LOTI.historyActions,\r\n [arrayIndex]: matchHistoryAction(json),\r\n }),\r\n },\r\n },\r\n };\r\n },\r\n [PUT_LOCAL_TRACK_INT_URL_START]: (state) => {\r\n return {\r\n ...state,\r\n localUrlUpdating: true,\r\n };\r\n },\r\n [PUT_LOCAL_TRACK_INT_URL_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n localUrlUpdating: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LOCAL_TRACK_INT_URL_SUCCESS]: (state, action) => {\r\n const { json, arrayIndex } = action.payload;\r\n\r\n return {\r\n ...state,\r\n localUrlUpdating: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n localUrls: Object.values({\r\n ...state.formDataValue.LOTI.localUrls,\r\n [arrayIndex]: matchLocalUrl(json),\r\n }),\r\n },\r\n },\r\n };\r\n },\r\n [ADD_LOCAL_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [ADD_LOCAL_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [ADD_LOCAL_DOC_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n const newDocument = matchDocuments([json]);\r\n const newDocuments = [\r\n ...state.formDataValue.LOTI.documents,\r\n ...newDocument,\r\n ];\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n documents: newDocuments,\r\n },\r\n },\r\n };\r\n },\r\n [POST_LOCAL_TRACK_INT_URL_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [POST_LOCAL_TRACK_INT_URL_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [POST_LOCAL_TRACK_INT_URL_SUCCESS]: (state, action) => {\r\n const { json, arrayIndex } = action.payload;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n localUrls: Object.values({\r\n ...state.formDataValue.LOTI.localUrls,\r\n [arrayIndex]: matchLocalUrl(json),\r\n }),\r\n },\r\n },\r\n };\r\n },\r\n [ADD_LOCAL_MANAGMENT_COMMENT_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [ADD_LOCAL_MANAGMENT_COMMENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [ADD_LOCAL_MANAGMENT_COMMENT_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n const newManagamentComment = matchManagementComment(json);\r\n const newManagamentComments = [\r\n newManagamentComment,\r\n ...state.formDataValue.LOTI.managementComments,\r\n ];\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n managementComments: newManagamentComments,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TRACK_QUERIES_LIST_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_IDS_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_IDS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_BASE_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_BASE_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_BASE_SUCCESS]: (state, action) => {\r\n const clientActions = action.payload.clientActions;\r\n const recordInfo = action.payload.recordInfo;\r\n const documents = action.payload.documents;\r\n const clientSubjectTags = action.payload.clientSubjectTags;\r\n const managementComments = action.payload.managementComments;\r\n const standardRemarks = action.payload.standardRemarks;\r\n const historyActions = action.payload.historyActions;\r\n const historyActionOptions = action.payload.historyActionOptions;\r\n const localUrls = action.payload.localUrls;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n clientSubjectTags,\r\n managementComments,\r\n standardRemarks,\r\n historyActions,\r\n localUrls,\r\n },\r\n },\r\n renderData: {\r\n ...state.renderData,\r\n historyActionOptions,\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TRACK_INITIAL_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_INITIAL_DATA_COMPLETE]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n };\r\n },\r\n [LOCAL_TRACK_INT_OPEN_RECORD_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [OPEN_LOCAL_TRACK_RECORD_SUCCESS]: (state, action) => {\r\n const currentIndex = state.renderData.queryRecords.findIndex(\r\n (record) => record === action.payload.localId\r\n );\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n lockLoadDate: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n currentLocalId: action.payload.localId,\r\n navigation: {\r\n ...state.formDataValue.LOTI.navigation,\r\n textValues: {\r\n ...state.formDataValue.LOTI.navigation.textValues,\r\n currentRecord: currentIndex + 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [SET_LOCAL_TRACK_ID_REVIEWED_SUCCESS]: (state, action) => {\r\n const iderInfo = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n iderReviewedInfo: matchIderInfo(iderInfo),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TRACK_KEYWORDS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n recordKeywordHits: matchKeywordHits(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TRACK_CLIENT_SUBJECTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_CLIENT_SUBJECTS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n recordClientSubjects: matchClientSubjects(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_HISTORY_LOG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LOCAL_HISTORY_LOG_SUCCESS]: (state, action) => {\r\n const historyLog = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n textBlocks: {\r\n ...state.formDataValue.LOTI.textBlocks,\r\n textValues: {\r\n ...state.formDataValue.LOTI.textBlocks.textValues,\r\n log: matchHistoryLog(historyLog),\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [GET_QC_KEYWORD_MISSING_SUCCESS]: (state, action) => {\r\n const keywordsMissing = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n recordQCKeywordMissing: matchQCKeywordMissing(keywordsMissing),\r\n },\r\n },\r\n };\r\n },\r\n [GET_QC_KEYWORD_REVIEW_SUCCESS]: (state, action) => {\r\n const keywordsReview = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n recordQCKeywordReview: matchQCKeywordReview(keywordsReview),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TRACK_HIGHLIGHTED_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_HIGHLIGHTED_DOC_SUCCESS]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_HIGHLIGHTED_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LOCALITIES_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LOCALITIES_SUCCESS]: (state, action) => {\r\n const localities = matchLocalities(action.payload.json);\r\n\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n localities: localities,\r\n },\r\n };\r\n },\r\n [GET_LOCALITIES_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_LOCAL_HISTORY_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LOCAL_HISTORY_SUCCESS]: (state, action) => {\r\n const currentLocalProgress = matchBooleansToSelectionList(\r\n action.payload.json\r\n );\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n currentLocalProgress: currentLocalProgress,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_HISTORY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [POST_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const clientSubjectTags = matchClientSubjectTags(action.payload.json);\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n clientSubjectTags: [\r\n ...clientSubjectTags,\r\n ...state.formDataValue.LOTI.clientSubjectTags,\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n [POST_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_START]: (state) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n clientSubjectGroupings: [],\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_SUCCESS]: (state, action) => {\r\n const groupingsList = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n clientSubjectGroupings: groupingsList,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TRACK_SUBJECT_GROUP_LIST_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_LOCAL_TAG_COMPARISON_START]: (state) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n companionPrimaryTags: {},\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TAG_COMPARISON_SUCCESS]: (state, action) => {\r\n const companionPrimaryTags = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n companionPrimaryTags: companionPrimaryTags,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LOCAL_TAG_COMPARISON_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [SET_QC_KEYWORD_REVIEW_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_QC_KEYWORD_REVIEW_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_CLIENTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_CLIENT_SUBJECT_INFO_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_GROUPING_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_SUBJECTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [UPLOAD_DOCUMENT_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [UPLOAD_DOCUMENT_SUCCESS]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n };\r\n },\r\n [UPLOAD_DOCUMENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [CLEAR_LOCAL_TRACK_FIELD_FOR_NO_RESULTS]: (state) => {\r\n const query = state.renderData.queriesWithParameters.find(\r\n (query) => query.QueryId == state.formDataValue.LOTI.queryLine.radio.query\r\n );\r\n\r\n const {\r\n parametersSectionSelectables,\r\n sortParameters,\r\n sortFields,\r\n sortDirections,\r\n filterFields,\r\n } = populateSortAndSearchParams(query);\r\n\r\n return {\r\n ...initialState,\r\n disableEditing: true,\r\n renderData: {\r\n ...initialState.renderData,\r\n localities: state.renderData.localities,\r\n historyActionOptions: state.renderData.historyActionOptions,\r\n queriesWithParameters: state.renderData.queriesWithParameters,\r\n queries: state.renderData.queries,\r\n allRegions: state.renderData.allRegions,\r\n regions: state.renderData.regions,\r\n regionsList: state.renderData.regionsList,\r\n localDocTypes: state.renderData.localDocTypes,\r\n nonDeletableDocTypes: state.renderData.nonDeletableDocTypes,\r\n },\r\n formDataValue: {\r\n LOTI: {\r\n ...initialState.formDataValue.LOTI,\r\n queryLine: {\r\n ...state.formDataValue.LOTI.queryLine,\r\n },\r\n parametersSection: {\r\n ...state.formDataValue.LOTI.parametersSection,\r\n radio: parametersSectionSelectables,\r\n },\r\n sortParameters: {\r\n radio: sortParameters,\r\n fields: sortFields,\r\n },\r\n sortDirections: {\r\n radio: sortDirections,\r\n },\r\n filterParameters: {\r\n fields: filterFields,\r\n },\r\n },\r\n },\r\n };\r\n },\r\n};\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: \"\",\r\n isFetchingData: false,\r\n lockLoadDate: false,\r\n renderData: {\r\n queryRecords: [],\r\n queryProperties: [],\r\n currentRecord: {},\r\n recordIndex: 0,\r\n localities: [],\r\n historyActionOptions: [],\r\n },\r\n formDataValue: {\r\n LOTI: {\r\n settingsLine: {\r\n radio: {\r\n autoAdvance: true,\r\n autoUrl: false,\r\n extraInfoExpanded: false,\r\n clientActionsExpanded: false,\r\n },\r\n },\r\n queryLine: {\r\n radio: {\r\n query: \"Select Query\",\r\n },\r\n textValues: {\r\n keywordSearch: \"\",\r\n },\r\n selected: [],\r\n },\r\n parametersSection: {\r\n textValues: {},\r\n dateTime: {},\r\n radio: [],\r\n },\r\n sortParameters: {\r\n radio: [],\r\n fields: [],\r\n },\r\n sortDirections: {\r\n radio: [],\r\n },\r\n filterParameters: {\r\n fields: [],\r\n },\r\n navigation: {\r\n textValues: {\r\n currentRecord: \"1\",\r\n },\r\n },\r\n currentLocalProgress: matchBooleansToSelectionList([]),\r\n reviewRecords: matchReviewRows([]),\r\n recordInfo: matchRecordInfo(\r\n {},\r\n matchBaseRecordInfo({ LoadDate: new Date(\"1/1/1901\") })\r\n ),\r\n iderReviewedInfo: matchIderInfo({}),\r\n recordKeywordHits: matchKeywordHits([]),\r\n recordClientSubjects: matchClientSubjects([]),\r\n recordQCKeywordMissing: matchQCKeywordMissing([]),\r\n recordQCKeywordReview: matchQCKeywordReview([]),\r\n documents: matchDocuments([]),\r\n clientActions: matchClientActions([]),\r\n historyActions: matchHistoryActions([]),\r\n localUrls: matchLocalUrls([]),\r\n clientSubjectTags: [],\r\n clientSubjectGroupings: [],\r\n managementComments: [],\r\n standardRemarks: [],\r\n otherDocs: {\r\n 0: {\r\n textValues: {\r\n urlIdDocs: \"\",\r\n urlDescription: \"\",\r\n },\r\n radio: {\r\n docsType: \"versions\",\r\n },\r\n },\r\n },\r\n clients: {\r\n selected: [],\r\n },\r\n notLoadedClients: {\r\n selected: [],\r\n },\r\n history: {\r\n textValues: {\r\n history: \"\",\r\n },\r\n },\r\n textBlocks: {\r\n textValues: {\r\n log: [],\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nfunction clientAtionSuccess(action, state) {\r\n const updatedClientAction = action.payload.json;\r\n const clientActionIndex = state.formDataValue.LOTI.clientActions.findIndex(\r\n (clientAction) =>\r\n clientAction.textValues.clientActionId ===\r\n updatedClientAction.ClientActionId\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LOTI: {\r\n ...state.formDataValue.LOTI,\r\n clientActions: Object.values({\r\n ...state.formDataValue.LOTI.clientActions,\r\n [clientActionIndex]: matchClientAction(updatedClientAction),\r\n }),\r\n },\r\n },\r\n };\r\n}\r\n\r\nexport default function localTrackInternalReducer(\r\n state = initialState,\r\n action\r\n) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/localTrackInternalFormData.js","import { globals } from '../../globals'\r\nimport { hideModal } from './modal'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const ADD_NEW_URL_START = 'ADD_NEW_URL_START'\r\nexport const ADD_NEW_URL_SUCCESS = 'ADD_NEW_URL_SUCCESS'\r\nexport const ADD_NEW_URL_FAILED = 'ADD_NEW_URL_FAILED'\r\nexport const UPDATE_URL_START = 'UPDATE_URL_START'\r\nexport const UPDATE_URL_SUCCESS = 'UPDATE_URL_SUCCESS'\r\nexport const UPDATE_URL_FAILED = 'UPDATE_URL_FAILED'\r\nexport const DELETE_URL_START = 'DELETE_URL_START'\r\nexport const DELETE_URL_SUCCESS = 'DELETE_URL_SUCCESS'\r\nexport const DELETE_URL_FAILED = 'DELETE_URL_FAILED'\r\nexport const INVALID_URL = 'INVALID_URL'\r\nexport const CLEAR_ADD_URL_MODAL = 'CLEAR_ADD_URL_MODAL'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport const actions = {\r\n addNewUrl,\r\n updateUrl,\r\n deleteUrl\r\n}\r\n\r\nexport function addNewUrl (newUrl) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_NEW_URL_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(newUrl)\r\n }\r\n return fetch(`${globals.apiUrl}/localreviewurl`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 400) {\r\n dispatch({ type: INVALID_URL })\r\n } else {\r\n dispatch({ type: ADD_NEW_URL_FAILED })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_NEW_URL_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: ADD_NEW_URL_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function updateUrl (url, id) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_URL_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(url)\r\n }\r\n return fetch(`${globals.apiUrl}/localreviewurl`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else {\r\n dispatch({\r\n type: UPDATE_URL_FAILED\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: UPDATE_URL_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: UPDATE_URL_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function deleteUrl (id) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_URL_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n return fetch(`${globals.apiUrl}/localreviewurl/${id}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return dispatch({\r\n type: DELETE_URL_SUCCESS\r\n })\r\n } else {\r\n dispatch({\r\n type: DELETE_URL_FAILED\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: DELETE_URL_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function clearAddModal () {\r\n return {\r\n type: CLEAR_ADD_URL_MODAL\r\n }\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [ADD_NEW_URL_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [ADD_NEW_URL_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n newUrl: json\r\n }\r\n }\r\n },\r\n [ADD_NEW_URL_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false\r\n }\r\n },\r\n [UPDATE_URL_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [UPDATE_URL_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n updatedUrl: json\r\n }\r\n }\r\n },\r\n [UPDATE_URL_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false\r\n }\r\n },\r\n [DELETE_URL_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [DELETE_URL_SUCCESS] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false\r\n }\r\n },\r\n [DELETE_URL_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false\r\n }\r\n },\r\n [INVALID_URL] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n isInvalidUrl: true\r\n }\r\n }\r\n }\r\n}\r\n\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: '',\r\n renderData: {},\r\n isFetchingData: false\r\n}\r\n\r\nexport default function urlsSectionReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/urlsSection.js","import React from \"react\";\r\nimport ReactGA from \"react-ga4\";\r\n\r\nconst AnalyticsEventTracker = (category=\"Default category\") => {\r\n const eventTracker = (action = \"default action\", label = \"default label\") => {\r\n ReactGA.event({ category, action, label });\r\n }\r\n return eventTracker;\r\n}\r\n\r\nexport default AnalyticsEventTracker;\n\n\n// WEBPACK FOOTER //\n// ./src/components/Analytics.js","import { globals } from '../../globals'\r\nimport { logOut } from './auth'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_ALL_BILL_TYPES = 'GET_ALL_BILL_TYPES'\r\nexport const ALL_BILL_TYPES_FETCHED = 'ALL_BILL_TYPES_FETCHED'\r\nexport const GET_ALL_BILL_TYPES_FAILED = 'GET_ALL_BILL_TYPES_FAILED'\r\nexport const FILTER_BILL_TYPES = 'FILTER_BILL_TYPES'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function getAllBillTypes (stateValue) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_ALL_BILL_TYPES })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/billtype/all`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ALL_BILL_TYPES_FETCHED,\r\n payload: {\r\n json,\r\n stateValue\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_ALL_BILL_TYPES_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function filterBillTypesByStates (stateValue) {\r\n return {\r\n type: FILTER_BILL_TYPES,\r\n stateValue\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [ALL_BILL_TYPES_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n let types = []\r\n let resultedTypes = []\r\n json.map(item => {\r\n if (!types.includes(`${item.TypeCode} - ${item.Description}`)) {\r\n types = [...types, `${item.TypeCode} - ${item.Description}`]\r\n resultedTypes = [\r\n ...resultedTypes, {\r\n label: `${item.TypeCode} - ${item.Description}`,\r\n value: item.TypeCode\r\n }\r\n ]\r\n }\r\n })\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n allBillTypes: json,\r\n billTypes: resultedTypes\r\n }\r\n }\r\n },\r\n [FILTER_BILL_TYPES] : (state, action) => {\r\n let findBillTypes = []\r\n if (action.stateValue) {\r\n findBillTypes = state.renderData.allBillTypes.filter(el => el.RegionCode === action.stateValue).map(item => {\r\n return {\r\n label: `${item.TypeCode} - ${item.Description}`,\r\n value: item.TypeCode\r\n }\r\n })\r\n }\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n billTypes: findBillTypes\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nexport const initialState = {\r\n isFetchingData: false,\r\n errorCode: '',\r\n renderData: {}\r\n}\r\nexport default function billTypesReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/billTypes.js","import { globals } from \"../../globals\";\r\nimport { logOut } from \"./auth\";\r\nimport moment from 'moment';\r\n//const history = createBrowserHistory();\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_INTRANET_DASHBOARD_START = \"GET_INTRANET_DASHBOARD_START\";\r\nexport const GET_INTRANET_DASHBOARD_SUCCESS = \"GET_INTRANET_DASHBOARD_SUCCESS\";\r\nexport const GET_INTRANET_DASHBOARD_FAILED = \"GET_INTRANET_DASHBOARD_FAILED\";\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n \"Content-Type\": \"application/json\",\r\n};\r\n\r\nexport function getIntranetDashboard() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_INTRANET_DASHBOARD_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({}),\r\n };\r\n\r\n fetch(`${globals.apiUrl}/outlookreport/runreport`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } \r\n else if (response.status === 401) {\r\n dispatch(logOut());\r\n } \r\n else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_INTRANET_DASHBOARD_FAILED, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_INTRANET_DASHBOARD_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_INTRANET_DASHBOARD_FAILED });\r\n });\r\n };\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [GET_INTRANET_DASHBOARD_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingDashboard: true,\r\n };\r\n },\r\n [GET_INTRANET_DASHBOARD_FAILED]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingDashboard: false,\r\n };\r\n },\r\n [GET_INTRANET_DASHBOARD_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n isFetchingDashboard: false,\r\n formDataValue: {\r\n report: json.data,\r\n updateDate: moment(json.updateDate).format('MM/DD/YYYY hh:mm A'),\r\n },\r\n };\r\n },\r\n};\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: \"\",\r\n renderData: {},\r\n formDataValue: {\r\n report: [],\r\n // updateDate: new Date(),\r\n updateDate: moment().format('MM/DD/YYYY hh:mm A'),\r\n isFetchingDashboard: true\r\n },\r\n};\r\n\r\nexport default function intranetDashboardReducer(state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/intranetDashboard.js","import { globals, page as pageIndex } from \"../../globals\";\r\nimport { logOut } from \"./auth\";\r\nimport { showModal } from \"./modal\";\r\nimport { UPDATE_DATA, actionHandler } from \"./updateData\";\r\n\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_KEYOWRD_HIGHLIGHT_START = \"GET_KEYOWRD_HIGHLIGHT_START\";\r\nexport const GET_KEYOWRD_HIGHLIGHT_FAILURE = \"GET_KEYOWRD_HIGHLIGHT_FAILURE\";\r\nexport const GET_KEYOWRD_HIGHLIGHT_SUCCESS = \"GET_KEYOWRD_HIGHLIGHT_SUCCESS\";\r\nexport const RETURN_KEYWORD_HIGHLIGHT_INITIAL_STATE =\r\n \"RETURN_KEYWORD_HIGHLIGHT_INITIAL_STATE\";\r\n\r\nexport function getHighlightedDocument(keywords, fileUrl, uploadFile) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_KEYOWRD_HIGHLIGHT_START });\r\n\r\n const formData = new FormData();\r\n\r\n formData.append(\"SearchPhrase\", keywords);\r\n\r\n if (uploadFile) {\r\n formData.append(\"UploadedFile\", uploadFile);\r\n } else {\r\n formData.append(\"URL\", fileUrl);\r\n }\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n body: formData,\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/KeywordHits`, options)\r\n .then((response) => {\r\n if (response.redirected) {\r\n return { type: \"url\", url: response.url };\r\n }\r\n\r\n if (response.status === 200) {\r\n return response.text();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_KEYOWRD_HIGHLIGHT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((results) => {\r\n if (results) {\r\n var bakedResults = results;\r\n if (!results.url) {\r\n bakedResults = { type: \"html\", html: results };\r\n }\r\n\r\n dispatch({\r\n type: GET_KEYOWRD_HIGHLIGHT_SUCCESS,\r\n payload: {\r\n bakedResults,\r\n },\r\n });\r\n\r\n return bakedResults;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_KEYOWRD_HIGHLIGHT_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function returnInitialState() {\r\n return {\r\n type: RETURN_KEYWORD_HIGHLIGHT_INITIAL_STATE,\r\n };\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA]: (state, action) =>\r\n action.location.page !== pageIndex.highlighter\r\n ? state\r\n : actionHandler(state, action),\r\n [RETURN_KEYWORD_HIGHLIGHT_INITIAL_STATE]: () => {\r\n return {\r\n ...initialState,\r\n };\r\n },\r\n [GET_KEYOWRD_HIGHLIGHT_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_KEYOWRD_HIGHLIGHT_SUCCESS]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_KEYOWRD_HIGHLIGHT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n};\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: \"\",\r\n isFetchingData: false,\r\n renderData: {},\r\n formDataValue: {\r\n H: {},\r\n },\r\n};\r\n\r\nexport default function keywordHighlighterReducer(\r\n state = initialState,\r\n action\r\n) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/keywordHighlighterFormData.js","import { globals, page as pageIndex } from \"../../globals\";\r\nimport { logOut } from \"./auth\";\r\nimport { formatDate } from \"./formatDate\";\r\nimport { populateSortAndSearchParams } from \"./helpers\";\r\nimport { showModal } from \"./modal\";\r\nimport { actionHandler, UPDATE_DATA } from \"./updateData\";\r\n\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const LEGIS_NRR_OPEN_RECORD_START = \"LEGIS_NRR_OPEN_RECORD_START\";\r\nexport const REFRESH_LEGIS_RECORDS = \"REFRESH_LEGIS_RECORDS\";\r\nexport const UPDATE_LEGIS_REVIEW_DATA = \"UPDATE_LEGIS_REVIEW_DATA\";\r\nexport const GET_LEGIS_QUERIES_LIST_START = \"GET_LEGIS_QUERIES_LIST_START\";\r\nexport const GET_LEGIS_NRR_QUERY_DATA_START = \"GET_LEGIS_NRR_QUERY_DATA_START\";\r\nexport const GET_LEGIS_NRR_QUERY_DATA_SUCCESS =\r\n \"GET_LEGIS_NRR_QUERY_DATA_SUCCESS\";\r\nexport const GET_LEGIS_NRR_QUERY_DATA_FAILURE =\r\n \"GET_LEGIS_NRR_QUERY_DATA_FAILURE\";\r\nexport const GET_LEGIS_TEAM_REVIEW_DATA_START =\r\n \"GET_LEGIS_TEAM_REVIEW_DATA_START\";\r\nexport const GET_LEGIS_TEAM_REVIEW_DATA_SUCCESS =\r\n \"GET_LEGIS_TEAM_REVIEW_DATA_SUCCESS\";\r\nexport const GET_LEGIS_TEAM_REVIEW_DATA_FAILURE =\r\n \"GET_LEGIS_TEAM_REVIEW_DATA_FAILURE\";\r\nexport const SET_LEGIS_TEAMS_REVIEW_DATA_START =\r\n \"SET_LEGIS_TEAMS_REVIEW_DATA_START\";\r\nexport const SET_LEGIS_TEAMS_REVIEW_DATA_SUCCESS =\r\n \"SET_LEGIS_TEAMS_REVIEW_DATA_SUCCESS\";\r\nexport const SET_LEGIS_TEAMS_REVIEW_DATA_FAILURE =\r\n \"SET_LEGIS_TEAMS_REVIEW_DATA_FAILURE\";\r\nexport const GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_START =\r\n \"GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_START\";\r\nexport const GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_SUCCESS =\r\n \"GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_SUCCESS\";\r\nexport const GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_FAILURE =\r\n \"GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_FAILURE\";\r\nexport const GET_LEGIS_RAWFILE_START = \"GET_LEGIS_RAWFILE_START\";\r\nexport const GET_LEGIS_RAWFILE_SUCCESS = \"GET_LEGIS_RAWFILE_SUCCESS\";\r\nexport const GET_LEGIS_RAWFILE_FAILURE = \"GET_LEGIS_RAWFILE_FAILURE\";\r\nexport const GET_LEGIS_KEYWORDS_START = \"GET_LEGIS_KEYWORDS_START\";\r\nexport const GET_LEGIS_KEYWORDS_SUCCESS = \"GET_LEGIS_KEYWORDS_SUCCESS\";\r\nexport const GET_LEGIS_KEYWORDS_FAILURE = \"GET_LEGIS_KEYWORDS_FAILURE\";\r\nexport const GET_LEGIS_CLIENT_SUBJECTS_START =\r\n \"GET_LEGIS_CLIENT_SUBJECTS_START\";\r\nexport const GET_LEGIS_CLIENT_SUBJECTS_SUCCESS =\r\n \"GET_LEGIS_CLIENT_SUBJECTS_SUCCESS\";\r\nexport const GET_LEGIS_CLIENT_SUBJECTS_FAILURE =\r\n \"GET_LEGIS_CLIENT_SUBJECTS_FAILURE\";\r\nexport const GET_LEGIS_LEGIS_TYPE_START = \"GET_LEGIS_LEGIS_TYPE_START\";\r\nexport const GET_LEGIS_LEGIS_TYPE_SUCCESS = \"GET_LEGIS_LEGIS_TYPE_SUCCESS\";\r\nexport const GET_LEGIS_LEGIS_TYPE_FAILURE = \"GET_LEGIS_LEGIS_TYPE_FAILURE\";\r\nexport const GET_LEGIS_LOAD_OPTIONS_START = \"GET_LEGIS_LOAD_OPTIONS_START\";\r\nexport const GET_LEGIS_LOAD_OPTIONS_FAILURE = \"GET_LEGIS_LOAD_OPTIONS_FAILURE\";\r\nexport const CLEAR_LEGIS_FIELD_FOR_NO_RESULTS =\r\n \"CLEAR_LEGIS_FIELD_FOR_NO_RESULTS\";\r\nexport const RETURN_LEGIS_RECORD_REVIEW_INITIAL_STATE =\r\n \"RETURN_LEGIS_RECORD_REVIEW_INITIAL_STATE\";\r\nexport const OPEN_LEGIS_RECORD_SUCCESS = \"OPEN_LEGIS_RECORD_SUCCESS\";\r\nexport const SET_LEGIS_ID_REVIEWED_START = \"SET_LEGIS_ID_REVIEWED_START\";\r\nexport const SET_LEGIS_ID_REVIEWED_FAILURE = \"SET_LEGIS_ID_REVIEWED_FAILURE\";\r\nexport const SET_LEGIS_ID_REVIEWED_SUCCESS = \"SET_LEGIS_ID_REVIEWED_SUCCESS\";\r\nexport const GET_LEGIS_HIGHLIGHTED_DOC_START =\r\n \"GET_LEGIS_HIGHLIGHTED_DOC_START\";\r\nexport const GET_LEGIS_HIGHLIGHTED_DOC_FAILURE =\r\n \"GET_LEGIS_HIGHLIGHTED_DOC_FAILURE\";\r\nexport const GET_LEGIS_HIGHLIGHTED_DOC_SUCCESS =\r\n \"GET_LEGIS_HIGHLIGHTED_DOC_SUCCESS\";\r\nexport const GET_LEGIS_INITIAL_DATA_START = \"GET_LEGIS_INITIAL_DATA_START\";\r\nexport const GET_LEGIS_INITIAL_DATA_COMPLETE =\r\n \"GET_LEGIS_INITIAL_DATA_COMPLETE\";\r\nexport const GET_QC_KEYWORD_MISSING_START = \"GET_QC_KEYWORD_MISSING_START\";\r\nexport const GET_QC_KEYWORD_MISSING_SUCCESS = \"GET_QC_KEYWORD_MISSING_SUCCESS\";\r\nexport const GET_QC_KEYWORD_MISSING_FAILURE = \"GET_QC_KEYWORD_MISSING_FAILURE\";\r\nexport const GET_QC_KEYWORD_REVIEW_START = \"GET_QC_KEYWORD_REVIEW_START\";\r\nexport const GET_QC_KEYWORD_REVIEW_SUCCESS = \"GET_QC_KEYWORD_REVIEW_SUCCESS\";\r\nexport const GET_QC_KEYWORD_REVIEW_FAILURE = \"GET_QC_KEYWORD_REVIEW_FAILURE\";\r\nexport const GET_LEGIS_SUBJECT_GROUP_LIST_START =\r\n \"GET_LEGIS_SUBJECT_GROUP_LIST_START\";\r\nexport const GET_LEGIS_SUBJECT_GROUP_LIST_FAILURE =\r\n \"GET_LEGIS_SUBJECT_GROUP_LIST_FAILURE\";\r\nexport const GET_LEGIS_SUBJECT_GROUP_LIST_SUCCESS =\r\n \"GET_LEGIS_SUBJECT_GROUP_LIST_SUCCESS\";\r\nexport const SET_QC_KEYWORD_REVIEW_START = \"SET_QC_KEYWORD_REVIEW_START\";\r\nexport const SET_QC_KEYWORD_REVIEW_FAILURE = \"SET_QC_KEYWORD_REVIEW_FAILURE\";\r\nexport const SET_QC_KEYWORD_REVIEW_SUCCESS = \"SET_QC_KEYWORD_REVIEW_SUCCESS\";\r\nexport const POST_RAW_FILE_LOAD_START = \"POST_RAW_FILE_LOAD_START\";\r\nexport const POST_RAW_FILE_LOAD_FAILURE = \"POST_RAW_FILE_LOAD_FAILURE\";\r\nexport const POST_RAW_FILE_LOAD_SUCCESS = \"POST_RAW_FILE_LOAD_SUCCESS\";\r\n\r\nconst headers = {\r\n \"Content-Type\": \"application/json\",\r\n};\r\n\r\nexport function getLegisNRRInitialState() {\r\n return initialState;\r\n}\r\n\r\nfunction matchReviewRows(rows) {\r\n return rows.map((item) => {\r\n return {\r\n textValues: {\r\n team: item.Team || \"\",\r\n assignedBy: item.AssignedBy || \"\",\r\n assignedDate: formatDate(item.AssignedDate),\r\n reviewedBy: item.ReviewedBy || \"\",\r\n reviewedDate: formatDate(item.ReviewedDate),\r\n type: item.FlagTypeDesc,\r\n flag: String(item.FlagType),\r\n },\r\n isReviewed: item.ReviewedBy !== null,\r\n };\r\n });\r\n}\r\n\r\nfunction matchRecordInfo(info) {\r\n return {\r\n textValues: {\r\n id: info.RawFileId || \"\",\r\n legisId: info.LegisId,\r\n recordCreated: formatDate(info.FirstCheckedDate),\r\n checkedForUpdates: formatDate(info.LastCheckedDate),\r\n checkedForTextUpdates: formatDate(info.LegisCheckedDate),\r\n statusProcessingLastRun: formatDate(info.StatusDoneTime),\r\n summaryUpdated: formatDate(info.SummaryChangedDate),\r\n textDownloaded: formatDate(info.LegisDownloadedDate),\r\n textDownloadError: formatDate(info.LegisDownloadErrorTime),\r\n numberOfDownloadedTextFiles: info.LegisDownLoaded,\r\n sspath: info.ssLegisPath || \"\",\r\n state: info.State || \"\",\r\n billType: info.BillType || \"\",\r\n billNumber: info.BillNumber || \"\",\r\n session: info.Session || \"\",\r\n companion: info.Companion || \"\",\r\n sponsor: info.Sponsor || \"\",\r\n url: info.LegislationPath || \"\",\r\n summary: info.Summary || \"\",\r\n history: info.History || \"\",\r\n toolboxUrl: info.ToolboxUrl || \"\",\r\n documents: info.Documents\r\n ? info.Documents.map((doc) => {\r\n return {\r\n url: doc.Url,\r\n description: doc.Description,\r\n urlType: doc.Type,\r\n };\r\n })\r\n : [],\r\n versionUrl: info.RawFileId\r\n ? `https://services.statescape.com/search/billversions.aspx?rid=${info.RawFileId}`\r\n : \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchIderInfo(info) {\r\n return {\r\n textValues: {\r\n ider: info.IDer || \"\",\r\n iderReviewed: info.IDerReviewed || \"\",\r\n iderReviewedDate: formatDate(info.IDerReviewedDate),\r\n },\r\n };\r\n}\r\n\r\nfunction matchKeywordHits(hits) {\r\n return hits.map((hit) => {\r\n return {\r\n textValues: {\r\n team: hit.Team || \"\",\r\n client: hit.Client || \"\",\r\n grouping: hit.Subject || \"\",\r\n keyword: hit.Keyword || \"\",\r\n hits: hit.Hits,\r\n foundDate: formatDate(hit.FoundDate),\r\n changeDate: formatDate(hit.ChangeDate),\r\n oldHits: hit.OldHits,\r\n keywordId: hit.KeywordId,\r\n taggingInstructions: hit.GroupTaggingInstructions || \"\",\r\n description: hit.GroupDescription || \"\",\r\n overview: hit.GroupOverview || \"\",\r\n boolPhrase: hit.BoolPhrase,\r\n groupingId: hit.GroupingId,\r\n sortIdDefault: hit.SortIdDefault,\r\n sortIdChangedDate: hit.SortIdChangedDate,\r\n sortIdFoundDate: hit.SortIdFoundDate,\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchClientSubjects(clients) {\r\n return clients.map((client) => {\r\n return {\r\n textValues: {\r\n deleted: client.DeleteIt || false,\r\n client: client.ClientName || \"\",\r\n clientDescription: client.ClientDescription || \"\",\r\n subject: client.Subject || \"\",\r\n subjectDescription: client.SubjectDescription || \"\",\r\n changeDate: formatDate(client.CreateDate),\r\n user: client.CreateUserId || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchQCKeywordReview(keywordsReview) {\r\n return keywordsReview.map((keywordReview) => {\r\n return {\r\n textValues: {\r\n reviewDate: formatDate(keywordReview.ReviewDate),\r\n reviewer: keywordReview.Reviewer || \"\",\r\n client: keywordReview.Client || \"\",\r\n subject: keywordReview.Subject || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchQCKeywordMissing(keywordsMissing) {\r\n return keywordsMissing.map((keywordMissing) => {\r\n return {\r\n textValues: {\r\n client: keywordMissing.Client || \"\",\r\n subject: keywordMissing.Subject || \"\",\r\n team: keywordMissing.Team || \"\",\r\n id: keywordMissing.Id || \"\",\r\n reviewed: keywordMissing.Reviewed || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\n\r\nconst getReviewData = (rawFileId) => {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch(getRawFile(rawFileId)),\r\n dispatch(getLegisTeamReview(rawFileId)),\r\n dispatch(getLegisKeywords(rawFileId)),\r\n dispatch(getLegisClientSubjects(rawFileId)),\r\n dispatch(getQCKeywordMissing(rawFileId)),\r\n dispatch(getQCKeywordReview(rawFileId)),\r\n ]);\r\n};\r\n\r\nexport function openReviewRecord(rawFileId) {\r\n return (dispatch) => {\r\n dispatch({ type: LEGIS_NRR_OPEN_RECORD_START });\r\n dispatch(getReviewData(rawFileId, dispatch)).finally(() => {\r\n dispatch({ type: OPEN_LEGIS_RECORD_SUCCESS, payload: { rawFileId } });\r\n });\r\n };\r\n}\r\n\r\nconst getInitialData = () => {\r\n return (dispatch) => Promise.all([dispatch(getLegisNRR())]);\r\n};\r\n\r\nexport function loadInitialData() {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch({ type: GET_LEGIS_INITIAL_DATA_START }),\r\n dispatch(getInitialData()).finally(() => {\r\n dispatch({ type: GET_LEGIS_INITIAL_DATA_COMPLETE });\r\n }),\r\n ]);\r\n}\r\n\r\nexport function getLegisNRR() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_NRR_QUERY_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/NewRecordReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LEGIS_NRR_QUERY_DATA_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_NRR_QUERY_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({ type: GET_LEGIS_NRR_QUERY_DATA_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postLegisNRR(legisUrlsParameters) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(legisUrlsParameters),\r\n };\r\n return fetch(`${globals.apiUrl}/NewRecordReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n if (json.result.length > 0) {\r\n dispatch(openReviewRecord(json.result[0]));\r\n } else {\r\n dispatch(showModal(\"No-results\"));\r\n dispatch(clearFormFields());\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisTeamReview(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TEAM_REVIEW_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/TeamReview/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TEAM_REVIEW_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TEAM_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TEAM_REVIEW_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postLegisTeamsReview(id, teams, reviewed, flagType) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_LEGIS_TEAMS_REVIEW_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n rawFileId: id,\r\n team: teams[0],\r\n reviewed: reviewed,\r\n flagType: flagType,\r\n }),\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/TeamReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: SET_LEGIS_TEAMS_REVIEW_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_LEGIS_TEAMS_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: SET_LEGIS_TEAMS_REVIEW_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getRawFile(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_RAWFILE_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetRawFile/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LEGIS_RAWFILE_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_RAWFILE_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LEGIS_RAWFILE_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postIdReviewed(id) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_LEGIS_ID_REVIEWED_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: id,\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/IdReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: SET_LEGIS_ID_REVIEWED_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_LEGIS_ID_REVIEWED_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: SET_LEGIS_ID_REVIEWED_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisKeywords(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_KEYWORDS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetKeywords/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LEGIS_KEYWORDS_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_KEYWORDS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LEGIS_KEYWORDS_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisClientSubjects(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_CLIENT_SUBJECTS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetClientSubjects/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_CLIENT_SUBJECTS_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_CLIENT_SUBJECTS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_CLIENT_SUBJECTS_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getQCKeywordReview(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QC_KEYWORD_REVIEW_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetQCKeywordReview/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getQCKeywordMissing(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QC_KEYWORD_MISSING_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetQCKeywordMissing/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getSubjectGroupList(client, subject) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_SUBJECT_GROUP_LIST_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/SubjectGroupList`);\r\n\r\n const params = {\r\n client,\r\n subject,\r\n searchType: \"Legislation\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_SUBJECT_GROUP_LIST_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_SUBJECT_GROUP_LIST_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_SUBJECT_GROUP_LIST_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getHighlightedDocument(teams, keywords, path) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_HIGHLIGHTED_DOC_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/KeywordHits`);\r\n\r\n const params = {\r\n docpath: path,\r\n service: \"legis\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n if (teams && teams.length != 0) {\r\n teams.forEach((team) => {\r\n if (String(team).length > 0) {\r\n url.searchParams.append(\"teamId\", team);\r\n }\r\n });\r\n }\r\n\r\n if (keywords && keywords.length != 0) {\r\n keywords.forEach((keyword) =>\r\n url.searchParams.append(\"keywordId\", keyword)\r\n );\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.url;\r\n } else if (response.status === 302) {\r\n return response.url;\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LEGIS_HIGHLIGHTED_DOC_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((url) => {\r\n if (url) {\r\n dispatch({\r\n type: GET_LEGIS_HIGHLIGHTED_DOC_SUCCESS,\r\n payload: {\r\n url,\r\n },\r\n });\r\n return url;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_HIGHLIGHTED_DOC_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function postQCKeywordReview(rawfileId, team, customName) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({ rawfileId, team, customName }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/RawFile/QCKeywordReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((success) => {\r\n return success;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postRawFileLoad(rawfileId, state) {\r\n return (dispatch) => {\r\n dispatch({ type: POST_RAW_FILE_LOAD_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({ rawfileId, state }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/RawFile/Load`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: POST_RAW_FILE_LOAD_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: POST_RAW_FILE_LOAD_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: POST_RAW_FILE_LOAD_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function clearFormFields() {\r\n return {\r\n type: CLEAR_LEGIS_FIELD_FOR_NO_RESULTS,\r\n };\r\n}\r\n\r\nexport function returnInitialState() {\r\n return {\r\n type: RETURN_LEGIS_RECORD_REVIEW_INITIAL_STATE,\r\n };\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA]: (state, action) =>\r\n action.location.page !== pageIndex.legisNewRecordReview\r\n ? state\r\n : actionHandler(state, action),\r\n [RETURN_LEGIS_RECORD_REVIEW_INITIAL_STATE]: () => {\r\n return {\r\n ...initialState,\r\n };\r\n },\r\n [GET_LEGIS_NRR_QUERY_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_NRR_QUERY_DATA_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queriesWithParameters: json,\r\n queries: json.map((item) => {\r\n return {\r\n value: item.QueryId,\r\n label: item.QueryName,\r\n };\r\n }),\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_SUCCESS]: (state, action) => {\r\n const queryRecords = action.payload.json.result;\r\n const queryProperties = action.payload.json.props;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queryRecords,\r\n queryProperties,\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TEAM_REVIEW_OPTIONS_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_TEAM_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_TEAM_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TEAM_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [SET_LEGIS_TEAMS_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_LEGIS_TEAMS_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [SET_LEGIS_TEAMS_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_QUERIES_LIST_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [POST_RAW_FILE_LOAD_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [POST_RAW_FILE_LOAD_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [POST_RAW_FILE_LOAD_SUCCESS]: (state, action) => {\r\n const legisId = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n recordInfo: {\r\n ...state.formDataValue.LNRR.recordInfo,\r\n textValues: {\r\n ...state.formDataValue.LNRR.recordInfo.textValues,\r\n legisId: legisId,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_RAWFILE_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_RAWFILE_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_RAWFILE_SUCCESS]: (state, action) => {\r\n const recordInfo = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n recordInfo: matchRecordInfo(recordInfo),\r\n iderReviewedInfo: matchIderInfo(recordInfo),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_INITIAL_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_INITIAL_DATA_COMPLETE]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n };\r\n },\r\n [LEGIS_NRR_OPEN_RECORD_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [OPEN_LEGIS_RECORD_SUCCESS]: (state, action) => {\r\n const currentIndex = state.renderData.queryRecords.findIndex(\r\n (record) => record === action.payload.rawFileId\r\n );\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n currentRawFileId: action.payload.rawFileId,\r\n navigation: {\r\n ...state.formDataValue.LNRR.navigation,\r\n textValues: {\r\n ...state.formDataValue.LNRR.navigation.textValues,\r\n currentRecord: currentIndex + 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [SET_LEGIS_ID_REVIEWED_SUCCESS]: (state, action) => {\r\n const iderInfo = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n iderReviewedInfo: matchIderInfo(iderInfo),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_KEYWORDS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n recordKeywordHits: matchKeywordHits(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_CLIENT_SUBJECTS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n recordClientSubjects: matchClientSubjects(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_QC_KEYWORD_MISSING_SUCCESS]: (state, action) => {\r\n const keywordsMissing = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n recordQCKeywordMissing: matchQCKeywordMissing(keywordsMissing),\r\n },\r\n },\r\n };\r\n },\r\n [GET_QC_KEYWORD_REVIEW_SUCCESS]: (state, action) => {\r\n const keywordsReview = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n recordQCKeywordReview: matchQCKeywordReview(keywordsReview),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_HIGHLIGHTED_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_HIGHLIGHTED_DOC_SUCCESS]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_HIGHLIGHTED_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_SUBJECT_GROUP_LIST_START]: (state, action) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n clientSubjectGroupings: [],\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_SUBJECT_GROUP_LIST_SUCCESS]: (state, action) => {\r\n const groupingsList = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LNRR: {\r\n ...state.formDataValue.LNRR,\r\n clientSubjectGroupings: groupingsList,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_SUBJECT_GROUP_LIST_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [SET_QC_KEYWORD_REVIEW_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_QC_KEYWORD_REVIEW_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [CLEAR_LEGIS_FIELD_FOR_NO_RESULTS]: (state) => {\r\n const query = state.renderData.queriesWithParameters.find(\r\n (query) => query.QueryId == state.formDataValue.LNRR.queryLine.radio.query\r\n );\r\n\r\n const {\r\n parametersSectionSelectables,\r\n sortParameters,\r\n sortFields,\r\n sortDirections,\r\n filterFields,\r\n } = populateSortAndSearchParams(query);\r\n\r\n return {\r\n ...initialState,\r\n disableEditing: true,\r\n renderData: {\r\n ...initialState.renderData,\r\n queriesWithParameters: state.renderData.queriesWithParameters,\r\n queries: state.renderData.queries,\r\n allRegions: state.renderData.allRegions,\r\n regions: state.renderData.regions,\r\n regionsList: state.renderData.regionsList,\r\n },\r\n formDataValue: {\r\n LNRR: {\r\n ...initialState.formDataValue.LNRR,\r\n queryLine: {\r\n ...state.formDataValue.LNRR.queryLine,\r\n },\r\n parametersSection: {\r\n ...state.formDataValue.LNRR.parametersSection,\r\n radio: parametersSectionSelectables,\r\n },\r\n sortParameters: {\r\n radio: sortParameters,\r\n fields: sortFields,\r\n },\r\n sortDirections: {\r\n radio: sortDirections,\r\n },\r\n filterParameters: {\r\n fields: filterFields,\r\n },\r\n settingsLine: {\r\n ...state.formDataValue.LNRR.settingsLine,\r\n radio: {\r\n ...state.formDataValue.LNRR.settingsLine.radio,\r\n autoAdvance:\r\n state.formDataValue.LNRR.settingsLine.radio.autoAdvance,\r\n autoUrl: state.formDataValue.LNRR.settingsLine.radio.autoUrl,\r\n extraInfoExpanded:\r\n state.formDataValue.LNRR.settingsLine.radio.extraInfoExpanded,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n};\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: \"\",\r\n isFetchingData: false,\r\n renderData: {\r\n queryRecords: [],\r\n queryProperties: [],\r\n currentRecord: {},\r\n recordIndex: 0,\r\n },\r\n formDataValue: {\r\n LNRR: {\r\n settingsLine: {\r\n radio: {\r\n autoAdvance: true,\r\n autoUrl: false,\r\n extraInfoExpanded: false,\r\n },\r\n },\r\n queryLine: {\r\n radio: {\r\n query: \"Select Query\",\r\n },\r\n textValues: {\r\n keywordSearch: \"\",\r\n },\r\n selected: [],\r\n },\r\n parametersSection: {\r\n textValues: {},\r\n dateTime: {},\r\n radio: [],\r\n },\r\n sortParameters: {\r\n radio: [],\r\n fields: [],\r\n },\r\n sortDirections: {\r\n radio: [],\r\n },\r\n filterParameters: {\r\n fields: [],\r\n },\r\n navigation: {\r\n textValues: {\r\n currentRecord: \"1\",\r\n },\r\n },\r\n reviewRecords: matchReviewRows([]),\r\n recordInfo: matchRecordInfo({}),\r\n iderReviewedInfo: matchIderInfo({}),\r\n recordKeywordHits: matchKeywordHits([]),\r\n recordClientSubjects: matchClientSubjects([]),\r\n recordQCKeywordMissing: matchQCKeywordMissing([]),\r\n recordQCKeywordReview: matchQCKeywordReview([]),\r\n clientSubjectGroupings: [],\r\n otherDocs: {\r\n 0: {\r\n textValues: {\r\n urlIdDocs: \"\",\r\n urlDescription: \"\",\r\n },\r\n radio: {\r\n docsType: \"versions\",\r\n },\r\n },\r\n },\r\n clients: {\r\n selected: [],\r\n },\r\n notLoadedClients: {\r\n selected: [],\r\n },\r\n history: {\r\n textValues: {\r\n history: \"\",\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default function legisNewRecordReviewReducer(\r\n state = initialState,\r\n action\r\n) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/legisNewRecordReviewFormData.js","import moment from \"moment\";\r\nimport { globals, page as pageIndex } from \"../../globals\";\r\nimport { logOut } from \"./auth\";\r\nimport { formatDate } from \"./formatDate\";\r\nimport {\r\n GET_CLIENTS_FAILURE,\r\n GET_CLIENT_SUBJECT_INFO_FAILURE,\r\n GET_GROUPING_FAILURE,\r\n GET_SUBJECTS_FAILURE,\r\n POST_CLIENT_SUBJECT_TAG_FAILURE,\r\n POST_CLIENT_SUBJECT_TAG_SUCCESS,\r\n} from \"./groupings\";\r\nimport { populateSortAndSearchParams } from \"./helpers\";\r\nimport { showModal } from \"./modal\";\r\nimport { clearHistory, saveInitialValues } from \"./undo\";\r\nimport { UPDATE_DATA, actionHandler } from \"./updateData\";\r\n\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const LEGIS_TRACK_INT_OPEN_RECORD_START =\r\n \"LEGIS_TRACK_INT_OPEN_RECORD_START\";\r\nexport const REFRESH_LEGIS_TRACK_RECORDS = \"REFRESH_LEGIS_TRACK_RECORDS\";\r\nexport const UPDATE_LEGIS_TRACK_REVIEW_DATA = \"UPDATE_LEGIS_TRACK_REVIEW_DATA\";\r\nexport const GET_LEGIS_TRACK_QUERIES_LIST_START =\r\n \"GET_LEGIS_TRACK_QUERIES_LIST_START\";\r\nexport const GET_LEGIS_TRACK_INT_QUERY_DATA_START =\r\n \"GET_LEGIS_TRACK_INT_QUERY_DATA_START\";\r\nexport const GET_LEGIS_TRACK_INT_QUERY_DATA_SUCCESS =\r\n \"GET_LEGIS_TRACK_INT_QUERY_DATA_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_INT_QUERY_DATA_FAILURE =\r\n \"GET_LEGIS_TRACK_INT_QUERY_DATA_FAILURE\";\r\nexport const GET_LEGIS_TRACK_TEAM_REVIEW_DATA_START =\r\n \"GET_LEGIS_TRACK_TEAM_REVIEW_DATA_START\";\r\nexport const GET_LEGIS_TRACK_TEAM_REVIEW_DATA_SUCCESS =\r\n \"GET_LEGIS_TRACK_TEAM_REVIEW_DATA_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_TEAM_REVIEW_DATA_FAILURE =\r\n \"GET_LEGIS_TRACK_TEAM_REVIEW_DATA_FAILURE\";\r\nexport const SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_START =\r\n \"SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_START\";\r\nexport const SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_SUCCESS =\r\n \"SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_SUCCESS\";\r\nexport const SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE =\r\n \"SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE\";\r\nexport const POST_LEGIS_TRACK_DATA_START = \"POST_LEGIS_TRACK_DATA_START\";\r\nexport const POST_LEGIS_TRACK_DATA_SUCCESS = \"POST_LEGIS_TRACK_DATA_SUCCESS\";\r\nexport const POST_LEGIS_TRACK_DATA_FAILURE = \"POST_LEGIS_TRACK_DATA_FAILURE\";\r\nexport const PUT_LEGIS_SUMMARY_START = \"PUT_LEGIS_SUMMARY_START\";\r\nexport const PUT_LEGIS_SUMMARY_SUCCESS = \"PUT_LEGIS_SUMMARY_SUCCESS\";\r\nexport const PUT_LEGIS_SUMMARY_FAILURE = \"PUT_LEGIS_SUMMARY_FAILURE\";\r\nexport const PUT_CLIENT_ACTION_START = \"PUT_CLIENT_ACTION_START\";\r\nexport const PUT_CLIENT_ACTION_SUCCESS = \"PUT_CLIENT_ACTION_SUCCESS\";\r\nexport const PUT_CLIENT_ACTION_FAILURE = \"PUT_CLIENT_ACTION_FAILURE\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_START =\r\n \"PUT_CLIENT_ACTION_COMMENT_START\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_SUCCESS =\r\n \"PUT_CLIENT_ACTION_COMMENT_SUCCESS\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_FAILURE =\r\n \"PUT_CLIENT_ACTION_COMMENT_FAILURE\";\r\nexport const GET_LEGIS_TRACK_BASE_START = \"GET_LEGIS_TRACK_BASE_START\";\r\nexport const GET_LEGIS_TRACK_BASE_SUCCESS = \"GET_LEGIS_TRACK_BASE_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_BASE_FAILURE = \"GET_LEGIS_TRACK_BASE_FAILURE\";\r\nexport const GET_LEGIS_TRACK_KEYWORDS_START = \"GET_LEGIS_TRACK_KEYWORDS_START\";\r\nexport const GET_LEGIS_TRACK_KEYWORDS_SUCCESS =\r\n \"GET_LEGIS_TRACK_KEYWORDS_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_KEYWORDS_FAILURE =\r\n \"GET_LEGIS_TRACK_KEYWORDS_FAILURE\";\r\nexport const GET_LEGIS_TRACK_CLIENT_SUBJECTS_START =\r\n \"GET_LEGIS_TRACK_CLIENT_SUBJECTS_START\";\r\nexport const GET_LEGIS_TRACK_CLIENT_SUBJECTS_SUCCESS =\r\n \"GET_LEGIS_TRACK_CLIENT_SUBJECTS_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE =\r\n \"GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE\";\r\nexport const GET_LEGIS_TRACK_LEGIS_TYPE_START =\r\n \"GET_LEGIS_TRACK_LEGIS_TYPE_START\";\r\nexport const GET_LEGIS_TRACK_LEGIS_TYPE_SUCCESS =\r\n \"GET_LEGIS_TRACK_LEGIS_TYPE_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_LEGIS_TYPE_FAILURE =\r\n \"GET_LEGIS_TRACK_LEGIS_TYPE_FAILURE\";\r\nexport const GET_LEGIS_TRACK_LOAD_OPTIONS_START =\r\n \"GET_LEGIS_TRACK_LOAD_OPTIONS_START\";\r\nexport const GET_LEGIS_TRACK_LOAD_OPTIONS_FAILURE =\r\n \"GET_LEGIS_TRACK_LOAD_OPTIONS_FAILURE\";\r\nexport const CLEAR_LEGIS_TRACK_FIELD_FOR_NO_RESULTS =\r\n \"CLEAR_LEGIS_TRACK_FIELD_FOR_NO_RESULTS\";\r\nexport const RETURN_LEGIS_TRACK_INITIAL_STATE =\r\n \"RETURN_LEGIS_TRACK_INITIAL_STATE\";\r\nexport const OPEN_LEGIS_TRACK_RECORD_SUCCESS =\r\n \"OPEN_LEGIS_TRACK_RECORD_SUCCESS\";\r\nexport const SET_LEGIS_TRACK_ID_REVIEWED_START =\r\n \"SET_LEGIS_TRACK_ID_REVIEWED_START\";\r\nexport const SET_LEGIS_TRACK_ID_REVIEWED_FAILURE =\r\n \"SET_LEGIS_TRACK_ID_REVIEWED_FAILURE\";\r\nexport const SET_LEGIS_TRACK_ID_REVIEWED_SUCCESS =\r\n \"SET_LEGIS_TRACK_ID_REVIEWED_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_HIGHLIGHTED_DOC_START =\r\n \"GET_LEGIS_TRACK_HIGHLIGHTED_DOC_START\";\r\nexport const GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE =\r\n \"GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE\";\r\nexport const GET_LEGIS_TRACK_HIGHLIGHTED_DOC_SUCCESS =\r\n \"GET_LEGIS_TRACK_HIGHLIGHTED_DOC_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_INITIAL_DATA_START =\r\n \"GET_LEGIS_TRACK_INITIAL_DATA_START\";\r\nexport const GET_LEGIS_TRACK_INITIAL_DATA_COMPLETE =\r\n \"GET_LEGIS_TRACK_INITIAL_DATA_COMPLETE\";\r\nexport const GET_QC_KEYWORD_MISSING_START = \"GET_QC_KEYWORD_MISSING_START\";\r\nexport const GET_QC_KEYWORD_MISSING_SUCCESS = \"GET_QC_KEYWORD_MISSING_SUCCESS\";\r\nexport const GET_QC_KEYWORD_MISSING_FAILURE = \"GET_QC_KEYWORD_MISSING_FAILURE\";\r\nexport const GET_QC_KEYWORD_REVIEW_START = \"GET_QC_KEYWORD_REVIEW_START\";\r\nexport const GET_QC_KEYWORD_REVIEW_SUCCESS = \"GET_QC_KEYWORD_REVIEW_SUCCESS\";\r\nexport const GET_QC_KEYWORD_REVIEW_FAILURE = \"GET_QC_KEYWORD_REVIEW_FAILURE\";\r\nexport const GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_START =\r\n \"GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_START\";\r\nexport const GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE =\r\n \"GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE\";\r\nexport const GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_SUCCESS =\r\n \"GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_SUCCESS\";\r\nexport const SET_QC_KEYWORD_REVIEW_START = \"SET_QC_KEYWORD_REVIEW_START\";\r\nexport const SET_QC_KEYWORD_REVIEW_FAILURE = \"SET_QC_KEYWORD_REVIEW_FAILURE\";\r\nexport const SET_QC_KEYWORD_REVIEW_SUCCESS = \"SET_QC_KEYWORD_REVIEW_SUCCESS\";\r\nexport const DELETE_LEGIS_DOC_START = \"DELETE_LEGIS_DOC_START\";\r\nexport const DELETE_LEGIS_DOC_SUCCESS = \"DELETE_LEGIS_DOC_SUCCESS\";\r\nexport const DELETE_LEGIS_DOC_FAILURE = \"DELETE_LEGIS_DOC_FAILURE\";\r\nexport const ADD_LEGIS_DOC_START = \"ADD_LEGIS_DOC_START\";\r\nexport const ADD_LEGIS_DOC_SUCCESS = \"ADD_LEGIS_DOC_SUCCESS\";\r\nexport const ADD_LEGIS_DOC_FAILURE = \"ADD_LEGIS_DOC_FAILURE\";\r\nexport const GET_LEGIS_DOC_TYPES_START = \"GET_LEGIS_DOC_TYPES_START\";\r\nexport const GET_LEGIS_DOC_TYPES_FAILURE = \"GET_LEGIS_DOC_TYPES_FAILURE\";\r\nexport const GET_LEGIS_DOC_TYPES_SUCCESS = \"GET_LEGIS_DOC_TYPES_SUCCESS\";\r\nexport const DELETE_LEGIS_CLIENT_SUBJECT_TAG_START =\r\n \"DELETE_LEGIS_CLIENT_SUBJECT_TAG_START\";\r\nexport const DELETE_LEGIS_CLIENT_SUBJECT_TAG_SUCCESS =\r\n \"DELETE_LEGIS_CLIENT_SUBJECT_TAG_SUCCESS\";\r\nexport const DELETE_LEGIS_CLIENT_SUBJECT_TAG_FAILURE =\r\n \"DELETE_LEGIS_CLIENT_SUBJECT_TAG_FAILURE\";\r\nexport const PUT_LEGIS_CLIENT_SUBJECT_TAG_START =\r\n \"PUT_LEGIS_CLIENT_SUBJECT_TAG_START\";\r\nexport const PUT_LEGIS_CLIENT_SUBJECT_TAG_SUCCESS =\r\n \"PUT_LEGIS_CLIENT_SUBJECT_TAG_SUCCESS\";\r\nexport const PUT_LEGIS_CLIENT_SUBJECT_TAG_FAILURE =\r\n \"PUT_LEGIS_CLIENT_SUBJECT_TAG_FAILURE\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_START =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_START\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_FAILURE =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_FAILURE\";\r\nexport const GET_LEGIS_HISTORY_START = \"GET_LEGIS_HISTORY_START\";\r\nexport const GET_LEGIS_HISTORY_FAILURE = \"GET_LEGIS_HISTORY_FAILURE\";\r\nexport const GET_LEGIS_HISTORY_SUCCESS = \"GET_LEGIS_HISTORY_SUCCESS\";\r\nexport const PUT_LEGIS_HISTORY_START = \"PUT_LEGIS_HISTORY_START\";\r\nexport const PUT_LEGIS_HISTORY_SUCCESS = \"PUT_LEGIS_HISTORY_SUCCESS\";\r\nexport const PUT_LEGIS_HISTORY_FAILURE = \"PUT_LEGIS_HISTORY_FAILURE\";\r\nexport const GET_LEGIS_HISTORY_LOG_START = \"GET_LEGIS_HISTORY_LOG_START\";\r\nexport const GET_LEGIS_HISTORY_LOG_SUCCESS = \"GET_LEGIS_HISTORY_LOG_SUCCESS\";\r\nexport const GET_LEGIS_HISTORY_LOG_FAILURE = \"GET_LEGIS_HISTORY_LOG_FAILURE\";\r\nexport const ADD_LEGIS_MANAGMENT_COMMENT_START =\r\n \"ADD_LEGIS_MANAGMENT_COMMENT_START\";\r\nexport const ADD_LEGIS_MANAGMENT_COMMENT_SUCCESS =\r\n \"ADD_LEGIS_MANAGMENT_COMMENT_SUCCESS\";\r\nexport const ADD_LEGIS_MANAGMENT_COMMENT_FAILURE =\r\n \"ADD_LEGIS_MANAGMENT_COMMENT_FAILURE\";\r\nexport const PUT_LEGIS_MANAGEMENT_COMMENT_START =\r\n \"PUT_LEGIS_MANAGEMENT_COMMENT_START\";\r\nexport const PUT_LEGIS_MANAGEMENT_COMMENT_SUCCESS =\r\n \"PUT_LEGIS_MANAGEMENT_COMMENT_SUCCESS\";\r\nexport const PUT_LEGIS_MANAGEMENT_COMMENT_FAILURE =\r\n \"PUT_LEGIS_MANAGEMENT_COMMENT_FAILURE\";\r\nexport const GET_LEGIS_TAG_COMPARISON_START = \"GET_LEGIS_TAG_COMPARISON_START\";\r\nexport const GET_LEGIS_TAG_COMPARISON_FAILURE =\r\n \"GET_LEGIS_TAG_COMPARISON_FAILURE\";\r\nexport const GET_LEGIS_TAG_COMPARISON_SUCCESS =\r\n \"GET_LEGIS_TAG_COMPARISON_SUCCESS\";\r\nexport const PUT_COMPANION_BILL_REVIEW_START =\r\n \"PUT_COMPANION_BILL_REVIEW_START\";\r\nexport const PUT_COMPANION_BILL_REVIEW_SUCCESS =\r\n \"PUT_COMPANION_BILL_REVIEW_SUCCESS\";\r\nexport const PUT_COMPANION_BILL_REVIEW_FAILURE =\r\n \"PUT_COMPANION_BILL_REVIEW_FAILURE\";\r\n\r\nconst headers = {\r\n \"Content-Type\": \"application/json\",\r\n};\r\n\r\nexport function getLegisTrackInternalInitialState() {\r\n return initialState;\r\n}\r\n\r\nfunction formatDateShort(date) {\r\n return date && date !== \"\" ? moment(date).format(\"MM/DD/YYYY\") : \"\";\r\n}\r\n\r\nfunction matchReviewRows(rows) {\r\n return rows.map((item) => {\r\n return {\r\n textValues: {\r\n team: item.Team || \"\",\r\n assignedBy: item.AssignedBy || \"\",\r\n assignedDate: formatDate(item.AssignedDate),\r\n reviewedBy: item.ReviewedBy || \"\",\r\n reviewedDate: formatDate(item.ReviewedDate),\r\n type: item.FlagTypeDesc,\r\n flag: String(item.FlagType),\r\n },\r\n isReviewed: item.ReviewedBy !== null,\r\n };\r\n });\r\n}\r\n\r\nfunction matchRecordInfo(info) {\r\n const recordInfo = {\r\n textValues: {\r\n id: info.RawDataID || \"\",\r\n legisId: info.LegisId,\r\n introDate: formatDate(info.IntroDate),\r\n actionDate: formatDate(info.ActionDate),\r\n loadDate: formatDate(info.LoadDate),\r\n summary: info.Summary || \"\",\r\n rawSummaryUpdateDate: formatDate(info.RawSummaryChangedDate),\r\n summaryUpdateDate: formatDate(info.SummaryUpdated),\r\n rawSummary: info.RawSummary || \"\",\r\n year: info.Year || \"\",\r\n oldLoadDate: formatDate(info.OldLoadDate),\r\n recordCreated: formatDate(info.CreateDate),\r\n lastUpdateToRecord: formatDate(info.LastUpdateTS),\r\n lastUpdateUserId: info.LastUpdateId || \"\",\r\n createUserId: info.CreateUserID || \"\",\r\n carryOver: info.CarryOver_Prefiled || \"\",\r\n country: info.CountryCode || \"\",\r\n state: info.State || \"\",\r\n billType: info.BillType || \"\",\r\n billNumber: info.BillNumber || \"\",\r\n session: info.Session || \"\",\r\n companion: info.Companion || \"\",\r\n url: info.Url || \"\",\r\n sspath: info.SSPath || \"\",\r\n toolboxUrl: info.ToolboxUrl || \"\",\r\n versionUrl: info.RawDataID\r\n ? `https://services.statescape.com/search/billversions.aspx?rid=${info.RawDataID}`\r\n : \"\",\r\n history: info.History || \"\",\r\n historyUpdated: formatDate(info.HistoryUpdated),\r\n },\r\n radio: {\r\n summaryUpdating: info.SummaryUpdating || \"\",\r\n },\r\n };\r\n\r\n return matchSubHistoryData(recordInfo, info);\r\n}\r\n\r\nfunction matchSubHistoryData(recordInfo, info) {\r\n return {\r\n ...recordInfo,\r\n textValues: {\r\n ...recordInfo.textValues,\r\n supplementalHistory: info.SupplementalHistory || \"\",\r\n historyRemarks: info.HistoryRemarks || \"\",\r\n historyRemarksUpdated: formatDate(info.RemarksUpdated),\r\n effectiveModifiedDate: formatDate(info.EffectiveModifiedDate),\r\n effectiveDate: formatDateShort(info.EffectiveDate),\r\n publicLawNumber: info.PublicActNo || \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchDocuments(documents) {\r\n return documents\r\n ? documents.map((doc) => {\r\n return {\r\n url: doc.Url,\r\n description: doc.Description,\r\n urlType: doc.Type,\r\n id: doc.Id,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchManagementComments(managementComments) {\r\n return managementComments\r\n ? managementComments.map((managementComment) => {\r\n return matchManagementComment(managementComment);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchManagementComment(managementComment) {\r\n return {\r\n textValues: {\r\n Id: managementComment.Id || \"\",\r\n RecordId: managementComment.RecordId || \"\",\r\n DataType: managementComment.DataType || \"\",\r\n DateAdded: formatDate(managementComment.DateAdded),\r\n AssignedBy: managementComment.AssignedBy || \"\",\r\n Comment: managementComment.Comment || \"\",\r\n Response: managementComment.Response || \"\",\r\n ResponseBy: managementComment.ResponseBy || \"\",\r\n ResponseDate: formatDate(managementComment.ResponseDate),\r\n MissedBill: !!managementComment.MissedBill,\r\n LateTagRequest: !!managementComment.LateTagRequest,\r\n CommentComplete: !!managementComment.CommentComplete,\r\n Reviewed: !!managementComment.Reviewed,\r\n },\r\n radio: {\r\n TeamAssigned: managementComment.TeamAssigned || \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchClientSubjectTags(clientSubjectTags, currentLegisId) {\r\n const clientSubjectTagsForLegisId = currentLegisId\r\n ? clientSubjectTags.filter(\r\n (clientSubjectTag) => clientSubjectTag.RecordId === currentLegisId\r\n )\r\n : clientSubjectTags;\r\n\r\n return clientSubjectTagsForLegisId\r\n ? clientSubjectTagsForLegisId.map((clientSubjectTag) => {\r\n return matchClientSubjectTag(clientSubjectTag);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchClientSubjectTag(clientSubjectTag) {\r\n return {\r\n SubjectId: clientSubjectTag.SubjectId,\r\n Client: clientSubjectTag.Client,\r\n Subject: clientSubjectTag.Subject,\r\n DataType: clientSubjectTag.DataType,\r\n RecordId: clientSubjectTag.RecordId,\r\n SubscribeDate: formatDate(clientSubjectTag.SubscribeDate),\r\n CreateUser: clientSubjectTag.CreateUser,\r\n OriginalCreateDate: formatDate(clientSubjectTag.OriginalCreateDate),\r\n LastUpdateDate: formatDate(clientSubjectTag.LastUpdateDate),\r\n LastUpdateUser: clientSubjectTag.LastUpdateUser,\r\n IssueId: clientSubjectTag.IssueId,\r\n EmailAlerts: clientSubjectTag.EmailAlerts,\r\n Deleted: clientSubjectTag.Deleted,\r\n Autoload: clientSubjectTag.Autoload,\r\n DeletedByAnalyst: clientSubjectTag.DeletedByAnalyst,\r\n CanEdit: clientSubjectTag.CanEdit,\r\n };\r\n}\r\n\r\nfunction matchLegisDocTypes(legisDocTypes) {\r\n return legisDocTypes\r\n ? legisDocTypes\r\n .filter((docType) => !docType.HideAnalystAdd)\r\n .map((docType) => {\r\n return {\r\n label: docType.DisplayName,\r\n value: docType.DocType,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchNonDeletableDocTypes(legisDocTypes) {\r\n return legisDocTypes\r\n ? legisDocTypes.filter((docType) => docType.HideAnalystAdd)\r\n : [];\r\n}\r\n\r\nfunction matchClientActions(info) {\r\n return info.ClientActions\r\n ? info.ClientActions.map((action) => {\r\n return matchClientAction(action);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchClientAction(action) {\r\n return {\r\n textValues: {\r\n stsReviewer: action.StateScapeCheckedBy || \"\",\r\n reviewDate: formatDate(action.StateScapeCheckedDate),\r\n stsComment: action.StateScapeComments || \"\",\r\n client: action.Client || \"\",\r\n loginId: action.LogonId || \"\",\r\n action: action.Action || \"\",\r\n changedDate: formatDate(action.ChangeDate),\r\n userEmail: action.Email || \"\",\r\n actionDetails: action.ActionDetail || \"\",\r\n clientComment: action.ClientComments || \"\",\r\n clientActionId: action.ClientActionId || \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchIderInfo(info) {\r\n return {\r\n textValues: {\r\n ider: info.IDer || \"\",\r\n iderReviewed: info.IDerReviewed || \"\",\r\n iderReviewedDate: formatDate(info.IDerReviewedDate),\r\n },\r\n };\r\n}\r\n\r\nfunction matchKeywordHits(hits) {\r\n return hits.map((hit) => {\r\n return {\r\n textValues: {\r\n team: hit.Team || \"\",\r\n client: hit.Client || \"\",\r\n grouping: hit.Subject || \"\",\r\n keyword: hit.Keyword || \"\",\r\n hits: hit.Hits,\r\n foundDate: formatDate(hit.FoundDate),\r\n changeDate: formatDate(hit.ChangeDate),\r\n oldHits: hit.OldHits,\r\n keywordId: hit.KeywordId,\r\n taggingInstructions: hit.GroupTaggingInstructions || \"\",\r\n description: hit.GroupDescription || \"\",\r\n overview: hit.GroupOverview || \"\",\r\n boolPhrase: hit.BoolPhrase,\r\n groupingId: hit.GroupingId,\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchClientSubjects(clients) {\r\n return clients.map((client) => {\r\n return {\r\n textValues: {\r\n deleted: client.DeleteIt || false,\r\n client: client.ClientName || \"\",\r\n clientDescription: client.ClientDescription || \"\",\r\n subject: client.Subject || \"\",\r\n subjectDescription: client.SubjectDescription || \"\",\r\n changeDate: formatDate(client.CreateDate),\r\n user: client.CreateUserId || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchBooleansToSelectionList(values) {\r\n return {\r\n selected: Object.keys(values).filter(\r\n (key) => values[key] && typeof values[key] == \"boolean\"\r\n ),\r\n };\r\n}\r\n\r\nfunction matchQCKeywordReview(keywordsReview) {\r\n return keywordsReview.map((keywordReview) => {\r\n return {\r\n textValues: {\r\n reviewDate: formatDate(keywordReview.ReviewDate),\r\n reviewer: keywordReview.Reviewer || \"\",\r\n client: keywordReview.Client || \"\",\r\n subject: keywordReview.Subject || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchQCKeywordMissing(keywordsMissing) {\r\n return keywordsMissing.map((keywordMissing) => {\r\n return {\r\n textValues: {\r\n client: keywordMissing.Client || \"\",\r\n subject: keywordMissing.Subject || \"\",\r\n team: keywordMissing.Team || \"\",\r\n id: keywordMissing.Id || \"\",\r\n reviewed: keywordMissing.Reviewed || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchHistoryLog(historyLog) {\r\n return historyLog.map((log) => {\r\n return {\r\n HistoryDate: log.CreateDate,\r\n User: log.UserName,\r\n HistoryAction: log.Activity,\r\n };\r\n });\r\n}\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\n\r\nconst getReviewData = (legisId, companion) => {\r\n return (dispatch) =>\r\n dispatch(getLegisTrackBase(legisId, companion, dispatch)).then(\r\n (recordInfo) => {\r\n const rawFileId = recordInfo.textValues.id;\r\n Promise.all([\r\n dispatch(getLegisKeywords(rawFileId)),\r\n dispatch(getLegisClientSubjects(rawFileId)),\r\n dispatch(getLegistrackinthistory(legisId)),\r\n dispatch(getLegisHistoryLog(legisId)),\r\n ]);\r\n }\r\n );\r\n};\r\n\r\nexport function openReviewRecord(legisId, companion) {\r\n return (dispatch) => {\r\n dispatch({ type: LEGIS_TRACK_INT_OPEN_RECORD_START });\r\n dispatch(getReviewData(legisId, companion, dispatch)).finally(() => {\r\n dispatch({\r\n type: OPEN_LEGIS_TRACK_RECORD_SUCCESS,\r\n payload: { legisId },\r\n });\r\n });\r\n };\r\n}\r\n\r\nconst getInitialData = () => {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch(getLegisTrackInternalQueryData()),\r\n dispatch(getLegisDocTypes()),\r\n ]);\r\n};\r\n\r\nexport function loadInitialData() {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch({ type: GET_LEGIS_TRACK_INITIAL_DATA_START }),\r\n dispatch(getInitialData()).finally(() => {\r\n dispatch({ type: GET_LEGIS_TRACK_INITIAL_DATA_COMPLETE });\r\n }),\r\n ]);\r\n}\r\n\r\nexport function getLegisTrackInternalQueryData() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_INT_QUERY_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/legistrackint`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_INT_QUERY_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_INT_QUERY_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_INT_QUERY_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postLegisTrackInternal(legisUrlsParameters) {\r\n return (dispatch) => {\r\n dispatch({ type: POST_LEGIS_TRACK_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(legisUrlsParameters),\r\n };\r\n return fetch(`${globals.apiUrl}/LegisTrackInt`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: POST_LEGIS_TRACK_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: POST_LEGIS_TRACK_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n if (json.length > 0) {\r\n dispatch(openReviewRecord(json[0]));\r\n } else {\r\n dispatch(showModal(\"No-results\"));\r\n dispatch(clearFormFields());\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: POST_LEGIS_TRACK_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putLegisSummary(summaryData) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LEGIS_SUMMARY_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(summaryData),\r\n };\r\n return fetch(`${globals.apiUrl}/legissummary`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LEGIS_SUMMARY_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LEGIS_SUMMARY_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LEGIS_SUMMARY_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientAction(clientAction) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_CLIENT_ACTION_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(clientAction),\r\n };\r\n return fetch(`${globals.apiUrl}/clientaction`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientActionComment(clientAction) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_CLIENT_ACTION_COMMENT_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(clientAction),\r\n };\r\n return fetch(`${globals.apiUrl}/clientactioncomment`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n\r\n return json;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisTeamReview(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_TEAM_REVIEW_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/TeamReview/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_TEAM_REVIEW_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_TEAM_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TRACK_TEAM_REVIEW_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postLegisTeamsReview(id, teams, reviewed, flagType) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n legisId: id,\r\n team: teams[0],\r\n reviewed: reviewed,\r\n flagType: flagType,\r\n }),\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/TeamReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisTrackBase(id, companion) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_BASE_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(\r\n `${globals.apiUrl}/LegisTrackInt/${id}${\r\n companion ? \"?companionReview=true\" : \"\"\r\n }`,\r\n options\r\n )\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LEGIS_TRACK_BASE_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n const recordInfo = matchRecordInfo(json);\r\n const clientActions = matchClientActions(json);\r\n const documents = matchDocuments(json.Documents);\r\n const clientSubjectTags = matchClientSubjectTags(json.ClientSubjects);\r\n const managementComments = matchManagementComments(\r\n json.ManagementComments\r\n );\r\n const companionBill = json.CompanionBill;\r\n const companionReviewedTeams = companionBill\r\n ? matchBooleansToSelectionList({\r\n 1: json.CompanionReviewedTeamGroup1,\r\n 2: json.CompanionReviewedTeamGroup2,\r\n 3: json.CompanionReviewedTeamGroup3,\r\n })\r\n : matchBooleansToSelectionList({});\r\n\r\n dispatch({\r\n type: GET_LEGIS_TRACK_BASE_SUCCESS,\r\n payload: {\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n clientSubjectTags,\r\n managementComments,\r\n companionBill,\r\n companionReviewedTeams,\r\n },\r\n });\r\n dispatch(clearHistory(pageIndex.legisTrackInternal));\r\n dispatch(\r\n saveInitialValues(pageIndex.legisTrackInternal, {\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n })\r\n );\r\n\r\n return recordInfo;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LEGIS_TRACK_BASE_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postIdReviewed(id) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_LEGIS_TRACK_ID_REVIEWED_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: id,\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/IdReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: SET_LEGIS_TRACK_ID_REVIEWED_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_LEGIS_TRACK_ID_REVIEWED_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: SET_LEGIS_TRACK_ID_REVIEWED_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisKeywords(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_KEYWORDS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetKeywords/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LEGIS_TRACK_KEYWORDS_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_KEYWORDS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LEGIS_TRACK_KEYWORDS_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisClientSubjects(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_CLIENT_SUBJECTS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetClientSubjects/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_CLIENT_SUBJECTS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getQCKeywordReview(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QC_KEYWORD_REVIEW_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetQCKeywordReview/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getQCKeywordMissing(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QC_KEYWORD_MISSING_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetQCKeywordMissing/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getSubjectGroupList(client, subject) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/SubjectGroupList`);\r\n\r\n const params = {\r\n client,\r\n subject,\r\n searchType: \"Legislation\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getHighlightedDocument(teams, keywords, path) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_HIGHLIGHTED_DOC_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/KeywordHits`);\r\n\r\n const params = {\r\n docpath: path,\r\n service: \"legis\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n if (teams && teams.length != 0) {\r\n teams.forEach((team) => {\r\n if (String(team).length > 0) {\r\n url.searchParams.append(\"teamId\", team);\r\n }\r\n });\r\n }\r\n\r\n if (keywords && keywords.length != 0) {\r\n keywords.forEach((keyword) =>\r\n url.searchParams.append(\"keywordId\", keyword)\r\n );\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.url;\r\n } else if (response.status === 302) {\r\n return response.url;\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((url) => {\r\n if (url) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_HIGHLIGHTED_DOC_SUCCESS,\r\n payload: {\r\n url,\r\n },\r\n });\r\n return url;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function postQCKeywordReview(rawfileId, team, customName) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({ rawfileId, team, customName }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/RawFile/QCKeywordReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((success) => {\r\n return success;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteLegisDocument(docId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LEGIS_DOC_START });\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/legisdoc/${docId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_LEGIS_DOC_SUCCESS,\r\n payload: {\r\n docId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_LEGIS_DOC_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: DELETE_LEGIS_DOC_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function addLegisDocument(document) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_LEGIS_DOC_START });\r\n\r\n const { type, url, description, linkedRecord } = document;\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n Type: type,\r\n Url: url,\r\n Description: description,\r\n RawFileId: linkedRecord,\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/legisdoc`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: ADD_LEGIS_DOC_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_LEGIS_DOC_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: ADD_LEGIS_DOC_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisDocTypes() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_DOC_TYPES_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/rawfile/getLegisDocTypes`);\r\n\r\n try {\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_DOC_TYPES_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_DOC_TYPES_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_DOC_TYPES_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n } catch {\r\n (error) => {\r\n dispatch({\r\n type: GET_LEGIS_DOC_TYPES_FAILURE,\r\n json: error,\r\n });\r\n };\r\n }\r\n };\r\n}\r\n\r\nexport function deleteClientSubjectTag(subjectId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LEGIS_CLIENT_SUBJECT_TAG_START });\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/clientSubjectTag/${subjectId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_LEGIS_CLIENT_SUBJECT_TAG_SUCCESS,\r\n payload: {\r\n subjectId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: DELETE_LEGIS_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: DELETE_LEGIS_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientSubjectTag(clientSubjectTag) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LEGIS_CLIENT_SUBJECT_TAG_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: [JSON.stringify(clientSubjectTag)],\r\n };\r\n return fetch(`${globals.apiUrl}/clientSubjectTag`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LEGIS_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LEGIS_CLIENT_SUBJECT_TAG_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n\r\n return json;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LEGIS_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function updateSubscribeDateForAll(recordId, dataType, subscribeDate) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_SUBSCRIBE_DATE_ALL_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n recordId,\r\n dataType,\r\n subscribeDate,\r\n }),\r\n };\r\n return fetch(`${globals.apiUrl}/ClientSubjectSubscription`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n return true;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegistrackinthistory(legisId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_HISTORY_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/legistrackinthistory/${legisId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_HISTORY_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_HISTORY_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_HISTORY_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function putLegisHistory(historyData) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LEGIS_HISTORY_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(historyData),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/legistrackinthistory`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LEGIS_HISTORY_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LEGIS_HISTORY_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n\r\n return json;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LEGIS_HISTORY_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisHistoryLog(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_HISTORY_LOG_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/HistoryLog`);\r\n\r\n const params = {\r\n entityType: 5,\r\n entityId: id,\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LEGIS_HISTORY_LOG_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_HISTORY_LOG_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LEGIS_HISTORY_LOG_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function addManagementComment(\r\n recordId,\r\n team,\r\n comment,\r\n lateTagRequest,\r\n missedBill\r\n) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_LEGIS_MANAGMENT_COMMENT_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n recordId,\r\n DataType: \"legis\",\r\n TeamAssigned: team,\r\n comment,\r\n lateTagRequest,\r\n missedBill,\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/managementcomments`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: ADD_LEGIS_MANAGMENT_COMMENT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_LEGIS_MANAGMENT_COMMENT_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: ADD_LEGIS_MANAGMENT_COMMENT_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function updateManagementComment(managementComment) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LEGIS_MANAGEMENT_COMMENT_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(managementComment),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/managementcomments`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LEGIS_MANAGEMENT_COMMENT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LEGIS_MANAGEMENT_COMMENT_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n\r\n return json;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LEGIS_MANAGEMENT_COMMENT_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisTagComparison(primaryLegisId, companionLegisId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TAG_COMPARISON_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/LegisTagComparison`);\r\n\r\n const params = {\r\n primaryLegisId,\r\n companionLegisId,\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TAG_COMPARISON_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TAG_COMPARISON_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TAG_COMPARISON_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putCompanionBillReview(legisId, team, reviewed) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_COMPANION_BILL_REVIEW_START });\r\n\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n LegisId: legisId,\r\n Reviews: [{ TeamGroupId: team, Reviewed: reviewed }],\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/CompanionBillReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_COMPANION_BILL_REVIEW_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_COMPANION_BILL_REVIEW_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_COMPANION_BILL_REVIEW_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function clearFormFields() {\r\n return {\r\n type: CLEAR_LEGIS_TRACK_FIELD_FOR_NO_RESULTS,\r\n };\r\n}\r\n\r\nexport function returnInitialState() {\r\n return {\r\n type: RETURN_LEGIS_TRACK_INITIAL_STATE,\r\n };\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA]: (state, action) =>\r\n action.location.page !== pageIndex.legisTrackInternal\r\n ? state\r\n : actionHandler(state, action),\r\n [RETURN_LEGIS_TRACK_INITIAL_STATE]: () => {\r\n return {\r\n ...initialState,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_INT_QUERY_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_INT_QUERY_DATA_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queriesWithParameters: json,\r\n queries: json.map((item) => {\r\n return {\r\n value: item.QueryId,\r\n label: item.QueryName,\r\n };\r\n }),\r\n },\r\n };\r\n },\r\n [PUT_LEGIS_SUMMARY_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LEGIS_SUMMARY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LEGIS_SUMMARY_SUCCESS]: (state, action) => {\r\n const info = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n recordInfo: {\r\n ...state.formDataValue.LTI.recordInfo,\r\n textValues: {\r\n ...state.formDataValue.LTI.recordInfo.textValues,\r\n summary: info.Summary || \"\",\r\n summaryUpdateDate: formatDate(info.SummaryUpdated),\r\n },\r\n radio: {\r\n ...state.formDataValue.LTI.recordInfo.radio,\r\n summaryUpdating: info.SummaryView || \"\",\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [PUT_LEGIS_HISTORY_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LEGIS_HISTORY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LEGIS_HISTORY_SUCCESS]: (state, action) => {\r\n const info = action.payload.json;\r\n const currentLegisProgress = matchBooleansToSelectionList(info);\r\n const newState = {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n currentLegisProgress: currentLegisProgress,\r\n recordInfo: matchSubHistoryData(\r\n state.formDataValue.LTI.recordInfo,\r\n info\r\n ),\r\n },\r\n },\r\n };\r\n\r\n return newState;\r\n },\r\n [PUT_LEGIS_MANAGEMENT_COMMENT_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LEGIS_MANAGEMENT_COMMENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LEGIS_MANAGEMENT_COMMENT_SUCCESS]: (state, action) => {\r\n const newManagementComment = action.payload.json;\r\n\r\n const commentIndex = state.formDataValue.LTI.managementComments.findIndex(\r\n (managementComment) =>\r\n managementComment.textValues.Id === newManagementComment.Id\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n managementComments: Object.assign(\r\n [],\r\n state.formDataValue.LTI.managementComments,\r\n {\r\n [commentIndex]: matchManagementComment(newManagementComment),\r\n }\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS]: (state, action) => {\r\n const clientSubjectTags = matchClientSubjectTags(action.payload.json);\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n clientSubjectTags,\r\n },\r\n },\r\n };\r\n },\r\n [PUT_LEGIS_CLIENT_SUBJECT_TAG_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LEGIS_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LEGIS_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const newCientSubjectTag = action.payload.json;\r\n\r\n const tageIndex = state.formDataValue.LTI.clientSubjectTags.findIndex(\r\n (clientSubjectTag) =>\r\n clientSubjectTag.SubjectId === newCientSubjectTag.SubjectId\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n clientSubjectTags: Object.assign(\r\n [],\r\n state.formDataValue.LTI.clientSubjectTags,\r\n {\r\n [tageIndex]: matchClientSubjectTag(newCientSubjectTag),\r\n }\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_SUCCESS]: (state, action) => {\r\n return clientAtionSuccess(action, state);\r\n },\r\n [PUT_CLIENT_ACTION_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_SUCCESS]: (state, action) => {\r\n return clientAtionSuccess(action, state);\r\n },\r\n [PUT_COMPANION_BILL_REVIEW_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_COMPANION_BILL_REVIEW_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_COMPANION_BILL_REVIEW_SUCCESS]: (state, action) => {\r\n const companionBill = action.payload.json;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n companionReviewedTeams: companionBill\r\n ? matchBooleansToSelectionList({\r\n 1: companionBill.CompanionReviewedTeamGroup1,\r\n 2: companionBill.CompanionReviewedTeamGroup2,\r\n 3: companionBill.CompanionReviewedTeamGroup3,\r\n })\r\n : matchBooleansToSelectionList({}),\r\n },\r\n },\r\n };\r\n },\r\n [POST_LEGIS_TRACK_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [POST_LEGIS_TRACK_DATA_SUCCESS]: (state, action) => {\r\n const queryRecords = action.payload.json;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queryRecords,\r\n },\r\n };\r\n },\r\n [POST_LEGIS_TRACK_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_TEAM_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_TEAM_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_TEAM_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LEGIS_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_LEGIS_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LEGIS_DOC_SUCCESS]: (state, action) => {\r\n const { docId } = action.payload;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n documents: state.formDataValue.LTI.documents.filter(\r\n (doc) => doc.id !== docId\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [DELETE_LEGIS_CLIENT_SUBJECT_TAG_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_LEGIS_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LEGIS_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const { subjectId } = action.payload;\r\n const newClientSubjectTags = [...state.formDataValue.LTI.clientSubjectTags];\r\n const changingClientSubjectTag = newClientSubjectTags.find(\r\n (clientSubjectTag) => clientSubjectTag.SubjectId === subjectId\r\n );\r\n\r\n changingClientSubjectTag.Deleted = true;\r\n changingClientSubjectTag.DeletedByAnalyst = true;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n clientSubjectTags: newClientSubjectTags,\r\n },\r\n },\r\n };\r\n },\r\n [ADD_LEGIS_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [ADD_LEGIS_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [ADD_LEGIS_DOC_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n const newDocument = matchDocuments([json]);\r\n const newDocuments = [...state.formDataValue.LTI.documents, ...newDocument];\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n documents: newDocuments,\r\n },\r\n },\r\n };\r\n },\r\n [ADD_LEGIS_MANAGMENT_COMMENT_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [ADD_LEGIS_MANAGMENT_COMMENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [ADD_LEGIS_MANAGMENT_COMMENT_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n const newManagamentComment = matchManagementComment(json);\r\n const newManagamentComments = [\r\n newManagamentComment,\r\n ...state.formDataValue.LTI.managementComments,\r\n ];\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n managementComments: newManagamentComments,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_QUERIES_LIST_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_BASE_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_BASE_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_BASE_SUCCESS]: (state, action) => {\r\n const clientActions = action.payload.clientActions;\r\n const recordInfo = action.payload.recordInfo;\r\n const documents = action.payload.documents;\r\n const clientSubjectTags = action.payload.clientSubjectTags;\r\n const managementComments = action.payload.managementComments;\r\n const companionReviewedTeams = action.payload.companionReviewedTeams;\r\n const companionBill = action.payload.companionBill;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n clientSubjectTags,\r\n managementComments,\r\n companionReviewedTeams,\r\n companionBill,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_INITIAL_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_INITIAL_DATA_COMPLETE]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n };\r\n },\r\n [LEGIS_TRACK_INT_OPEN_RECORD_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [OPEN_LEGIS_TRACK_RECORD_SUCCESS]: (state, action) => {\r\n const currentIndex = state.renderData.queryRecords.findIndex(\r\n (record) => record === action.payload.legisId\r\n );\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n currentLegisId: action.payload.legisId,\r\n navigation: {\r\n ...state.formDataValue.LTI.navigation,\r\n textValues: {\r\n ...state.formDataValue.LTI.navigation.textValues,\r\n currentRecord: currentIndex + 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [SET_LEGIS_TRACK_ID_REVIEWED_SUCCESS]: (state, action) => {\r\n const iderInfo = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n iderReviewedInfo: matchIderInfo(iderInfo),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_KEYWORDS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n recordKeywordHits: matchKeywordHits(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_CLIENT_SUBJECTS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n recordClientSubjects: matchClientSubjects(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_HISTORY_LOG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_HISTORY_LOG_SUCCESS]: (state, action) => {\r\n const historyLog = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n textBlocks: {\r\n ...state.formDataValue.LTI.textBlocks,\r\n textValues: {\r\n ...state.formDataValue.LTI.textBlocks.textValues,\r\n log: matchHistoryLog(historyLog),\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [GET_QC_KEYWORD_MISSING_SUCCESS]: (state, action) => {\r\n const keywordsMissing = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n recordQCKeywordMissing: matchQCKeywordMissing(keywordsMissing),\r\n },\r\n },\r\n };\r\n },\r\n [GET_QC_KEYWORD_REVIEW_SUCCESS]: (state, action) => {\r\n const keywordsReview = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n recordQCKeywordReview: matchQCKeywordReview(keywordsReview),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_HIGHLIGHTED_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_HIGHLIGHTED_DOC_SUCCESS]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_DOC_TYPES_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_DOC_TYPES_SUCCESS]: (state, action) => {\r\n const legisDocTypes = matchLegisDocTypes(action.payload.json);\r\n const nonDeletableDocTypes = matchNonDeletableDocTypes(action.payload.json);\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n legisDocTypes: legisDocTypes,\r\n nonDeletableDocTypes: nonDeletableDocTypes,\r\n },\r\n };\r\n },\r\n [GET_LEGIS_DOC_TYPES_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_HISTORY_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_HISTORY_SUCCESS]: (state, action) => {\r\n const currentLegisProgress = matchBooleansToSelectionList(\r\n action.payload.json\r\n );\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n currentLegisProgress: currentLegisProgress,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_HISTORY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [POST_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const clientSubjectTags = matchClientSubjectTags(\r\n action.payload.json,\r\n state.formDataValue.LTI.currentLegisId\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n clientSubjectTags: [\r\n ...clientSubjectTags,\r\n ...state.formDataValue.LTI.clientSubjectTags,\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n [POST_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_START]: (state, action) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n clientSubjectGroupings: [],\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_SUCCESS]: (state, action) => {\r\n const groupingsList = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n clientSubjectGroupings: groupingsList,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_TAG_COMPARISON_START]: (state, action) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n companionPrimaryTags: {},\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TAG_COMPARISON_SUCCESS]: (state, action) => {\r\n const companionPrimaryTags = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n companionPrimaryTags: companionPrimaryTags,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TAG_COMPARISON_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [SET_QC_KEYWORD_REVIEW_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_QC_KEYWORD_REVIEW_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_CLIENTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_CLIENT_SUBJECT_INFO_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_GROUPING_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_SUBJECTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [CLEAR_LEGIS_TRACK_FIELD_FOR_NO_RESULTS]: (state) => {\r\n const query = state.renderData.queriesWithParameters.find(\r\n (query) => query.QueryId == state.formDataValue.LTI.queryLine.radio.query\r\n );\r\n\r\n const {\r\n parametersSectionSelectables,\r\n sortParameters,\r\n sortFields,\r\n sortDirections,\r\n filterFields,\r\n } = populateSortAndSearchParams(query);\r\n\r\n return {\r\n ...initialState,\r\n disableEditing: true,\r\n renderData: {\r\n ...initialState.renderData,\r\n queriesWithParameters: state.renderData.queriesWithParameters,\r\n queries: state.renderData.queries,\r\n allRegions: state.renderData.allRegions,\r\n regions: state.renderData.regions,\r\n regionsList: state.renderData.regionsList,\r\n legisDocTypes: state.renderData.legisDocTypes,\r\n nonDeletableDocTypes: state.renderData.nonDeletableDocTypes,\r\n },\r\n formDataValue: {\r\n LTI: {\r\n ...initialState.formDataValue.LTI,\r\n queryLine: {\r\n ...state.formDataValue.LTI.queryLine,\r\n },\r\n parametersSection: {\r\n ...state.formDataValue.LTI.parametersSection,\r\n radio: parametersSectionSelectables,\r\n },\r\n sortParameters: {\r\n radio: sortParameters,\r\n fields: sortFields,\r\n },\r\n sortDirections: {\r\n radio: sortDirections,\r\n },\r\n filterParameters: {\r\n fields: filterFields,\r\n },\r\n },\r\n },\r\n };\r\n },\r\n};\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: \"\",\r\n isFetchingData: false,\r\n renderData: {\r\n queryRecords: [],\r\n queryProperties: [],\r\n currentRecord: {},\r\n recordIndex: 0,\r\n },\r\n formDataValue: {\r\n LTI: {\r\n settingsLine: {\r\n radio: {\r\n autoAdvance: true,\r\n autoUrl: false,\r\n extraInfoExpanded: false,\r\n clientActionsExpanded: false,\r\n },\r\n },\r\n queryLine: {\r\n radio: {\r\n query: \"Select Query\",\r\n },\r\n textValues: {\r\n keywordSearch: \"\",\r\n },\r\n selected: [],\r\n },\r\n parametersSection: {\r\n textValues: {},\r\n dateTime: {},\r\n radio: [],\r\n },\r\n sortParameters: {\r\n radio: [],\r\n fields: [],\r\n },\r\n sortDirections: {\r\n radio: [],\r\n },\r\n filterParameters: {\r\n fields: [],\r\n },\r\n navigation: {\r\n textValues: {\r\n currentRecord: \"1\",\r\n },\r\n },\r\n currentLegisProgress: matchBooleansToSelectionList({}),\r\n reviewRecords: matchReviewRows([]),\r\n recordInfo: matchRecordInfo({}),\r\n iderReviewedInfo: matchIderInfo({}),\r\n recordKeywordHits: matchKeywordHits([]),\r\n recordClientSubjects: matchClientSubjects([]),\r\n recordQCKeywordMissing: matchQCKeywordMissing([]),\r\n recordQCKeywordReview: matchQCKeywordReview([]),\r\n documents: matchDocuments([]),\r\n clientActions: matchClientActions([]),\r\n clientSubjectTags: [],\r\n clientSubjectGroupings: [],\r\n managementComments: [],\r\n companionReviewedTeams: matchBooleansToSelectionList({}),\r\n companionBill: {},\r\n companionPrimaryTags: {\r\n PrimaryBill: { ClientSubjects: [] },\r\n CompanionBill: { ClientSubjects: [] },\r\n },\r\n otherDocs: {\r\n 0: {\r\n textValues: {\r\n urlIdDocs: \"\",\r\n urlDescription: \"\",\r\n },\r\n radio: {\r\n docsType: \"versions\",\r\n },\r\n },\r\n },\r\n clients: {\r\n selected: [],\r\n },\r\n notLoadedClients: {\r\n selected: [],\r\n },\r\n history: {\r\n textValues: {\r\n history: \"\",\r\n },\r\n },\r\n textBlocks: {\r\n textValues: {\r\n log: [],\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nfunction clientAtionSuccess(action, state) {\r\n const updatedClientAction = action.payload.json;\r\n const clientActionIndex = state.formDataValue.LTI.clientActions.findIndex(\r\n (clientAction) =>\r\n clientAction.textValues.clientActionId ===\r\n updatedClientAction.ClientActionId\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n LTI: {\r\n ...state.formDataValue.LTI,\r\n clientActions: Object.values({\r\n ...state.formDataValue.LTI.clientActions,\r\n [clientActionIndex]: matchClientAction(updatedClientAction),\r\n }),\r\n },\r\n },\r\n };\r\n}\r\n\r\nexport default function legisTrackInternalReducer(\r\n state = initialState,\r\n action\r\n) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/legisTrackInternalFormData.js","import { page as pageIndex, globals } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\n\r\nimport { GET_ALL_REGIONS_FETCHED } from './regions'\r\n\r\nimport { SEARCH_LEGISLATOR_FETCHED } from './sponsorInfo'\r\n\r\nimport { saveInitialValues, clearHistory } from './undo'\r\nimport { showModal } from './modal'\r\nimport moment from 'moment'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\n\r\nexport const RETURN_INITIAL_LDP = 'RETURN_INITIAL_LDP'\r\n\r\nexport const SAVE_LEGISLATOR_START = 'SAVE_LEGISLATOR_START'\r\nexport const SAVE_LEGISLATOR_SUCCESS = 'SAVE_LEGISLATOR_SUCCESS'\r\nexport const SAVE_LEGISLATOR_ERROR = 'SAVE_LEGISLATOR_ERROR'\r\nexport const SAVE_LEGISLATOR_FAILURE = 'SAVE_LEGISLATOR_FAILURE'\r\n\r\nexport const GET_LEGISLATOR_START = 'GET_LEGISLATOR_START'\r\nexport const GET_LEGISLATOR_SUCCESS = 'GET_LEGISLATOR_SUCCESS'\r\nexport const GET_LEGISLATOR_FAILURE = 'GET_LEGISLATOR_FAILURE'\r\n\r\nexport const OPEN_LEGISLATOR_RECORD = 'OPEN_LEGISLATOR_RECORD'\r\n\r\nexport const CLEAR_LEGISLATOR_START = 'CLEAR_LEGISLATOR_START'\r\nexport const CLEAR_LEGISLATOR_FAILURE = 'CLEAR_LEGISLATOR_FAILURE'\r\n\r\nexport const DELETE_LEGISLATOR_ALIAS_START = 'DELETE_LEGISLATOR_ALIAS_START'\r\nexport const DELETE_LEGISLATOR_ALIAS_SUCCESS = 'DELETE_LEGISLATOR_ALIAS_SUCCESS'\r\nexport const DELETE_LEGISLATOR_ALIAS_ERROR = 'DELETE_LEGISLATOR_ALIAS_ERROR'\r\nexport const DELETE_LEGISLATOR_ALIAS_FAILURE = 'DELETE_LEGISLATOR_ALIAS_FAILURE'\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\n\r\nexport function clearLegislatorDetails(legislatorData) {\r\n return (dispatch) => {\r\n dispatch({ type: CLEAR_LEGISLATOR_START,\r\n payload: { json: legislatorData } })\r\n .catch((err) => {\r\n console.log(err)\r\n dispatch({ type: CLEAR_LEGISLATOR_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nexport function deleteLegislatorAlias(legislatorData, aliasId){\r\n let xx = legislatorData;\r\n let yy = aliasId;\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LEGISLATOR_ALIAS_START })\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/sponsorreview/LegislatorAlias?referencelegislatoraliasid=${aliasId}`,\r\n options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: DELETE_LEGISLATOR_ALIAS_SUCCESS,\r\n payload: {\r\n aliasId\r\n }\r\n })\r\n //dispatch(openLegislatorRecord(legislatorData.legislatorId, legislatorData));\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: DELETE_LEGISLATOR_ALIAS_FAILURE })\r\n })\r\n } \r\n}\r\n\r\n// Create or update a ReferenceLegislator depending on \r\n// legislatorCM.ReferenceLegislatorId being populated. \r\nexport function addLegislatorToStore (legislatorData, trackData, id) {\r\n return (dispatch) => {\r\n dispatch({ type: SAVE_LEGISLATOR_START })\r\n const baseData = legislatorData.baseData;\r\n const legislatorCM = {\r\n ReferenceLegislatorId: baseData.legislatorId, \r\n RegionCode: baseData.radio.state, \r\n FirstName: baseData.textValues.firstName, \r\n LastName: baseData.textValues.lastName, \r\n Chamber: baseData.radio.chamber, \r\n StartYear: baseData.textValues.startYear, \r\n EndYear: baseData.textValues.endYear, \r\n Title: baseData.radio.title, \r\n Party: baseData.radio.politicalParty, \r\n Active: baseData.radio.isactive == \"true\", \r\n Homepage: baseData.textValues.url, \r\n }\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(legislatorCM)\r\n }\r\n fetch(`${globals.apiUrl}/sponsorreview/legislator`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n } else if (response.status === 409 || response.status === 400) {\r\n return response.text().then((text) => {\r\n dispatch({\r\n type: SAVE_LEGISLATOR_ERROR,\r\n errorMessage: text\r\n })\r\n dispatch(showModal('Error-raw-legislator-data-message'))\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SAVE_LEGISLATOR_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n dispatch(clearHistory(pageIndex.legislatorData))\r\n dispatch(saveInitialValues(pageIndex.legislatorData, trackData))\r\n if (json.ReferenceLegislatorId) {\r\n dispatch(openLegislatorRecord(json.ReferenceLegislatorId, trackData));\r\n }\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: SAVE_LEGISLATOR_FAILURE })\r\n })\r\n }\r\n}\r\n\r\n\r\nexport function returnInitialState () {\r\n return {\r\n type: RETURN_INITIAL_LDP\r\n }\r\n}\r\n\r\n\r\nexport function openLegislatorRecord(id, trackData) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGISLATOR_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/sponsorreview/legislatorplus?legislatorid=${id}&`,\r\n options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 401) {\r\n dispatch(logOut())\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGISLATOR_SUCCESS,\r\n payload: {\r\n legislatorData: json\r\n }\r\n })\r\n dispatch(clearHistory(pageIndex.legislatorData))\r\n const legislatorData = {\r\n baseData: {\r\n radio: {\r\n state: json.RegionCode,\r\n chamber: json.Chamber,\r\n politicalParty: json.Party,\r\n title: json.Title,\r\n isactive: json.Active ? \"true\" : \"false\",\r\n },\r\n textValues: { \r\n firstName: json.FirstName,\r\n lastName: json.LastName,\r\n url: json.Homepage ? json.Homepage : '',\r\n homepage: json.Homepage ? json.Homepage : '',\r\n startYear: json.StartYear,\r\n endYear: json.EndYear,\r\n searchName: trackData.baseData.textValues.searchName, \r\n },\r\n legislatorId: json.ReferenceLegislatorId,\r\n aliases: json.Aliases ? json.Aliases : [],\r\n }\r\n }\r\n dispatch(saveInitialValues(pageIndex.legislatorData, legislatorData))\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_LEGISLATOR_FAILURE })\r\n })\r\n }\r\n}\r\n\r\nconst returnDateFormat = (date) => {\r\n return date && date !== ' ' ? moment(date).format('MMM / DD / YYYY') : ' '\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.legislatorData\r\n ? state : actionHandler(state, action),\r\n [SAVE_LEGISLATOR_SUCCESS] : (state, action) => {\r\n const { legislatorData } = action.payload.json;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n legislatorRecordSaved: true,\r\n rawBillDataQueue: [],\r\n rawLegislatorRecord: legislatorData,\r\n },\r\n formDataValue: {\r\n LDP: {\r\n ...state.formDataValue.LDP,\r\n legislatorId: action.payload.json.ReferenceLegislatorId,\r\n }\r\n }\r\n }\r\n },\r\n [SAVE_LEGISLATOR_ERROR] : (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n legislatorRecordSaved: false,\r\n errorMessage: action.errorMessage\r\n }\r\n }\r\n },\r\n [RETURN_INITIAL_LDP] : () => {\r\n return {\r\n ...initialState\r\n }\r\n },\r\n [CLEAR_LEGISLATOR_START] : (state, action) => {\r\n const { id } = action\r\n const { record } = action.payload.json.legislatorData;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n rawLegislatorRecord: action.payload.legislatorData\r\n },\r\n formDataValue: {\r\n // LDP\r\n LDP: {\r\n ...state.formDataValue.LDP,\r\n baseData: {\r\n ...state.formDataValue.LDP.baseData,\r\n radio: { \r\n ...state.formDataValue.LDP.baseData.radio, \r\n //state: action.payload.legislatorData.RegionCode,\r\n chamber: '',\r\n politicalParty: '',\r\n title: '',\r\n isactive: '',\r\n },\r\n textValues: {\r\n ...state.formDataValue.LDP.baseData.textValues, \r\n firstName: '',\r\n lastName: '',\r\n url: '',\r\n homepage: '',\r\n startYear: '',\r\n endYear: '',\r\n },\r\n legislatorId: 0,\r\n aliases: [],\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [GET_LEGISLATOR_SUCCESS] : (state, action) => {\r\n const { id } = action\r\n const { record } = action.payload.legislatorData;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n rawLegislatorRecord: action.payload.legislatorData\r\n },\r\n formDataValue: {\r\n // LDP\r\n LDP: {\r\n ...state.formDataValue.LDP,\r\n // navigation: {\r\n // id: action.payload.legislatorData.id,\r\n // },\r\n baseData: {\r\n ...state.formDataValue.LDP.baseData,\r\n radio: { \r\n state: action.payload.legislatorData.RegionCode,\r\n chamber: action.payload.legislatorData.Chamber,\r\n politicalParty: action.payload.legislatorData.Party,\r\n title: action.payload.legislatorData.Title,\r\n isactive: action.payload.legislatorData.Active ? \"true\" : \"false\",\r\n },\r\n textValues: {\r\n ...state.formDataValue.LDP.baseData.textValues, \r\n firstName: action.payload.legislatorData.FirstName,\r\n lastName: action.payload.legislatorData.LastName,\r\n url: action.payload.legislatorData.Homepage ? action.payload.legislatorData.Homepage : '',\r\n homepage: action.payload.legislatorData.Homepage ? action.payload.legislatorData.Homepage : '',\r\n startYear: action.payload.legislatorData.StartYear,\r\n endYear: action.payload.legislatorData.EndYear,\r\n },\r\n legislatorId: action.payload.legislatorData.ReferenceLegislatorId,\r\n aliases: action.payload.legislatorData.Aliases \r\n ? action.payload.legislatorData.Aliases : [],\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [DELETE_LEGISLATOR_ALIAS_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n },\r\n formDataValue: {\r\n // LDP\r\n LDP: {\r\n ...state.formDataValue.LDP,\r\n baseData: {\r\n ...state.formDataValue.LDP.baseData,\r\n aliases: state.formDataValue.LDP.baseData.aliases \r\n ? state.formDataValue.LDP.baseData.aliases.filter(x => x.ReferenceLegislatorAliasId != action.payload.aliasId) : [],\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n [GET_ALL_REGIONS_FETCHED]: (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n legislatorStates: action.payload.json.map((item) => {\r\n return {\r\n value: item.ShortName,\r\n label: item.Name,\r\n };\r\n }).filter((elem) => {\r\n return elem.label !== \"All States\" \r\n && elem.label !== \"Canada\"\r\n && elem.label !== \"Spain\"\r\n }),\r\n },\r\n };\r\n },\r\n [SEARCH_LEGISLATOR_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n legislatorResults: json\r\n }\r\n }\r\n },\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nexport const initialState = {\r\n isFetchingData: false,\r\n errorCode: '',\r\n renderData: {\r\n errorMessage: '',\r\n billRecordSaved: false,\r\n rawBillDataQueue: [{\r\n RawFileId: 0,\r\n State: null,\r\n BillType: null,\r\n Session: null,\r\n PrefileYear: null,\r\n BillNumber: null,\r\n Introdate: ' ',\r\n SponsorFirstName: null,\r\n Sponsor: null,\r\n Url: null,\r\n Summary: null,\r\n History: null,\r\n disableEditing: false\r\n }],\r\n rawBillRecord: {\r\n RawFileId: 0\r\n }\r\n },\r\n formDataValue: {\r\n LDP: {\r\n navigation: {\r\n textValues: {\r\n currentRecord: '1'\r\n }\r\n },\r\n baseData: {\r\n radio: {\r\n state: '',\r\n chamber: '',\r\n politicalParty: '',\r\n title: '',\r\n isactive: '',\r\n },\r\n textValues: { \r\n firstName: '',\r\n lastName: '',\r\n url: '',\r\n startYear: '',\r\n endYear: '',\r\n searchName: '',\r\n },\r\n legislatorId: 0,\r\n aliases: [],\r\n },\r\n }\r\n }\r\n}\r\nexport default function legislatorDataReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/legislatorFormData.js","import moment from \"moment\";\r\nimport { globals, page as pageIndex, RegsTypes } from \"../../globals\";\r\nimport { logOut } from \"./auth\";\r\nimport { formatDate } from \"./formatDate\";\r\nimport { populateSortAndSearchParams } from \"./helpers\";\r\nimport { showModal } from \"./modal\";\r\nimport { actionHandler, UPDATE_DATA } from \"./updateData\";\r\n\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const REGS_NRR_OPEN_RECORD_START = \"REGS_NRR_OPEN_RECORD_START\";\r\nexport const REFRESH_RECORDS = \"REFRESH_RECORDS\";\r\nexport const UPDATE_REVIEW_DATA = \"UPDATE_REVIEW_DATA\";\r\nexport const GET_QUERIES_LIST_START = \"GET_QUERIES_LIST_START\";\r\nexport const GET_REGS_NRR_QUERY_DATA_START = \"GET_REGS_NRR_QUERY_DATA_START\";\r\nexport const GET_REGS_NRR_QUERY_DATA_SUCCESS =\r\n \"GET_REGS_NRR_QUERY_DATA_SUCCESS\";\r\nexport const GET_REGS_NRR_QUERY_DATA_FAILURE =\r\n \"GET_REGS_NRR_QUERY_DATA_FAILURE\";\r\nexport const GET_TEAM_REVIEW_DATA_START = \"GET_TEAM_REVIEW_DATA_START\";\r\nexport const GET_TEAM_REVIEW_DATA_SUCCESS = \"GET_TEAM_REVIEW_DATA_SUCCESS\";\r\nexport const GET_TEAM_REVIEW_DATA_FAILURE = \"GET_TEAM_REVIEW_DATA_FAILURE\";\r\nexport const SET_TEAMS_REVIEW_DATA_START = \"SET_TEAMS_REVIEW_DATA_START\";\r\nexport const SET_TEAMS_REVIEW_DATA_SUCCESS = \"SET_TEAMS_REVIEW_DATA_SUCCESS\";\r\nexport const SET_TEAMS_REVIEW_DATA_FAILURE = \"SET_TEAMS_REVIEW_DATA_FAILURE\";\r\nexport const GET_TEAM_REVIEW_OPTIONS_DATA_START =\r\n \"GET_TEAM_REVIEW_OPTIONS_DATA_START\";\r\nexport const GET_TEAM_REVIEW_OPTIONS_DATA_SUCCESS =\r\n \"GET_TEAM_REVIEW_OPTIONS_DATA_SUCCESS\";\r\nexport const GET_TEAM_REVIEW_OPTIONS_DATA_FAILURE =\r\n \"GET_TEAM_REVIEW_OPTIONS_DATA_FAILURE\";\r\nexport const GET_REGETL_START = \"GET_REGETL_START\";\r\nexport const GET_REGETL_SUCCESS = \"GET_REGETL_SUCCESS\";\r\nexport const GET_REGETL_FAILURE = \"GET_REGETL_FAILURE\";\r\nexport const GET_REGETL_KEYWORDS_START = \"GET_REGETL_KEYWORDS_START\";\r\nexport const GET_REGETL_KEYWORDS_SUCCESS = \"GET_REGETL_KEYWORDS_SUCCESS\";\r\nexport const GET_REGETL_KEYWORDS_FAILURE = \"GET_REGETL_KEYWORDS_FAILURE\";\r\nexport const GET_REGETL_CLIENT_SUBJECTS_START =\r\n \"GET_REGETL_CLIENT_SUBJECTS_START\";\r\nexport const GET_REGETL_CLIENT_SUBJECTS_SUCCESS =\r\n \"GET_REGETL_CLIENT_SUBJECTS_SUCCESS\";\r\nexport const GET_REGETL_CLIENT_SUBJECTS_FAILURE =\r\n \"GET_REGETL_CLIENT_SUBJECTS_FAILURE\";\r\nexport const GET_REGETL_REG_START = \"GET_REGETL_REG_START\";\r\nexport const GET_REGETL_REG_SUCCESS = \"GET_REGETL_REG_SUCCESS\";\r\nexport const GET_REGETL_REG_FAILURE = \"GET_REGETL_REG_FAILURE\";\r\nexport const GET_REGETL_REGS_TYPE_START = \"GET_REGETL_REGS_TYPE_START\";\r\nexport const GET_REGETL_REGS_TYPE_SUCCESS = \"GET_REGETL_REGS_TYPE_SUCCESS\";\r\nexport const GET_REGETL_REGS_TYPE_FAILURE = \"GET_REGETL_REGS_TYPE_FAILURE\";\r\nexport const GET_REGETL_LOAD_OPTIONS_START = \"GET_REGETL_LOAD_OPTIONS_START\";\r\nexport const GET_REGETL_LOAD_OPTIONS_SUCCESS =\r\n \"GET_REGETL_LOAD_OPTIONS_SUCCESS\";\r\nexport const GET_REGETL_LOAD_OPTIONS_FAILURE =\r\n \"GET_REGETL_LOAD_OPTIONS_FAILURE\";\r\nexport const CLEAR_FIELD_FOR_NO_RESULTS = \"CLEAR_FIELD_FOR_NO_RESULTS\";\r\nexport const RETURN_REGS_RECORD_REVIEW_INITIAL_STATE =\r\n \"RETURN_REGS_RECORD_REVIEW_INITIAL_STATE\";\r\nexport const OPEN_RECORD_SUCCESS = \"OPEN_RECORD_SUCCESS\";\r\nexport const SET_ID_REVIEWED_START = \"SET_ID_REVIEWED_START\";\r\nexport const SET_ID_REVIEWED_FAILURE = \"SET_ID_REVIEWED_FAILURE\";\r\nexport const SET_ID_REVIEWED_SUCCESS = \"SET_ID_REVIEWED_SUCCESS\";\r\nexport const GET_HIGHLIGHTED_DOC_START = \"GET_HIGHLIGHTED_DOC_START\";\r\nexport const GET_HIGHLIGHTED_DOC_FAILURE = \"GET_HIGHLIGHTED_DOC_FAILURE\";\r\nexport const GET_HIGHLIGHTED_DOC_SUCCESS = \"GET_HIGHLIGHTED_DOC_SUCCESS\";\r\nexport const LOAD_TO_NEW_REG_START = \"LOAD_TO_NEW_REG_START\";\r\nexport const LOAD_TO_NEW_REG_FAILURE = \"LOAD_TO_NEW_REG_FAILURE\";\r\nexport const LOAD_TO_NEW_REG_SUCCESS = \"LOAD_TO_NEW_REG_SUCCESS\";\r\nexport const GET_REG_LOAD_OPTIONS_START = \"GET_REG_LOAD_OPTIONS_START\";\r\nexport const GET_REG_LOAD_OPTIONS_FAILURE = \"GET_REG_LOAD_OPTIONS_FAILURE\";\r\nexport const GET_REG_LOAD_OPTIONS_SUCCESS = \"GET_REG_LOAD_OPTIONS_SUCCESS\";\r\nexport const GET_INITIAL_DATA_START = \"GET_INITIAL_DATA_START\";\r\nexport const GET_INITIAL_DATA_COMPLETE = \"GET_INITIAL_DATA_COMPLETE\";\r\nexport const LOAD_TO_EXISTING_REG_START = \"LOAD_TO_EXISTING_REG_START\";\r\nexport const LOAD_TO_EXISTING_REG_FAILURE = \"LOAD_TO_EXISTING_REG_FAILURE\";\r\nexport const LOAD_TO_EXISTING_REG_SUCCESS = \"LOAD_TO_EXISTING_REG_SUCCESS\";\r\nexport const SET_TITLE_EDIT = \"SET_TITLE_EDIT\";\r\nexport const GET_REGETL_CITATIONMATCH_START = \"GET_REGETL_CITATIONMATCH_START\";\r\nexport const GET_REGETL_CITATIONMATCH_SUCCESS = \"GET_REGETL_CITATIONMATCH_SUCCESS\";\r\nexport const GET_REGETL_CITATIONMATCH_FAILURE = \"GET_REGETL_CITATIONMATCH_FAILURE\";\r\n\r\n\r\nconst headers = {\r\n \"Content-Type\": \"application/json\",\r\n};\r\n\r\nexport function getRegNRRInitialState() {\r\n return initialState;\r\n}\r\n\r\nfunction formatDateShort(date) {\r\n return date && date !== \"\" ? moment(date).format(\"MM/DD/YYYY\") : \"\";\r\n}\r\n\r\nfunction matchReviewRows(rows) {\r\n return rows.map((item) => {\r\n return {\r\n textValues: {\r\n team: item.Team || \"\",\r\n assignedBy: item.AssignedBy || \"\",\r\n assignedDate: formatDate(item.AssignedDate),\r\n reviewedBy: item.ReviewedBy || \"\",\r\n reviewedDate: formatDate(item.ReviewedDate),\r\n type: Object.keys(RegsTypes).find(\r\n (key) => RegsTypes[key] === String(item.FlagType)\r\n ),\r\n flag: String(item.FlagType),\r\n },\r\n isReviewed: item.ReviewedBy !== null,\r\n };\r\n });\r\n}\r\n\r\nfunction matchRecordInfo(info) {\r\n return {\r\n textValues: {\r\n id: info.Id || \"\",\r\n type: info.RegsTypeValue || \"\",\r\n state: info.State || \"\",\r\n agency: info.AgencyName || \"\",\r\n actionDate: formatDate(info.ActionDate),\r\n title: info.Title || \"\",\r\n summary: info.Summary || \"\",\r\n url: info.SourceUrl || \"\",\r\n citations: info.Tags.map((tag) => {\r\n return {\r\n textValues: {\r\n citationName: tag.CitationName,\r\n citationValue: tag.TagValue,\r\n citationId: tag.Id,\r\n },\r\n };\r\n }),\r\n contact: info.ContactInfo || \"\",\r\n sspath: info.SSPath || \"\",\r\n recordCreated: formatDate(info.CreateDate),\r\n regsId: info.RelatedRegs.map((reg) => {\r\n return reg.RegsId;\r\n }),\r\n year: info.Year || \"\",\r\n teams: info.Teams || \"\",\r\n regETLSubType: info.RegETLSubtype || \"\",\r\n regETLType: info.RegETLType || \"\",\r\n regsTypeId: info.RegsTypeId || \"\",\r\n regsTypeValue: info.RegsTypeValue || \"\",\r\n toolboxURL: info.ToolboxUrl || \"\",\r\n documents: info.Urls\r\n ? info.Urls.map((doc) => {\r\n return {\r\n url: doc.Url,\r\n description: doc.Description,\r\n urlType: doc.Type,\r\n };\r\n })\r\n : [],\r\n llartsnote: info.LLARTSNote || \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchIderInfo(info) {\r\n return {\r\n textValues: {\r\n ider: info.IDer || \"\",\r\n iderReviewed: info.IDerReviewed || \"\",\r\n iderReviewedDate: formatDate(info.IDerReviewedDate),\r\n },\r\n };\r\n}\r\n\r\nfunction matchKeywordHits(hits) {\r\n return hits.map((hit) => {\r\n return {\r\n textValues: {\r\n team: hit.Team || \"\",\r\n client: hit.Client || \"\",\r\n grouping: hit.Subject || \"\",\r\n keyword: hit.Keyword || \"\",\r\n hits: hit.Hits,\r\n foundDate: formatDate(hit.FoundDate),\r\n changeDate: formatDate(hit.ChangeDate),\r\n oldHits: hit.OldHits,\r\n keywordId: hit.KeywordId,\r\n taggingInstructions: hit.GroupTaggingInstructions || \"\",\r\n description: hit.GroupDescription || \"\",\r\n overview: hit.GroupOverview || \"\",\r\n boolPhrase: hit.BoolPhrase,\r\n groupingId: hit.GroupingId,\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchClientSubjects(clients) {\r\n return clients.map((client) => {\r\n return {\r\n textValues: {\r\n deleted: client.DeleteIt || false,\r\n client: client.ClientName || \"\",\r\n clientDescription: client.ClientDescription || \"\",\r\n subject: client.Subject || \"\",\r\n subjectDescription: client.SubjectDescription || \"\",\r\n changeDate: formatDate(client.CreateDate),\r\n user: client.CreateUserId || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchSimilarRegs(regs) {\r\n return regs.map((reg) => {\r\n return {\r\n textValues: { \r\n regsId: reg.RegsId || \"\",\r\n title: reg.Title || \"\",\r\n lastUpdateDate: reg.LastUpdateDate ? formatDateShort(reg.LastUpdateDate) : formatDateShort(reg.CreateDate),\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction getLoadToRegRequest(recordInfo) {\r\n return {\r\n id: recordInfo.id,\r\n state: recordInfo.state,\r\n title: recordInfo.title,\r\n summary: recordInfo.summary,\r\n regsTypeId: recordInfo.regsTypeId,\r\n year: recordInfo.year,\r\n contactInfo: recordInfo.contact,\r\n actionDate: recordInfo.actionDate,\r\n teams: recordInfo.teams,\r\n agencyName: recordInfo.agency,\r\n regETLSubtype: recordInfo.regsTypeValue,\r\n loadConfig: {\r\n options: [],\r\n },\r\n };\r\n}\r\n\r\nfunction getLoadToExistingRegRequest(recordInfo, regInfo, options) {\r\n return {\r\n id: recordInfo.id,\r\n state: recordInfo.state,\r\n title: regInfo.Title,\r\n summary: regInfo.Summary,\r\n regsTypeId: recordInfo.regsTypeId,\r\n year: regInfo.Year,\r\n contactInfo: regInfo.OfficialContact,\r\n actionDate: recordInfo.actionDate,\r\n teams: recordInfo.teams,\r\n agencyName: recordInfo.agency,\r\n regETLSubtype: recordInfo.regETLSubType,\r\n loadConfig: {\r\n options: options,\r\n RegId: regInfo.RegId,\r\n },\r\n };\r\n}\r\n\r\nconst getReviewData = (regETLId) => {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch(getRegEtl(regETLId)),\r\n dispatch(getRegETLTeamReview(regETLId)),\r\n dispatch(getRegEtlKeywords(regETLId)),\r\n dispatch(getRegEtlClientSubjects(regETLId)),\r\n // dispatch(getRegEtlCitationMatch(regETLId)),\r\n ])\r\n};\r\n\r\nexport function openReviewRecord(regETLId) {\r\n return (dispatch) => {\r\n dispatch({ type: REGS_NRR_OPEN_RECORD_START });\r\n dispatch(getReviewData(regETLId, dispatch)).finally(() => {\r\n dispatch({ type: OPEN_RECORD_SUCCESS, payload: { regETLId } });\r\n });\r\n dispatch(getRegEtlCitationMatch(regETLId));\r\n };\r\n}\r\n\r\nconst getInitialData = () => {\r\n return (dispatch) =>\r\n Promise.all([dispatch(getRegsNRR()), dispatch(getLoadOptions())]);\r\n};\r\n\r\nexport function loadInitialData() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_INITIAL_DATA_START });\r\n dispatch(getInitialData()).finally(() => {\r\n dispatch({ type: GET_INITIAL_DATA_COMPLETE });\r\n });\r\n };\r\n}\r\n\r\nexport function getRegsNRR() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGS_NRR_QUERY_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RegsNRR`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_REGS_NRR_QUERY_DATA_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGS_NRR_QUERY_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({ type: GET_REGS_NRR_QUERY_DATA_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getLoadOptions() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REG_LOAD_OPTIONS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/LoadOptions`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_REG_LOAD_OPTIONS_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REG_LOAD_OPTIONS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({ type: GET_REG_LOAD_OPTIONS_FAILURE, json: err.message });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function postRegsNRR(regsUrlsParameters) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_TEAM_REVIEW_OPTIONS_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(regsUrlsParameters),\r\n };\r\n return fetch(`${globals.apiUrl}/RegsNRR`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_TEAM_REVIEW_OPTIONS_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n const queryRecords = json;\r\n\r\n dispatch({\r\n type: GET_TEAM_REVIEW_OPTIONS_DATA_SUCCESS,\r\n payload: {\r\n queryRecords,\r\n },\r\n });\r\n if (queryRecords.length > 0) {\r\n dispatch(openReviewRecord(queryRecords[0]));\r\n dispatch(getLoadOptions());\r\n } else {\r\n dispatch(showModal(\"No-results\"));\r\n dispatch(clearFormFields());\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_TEAM_REVIEW_OPTIONS_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getRegETLTeamReview(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_TEAM_REVIEW_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/TeamReview/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_TEAM_REVIEW_DATA_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_TEAM_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_TEAM_REVIEW_DATA_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postRegETLTeamsReview(id, teams, reviewed) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_TEAMS_REVIEW_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n regETLId: id,\r\n teams: teams,\r\n reviewed: reviewed,\r\n }),\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/TeamsReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: SET_TEAMS_REVIEW_DATA_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_TEAMS_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: SET_TEAMS_REVIEW_DATA_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getRegEtl(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGETL_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/GetRegETL/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_REGETL_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGETL_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_REGETL_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postIdReviewed(id) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_ID_REVIEWED_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: id,\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/IdReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: SET_ID_REVIEWED_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_ID_REVIEWED_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: SET_ID_REVIEWED_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postLoadToNewReg(recordInfo) {\r\n return (dispatch) => {\r\n dispatch({ type: LOAD_TO_NEW_REG_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(getLoadToRegRequest(recordInfo.textValues)),\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/Load`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: LOAD_TO_NEW_REG_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((regId) => {\r\n if (regId) {\r\n dispatch({\r\n type: LOAD_TO_NEW_REG_SUCCESS,\r\n payload: {\r\n regId,\r\n },\r\n });\r\n\r\n return regId;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: LOAD_TO_NEW_REG_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postLoadToExistingReg(recordInfo, regInfo, mergeOptions) {\r\n return (dispatch) => {\r\n dispatch({ type: LOAD_TO_EXISTING_REG_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(\r\n getLoadToExistingRegRequest(\r\n recordInfo.textValues,\r\n regInfo,\r\n mergeOptions\r\n )\r\n ),\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/LoadExisting`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: LOAD_TO_EXISTING_REG_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((regId) => {\r\n if (regId) {\r\n dispatch({\r\n type: LOAD_TO_EXISTING_REG_SUCCESS,\r\n payload: {\r\n regId,\r\n },\r\n });\r\n\r\n return regId;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: LOAD_TO_EXISTING_REG_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getRegEtlKeywords(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGETL_KEYWORDS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/GetKeywords/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_REGETL_KEYWORDS_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGETL_KEYWORDS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_REGETL_KEYWORDS_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getRegEtlCitationMatch(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGETL_CITATIONMATCH_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/GetRegETLCitationMatch/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_REGETL_CITATIONMATCH_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGETL_CITATIONMATCH_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_REGETL_CITATIONMATCH_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getRegEtlClientSubjects(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGETL_CLIENT_SUBJECTS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/GetClientSubjects/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_REGETL_CLIENT_SUBJECTS_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGETL_CLIENT_SUBJECTS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_REGETL_CLIENT_SUBJECTS_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getHighlightedDocument(teams, keywords, path) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_HIGHLIGHTED_DOC_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/KeywordHits`);\r\n\r\n const params = {\r\n docpath: path,\r\n service: \"regs\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n if (teams && teams.length != 0) {\r\n teams.forEach((team) => {\r\n if (String(team).length > 0) {\r\n url.searchParams.append(\"teamId\", team);\r\n }\r\n });\r\n }\r\n\r\n if (keywords && keywords.length != 0) {\r\n keywords.forEach((keyword) =>\r\n url.searchParams.append(\"keywordId\", keyword)\r\n );\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.url;\r\n } else if (response.status === 302) {\r\n return response.url;\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_HIGHLIGHTED_DOC_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((url) => {\r\n if (url) {\r\n dispatch({\r\n type: GET_HIGHLIGHTED_DOC_SUCCESS,\r\n payload: {\r\n url,\r\n },\r\n });\r\n return url;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_HIGHLIGHTED_DOC_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function getRegTypes() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGETL_REGS_TYPE_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n fetch(`${globals.apiUrl}/RegETL/GetRegsTypes`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_REGETL_REGS_TYPE_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGETL_REGS_TYPE_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_REGETL_REGS_TYPE_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getReg(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGETL_REG_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RegETL/GetReg/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_REGETL_REG_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGETL_REG_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n\r\n return json;\r\n } else {\r\n dispatch({\r\n type: GET_REGETL_REG_FAILURE,\r\n json: \"Reg ID \" + id + \" is invalid!\",\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_REGETL_REG_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function clearFormFields() {\r\n return {\r\n type: CLEAR_FIELD_FOR_NO_RESULTS,\r\n };\r\n}\r\n\r\nexport function returnInitialState() {\r\n return {\r\n type: RETURN_REGS_RECORD_REVIEW_INITIAL_STATE,\r\n };\r\n}\r\n\r\nexport function setTitle(id, title){\r\n return (dispatch) => {\r\n dispatch({ type: SET_TITLE_EDIT, payload: { json: title } });\r\n };\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA]: (state, action) =>\r\n action.location.page !== pageIndex.regsNewRecordReview\r\n ? state\r\n : actionHandler(state, action),\r\n [RETURN_REGS_RECORD_REVIEW_INITIAL_STATE]: () => {\r\n return {\r\n ...initialState,\r\n };\r\n },\r\n [GET_REGS_NRR_QUERY_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_REGS_NRR_QUERY_DATA_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queriesWithParameters: json,\r\n queries: json.map((item) => {\r\n return {\r\n value: item.QueryId,\r\n label: item.QueryName,\r\n };\r\n }),\r\n },\r\n };\r\n },\r\n [GET_TEAM_REVIEW_OPTIONS_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_TEAM_REVIEW_OPTIONS_DATA_SUCCESS]: (state, action) => {\r\n const queryRecords = action.payload.queryRecords;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queryRecords,\r\n },\r\n };\r\n },\r\n [GET_TEAM_REVIEW_OPTIONS_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_TEAM_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_TEAM_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [GET_TEAM_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [SET_TEAMS_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_TEAMS_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [SET_TEAMS_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_QUERIES_LIST_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_REGETL_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_REGETL_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_REGETL_SUCCESS]: (state, action) => {\r\n const recordInfo = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n recordInfo: matchRecordInfo(recordInfo),\r\n iderReviewedInfo: matchIderInfo(recordInfo),\r\n },\r\n },\r\n };\r\n },\r\n [GET_INITIAL_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_INITIAL_DATA_COMPLETE]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n };\r\n },\r\n [REGS_NRR_OPEN_RECORD_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [OPEN_RECORD_SUCCESS]: (state, action) => {\r\n const currentIndex = state.renderData.queryRecords.findIndex(\r\n (record) => record === action.payload.regETLId\r\n );\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n currentRegETLId: action.payload.regETLId,\r\n navigation: {\r\n ...state.formDataValue.RNRR.navigation,\r\n textValues: {\r\n ...state.formDataValue.RNRR.navigation.textValues,\r\n currentRecord: currentIndex + 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [SET_ID_REVIEWED_SUCCESS]: (state, action) => {\r\n const iderInfo = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n iderReviewedInfo: matchIderInfo(iderInfo),\r\n },\r\n },\r\n };\r\n },\r\n [GET_REGETL_KEYWORDS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n recordKeywordHits: matchKeywordHits(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_REGETL_CLIENT_SUBJECTS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n recordClientSubjects: matchClientSubjects(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_HIGHLIGHTED_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_HIGHLIGHTED_DOC_SUCCESS]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_HIGHLIGHTED_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [LOAD_TO_NEW_REG_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [LOAD_TO_NEW_REG_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n recordInfo: {\r\n ...state.formDataValue.RNRR.recordInfo,\r\n textValues: {\r\n ...state.formDataValue.RNRR.recordInfo.textValues,\r\n regsId: [\r\n ...state.formDataValue.RNRR.recordInfo.textValues.regsId,\r\n action.payload.regId,\r\n ],\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [LOAD_TO_NEW_REG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [SET_TITLE_EDIT]: (state, action) => {\r\n const title = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n recordInfo: {\r\n ...state.formDataValue.RNRR.recordInfo,\r\n textValues: {\r\n ...state.formDataValue.RNRR.recordInfo.textValues,\r\n title,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [CLEAR_FIELD_FOR_NO_RESULTS]: (state) => {\r\n const query = state.renderData.queriesWithParameters.find(\r\n (query) => query.QueryId == state.formDataValue.RNRR.queryLine.radio.query\r\n );\r\n\r\n const {\r\n parametersSectionSelectables,\r\n sortParameters,\r\n sortFields,\r\n sortDirections,\r\n filterFields,\r\n } = populateSortAndSearchParams(query);\r\n\r\n return {\r\n ...initialState,\r\n disableEditing: true,\r\n renderData: {\r\n ...initialState.renderData,\r\n queriesWithParameters: state.renderData.queriesWithParameters,\r\n queries: state.renderData.queries,\r\n allRegions: state.renderData.allRegions,\r\n regions: state.renderData.regions,\r\n regionsList: state.renderData.regionsList,\r\n },\r\n formDataValue: {\r\n RNRR: {\r\n ...initialState.formDataValue.RNRR,\r\n queryLine: {\r\n ...state.formDataValue.RNRR.queryLine,\r\n },\r\n parametersSection: {\r\n ...state.formDataValue.RNRR.parametersSection,\r\n radio: parametersSectionSelectables,\r\n },\r\n sortParameters: {\r\n radio: sortParameters,\r\n fields: sortFields,\r\n },\r\n sortDirections: {\r\n radio: sortDirections,\r\n },\r\n filterParameters: {\r\n fields: filterFields,\r\n },\r\n settingsLine: {\r\n ...state.formDataValue.RNRR.settingsLine,\r\n radio: {\r\n ...state.formDataValue.RNRR.settingsLine.radio,\r\n autoAdvance:\r\n state.formDataValue.RNRR.settingsLine.radio.autoAdvance,\r\n autoUrl: state.formDataValue.RNRR.settingsLine.radio.autoUrl,\r\n extraInfoExpanded:\r\n state.formDataValue.RNRR.settingsLine.radio.extraInfoExpanded,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [GET_REG_LOAD_OPTIONS_SUCCESS]: (state, action) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n regsLoadOptions: action.payload.json,\r\n },\r\n };\r\n },\r\n [GET_REG_LOAD_OPTIONS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [LOAD_TO_EXISTING_REG_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [LOAD_TO_EXISTING_REG_SUCCESS]: (state, action) => {\r\n const regsId = [...state.formDataValue.RNRR.recordInfo.textValues.regsId];\r\n if (!regsId.find((id) => id === action.payload.regId)) {\r\n regsId.push(action.payload.regId);\r\n }\r\n\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n recordInfo: {\r\n ...state.formDataValue.RNRR.recordInfo,\r\n textValues: {\r\n ...state.formDataValue.RNRR.recordInfo.textValues,\r\n regsId,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [LOAD_TO_EXISTING_REG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_REGETL_REG_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_REGETL_REG_SUCCESS]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_REGETL_REG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_REGETL_CITATIONMATCH_SUCCESS]: (state, action) => {\r\n const matchedRegs = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n RNRR: {\r\n ...state.formDataValue.RNRR,\r\n recordSimilarRegs: matchSimilarRegs(matchedRegs),\r\n },\r\n },\r\n };\r\n },\r\n [GET_REGETL_CITATIONMATCH_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n};\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: \"\",\r\n isFetchingData: false,\r\n renderData: {\r\n queryRecords: [],\r\n currentRecord: {},\r\n recordIndex: 0,\r\n regsLoadOptions: {},\r\n },\r\n formDataValue: {\r\n RNRR: {\r\n settingsLine: {\r\n radio: {\r\n autoAdvance: true,\r\n autoUrl: false,\r\n extraInfoExpanded: false,\r\n },\r\n textValues: {\r\n regsId: \"\",\r\n },\r\n },\r\n queryLine: {\r\n radio: {\r\n query: \"Select Query\",\r\n },\r\n textValues: {\r\n keywordSearch: \"\",\r\n },\r\n selected: [],\r\n },\r\n parametersSection: {\r\n textValues: {},\r\n dateTime: {},\r\n radio: [],\r\n },\r\n sortParameters: {\r\n radio: [],\r\n fields: [],\r\n },\r\n sortDirections: {\r\n radio: [],\r\n },\r\n filterParameters: {\r\n fields: [],\r\n },\r\n navigation: {\r\n textValues: {\r\n currentRecord: \"1\",\r\n },\r\n },\r\n reviewRecords: matchReviewRows([]),\r\n recordInfo: matchRecordInfo({ Tags: [], RelatedRegs: [] }),\r\n iderReviewedInfo: matchIderInfo({}),\r\n recordKeywordHits: matchKeywordHits([]),\r\n recordClientSubjects: matchClientSubjects([]),\r\n recordSimilarRegs: matchSimilarRegs([]),\r\n otherDocs: {\r\n 0: {\r\n textValues: {\r\n urlIdDocs: \"\",\r\n urlDescription: \"\",\r\n },\r\n radio: {\r\n docsType: \"versions\",\r\n },\r\n },\r\n },\r\n clients: {\r\n selected: [],\r\n },\r\n notLoadedClients: {\r\n selected: [],\r\n },\r\n history: {\r\n textValues: {\r\n history: \"\",\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default function regsNewRecordReviewReducer(\r\n state = initialState,\r\n action\r\n) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/regsNewRecordReviewFormData.js","import moment from \"moment-timezone\";\r\nimport { globals, page as pageIndex } from \"../../globals\";\r\nimport { logOut } from \"./auth\";\r\nimport { formatDate } from \"./formatDate\";\r\nimport {\r\n GET_CLIENTS_FAILURE,\r\n GET_CLIENT_SUBJECT_INFO_FAILURE,\r\n GET_GROUPING_FAILURE,\r\n GET_SUBJECTS_FAILURE,\r\n POST_CLIENT_SUBJECT_TAG_FAILURE,\r\n POST_CLIENT_SUBJECT_TAG_SUCCESS\r\n} from \"./groupings\";\r\nimport { populateSortAndSearchParams } from \"./helpers\";\r\nimport { showModal } from \"./modal\";\r\nimport { clearHistory, saveInitialValues } from \"./undo\";\r\nimport { UPDATE_DATA, actionHandler } from \"./updateData\";\r\n\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const STATUS_REVIEW_OPEN_RECORD_START =\r\n \"STATUS_REVIEW_OPEN_RECORD_START\";\r\nexport const GET_STATUS_REVIEW_QUERIES_LIST_START =\r\n \"GET_STATUS_REVIEW_QUERIES_LIST_START\";\r\nexport const GET_STATUS_REVIEW_QUERY_DATA_START =\r\n \"GET_STATUS_REVIEW_QUERY_DATA_START\";\r\nexport const GET_STATUS_REVIEW_QUERY_DATA_SUCCESS =\r\n \"GET_STATUS_REVIEW_QUERY_DATA_SUCCESS\";\r\nexport const GET_STATUS_REVIEW_QUERY_DATA_FAILURE =\r\n \"GET_STATUS_REVIEW_QUERY_DATA_FAILURE\";\r\nexport const SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_START =\r\n \"SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_START\";\r\nexport const SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_SUCCESS =\r\n \"SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_SUCCESS\";\r\nexport const SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE =\r\n \"SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE\";\r\nexport const POST_LEGIS_TRACK_DATA_START = \"POST_LEGIS_TRACK_DATA_START\";\r\nexport const POST_LEGIS_TRACK_DATA_SUCCESS = \"POST_LEGIS_TRACK_DATA_SUCCESS\";\r\nexport const POST_LEGIS_TRACK_DATA_FAILURE = \"POST_LEGIS_TRACK_DATA_FAILURE\";\r\nexport const PUT_LEGIS_SUMMARY_START = \"PUT_LEGIS_SUMMARY_START\";\r\nexport const PUT_LEGIS_SUMMARY_SUCCESS = \"PUT_LEGIS_SUMMARY_SUCCESS\";\r\nexport const PUT_LEGIS_SUMMARY_FAILURE = \"PUT_LEGIS_SUMMARY_FAILURE\";\r\nexport const PUT_CLIENT_ACTION_START = \"PUT_CLIENT_ACTION_START\";\r\nexport const PUT_CLIENT_ACTION_SUCCESS = \"PUT_CLIENT_ACTION_SUCCESS\";\r\nexport const PUT_CLIENT_ACTION_FAILURE = \"PUT_CLIENT_ACTION_FAILURE\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_START =\r\n \"PUT_CLIENT_ACTION_COMMENT_START\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_SUCCESS =\r\n \"PUT_CLIENT_ACTION_COMMENT_SUCCESS\";\r\nexport const PUT_CLIENT_ACTION_COMMENT_FAILURE =\r\n \"PUT_CLIENT_ACTION_COMMENT_FAILURE\";\r\nexport const GET_STATUS_REVIEW_BASE_START = \"GET_STATUS_REVIEW_BASE_START\";\r\nexport const GET_STATUS_REVIEW_BASE_SUCCESS = \"GET_STATUS_REVIEW_BASE_SUCCESS\";\r\nexport const GET_STATUS_REVIEW_BASE_FAILURE = \"GET_STATUS_REVIEW_BASE_FAILURE\";\r\nexport const GET_LEGIS_TRACK_KEYWORDS_START = \"GET_LEGIS_TRACK_KEYWORDS_START\";\r\nexport const GET_LEGIS_TRACK_KEYWORDS_SUCCESS =\r\n \"GET_LEGIS_TRACK_KEYWORDS_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_KEYWORDS_FAILURE =\r\n \"GET_LEGIS_TRACK_KEYWORDS_FAILURE\";\r\nexport const GET_LEGIS_TRACK_CLIENT_SUBJECTS_START =\r\n \"GET_LEGIS_TRACK_CLIENT_SUBJECTS_START\";\r\nexport const GET_LEGIS_TRACK_CLIENT_SUBJECTS_SUCCESS =\r\n \"GET_LEGIS_TRACK_CLIENT_SUBJECTS_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE =\r\n \"GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE\";\r\nexport const GET_LEGIS_TRACK_LEGIS_TYPE_START =\r\n \"GET_LEGIS_TRACK_LEGIS_TYPE_START\";\r\nexport const GET_LEGIS_TRACK_LEGIS_TYPE_SUCCESS =\r\n \"GET_LEGIS_TRACK_LEGIS_TYPE_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_LEGIS_TYPE_FAILURE =\r\n \"GET_LEGIS_TRACK_LEGIS_TYPE_FAILURE\";\r\nexport const GET_LEGIS_TRACK_LOAD_OPTIONS_START =\r\n \"GET_LEGIS_TRACK_LOAD_OPTIONS_START\";\r\nexport const GET_LEGIS_TRACK_LOAD_OPTIONS_FAILURE =\r\n \"GET_LEGIS_TRACK_LOAD_OPTIONS_FAILURE\";\r\nexport const CLEAR_STATUSREVIEW_FIELD_FOR_NO_RESULTS =\r\n \"CLEAR_STATUSREVIEW_FIELD_FOR_NO_RESULTS\";\r\nexport const RETURN_LEGIS_TRACK_INITIAL_STATE =\r\n \"RETURN_LEGIS_TRACK_INITIAL_STATE\";\r\nexport const OPEN_LEGIS_TRACK_RECORD_SUCCESS =\r\n \"OPEN_LEGIS_TRACK_RECORD_SUCCESS\";\r\nexport const SET_LEGIS_TRACK_ID_REVIEWED_START =\r\n \"SET_LEGIS_TRACK_ID_REVIEWED_START\";\r\nexport const SET_LEGIS_TRACK_ID_REVIEWED_FAILURE =\r\n \"SET_LEGIS_TRACK_ID_REVIEWED_FAILURE\";\r\nexport const SET_LEGIS_TRACK_ID_REVIEWED_SUCCESS =\r\n \"SET_LEGIS_TRACK_ID_REVIEWED_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_HIGHLIGHTED_DOC_START =\r\n \"GET_LEGIS_TRACK_HIGHLIGHTED_DOC_START\";\r\nexport const GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE =\r\n \"GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE\";\r\nexport const GET_LEGIS_TRACK_HIGHLIGHTED_DOC_SUCCESS =\r\n \"GET_LEGIS_TRACK_HIGHLIGHTED_DOC_SUCCESS\";\r\nexport const GET_LEGIS_TRACK_INITIAL_DATA_START =\r\n \"GET_LEGIS_TRACK_INITIAL_DATA_START\";\r\nexport const GET_LEGIS_TRACK_INITIAL_DATA_COMPLETE =\r\n \"GET_LEGIS_TRACK_INITIAL_DATA_COMPLETE\";\r\nexport const GET_QC_KEYWORD_MISSING_START = \"GET_QC_KEYWORD_MISSING_START\";\r\nexport const GET_QC_KEYWORD_MISSING_SUCCESS = \"GET_QC_KEYWORD_MISSING_SUCCESS\";\r\nexport const GET_QC_KEYWORD_MISSING_FAILURE = \"GET_QC_KEYWORD_MISSING_FAILURE\";\r\nexport const GET_QC_KEYWORD_REVIEW_START = \"GET_QC_KEYWORD_REVIEW_START\";\r\nexport const GET_QC_KEYWORD_REVIEW_SUCCESS = \"GET_QC_KEYWORD_REVIEW_SUCCESS\";\r\nexport const GET_QC_KEYWORD_REVIEW_FAILURE = \"GET_QC_KEYWORD_REVIEW_FAILURE\";\r\nexport const GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_START =\r\n \"GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_START\";\r\nexport const GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE =\r\n \"GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE\";\r\nexport const GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_SUCCESS =\r\n \"GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_SUCCESS\";\r\nexport const SET_QC_KEYWORD_REVIEW_START = \"SET_QC_KEYWORD_REVIEW_START\";\r\nexport const SET_QC_KEYWORD_REVIEW_FAILURE = \"SET_QC_KEYWORD_REVIEW_FAILURE\";\r\nexport const SET_QC_KEYWORD_REVIEW_SUCCESS = \"SET_QC_KEYWORD_REVIEW_SUCCESS\";\r\nexport const DELETE_LEGIS_DOC_START = \"DELETE_LEGIS_DOC_START\";\r\nexport const DELETE_LEGIS_DOC_SUCCESS = \"DELETE_LEGIS_DOC_SUCCESS\";\r\nexport const DELETE_LEGIS_DOC_FAILURE = \"DELETE_LEGIS_DOC_FAILURE\";\r\nexport const ADD_LEGIS_DOC_START = \"ADD_LEGIS_DOC_START\";\r\nexport const ADD_LEGIS_DOC_SUCCESS = \"ADD_LEGIS_DOC_SUCCESS\";\r\nexport const ADD_LEGIS_DOC_FAILURE = \"ADD_LEGIS_DOC_FAILURE\";\r\nexport const DELETE_HEARING_START = \"DELETE_HEARING_START\";\r\nexport const DELETE_HEARING_SUCCESS = \"DELETE_HEARING_SUCCESS\";\r\nexport const DELETE_HEARING_FAILURE = \"DELETE_HEARING_FAILURE\";\r\nexport const ADD_HEARING_START = \"ADD_HEARING_START\";\r\nexport const ADD_HEARING_SUCCESS = \"ADD_HEARING_SUCCESS\";\r\nexport const ADD_HEARING_FAILURE = \"ADD_HEARING_FAILURE\";\r\nexport const GET_LEGIS_DOC_TYPES_START = \"GET_LEGIS_DOC_TYPES_START\";\r\nexport const GET_LEGIS_DOC_TYPES_FAILURE = \"GET_LEGIS_DOC_TYPES_FAILURE\";\r\nexport const GET_LEGIS_DOC_TYPES_SUCCESS = \"GET_LEGIS_DOC_TYPES_SUCCESS\";\r\n\r\nexport const DELETE_STATUS_CLIENT_SUBJECT_TAG_START =\r\n \"DELETE_STATUS_CLIENT_SUBJECT_TAG_START\";\r\nexport const DELETE_STATUS_CLIENT_SUBJECT_TAG_SUCCESS =\r\n \"DELETE_STATUS_CLIENT_SUBJECT_TAG_SUCCESS\";\r\nexport const DELETE_STATUS_CLIENT_SUBJECT_TAG_FAILURE =\r\n \"DELETE_STATUS_CLIENT_SUBJECT_TAG_FAILURE\";\r\nexport const PUT_STATUS_CLIENT_SUBJECT_TAG_START = \"PUT_STATUS_CLIENT_SUBJECT_TAG_START\";\r\nexport const PUT_STATUS_CLIENT_SUBJECT_TAG_SUCCESS = \"PUT_STATUS_CLIENT_SUBJECT_TAG_SUCCESS\";\r\nexport const PUT_STATUS_CLIENT_SUBJECT_TAG_FAILURE = \"PUT_STATUS_CLIENT_SUBJECT_TAG_FAILURE\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_START =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_START\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS\";\r\nexport const UPDATE_SUBSCRIBE_DATE_ALL_FAILURE =\r\n \"UPDATE_SUBSCRIBE_DATE_ALL_FAILURE\";\r\n\r\n// export const GET_STATUSREVIEW_HISTORY_START = \"GET_STATUSREVIEW_HISTORY_START\";\r\n// export const GET_STATUSREVIEW_HISTORY_FAILURE = \"GET_STATUSREVIEW_HISTORY_FAILURE\";\r\n// export const GET_STATUSREVIEW_HISTORY_SUCCESS = \"GET_STATUSREVIEW_HISTORY_SUCCESS\";\r\n\r\nexport const POST_STATUSREVIEW_UPDATE_START = \"POST_STATUSREVIEW_UPDATE_START\";\r\nexport const POST_STATUSREVIEW_UPDATE_SUCCESS = \"POST_STATUSREVIEW_UPDATE_SUCCESS\";\r\nexport const POST_STATUSREVIEW_UPDATE_FAILURE = \"POST_STATUSREVIEW_UPDATE_FAILURE\";\r\n\r\nexport const POST_HISTORYREVIEW_UPDATE_START = \"POST_HISTORYREVIEW_UPDATE_START\";\r\nexport const POST_HISTORYREVIEW_UPDATE_SUCCESS = \"POST_HISTORYREVIEW_UPDATE_SUCCESS \";\r\nexport const POST_HISTORYREVIEW_UPDATE_FAILURE = \"POST_HISTORYREVIEW_UPDATE_FAILURE\";\r\n\r\nexport const GET_STATUSREVIEW_HISTORY_LOG_START = \"GET_STATUSREVIEW_HISTORY_LOG_START\";\r\nexport const GET_STATUSREVIEW_HISTORY_LOG_SUCCESS = \"GET_STATUSREVIEW_HISTORY_LOG_SUCCESS\";\r\nexport const GET_STATUSREVIEW_HISTORY_LOG_FAILURE = \"GET_STATUSREVIEW_HISTORY_LOG_FAILURE\";\r\n\r\nexport const GET_STATUSREVIEW_SPR_RESULTS_START = \"GET_STATUSREVIEW_SPR_RESULTS_START\";\r\nexport const GET_STATUSREVIEW_SPR_RESULTS_SUCCESS = \"GET_STATUSREVIEW_SPR_RESULTS_SUCCESS\";\r\nexport const GET_STATUSREVIEW_SPR_RESULTS_FAILURE = \"GET_STATUSREVIEW_SPR_RESULTS_FAILURE\";\r\n\r\nexport const PUT_LEGIS_MANAGEMENT_COMMENT_START =\r\n \"PUT_LEGIS_MANAGEMENT_COMMENT_START\";\r\nexport const PUT_LEGIS_MANAGEMENT_COMMENT_SUCCESS =\r\n \"PUT_LEGIS_MANAGEMENT_COMMENT_SUCCESS\";\r\nexport const PUT_LEGIS_MANAGEMENT_COMMENT_FAILURE =\r\n \"PUT_LEGIS_MANAGEMENT_COMMENT_FAILURE\";\r\n\r\nconst headers = {\r\n \"Content-Type\": \"application/json\",\r\n};\r\n\r\nexport function getStatusReviewInitialState() {\r\n return initialState;\r\n}\r\n\r\nexport function getEasternDateFromString(date) {\r\n return date && date !== \"\"\r\n ? moment.tz(date, \"YYYY-MM-DDTHH:mm:ss\", \"America/New_York\")\r\n : null;\r\n}\r\n\r\nexport function getEasternDateStringForAPI(date) {\r\n return date && date !== \"\"\r\n ? moment.tz(date, \"YYYY-MM-DDTHH:mm:ss\", \"America/New_York\")\r\n .format(\"YYYY-MM-DDTHH:mm:ss\") : null;\r\n}\r\n\r\nfunction formatDateShort(date) {\r\n return date && date !== \"\" ? moment(date).format(\"MM/DD/YYYY\") : \"\";\r\n}\r\n\r\nfunction matchReviewRows(rows) {\r\n return rows.map((item) => {\r\n return {\r\n textValues: {\r\n team: item.Team || \"\",\r\n assignedBy: item.AssignedBy || \"\",\r\n assignedDate: formatDate(item.AssignedDate),\r\n reviewedBy: item.ReviewedBy || \"\",\r\n reviewedDate: formatDate(item.ReviewedDate),\r\n type: item.FlagTypeDesc,\r\n flag: String(item.FlagType),\r\n },\r\n isReviewed: item.ReviewedBy !== null,\r\n };\r\n });\r\n}\r\n\r\nfunction matchRecordInfo(info) {\r\n const recordInfo = {\r\n raw: { ...info },\r\n textValues: {\r\n id: info.RawFileId || \"\",\r\n legisId: info.LegisId,\r\n introDate: formatDateShort(info.IntroDate),\r\n actionDate: getEasternDateFromString(info.ActionDate),\r\n loadDate: getEasternDateFromString(info.LoadDate),\r\n historyReviewed: info.HistoryReviewed,\r\n summary: info.Summary || \"\",\r\n rawSummary: info.RawSummary || \"\",\r\n rawSummaryDate: formatDate(info.RawSummaryChangedDate),\r\n\r\n // History Compare\r\n history: info.History || \"\",\r\n historyOld: info.HistoryOld || \"\",\r\n\r\n supplementalHistory: info.SupplementalHistory || \"\",\r\n historyRemarks: info.HistoryRemarks || \"\",\r\n historyRemarksUpdated: formatDate(info.RemarksUpdated),\r\n historyUpdated: formatDate(info.HistoryUpdated),\r\n\r\n effectiveModifiedDate: formatDate(info.EffectiveModifiedDate),\r\n effectiveDate: getEasternDateFromString(info.EffectiveDate),\r\n publicLawNumber: info.PublicActNo || \"\",\r\n\r\n // General\r\n year: info.Year || \"\",\r\n oldLoadDate: getEasternDateFromString(info.OldLoadDate),\r\n recordCreated: formatDate(info.CreateDate),\r\n lastUpdateToRecord: formatDate(info.LastUpdateTS),\r\n lastUpdateUserId: info.LastUpdateId || \"\",\r\n createUserId: info.CreateUserID || \"\",\r\n carryOver: info.CarryOver_Prefiled || \"\",\r\n country: info.CountryCode || \"\",\r\n state: info.State || \"\",\r\n billType: info.BillType || \"\",\r\n billNumber: info.BillNumber || \"\",\r\n session: info.Session || \"\",\r\n companion: info.Companion || \"\",\r\n url: info.Url || \"\",\r\n sspath: info.SSPath || \"\",\r\n versionUrl: info.RawFileId\r\n ? `https://services.statescape.com/search/billversions.aspx?rid=${info.RawFileId}`\r\n : \"\",\r\n rejectionCause: info.RejectionCause || \"\",\r\n ruleResults: [],\r\n serverTZOffset: info.TZOffset || -300.0,\r\n },\r\n radio: {\r\n summaryUpdating: info.SummaryUpdating || \"\",\r\n hideRawdata: !!info.HideRawdata,\r\n rawHistoryLast: !!info.RawHistoryLast,\r\n },\r\n };\r\n // Action flags handled in matchSubHistoryData (PassedHouse, PassedSenate, etc)\r\n return matchSubHistoryData(recordInfo, info);\r\n}\r\n\r\nfunction matchSubHistoryData(recordInfo, info) {\r\n return {\r\n ...recordInfo,\r\n textValues: {\r\n ...recordInfo.textValues,\r\n supplementalHistory: info.SupplementalHistory || \"\",\r\n historyRemarks: info.HistoryRemarks || \"\",\r\n historyRemarksUpdated: formatDate(info.RemarksUpdated),\r\n effectiveModifiedDate: formatDate(info.EffectiveModifiedDate),\r\n effectiveDate: getEasternDateFromString(info.EffectiveDate),\r\n publicLawNumber: info.PublicActNo || \"\",\r\n },\r\n currentLegisProgress: {\r\n boolValues: {\r\n // Action flags\r\n PassedHouseCommittee: info.PassedHouseCommittee,\r\n PassedSenateCommittee: info.PassedSenateCommittee,\r\n PassedHouse: info.PassedHouse,\r\n PassedSenate: info.PassedSenate,\r\n LegisAgreed: info.LegisAgreed,\r\n ApprovedEnacted: info.ApprovedEnacted,\r\n Vetoed: info.Vetoed,\r\n Active: info.Active,\r\n DiedKilled: info.DiedKilled,\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction matchDocuments(documents) {\r\n return documents\r\n ? documents.map((doc) => {\r\n return {\r\n url: doc.Url,\r\n description: doc.Description,\r\n urlType: doc.Type,\r\n id: doc.Id,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchHearings(hearings) {\r\n return hearings\r\n ? hearings.map((hearing) => {\r\n return {\r\n id: hearing.Id,\r\n hearingDesc: hearing.HearingDesc,\r\n hearingDate: formatDate(hearing.HearingDate),\r\n url: hearing.Url,\r\n addedBy: hearing.AddedBy,\r\n auto: hearing.AutoManaged,\r\n urlType: \"\",\r\n warning: hearing.Warning,\r\n deletable: !hearing.AutoManaged,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchClientSubjectTags(clientSubjectTags) {\r\n return clientSubjectTags\r\n ? clientSubjectTags.map((clientSubjectTag) => {\r\n return matchClientSubjectTag(clientSubjectTag);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchClientSubjectTag(clientSubjectTag) {\r\n return {\r\n SubjectId: clientSubjectTag.SubjectId,\r\n Client: clientSubjectTag.Client,\r\n Subject: clientSubjectTag.Subject,\r\n DataType: clientSubjectTag.DataType,\r\n RecordId: clientSubjectTag.RecordId,\r\n SubscribeDate: formatDate(clientSubjectTag.SubscribeDate),\r\n CreateUser: clientSubjectTag.CreateUser,\r\n OriginalCreateDate: formatDate(clientSubjectTag.OriginalCreateDate),\r\n LastUpdateDate: formatDate(clientSubjectTag.LastUpdateDate),\r\n LastUpdateUser: clientSubjectTag.LastUpdateUser,\r\n IssueId: clientSubjectTag.IssueId,\r\n EmailAlerts: clientSubjectTag.EmailAlerts,\r\n Deleted: clientSubjectTag.Deleted,\r\n Autoload: clientSubjectTag.Autoload,\r\n DeletedByAnalyst: clientSubjectTag.DeletedByAnalyst,\r\n CanEdit: clientSubjectTag.CanEdit,\r\n };\r\n}\r\n\r\nfunction matchLegisDocTypes(legisDocTypes) {\r\n return legisDocTypes\r\n ? legisDocTypes\r\n .filter((docType) => !docType.HideAnalystAdd)\r\n .map((docType) => {\r\n return {\r\n label: docType.DisplayName,\r\n value: docType.DocType,\r\n };\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchNonDeletableDocTypes(legisDocTypes) {\r\n return legisDocTypes\r\n ? legisDocTypes.filter((docType) => docType.HideAnalystAdd)\r\n : [];\r\n}\r\n\r\nfunction matchClientActions(info) {\r\n return info.ClientActions\r\n ? info.ClientActions.map((action) => {\r\n return matchClientAction(action);\r\n })\r\n : [];\r\n}\r\n\r\nfunction matchClientAction(action) {\r\n return {\r\n textValues: {\r\n stsReviewer: action.StateScapeCheckedBy || \"\",\r\n reviewDate: formatDate(action.StateScapeCheckedDate),\r\n stsComment: action.StateScapeComments || \"\",\r\n client: action.Client || \"\",\r\n loginId: action.LogonId || \"\",\r\n action: action.Action || \"\",\r\n changedDate: formatDate(action.ChangeDate),\r\n userEmail: action.Email || \"\",\r\n actionDetails: action.ActionDetail || \"\",\r\n clientComment: action.ClientComments || \"\",\r\n clientActionId: action.ClientActionId || \"\",\r\n },\r\n };\r\n}\r\n\r\nfunction matchIderInfo(info) {\r\n return {\r\n textValues: {\r\n ider: info.IDer || \"\",\r\n iderReviewed: info.IDerReviewed || \"\",\r\n iderReviewedDate: formatDate(info.IDerReviewedDate),\r\n },\r\n };\r\n}\r\n\r\nfunction matchKeywordHits(hits) {\r\n return hits.map((hit) => {\r\n return {\r\n textValues: {\r\n team: hit.Team || \"\",\r\n client: hit.Client || \"\",\r\n grouping: hit.Subject || \"\",\r\n keyword: hit.Keyword || \"\",\r\n hits: hit.Hits,\r\n foundDate: formatDate(hit.FoundDate),\r\n changeDate: formatDate(hit.ChangeDate),\r\n oldHits: hit.OldHits,\r\n keywordId: hit.KeywordId,\r\n taggingInstructions: hit.GroupTaggingInstructions || \"\",\r\n description: hit.GroupDescription || \"\",\r\n overview: hit.GroupOverview || \"\",\r\n boolPhrase: hit.BoolPhrase,\r\n groupingId: hit.GroupingId,\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchClientSubjects(clients) {\r\n return clients.map((client) => {\r\n return {\r\n textValues: {\r\n deleted: client.DeleteIt || false,\r\n client: client.ClientName || \"\",\r\n clientDescription: client.ClientDescription || \"\",\r\n subject: client.Subject || \"\",\r\n subjectDescription: client.SubjectDescription || \"\",\r\n changeDate: formatDate(client.CreateDate),\r\n user: client.CreateUserId || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchLegisHistory(history) {\r\n const actionFlags = [\r\n 'PassedHouseCommittee',\r\n 'PassedSenateCommittee',\r\n 'PassedHouse',\r\n 'PassedSenate',\r\n 'LegisAgreed',\r\n 'ApprovedEnacted',\r\n 'Vetoed',\r\n 'Active',\r\n 'DiedKilled',\r\n ]\r\n let obj = {\r\n boolValues: history,\r\n selected: Object.keys(history).filter(\r\n (key) => history[key] && typeof history[key] == \"boolean\"\r\n ),\r\n initialSelected: Object.keys(history).filter(\r\n (key) => history[key] && typeof history[key] == \"boolean\"\r\n ),\r\n initialValues: {},\r\n };\r\n actionFlags.forEach(function(i){\r\n obj.initialValues[i] = history[i] == true;\r\n })\r\n return obj;\r\n}\r\n\r\nfunction matchQCKeywordReview(keywordsReview) {\r\n return keywordsReview.map((keywordReview) => {\r\n return {\r\n textValues: {\r\n reviewDate: formatDate(keywordReview.ReviewDate),\r\n reviewer: keywordReview.Reviewer || \"\",\r\n client: keywordReview.Client || \"\",\r\n subject: keywordReview.Subject || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchQCKeywordMissing(keywordsMissing) {\r\n return keywordsMissing.map((keywordMissing) => {\r\n return {\r\n textValues: {\r\n client: keywordMissing.Client || \"\",\r\n subject: keywordMissing.Subject || \"\",\r\n team: keywordMissing.Team || \"\",\r\n id: keywordMissing.Id || \"\",\r\n reviewed: keywordMissing.Reviewed || \"\",\r\n },\r\n };\r\n });\r\n}\r\n\r\nfunction matchHistoryLog(historyLog) {\r\n return historyLog.map((log) => {\r\n return {\r\n HistoryDate: log.CreateDate,\r\n User: log.UserName,\r\n HistoryAction: log.Activity,\r\n };\r\n });\r\n}\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\n\r\nconst getReviewData = (legisId) => {\r\n return (dispatch) =>\r\n dispatch(getStatusReviewBase(legisId, dispatch)).then((recordInfo) => {\r\n const rawFileId = recordInfo.textValues.id;\r\n Promise.all([\r\n dispatch(getLegisKeywords(rawFileId)),\r\n dispatch(getLegisClientSubjects(rawFileId)),\r\n dispatch(getLegisHistoryLog(legisId)),\r\n dispatch(getLegisSPRResults(rawFileId)),\r\n ]);\r\n });\r\n};\r\n\r\nexport function openReviewRecord(legisId) {\r\n return (dispatch) => {\r\n dispatch({ type: STATUS_REVIEW_OPEN_RECORD_START });\r\n dispatch(getReviewData(legisId, dispatch)).finally(() => {\r\n dispatch({\r\n type: OPEN_LEGIS_TRACK_RECORD_SUCCESS,\r\n payload: { legisId },\r\n });\r\n });\r\n };\r\n}\r\n\r\nconst getInitialData = () => {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch(getLegisTrackInternalQueryData()),\r\n dispatch(getLegisDocTypes()),\r\n ]);\r\n};\r\n\r\nexport function loadInitialData() {\r\n return (dispatch) =>\r\n Promise.all([\r\n dispatch({ type: GET_LEGIS_TRACK_INITIAL_DATA_START }),\r\n dispatch(getInitialData()).finally(() => {\r\n dispatch({ type: GET_LEGIS_TRACK_INITIAL_DATA_COMPLETE });\r\n }),\r\n ]);\r\n}\r\n\r\nexport function getLegisTrackInternalQueryData() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_STATUS_REVIEW_QUERY_DATA_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/statusreviewqueue`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_STATUS_REVIEW_QUERY_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_STATUS_REVIEW_QUERY_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: GET_STATUS_REVIEW_QUERY_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postStatusReviewQueue(legisUrlsParameters) {\r\n return (dispatch) => {\r\n dispatch({ type: POST_LEGIS_TRACK_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(legisUrlsParameters),\r\n };\r\n return fetch(`${globals.apiUrl}/statusreviewqueue`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: POST_LEGIS_TRACK_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json && json.result) {\r\n dispatch({\r\n type: POST_LEGIS_TRACK_DATA_SUCCESS,\r\n payload: {\r\n json: json.result,\r\n },\r\n });\r\n if (json.result.length > 0) {\r\n dispatch(openReviewRecord(json.result[0]));\r\n } else {\r\n dispatch(showModal(\"No-results\"));\r\n dispatch(clearFormFields());\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: POST_LEGIS_TRACK_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putLegisSummary(summaryData) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_LEGIS_SUMMARY_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(summaryData),\r\n };\r\n return fetch(`${globals.apiUrl}/legissummary`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_LEGIS_SUMMARY_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_LEGIS_SUMMARY_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_LEGIS_SUMMARY_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientAction(clientActionId) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_CLIENT_ACTION_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({ ClientActionId: clientActionId }),\r\n };\r\n return fetch(`${globals.apiUrl}/clientaction`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientActionComment(clientAction) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_CLIENT_ACTION_COMMENT_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(clientAction),\r\n };\r\n return fetch(`${globals.apiUrl}/clientactioncomment`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_CLIENT_ACTION_COMMENT_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postLegisTeamsReview(id, teams, reviewed, flagType) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n legisId: id,\r\n team: teams[0],\r\n reviewed: reviewed,\r\n flagType: flagType,\r\n }),\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/TeamReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_SUCCESS,\r\n payload: {\r\n json,\r\n id,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getStatusReviewBase(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_STATUS_REVIEW_BASE_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/statusreview/getdata/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_STATUS_REVIEW_BASE_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n const recordInfo = matchRecordInfo(json);\r\n const clientActions = matchClientActions(json);\r\n const documents = matchDocuments(json.Documents);\r\n const hearings = matchHearings(json.Hearings);\r\n const clientSubjectTags = matchClientSubjectTags(json.ClientSubjects);\r\n const currentLegisProgress = matchLegisHistory(recordInfo.currentLegisProgress.boolValues);\r\n dispatch({\r\n type: GET_STATUS_REVIEW_BASE_SUCCESS,\r\n payload: {\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n clientSubjectTags,\r\n hearings,\r\n currentLegisProgress\r\n },\r\n });\r\n dispatch(clearHistory(pageIndex.statusReview));\r\n dispatch(\r\n saveInitialValues(pageIndex.statusReview, {\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n currentLegisProgress,\r\n hearings,\r\n })\r\n );\r\n\r\n return recordInfo;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_STATUS_REVIEW_BASE_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function postIdReviewed(id) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_LEGIS_TRACK_ID_REVIEWED_START });\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: id,\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/IdReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: SET_LEGIS_TRACK_ID_REVIEWED_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SET_LEGIS_TRACK_ID_REVIEWED_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: SET_LEGIS_TRACK_ID_REVIEWED_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisKeywords(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_KEYWORDS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetKeywords/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_LEGIS_TRACK_KEYWORDS_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_KEYWORDS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_LEGIS_TRACK_KEYWORDS_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisClientSubjects(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_CLIENT_SUBJECTS_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetClientSubjects/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_CLIENT_SUBJECTS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getQCKeywordReview(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QC_KEYWORD_REVIEW_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetQCKeywordReview/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_QC_KEYWORD_REVIEW_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getQCKeywordMissing(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_QC_KEYWORD_MISSING_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n return fetch(`${globals.apiUrl}/RawFile/GetQCKeywordMissing/${id}`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_QC_KEYWORD_MISSING_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getSubjectGroupList(client, subject) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/SubjectGroupList`);\r\n\r\n const params = {\r\n client,\r\n subject,\r\n searchType: \"Legislation\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getHighlightedDocument(teams, keywords, path) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_TRACK_HIGHLIGHTED_DOC_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/KeywordHits`);\r\n\r\n const params = {\r\n docpath: path,\r\n service: \"legis\",\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n if (teams && teams.length != 0) {\r\n teams.forEach((team) => {\r\n if (String(team).length > 0) {\r\n url.searchParams.append(\"teamId\", team);\r\n }\r\n });\r\n }\r\n\r\n if (keywords && keywords.length != 0) {\r\n keywords.forEach((keyword) =>\r\n url.searchParams.append(\"keywordId\", keyword)\r\n );\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.url;\r\n } else if (response.status === 302) {\r\n return response.url;\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((url) => {\r\n if (url) {\r\n dispatch({\r\n type: GET_LEGIS_TRACK_HIGHLIGHTED_DOC_SUCCESS,\r\n payload: {\r\n url,\r\n },\r\n });\r\n return url;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\nexport function postQCKeywordReview(rawfileId, team, customName) {\r\n return (dispatch) => {\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_START });\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({ rawfileId, team, customName }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/RawFile/QCKeywordReview`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((success) => {\r\n return success;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: SET_QC_KEYWORD_REVIEW_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteLegisDocument(docId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_LEGIS_DOC_START });\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/legisdoc/${docId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_LEGIS_DOC_SUCCESS,\r\n payload: {\r\n docId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_LEGIS_DOC_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: DELETE_LEGIS_DOC_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function addLegisDocument(document) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_LEGIS_DOC_START });\r\n\r\n const { type, url, description, linkedRecord } = document;\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n Type: type,\r\n Url: url,\r\n Description: description,\r\n RawFileId: linkedRecord,\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/legisdoc`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: ADD_LEGIS_DOC_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_LEGIS_DOC_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: ADD_LEGIS_DOC_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function deleteHearing(hearingId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_HEARING_START });\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/hearing/${hearingId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_HEARING_SUCCESS,\r\n payload: {\r\n hearingId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_HEARING_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: DELETE_HEARING_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function addHearing(hearing) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_HEARING_START });\r\n\r\n const { url, hearingDesc, hearingDate, description, linkedRecord } = hearing;\r\n\r\n const options = {\r\n method: \"POST\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n Url: url,\r\n hearingDate: hearingDate,\r\n hearingDesc: hearingDesc,\r\n desc: description,\r\n RawFileId: linkedRecord,\r\n }),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/hearing`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: ADD_HEARING_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_HEARING_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: ADD_HEARING_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisDocTypes() {\r\n return (dispatch) => {\r\n dispatch({ type: GET_LEGIS_DOC_TYPES_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/rawfile/getLegisDocTypes`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_LEGIS_DOC_TYPES_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_LEGIS_DOC_TYPES_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_LEGIS_DOC_TYPES_FAILURE,\r\n json: \"Highlighting document: \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\n\r\nexport function getLegisSPRResults(legisId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_STATUSREVIEW_SPR_RESULTS_START });\r\n\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/StatusReview/getLegisRuleResults/${legisId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: GET_STATUSREVIEW_SPR_RESULTS_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_STATUSREVIEW_SPR_RESULTS_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n return json;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: GET_STATUSREVIEW_SPR_RESULTS_FAILURE,\r\n json: \"SPR Results : \" + err.message,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n });\r\n };\r\n}\r\n\r\n\r\nexport function deleteClientSubjectTag(subjectId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_STATUS_CLIENT_SUBJECT_TAG_START });\r\n\r\n const options = {\r\n method: \"DELETE\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/clientSubjectTag/${subjectId}`);\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 204 || response.status === 200) {\r\n dispatch({\r\n type: DELETE_STATUS_CLIENT_SUBJECT_TAG_SUCCESS,\r\n payload: {\r\n subjectId,\r\n },\r\n });\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (\r\n response.status === 400 ||\r\n response.status === 404 ||\r\n response.status === 409 ||\r\n response.status === 500\r\n ) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: DELETE_STATUS_CLIENT_SUBJECT_TAG_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: DELETE_STATUS_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function putClientSubjectTag(clientSubjectTag) {\r\n return (dispatch) => {\r\n dispatch({ type: PUT_STATUS_CLIENT_SUBJECT_TAG_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: [JSON.stringify(clientSubjectTag)],\r\n };\r\n return fetch(`${globals.apiUrl}/clientSubjectTag`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: PUT_STATUS_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: PUT_STATUS_CLIENT_SUBJECT_TAG_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n\r\n return json;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: PUT_STATUS_CLIENT_SUBJECT_TAG_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function updateSubscribeDateForAll(recordId, dataType, subscribeDate) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_SUBSCRIBE_DATE_ALL_START });\r\n const options = {\r\n method: \"Put\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify({\r\n recordId,\r\n dataType,\r\n subscribeDate,\r\n }),\r\n };\r\n return fetch(`${globals.apiUrl}/ClientSubjectSubscription`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n return true;\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: UPDATE_SUBSCRIBE_DATE_ALL_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\n// export function getLegistrackinthistory(legisId) {\r\n// return (dispatch) => {\r\n// dispatch({ type: GET_STATUSREVIEW_HISTORY_START });\r\n\r\n// const options = {\r\n// method: \"GET\",\r\n// credentials: \"include\",\r\n// };\r\n\r\n// const url = new URL(`${globals.apiUrl}/legistrackinthistory/${legisId}`);\r\n\r\n// return fetch(url, options)\r\n// .then((response) => {\r\n// if (response.status === 200) {\r\n// return response.json();\r\n// } else if (response.status === 401) {\r\n// dispatch(logOut());\r\n// } else if (response.status === 400) {\r\n// response.text().then((text) => {\r\n// if (text) {\r\n// dispatch({\r\n// type: GET_STATUSREVIEW_HISTORY_FAILURE,\r\n// json: text,\r\n// });\r\n// dispatch(showModal(\"Error\"));\r\n// }\r\n// });\r\n// }\r\n// })\r\n// .then((json) => {\r\n// if (json) {\r\n// dispatch({\r\n// type: GET_STATUSREVIEW_HISTORY_SUCCESS,\r\n// payload: {\r\n// json,\r\n// },\r\n// });\r\n// return json;\r\n// }\r\n// })\r\n// .catch((err) => {\r\n// console.log(err);\r\n// dispatch({\r\n// type: GET_STATUSREVIEW_HISTORY_FAILURE,\r\n// json: \"Highlighting document: \" + err.message,\r\n// });\r\n// dispatch(showModal(\"Error\"));\r\n// });\r\n// };\r\n// }\r\n\r\nexport function updateStatusReview(statusReviewData) {\r\n return (dispatch) => {\r\n dispatch({ type: POST_STATUSREVIEW_UPDATE_START });\r\n\r\n const statusReviewDataConverted = { ...statusReviewData,\r\n loadDate: getEasternDateStringForAPI(statusReviewData.loadDate),\r\n actionDate: getEasternDateStringForAPI(statusReviewData.actionDate),\r\n effectiveDate: getEasternDateStringForAPI(statusReviewData.effectiveDate),\r\n };\r\n\r\n const options = {\r\n method: \"Post\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(statusReviewDataConverted),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/StatusReview/Update`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: POST_STATUSREVIEW_UPDATE_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n // dispatch({\r\n // type: POST_STATUSREVIEW_UPDATE_SUCCESS,\r\n // payload: {\r\n // json,\r\n // },\r\n // });\r\n\r\n const recordInfo = matchRecordInfo(json);\r\n //const clientActions = matchClientActions(json);\r\n //const documents = matchDocuments(json.Documents);\r\n //const hearings = matchHearings(json.Hearings);\r\n //const clientSubjectTags = matchClientSubjectTags(json.ClientSubjects);\r\n const currentLegisProgress = matchLegisHistory(recordInfo.currentLegisProgress.boolValues);\r\n\r\n dispatch({\r\n // type: GET_STATUS_REVIEW_BASE_SUCCESS,\r\n type: POST_STATUSREVIEW_UPDATE_SUCCESS,\r\n payload: {\r\n recordInfo,\r\n // clientActions,\r\n // documents,\r\n // clientSubjectTags,\r\n // hearings,\r\n currentLegisProgress,\r\n info: json,\r\n },\r\n });\r\n\r\n // REVIEW 09JAN2022\r\n\r\n // dispatch(clearHistory(pageIndex.statusReview));\r\n\r\n // dispatch(\r\n // saveInitialValues(pageIndex.statusReview, {\r\n // recordInfo,\r\n // // clientActions,\r\n // // documents,\r\n // currentLegisProgress,\r\n // // hearings,\r\n // })\r\n // );\r\n\r\n }\r\n return json;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: POST_STATUSREVIEW_UPDATE_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function postHistoryReview(reviewData) {\r\n return (dispatch) => {\r\n dispatch({ type: POST_STATUSREVIEW_UPDATE_START });\r\n const options = {\r\n method: \"Post\",\r\n credentials: \"include\",\r\n headers,\r\n body: JSON.stringify(reviewData),\r\n };\r\n\r\n return fetch(`${globals.apiUrl}/StatusReview/Review`, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400 || response.status === 409) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({\r\n type: POST_HISTORYREVIEW_UPDATE_FAILURE,\r\n json: text,\r\n });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: POST_HISTORYREVIEW_UPDATE_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n return json;\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({\r\n type: POST_HISTORYREVIEW_UPDATE_FAILURE,\r\n json: err.message,\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function getLegisHistoryLog(id) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_STATUSREVIEW_HISTORY_LOG_START });\r\n const options = {\r\n method: \"GET\",\r\n credentials: \"include\",\r\n };\r\n\r\n const url = new URL(`${globals.apiUrl}/HistoryLog`);\r\n\r\n const params = {\r\n entityType: 5,\r\n entityId: id,\r\n };\r\n\r\n if (Object.keys(params)) {\r\n Object.keys(params).forEach((key) => {\r\n if (params[key]) {\r\n url.searchParams.append(key, params[key]);\r\n }\r\n });\r\n }\r\n\r\n return fetch(url, options)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else if (response.status === 401) {\r\n dispatch(logOut());\r\n } else if (response.status === 400) {\r\n response.text().then((text) => {\r\n if (text) {\r\n dispatch({ type: GET_STATUSREVIEW_HISTORY_LOG_FAILURE, json: text });\r\n dispatch(showModal(\"Error\"));\r\n }\r\n });\r\n }\r\n })\r\n .then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_STATUSREVIEW_HISTORY_LOG_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n dispatch({ type: GET_STATUSREVIEW_HISTORY_LOG_FAILURE, json: err.message });\r\n });\r\n };\r\n}\r\n\r\nexport function clearFormFields() {\r\n return {\r\n type: CLEAR_STATUSREVIEW_FIELD_FOR_NO_RESULTS,\r\n };\r\n}\r\n\r\nexport function returnInitialState() {\r\n return {\r\n type: RETURN_LEGIS_TRACK_INITIAL_STATE,\r\n };\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA]: (state, action) =>\r\n action.location.page !== pageIndex.statusReview\r\n ? state\r\n : actionHandler(state, action),\r\n [RETURN_LEGIS_TRACK_INITIAL_STATE]: () => {\r\n return {\r\n ...initialState,\r\n };\r\n },\r\n [GET_STATUS_REVIEW_QUERY_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_STATUS_REVIEW_QUERY_DATA_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queriesWithParameters: json,\r\n queries: json.map((item) => {\r\n return {\r\n value: item.QueryId,\r\n label: item.QueryName,\r\n };\r\n }),\r\n },\r\n };\r\n },\r\n [PUT_LEGIS_SUMMARY_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_LEGIS_SUMMARY_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_LEGIS_SUMMARY_SUCCESS]: (state, action) => {\r\n const info = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n recordInfo: {\r\n ...state.formDataValue.SR.recordInfo,\r\n textValues: {\r\n ...state.formDataValue.SR.recordInfo.textValues,\r\n summary: info.Summary || \"\",\r\n summaryUpdateDate: formatDate(info.SummaryUpdated),\r\n },\r\n radio: {\r\n ...state.formDataValue.SR.recordInfo.radio,\r\n summaryUpdating: info.SummaryView || \"\",\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [POST_STATUSREVIEW_UPDATE_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [POST_STATUSREVIEW_UPDATE_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [POST_STATUSREVIEW_UPDATE_SUCCESS]: (state, action) => {\r\n\r\n // const info = action.payload.json;\r\n // const currentLegisProgress = matchLegisHistory(info);\r\n\r\n // const newState = {\r\n // ...state,\r\n // formDataValue: {\r\n // ...state.formDataValue,\r\n // SR: {\r\n // ...state.formDataValue.SR,\r\n // currentLegisProgress: currentLegisProgress,\r\n // recordInfo: matchSubHistoryData(\r\n // state.formDataValue.SR.recordInfo,\r\n // info\r\n // ),\r\n // },\r\n // },\r\n // };\r\n // return newState;\r\n\r\n const recordInfo = action.payload.recordInfo;\r\n const currentLegisProgress = action.payload.currentLegisProgress;\r\n const info = action.payload.info;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n currentLegisProgress: currentLegisProgress,\r\n recordInfo: recordInfo,\r\n },\r\n },\r\n };\r\n\r\n },\r\n\r\n [POST_HISTORYREVIEW_UPDATE_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [POST_HISTORYREVIEW_UPDATE_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [POST_HISTORYREVIEW_UPDATE_SUCCESS ]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [UPDATE_SUBSCRIBE_DATE_ALL_SUCCESS]: (state, action) => {\r\n const clientSubjectTags = matchClientSubjectTags(action.payload.json);\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n clientSubjectTags,\r\n },\r\n },\r\n };\r\n },\r\n [PUT_STATUS_CLIENT_SUBJECT_TAG_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_STATUS_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_STATUS_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const newCientSubjectTag = action.payload.json;\r\n\r\n const tageIndex = state.formDataValue.SR.clientSubjectTags.findIndex(\r\n (clientSubjectTag) =>\r\n clientSubjectTag.SubjectId === newCientSubjectTag.SubjectId\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n clientSubjectTags: Object.assign(\r\n [],\r\n state.formDataValue.SR.clientSubjectTags,\r\n {\r\n [tageIndex]: matchClientSubjectTag(newCientSubjectTag),\r\n }\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_COMMENT_SUCCESS]: (state, action) => {\r\n return clientActionSuccess(action, state);\r\n },\r\n [PUT_CLIENT_ACTION_START]: (state) => {\r\n return {\r\n ...state,\r\n //isFetchingData: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [PUT_CLIENT_ACTION_SUCCESS]: (state, action) => {\r\n return clientActionSuccess(action, state);\r\n },\r\n [POST_LEGIS_TRACK_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [POST_LEGIS_TRACK_DATA_SUCCESS]: (state, action) => {\r\n const queryRecords = action.payload.json;\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n queryRecords,\r\n },\r\n };\r\n },\r\n [POST_LEGIS_TRACK_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_SUCCESS]: (state, action) => {\r\n const recordsData = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n reviewRecords: matchReviewRows(recordsData),\r\n },\r\n },\r\n };\r\n },\r\n [SET_LEGIS_TRACK_TEAMS_REVIEW_DATA_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LEGIS_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_LEGIS_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_LEGIS_DOC_SUCCESS]: (state, action) => {\r\n const { docId } = action.payload;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n documents: state.formDataValue.SR.documents.filter(\r\n (doc) => doc.id !== docId\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [DELETE_STATUS_CLIENT_SUBJECT_TAG_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_STATUS_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_STATUS_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const { subjectId } = action.payload;\r\n const newClientSubjectTags = [...state.formDataValue.SR.clientSubjectTags];\r\n const changingClientSubjectTag = newClientSubjectTags.find(\r\n (clientSubjectTag) => clientSubjectTag.SubjectId === subjectId\r\n );\r\n\r\n changingClientSubjectTag.Deleted = true;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n clientSubjectTags: newClientSubjectTags,\r\n },\r\n },\r\n };\r\n },\r\n [ADD_LEGIS_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [ADD_LEGIS_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [ADD_LEGIS_DOC_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n const newDocument = matchDocuments([json]);\r\n const newDocuments = [...state.formDataValue.SR.documents, ...newDocument];\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n documents: newDocuments,\r\n },\r\n },\r\n };\r\n },\r\n [DELETE_HEARING_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [DELETE_HEARING_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [DELETE_HEARING_SUCCESS]: (state, action) => {\r\n const { docId } = action.payload;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n hearings: state.formDataValue.SR.hearings.filter(\r\n (doc) => doc.id !== docId\r\n ),\r\n },\r\n },\r\n };\r\n },\r\n [ADD_HEARING_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [ADD_HEARING_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [ADD_HEARING_SUCCESS]: (state, action) => {\r\n const { json } = action.payload;\r\n const newHearing = matchHearings([json]);\r\n const newHearings = [...state.formDataValue.SR.hearings, ...newHearing];\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n hearings: newHearings,\r\n },\r\n },\r\n };\r\n },\r\n [GET_STATUS_REVIEW_QUERIES_LIST_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_STATUS_REVIEW_BASE_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_STATUS_REVIEW_BASE_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_STATUS_REVIEW_BASE_SUCCESS]: (state, action) => {\r\n const clientActions = action.payload.clientActions;\r\n const recordInfo = action.payload.recordInfo;\r\n const documents = action.payload.documents;\r\n const clientSubjectTags = action.payload.clientSubjectTags;\r\n const hearings = action.payload.hearings;\r\n const currentLegisProgress = action.payload.currentLegisProgress;\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n recordInfo,\r\n clientActions,\r\n documents,\r\n clientSubjectTags,\r\n hearings,\r\n currentLegisProgress,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_INITIAL_DATA_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_INITIAL_DATA_COMPLETE]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n };\r\n },\r\n [STATUS_REVIEW_OPEN_RECORD_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [OPEN_LEGIS_TRACK_RECORD_SUCCESS]: (state, action) => {\r\n const currentIndex = state.renderData.queryRecords.findIndex(\r\n (record) => record === action.payload.legisId\r\n );\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n currentLegisId: action.payload.legisId,\r\n navigation: {\r\n ...state.formDataValue.SR.navigation,\r\n textValues: {\r\n ...state.formDataValue.SR.navigation.textValues,\r\n currentRecord: currentIndex + 1,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [SET_LEGIS_TRACK_ID_REVIEWED_SUCCESS]: (state, action) => {\r\n const iderInfo = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n iderReviewedInfo: matchIderInfo(iderInfo),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_KEYWORDS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n recordKeywordHits: matchKeywordHits(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_CLIENT_SUBJECTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_CLIENT_SUBJECTS_SUCCESS]: (state, action) => {\r\n const keywordHits = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n recordClientSubjects: matchClientSubjects(keywordHits),\r\n },\r\n },\r\n };\r\n },\r\n [GET_STATUSREVIEW_HISTORY_LOG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_STATUSREVIEW_HISTORY_LOG_SUCCESS]: (state, action) => {\r\n const historyLog = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n textBlocks: {\r\n ...state.formDataValue.SR.textBlocks,\r\n textValues: {\r\n ...state.formDataValue.SR.textBlocks.textValues,\r\n log: matchHistoryLog(historyLog),\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [GET_STATUSREVIEW_SPR_RESULTS_SUCCESS]: (state, action) => {\r\n const sprResults = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n textBlocks: {\r\n ...state.formDataValue.SR.textBlocks,\r\n textValues: {\r\n ...state.formDataValue.SR.textBlocks.textValues,\r\n ruleResults: sprResults,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n },\r\n [GET_QC_KEYWORD_MISSING_SUCCESS]: (state, action) => {\r\n const keywordsMissing = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n recordQCKeywordMissing: matchQCKeywordMissing(keywordsMissing),\r\n },\r\n },\r\n };\r\n },\r\n [GET_QC_KEYWORD_REVIEW_SUCCESS]: (state, action) => {\r\n const keywordsReview = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n recordQCKeywordReview: matchQCKeywordReview(keywordsReview),\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_HIGHLIGHTED_DOC_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_HIGHLIGHTED_DOC_SUCCESS]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_HIGHLIGHTED_DOC_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isError: true,\r\n };\r\n },\r\n [GET_LEGIS_DOC_TYPES_START]: (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n };\r\n },\r\n [GET_LEGIS_DOC_TYPES_SUCCESS]: (state, action) => {\r\n const legisDocTypes = matchLegisDocTypes(action.payload.json);\r\n const nonDeletableDocTypes = matchNonDeletableDocTypes(action.payload.json);\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n legisDocTypes: legisDocTypes,\r\n nonDeletableDocTypes: nonDeletableDocTypes,\r\n },\r\n };\r\n },\r\n [GET_LEGIS_DOC_TYPES_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n // [GET_STATUSREVIEW_HISTORY_START]: (state) => {\r\n // return {\r\n // ...state,\r\n // isFetchingData: true,\r\n // };\r\n // },\r\n // [GET_STATUSREVIEW_HISTORY_SUCCESS]: (state, action) => {\r\n // const currentLegisProgress = matchLegisHistory(action.payload.json);\r\n // return {\r\n // ...state,\r\n // formDataValue: {\r\n // ...state.formDataValue,\r\n // SR: {\r\n // ...state.formDataValue.SR,\r\n // currentLegisProgress: currentLegisProgress,\r\n // },\r\n // },\r\n // };\r\n // },\r\n // [GET_STATUSREVIEW_HISTORY_FAILURE]: (state, action) => {\r\n // return {\r\n // ...state,\r\n // errorCode: action.json,\r\n // isFetchingData: false,\r\n // isError: true,\r\n // };\r\n // },\r\n [POST_CLIENT_SUBJECT_TAG_SUCCESS]: (state, action) => {\r\n const clientSubjectTags = matchClientSubjectTags(action.payload.json);\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n clientSubjectTags: [\r\n ...clientSubjectTags,\r\n ...state.formDataValue.SR.clientSubjectTags,\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n [POST_CLIENT_SUBJECT_TAG_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_START]: (state, action) => {\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n clientSubjectGroupings: [],\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_SUCCESS]: (state, action) => {\r\n const groupingsList = action.payload.json;\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n clientSubjectGroupings: groupingsList,\r\n },\r\n },\r\n };\r\n },\r\n [GET_LEGIS_TRACK_SUBJECT_GROUP_LIST_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [SET_QC_KEYWORD_REVIEW_START]: (state) => {\r\n return {\r\n ...state,\r\n };\r\n },\r\n [SET_QC_KEYWORD_REVIEW_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n isError: true,\r\n };\r\n },\r\n [GET_CLIENTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_CLIENT_SUBJECT_INFO_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_GROUPING_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [GET_SUBJECTS_FAILURE]: (state, action) => {\r\n return {\r\n ...state,\r\n errorCode: action.json,\r\n isFetchingData: false,\r\n };\r\n },\r\n [CLEAR_STATUSREVIEW_FIELD_FOR_NO_RESULTS]: (state) => {\r\n\r\n const query = state.renderData.queriesWithParameters.find(\r\n (query) => query.QueryId == state.formDataValue.SR.queryLine.radio.query\r\n );\r\n\r\n const {\r\n parametersSectionSelectables,\r\n sortParameters,\r\n sortFields,\r\n sortDirections,\r\n filterFields,\r\n } = populateSortAndSearchParams(query);\r\n\r\n return {\r\n ...initialState,\r\n disableEditing: true,\r\n renderData: {\r\n ...initialState.renderData,\r\n queriesWithParameters: state.renderData.queriesWithParameters,\r\n queries: state.renderData.queries,\r\n allRegions: state.renderData.allRegions,\r\n regions: state.renderData.regions,\r\n regionsList: state.renderData.regionsList,\r\n legisDocTypes: state.renderData.legisDocTypes,\r\n nonDeletableDocTypes: state.renderData.nonDeletableDocTypes,\r\n },\r\n formDataValue: {\r\n SR: {\r\n ...initialState.formDataValue.SR,\r\n queryLine: {\r\n ...state.formDataValue.SR.queryLine,\r\n },\r\n parametersSection: {\r\n ...state.formDataValue.SR.parametersSection,\r\n radio: parametersSectionSelectables,\r\n },\r\n\r\n sortParameters: {\r\n radio: sortParameters,\r\n fields: sortFields,\r\n },\r\n sortDirections: {\r\n radio: sortDirections,\r\n },\r\n filterParameters: {\r\n fields: filterFields,\r\n }\r\n\r\n },\r\n },\r\n };\r\n },\r\n};\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: \"\",\r\n isFetchingData: false,\r\n renderData: {\r\n queryRecords: [],\r\n queryProperties: [],\r\n currentRecord: {},\r\n recordIndex: 0,\r\n },\r\n formDataValue: {\r\n SR: {\r\n settingsLine: {\r\n radio: {\r\n autoAdvance: true,\r\n autoUrl: true,\r\n extraInfoExpanded: false,\r\n hearingInfoExpanded: false,\r\n clientActionsExpanded: false,\r\n },\r\n },\r\n queryLine: {\r\n radio: {\r\n query: \"Select Query\",\r\n },\r\n textValues: {\r\n keywordSearch: \"\",\r\n },\r\n selected: [],\r\n },\r\n parametersSection: {\r\n textValues: {},\r\n dateTime: {},\r\n radio: [],\r\n },\r\n sortParameters: {\r\n radio: [],\r\n fields: [],\r\n },\r\n sortDirections: {\r\n radio: [],\r\n },\r\n filterParameters: {\r\n fields: [],\r\n },\r\n navigation: {\r\n textValues: {\r\n currentRecord: \"1\",\r\n },\r\n },\r\n currentLegisProgress: matchLegisHistory([]),\r\n reviewRecords: matchReviewRows([]),\r\n recordInfo: matchRecordInfo({}),\r\n iderReviewedInfo: matchIderInfo({}),\r\n recordKeywordHits: matchKeywordHits([]),\r\n recordClientSubjects: matchClientSubjects([]),\r\n recordQCKeywordMissing: matchQCKeywordMissing([]),\r\n recordQCKeywordReview: matchQCKeywordReview([]),\r\n documents: matchDocuments([]),\r\n hearings: matchHearings([]),\r\n clientActions: matchClientActions([]),\r\n clientSubjectTags: [],\r\n clientSubjectGroupings: [],\r\n managementComments: [],\r\n otherDocs: {\r\n 0: {\r\n textValues: {\r\n urlIdDocs: \"\",\r\n urlDescription: \"\",\r\n },\r\n radio: {\r\n docsType: \"versions\",\r\n },\r\n },\r\n },\r\n clients: {\r\n selected: [],\r\n },\r\n notLoadedClients: {\r\n selected: [],\r\n },\r\n history: {\r\n textValues: {\r\n history: \"\",\r\n },\r\n },\r\n textBlocks: {\r\n textValues: {\r\n log: [],\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nfunction clientActionSuccess(action, state) {\r\n const updatedClientAction = action.payload.json;\r\n const clientActionIndex = state.formDataValue.SR.clientActions.findIndex(\r\n (clientAction) =>\r\n clientAction.textValues.clientActionId ===\r\n updatedClientAction.ClientActionId\r\n );\r\n\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n SR: {\r\n ...state.formDataValue.SR,\r\n clientActions: Object.values({\r\n ...state.formDataValue.SR.clientActions,\r\n [clientActionIndex]: matchClientAction(updatedClientAction),\r\n }),\r\n },\r\n },\r\n };\r\n}\r\n\r\nexport default function statusReviewReducer(\r\n state = initialState,\r\n action\r\n) {\r\n const handler = ACTION_HANDLERS[action.type];\r\n return handler ? handler(state, action) : state;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/statusReviewFormData.js","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/arrayWithoutHoles.js\n// module id = 505\n// module chunks = 19","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/inheritsLoose.js\n// module id = 506\n// module chunks = 19","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/iterableToArray.js\n// module id = 507\n// module chunks = 19","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/nonIterableSpread.js\n// module id = 508\n// module chunks = 19","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\n// module id = 509\n// module chunks = 19","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@emotion/hash/dist/hash.browser.esm.js\n// module id = 510\n// module chunks = 19","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@emotion/memoize/dist/memoize.browser.esm.js\n// module id = 511\n// module chunks = 19","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@emotion/stylis/dist/stylis.browser.esm.js\n// module id = 512\n// module chunks = 19","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@emotion/unitless/dist/unitless.browser.esm.js\n// module id = 513\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@fortawesome/react-fontawesome/~/prop-types/factoryWithThrowingShims.js\n// module id = 515\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@fortawesome/react-fontawesome/~/prop-types/index.js\n// module id = 516\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@fortawesome/react-fontawesome/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 517\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@icons/material/CheckIcon.js\n// module id = 518\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@icons/material/UnfoldMoreHorizontalIcon.js\n// module id = 519\n// module chunks = 19","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nexports.__esModule = true;\nexports.preloadReady = exports.preloadAll = exports.Capture = exports.LoadableMap = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar ALL_INITIALIZERS = [];\nvar READY_INITIALIZERS = [];\nvar CaptureContext = react_1.createContext(undefined);\nvar isWebpackReady = function (getModuleIds) { return typeof __webpack_modules__ === 'object'\n && getModuleIds().every(function (moduleId) { return typeof moduleId !== 'undefined'\n && typeof __webpack_modules__[moduleId] !== 'undefined'; }); };\nvar load = function (loader) {\n var state = {\n loading: true,\n loaded: undefined,\n error: undefined\n };\n state.promise = new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {\n var loaded, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, loader()];\n case 1:\n loaded = _a.sent();\n state.loading = false;\n state.loaded = loaded;\n resolve(loaded);\n return [3 /*break*/, 3];\n case 2:\n e_1 = _a.sent();\n state.loading = false;\n state.error = e_1;\n reject(e_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); });\n return state;\n};\nvar loadMap = function (obj) {\n var e_2, _a;\n var state = {\n loading: false,\n loaded: {},\n error: undefined\n };\n var promises = [];\n try {\n var _loop_1 = function (key) {\n var result = load(obj[key]);\n if (!result.loading) {\n state.loaded[key] = result.loaded;\n state.error = result.error;\n }\n else\n state.loading = true;\n promises.push(result.promise);\n (function () { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b, e_3;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 2, , 3]);\n _a = state.loaded;\n _b = key;\n return [4 /*yield*/, result.promise];\n case 1:\n _a[_b] = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n e_3 = _c.sent();\n state.error = e_3;\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); })();\n };\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n _loop_1(key);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n catch (err) {\n state.error = err;\n }\n state.promise = new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {\n var res, e_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n res = _a.sent();\n state.loading = false;\n resolve(res);\n return [3 /*break*/, 3];\n case 2:\n e_4 = _a.sent();\n state.loading = false;\n reject(e_4);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); });\n return state;\n};\nvar resolve = function (obj) { var _a; return ((_a = obj) === null || _a === void 0 ? void 0 : _a.__esModule) ? obj[\"default\"] : obj; };\nvar render = function (loaded, props) { return react_1[\"default\"].createElement(resolve(loaded), props); };\nvar createLoadableComponent = function (loadFn, options) {\n if (!options.loading)\n throw new Error('react-loadable requires a `loading` component');\n var opts = __assign({ delay: 200, render: render }, options);\n var res;\n var init = function () {\n if (!res)\n res = loadFn(opts.loader);\n return res.promise;\n };\n ALL_INITIALIZERS.push(init);\n if (typeof opts.webpack === 'function')\n READY_INITIALIZERS.push(function () {\n if (isWebpackReady(opts.webpack))\n return init();\n });\n var LoadableComponent = /** @class */ (function (_super) {\n __extends(LoadableComponent, _super);\n function LoadableComponent(props) {\n var _this = _super.call(this, props) || this;\n init();\n _this.state = {\n error: res.error,\n pastDelay: false,\n timedOut: false,\n loading: res.loading,\n loaded: res.loaded\n };\n _this._loadModule();\n return _this;\n }\n LoadableComponent.prototype.componentDidMount = function () { this._mounted = true; };\n LoadableComponent.prototype.componentWillUnmount = function () {\n this._mounted = false;\n this._clearTimeouts();\n };\n LoadableComponent.prototype.render = function () {\n return this.state.loading || this.state.error\n ? react_1[\"default\"].createElement(opts.loading, { isLoading: this.state.loading, pastDelay: this.state.pastDelay, timedOut: this.state.timedOut, error: this.state.error, retry: this._retry })\n : this.state.loaded || null\n ? opts.render(this.state.loaded, this.props.props)\n : null;\n };\n LoadableComponent.prototype._retry = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.setState({ error: undefined, loading: true, timedOut: false });\n res = loadFn(opts.loader);\n return [4 /*yield*/, this._loadModule()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n LoadableComponent.prototype._setStateWithMountCheck = function (newState) {\n if (!this._mounted)\n return;\n this.setState(newState);\n };\n LoadableComponent.prototype._loadModule = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, moduleName, _c;\n var e_5, _d;\n var _this = this;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (this.props.report && Array.isArray(opts.modules))\n try {\n for (_a = __values(opts.modules), _b = _a.next(); !_b.done; _b = _a.next()) {\n moduleName = _b.value;\n this.props.report(moduleName);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_b && !_b.done && (_d = _a[\"return\"])) _d.call(_a);\n }\n finally { if (e_5) throw e_5.error; }\n }\n if (!res.loading)\n return [2 /*return*/];\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n if (this._mounted)\n this.setState({ pastDelay: true });\n else\n this.state.pastDelay = true;\n }\n else {\n this._delay = setTimeout(function () {\n _this._setStateWithMountCheck({ pastDelay: true });\n }, opts.delay);\n }\n }\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(function () {\n _this._setStateWithMountCheck({ timedOut: true });\n }, opts.timeout);\n }\n _e.label = 1;\n case 1:\n _e.trys.push([1, 3, 4, 5]);\n return [4 /*yield*/, res.promise];\n case 2:\n _e.sent();\n return [3 /*break*/, 5];\n case 3:\n _c = _e.sent();\n return [3 /*break*/, 5];\n case 4:\n this._clearTimeouts();\n this._setStateWithMountCheck({\n error: res.error,\n loaded: res.loaded,\n loading: res.loading\n });\n return [7 /*endfinally*/];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n LoadableComponent.prototype._clearTimeouts = function () {\n clearTimeout(this._delay);\n clearTimeout(this._timeout);\n };\n LoadableComponent.displayName = 'LoadableComponent';\n return LoadableComponent;\n }(react_1[\"default\"].Component));\n var ContextWrapper = function (props) { return react_1[\"default\"].createElement(CaptureContext.Consumer, null, function (report) { return react_1[\"default\"].createElement(LoadableComponent, { props: props, report: report }); }); };\n ContextWrapper.preload = init;\n ContextWrapper.displayName = 'CaptureContextWrapper';\n return ContextWrapper;\n};\nexports[\"default\"] = (function (opts) { return createLoadableComponent(load, opts); });\nexports.LoadableMap = function (opts) {\n if (typeof opts.render !== 'function')\n throw new Error('LoadableMap requires a `render(loaded, props)` function');\n return createLoadableComponent(loadMap, opts);\n};\nexports.Capture = function (_a) {\n var children = _a.children, report = _a.report;\n return react_1[\"default\"].createElement(CaptureContext.Provider, { value: report }, children);\n};\nexports.Capture.displayName = 'Capture';\nvar flushInitializers = function (initializers) { return __awaiter(void 0, void 0, void 0, function () {\n var promises;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n promises = [];\n while (initializers.length)\n promises.push(initializers.pop()());\n return [4 /*yield*/, Promise.all(promises)];\n case 1:\n _a.sent();\n if (initializers.length)\n return [2 /*return*/, flushInitializers(initializers)];\n return [2 /*return*/];\n }\n });\n}); };\nexports.preloadAll = function () { return flushInitializers(ALL_INITIALIZERS); };\nexports.preloadReady = function () { return flushInitializers(READY_INITIALIZERS); };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@react-loadable/revised/lib/index.js\n// module id = 520\n// module chunks = 19","import \"@progress/kendo-theme-default/dist/all.css\";\r\nimport Loadable from \"@react-loadable/revised\";\r\nimport { ConnectedRouter } from \"connected-react-router\";\r\nimport PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport ReactGA from \"react-ga4\";\r\nimport Loading from \"./components/Loading/Loading\";\r\nimport { ProtectedRoute } from \"./components/ProtectedRoute\";\r\nimport STSComponent from \"./components/STSComponent/STSComponent\";\r\nimport Login from \"./routes/Login/Login\";\r\nimport RSignOn from \"./routes/RSignOn/RSignOn\";\r\n\r\nReactGA.initialize(\"G-J6M388NVT5\");\r\n\r\nconst HomePage = Loadable({\r\n loader: () => import(\"./routes/Home/HomeView\"),\r\n loading: Loading,\r\n});\r\n\r\nconst SponsorReview = Loadable({\r\n loader: () => import(\"./routes/SponsorReview/SponsorReview\"),\r\n loading: Loading,\r\n});\r\n\r\nconst RawBillData = Loadable({\r\n loader: () => import(\"./routes/RawBillData/RawBillData\"),\r\n loading: Loading,\r\n});\r\n\r\nconst RegisterReview = Loadable({\r\n loader: () => import(\"./routes/RegisterReview/RegisterReview\"),\r\n loading: Loading,\r\n});\r\n\r\nconst RegsUrls = Loadable({\r\n loader: () => import(\"./routes/RegsUrls/RegsUrls\"),\r\n loading: Loading,\r\n});\r\n\r\nconst LocalReview = Loadable({\r\n loader: () => import(\"./routes/LocalReview/LocalReview\"),\r\n loading: Loading,\r\n});\r\n\r\nconst ClientLocalities = Loadable({\r\n loader: () => import(\"./routes/ClientLocalities/ClientLocalities\"),\r\n loading: Loading,\r\n});\r\n\r\nconst AgencyEdit = Loadable({\r\n loader: () => import(\"./routes/AgencyEdit/AgencyEdit\"),\r\n loading: Loading,\r\n});\r\n\r\nconst HistoryActionHelpText = Loadable({\r\n loader: () => import(\"./routes/HistoryActionHelpText/HistoryActionHelpText\"),\r\n loading: Loading,\r\n});\r\n\r\nconst MeetingDates = Loadable({\r\n loader: () => import(\"./routes/MeetingDates/MeetingDates\"),\r\n loading: Loading,\r\n});\r\n\r\nconst RegsNewRecordReview = Loadable({\r\n loader: () => import(\"./routes/NewRecordReview/Regs/NewRecordReview\"),\r\n loading: Loading,\r\n});\r\n\r\nconst LegisNewRecordReview = Loadable({\r\n loader: () => import(\"./routes/NewRecordReview/Legis/NewRecordReview\"),\r\n loading: Loading,\r\n});\r\n\r\nconst LegisTrackInternal = Loadable({\r\n loader: () => import(\"./routes/LegisTrackInternal/LegisTrackInternal\"),\r\n loading: Loading,\r\n});\r\n\r\nconst LocalTrackInternal = Loadable({\r\n loader: () => import(\"./routes/LocalTrackInternal/LocalTrackInternal\"),\r\n loading: Loading,\r\n});\r\n\r\nconst StatusReview = Loadable({\r\n loader: () => import(\"./routes/StatusReview/StatusReview\"),\r\n loading: Loading,\r\n});\r\n\r\nconst SSignOn = Loadable({\r\n loader: () => import(\"./routes/SSignOn/SSignOn\"),\r\n loading: Loading,\r\n});\r\n\r\n// const CurrentLegislation = Loadable({\r\n// loader: () =>\r\n// import(\"../routes/CurrentLegislation/components/CurrentLegislation\"),\r\n// loading: Loading,\r\n// });\r\n\r\nconst Groupings = Loadable({\r\n loader: () => import(\"./routes/Groupings/components/Groupings\"),\r\n loading: Loading,\r\n});\r\n\r\nconst Highlighter = Loadable({\r\n loader: () => import(\"./routes/Highlighter/components/Highlighter\"),\r\n loading: Loading,\r\n});\r\n\r\nconst LegislatorData = Loadable({\r\n loader: () => import(\"./routes/LegislatorData/LegislatorData\"),\r\n loading: Loading,\r\n});\r\n\r\nclass App extends STSComponent {\r\n render() {\r\n const { history, auth } = this.props;\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n static propTypes = {\r\n history: PropTypes.object,\r\n auth: PropTypes.object,\r\n };\r\n}\r\n\r\nexport default connect(\r\n (state) => ({\r\n auth: state.auth,\r\n }),\r\n { }\r\n)(App);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/App.js","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { updateContactData } from '../../../../store/reducers/clientContacts';\r\nimport STSComponent from \"../../../STSComponent/STSComponent\";\r\nimport { clientConstants } from '../../constants';\r\nimport ModalWrapper from '../ModalWrapper';\r\nimport ClientContactRow from './components/ClientContactRow';\r\n\r\nclass ClientContacts extends STSComponent {\r\n render () {\r\n const {\r\n modal,\r\n users,\r\n page,\r\n clientContacts,\r\n contactsTrackData,\r\n updateContactData,\r\n newItem,\r\n editItem\r\n } = this.props\r\n const contactsValues = newItem ? clientConstants.emptyList.clientContact : clientContacts\r\n return (\r\n \r\n {modal\r\n ? null\r\n :
}\r\n
\r\n {contactsValues\r\n ?
\r\n
Contact Name
\r\n
Email
\r\n
Phone
\r\n
Primary User
\r\n
\r\n : null}\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n static propTypes = {\r\n users: PropTypes.bool,\r\n page: PropTypes.string,\r\n contactsTrackData: PropTypes.object,\r\n updateContactData: PropTypes.func,\r\n modal: PropTypes.bool,\r\n clientContacts: PropTypes.array,\r\n newItem: PropTypes.bool,\r\n editItem: PropTypes.object\r\n }\r\n}\r\n\r\nexport default connect(state => ({\r\n clientContacts: state.clientContacts.renderData.clientContacts,\r\n contactsTrackData: state.clientContacts.formDataValue.clientContacts\r\n}), {\r\n updateContactData\r\n})(ClientContacts)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ClientContacts/components/ClientContacts/ClientContacts.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport InputField from '../../../../FormComponents/InputField/InputField'\r\nimport CheckboxesList from '../../../../FormComponents/CheckboxesList/CheckboxesList'\r\nimport ContactExpandedBlock from './ContactExpandedBlock'\r\nimport { checkValueInStore } from '../../../../AdditionalReportFilters/helpers'\r\nimport { clientConstants } from '../../../constants'\r\nimport { screenSize, page as pageIndex } from '../../../../../globals'\r\nimport { updateExpandedSection } from '../../../helpers'\r\n\r\nclass ClientContactRow extends React.PureComponent {\r\n constructor (props) {\r\n super(props)\r\n this.state = {\r\n expanded: false,\r\n currentRow: undefined,\r\n contacts: [],\r\n hidden: false,\r\n startNum: 10\r\n }\r\n this.handleScroll = this.handleScroll.bind(this)\r\n this.expandSection = this.expandSection.bind(this)\r\n this.showDelete = this.showDelete.bind(this)\r\n }\r\n\r\n componentDidMount () {\r\n this.setState({ contacts: this.props.contacts, hidden: true })\r\n this.timerID = setInterval(() => this.changeState(), 1500)\r\n }\r\n\r\n changeState = () => {\r\n this.setState({ hidden: false })\r\n }\r\n\r\n componentWillUnmount () {\r\n clearInterval(this.timerID)\r\n }\r\n\r\n expandSection = (event) => {\r\n const { page } = this.props\r\n const { currentRow, expanded } = this.state\r\n const expandedValue = event.target.getAttribute('data-info') !== currentRow ||\r\n (event.target.getAttribute('data-info') === currentRow && !expanded)\r\n const currentValue = event.target.getAttribute('data-info')\r\n const prevValue = currentRow === undefined ? currentValue : currentRow\r\n this.setState({\r\n expanded: expandedValue,\r\n prevSelected: prevValue,\r\n currentRow: currentValue\r\n })\r\n updateExpandedSection(false, expandedValue, currentValue, prevValue)\r\n if (page !== pageIndex.cmd) {\r\n this.props.sendData(currentValue)\r\n }\r\n }\r\n\r\n showDelete = (id) => () => {\r\n this.props.sendData(id)\r\n this.props.showModal(`Delete-${id}`)\r\n }\r\n\r\n returnRowFields = (page, itemData, isEdited) => {\r\n const { trackData, updateData } = this.props\r\n const location = { id: itemData.ClientContactId, field: 'clientContacts' }\r\n return clientConstants.inputsList.clientContacts.map((elem, i) => {\r\n switch (elem.type) {\r\n case 'input':\r\n return \r\n {window.innerWidth <= screenSize.extraSmall ?
{elem.title}
: null}\r\n
\r\n
\r\n case 'checkbox':\r\n return \r\n \r\n
\r\n }\r\n })\r\n }\r\n\r\n returnRowItem = (num) => {\r\n const { contacts, editItem } = this.props\r\n let resultedArray = []\r\n if (editItem) {\r\n resultedArray.push(this.returnItem(editItem, editItem.ClientContactId))\r\n } else {\r\n const length = contacts.length > 10 ? num : contacts.length\r\n for (let i = 0; i <= length - 1; i++) {\r\n resultedArray.push(this.returnItem(contacts[i], i))\r\n }\r\n }\r\n return resultedArray\r\n }\r\n\r\n returnItem = (itemData, i) => {\r\n const { trackData, page, updateData, modal, isEdited } = this.props\r\n const { currentRow, expanded } = this.state\r\n const button = expanded && parseInt(currentRow) === itemData.ClientContactId ? '-' : '+'\r\n return \r\n \r\n {!modal\r\n ?
{page === pageIndex.dashboard ? ' ' : button}
\r\n : null}\r\n {this.returnRowFields(page, itemData, isEdited)}\r\n
\r\n \r\n \r\n }\r\n\r\n handleScroll = (event) => {\r\n if (event.target.scrollHeight - event.target.scrollTop === event.target.clientHeight) {\r\n const elementsList = this.props.field === 'dashboardUsers'\r\n ? document.querySelectorAll('.contact-rows .row-item')\r\n : document.querySelectorAll('.user-row')\r\n let nextItem = elementsList.length\r\n const data = this.props.contacts\r\n if (elementsList.length <= data.length - 5) {\r\n this.setState({\r\n startNum: nextItem + 5,\r\n })\r\n } else if (elementsList.length > data.length - 5 && elementsList.length < data.length) {\r\n this.setState({\r\n startNum: nextItem + (data.length - elementsList.length)\r\n })\r\n }\r\n }\r\n }\r\n\r\n render () {\r\n const { contacts } = this.props\r\n if (!contacts) {\r\n return null\r\n } else {\r\n const { startNum, hidden } = this.state\r\n return \r\n {hidden ? null : this.returnRowItem(startNum)}\r\n
\r\n }\r\n }\r\n\r\n static propTypes = {\r\n page: PropTypes.string,\r\n field: PropTypes.string,\r\n contacts: PropTypes.array,\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func,\r\n modal: PropTypes.bool,\r\n editItem: PropTypes.bool,\r\n sendData: PropTypes.func,\r\n isEdited: PropTypes.object,\r\n showModal: PropTypes.func\r\n }\r\n}\r\n\r\nexport default ClientContactRow\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ClientContacts/components/ClientContacts/components/ClientContactRow.js","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { checkValueInStore } from '../../../../AdditionalReportFilters/helpers';\r\nimport CheckboxesList from '../../../../FormComponents/CheckboxesList/CheckboxesList';\r\nimport InputField from '../../../../FormComponents/InputField/InputField';\r\nimport STSComponent from \"../../../../STSComponent/STSComponent\";\r\nimport { clientConstants } from '../../../constants';\r\n\r\nclass ContactExpandedBlock extends STSComponent {\r\n returnInputs =(data) => {\r\n const { updateData, itemData, trackData } = this.props\r\n return data.map((item, i) => {\r\n const location = { id: itemData.ClientContactId, field: 'clientContacts' }\r\n switch (item.type) {\r\n case 'input':\r\n return (\r\n \r\n
{item.title}
\r\n
\r\n
\r\n )\r\n case 'checkbox': {\r\n return \r\n }\r\n }\r\n })\r\n }\r\n\r\n render () {\r\n const { itemData, modal } = this.props\r\n const className = modal ? 'expanded-contacts' : 'expanded-contacts d-none'\r\n return (\r\n \r\n
\r\n {this.returnInputs(clientConstants.inputsContact)}\r\n
\r\n
\r\n {this.returnInputs(clientConstants.checkboxesContacts)}\r\n
\r\n
\r\n )\r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func,\r\n itemData: PropTypes.object,\r\n modal: PropTypes.bool\r\n }\r\n}\r\n\r\nexport default ContactExpandedBlock\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ClientContacts/components/ClientContacts/components/ContactExpandedBlock.js","import React, { PureComponent, Fragment } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport InputField from '../../../../FormComponents/InputField/InputField'\r\nimport CheckboxesList from '../../../../FormComponents/CheckboxesList/CheckboxesList'\r\nimport UserExpandedBlock from './UserExpandedBlock'\r\nimport { checkValueInStore } from '../../../../AdditionalReportFilters/helpers'\r\nimport { clientConstants } from '../../../constants'\r\nimport { screenSize, page as pageIndex } from '../../../../../globals'\r\nimport { updateExpandedSection } from '../../../helpers'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faTrash, faPen, faSave } from '@fortawesome/free-solid-svg-icons'\r\n\r\nclass ClientUserRow extends PureComponent {\r\n constructor (props) {\r\n super(props)\r\n this.state = {\r\n expanded: false,\r\n currentRow: undefined,\r\n contacts: [],\r\n hidden: false,\r\n startNum: 10,\r\n allowEditing: {\r\n edit: false,\r\n rowId: ''\r\n }\r\n }\r\n this.handleScroll = this.handleScroll.bind(this)\r\n this.expandSection = this.expandSection.bind(this)\r\n this.showDelete = this.showDelete.bind(this)\r\n }\r\n\r\n componentDidMount () {\r\n this.setState({ contacts: this.props.contacts, hidden: true })\r\n this.timerID = setInterval(() => this.changeState(), 100)\r\n }\r\n\r\n changeState = () => {\r\n this.setState({ hidden: false })\r\n }\r\n\r\n componentWillUnmount () {\r\n clearInterval(this.timerID)\r\n }\r\n\r\n expandSection = (event) => {\r\n const { field, contacts, updatePermissions, page, sendData } = this.props\r\n const { currentRow, expanded } = this.state\r\n const expandedValue = event.target.getAttribute('data-info') !== currentRow ||\r\n (event.target.getAttribute('data-info') === currentRow && !expanded)\r\n const currentValue = event.target.getAttribute('data-info')\r\n const prevValue = currentRow === undefined ? currentValue : currentRow\r\n this.setState({\r\n expanded: expandedValue,\r\n prevSelected: prevValue,\r\n currentRow: currentValue\r\n })\r\n if (field === 'clientUsers' && expandedValue) {\r\n const itemData = contacts.filter(el => el.UserId === parseInt(currentValue))\r\n updatePermissions(currentValue, itemData)\r\n }\r\n updateExpandedSection(field.includes('Users'), expandedValue, currentValue, prevValue)\r\n if (page !== pageIndex.cmd) {\r\n sendData(currentValue)\r\n }\r\n }\r\n\r\n showDelete = (id) => () => {\r\n const { sendData, showModal } = this.props\r\n sendData(id)\r\n showModal(`Delete-user-${id}`)\r\n }\r\n\r\n allowEditing = (id) => () => {\r\n this.setState({\r\n allowEditing: {\r\n edit: this.state.rowId !== id ? true : !this.state.allowEditing.edit,\r\n rowId: id\r\n }\r\n })\r\n }\r\n\r\n updateUserData = (id) => () => {\r\n this.setState({\r\n allowEditing: {\r\n edit: false,\r\n rowId: id\r\n }\r\n })\r\n }\r\n\r\n returnRowFields = (editOpt, field, itemData, isEdited) => {\r\n const { trackData, updateData } = this.props\r\n return clientConstants.inputsList[field].map((elem, i) => {\r\n switch (elem.type) {\r\n case 'input':\r\n const elemName = elem.name === 'UserName' ? itemData.FirstName + itemData.LastName : itemData[elem.name]\r\n const check = elem.name === 'UserEmail' && field === 'dashboardUsers'\r\n const className = check ? 'client-user-col with-bin' : 'client-user-col border'\r\n const allowEditingClass = editOpt.edit && editOpt.rowId === itemData.UserId &&\r\n elem.name !== 'LogonId' ? ' allow-editing' : ''\r\n return \r\n {window.innerWidth <= screenSize.extraSmall ?
{elem.title}
: null}\r\n
\r\n {check\r\n ?
\r\n {editOpt.edit && editOpt.rowId === itemData.UserId\r\n ? \r\n : \r\n }\r\n \r\n \r\n : null}\r\n
\r\n case 'checkbox':\r\n return \r\n \r\n
\r\n }\r\n })\r\n }\r\n\r\n returnRowItem = (num) => {\r\n const { contacts, editItem } = this.props\r\n let resultedArray = []\r\n if (editItem) {\r\n resultedArray.push(this.returnItem(editItem, editItem.UserId))\r\n } else {\r\n const length = contacts.length > 10 ? num : contacts.length\r\n for (let i = 0; i <= length - 1; i++) {\r\n resultedArray.push(this.returnItem(contacts[i], i))\r\n }\r\n }\r\n return resultedArray\r\n }\r\n\r\n returnItem = (itemData, i) => {\r\n const { trackData, field, page, updateData, modal, isEdited } = this.props\r\n const { currentRow, expanded, allowEditing } = this.state\r\n const button = expanded && parseInt(currentRow) === itemData.UserId ? '-' : '+'\r\n const editingClass = allowEditing && allowEditing.edit && allowEditing.rowId === itemData.UserId\r\n ? ' allow-editing' : ''\r\n return \r\n \r\n {!modal\r\n ?
{page === pageIndex.dashboard ? ' ' : button}
\r\n : null}\r\n {this.returnRowFields(allowEditing, field, itemData, isEdited)}\r\n
\r\n \r\n \r\n }\r\n\r\n handleScroll = (event) => {\r\n if (event.target.scrollHeight - event.target.scrollTop === event.target.clientHeight) {\r\n const elementsList = document.querySelectorAll('.contact-rows .row-item')\r\n let nextItem = elementsList.length\r\n const data = this.props.contacts\r\n if (elementsList.length <= data.length - 5) {\r\n this.setState({\r\n startNum: nextItem + 5\r\n })\r\n } else if (elementsList.length > data.length - 5 && elementsList.length < data.length) {\r\n this.setState({\r\n startNum: nextItem + (data.length - elementsList.length)\r\n })\r\n }\r\n }\r\n }\r\n\r\n render () {\r\n const { contacts } = this.props\r\n if (!contacts) {\r\n return null\r\n } else {\r\n const { startNum, hidden } = this.state\r\n return \r\n {hidden ? null : this.returnRowItem(startNum)}\r\n
\r\n }\r\n }\r\n\r\n static propTypes = {\r\n page: PropTypes.string,\r\n field: PropTypes.string,\r\n contacts: PropTypes.array,\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func,\r\n modal: PropTypes.bool,\r\n updatePermissions: PropTypes.func,\r\n editItem: PropTypes.object,\r\n sendData: PropTypes.func,\r\n isEdited: PropTypes.bool,\r\n showModal: PropTypes.func\r\n }\r\n}\r\n\r\nexport default ClientUserRow\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ClientContacts/components/ClientUsers/components/ClientUserRow.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { connect } from 'react-redux'\r\nimport CheckboxesList from '../../../../FormComponents/CheckboxesList/CheckboxesList'\r\nimport InputField from '../../../../FormComponents/InputField/InputField'\r\nimport { checkValueInStore } from '../../../../AdditionalReportFilters/helpers'\r\nimport { showModal, hideModal } from '../../../../../store/reducers/modal'\r\nimport { clientConstants } from '../../../constants'\r\n\r\nclass UserExpandedBlock extends React.PureComponent {\r\n constructor (props) {\r\n super(props)\r\n this.showLoginDetails = this.showLoginDetails.bind(this)\r\n if (this.props.field === 'dashboardUsers') this.updatePermissionLevel()\r\n }\r\n\r\n showLoginDetails = () => () => {\r\n const { showModal, itemData } = this.props\r\n showModal(`Detailed-${itemData.UserId}`)\r\n }\r\n\r\n returnInputs = () => {\r\n const { field, updateData, itemData, trackData } = this.props\r\n const type = field === 'dashboardUsers' ? clientConstants.dashboardInputsUser : clientConstants.inputsUser\r\n return type.map((item, i) => {\r\n return \r\n \r\n
{item.title}
\r\n
\r\n {item.fieldName === 'LastLogin' && field === 'dashboardUsers'\r\n ?
\r\n | View Details\r\n \r\n : null}\r\n
\r\n \r\n })\r\n }\r\n\r\n updatePermissionsList = () => {\r\n return clientConstants.permissions.map(item => {\r\n return {\r\n id: item.PermissionId,\r\n text: item.PermissionName,\r\n type: 'checkbox'\r\n }\r\n })\r\n }\r\n\r\n updatePermissionLevel = () => {\r\n const ids = this.props.itemData.Permissions.map(item => `${item.PermissionId}`)\r\n const selectedLevel = permissionLevel.filter(item => item.ids.length === ids.length)[0]\r\n const { trackData, itemData, updateData } = this.props\r\n if (selectedLevel && !trackData[itemData.UserId].permissions.selected.includes(selectedLevel.id)) {\r\n updateData({ id: itemData.UserId, field: '' }, 'checkbox-exclude-others', selectedLevel.id)\r\n updateData({ id: itemData.UserId, field: 'permissions' }, 'ch_selectall', ids)\r\n } else if (selectedLevel === undefined) {\r\n updateData({ id: itemData.UserId, field: '' }, 'checkbox-exclude-others', 'permission-1')\r\n updateData({ id: itemData.UserId, field: 'permissions' }, 'ch_selectall', ids)\r\n }\r\n }\r\n\r\n render () {\r\n const { trackData, updateData, modal, itemData, field, showModal, permissionEditing } = this.props\r\n const className = modal ? 'expanded-users' : 'expanded-users d-none'\r\n const dashboardView = field === 'dashboardUsers'\r\n return \r\n {dashboardView\r\n ?
\r\n
Permission Level
\r\n
\r\n
\r\n :
\r\n \r\n
}\r\n
\r\n {this.returnInputs()}\r\n
\r\n
\r\n }\r\n\r\n static propTypes = {\r\n field: PropTypes.string,\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func,\r\n itemData: PropTypes.object,\r\n modal: PropTypes.bool,\r\n showModal: PropTypes.func,\r\n isEdited: PropTypes.bool,\r\n permissionEditing: PropTypes.string\r\n }\r\n}\r\n\r\nexport default connect(state => ({}), {\r\n showModal,\r\n hideModal\r\n})(UserExpandedBlock)\r\n\r\nconst permissionLevel = [\r\n {\r\n ids: ['22', '23', '24', '27', '28', '29', '30', '31', '32', '38',\r\n '39', '40', '41', '42', '43', '48', '49', '50', '51', '52', '56',\r\n '57', '59', '60', '61', '62', '63'],\r\n id: 'permission-1',\r\n text: 'Administrator',\r\n type: 'checkbox-exclude-others',\r\n },\r\n {\r\n id: 'permission-2',\r\n ids: ['22', '23', '24', '27', '28', '29', '30', '31', '38',\r\n '39', '40', '41', '42', '48', '49', '50', '51', '52', '56', '57', '59'],\r\n text: 'Editor',\r\n type: 'checkbox-exclude-others',\r\n },\r\n {\r\n id: 'permission-3',\r\n ids: ['22', '23', '24', '27', '28', '29', '30', '38',\r\n '39', '40', '41', '48', '49', '50', '51', '56', '57', '59'],\r\n text: 'Asst. Editor',\r\n type: 'checkbox-exclude-others',\r\n },\r\n {\r\n id: 'permission-4',\r\n ids: ['22', '24', '27', '28', '38', '39', '48', '49', '56', '59'],\r\n text: 'Viewer',\r\n type: 'checkbox-exclude-others',\r\n },\r\n {\r\n id: 'permission-5',\r\n ids: ['27', '38', '48', '56', '59'],\r\n text: 'Guest',\r\n type: 'checkbox-exclude-others',\r\n }\r\n]\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ClientContacts/components/ClientUsers/components/UserExpandedBlock.js","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport onClickOutside from 'react-onclickoutside';\r\nimport { page as pageIndex } from '../../../globals';\r\nimport STSComponent from \"../../STSComponent/STSComponent\";\r\nimport CheckboxesList from '../CheckboxesList/CheckboxesList';\r\n\r\nclass CustomDropdown extends STSComponent {\r\n constructor (props) {\r\n super(props)\r\n this.state = {\r\n isOpen: false,\r\n }\r\n this.toggleOpen = this.toggleOpen.bind(this)\r\n this.uncheckAll = this.uncheckAll.bind(this)\r\n this.checkAll = this.checkAll.bind(this)\r\n }\r\n\r\n shouldComponentUpdate (nextProps, nextState) {\r\n return JSON.stringify(nextProps) !== JSON.stringify(this.props) ||\r\n nextState.isOpen !== this.state.isOpen\r\n }\r\n\r\n handleClickOutside = (evt) => {\r\n this.setState({\r\n isOpen: false,\r\n })\r\n }\r\n\r\n toggleOpen = () => {\r\n this.setState({\r\n isOpen: !this.state.isOpen,\r\n })\r\n }\r\n\r\n uncheckAll = () => {\r\n const { location, updateData, uncheckAll } = this.props\r\n if (uncheckAll !== undefined) {\r\n updateData(location, 'ch_uncheckall_gn', uncheckAll)\r\n } else {\r\n updateData(location, 'ch_uncheckall')\r\n }\r\n }\r\n\r\n checkAll = () => {\r\n const { location, updateData, fieldData } = this.props\r\n let statesList = []\r\n let localitiesList = []\r\n for (let i = 0; i < fieldData.length; i++) {\r\n if (!statesList.includes(fieldData[i]['id'])) {\r\n if (fieldData[i].locality !== undefined) {\r\n for (let j = 0; j < fieldData[i].locality.length; j++) {\r\n localitiesList = [...localitiesList, fieldData[i].locality[j].id]\r\n }\r\n }\r\n statesList = [...statesList, fieldData[i]['id']]\r\n }\r\n }\r\n updateData(location, 'ch_selectall', [...statesList, ...localitiesList])\r\n }\r\n\r\n render () {\r\n const { fieldData, location, values, inputPlaceholder, updateData } = this.props\r\n const { isOpen } = this.state\r\n return (\r\n \r\n
\r\n
\r\n {inputPlaceholder}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n static propTypes = {\r\n values: PropTypes.object.isRequired,\r\n updateData: PropTypes.func,\r\n fieldData: PropTypes.array.isRequired,\r\n location: PropTypes.object.isRequired,\r\n inputPlaceholder: PropTypes.string,\r\n uncheckAll: PropTypes.number,\r\n }\r\n}\r\n\r\nexport default onClickOutside(CustomDropdown)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/FormComponents/MultiSelect/CustomDropdown.js","import PropTypes from \"prop-types\";\r\nimport React from 'react';\r\nimport { page as pageIndex } from \"../../../globals\";\r\nimport STSComponent from \"../../STSComponent/STSComponent\";\r\nimport \"./css/MultiSelect.scss\";\r\nimport CustomDropdown from \"./CustomDropdown\";\r\n\r\nclass MultiSelect extends STSComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isExpanded: false,\r\n btnHeight: null,\r\n };\r\n this.changeBtn = this.changeBtn.bind(this);\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.state.btnHeight !== this.returnBtn()) {\r\n this.setBtnHeight();\r\n }\r\n }\r\n\r\n setBtnHeight = () => {\r\n this.setState({\r\n btnHeight: this.returnBtn(),\r\n });\r\n };\r\n\r\n renderStatesBoxes = () => {\r\n const {\r\n fieldData,\r\n values,\r\n updateData,\r\n location,\r\n childrenClassName,\r\n defaultSelectionText,\r\n } = this.props;\r\n if (values.selected.length === 0) {\r\n if (defaultSelectionText) {\r\n return (\r\n \r\n \r\n {defaultSelectionText}\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n return fieldData.map((item, i) => {\r\n if (values.selected.includes(item.id)) {\r\n switch (item.type) {\r\n case \"checkbox\":\r\n return (\r\n \r\n );\r\n case \"ch_with_child\":\r\n return (\r\n \r\n );\r\n }\r\n } else if (item.locality) {\r\n return item.locality.map((elem, i) => {\r\n if (values.selected.includes(elem.id)) {\r\n return (\r\n \r\n );\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n changeBtn = () => {\r\n this.setState({ isExpanded: !this.state.isExpanded });\r\n };\r\n\r\n returnBtn = () => {\r\n const el = document.querySelector(\".states-btn .local-states\");\r\n return el ? el.scrollHeight : null;\r\n };\r\n\r\n render() {\r\n const {\r\n values,\r\n fieldData,\r\n location,\r\n inputPlaceholder,\r\n hideBoxes,\r\n uncheckAll,\r\n updateData,\r\n } = this.props;\r\n const isExpanded = this.state.isExpanded;\r\n const classNameBoxes = hideBoxes\r\n ? \"states-boxes-container d-none\"\r\n : location.page === pageIndex.local\r\n ? `states-boxes-container local-states ${\r\n !isExpanded ? \"\" : \"local-states-expanded\"\r\n } custom-scroll`\r\n : \"states-boxes-container\";\r\n const btn = this.state.btnHeight;\r\n return (\r\n \r\n
\r\n
{this.renderStatesBoxes()}
\r\n {btn > 324 ? ( // magic number 324 means min height of element in DOM\r\n
\r\n Click here to {!this.state.isExpanded ? \"expand\" : \"collapse\"}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n static propTypes = {\r\n values: PropTypes.object.isRequired,\r\n fieldData: PropTypes.array.isRequired,\r\n location: PropTypes.object.isRequired,\r\n inputPlaceholder: PropTypes.string,\r\n childrenClassName: PropTypes.string,\r\n defaultSelectionText: PropTypes.string,\r\n updateData: PropTypes.func,\r\n uncheckAll: PropTypes.number,\r\n hideBoxes: PropTypes.bool,\r\n };\r\n}\r\n\r\nexport default MultiSelect;\r\n\r\nclass MultiSelectSmallBox extends STSComponent {\r\n constructor(props) {\r\n super(props);\r\n this.deleteBox = this.deleteBox.bind(this);\r\n }\r\n\r\n deleteBox() {\r\n const { location, itemData, updateData } = this.props;\r\n updateData(location, \"ch_uncheck\", itemData.id);\r\n }\r\n\r\n render() {\r\n const { itemData, boxesClass } = this.props;\r\n return (\r\n \r\n
\r\n {itemData.shortcut}\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n static propTypes = {\r\n itemData: PropTypes.object.isRequired,\r\n location: PropTypes.object.isRequired,\r\n updateData: PropTypes.func,\r\n boxesClass: PropTypes.string,\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/FormComponents/MultiSelect/MultiSelect.js","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport STSComponent from \"../../STSComponent/STSComponent\";\r\nimport './radio.scss';\r\n\r\nclass RadioButtons extends STSComponent {\r\n constructor (props) {\r\n super(props)\r\n this.updateRadioButton = this.updateRadioButton.bind(this)\r\n this.openEditCustom = this.openEditCustom.bind(this)\r\n this.openDeleteCustom = this.openDeleteCustom.bind(this)\r\n }\r\n\r\n shouldComponentUpdate (nextProps) {\r\n return JSON.stringify(nextProps) !== JSON.stringify(this.props)\r\n }\r\n\r\n updateRadioButton = (item) => () => {\r\n const { updateData, location, id } = this.props\r\n updateData(location, 'radio', id, item)\r\n }\r\n\r\n openEditCustom = (item) => () => {\r\n const { sendData, showModal } = this.props\r\n sendData(item.id, item.name)\r\n showModal(`Edit-item-custom-list-${item.id}`)\r\n }\r\n\r\n openDeleteCustom = (item) => () => {\r\n const { sendData, showModal } = this.props\r\n sendData(item.id, item.name)\r\n showModal(`Delete-custom-list-${item.id}`)\r\n }\r\n\r\n returnControls = (id) => {\r\n return \r\n \r\n EDIT\r\n \r\n / \r\n \r\n DELETE\r\n \r\n
\r\n }\r\n\r\n renderButtons = () => {\r\n const { data, selected, icon, editRadio } = this.props\r\n return data.map((item, i) => {\r\n const name = !editRadio ? item : item.name\r\n if (selected === item || selected === item.name) {\r\n return \r\n \r\n {icon ? : null}\r\n {name}\r\n \r\n {editRadio ? this.returnControls(item) : null}\r\n
\r\n }\r\n return \r\n \r\n {icon ? : null}\r\n {name}\r\n \r\n {editRadio ? this.returnControls(item) : null}\r\n
\r\n })\r\n }\r\n\r\n render () {\r\n const { styles } = this.props\r\n return \r\n {this.renderButtons()}\r\n
\r\n }\r\n\r\n static propTypes = {\r\n data: PropTypes.array.isRequired,\r\n id: PropTypes.string.isRequired,\r\n selected: PropTypes.string.isRequired,\r\n location: PropTypes.object.isRequired,\r\n updateData: PropTypes.func,\r\n styles: PropTypes.object,\r\n icon: PropTypes.array,\r\n editRadio: PropTypes.bool,\r\n showModal: PropTypes.func,\r\n sendData: PropTypes.func\r\n }\r\n}\r\n\r\nexport default RadioButtons\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/FormComponents/RadioButtons/RadioButtons.js","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { Redirect, Route } from \"react-router-dom\";\r\nimport \"../../../../styles/ClientStyles.scss\";\r\nimport STSComponent from \"../../../STSComponent/STSComponent\";\r\nimport HeaderIcons from \"./components/HeaderIcons\";\r\nimport \"./css/ClientHeader.scss\";\r\nimport StatescapeLogo2 from \"../../../../images/statescape-logo2.png\";\r\nimport { globals } from '../../../../globals';\r\n\r\nclass RedirectStateScapeLegacyLogout extends STSComponent {\r\n componentDidMount() {\r\n window.location.href = globals.servicesUrl + \"/search/logoff.aspx\";\r\n }\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nclass ClientHeader extends STSComponent {\r\n constructor (props) {\r\n super(props)\r\n this.state = {\r\n shutdown: false,\r\n }\r\n } \r\n\r\n signOutLegacy = () => {\r\n localStorage.removeItem('authData')\r\n this.setState({ shutdown: true });\r\n }\r\n\r\n\r\n ClientBanner(authData) {\r\n let CustomBanner = authData.CustomBanner\r\n if (CustomBanner) {\r\n return ;\r\n } \r\n } \r\n\r\n componentDidMount () {\r\n document.title = globals.clientTitle + 'Dashboard';\r\n } \r\n\r\n render() {\r\n const { signOut, location, authData, showModal } = this.props;\r\n\r\n const checkHomeRoute = location.pathname === \"/\";\r\n\r\n const checkClientLogo = \"\"; // prev option \"dark-header\";\r\n\r\n const { shutdown } = this.state\r\n\r\n if (shutdown) { \r\n return \r\n } else {\r\n return (\r\n \r\n \r\n { this.ClientBanner(authData) }\r\n \r\n );\r\n }\r\n }\r\n\r\n static propTypes = {\r\n signOut: PropTypes.func,\r\n location: PropTypes.object,\r\n authData: PropTypes.object,\r\n permissions: PropTypes.array,\r\n showModal: PropTypes.func,\r\n };\r\n}\r\n\r\nexport default ClientHeader;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Header/components/ClientSide/ClientHeader.js","import React, { PureComponent } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport onClickOutside from \"react-onclickoutside\";\r\nimport ManagementTools from \"../../../../ManagementTools/ManagementTools\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faTools, faBook } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { connect } from \"react-redux\";\r\nimport { headerConstants } from \"../../../constants\";\r\nimport { getClientDashboard } from \"../../../../../store/reducers/clientDashboard\";\r\nimport { globals } from '../../../../../globals';\r\nimport Analytics from '../../../../../components/Analytics';\r\n\r\nconst EventTracker = Analytics('Tools Menu');\r\n\r\nclass HeaderIcons extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isOpenResources: false,\r\n isOpenSettings: false,\r\n enabledColor: false,\r\n };\r\n this.toggleColorPallet = this.toggleColorPallet.bind(this);\r\n this.changeDropDown = this.changeDropDown.bind(this);\r\n this.openModal = this.openModal.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getClientDashboard();\r\n }\r\n\r\n toggleColorPallet = () => {\r\n const { enabledColor } = this.state;\r\n const contentElement = document.querySelector(\".content-wrap-body\");\r\n this.setState(\r\n {\r\n enabledColor: !enabledColor,\r\n },\r\n () => {\r\n if (!enabledColor) {\r\n contentElement.classList.add(\"neutral-pallet\");\r\n } else {\r\n contentElement.classList.remove(\"neutral-pallet\");\r\n }\r\n }\r\n );\r\n };\r\n\r\n openUrlInBrowser = (url, title) => () => {\r\n if (url && url.length !== 0) {\r\n window.open(url);\r\n EventTracker('Menu - ' + title);\r\n } \r\n };\r\n\r\n openModal = (id) => () => {\r\n const { getClientUsers, authData, showModal } = this.props;\r\n this.setState({ listId: id, activeDropDown: false });\r\n if (id === \"userList\") {\r\n getClientUsers(authData.ClientId);\r\n }\r\n showModal(`Management-tools-${id}`);\r\n };\r\n\r\n renderClientTools = (isActive, authData) => {\r\n return (\r\n \r\n
Tools
\r\n
\r\n {this.props.managementTools.map((item, i) => {\r\n return (\r\n
\r\n {item.Title}\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n };\r\n\r\n renderResources = (isActive) => {\r\n return (\r\n \r\n
Resources
\r\n
\r\n {this.props.clientResources.map((item, i) => {\r\n if (item.GroupUrl) {\r\n return (\r\n
\r\n {item.GroupName}\r\n
\r\n );\r\n } else\r\n return [\r\n
\r\n {item.GroupName}\r\n
,\r\n item.Resources.map((item, i) => {\r\n return (\r\n
\r\n {item.ResourceName}\r\n
\r\n );\r\n }),\r\n ];\r\n })}\r\n
\r\n );\r\n };\r\n\r\n handleClickOutside = () => {\r\n this.setState({ activeDropDown: false });\r\n };\r\n\r\n changeDropDown = (type) => () => {\r\n this.setState({ activeDropDown: type });\r\n };\r\n\r\n render() {\r\n const { onClick, checkHomeRoute, clientResources, managementTools, messages, authData } = this.props;\r\n const { activeDropDown } = this.state;\r\n const { listId } = this.state;\r\n\r\n return (\r\n \r\n
\r\n \r\n {this.renderClientTools(activeDropDown, authData)}\r\n
\r\n
\r\n
\r\n \r\n {this.renderResources(activeDropDown)}\r\n
\r\n
\r\n
\r\n sign out\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n static propTypes = {\r\n onClick: PropTypes.func,\r\n location: PropTypes.string,\r\n showModal: PropTypes.func,\r\n authData: PropTypes.object,\r\n getClientUsers: PropTypes.func,\r\n checkHomeRoute: PropTypes.bool,\r\n getClientDashboard: PropTypes.func,\r\n clientResources: PropTypes.array,\r\n managementTools: PropTypes.array,\r\n messages: PropTypes.array,\r\n };\r\n}\r\n\r\nexport default connect(\r\n (state) => ({\r\n authData: state.auth.authData,\r\n messages: state.clientDashboard.formDataValue.messages,\r\n clientResources: state.clientDashboard.formDataValue.clientResources,\r\n managementTools: state.clientDashboard.formDataValue.managementTools,\r\n }),\r\n {\r\n getClientDashboard,\r\n }\r\n)(onClickOutside(HeaderIcons));\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Header/components/ClientSide/components/HeaderIcons.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport { Redirect, Route } from \"react-router-dom\";\r\nimport STSComponent from \"../../../STSComponent/STSComponent\"\r\nimport { returnNavigation } from '../../helpers'\r\nimport HeaderIcons from './components/HeaderIcons'\r\nimport { globals } from '../../../../globals';\r\nimport './css/IntranetHeader.scss'\r\n\r\nclass RedirectStateScapeLegacyLogout extends STSComponent {\r\n componentDidMount() {\r\n window.location.href = globals.servicesUrl + \"/search/logoff.aspx?l=internal\";\r\n }\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nclass IntranetHeader extends STSComponent {\r\n constructor (props) {\r\n super(props)\r\n this.state = {\r\n shutdown: false,\r\n }\r\n } \r\n\r\n signOutLegacy = () => {\r\n localStorage.removeItem('authData')\r\n this.setState({ shutdown: true });\r\n }\r\n\r\n render () {\r\n const { permissions, location, showModal, authData, signOut } = this.props\r\n const { shutdown } = this.state\r\n\r\n if (shutdown) { \r\n return \r\n } else {\r\n return \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {returnNavigation(permissions, location.pathname)}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n }\r\n\r\n static propTypes = {\r\n permissions: PropTypes.array,\r\n location: PropTypes.object,\r\n showModal: PropTypes.func,\r\n signOut: PropTypes.func,\r\n authData: PropTypes.object\r\n }\r\n}\r\n\r\nexport default IntranetHeader\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Header/components/IntranetSide/IntranetHeader.js","import {\r\n faBook,\r\n faCalendarAlt,\r\n faCog,\r\n faHome,\r\n faTools, \r\n faSync\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport PropTypes from \"prop-types\";\r\nimport React, { PureComponent } from \"react\";\r\nimport onClickOutside from \"react-onclickoutside\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ManagementTools from \"../../../../ManagementTools/ManagementTools\";\r\nimport { headerConstants } from \"../../../constants\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst history = createBrowserHistory();\r\n\r\nclass HeaderIcons extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isOpenResources: false,\r\n isOpenSettings: false,\r\n enabledColor: false,\r\n };\r\n this.toggleColorPallet = this.toggleColorPallet.bind(this);\r\n this.changeDropDown = this.changeDropDown.bind(this);\r\n this.openModal = this.openModal.bind(this);\r\n }\r\n\r\n\r\n toggleColorPallet = () => {\r\n const { enabledColor } = this.state;\r\n const contentElement = document.querySelector(\".content-wrap-body\");\r\n this.setState(\r\n {\r\n enabledColor: !enabledColor,\r\n },\r\n () => {\r\n if (!enabledColor) {\r\n contentElement.classList.add(\"neutral-pallet\");\r\n } else {\r\n contentElement.classList.remove(\"neutral-pallet\");\r\n }\r\n }\r\n );\r\n };\r\n\r\n openModal = (id) => () => {\r\n const { getClientUsers, authData, showModal } = this.props;\r\n this.setState({ listId: id, activeDropDown: false });\r\n if (id === \"userList\") {\r\n getClientUsers(authData.ClientId);\r\n }\r\n showModal(`Management-tools-${id}`);\r\n };\r\n\r\n renderResources = () => {\r\n const { authData } = this.props;\r\n return (\r\n \r\n {headerConstants.resources.map((item) => {\r\n return (\r\n \r\n {item.title}\r\n \r\n );\r\n })}\r\n
\r\n );\r\n };\r\n\r\n openUrlInBrowser = (url) => () => {\r\n if (url && url.length !== 0) {\r\n window.open(url);\r\n }\r\n };\r\n\r\n renderTools = () => {\r\n const { authData } = this.props;\r\n\r\n return headerConstants.tools.length > 0 ? (\r\n \r\n {headerConstants.tools.map((item) => {\r\n return (\r\n
\r\n {item.title}\r\n
\r\n );\r\n })}\r\n
\r\n ) : null;\r\n };\r\n\r\n renderSettings = (isActive) => {\r\n const enabledColor = this.state.enabledColor;\r\n const className = isActive === \"settings\" ? \"\" : \"d-none\";\r\n return (\r\n \r\n
\r\n
\r\n
Neutral Color Pallet\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n handleClickOutside = () => {\r\n this.setState({ activeDropDown: false });\r\n };\r\n\r\n changeDropDown = (type) => () => {\r\n // if (\r\n // event.target.parentNode.classList.contains(\"header-icons\") ||\r\n // event.target.classList.contains(\"header-icons\") ||\r\n // event.target.parentNode.classList.contains(\"tools-dropdown\")\r\n // ) {\r\n // if (type === this.state.activeDropDown) {\r\n // this.setState({ activeDropDown: false });\r\n // } else {\r\n this.setState({ activeDropDown: type });\r\n //}\r\n //}\r\n };\r\n\r\n render() {\r\n const { location, onClick } = this.props;\r\n const { activeDropDown } = this.state;\r\n const { listId } = this.state;\r\n const disabledIconClass = \"disabled\";\r\n return (\r\n \r\n {\r\n location === \"/\" ? \r\n
{window.location.href=\"/\"}}>\r\n \r\n \r\n : \r\n
\r\n
\r\n \r\n }\r\n \r\n
\r\n \r\n {this.renderTools()}\r\n
\r\n
\r\n \r\n {this.renderResources()}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {this.renderSettings(activeDropDown)}\r\n
\r\n
\r\n
\r\n Sign out\r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n static propTypes = {\r\n onClick: PropTypes.func,\r\n location: PropTypes.string,\r\n showModal: PropTypes.func,\r\n authData: PropTypes.object, \r\n getClientUsers: PropTypes.func,\r\n }; \r\n}\r\n\r\nexport default onClickOutside(HeaderIcons);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Header/components/IntranetSide/components/HeaderIcons.js","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const returnNavigation = (authData, location) => {\r\n return navigationItems\r\n .map((item) => {\r\n let checkNavBlock = [];\r\n const pathNames = item.dropDownOptions.map((e) => e.to);\r\n const isActive = pathNames.includes(location)\r\n ? \"header-link--active\"\r\n : \"\";\r\n const options = item.dropDownOptions.map((el) => {\r\n const checkDDOptions = item.dropDownOptions;\r\n for (let k = 0; k < checkDDOptions.length; k++) {\r\n if (authData.includes(checkDDOptions[k].permission)) {\r\n checkNavBlock = [...checkNavBlock, checkDDOptions[k].permission];\r\n }\r\n }\r\n const opt = authData.includes(el.permission);\r\n const className =\r\n opt || el.permission === \"\"\r\n ? \"header-link\"\r\n : \"header-link disabled-block d-none\";\r\n return (\r\n \r\n {el.option}\r\n \r\n );\r\n });\r\n return (\r\n \r\n {item.text}\r\n
\r\n \r\n \r\n
{options}
\r\n
\r\n );\r\n })\r\n .filter((item) => item.text !== \"Clients\");\r\n};\r\n\r\nexport const returnMobileMenu = () => {\r\n return navigationItems.map((item) => {\r\n return (\r\n \r\n {item.text}\r\n {item.dropDownOptions.map((el, i) => {\r\n return (\r\n \r\n {el.option}\r\n \r\n );\r\n })}\r\n
\r\n );\r\n });\r\n};\r\n\r\nconst navigationItems = [\r\n {\r\n to: \"/#\",\r\n text: \"Legis\",\r\n dropDownOptions: [\r\n {\r\n to: \"/legisnewrecordreview\",\r\n option: \"new record review\",\r\n permission: \"Legis: View NRR\",\r\n },\r\n {\r\n to: \"/legistrackinternal\",\r\n option: \"Legis Track\",\r\n permission: \"Legis: Internal View\",\r\n },\r\n {\r\n to: \"/statusreview\",\r\n option: \"Status Review\",\r\n permission: \"Status Processing: View\",\r\n },\r\n {\r\n to: \"/sponsorreview\",\r\n option: \"Sponsor Review\",\r\n permission: \"Sponsor Review: View\",\r\n },\r\n {\r\n to: \"/rawbilldata\",\r\n option: \"Raw Bill Data Entry\",\r\n permission: \"RawData: Edit\",\r\n },\r\n {\r\n to: \"/historyhelptext\",\r\n option: \"History Action Help Text\",\r\n permission: \"HistoryActionHelp: View\",\r\n },\r\n {\r\n to: \"/legislatordata\",\r\n option: \"Legislator Management\",\r\n permission: \"Legislator: Edit\",\r\n },\r\n ],\r\n },\r\n {\r\n to: \"/#\",\r\n text: \"Regs\",\r\n dropDownOptions: [\r\n {\r\n to: \"/registerreview\",\r\n option: \"Register Review\",\r\n permission: \"Register Review: View\",\r\n },\r\n {\r\n to: \"/regsurls\",\r\n option: \"Agency Review\",\r\n permission: \"Regs: View URLs\",\r\n },\r\n {\r\n to: \"/agencyedit\",\r\n option: \"Agency Edit\",\r\n permission: \"Regs: View Agencies\",\r\n },\r\n {\r\n to: \"/regsnewrecordreview\",\r\n option: \"new record review\",\r\n permission: \"Regs: View NRR\",\r\n },\r\n ],\r\n },\r\n {\r\n to: \"/#\",\r\n text: \"Local\",\r\n dropDownOptions: [\r\n {\r\n to: \"/localreview\",\r\n option: \"local review\",\r\n permission: \"Local Review: View\",\r\n },\r\n {\r\n to: \"/localtrackinternal\",\r\n option: \"local track\",\r\n permission: \"Local: Internal View\",\r\n },\r\n {\r\n to: \"/clientlocalities\",\r\n option: \"client localities\",\r\n permission: \"Local Review: View Client Localities\",\r\n },\r\n ],\r\n },\r\n {\r\n to: \"/#\",\r\n text: \"Global\",\r\n dropDownOptions: [\r\n {\r\n to: \"/#\",\r\n option: \"option 1\",\r\n permission: \"global permission\",\r\n },\r\n ],\r\n },\r\n {\r\n to: \"/#\",\r\n text: \"Reports\",\r\n dropDownOptions: [\r\n {\r\n to: \"/#\",\r\n option: \"option 1\",\r\n permission: \"reports permission\",\r\n },\r\n ],\r\n },\r\n {\r\n to: \"/clients\",\r\n text: \"Clients\",\r\n dropDownOptions: [\r\n {\r\n to: \"/clientmanagement\",\r\n option: \"Client Management\",\r\n permission: \"Client Management permission\",\r\n },\r\n ],\r\n },\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Header/helpers.js","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport STSComponent from \"../STSComponent/STSComponent\";\r\nimport \"./css/InfoLine.scss\";\r\n\r\nclass InfoLine extends STSComponent {\r\n returnTitle = (path) => {\r\n const { authData } = this.props;\r\n switch (path.replace(/^(.+?)\\/*?$/, \"$1\")) {\r\n case \"/legistrack\":\r\n case \"/regstrack\":\r\n case \"/localtrack\":\r\n case \"/billfinder\":\r\n return \"Legislative & Regulatory Tracking\";\r\n case \"/clientmanagement\":\r\n return \"Client Management\";\r\n case \"/localreview\":\r\n return \"Local Review\";\r\n case \"/localtrackinternal\":\r\n return \"Local Track\";\r\n case \"/registerreview\":\r\n return \"Register Review\";\r\n case \"/regsnewrecordreview\":\r\n return \"New Record Review - Regs\";\r\n case \"/legisnewrecordreview\":\r\n return \"New Record Review - Legis\";\r\n case \"/legistrackinternal\":\r\n return \"Legis Track\";\r\n case \"/statusreview\":\r\n return \"Status Review - Legis\";\r\n case \"/currentlegislation\":\r\n return \"Current Legislation\";\r\n case \"/calendar\":\r\n return \"Calendar\";\r\n case \"/sponsorreview\":\r\n return \"Sponsor Review\";\r\n case \"/groupings\":\r\n return \"Groupings\";\r\n case \"/highlighter\":\r\n return \"Highlighter\";\r\n case \"/regsurls\":\r\n return \"Agency Review\";\r\n case \"/rawbilldata\":\r\n return \"Raw Bill Data Entry\";\r\n case \"/clientlocalities\":\r\n return \"Client Localities\";\r\n case \"/agencyedit\":\r\n return \"Agency Edit\";\r\n case \"/historyhelptext\":\r\n return \"History Action Help Text\";\r\n case \"/meetingdates\":\r\n return \"Public Policy Meetings\";\r\n case \"/legislatordata\":\r\n return \"Legislator Management\";\r\n case \"/\":\r\n return authData.Permissions.includes(\"Intranet\")\r\n ? \"\"\r\n : `${authData.ClientName} User Dashboard`;\r\n }\r\n };\r\n\r\n render() {\r\n const infoLineSubtitle = sessionStorage.getItem(\"infoLineSubtitle\");\r\n window.sessionStorage.removeItem(\"infoLineSubtitle\");\r\n\r\n const path =\r\n this.returnTitle(this.props.infoLineTitle) +\r\n (infoLineSubtitle ? \" - \" + infoLineSubtitle : \"\");\r\n return (\r\n \r\n );\r\n }\r\n\r\n static propTypes = {\r\n authData: PropTypes.object,\r\n infoLineTitle: PropTypes.string,\r\n };\r\n}\r\n\r\nexport default connect(\r\n (state) => ({\r\n authData: state.auth.authData,\r\n infoLineTitle: state.router.location.pathname,\r\n }),\r\n {}\r\n)(InfoLine);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/InfoLine/InfoLine.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { page as pageIndex, screenSize } from '../../globals'\r\nimport { updateData } from '../../store/reducers/updateData'\r\nimport DropdownField from '../FormComponents/DropdownField/DropdownField'\r\nimport TabsWrapper from '../ManagementTools/components/TabsWrapper'\r\nimport STSComponent from '../STSComponent/STSComponent'\r\nimport DeletedRecordLine from './components/DeletedRecordLine'\r\nimport RestoreButtonWithRecords from './components/RestoreButtonWithRecords'\r\nimport { constants } from './constants'\r\nimport './css/ManagementDeletedRecordsArchive.scss'\r\n\r\nclass DeletedRecordsArchive extends STSComponent {\r\n returnTabContent = (type) => {\r\n const { trackData, updateData } = this.props\r\n const classNames = constants.titles.map(item => item.className)\r\n return \r\n
\r\n {window.innerWidth <= screenSize.extraSmall\r\n ? null\r\n :
{this.returnTableTitle()}
}\r\n {constants.data.map((item, i) => {\r\n return
\r\n })}\r\n
\r\n }\r\n\r\n returnTableTitle = () => {\r\n return constants.titles.map((item, i) => {\r\n return \r\n {item.title}\r\n
\r\n })\r\n }\r\n\r\n render () {\r\n const { trackData, updateData } = this.props\r\n return \r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func\r\n }\r\n}\r\n\r\nexport default connect(state => ({\r\n trackData: state.deletedRecordsArchive.formDataValue.D\r\n}), {\r\n updateData\r\n})(DeletedRecordsArchive)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementDeletedRecordsArchive/ManagementDeletedRecordsArchive.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport { page as pageIndex, screenSize } from '../../../globals'\r\nimport CheckboxesList from '../../FormComponents/CheckboxesList/CheckboxesList'\r\nimport STSComponent from '../../STSComponent/STSComponent'\r\n\r\nclass DeletedRecordLine extends STSComponent {\r\n render () {\r\n const { itemData, trackData, classNames, updateData, id } = this.props\r\n const values = Object.values(itemData)\r\n return \r\n
\r\n {values.map((item, i) => {\r\n return (\r\n
\r\n {item}\r\n {i === 0 ?
Show Detail
: null}\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n }\r\n\r\n static propTypes = {\r\n itemData: PropTypes.object,\r\n trackData: PropTypes.object,\r\n classNames: PropTypes.array,\r\n updateData: PropTypes.func,\r\n id: PropTypes.number\r\n }\r\n}\r\n\r\nexport default DeletedRecordLine\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementDeletedRecordsArchive/components/DeletedRecordLine.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction RestoreButtonWithRecords ({ records }) {\r\n return \r\n
\r\n Restore Checked Records\r\n
\r\n
{records} Records Found
\r\n
\r\n}\r\n\r\nRestoreButtonWithRecords.propTypes = {\r\n records: PropTypes.number\r\n}\r\n\r\nexport default RestoreButtonWithRecords\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementDeletedRecordsArchive/components/RestoreButtonWithRecords.js","export const constants = {\r\n titles: [\r\n {\r\n title: '',\r\n className: 'extra-small'\r\n },\r\n {\r\n title: 'record',\r\n className: 'small'\r\n },\r\n {\r\n title: 'intro date',\r\n className: 'small'\r\n },\r\n {\r\n title: 'subject',\r\n className: 'small'\r\n },\r\n {\r\n title: 'date deleted',\r\n className: 'wide'\r\n },\r\n {\r\n title: 'comments',\r\n className: 'wide'\r\n },\r\n {\r\n title: '',\r\n className: 'small'\r\n }\r\n ],\r\n data: [\r\n {\r\n record: 'Pennsylvania 2011-2012 HB 1910',\r\n introDat: '10/4/2011',\r\n subject: 'Tort/Litigation Issues - P',\r\n dateDeleted: '11.22.2011 autumn.hoffman (Autumn.Hpffman@usaa.com)',\r\n comments: 'Title 40 Regulation of Health Plans - no need to follow'\r\n },\r\n {\r\n record: 'Pennsylvania 2011-2012 HB 1910',\r\n introDat: '10/4/2011',\r\n subject: 'Tort/Litigation Issues - P',\r\n dateDeleted: '11.22.2011 autumn.hoffman (Autumn.Hpffman@usaa.com)',\r\n comments: 'Title 40 Regulation of Health Plans - no need to follow'\r\n }\r\n ]\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementDeletedRecordsArchive/constants.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { connect } from 'react-redux'\r\nimport DropdownField from '../FormComponents/DropdownField/DropdownField'\r\nimport BasicSettings from './components/BasicSettings'\r\nimport AlertsByCategory from './components/AlertsByCategory'\r\nimport AlertsByRecord from './components/AlertsByRecord'\r\nimport ComplianceAlerts from './components/ComplianceAlerts'\r\nimport CustomAlerts from './components/CustomAlerts'\r\nimport { updateAlertData } from '../../store/reducers/emailAlerts'\r\nimport '../../styles/ModalStyles.scss'\r\nimport '../../styles/Select/react-select.scss'\r\nimport { page as pageIndex } from '../../globals'\r\nimport { emailAlertsConstants } from './constants'\r\nimport './css/ManagementEmailAlerts.scss'\r\n\r\nclass EmailAlerts extends React.PureComponent {\r\n constructor (props) {\r\n super(props)\r\n this.returnBasicSettings = this.returnBasicSettings.bind(this)\r\n this.returnCategoryBody = this.returnCategoryBody.bind(this)\r\n this.closeModal = this.closeModal.bind(this)\r\n }\r\n\r\n returnBasicSettings = () => {\r\n return this.props.updateAlertData({ page: pageIndex.dashboard, field: 'emailCategory' }, 'select', 'category', '')\r\n }\r\n\r\n returnCategoryBody = () => {\r\n const { emailManagerTrackData, updateAlertData } = this.props\r\n const categoryType = emailManagerTrackData.emailCategory.radio.category\r\n const props = {\r\n trackData: emailManagerTrackData,\r\n updateData: updateAlertData\r\n }\r\n switch (categoryType) {\r\n case 'legisCategoryAlerts':\r\n case 'regsCategoryAlerts':\r\n case 'localCategoryAlerts':\r\n return \r\n case 'legisRecordAlerts':\r\n case 'regsRecordAlerts':\r\n case 'localRecordAlerts':\r\n return \r\n case 'legisComplianceAlerts':\r\n case 'regsComplianceAlerts':\r\n return \r\n case 'customAlerts':\r\n return \r\n default:\r\n return \r\n }\r\n }\r\n\r\n closeModal = (name) => () => {\r\n this.props.hideModal(name)\r\n }\r\n\r\n render () {\r\n const { emailManagerTrackData, updateAlertData } = this.props\r\n return \r\n
\r\n
\r\n Alerts Category\r\n
\r\n
\r\n
\r\n \r\n
\r\n
Basic Settings
\r\n
\r\n
\r\n
\r\n {this.returnCategoryBody()}\r\n
\r\n }\r\n\r\n static propTypes = {\r\n emailManagerTrackData: PropTypes.object,\r\n updateAlertData: PropTypes.func,\r\n hideModal: PropTypes.func\r\n }\r\n}\r\n\r\nexport default connect(state => ({\r\n emailManagerTrackData: state.emailAlerts.formDataValue\r\n}), {\r\n updateAlertData\r\n})(EmailAlerts)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementEmailAlerts/ManagementEmailAlerts.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport DropdownField from '../../FormComponents/DropdownField/DropdownField'\r\nimport SwitchButton from '../../FormComponents/SwitchButton/Switch'\r\nimport StateProgressBlock from '../../StatesProgress/StatesProgress'\r\nimport { page as pageIndex } from '../../../globals'\r\n\r\nclass AlertsByCategory extends React.PureComponent {\r\n returnSubjectRows = () => {\r\n const { trackData, updateData, type } = this.props\r\n return subjects.map((item, i) => {\r\n const className = trackData[type].radio[item.id]\r\n ? 'alert-row-subj'\r\n : 'alert-row-subj grey-alert-rows'\r\n const fieldType = type === 'localCategoryAlerts' ? 'locality' : 'states'\r\n if (!trackData[type].radio[item.id]) {\r\n trackData[type].radio[item.id] = false\r\n }\r\n return \r\n
\r\n \r\n
\r\n
{item.name}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n })\r\n }\r\n\r\n returnTitle = (type) => {\r\n let title\r\n let subTitle\r\n switch (type) {\r\n case 'legisCategoryAlerts':\r\n title = 'Legislative'\r\n subTitle = 'legislation'\r\n break\r\n case 'regsCategoryAlerts':\r\n title = 'Regulatory'\r\n subTitle = 'regulations'\r\n break\r\n case 'localCategoryAlerts':\r\n title = 'Local Legislative'\r\n subTitle = 'local legislation'\r\n break\r\n }\r\n return { title, subTitle }\r\n }\r\n\r\n render () {\r\n const { type } = this.props\r\n const { title, subTitle } = this.returnTitle(type)\r\n const columnTitles = type !== 'localCategoryAlerts' ? titles : titlesLocal\r\n return \r\n
{title} Alerts by Category
\r\n
\r\n Setup or modify e-mail alerts for {subTitle} by subject and state category\r\n
\r\n
\r\n
\r\n {columnTitles.map((item, i) =>
{item}
)}\r\n
\r\n {this.returnSubjectRows()}\r\n
\r\n
\r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func,\r\n type: PropTypes.string\r\n }\r\n}\r\n\r\nexport default AlertsByCategory\r\n\r\nconst titles = ['Subscribe', 'Subject', 'State', 'Alert Type']\r\nconst titlesLocal = ['Subscribe', 'Subject', 'Locality', 'Alert Type']\r\nconst subjects = [\r\n {\r\n name: 'All subjects',\r\n states: [],\r\n alertType: '',\r\n id: 'sub1'\r\n },\r\n {\r\n name: 'subject 1',\r\n states: [],\r\n alertType: '',\r\n id: 'sub2'\r\n },\r\n {\r\n name: 'subject 2',\r\n states: [],\r\n alertType: '',\r\n id: 'sub3'\r\n }\r\n]\r\nconst options = [\r\n { value: 'new', label: 'New Alerts Only' },\r\n { value: 'newUpd', label: 'New Alerts and Updates' },\r\n]\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementEmailAlerts/components/AlertsByCategory.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport SwitchButton from '../../FormComponents/SwitchButton/Switch'\r\nimport { page as pageIndex } from '../../../globals'\r\n\r\nclass AlertsByRecord extends React.PureComponent {\r\n returnSubjectRows = () => {\r\n const { trackData, updateData, type } = this.props\r\n const { columnTitle } = this.returnTitle(type)\r\n return subjects.map((item, i) => {\r\n const className = trackData[type].radio[item.id]\r\n ? 'alert-row-record'\r\n : 'alert-row-record grey-alert-rows'\r\n if (!trackData[type].radio[item.id]) {\r\n trackData[type].radio[item.id] = false\r\n }\r\n return \r\n
\r\n \r\n
\r\n {this.returnRecords(columnTitle, item)}\r\n
\r\n
\r\n })\r\n }\r\n\r\n returnRecords = (type, itemData) => {\r\n switch (type) {\r\n case 'L':\r\n return \r\n {itemData.bill}
\r\n {itemData.session}
\r\n {itemData.summary}
\r\n \r\n case 'R':\r\n return \r\n {itemData.state}
\r\n {itemData.title}
\r\n {itemData.citation}
\r\n {itemData.summary}
\r\n \r\n case 'O':\r\n return \r\n {itemData.locality}
\r\n {itemData.title}
\r\n {itemData.summary}
\r\n \r\n }\r\n }\r\n\r\n returnTitle = (type) => {\r\n let title\r\n let subTitle\r\n let columnTitle\r\n switch (type) {\r\n case 'legisRecordAlerts':\r\n title = 'Legislative'\r\n subTitle = 'bills'\r\n columnTitle = 'L'\r\n break\r\n case 'regsRecordAlerts':\r\n title = 'Regulatory'\r\n subTitle = 'regulations'\r\n columnTitle = 'R'\r\n break\r\n case 'localRecordAlerts':\r\n title = 'Local Legislative'\r\n subTitle = 'local legislation'\r\n columnTitle = 'O'\r\n break\r\n }\r\n return { title, subTitle, columnTitle }\r\n }\r\n\r\n render () {\r\n const { type } = this.props\r\n const { title, subTitle, columnTitle } = this.returnTitle(type)\r\n return \r\n
{title} Alerts by Record
\r\n
Modify e-mail alert settings for specific {subTitle}.
\r\n
\r\n
\r\n {column[columnTitle].map((item, i) => {\r\n return
{item.title}
\r\n })}\r\n
\r\n {this.returnSubjectRows()}\r\n
\r\n
\r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func,\r\n type: PropTypes.string\r\n }\r\n}\r\n\r\nexport default AlertsByRecord\r\n\r\nconst column = {\r\n L: [\r\n { title: 'Subscribe', className: '' },\r\n { title: 'Bill', className: 'small-column-record' },\r\n { title: 'Session', className: 'small-column-record' },\r\n { title: 'Summary', className: 'summary-sub' },\r\n { title: 'Detail', className: 'small-column-record' }\r\n ],\r\n R: [\r\n { title: 'Subscribe', className: '' },\r\n { title: 'State', className: 'very-small-column-record' },\r\n { title: 'Title', className: 'small-column-record' },\r\n { title: 'Citation', className: 'small-column-record citation' },\r\n { title: 'Summary', className: 'summary-sub sub-small' },\r\n { title: 'Detail', className: 'small-column-record' }\r\n ],\r\n O: [\r\n { title: 'Subscribe', className: '' },\r\n { title: 'Locality', className: 'small-column-record' },\r\n { title: 'Title', className: 'small-column-record' },\r\n { title: 'Summary', className: 'summary-sub' },\r\n { title: 'Detail', className: 'small-column-record' }\r\n ]\r\n}\r\nconst subjects = [\r\n {\r\n bill: 'SB 237',\r\n session: '2017-2018',\r\n summary: 'An introduced: Amends the Enviromental Pretection Act.',\r\n id: 'sub1',\r\n state: 'VT',\r\n title: 'Rules for Administrative Citations and Penalties and Debarment',\r\n citation: '24 010 005',\r\n locality: 'AZ: Tempe'\r\n },\r\n {\r\n bill: 'SB 239',\r\n session: '2017-2018',\r\n summary: 'An introduced: Amends the Enviromental Pretection Act.',\r\n id: 'sub2',\r\n state: 'CA',\r\n title: 'Record Title',\r\n citation: '24 010 005',\r\n locality: 'VA: Reston'\r\n }\r\n]\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementEmailAlerts/components/AlertsByRecord.js","import React, { PureComponent, Fragment } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport InputField from '../../FormComponents/InputField/InputField'\r\nimport CheckboxesList from '../../FormComponents/CheckboxesList/CheckboxesList'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faEnvelope } from '@fortawesome/free-solid-svg-icons'\r\nimport { emailAlertsConstants } from '../constants'\r\nimport { page as pageIndex } from '../../../globals'\r\n\r\nclass BasicSettings extends PureComponent {\r\n render () {\r\n const { trackData, updateData } = this.props\r\n return \r\n \r\n
\r\n E-Mail Address\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Alerts Options\r\n
\r\n
\r\n Title for options here\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func\r\n }\r\n}\r\n\r\nexport default BasicSettings\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementEmailAlerts/components/BasicSettings.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport DropdownField from '../../FormComponents/DropdownField/DropdownField'\r\nimport SwitchButton from '../../FormComponents/SwitchButton/Switch'\r\nimport StateProgressBlock from '../../StatesProgress/StatesProgress'\r\nimport { page as pageIndex } from '../../../globals'\r\n\r\nclass ComplianceAlerts extends React.PureComponent {\r\n returnSubjectRows = () => {\r\n const { trackData, updateData, type } = this.props\r\n return subjects.map((item, i) => {\r\n const className = trackData[type].radio[item.id]\r\n ? 'alert-row-subj'\r\n : 'alert-row-subj grey-alert-rows'\r\n if (!trackData[type].radio[item.id]) {\r\n trackData[type].radio[item.id] = false\r\n }\r\n return \r\n
\r\n \r\n
\r\n
{item.name}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n })\r\n }\r\n\r\n returnTitle = () => {\r\n const { type } = this.props\r\n let title\r\n let subTitle\r\n switch (type) {\r\n case 'legisComplianceAlerts':\r\n title = 'Legislative'\r\n subTitle = 'legislation'\r\n break\r\n case 'regsComplianceAlerts':\r\n title = 'Regulatory'\r\n subTitle = 'regulations'\r\n break\r\n }\r\n return { title, subTitle }\r\n }\r\n\r\n render () {\r\n const { title, subTitle } = this.returnTitle()\r\n return \r\n
{title} Alerts by Category
\r\n
Setup or modify e-mail alerts for {subTitle} by subject and state
\r\n
\r\n
\r\n {titles.map((item, i) =>
{item}
)}\r\n
\r\n {this.returnSubjectRows()}\r\n
\r\n
\r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func,\r\n type: PropTypes.string\r\n }\r\n}\r\n\r\nexport default ComplianceAlerts\r\n\r\nconst titles = ['Subscribe', 'Subject', 'State', 'Alert Frequency']\r\nconst subjects = [\r\n {\r\n name: 'All subjects',\r\n states: [],\r\n alertType: true,\r\n id: 'sub1'\r\n },\r\n {\r\n name: 'sample subject 1',\r\n states: [],\r\n alertType: false,\r\n id: 'sub2'\r\n }\r\n]\r\nconst options = [\r\n { value: 'dailyQuarterly', label: 'Daily Alerts + Quarterly Summary' },\r\n { value: 'dailyOnly', label: 'Daily Alerts Only' },\r\n { value: 'weeklyQuarterly', label: 'Weekly Alerts + Quarterly Summary' },\r\n { value: 'weeklyOnly', label: 'Weekly Alerts Only' }\r\n]\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementEmailAlerts/components/ComplianceAlerts.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport SwitchButton from '../../FormComponents/SwitchButton/Switch'\r\nimport { page as pageIndex } from '../../../globals'\r\n\r\nclass CustomAlerts extends React.PureComponent {\r\n returnSubjectRows = () => {\r\n const { trackData, updateData } = this.props\r\n return subjects.map((item, i) => {\r\n const className = trackData.customAlerts.radio[item.id]\r\n ? 'alert-row-record custom-row'\r\n : 'alert-row-record custom-row grey-alert-rows'\r\n if (!trackData.customAlerts.radio[item.id]) {\r\n trackData.customAlerts.radio[item.id] = false\r\n }\r\n return \r\n
\r\n \r\n
\r\n
{item.type}
\r\n
{item.listName}
\r\n
\r\n })\r\n }\r\n\r\n render () {\r\n return \r\n
Custom Alerts
\r\n
\r\n Setup or modify e-mail alerts based on personal lists created in Legis Track or Regs Track.\r\n
\r\n
\r\n
\r\n {titles.map((item, i) => {\r\n return
{item}
\r\n })}\r\n
\r\n {this.returnSubjectRows()}\r\n
\r\n
\r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func\r\n }\r\n}\r\n\r\nexport default CustomAlerts\r\n\r\nconst titles = ['Subscribe', 'Type', 'List Name']\r\nconst subjects = [\r\n {\r\n type: 'Legis Track',\r\n listName: 'LIst name 1',\r\n id: 'sub1'\r\n },\r\n {\r\n type: 'Regs Track',\r\n listName: 'LIst name 2',\r\n id: 'sub2'\r\n },\r\n {\r\n type: 'Regs Track',\r\n listName: 'LIst name 3',\r\n id: 'sub3'\r\n },\r\n {\r\n type: 'Regs Track',\r\n listName: 'LIst name 4',\r\n id: 'sub4'\r\n }\r\n]\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementEmailAlerts/components/CustomAlerts.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { page as pageIndex, screenSize } from '../../globals'\r\nimport { updateData } from '../../store/reducers/updateData'\r\nimport DropdownField from '../FormComponents/DropdownField/DropdownField'\r\nimport TabsWrapper from '../ManagementTools/components/TabsWrapper'\r\nimport STSComponent from '../STSComponent/STSComponent'\r\nimport SubjectChangesRow from './components/SubjectChangesRow'\r\nimport { constants } from './constants'\r\nimport './css/ManagementSubjectChanges.scss'\r\n\r\nclass SubjectChanges extends STSComponent {\r\n returnTabsContent = () => {\r\n return \r\n
2 records found
\r\n {window.innerWidth <= screenSize.extraSmall ? null :
\r\n {constants.subjectTitles.map((item, i) => {\r\n return
\r\n {item.title}\r\n
\r\n })\r\n }\r\n
}\r\n {constants.data.map((item, i) =>
)}\r\n
\r\n }\r\n\r\n render () {\r\n const { trackData, updateData } = this.props\r\n return \r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n updateData: PropTypes.func\r\n }\r\n}\r\n\r\nexport default connect(state => ({\r\n trackData: state.subjectChanges.formDataValue.D\r\n}), {\r\n updateData\r\n})(SubjectChanges)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementSubjectChanges/ManagementSubjectChanges.js","import PropTypes from 'prop-types';\r\nimport React, { Fragment } from 'react';\r\nimport { screenSize } from '../../../globals';\r\nimport STSComponent from \"../../STSComponent/STSComponent\";\r\nimport { constants } from '../constants';\r\n\r\nclass SubjectChangesRow extends STSComponent {\r\n render () {\r\n const { itemData } = this.props\r\n const classNames = constants.subjectTitles.map(item => item.className)\r\n const values = Object.values(itemData)\r\n return \r\n {values.map((elem, k) =>
\r\n {window.innerWidth <= screenSize.extraSmall ? constants.subjectTitles[k].title : null}\r\n \r\n {Array.isArray(elem)\r\n ? elem.map((item, i) =>
{item})\r\n : k === 0\r\n ?
\r\n {elem}\r\n show detail
\r\n \r\n : elem}\r\n
\r\n \r\n )}\r\n
\r\n }\r\n\r\n static propTypes = {\r\n itemData: PropTypes.object\r\n }\r\n}\r\n\r\nexport default SubjectChangesRow\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementSubjectChanges/components/SubjectChangesRow.js","import React from 'react'\r\nimport DeletedRecordsArchive from '../ManagementDeletedRecordsArchive/ManagementDeletedRecordsArchive'\r\nimport EmailAlerts from '../ManagementEmailAlerts/ManagementEmailAlerts'\r\nimport SubjectChanges from '../ManagementSubjectChanges/ManagementSubjectChanges'\r\nimport ManagementTrackingStats from '../ManagementTrackingStats/ManagementTrackingStats'\r\nimport ManagementUserList from '../ManagementUserList/ManagementUserList'\r\n\r\nexport const returnModalData = (listId, trackData, isEdited, hideModal, userGetData) => {\r\n let title = ''\r\n let node = null\r\n switch (listId) {\r\n case 'contactSpecs':\r\n title = 'Contract Specs'\r\n return { title, node }\r\n case 'emailAlertManager':\r\n title = 'Email Alerts Manager'\r\n node = \r\n return { title, node }\r\n case 'userList':\r\n title = 'User List'\r\n node = \r\n return { title, node }\r\n case 'trackingStats':\r\n title = 'Tracking Stats'\r\n node = \r\n return { title, node }\r\n case 'deletedRecordsArchive':\r\n title = 'Deleted Records Archive'\r\n node = \r\n return { title, node }\r\n case 'subjectChangesByUser':\r\n title = 'Subject Changes By User'\r\n node = \r\n return { title, node }\r\n default:\r\n return { title, node }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementTools/helpers.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { page as pageIndex } from '../../globals'\r\nimport ExportButtons from '../ExportButtons/ExportButtons'\r\nimport DropdownField from '../FormComponents/DropdownField/DropdownField'\r\nimport TabsWrapper from '../ManagementTools/components/TabsWrapper'\r\nimport STSComponent from '../STSComponent/STSComponent'\r\nimport CurrentYearLine from './components/CurrentYearLine'\r\nimport StateBreakdown from './components/StateBreakdown'\r\nimport SubjectBreakdown from './components/SubjectBreakDown'\r\nimport SummaryTracking from './components/SummaryTracking'\r\nimport { constants } from './constants'\r\nimport './css/ManagementTrackingStats.scss'\r\n\r\nclass ManagementTrackingStats extends STSComponent {\r\n returnNodes = (type) => {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n render () {\r\n const { trackData } = this.props\r\n return \r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object\r\n }\r\n}\r\n\r\nexport default connect(state => ({\r\n trackData: state.trackingStats.formDataValue.D\r\n}), {})(ManagementTrackingStats)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementTrackingStats/ManagementTrackingStats.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction CurrentYearLine ({ date }) {\r\n return \r\n Current year database - as of {date}\r\n
\r\n}\r\n\r\nCurrentYearLine.propTypes = {\r\n date: PropTypes.string\r\n}\r\n\r\nexport default CurrentYearLine\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementTrackingStats/components/CurrentYearLine.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport STSComponent from '../../STSComponent/STSComponent'\r\nimport { constants } from '../constants'\r\n\r\nclass StateBreakdown extends STSComponent {\r\n returnTitles = () => {\r\n const { field } = this.props\r\n return constants.stateBreakdown[field].map((item, i) => {\r\n return \r\n {item}\r\n
\r\n })\r\n }\r\n\r\n returnTable = () => {\r\n const { field } = this.props\r\n return stateData[field].map((item, i) => {\r\n const values = Object.values(item)\r\n return \r\n {values.map((elem, k) => {\r\n return
\r\n {elem}\r\n
\r\n })\r\n }\r\n
\r\n })\r\n }\r\n\r\n render () {\r\n const { title } = this.props\r\n return \r\n
{title}
\r\n
\r\n {this.returnTitles()}\r\n
\r\n {this.returnTable()}\r\n
\r\n }\r\n\r\n static propTypes = {\r\n field: PropTypes.string,\r\n title: PropTypes.string\r\n }\r\n}\r\n\r\nexport default StateBreakdown\r\n\r\nconst stateData = {\r\n legis: [\r\n {\r\n state: 'Illinois',\r\n billsIntroduced: 0,\r\n billsEnacted: 0\r\n },\r\n {\r\n state: 'Alaska',\r\n billsIntroduced: 1,\r\n billsEnacted: 1\r\n },\r\n {\r\n state: 'Arizona',\r\n billsIntroduced: 0,\r\n billsEnacted: 0\r\n },\r\n {\r\n state: 'Washington',\r\n billsIntroduced: 1,\r\n billsEnacted: 1\r\n }\r\n ],\r\n regs: [\r\n {\r\n state: 'Oregon',\r\n approved: 0,\r\n total: 1\r\n }\r\n ],\r\n local: [\r\n {\r\n state: 'Oregon',\r\n approved: 0,\r\n total: 1\r\n }\r\n ]\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementTrackingStats/components/StateBreakdown.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport STSComponent from '../../STSComponent/STSComponent'\r\nimport { constants } from '../constants'\r\n\r\nclass SubjectBreakdown extends STSComponent {\r\n returnTitles = () => {\r\n const { field } = this.props\r\n return constants.subjectBreakdown.titles[field].map((item, i) => {\r\n return \r\n {item.title}\r\n
\r\n })\r\n }\r\n\r\n returnTable = () => {\r\n const { field } = this.props\r\n return tableData[field].map((item, i) => {\r\n const values = Object.values(item)\r\n const classNames = constants.subjectBreakdown.classNames[field]\r\n return \r\n {values.map((elem, k) => {\r\n return
\r\n {elem}\r\n
\r\n })\r\n }\r\n
\r\n })\r\n }\r\n\r\n render () {\r\n const { title } = this.props\r\n return \r\n
{title}
\r\n
\r\n {this.returnTitles()}\r\n
\r\n {this.returnTable()}\r\n
\r\n }\r\n\r\n static propTypes = {\r\n field: PropTypes.string,\r\n title: PropTypes.string\r\n }\r\n}\r\n\r\nexport default SubjectBreakdown\r\n\r\nconst tableData = {\r\n legis: [\r\n {\r\n subject: 'Environmental Subject',\r\n totalBillsIntroduced: 1,\r\n introducingStates: 'WA(1)',\r\n totalBillsEnacted: 1,\r\n enactingStates: 'WA(1)'\r\n },\r\n {\r\n subject: 'Environmental Subject',\r\n totalBillsIntroduced: 1,\r\n introducingStates: 'WA(1)',\r\n totalBillsEnacted: 1,\r\n enactingStates: 'WA(1)'\r\n },\r\n {\r\n subject: 'Labour Workers Compesation',\r\n totalBillsIntroduced: 2,\r\n introducingStates: 'WA(2)',\r\n totalBillsEnacted: 0,\r\n enactingStates: ''\r\n },\r\n {\r\n subject: 'Micro',\r\n totalBillsIntroduced: 1,\r\n introducingStates: 'AK(1)',\r\n totalBillsEnacted: 0,\r\n enactingStates: ''\r\n },\r\n {\r\n subject: 'ABV',\r\n totalBillsIntroduced: 1,\r\n introducingStates: 'AK(1)',\r\n totalBillsEnacted: 0,\r\n enactingStates: ''\r\n }\r\n ],\r\n regs: [\r\n {\r\n issue: 'Pharma Access:: Formularies/PDLs',\r\n stateWithTrackedRegs: 1,\r\n totalRegs: 1,\r\n approvedRegs: 0\r\n },\r\n {\r\n issue: 'Pharma Access:: Formularies/PDLs',\r\n stateWithTrackedRegs: 1,\r\n totalRegs: 1,\r\n approvedRegs: 0\r\n }\r\n ],\r\n local: []\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementTrackingStats/components/SubjectBreakDown.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport STSComponent from '../../STSComponent/STSComponent'\r\n\r\nclass SummaryTracking extends STSComponent {\r\n returnTableRows = () => {\r\n const randomValues = [11778, 6, 3] // TODO: remove when API returns data\r\n return this.props.tableSigns.map((item, i) => {\r\n return \r\n
{item}
\r\n
{randomValues[i]}
\r\n
\r\n })\r\n }\r\n\r\n render () {\r\n const { title } = this.props\r\n return \r\n
{title}
\r\n
{this.returnTableRows()}
\r\n
\r\n }\r\n\r\n static propTypes = {\r\n title: PropTypes.string,\r\n tableSigns: PropTypes.array\r\n }\r\n}\r\n\r\nexport default SummaryTracking\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementTrackingStats/components/SummaryTracking.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport ClientUsers from '../ClientContacts/components/ClientUsers/ClientUsers'\r\nimport ExportButtons from '../ExportButtons/ExportButtons'\r\nimport { page as pageIndex } from '../../globals'\r\nimport { connect } from 'react-redux'\r\nimport './css/ManagementUserList.scss'\r\nimport '../ClientContacts/css/ClientsWrapper.scss'\r\n\r\nclass ManagementUserList extends React.PureComponent {\r\n constructor (props) {\r\n super(props)\r\n this.closeModal = this.closeModal.bind(this)\r\n }\r\n\r\n closeModal = (name) => () => {\r\n this.props.hideModal(name)\r\n }\r\n\r\n render () {\r\n const { trackData, getUserId, isEdited, isFetchingData } = this.props\r\n if (isFetchingData) {\r\n return LOADING...
\r\n } else {\r\n return \r\n \r\n \r\n \r\n }\r\n }\r\n\r\n static propTypes = {\r\n trackData: PropTypes.object,\r\n isEdited: PropTypes.bool,\r\n hideModal: PropTypes.func,\r\n getUserId: PropTypes.func,\r\n isFetchingData: PropTypes.bool\r\n }\r\n}\r\n\r\nexport default connect(state => ({\r\n isFetchingData: state.clientUsers.isFetchingData\r\n}), {})(ManagementUserList)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementUserList/ManagementUserList.js","import React, { PureComponent } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { connect } from 'react-redux'\r\nimport Modal from '../../Modal/Modal'\r\nimport { hideModal } from '../../../store/reducers/modal'\r\nimport { editDeleteStyles } from '../../../globals'\r\nimport '../../../styles/ModalStyles.scss'\r\n\r\nclass DetailedLoginDates extends PureComponent {\r\n constructor (props) {\r\n super(props)\r\n this.closeModal = this.closeModal.bind(this)\r\n }\r\n\r\n closeModal = () => () => {\r\n const { hideModal, id } = this.props\r\n hideModal(`Detailed-${id}`)\r\n }\r\n\r\n render () {\r\n const { id, modal } = this.props\r\n return \r\n \r\n Detailed Dates\r\n
\r\n \r\n
\r\n
\r\n
Date
\r\n
Activity
\r\n
\r\n
\r\n
1/2/2018 11:45 AM
\r\n
Get Legislative Report
\r\n
\r\n
\r\n
1/2/2018 11:45 AM
\r\n
Get Legislative Report
\r\n
\r\n
\r\n
1/2/2018 11:45 AM
\r\n
Get Legislative Report
\r\n
\r\n
\r\n
1/22018 11:45 AM
\r\n
Get Legislative Report
\r\n
\r\n
\r\n
1/2/2018 11:45 AM
\r\n
Get Legislative Report
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n }\r\n\r\n static propTypes = {\r\n id: PropTypes.any,\r\n hideModal: PropTypes.func,\r\n modal: PropTypes.object\r\n }\r\n}\r\n\r\nexport default connect(state => ({}), {\r\n hideModal\r\n})(DetailedLoginDates)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementUserList/components/DetailedLoginDates.js","import React, { PureComponent } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { connect } from 'react-redux'\r\nimport Modal from '../../Modal/Modal'\r\nimport CheckboxesList from '../../FormComponents/CheckboxesList/CheckboxesList'\r\nimport { hideModal } from '../../../store/reducers/modal'\r\nimport { updateUserData } from '../../../store/reducers/clientUsers'\r\nimport { editDeleteStyles } from '../../../globals'\r\nimport { constants } from '../constants'\r\nimport '../../../styles/ModalStyles.scss'\r\n\r\nclass PermissionsModal extends PureComponent {\r\n constructor (props) {\r\n super(props)\r\n this.state = {\r\n isEdited: false\r\n }\r\n this.closeModal = this.closeModal.bind(this)\r\n this.savePermissionChanges = this.savePermissionChanges.bind(this)\r\n }\r\n\r\n closeModal = () => {\r\n const { hideModal, id } = this.props\r\n hideModal(`Permissions-${id}`)\r\n }\r\n\r\n savePermissionChanges = () => {\r\n const { hideModal, id, sendEditedPermissions } = this.props\r\n this.setState({ isEdited: true })\r\n sendEditedPermissions(true)\r\n hideModal(`Permissions-${id}`)\r\n }\r\n\r\n updatePermissionsList = () => {\r\n return constants.permissions.map(item => {\r\n return {\r\n id: item.PermissionId,\r\n text: item.PermissionName,\r\n type: 'checkbox'\r\n }\r\n })\r\n }\r\n\r\n render () {\r\n const { id, trackData, updateUserData, modal } = this.props\r\n return \r\n \r\n
Permissions\r\n
Restore to Default
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n }\r\n\r\n static propTypes = {\r\n id: PropTypes.any,\r\n hideModal: PropTypes.func,\r\n trackData: PropTypes.object,\r\n updateUserData: PropTypes.func,\r\n sendEditedPermissions: PropTypes.func,\r\n modal: PropTypes.object\r\n }\r\n}\r\n\r\nexport default connect(state => ({\r\n trackData: state.clientUsers.formDataValue.clientUsers\r\n}), {\r\n hideModal,\r\n updateUserData\r\n})(PermissionsModal)\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementUserList/components/PermissionsModal.js","export const constants = {\r\n permissions: [\r\n {\r\n PermissionId: '22',\r\n PermissionName: 'Personal Notes'\r\n },\r\n {\r\n PermissionId: '23',\r\n PermissionName: 'Edit Notes Dropdown'\r\n },\r\n {\r\n PermissionId: '24',\r\n PermissionName: 'Group Notes Email Alerts'\r\n },\r\n {\r\n PermissionId: '27',\r\n PermissionName: 'Legis: View'\r\n },\r\n {\r\n PermissionId: '28',\r\n PermissionName: 'Legis: View Group Notes'\r\n },\r\n {\r\n PermissionId: '29',\r\n PermissionName: 'Legis: Edit Group Notes'\r\n },\r\n {\r\n PermissionId: '30',\r\n PermissionName: 'Legis: Edit Subjects'\r\n },\r\n {\r\n PermissionId: '31',\r\n PermissionName: 'Legis: Delete Records'\r\n },\r\n {\r\n PermissionId: '32',\r\n PermissionName: 'Legis: Admin Subjects (Change, Add, Archive)'\r\n },\r\n {\r\n PermissionId: '38',\r\n PermissionName: 'Regs: View'\r\n },\r\n {\r\n PermissionId: '39',\r\n PermissionName: 'Regs: View Group Notes'\r\n },\r\n {\r\n PermissionId: '40',\r\n PermissionName: 'Regs: Edit Group Notes'\r\n },\r\n {\r\n PermissionId: '41',\r\n PermissionName: 'Regs: Edit Subjects'\r\n },\r\n {\r\n PermissionId: '42',\r\n PermissionName: 'Regs: Delete Records'\r\n },\r\n {\r\n PermissionId: '43',\r\n PermissionName: 'Regs: Add Regs'\r\n },\r\n {\r\n PermissionId: '48',\r\n PermissionName: 'Local: View'\r\n },\r\n {\r\n PermissionId: '49',\r\n PermissionName: 'Local: View Group Notes'\r\n },\r\n {\r\n PermissionId: '50',\r\n PermissionName: 'Local: Edit Group Notes'\r\n },\r\n {\r\n PermissionId: '51',\r\n PermissionName: 'Local: Edit Subjects'\r\n },\r\n {\r\n PermissionId: '52',\r\n PermissionName: 'Local: Delete Records'\r\n },\r\n {\r\n PermissionId: '56',\r\n PermissionName: 'Bill Finder: View Text Search'\r\n },\r\n {\r\n PermissionId: '57',\r\n PermissionName: 'Bill Finder: Add From Text Search'\r\n },\r\n {\r\n PermissionId: '59',\r\n PermissionName: 'Quick Links: View'\r\n },\r\n {\r\n PermissionId: '60',\r\n PermissionName: 'Quick Links: Admin Client Sharing'\r\n },\r\n {\r\n PermissionId: '61',\r\n PermissionName: 'Quick Links: Admin Group Notes Sharing'\r\n },\r\n {\r\n PermissionId: '62',\r\n PermissionName: 'Quick Links: Admin Public Links'\r\n },\r\n {\r\n PermissionId: '63',\r\n PermissionName: 'Quick Links: Show Only Quick Links'\r\n },\r\n ],\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ManagementUserList/constants.js","import PropTypes from \"prop-types\";\r\nimport React, { Fragment } from \"react\";\r\nimport { Redirect, Route } from \"react-router-dom\";\r\nimport ClientLayout from \"../layouts/ClientLayout/ClientLayout\";\r\nimport IntranetLayout from \"../layouts/IntranetLayout/IntranetLayout\";\r\nimport BasicLayout from \"../layouts/BasicLayout/BasicLayout\";\r\nimport STSComponent from \"./STSComponent/STSComponent\";\r\nimport WrappedComponent from \"./WrappedComponent\";\r\n\r\n\r\nclass RedirectStateScapeLegacyUrl extends STSComponent {\r\n componentDidMount() {\r\n const destination = localStorage.getItem('destination')\r\n if(destination){\r\n localStorage.removeItem('destination');\r\n window.location.href = JSON.parse(destination).url;\r\n }\r\n }\r\n render() {\r\n const destination = localStorage.getItem('destination')\r\n if (destination) {\r\n let url = JSON.parse(destination).url;\r\n return \r\n \r\n
Click here \r\n if you are not redirected to your report. \r\n
\r\n \r\n }else{\r\n return null\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class ProtectedRoute extends STSComponent {\r\n\r\n updateBody = (condition) => {\r\n if (condition) {\r\n document.querySelector(\"body\").classList.remove(\"client-body\");\r\n document.querySelector(\"body\").classList.add(\"intranet-body\");\r\n } else {\r\n document.querySelector(\"body\").classList.remove(\"intranet-body\");\r\n document.querySelector(\"body\").classList.add(\"client-body\");\r\n }\r\n };\r\n\r\n render() {\r\n\t\tconst { authData, body, ...rest } = this.props;\r\n\r\n const permissions = this.props.authData \r\n && this.props.authData.authData.Permissions \r\n && this.props.authData.authData.Permissions ? this.props.authData.authData.Permissions : [];\r\n\r\n this.updateBody(permissions && permissions.includes(\"Intranet\"));\r\n \r\n var searchParams = new URLSearchParams(rest.location.search);\r\n const injectedRoute = searchParams.get(\"route\");\r\n const routePaths = injectedRoute ? injectedRoute.replace(/^\\\\+|\\\\+$/g, '').split(\"\\\\\") : [];\r\n let reRoute = routePaths.pop();\r\n\r\n searchParams.delete(\"route\");\r\n\r\n const isBasicLayout = this.props.path == \"/ssignon\" || reRoute == \"ssignon\";\r\n\r\n // optional destination can be established when an un-authenticated \r\n // user is attempting to access legacy website resources. If a destination \r\n // is established then clear the value and redirect the user to the specified URL. \r\n const destination = localStorage.getItem('destination')\r\n if (destination){\r\n return \r\n }\r\n\r\n let component = isBasicLayout \r\n ? BasicLayout \r\n : permissions && permissions.includes(\"Intranet\")\r\n ? IntranetLayout\r\n : ClientLayout;\r\n\r\n return authData.successLogin && authData.authData ? (\r\n !reRoute ? (\r\n (\r\n \r\n )}\r\n />\r\n ) : ( \r\n \r\n )\r\n ) : isBasicLayout ? (\r\n reRoute == \"ssignon\" ? (\r\n \r\n ) : (\r\n (\r\n \r\n )}\r\n /> \r\n )\r\n\r\n ) \r\n : (\r\n // unathenticated users get pushed to the sign-on page. \r\n !reRoute ? (\r\n \r\n ) : (\r\n reRoute.toLowerCase() == \"rsignon\" ? (\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n );\r\n\r\n }\r\n\r\n static propTypes = {\r\n\t\tcookieLogin: PropTypes.func,\r\n authData: PropTypes.object,\r\n body: PropTypes.any,\r\n };\r\n}\r\n\r\nexport default ProtectedRoute;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ProtectedRoute.js","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Bill_Finder_Icon from \"../../images/Bill Finder_Icon.svg\";\r\nimport Bill_Finder_Icon_D from \"../../images/Bill Finder_Icon_Disa.svg\";\r\nimport GlobalTrack_Icon from \"../../images/GlobalTrack_Icon.svg\";\r\nimport GlobalTrack_Icon_D from \"../../images/GlobalTrack_Icon_Disa.svg\";\r\nimport LegisTrack_Icon from \"../../images/LegisTrack_Icon.svg\";\r\nimport LegisTrack_Icon_D from \"../../images/LegisTrack_Icon_Disa.svg\";\r\nimport Line_Icon from \"../../images/Line_Icon.svg\";\r\nimport LocalTrack_Icon from \"../../images/LocalTrack_Icon.svg\";\r\nimport LocalTrack_Icon_D from \"../../images/LocalTrack_Icon_Disa.svg\";\r\nimport QuickLinks_Icon from \"../../images/QuickLinks_Icon.svg\";\r\nimport QuickLinks_Icon_D from \"../../images/QuickLinks_Icon_Disa.svg\";\r\nimport RegsTrack_Icon from \"../../images/RegsTrack_Icon.svg\";\r\nimport RegsTrack_Icon_D from \"../../images/RegsTrack_Icon_Disa.svg\";\r\nimport STSComponent from \"../STSComponent/STSComponent\";\r\nimport \"./css/TrackNav.scss\";\r\nimport { globals } from '../../globals';\r\n\r\nclass TrackNav extends STSComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n hoverItem: null\r\n };\r\n }\r\n\r\n getNavItems = () => {\r\n let navItems = [\r\n {\r\n name: \"quicklinks\", \r\n permission: \"Quick Links\",\r\n label: { first: \"Quick\", second: \"Links\" },\r\n image: QuickLinks_Icon,\r\n imageD: LegisTrack_Icon_D, \r\n\t\t\t\turl: `${globals.servicesUrl}/search/criteria.aspx?pageid=quicklinks`,\r\n corpUrl: `${globals.servicesUrl}/search/criteria.aspx?pageid=quicklinks`, \r\n text: \"A quick way of accessing, running and sharing custom reports you frequently use based on links you create in Legis, Regs or Local Track.\", \r\n },\r\n {\r\n name: \"legis\", \r\n permission: \"Legis\",\r\n label: { first: \"Legis\", second: \"Track\" },\r\n image: LegisTrack_Icon,\r\n imageD: LegisTrack_Icon_D,\r\n\t\t\t\turl: `${globals.servicesUrl}/search/criteria.aspx?pageid=legis`,\r\n corpUrl: `${globals.corpUrl}/services/legislative-tracking-promo/`,\r\n text: \"Create and generate custom reports of bills currently being tracked by your organization by using filters such as subject, state and history.\", \r\n },\r\n {\r\n name: \"billfinder\", \r\n permission: \"Bill Finder\",\r\n label: { first: \"Bill\", second: \"Finder\" },\r\n image: Bill_Finder_Icon,\r\n imageD: Bill_Finder_Icon_D,\r\n\t\t\t\turl: `${globals.servicesUrl}/search/criteria.aspx?pageid=textsearch`,\r\n corpUrl: `${globals.corpUrl}/services/legislative-tracking-promo/`,\r\n text: \"Legislative search engine tool that enables you to search for bills beyond what your organization is already tracking. You may then add bills for ongoing tracking in Legis Track with permission from your account manager.\", \r\n },\r\n {\r\n name: \"regs\", \r\n permission: \"Regs\",\r\n label: { first: \"Regs\", second: \"Track\" },\r\n image: RegsTrack_Icon,\r\n imageD: RegsTrack_Icon_D,\r\n\t\t\t\turl: `${globals.servicesUrl}/search/criteria.aspx?pageid=regs`,\r\n corpUrl: `${globals.corpUrl}/services/regulatory-tracking-promo/`, \r\n text: \"Create and generate custom reports of regulations currently being tracked by your organization by using filters such as subject, state and history.\", \r\n },\r\n {\r\n name: \"local\",\r\n permission: \"Local\",\r\n label: { first: \"Local\", second: \"Track\" },\r\n image: LocalTrack_Icon,\r\n imageD: LocalTrack_Icon_D,\r\n\t\t\t\turl: `${globals.servicesUrl}/search/criteria.aspx?pageid=local`,\r\n corpUrl: `${globals.corpUrl}/services/local-tracking-promo/`, \r\n text: \"Create and generate custom reports of ordinances/agendas currently being tracked by your organization by using filters such as subject, state and history.\", \r\n },\r\n {\r\n name: \"global\", \r\n permission: \"Canada\",\r\n label: { first: \"Canada\", second: \"Track\" },\r\n image: GlobalTrack_Icon,\r\n imageD: GlobalTrack_Icon_D,\r\n\t\t\t\turl: `${globals.corpUrl}/services/canada-track/`,\r\n corpUrl: `${globals.corpUrl}/services/canada-track-promo/`, \r\n text: \"\", \r\n },\r\n ];\r\n\r\n navItems.forEach(item => {\r\n\r\n // QuickLinksOnly permission means the other tracks should be disabled. \r\n let QuickLinksOnly = this.props.authData \r\n && this.props.authData.Permissions \r\n && this.props.authData.Permissions.some(\r\n (permission) => permission.indexOf('Quick Links: Show Only Quick Links') >= 0\r\n )\r\n\r\n if(!this.props.authData || !this.props.authData.Permissions || !this.props.authData.Permissions.some(\r\n (permission) => permission.indexOf(item.permission) >= 0\r\n ) || (QuickLinksOnly && item.permission != 'Quick Links')){\r\n item.image = item.imageD;\r\n item.url = item.corpUrl;\r\n item.disa = true;\r\n }\r\n })\r\n \r\n return navItems.reduce((a, b, index) => {\r\n if (index != 0) {\r\n a.push({\r\n image: Line_Icon,\r\n });\r\n }\r\n a.push(b);\r\n return a;\r\n }, []);\r\n };\r\n\r\n renderTrackIcons = () => {\r\n const navItems = this.getNavItems();\r\n\r\n return navItems.map((item, index) => {\r\n return item.permission ? (\r\n \r\n ) : (\r\n \r\n

\r\n
\r\n );\r\n });\r\n };\r\n\r\n Welcome(props) {\r\n let CustomBanner = props.authData.CustomBanner\r\n if (!CustomBanner) {\r\n return Welcome to StateScape
;\r\n } else{\r\n return
\r\n }\r\n }\r\n\r\n render() {\r\n const { location, authData, showModal } = this.props\r\n const intranet = authData && authData.Permissions && authData.Permissions.includes('Intranet');\r\n\r\n const selectedTrackItem = this.getNavItems().find(i => i.name == this.state.hoverItem);\r\n\r\n if (intranet) {\r\n return null;\r\n }else{\r\n return (\r\n \r\n
\r\n {this.Welcome(this.props)}\r\n
\r\n {this.renderTrackIcons()}\r\n
\r\n
\r\n
{ selectedTrackItem.text ? selectedTrackItem.text : \"\" }
\r\n
\r\n );\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n static propTypes = {\r\n authData: PropTypes.object,\r\n };\r\n}\r\n\r\nexport default connect(\r\n (state) => ({\r\n authData: state.auth.authData,\r\n }),\r\n {}\r\n)(TrackNav);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/TrackNav/TrackNav.js","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nexport const WrappedComponent = ({ component: Component, body: Body, ...props }) => {\r\n return
\r\n}\r\n\r\nWrappedComponent.propTypes = {\r\n component: PropTypes.any,\r\n body: PropTypes.any\r\n}\r\n\r\nexport default WrappedComponent\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/WrappedComponent.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport '../../styles/ClientStyles.scss'\r\nimport './css/BasicLayout.scss'\r\n\r\nexport const BasicLayout = ({ body: Body }) => (\r\n \r\n \r\n)\r\n\r\nBasicLayout.propTypes = {\r\n body: PropTypes.any\r\n}\r\n\r\nexport default BasicLayout\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layouts/BasicLayout/BasicLayout.js","import PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport Header from '../../components/Header/Header'\r\nimport TrackNav from \"../../components/TrackNav/TrackNav\"\r\nimport '../../styles/ClientStyles.scss'\r\nimport './css/ClientLayout.scss'\r\n\r\nexport const ClientLayout = ({ body: Body }) => (\r\n \r\n \r\n)\r\n\r\nClientLayout.propTypes = {\r\n body: PropTypes.any\r\n}\r\n\r\nexport default ClientLayout\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layouts/ClientLayout/ClientLayout.js","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport Header from \"../../components/Header/Header\";\r\nimport InfoLine from \"../../components/InfoLine/InfoLine\";\r\nimport \"../../styles/IntranetStyles.scss\";\r\nimport \"./css/IntranetLayout.scss\";\r\n\r\nconst isSinglePage = sessionStorage.getItem(\"modalSinglePage\");\r\nexport const IntranetLayout = ({ body: Body }) => (\r\n \r\n
\r\n {isSinglePage ? \"\" : }\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n);\r\n\r\nIntranetLayout.propTypes = {\r\n body: PropTypes.any,\r\n};\r\n\r\nexport default IntranetLayout;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/layouts/IntranetLayout/IntranetLayout.js","import { faLock, faUser } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport CryptoJS from \"crypto-js\";\r\nimport PropTypes from \"prop-types\";\r\nimport React, { Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport STSComponent from \"../../components/STSComponent/STSComponent\";\r\nimport { globals } from '../../globals';\r\nimport BookMark from \"../../images/bookmark.png\";\r\nimport StatescapeLogo from \"../../images/statescape-logo.png\";\r\nimport LoginIcon from \"../../images/statescape-signon.png\";\r\nimport { logIn } from \"../../store/reducers/auth\";\r\nimport \"./css/Login.scss\";\r\n\r\nclass LogInView extends STSComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n const localData = localStorage.getItem(\"logData\");\r\n sessionStorage.removeItem(\"modalSinglePage\");\r\n let newObj = {\r\n userName: \"\",\r\n userPassword: \"\",\r\n };\r\n if (localData) {\r\n const decrypted = CryptoJS.AES.decrypt(\r\n localData.toString(),\r\n \"myAuthCookie\"\r\n );\r\n newObj = JSON.parse(decrypted.toString(CryptoJS.enc.Utf8));\r\n }\r\n\r\n // window.localStorage.clear();\r\n this.urlSearch = window.location.search;\r\n\r\n this.state = {\r\n user: newObj.userName,\r\n pass: newObj.userPassword,\r\n countOfLogin: 0,\r\n isChecked: false,\r\n signInClicked: false,\r\n };\r\n\r\n this.handleUserChange = this.handleUserChange.bind(this);\r\n this.handlePassChange = this.handlePassChange.bind(this);\r\n this.onEnterPress = this.onEnterPress.bind(this);\r\n this.rememberMe = this.rememberMe.bind(this);\r\n this.signIn = this.signIn.bind(this);\r\n this.bookmarkPage = this.bookmarkPage.bind(this);\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n if (!nextProps.successLogin && !nextProps.isLoggingIn) {\r\n this.setState({ countOfLogin: this.state.countOfLogin + 1 });\r\n }\r\n if (this.props !== nextProps) {\r\n if (nextProps.successLogin && !nextProps.isLoggingIn){\r\n this.props.history.push(\"/\");\r\n }\r\n } \r\n }\r\n\r\n handleUserChange = (event) => {\r\n this.setState({ user: event.target.value });\r\n };\r\n\r\n handlePassChange = (event) => {\r\n this.setState({ pass: event.target.value });\r\n };\r\n\r\n signIn = () => {\r\n const { user, pass } = this.state;\r\n const rememberMe = !!document.querySelector(\".ch-remember\").checked;\r\n event.preventDefault();\r\n this.props.logIn(user, pass, rememberMe);\r\n this.setState({ signInClicked: true });\r\n };\r\n\r\n bookmarkPage = () => {\r\n if (window.sidebar && window.sidebar.addPanel) {\r\n // Firefox <23\r\n window.sidebar.addPanel(document.title, window.location.href, \"\");\r\n } else if (window.external && \"AddFavorite\" in window.external) {\r\n // Internet Explorer\r\n window.external.AddFavorite(location.href, document.title);\r\n } else {\r\n window.alert(\"Please use CTRL + D to bookmark this page\");\r\n }\r\n };\r\n\r\n onEnterPress = (event) => {\r\n if (event && event.which === 13) {\r\n this.signIn();\r\n }\r\n };\r\n\r\n rememberMe = () => {\r\n const rememberMe = document.querySelector(\".ch-remember\");\r\n if (rememberMe.checked) {\r\n this.setState({ isChecked: true });\r\n } else {\r\n return this.setState({ isChecked: false });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n if (this.urlSearch) {\r\n var searchParams = new URLSearchParams(this.urlSearch); \r\n\r\n // report variables may be passed in from unathenticated users \r\n // accessing the services website. \r\n const pageId = searchParams.get(\"pageid\");\r\n const report = searchParams.get(\"report\");\r\n const rec = searchParams.get(\"rec\");\r\n const uid = searchParams.get(\"uid\");\r\n\r\n // check whether a specifc destination should be specified \r\n // rather than allowing the user to be sent to the root. \r\n //\r\n // if report, rec and pageId exist then getReport \r\n // is the appropriate destination (in the services website.)\r\n if(pageId && report && rec && uid){\r\n // eslint-disable-next-line max-len\r\n let url = `${globals.servicesUrl}/search/getreport.aspx?pageid=${pageId}&report=${report}&rec=${rec}&uid=${uid}`\r\n localStorage.setItem('destination', JSON.stringify({ server: globals.servicesUrl, url }))\r\n console.log('destination localStorage set.');\r\n } else if (pageId && report && rec){\r\n // eslint-disable-next-line max-len\r\n let url = `${globals.servicesUrl}/search/getreport.aspx?pageid=${pageId}&report=${report}&rec=${rec}`\r\n localStorage.setItem('destination', JSON.stringify({ server: globals.servicesUrl, url }))\r\n console.log('destination localStorage set.');\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const numberOfAttempts = this.state.countOfLogin;\r\n const { user, pass } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
Welcome back
\r\n {numberOfAttempts < 3 ? (\r\n
\r\n ) : (\r\n
\r\n
Login attempts failed!
\r\n
Please contact
\r\n
\r\n
for assistance
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n

\r\n
\r\n Bookmark this page for quick access.\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n static propTypes = {\r\n logIn: PropTypes.func,\r\n isLoggingIn: PropTypes.bool,\r\n successLogin: PropTypes.bool,\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n logIn,\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth,\r\n isLoggingIn: state.auth.isLoggingIn,\r\n successLogin: state.auth.successLogin,\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(LogInView);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/routes/Login/Login.js","import PropTypes from \"prop-types\";\r\nimport React, { Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport STSComponent from \"../../components/STSComponent/STSComponent\";\r\nimport { globals } from '../../globals';\r\nimport Cookies from 'universal-cookie';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { logInTk } from \"../../store/reducers/auth\";\r\nimport \"./css/RSignOn.scss\";\r\n\r\nclass RSignOn extends STSComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.urlSearch = window.location.search;\r\n window.localStorage.clear();\r\n\r\n this.state = {\r\n ax: null,\r\n yd: null,\r\n vc: null,\r\n isChecked: false,\r\n signInClicked: false,\r\n };\r\n\r\n this.signIn = this.signIn.bind(this);\r\n }\r\n\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n if (this.props !== nextProps) {\r\n if (nextProps.successLogin && !nextProps.isLoggingIn){\r\n console.log('go to ssignon');\r\n this.props.history.push(\"/ssignon\");\r\n }\r\n } \r\n }\r\n\r\n signIn = (ax, yd, vc) => {\r\n this.props.logInTk(ax, yd, vc);\r\n this.setState({ signInClicked: true });\r\n };\r\n\r\n componentDidMount() {\r\n if (this.urlSearch) {\r\n var searchParams = new URLSearchParams(this.urlSearch); \r\n\r\n // report variables may be passed in from unathenticated users \r\n // accessing the services website. \r\n const ax = searchParams.get(\"ax\");\r\n const yd = searchParams.get(\"yd\");\r\n const vc = searchParams.get(\"vc\");\r\n\r\n this.setState({ ax: ax });\r\n this.setState({ yd: yd });\r\n this.setState({ vc: vc });\r\n\r\n // check whether a specific destination should be specified \r\n // rather than allowing the user to be sent to the \r\n // root (see ssignon for ex)\r\n if(ax && yd && vc){\r\n console.log('submit rso auth.');\r\n // perform logintk\r\n this.signIn(ax, yd, vc)\r\n // .then((json) => {\r\n // let xx = json;\r\n // this.props.history.push(\"/ssignon\");\r\n // });\r\n\r\n } else {\r\n console.log('required rso values not found.');\r\n //this.props.history.push(\"/login\"); \r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const { ax, yd, vc } = this.state;\r\n console.log('rso render.');\r\n return \r\n \r\n \r\n }\r\n\r\n static propTypes = {\r\n logInTk: PropTypes.func,\r\n isLoggingIn: PropTypes.bool,\r\n successLogin: PropTypes.bool,\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n logInTk,\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n auth: state.auth,\r\n isLoggingIn: state.auth.isLoggingIn,\r\n successLogin: state.auth.successLogin,\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(RSignOn));\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/routes/RSignOn/RSignOn.js","import { routerMiddleware } from \"connected-react-router\";\r\nimport {\r\n applyMiddleware,\r\n compose,\r\n createStore as createReduxStore\r\n} from \"redux\";\r\nimport { createLogger } from \"redux-logger\";\r\nimport thunk from \"redux-thunk\";\r\nimport { history } from \"../main\";\r\nimport makeRootReducer from \"./reducers\";\r\n\r\nconst createStore = (initialState = {}) => {\r\n const router = routerMiddleware(history);\r\n // ======================================================\r\n // Middleware Configuration\r\n // ======================================================\r\n const middleware = [thunk, router];\r\n\r\n // ======================================================\r\n // Store Enhancers\r\n // ======================================================\r\n const enhancers = [];\r\n\r\n if (process.env.NODE_ENV !== \"production\") {\r\n const logger = createLogger({\r\n collapsed: (getState, action, logEntry) => !logEntry.error,\r\n duration: true,\r\n diff: true,\r\n });\r\n middleware.push(logger);\r\n }\r\n\r\n let composeEnhancers = compose;\r\n\r\n if (__DEV__) {\r\n if (typeof window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ === \"function\") {\r\n composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;\r\n }\r\n }\r\n\r\n const addPromiseSupportToDispatch = (store) => {\r\n const rawDisptach = store.dispatch;\r\n return (action) => {\r\n if (typeof action.then === \"function\") {\r\n return action.then(rawDisptach);\r\n }\r\n return rawDisptach(action);\r\n };\r\n };\r\n\r\n // ======================================================\r\n // Store Instantiation and HMR Setup\r\n // ======================================================\r\n const store = createReduxStore(\r\n makeRootReducer(),\r\n initialState,\r\n composeEnhancers(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n store.asyncReducers = {};\r\n\r\n // To unsubscribe, invoke `store.unsubscribeHistory()` anytime\r\n\r\n if (module.hot) {\r\n module.hot.accept(\"./reducers\", () => {\r\n const reducers = require(\"./reducers\").default;\r\n store.replaceReducer(reducers(store.asyncReducers));\r\n });\r\n }\r\n\r\n store.dispatch = addPromiseSupportToDispatch(store);\r\n\r\n return store;\r\n};\r\n\r\nexport default createStore;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/createStore.js","import { connectRouter } from \"connected-react-router\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport { combineReducers } from \"redux\";\r\nimport agencyEditReducer from \"./reducers/agencyEdit\";\r\nimport authReducer from \"./reducers/auth\";\r\nimport billFinderDataReducer from \"./reducers/billFinderFormData\";\r\nimport billTypesReducer from \"./reducers/billTypes\";\r\nimport calendarReducer from \"./reducers/calendar\";\r\nimport clientBillingReducer from \"./reducers/clientBilling\";\r\nimport clientContactsReducer from \"./reducers/clientContacts\";\r\nimport clientDashboardReducer from \"./reducers/clientDashboard\";\r\nimport clientLocalitiesReducer from \"./reducers/clientLocalities\";\r\nimport clientsDataReducer from \"./reducers/clientManagementFormData\";\r\nimport clientUsersReducer from \"./reducers/clientUsers\";\r\nimport currentLegislationReducer from \"./reducers/currentLegislationData\";\r\nimport deletedRecordsReducer from \"./reducers/deletedRecordsArchive\";\r\nimport emailAlertsReducer from \"./reducers/emailAlerts\";\r\nimport favoritesReducer from \"./reducers/favorites\";\r\nimport favoritesCombReducer from \"./reducers/favoritesComb\";\r\nimport groupingsReducer from \"./reducers/groupings\";\r\nimport historyHelpTextReducer from \"./reducers/historyActionHelpText\";\r\nimport intranetDashboardReducer from \"./reducers/intranetDashboard\";\r\nimport keywordHighlighterReducer from \"./reducers/keywordHighlighterFormData\";\r\nimport legisDataReducer from \"./reducers/legisFormData\";\r\nimport legisNewRecordReviewReducer from \"./reducers/legisNewRecordReviewFormData\";\r\nimport legisTrackInternalReducer from \"./reducers/legisTrackInternalFormData\";\r\nimport localDataReducer from \"./reducers/localFormData\";\r\nimport localReviewReducer from \"./reducers/localReviewData\";\r\nimport localTrackInternalReducer from \"./reducers/localTrackInternalFormData\";\r\nimport meetingDatesReducer from \"./reducers/meetingDates\";\r\nimport modalReducer from \"./reducers/modal\";\r\nimport personalNotesReducer from \"./reducers/personalNotes\";\r\nimport rawBillDataReducer from \"./reducers/rawBillDataEntry\";\r\nimport regionsReducer from \"./reducers/regions\";\r\nimport registerReviewReducer from \"./reducers/registerReviewData\";\r\nimport regsDataReducer from \"./reducers/regsFormData\";\r\nimport regsNewRecordReviewReducer from \"./reducers/regsNewRecordReviewFormData\";\r\nimport regsUrlReducer from \"./reducers/regsUrls\";\r\nimport reportLineReducer from \"./reducers/reportLine\";\r\nimport shareReportReducer from \"./reducers/shareReport\";\r\nimport sponsorInfoReducer from \"./reducers/sponsorInfo\";\r\nimport statusReviewReducer from \"./reducers/statusReviewFormData\";\r\nimport subjectChangesReducer from \"./reducers/subjectChanges\";\r\nimport subjectsReducer from \"./reducers/subjects\";\r\nimport trackingStatsReducer from \"./reducers/trackingStats\";\r\nimport undoReducer from \"./reducers/undo\";\r\nimport urlsSectionReducer from \"./reducers/urlsSection\";\r\nimport legislatorDataReducer from \"./reducers/legislatorFormData\";\r\n\r\nconst history = createBrowserHistory();\r\n\r\nexport const makeRootReducer = (asyncReducers) => {\r\n return combineReducers({\r\n modal: modalReducer,\r\n legisFormData: legisDataReducer,\r\n regsFormData: regsDataReducer,\r\n localFormData: localDataReducer,\r\n auth: authReducer,\r\n reportLine: reportLineReducer,\r\n subjects: subjectsReducer,\r\n favorites: favoritesReducer,\r\n personalNotes: personalNotesReducer,\r\n billFinderFormData: billFinderDataReducer,\r\n clientsFormData: clientsDataReducer,\r\n clientContacts: clientContactsReducer,\r\n clientUsers: clientUsersReducer,\r\n emailAlerts: emailAlertsReducer,\r\n shareReport: shareReportReducer,\r\n favoritesComb: favoritesCombReducer,\r\n calendarData: calendarReducer,\r\n clientBilling: clientBillingReducer,\r\n localReview: localReviewReducer,\r\n registerReview: registerReviewReducer,\r\n regsNewRecordReview: regsNewRecordReviewReducer,\r\n legisNewRecordReview: legisNewRecordReviewReducer,\r\n legisTrackInternal: legisTrackInternalReducer,\r\n localTrackInternal: localTrackInternalReducer,\r\n keywordHighlighter: keywordHighlighterReducer,\r\n statusReview: statusReviewReducer,\r\n currentLegislation: currentLegislationReducer,\r\n trackingStats: trackingStatsReducer,\r\n deletedRecordsArchive: deletedRecordsReducer,\r\n subjectChanges: subjectChangesReducer,\r\n sponsorInfo: sponsorInfoReducer,\r\n groupings: groupingsReducer,\r\n undo: undoReducer,\r\n regions: regionsReducer,\r\n urlsSection: urlsSectionReducer,\r\n regsUrls: regsUrlReducer,\r\n rawBillData: rawBillDataReducer,\r\n billTypes: billTypesReducer,\r\n clientLocalities: clientLocalitiesReducer,\r\n agencyEdit: agencyEditReducer,\r\n historyHelpText: historyHelpTextReducer,\r\n meetingDates: meetingDatesReducer,\r\n clientDashboard: clientDashboardReducer,\r\n intranetDashboard: intranetDashboardReducer,\r\n legislatorData: legislatorDataReducer,\r\n router: connectRouter(history),\r\n ...asyncReducers,\r\n });\r\n};\r\n\r\nexport const injectReducer = (store, { key, reducer }) => {\r\n if (Object.hasOwnProperty.call(store.asyncReducers, key)) return;\r\n store.asyncReducers[key] = reducer;\r\n store.replaceReducer(makeRootReducer(store.asyncReducers));\r\n};\r\n\r\nexport default makeRootReducer;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers.js","import { page as pageIndex } from '../../globals'\r\nimport {\r\n matchParameters,\r\n returnDateFormat,\r\n filterRegions,\r\n returnTextValuesForClearedFilters } from './helpers'\r\nimport {\r\n START_DATA_FETCH,\r\n DATA_FETCHED,\r\n FETCH_FAILED,\r\n OPEN_SAVED_REPORT,\r\n getFormDataHandlers\r\n} from './getFormData'\r\nimport { UPDATE_DATA, actionHandler } from './updateData'\r\nimport { CLEAR_FILTERS } from './reportLine'\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [START_DATA_FETCH] : getFormDataHandlers['START_DATA_FETCH'],\r\n [FETCH_FAILED] : getFormDataHandlers['FETCH_FAILED'],\r\n [DATA_FETCHED] : (state, action) => {\r\n const { page, field } = action.location\r\n const { json } = action.payload\r\n if (page !== pageIndex.billFinder) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n [field]: {\r\n clientId: json.ClientId,\r\n userId: json.UserId,\r\n regionList: filterRegions(json.RegionList),\r\n archiveStartYear: json.ArchiveStartYear,\r\n defaultReport: json.DefaultReport,\r\n }\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n }\r\n }\r\n },\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.billFinder\r\n ? state\r\n : actionHandler(state, action),\r\n [OPEN_SAVED_REPORT] : (state, action) => {\r\n const { page } = action\r\n const { json } = action.payload\r\n if (page !== pageIndex.billFinder || json === undefined) {\r\n return {\r\n ...state,\r\n }\r\n } else {\r\n const criteria = matchParameters(json.ReportCriteria)\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n defaultSearch: {\r\n ...state.formDataValue[page].defaultSearch,\r\n title: json.Name,\r\n textValues: {\r\n reporttitle: criteria.filters.reporttitle || '',\r\n ti1t: ''\r\n },\r\n radio: {\r\n reporttype: criteria.filters.reporttype[0] || 'all',\r\n },\r\n },\r\n states: {\r\n selected: criteria.filters.states ? criteria.filters.states : []\r\n },\r\n viewingOptions: {\r\n selected: criteria.viewingOptions.selected || [],\r\n radio: {\r\n howmany: criteria.viewingOptions.howmany || '25',\r\n },\r\n },\r\n advancedEditingTools: {\r\n selected: criteria.advancedEditingTools.selected || [],\r\n radio: {\r\n sortheader: !!criteria.advancedEditingTools.sortheader,\r\n sort1: criteria.advancedEditingTools.sort1[0] || 'score',\r\n }\r\n },\r\n archivedYear: {\r\n selected: criteria.filters.archive ? criteria.filters.archive : ['current'],\r\n },\r\n searchRequest: {\r\n selected: [],\r\n textValues: {\r\n request: criteria.filters.request ? criteria.filters.request : '',\r\n }\r\n },\r\n searchResults: {\r\n radio: {\r\n maxFiles: criteria.filters.maxFiles ? criteria.filters.maxFiles : '100',\r\n }\r\n },\r\n additionalFilters: {\r\n selected: [],\r\n textValues: {},\r\n dateTime: {\r\n moddatestart: criteria.filters.moddatestart\r\n ? returnDateFormat(criteria.filters.moddatestart[0]) : ' ',\r\n moddateend: criteria.filters.moddateend\r\n ? returnDateFormat(criteria.filters.moddateend[0]) : ' ',\r\n createdatestart: criteria.filters.createdatestart\r\n ? returnDateFormat(criteria.filters.createdatestart[0]) : ' ',\r\n createdateend: criteria.filters.createdateend\r\n ? returnDateFormat(criteria.filters.createdateend[0]) : ' ',\r\n },\r\n radio: {\r\n fuzziness: criteria.filters.fuzziness ? criteria.filters.fuzziness : '5',\r\n }\r\n },\r\n },\r\n },\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n groupNotes: {\r\n ...state.renderData[page].groupNotes,\r\n selectedReport: json,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [CLEAR_FILTERS] : (state, action) => {\r\n const { page } = action\r\n if (page !== pageIndex.billFinder) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...clearState.formDataValue[page],\r\n groupNotes: {\r\n ...clearState.formDataValue[page].groupNotes,\r\n textValues: returnTextValuesForClearedFilters\r\n }\r\n }\r\n }\r\n }\r\n },\r\n}\r\n\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {\r\n F: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n F: {\r\n viewingOptions: {\r\n selected: ['viewsearchcriteria', 'viewscore', 'viewhits'],\r\n radio: {\r\n howmany: '25',\r\n },\r\n },\r\n defaultSearch : {\r\n title: 'Default Search',\r\n textValues: {\r\n reporttitle: 'Legislative Text Search Report',\r\n ti1t: '',\r\n },\r\n radio: {\r\n reporttype: 'all',\r\n },\r\n },\r\n additionalFilters: {\r\n selected: [],\r\n textValues: {},\r\n dateTime: {\r\n moddatestart: ' ',\r\n moddateend: ' ',\r\n createdatestart: ' ',\r\n createdateend: ' ',\r\n },\r\n radio: {\r\n fuzziness: '5',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: [],\r\n radio: {\r\n sortheader: false,\r\n sort1: 'Score',\r\n }\r\n },\r\n reportFormat: {\r\n selected: [],\r\n radio: {\r\n mapit: false,\r\n outformat: 'html',\r\n }\r\n },\r\n billType: {\r\n selected: [],\r\n },\r\n states: {\r\n selected: [],\r\n },\r\n searchRequest: {\r\n selected: [],\r\n textValues: {\r\n request: ''\r\n }\r\n },\r\n searchResults: {\r\n radio: {\r\n maxFiles: '100',\r\n }\r\n },\r\n maps: {\r\n selected: [],\r\n textValues: {\r\n lowcountcolor: '#9cc1e6',\r\n medcountcolor: '#4175b2',\r\n highcountcolor: '#243e66',\r\n foundbillscolor: '#4175b2',\r\n },\r\n },\r\n archivedYear: {\r\n selected: ['current'],\r\n },\r\n 'Synonym expansion': {\r\n selected: [],\r\n },\r\n 'Phonic searching': {\r\n selected: [],\r\n },\r\n 'No Stemming': {\r\n selected: [],\r\n },\r\n 'Fuzzy searching': {\r\n selected: [],\r\n }\r\n },\r\n },\r\n}\r\nconst clearState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {\r\n F: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n F: {\r\n viewingOptions: {\r\n selected: [],\r\n radio: {\r\n howmany: '25',\r\n },\r\n },\r\n defaultSearch : {\r\n title: 'Default Search',\r\n textValues: {\r\n reporttitle: '',\r\n ti1t: '',\r\n },\r\n radio: {\r\n reporttype: 'all',\r\n },\r\n },\r\n additionalFilters: {\r\n selected: [],\r\n textValues: {},\r\n dateTime: {\r\n moddatestart: ' ',\r\n moddateend: ' ',\r\n createdatestart: ' ',\r\n createdateend: ' ',\r\n },\r\n radio: {\r\n fuzziness: '5',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: [],\r\n radio: {\r\n sortheader: false,\r\n sort1: 'state',\r\n }\r\n },\r\n reportFormat: {\r\n selected: [],\r\n radio: {\r\n mapit: false,\r\n outformat: 'html',\r\n }\r\n },\r\n billType: {\r\n selected: [],\r\n },\r\n states: {\r\n selected: [],\r\n },\r\n searchRequest: {\r\n selected: [],\r\n textValues: {\r\n request: ''\r\n }\r\n },\r\n searchResults: {\r\n radio: {\r\n maxFiles: '100',\r\n }\r\n },\r\n maps: {\r\n selected: [],\r\n textValues: {\r\n lowcountcolor: '#9cc1e6',\r\n medcountcolor: '#4175b2',\r\n highcountcolor: '#243e66',\r\n foundbillscolor: '#4175b2',\r\n },\r\n },\r\n archivedYear: {\r\n selected: ['current'],\r\n },\r\n 'Synonym expansion': {\r\n selected: [],\r\n },\r\n 'Phonic searching': {\r\n selected: [],\r\n },\r\n 'No Stemming': {\r\n selected: [],\r\n },\r\n 'Fuzzy searching': {\r\n selected: [],\r\n }\r\n },\r\n },\r\n}\r\nexport default function billFinderDataReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/billFinderFormData.js","import { page as pageIndex } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.dashboard\r\n ? state\r\n : action.location.section !== 'calendar' ? state : actionHandler(state, action)\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n D: {\r\n calendar: {\r\n dateTime: {\r\n pickDate: new Date()\r\n },\r\n textValues: {\r\n subject: ''\r\n }\r\n },\r\n states: {\r\n selected: []\r\n }\r\n }\r\n }\r\n}\r\nexport default function calendarReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/calendar.js","import { globals } from '../../globals'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_INVOICE_HISTORY_START = 'GET_INVOICE_HISTORY_START'\r\nexport const INVOICE_HISTORY_FETCHED = 'INVOICE_HISTORY_FETCHED'\r\nexport const INVOICE_HISTORY_FAILED = 'INVOICE_HISTORY_FAILED'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function getInvoiceHistory (clientId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_INVOICE_HISTORY_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/api/clientbilling?clientid=${clientId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: INVOICE_HISTORY_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: INVOICE_HISTORY_FAILED })\r\n })\r\n }\r\n}\r\n\r\nfunction createStore (data) {\r\n let invoiceObj = {\r\n 0: {\r\n textValues: {\r\n Invoice: '',\r\n Amount: '',\r\n SendDt: '',\r\n ReceivedDt: '',\r\n DepositedDt: '',\r\n Status: '',\r\n Resent: '',\r\n }\r\n }\r\n }\r\n for (let i = 0; i <= data.length - 1; i++) {\r\n invoiceObj[data[i].BillingInfoId] = {\r\n textValues: {\r\n Invoice: data[i].Invoice,\r\n Amount: data[i].Amount,\r\n SendDt: data[i].SendDt || '',\r\n ReceivedDt: data[i].ReceivedDt || '',\r\n DepositedDt: data[i].DepositedDt || '',\r\n Status: data[i].Status,\r\n Resent: data[i].Resent || '',\r\n }\r\n }\r\n }\r\n return invoiceObj\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [GET_INVOICE_HISTORY_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingInvoice: true\r\n }\r\n },\r\n [INVOICE_HISTORY_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingInvoice: false\r\n }\r\n },\r\n [INVOICE_HISTORY_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingInvoice: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n invoiceHistory: createStore(json),\r\n },\r\n renderData: {\r\n historyArray: json\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n invoiceHistory: {}\r\n }\r\n}\r\nexport default function clientBillingReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/clientBilling.js","import { globals, page as pageIndex } from '../../globals'\r\nimport { UPDATE_DATA, actionHandler } from './updateData'\r\nimport moment from 'moment'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_CLIENTS_START = 'GET_CLIENTS_START'\r\nexport const GET_CLIENTS_FETCHED = 'GET_CLIENTS_FETCHED'\r\nexport const GET_CLIENTS_FAILED = 'GET_CLIENTS_FAILED'\r\nexport const RETURN_DEFAULT_REPORT = 'RETURN_DEFAULT_REPORT'\r\nexport const START_CLIENTS_DATA_FETCH = 'START_DATA_FETCH'\r\nexport const CLIENTS_DATA_FETCHED = 'CLIENTS_DATA_FETCHED'\r\nexport const FETCH_CLIENTS_DATA_FAILED = 'FETCH_CLIENTS_DATA_FAILED'\r\nexport const GET_GROUP_NOTES_START = 'GET_GROUP_NOTES_START'\r\nexport const GET_GROUP_NOTES_FAILED = 'GET_GROUP_NOTES_FAILED'\r\nexport const GET_GROUP_NOTES_FETCHED = 'GET_GROUP_NOTES_FETCHED'\r\nexport const GET_SINGLE_CLIENT_START = 'GET_SINGLE_CLIENT_START'\r\nexport const GET_SINGLE_CLIENT_FAILED = 'GET_SINGLE_CLIENT_FAILED'\r\nexport const OPEN_CLIENT = 'OPEN_CLIENT'\r\nexport const CLEAR_GROUP_NOTES = 'CLEAR_GROUP_NOTES'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport const getManagementData = (location) => {\r\n return (dispatch) => {\r\n dispatch({ type: START_CLIENTS_DATA_FETCH })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/clientmanagement`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else {\r\n dispatch({\r\n type: FETCH_CLIENTS_DATA_FAILED,\r\n payload: {\r\n errorCode: response.status\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: CLIENTS_DATA_FETCHED,\r\n payload: {\r\n json,\r\n },\r\n location: {\r\n page: location.page,\r\n field: location.field,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: FETCH_CLIENTS_DATA_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function getClientList () {\r\n return (dispatch) => {\r\n dispatch({ type: GET_CLIENTS_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/client`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else {\r\n dispatch({\r\n type: GET_CLIENTS_FAILED,\r\n payload: {\r\n errorCode: response.status\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_CLIENTS_FETCHED,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_CLIENTS_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function getSingleClient (clientId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_SINGLE_CLIENT_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/client/${clientId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else {\r\n dispatch({\r\n type: GET_SINGLE_CLIENT_FAILED,\r\n payload: {\r\n errorCode: response.status\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: OPEN_CLIENT,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_SINGLE_CLIENT_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function returnDefaultState (page) {\r\n return {\r\n type: RETURN_DEFAULT_REPORT,\r\n page,\r\n }\r\n}\r\n\r\nexport function getGroupNotes (clientId) {\r\n return (dispatch) => {\r\n dispatch({ type: CLEAR_GROUP_NOTES })\r\n dispatch({ type: GET_GROUP_NOTES_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/groupnotesfield?clientid=${clientId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else {\r\n dispatch({\r\n type: GET_GROUP_NOTES_FAILED,\r\n payload: {\r\n errorCode: response.status\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_GROUP_NOTES_FETCHED,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_GROUP_NOTES_FAILED })\r\n })\r\n }\r\n}\r\n\r\nfunction returnLocalities (data) {\r\n let statesList = []\r\n let resultedArray = []\r\n for (let i = 0; i < data.length - 1; i++) {\r\n if (!statesList.includes(data[i]['RegionName'])) {\r\n statesList = [...statesList, data[i]['RegionName']]\r\n }\r\n }\r\n let sortedList = statesList.sort(function (a, b) {\r\n if (a < b) return -1\r\n if (a > b) return 1\r\n return 0\r\n })\r\n for (let i = 0; i < sortedList.length; i++) {\r\n const localities = data.filter(el => el.RegionName === sortedList[i])\r\n const countyShort = 'CO.'\r\n resultedArray[i] = {\r\n text: sortedList[i],\r\n id: localities[0].RegionCode,\r\n shortcut: localities[0].RegionCode + ': All',\r\n type: 'ch_with_child',\r\n localityIds: localities.map(item => item.LocalityId),\r\n locality: localities.map(e => {\r\n const name = e.Name.includes('County')\r\n ? e.Name.split('County')[0] + e.Name.split('County')[1] + countyShort\r\n : e.Name\r\n return {\r\n text: e.Name,\r\n id: e.LocalityId,\r\n shortcut: e.RegionCode + ': ' + name,\r\n type: 'children',\r\n }\r\n })\r\n }\r\n }\r\n return resultedArray\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.cmd ? state : actionHandler(state, action),\r\n [START_CLIENTS_DATA_FETCH] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [CLIENTS_DATA_FETCHED] : (state, action) => {\r\n const { page, field } = action.location\r\n const { json } = action.payload\r\n if (page !== pageIndex.cmd) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n [field]: {\r\n ...state.renderData[page][field],\r\n accountManagers: json.AccountManagers,\r\n accountTypes: json.AccountTypes,\r\n localityList: returnLocalities(json.LocalityList),\r\n regionList: json.RegionList\r\n }\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue\r\n }\r\n }\r\n },\r\n [GET_CLIENTS_START] : (state) => {\r\n return {\r\n ...state,\r\n }\r\n },\r\n [GET_CLIENTS_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n C: {\r\n ...state.renderData.C,\r\n groupNotes: {\r\n ...state.renderData.C.groupNotes,\r\n findClientList: json\r\n }\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue\r\n }\r\n }\r\n },\r\n [FETCH_CLIENTS_DATA_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n }\r\n },\r\n [GET_CLIENTS_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n }\r\n },\r\n [RETURN_DEFAULT_REPORT] : (state, action) => {\r\n const { page } = action\r\n if (page !== pageIndex.cmd) {\r\n return state\r\n }\r\n return {\r\n ...initialState,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData\r\n }\r\n }\r\n },\r\n [GET_GROUP_NOTES_START] : (state) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n C: {\r\n ...state.renderData.C,\r\n groupNotes: {\r\n ...state.renderData.C.groupNotes,\r\n isFetchingGroupNotes: true\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [GET_GROUP_NOTES_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n C: {\r\n ...state.renderData.C,\r\n groupNotes: {\r\n ...state.renderData.C.groupNotes,\r\n isFetchingGroupNotes: false,\r\n groupNotesFields: json\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [GET_GROUP_NOTES_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData\r\n }\r\n }\r\n },\r\n [OPEN_CLIENT] : (state, action) => {\r\n const { json } = action.payload\r\n const selected = json.IsFormerClient && json.SignedContract\r\n ? ['formerClient', 'signedOnFile']\r\n : json.IsFormerClient ? ['formerClient'] : json.SignedContract ? ['signedOnFile'] : []\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n C: {\r\n ...state.formDataValue.C,\r\n defaultSearch: {\r\n ...state.formDataValue.C.defaultSearch,\r\n title: json.Name,\r\n selected: selected,\r\n textValues: {\r\n ...state.formDataValue.C.defaultSearch.textValues,\r\n clientId: json.ClientId,\r\n shortName: json.ShortName ? json.ShortName : '',\r\n fullName: json.Name ? json.Name : '',\r\n address0: json.WelcomeName ? json.WelcomeName : '',\r\n address1: json.StreetAddress1 ? json.StreetAddress1 : '',\r\n address2: json.StreetAddress2 ? json.StreetAddress2 : '',\r\n address3: json.City + ' ' + json.State + ' ' + json.ZipCode,\r\n address4: json.Industry ? json.Industry : '',\r\n address5: json.Website ? json.Website : '',\r\n description: json.AnalystNotes ? json.AnalystNotes : '',\r\n notes: json.ManagementComments ? json.ManagementComments : '',\r\n },\r\n radio: {\r\n ...state.formDataValue.C.defaultSearch.radio,\r\n aType: json.ClientType ? json.ClientType : 'type 1',\r\n aManager: json.AccountManagerId ? json.AccountManagerId : 'manager 1',\r\n },\r\n dateTime: {\r\n ...state.formDataValue.C.defaultSearch.dateTime,\r\n recorddatestart: json.StartDate ? moment(json.StartDate).format('MMM / DD / YYYY') : ' ',\r\n recorddateend: json.EndDate ? moment(json.EndDate).format('MMM / DD / YYYY') : ' ',\r\n dt1fr: json.ContractStartDate ? moment(json.ContractStartDate).format('MMM / DD / YYYY') : ' ',\r\n dt1to: json.ContractEndDate ? moment(json.ContractEndDate).format('MMM / DD / YYYY') : ' ',\r\n dt2fr: json.NextScheduledAction ? moment(json.NextScheduledAction).format('MMM / DD / YYYY') : ' ',\r\n },\r\n },\r\n annualValue: {\r\n textValues: {\r\n ti1r: json.AnnualContractValue ? json.AnnualContractValue : '',\r\n },\r\n },\r\n legisStates: {\r\n selected: json.ClientRegionsLegis,\r\n },\r\n regsStatesRegister: {\r\n selected: json.ClientRegionsRegsRegister,\r\n },\r\n regsStatesAgency: {\r\n selected: json.ClientRegionsRegsAgency,\r\n },\r\n locality: {\r\n selected: json.ClientLocalities,\r\n },\r\n viewingOptions: {\r\n selected: [],\r\n textValues: {\r\n archiveStartYear: json.ArchiveStartYear ? json.ArchiveStartYear : '',\r\n },\r\n },\r\n }\r\n },\r\n renderData: {\r\n ...state.renderData,\r\n C: {\r\n ...state.renderData.C,\r\n groupNotes: {\r\n ...state.renderData.C.groupNotes,\r\n currentClient: json,\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [CLEAR_GROUP_NOTES] : (state) => {\r\n return {\r\n ...state,\r\n renderData: {\r\n ...state.renderData,\r\n C: {\r\n ...state.renderData.C,\r\n groupNotes: {\r\n ...state.renderData.C.groupNotes,\r\n groupNotes: {}\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: false,\r\n errorCode: '',\r\n renderData: {\r\n C: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n C: {\r\n defaultSearch: {\r\n title: '',\r\n selected: [],\r\n textValues: {\r\n clientId: '',\r\n shortName: '',\r\n fullName: '',\r\n address0: '',\r\n address1: '',\r\n address2: '',\r\n address3: '',\r\n address4: '',\r\n address5: '',\r\n description: '',\r\n notes: '',\r\n },\r\n radio: {\r\n aType: 'type 1',\r\n aManager: 'manager 1',\r\n },\r\n dateTime: {\r\n recorddatestart: ' ',\r\n recorddateend: ' ',\r\n dt1fr: ' ',\r\n dt1to: ' ',\r\n dt2fr: ' ',\r\n },\r\n },\r\n viewingOptions: {\r\n selected: [],\r\n textValues: {\r\n archiveStartYear: '',\r\n },\r\n },\r\n clientOptions: {\r\n selected: [],\r\n radio: {\r\n trackingPerYear: '50',\r\n },\r\n },\r\n legisStates: {\r\n selected: [],\r\n },\r\n regsStatesRegister: {\r\n selected: [],\r\n },\r\n regsStatesAgency: {\r\n selected: [],\r\n },\r\n locality: {\r\n selected: [],\r\n },\r\n additionalFilters: {},\r\n clientContacts: {\r\n selected: [],\r\n textValues: {},\r\n },\r\n clientUsers: {\r\n selected: [],\r\n textValues: {},\r\n },\r\n findClient: {\r\n textValues: {\r\n search: '',\r\n }\r\n },\r\n groupNotes: {\r\n selected: [],\r\n dateTime: {},\r\n radio: {},\r\n },\r\n groupNotesTypes: {\r\n selected: [],\r\n },\r\n categories: {\r\n selected: []\r\n },\r\n annualValue: {\r\n textValues: {\r\n ti1r: '',\r\n },\r\n },\r\n pricingHistory: {\r\n textValues: {\r\n 0: {\r\n pricingTerm: '',\r\n pricingAmount: '',\r\n pricingNotes: ''\r\n },\r\n pricingTerm: '2016-2018',\r\n pricingAmount: '$256.000',\r\n pricingNotes: '2-Year Agreement ($178.000/year)'\r\n },\r\n radio: {\r\n pricingType: 'Renewal'\r\n },\r\n selected: []\r\n },\r\n invoiceHistory: {\r\n textValues: {\r\n 0: {\r\n invoice: '',\r\n amount: '',\r\n date: '',\r\n dateReceived: '',\r\n dateDeposited: '',\r\n dateDue: '',\r\n dateResent: ''\r\n },\r\n invoice: '102526',\r\n amount: '356,000.00',\r\n date: '4/18/18',\r\n dateReceived: '4/27/18',\r\n dateDeposited: '4/27/18',\r\n dateDue: '4/30/18',\r\n dateResent: ''\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport default function clientsDataReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/clientManagementFormData.js","import { UPDATE_DATA, actionHandler } from './updateData'\r\nimport {\r\n QUERIES_LIST_FETCHED,\r\n queriesActionHandler,\r\n OPEN_RECORD,\r\n OPEN_RECORD_START,\r\n RETURN_INITIAL_STATE,\r\n matchDocs\r\n} from './queriesFormData'\r\nimport { page as pageIndex } from '../../globals'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const UPDATE_CURRENT_LEGIS_DATA = 'UPDATE_CURRENT_LEGIS_DATA'\r\nexport const actions = {\r\n updateCurrentLegisData\r\n}\r\n\r\nexport function updateCurrentLegisData (location, valueType, valueID, fieldValue) {\r\n return {\r\n type: UPDATE_CURRENT_LEGIS_DATA,\r\n location,\r\n valueType,\r\n payload: {\r\n value: valueID,\r\n fieldValue: fieldValue,\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nfunction matchRecordInfo (data) {\r\n return {\r\n textValues: {\r\n state: data.state,\r\n billType: data.billType,\r\n billNumber: data.billNumber,\r\n session: data.session,\r\n companion: data.companion,\r\n url: data.url,\r\n version: data.version,\r\n highlight: data.highlight,\r\n legisId: data.legisID,\r\n fileId: data.legisID\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.currentLegislation\r\n ? state : actionHandler(state, action),\r\n [QUERIES_LIST_FETCHED] : (state, action) => action.payload.page !== pageIndex.currentLegislation\r\n ? state : queriesActionHandler(state, action),\r\n [OPEN_RECORD_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [OPEN_RECORD] : (state, action) => {\r\n const { json, recordIndex, page } = action.payload\r\n if (page !== pageIndex.currentLegislation) {\r\n return {\r\n ...state\r\n }\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n queryRecords: json,\r\n currentRecord: json[recordIndex],\r\n recordIndex: recordIndex\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n recordInfo: matchRecordInfo(json[recordIndex].recordInfo),\r\n otherDocs: matchDocs(json[recordIndex].otherDocs, state.formDataValue[page]),\r\n navigation: {\r\n textValues: {\r\n currentRecord: recordIndex + 1\r\n }\r\n },\r\n settingsLine: {\r\n textValues: {\r\n currentLegYear: '2019',\r\n fileId: json[recordIndex].recordInfo.legisID,\r\n legisId: json[recordIndex].recordInfo.legisID\r\n },\r\n radio: {\r\n carryOver: ''\r\n }\r\n },\r\n recordSummary: json[recordIndex].recordSummary,\r\n clientActions: json[recordIndex].clientActions\r\n }\r\n }\r\n }\r\n },\r\n [RETURN_INITIAL_STATE] : (state, action) => {\r\n const { page } = action.payload\r\n if (page !== pageIndex.currentLegislation) {\r\n return {\r\n ...state\r\n }\r\n }\r\n return {\r\n ...initialState,\r\n formDataValue: {\r\n ...initialState.formDataValue,\r\n [page]: {\r\n ...initialState.formDataValue[page],\r\n queryLine: {\r\n radio: {\r\n query: state.formDataValue[page].queryLine.radio.query\r\n }\r\n },\r\n queriesList: state.formDataValue[page].queriesList,\r\n navigation: {\r\n textValues: {\r\n currentRecord: state.formDataValue[page].navigation.textValues.currentRecord\r\n }\r\n },\r\n otherDocs: {\r\n ...initialState.formDataValue[page].otherDocs\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [UPDATE_CURRENT_LEGIS_DATA] : (state, action) => {\r\n switch (action.valueType) {\r\n case 'select' : {\r\n const { id, field } = action.location\r\n const { value, fieldValue } = action.payload\r\n return {\r\n ...state,\r\n formDataValue: {\r\n CL: {\r\n ...state.formDataValue.CL,\r\n [field]: {\r\n ...state.formDataValue.CL[field],\r\n [id]: {\r\n ...state.formDataValue.CL[field][id],\r\n radio: {\r\n ...state.formDataValue.CL[field][id].radio,\r\n [value]: fieldValue\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n case 'textinput' : {\r\n const { id, field } = action.location\r\n const { value, fieldValue } = action.payload\r\n return {\r\n ...state,\r\n formDataValue: {\r\n CL: {\r\n ...state.formDataValue.CL,\r\n [field]: {\r\n ...state.formDataValue.CL[field],\r\n [id]: {\r\n ...state.formDataValue.CL[field][id],\r\n textValues: {\r\n ...state.formDataValue.CL[field][id].textValues,\r\n [value]: fieldValue\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: '',\r\n isFetchingData: false,\r\n renderData: {},\r\n formDataValue: {\r\n CL: {\r\n queryLine: {\r\n radio: {\r\n query: 'Select Query',\r\n team: 'Team'\r\n }\r\n },\r\n navigation: {\r\n textValues: {\r\n currentRecord: '1'\r\n }\r\n },\r\n settingsLine: {\r\n textValues: {\r\n currentLegYear: '2019',\r\n fileId: '',\r\n legisId: ''\r\n },\r\n radio: {\r\n carryOver: ''\r\n }\r\n },\r\n currentLegisProgress: {\r\n selected: []\r\n },\r\n otherDocs: {\r\n 0: {\r\n textValues: {\r\n urlIdDocs: '',\r\n urlDescription: ''\r\n },\r\n radio: {\r\n docsType: 'versions'\r\n }\r\n }\r\n },\r\n currentLegisSummary: {\r\n radio: {\r\n summaryView: 'f'\r\n }\r\n },\r\n recordInfo: {\r\n textValues: {\r\n url: '',\r\n version: '',\r\n highlight: ''\r\n }\r\n },\r\n clients: {\r\n selected: []\r\n },\r\n groupings: {\r\n selected: []\r\n },\r\n managementComments: {\r\n radio: {\r\n teamNumber: ''\r\n },\r\n selected: []\r\n },\r\n clientAction: {\r\n selected: []\r\n }\r\n }\r\n }\r\n}\r\nexport default function currentLegislationReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/currentLegislationData.js","import { page as pageIndex } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.dashboard\r\n ? state\r\n : action.location.section !== 'deletedRecords' ? null : actionHandler(state, action)\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n D: {\r\n archivedYear: {\r\n radio: {\r\n archivedYear: ''\r\n }\r\n },\r\n deletedRecords: {\r\n selected: []\r\n }\r\n }\r\n }\r\n}\r\nexport default function deletedRecordsReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/deletedRecordsArchive.js","import { globals } from '../../globals'\r\nimport { UPDATE_DATA } from './updateData'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const CREATE_FAVORITE_START = 'CREATE_FAVORITE_START'\r\nexport const NEW_FAVORITE_CREATED = 'NEW_FAVORITE_CREATED'\r\nexport const NEW_FAVORITE_FAILED = 'NEW_SUBJECT_FAILED'\r\nexport const NONUNIQUE_FAVORITE_NAME = 'NONUNIQUE_FAVORITE_NAME'\r\nexport const DELETE_FAVORITE_START = 'DELETE_FAVORITE_START'\r\nexport const FAVORITE_DELETED = 'FAVORITE_DELETED'\r\nexport const DELETE_FAVORITE_FAILED = 'DELETE_FAVORITE_FAILED'\r\nexport const EDIT_FAVORITE_START = 'EDIT_FAVORITE_START'\r\nexport const FAVORITE_EDITED = 'FAVORITE_EDITED'\r\nexport const EDIT_FAVORITE_FAILED = 'EDIT_FAVORITE_FAILED'\r\nexport const GET_FAVORITE_START = 'GET_FAVORITE_START'\r\nexport const FAVORITE_FETCHED = 'FAVORITE_FETCHED'\r\nexport const GET_FAVORITE_FAILED = 'GET_FAVORITE_FAILED'\r\nexport const DATA_FETCHED = 'DATA_FETCHED'\r\nexport const ADD_ITEM_TO_FAVORITE_START = 'ADD_ITEM_TO_FAVORITE_START'\r\nexport const ADD_ITEM_TO_FAVORITE_CREATED = 'ADD_ITEM_TO_FAVORITE_CREATED'\r\nexport const ADD_ITEM_TO_FAVORITE_FAILED = 'ADD_ITEM_TO_FAVORITE_FAILED'\r\nexport const REMOVE_ITEM_FROM_FAVORITE_SUCCESS = 'REMOVE_ITEM_FROM_FAVORITE_SUCCESS'\r\nexport const GET_ITEM_FROM_FAVORITE_START = 'GET_ITEM_FROM_FAVORITE_START'\r\nexport const GET_ITEM_FROM_FAVORITE_SUCCESS = 'GET_ITEM_FROM_FAVORITE_SUCCESS'\r\nexport const GET_ITEM_FROM_FAVORITE_FAILED = 'GET_ITEM_FROM_FAVORITE_FAILED'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport const actions = {\r\n getFavoritesList\r\n}\r\n\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function createFavoritesList (favorite) {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_FAVORITE_START })\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(favorite)\r\n }\r\n fetch(`${globals.apiUrl}/api/personallist`, options).then((response) => {\r\n if (response.status === 400) {\r\n return dispatch({ type: NONUNIQUE_FAVORITE_NAME })\r\n } else if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: NEW_FAVORITE_CREATED,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: NEW_FAVORITE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function editFavoritesList (favorite) {\r\n return (dispatch) => {\r\n dispatch({ type: EDIT_FAVORITE_START })\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(favorite),\r\n }\r\n fetch(`${globals.apiUrl}/api/personallist`, options).then((response) => {\r\n if (response.status === 400) {\r\n dispatch({ type: NONUNIQUE_FAVORITE_NAME })\r\n } else if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: FAVORITE_EDITED,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: EDIT_FAVORITE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function getFavoritesList (usage) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_FAVORITE_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/api/personallist?usage=${usage}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 404) {\r\n dispatch({\r\n type: FAVORITE_FETCHED,\r\n payload: {\r\n json: []\r\n }\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: FAVORITE_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_FAVORITE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function deleteFavoritesList (listId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_FAVORITE_START })\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/api/personallist/${listId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n dispatch({ type: FAVORITE_DELETED })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: DELETE_FAVORITE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function addItemToFavorites (favoriteItem) {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_ITEM_TO_FAVORITE_START })\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(favoriteItem)\r\n }\r\n fetch(`${globals.apiUrl}/api/personallistitem`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ADD_ITEM_TO_FAVORITE_CREATED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: ADD_ITEM_TO_FAVORITE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function removeItemFromFavorites (favoriteItem) {\r\n let params = ''\r\n if (favoriteItem.PersonalListId.length > 1) {\r\n favoriteItem.PersonalListId.map(item => {\r\n params = `${params}listid=${item}&`\r\n })\r\n params = `${params}itemid=${favoriteItem.ItemId}`\r\n } else {\r\n params = `listid=${favoriteItem.PersonalListId}&itemid=${favoriteItem.ItemId}`\r\n }\r\n return (dispatch) => {\r\n dispatch({ type: ADD_ITEM_TO_FAVORITE_START })\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/api/personallistitem?${params}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: REMOVE_ITEM_FROM_FAVORITE_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: ADD_ITEM_TO_FAVORITE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function getItemFavorite (itemId, usage) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_ITEM_FROM_FAVORITE_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/api/personallistitem?itemId=${itemId}&usage=${usage}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_ITEM_FROM_FAVORITE_SUCCESS,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_ITEM_FROM_FAVORITE_FAILED })\r\n })\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => {\r\n const { page, field } = action.location\r\n const { value } = action.payload\r\n if (page !== 'Bill') {\r\n return state\r\n }\r\n switch (action.valueType) {\r\n case 'ch': {\r\n // mark single checkbox as checked\r\n const resultedSelectedArray = Array.isArray(value)\r\n ? [...state.formDataValue[page][field].selected, ...value]\r\n : [...state.formDataValue[page][field].selected, value]\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n [field]: {\r\n ...state.formDataValue[page][field],\r\n selected: resultedSelectedArray\r\n }\r\n }\r\n }\r\n }\r\n }\r\n case 'ch_uncheck': {\r\n // uncheck single checkbox\r\n const { page, field } = action.location\r\n const { value } = action.payload\r\n let resultedSelectedArray = state.formDataValue[page][field].selected\r\n if (Array.isArray(value)) {\r\n value.forEach(item => {\r\n resultedSelectedArray = resultedSelectedArray.filter(function (element) {\r\n return element !== item\r\n })\r\n })\r\n } else {\r\n const idIndex = state.formDataValue[page][field].selected.indexOf(value)\r\n resultedSelectedArray = [\r\n ...resultedSelectedArray.slice(0, idIndex),\r\n ...resultedSelectedArray.slice(idIndex + 1)\r\n ]\r\n }\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n [field]: {\r\n ...state.formDataValue[page][field],\r\n selected: resultedSelectedArray\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [DATA_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n groupNotes: {\r\n favoritesList: json.FavoritesList,\r\n clientId: json.ClientId,\r\n userId: json.UserId\r\n }\r\n }\r\n }\r\n },\r\n [CREATE_FAVORITE_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n favoritesFetching: true\r\n }\r\n }\r\n },\r\n [NEW_FAVORITE_CREATED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n favoriteId: json,\r\n favoritesFetching: false,\r\n uniqueFavoriteName: true\r\n }\r\n }\r\n },\r\n [NEW_FAVORITE_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n favoritesFetching: false,\r\n uniqueFavoriteName: false\r\n }\r\n }\r\n },\r\n [NONUNIQUE_FAVORITE_NAME] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n favoritesFetching: false,\r\n uniqueFavoriteName: false\r\n }\r\n }\r\n },\r\n [FAVORITE_EDITED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n editedFavoriteResult: json\r\n }\r\n }\r\n },\r\n [FAVORITE_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n fetchedFavorite: json\r\n }\r\n }\r\n },\r\n [ADD_ITEM_TO_FAVORITE_CREATED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n addedToPersList: json\r\n }\r\n }\r\n },\r\n [REMOVE_ITEM_FROM_FAVORITE_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n removedFromPersList: json\r\n }\r\n }\r\n },\r\n [GET_ITEM_FROM_FAVORITE_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n receivedPersonalIds: json\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n Bill: {\r\n favorites: {\r\n selected: []\r\n }\r\n },\r\n R: {\r\n favorites: {\r\n selected: [],\r\n },\r\n groupNotesOptions: {\r\n selected: []\r\n }\r\n },\r\n L: {\r\n favorites: {\r\n selected: []\r\n },\r\n groupNotesOptions: {\r\n selected: []\r\n }\r\n }\r\n }\r\n}\r\nexport default function favoritesReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/favorites.js","import { globals } from '../../globals'\r\n\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const UPDATE_FAVORITES_COMB_DATA = 'UPDATE_FAVORITES_COMB_DATA'\r\nexport const ALL_FAVORITE_FETCHED = 'ALL_FAVORITE_FETCHED'\r\nexport const ALL_GET_FAVORITE_START = 'ALL_GET_FAVORITE_START'\r\nexport const ALL_GET_FAVORITE_FAILED = 'GET_FROM_FAVORITE_FAILED'\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport const actions = {\r\n getAllFavoritesList,\r\n updateFavoritesCombData\r\n}\r\n\r\nexport function updateFavoritesCombData (location, valueType, valueID, fieldValue) {\r\n return {\r\n type: UPDATE_FAVORITES_COMB_DATA,\r\n location,\r\n valueType,\r\n payload: {\r\n value: valueID,\r\n fieldValue: fieldValue,\r\n }\r\n }\r\n}\r\n\r\nexport function getAllFavoritesList () {\r\n return (dispatch) => {\r\n dispatch({ type: ALL_GET_FAVORITE_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/personallist`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else if (response.status === 404) {\r\n dispatch({\r\n type: ALL_FAVORITE_FETCHED,\r\n payload: {\r\n json: [],\r\n },\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: ALL_FAVORITE_FETCHED,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: ALL_GET_FAVORITE_FAILED })\r\n })\r\n }\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_FAVORITES_COMB_DATA] : (state, action) => {\r\n switch (action.valueType) {\r\n case 'datetime': {\r\n const { value, fieldValue } = action.payload\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n favoritesDashboard: {\r\n ...state.formDataValue.favoritesDashboard,\r\n dateTime: {\r\n ...state.formDataValue.favoritesDashboard.dateTime,\r\n [value]: fieldValue,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n case 'textinput' : {\r\n // set text value\r\n const { page, field } = action.location\r\n const { value, fieldValue } = action.payload\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n [field]: {\r\n ...state.formDataValue[page][field],\r\n textValues: {\r\n ...state.formDataValue[page][field].textValues,\r\n [value]: fieldValue,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [ALL_GET_FAVORITE_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true,\r\n }\r\n },\r\n [ALL_FAVORITE_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n allFavorites: json\r\n },\r\n }\r\n },\r\n [ALL_GET_FAVORITE_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false\r\n }\r\n },\r\n}\r\n\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n favoritesDashboard: {\r\n dateTime: {\r\n updatedFrom: ' ',\r\n updatedTo: ' '\r\n }\r\n }\r\n },\r\n}\r\n\r\nexport default function favoritesCombReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/favoritesComb.js","import { page as pageIndex } from '../../globals'\r\nimport {\r\n matchParameters,\r\n filterRegions,\r\n sortAlphabetical,\r\n returnDateFormat,\r\n sortFieldList,\r\n mapGroupNotesOptionsValues,\r\n returnTextValuesForClearedFilters,\r\n mapGroupNotesFieldList } from './helpers'\r\nimport {\r\n START_DATA_FETCH,\r\n DATA_FETCHED,\r\n FETCH_FAILED,\r\n SAVE_GROUP_NOTES_OPTIONS,\r\n RETURN_DEFAULT_REPORT,\r\n OPEN_SAVED_REPORT,\r\n getFormDataHandlers,\r\n actionGroupNoteHandler } from './getFormData'\r\nimport { UPDATE_DATA, actionHandler } from './updateData'\r\nimport { CLEAR_FILTERS, NEW_REPORT_SAVED } from './reportLine'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nfunction transformBillTypes (arr) {\r\n let typeCodes = []\r\n const transformedArr = arr.map(item => {\r\n if (!typeCodes.includes(item.TypeCode)) {\r\n typeCodes = [...typeCodes, item.TypeCode]\r\n return {\r\n text: item.TypeCode,\r\n id: item.TypeCode,\r\n type: 'checkbox-with-descr',\r\n description: item.Description,\r\n childrenStyles: {\r\n display: 'inline-block',\r\n width: 100,\r\n },\r\n descriptionStyles: {\r\n fontWeight: 300, maxWidth: 183, display: 'inline-block', verticalAlign: 'top', lineHeight: '24px'\r\n }\r\n }\r\n } else return false\r\n }).filter(item => item !== false)\r\n return sortAlphabetical(transformedArr, 'text')\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [START_DATA_FETCH] : getFormDataHandlers['START_DATA_FETCH'],\r\n [FETCH_FAILED] : getFormDataHandlers['FETCH_FAILED'],\r\n [DATA_FETCHED] : (state, action) => {\r\n const { page, field } = action.location\r\n const { json } = action.payload\r\n const mappedApiData = mapGroupNotesFieldList(json.FieldList)\r\n if (page !== pageIndex.legis) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n [field]: {\r\n archiveStartYear: json.ArchiveStartYear,\r\n billTypes: {\r\n billTypeBlock: transformBillTypes(json.BillTypes),\r\n stateGuide: sortAlphabetical(json.BillTypes, 'RegionName')\r\n },\r\n clientId: json.ClientId,\r\n defaultReport: json.DefaultReport,\r\n favoritesList: json.FavoritesList,\r\n fieldList: sortFieldList(json.FieldList),\r\n fieldOptions: mapGroupNotesOptionsValues(json.FieldOptions),\r\n prefileOptionsList: json.PrefileOptionsList,\r\n regionList: filterRegions(json.RegionList),\r\n subjectList: json.SubjectList,\r\n userId: json.UserId\r\n }\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n [field]: {\r\n ...state.formDataValue[page][field],\r\n radio: {\r\n ...state.formDataValue[page][field].radio,\r\n ...mappedApiData.radio,\r\n },\r\n dateTime: {\r\n ...state.formDataValue[page][field].dateTime,\r\n ...mappedApiData.dateTime,\r\n },\r\n textValues: {\r\n ...state.formDataValue[page][field].textValues,\r\n ...mappedApiData.textValues\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [SAVE_GROUP_NOTES_OPTIONS] : (state, action) => action.location.page !== pageIndex.legis\r\n ? state : actionGroupNoteHandler(state, action),\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.legis ? state : actionHandler(state, action),\r\n [CLEAR_FILTERS] : (state, action) => {\r\n const { page } = action\r\n if (page !== pageIndex.legis) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...clearState.formDataValue[page],\r\n groupNotes: {\r\n ...clearState.formDataValue[page].groupNotes,\r\n textValues: returnTextValuesForClearedFilters\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [RETURN_DEFAULT_REPORT] : (state, action) => {\r\n const { page } = action\r\n if (page !== pageIndex.legis) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...initialState.formDataValue[page],\r\n groupNotesOptions: {\r\n selected: [\r\n ...state.formDataValue[page].groupNotesOptions.selected\r\n ],\r\n radio: {\r\n sw0h: false\r\n }\r\n }\r\n }\r\n },\r\n renderData: {\r\n ...state.renderData\r\n }\r\n }\r\n },\r\n [OPEN_SAVED_REPORT] : (state, action) => {\r\n const { page } = action\r\n const { json } = action.payload\r\n if (page !== pageIndex.legis || json === undefined) {\r\n return {\r\n ...state,\r\n }\r\n } else {\r\n const criteria = matchParameters(json.ReportCriteria, state.renderData[page].groupNotes.fieldList)\r\n let favorites = criteria.filters.personalreport ? criteria.filters.personalreport : []\r\n favorites = criteria.filters.notinpersonalreport ? [...favorites, 'notinpersonalreport'] : favorites\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n defaultSearch: {\r\n ...state.formDataValue[page].defaultSearch,\r\n title: json.Name,\r\n textValues: {\r\n ...state.formDataValue[page].defaultSearch.textValues,\r\n reporttitle: criteria.filters.reporttitle || '',\r\n billnumbers: criteria.filters.billnumbers || ''\r\n },\r\n dateTime: {\r\n recorddatestart: criteria.filters.recorddatestart\r\n ? returnDateFormat(criteria.filters.recorddatestart[0])\r\n : new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: criteria.filters.recorddateend\r\n ? returnDateFormat(criteria.filters.recorddateend[0])\r\n : new Date(),\r\n hearingdatestart: ' ',\r\n hearingdateend: ' ',\r\n },\r\n radio: {\r\n reporttype: criteria.filters.reporttype[0] || 'alltracked',\r\n },\r\n },\r\n viewingOptions: {\r\n selected: criteria.viewingOptions.selected || [],\r\n radio: {\r\n histlist: criteria.viewingOptions.historyRadioButton,\r\n howmany: criteria.viewingOptions.howmany,\r\n },\r\n },\r\n advancedEditingTools: {\r\n selected: criteria.advancedEditingTools.selected || [],\r\n radio: {\r\n sortheader: !!criteria.advancedEditingTools.sortheader,\r\n sort1: criteria.advancedEditingTools.sort1[0],\r\n sort2: criteria.advancedEditingTools.sort2[0],\r\n sort3: criteria.advancedEditingTools.sort3[0],\r\n sort4: criteria.advancedEditingTools.sort4[0],\r\n }\r\n },\r\n reportFormat: {\r\n selected: criteria.mapOptions.selectedAdvancedOptions\r\n ? criteria.mapOptions.selectedAdvancedOptions : [],\r\n radio: {\r\n mapit: !!criteria.mapOptions.mapit,\r\n outformat: criteria.mapOptions.outformat,\r\n }\r\n },\r\n maps: {\r\n selected: criteria.mapOptions.selected !== undefined ? criteria.mapOptions.selected : [],\r\n textValues: {\r\n lowcountcolor: criteria.mapOptions.lowcountcolor ||\r\n state.formDataValue[page].maps.textValues.lowcountcolor,\r\n medcountcolor: criteria.mapOptions.medcountcolor ||\r\n state.formDataValue[page].maps.textValues.medcountcolor,\r\n highcountcolor: criteria.mapOptions.highcountcolor ||\r\n state.formDataValue[page].maps.textValues.highcountcolor,\r\n foundbillscolor: criteria.mapOptions.foundbillscolor ||\r\n state.formDataValue[page].maps.textValues.foundbillscolor,\r\n },\r\n },\r\n groupNotesOptions: {\r\n selected: criteria.groupNotesOptions ? criteria.groupNotesOptions : [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n summary: criteria.filters.summary ? criteria.filters.summary : '',\r\n sponsor: criteria.filters.sponsor ? criteria.filters.sponsor : '',\r\n history: criteria.filters.history ? criteria.filters.history : '',\r\n personalnotes: criteria.filters.personalnotes ? criteria.filters.personalnotes : ''\r\n },\r\n dateTime: {\r\n introdatestart: criteria.filters.introdatestart\r\n ? returnDateFormat(criteria.filters.introdatestart[0]) : ' ',\r\n introdateend: criteria.filters.introdateend\r\n ? returnDateFormat(criteria.filters.introdateend[0]) : ' ',\r\n actiondatestart: criteria.filters.introdateend\r\n ? returnDateFormat(criteria.filters.actiondatestart[0]) : ' ',\r\n actiondateend: criteria.filters.actiondateend\r\n ? returnDateFormat(criteria.filters.actiondateend[0]) : ' ',\r\n personalnotesstart: criteria.filters.personalnotesstart\r\n ? returnDateFormat(criteria.filters.personalnotesstart[0]) : ' ',\r\n personalnotesend: criteria.filters.personalnotesend\r\n ? returnDateFormat(criteria.filters.personalnotesend[0]) : ' ',\r\n }\r\n },\r\n archivedYear: {\r\n selected: criteria.filters.archive ? criteria.filters.archive : ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: criteria.filters.archivedsubjects ? criteria.filters.archivedsubjects : [],\r\n },\r\n billType: {\r\n selected: criteria.filters.billtype ? criteria.filters.billtype : [],\r\n },\r\n carryOrders: {\r\n selected: criteria.filters.carry ? criteria.filters.carry : ['any'],\r\n },\r\n groupNotes: {\r\n selected: criteria.groupNotesFilters ? criteria.groupNotesFilters.selected : [],\r\n radio: {\r\n noteslogic: criteria.filters.noteslogic === 'and' || criteria.filters.noteslogic === undefined\r\n ? 'ALL selected Group Notes criteria must be true.'\r\n : 'ANY selected Group Notes criteria must be true.'\r\n },\r\n dateTime: {\r\n noteslastupdatestart: criteria.filters.noteslastupdatestart\r\n ? returnDateFormat(criteria.filters.noteslastupdatestart[0]) : ' ',\r\n noteslastupdateend: criteria.filters.noteslastupdateend\r\n ? returnDateFormat(criteria.filters.noteslastupdateend[0]) : ' ',\r\n },\r\n textValues: criteria.groupNotesFilters.textValues\r\n },\r\n favorites: {\r\n selected: favorites\r\n },\r\n progress: {\r\n selected: criteria.filters.progress ? criteria.filters.progress : []\r\n },\r\n subjects: {\r\n selected: criteria.filters.subjects ? criteria.filters.subjects : []\r\n },\r\n states: {\r\n selected: criteria.filters.states ? criteria.filters.states : []\r\n }\r\n }\r\n },\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n groupNotes: {\r\n ...state.renderData[page].groupNotes,\r\n selectedReport: json,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [NEW_REPORT_SAVED] : (state, action) => {\r\n const { json, name } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n L: {\r\n ...state.renderData.L,\r\n saveReportId: json,\r\n duplicatedReportName: false,\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n L: {\r\n ...state.formDataValue.L,\r\n defaultSearch: {\r\n ...state.formDataValue.L.defaultSearch,\r\n title: name,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst clearState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {\r\n L: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n L: {\r\n viewingOptions: {\r\n selected: [],\r\n radio: {\r\n histlist: 'History by Line',\r\n howmany: '25',\r\n },\r\n },\r\n defaultSearch : {\r\n title: 'Default Search',\r\n textValues: {\r\n reporttitle: '',\r\n billnumbers: '',\r\n },\r\n radio: {\r\n reporttype: 'alltracked',\r\n },\r\n dateTime: {\r\n recorddatestart: new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: new Date(),\r\n hearingdatestart: ' ',\r\n hearingdateend: ' ',\r\n }\r\n },\r\n groupNotes: {\r\n selected: [],\r\n radio: {\r\n noteslogic: 'ALL selected Group Notes criteria must be true.',\r\n },\r\n dateTime: {\r\n noteslastupdatestart: ' ',\r\n noteslastupdateend: ' ',\r\n },\r\n },\r\n groupNotesOptions: {\r\n selected: [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n summary: '',\r\n sponsor: '',\r\n history: '',\r\n personalnotes: ''\r\n },\r\n dateTime: {\r\n introdatestart: ' ',\r\n introdateend: ' ',\r\n actiondatestart: ' ',\r\n actiondateend: ' ',\r\n personalnotesstart: ' ',\r\n personalnotesend: ' ',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: [],\r\n radio: {\r\n sortheader: false,\r\n sort1: 'state',\r\n sort2: 'billtype',\r\n sort3: 'billnumber',\r\n sort4: 'session',\r\n }\r\n },\r\n reportFormat: {\r\n selected: [],\r\n radio: {\r\n mapit: false,\r\n outformat: 'html',\r\n }\r\n },\r\n billType: {\r\n selected: [],\r\n },\r\n carryOrders: {\r\n selected: ['any'],\r\n },\r\n archivedYear: {\r\n selected: ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: [],\r\n },\r\n subjects: {\r\n selected: [],\r\n },\r\n favorites: {\r\n selected: [],\r\n },\r\n states: {\r\n selected: [],\r\n },\r\n progress: {\r\n selected: [],\r\n },\r\n priority: {\r\n selected: [],\r\n },\r\n position: {\r\n selected: [],\r\n },\r\n revenue: {\r\n selected: [],\r\n },\r\n compliance: {\r\n selected: [],\r\n },\r\n department: {\r\n selected: [],\r\n },\r\n maps: {\r\n selected: [],\r\n textValues: {\r\n lowcountcolor: '#9cc1e6',\r\n medcountcolor: '#4175b2',\r\n highcountcolor: '#243e66',\r\n foundbillscolor: '#4175b2',\r\n },\r\n },\r\n },\r\n },\r\n}\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {\r\n L: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n L: {\r\n viewingOptions: {\r\n selected: [\r\n 'viewsearchcriteria', 'viewsession', 'viewintrodate',\r\n 'viewprogress', 'viewemailalerts', 'viewemailit',\r\n 'viewsponsor', 'viewotherlinks', 'viewsubject',\r\n 'viewsummary', 'viewhearings', 'viewhistory', '',\r\n 'viewpersonalnotes', 'viewpersreports', 'viewlegisstatebackdrop'\r\n ],\r\n radio: {\r\n histlist: 'History by Line',\r\n howmany: '25',\r\n },\r\n },\r\n defaultSearch : {\r\n title: 'Default Search',\r\n textValues: {\r\n reporttitle: 'Legislative Report',\r\n billnumbers: '',\r\n },\r\n radio: {\r\n reporttype: 'alltracked',\r\n },\r\n dateTime: {\r\n recorddatestart: new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: new Date(),\r\n hearingdatestart: ' ',\r\n hearingdateend: ' ',\r\n }\r\n },\r\n groupNotes: {\r\n selected: [],\r\n radio: {\r\n noteslogic: 'ALL selected Group Notes criteria must be true.',\r\n },\r\n dateTime: {\r\n noteslastupdatestart: ' ',\r\n noteslastupdateend: ' ',\r\n },\r\n },\r\n groupNotesOptions: {\r\n selected: ['editnotes', 'viewnoteslastupdated'],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n summary: '',\r\n sponsor: '',\r\n history: '',\r\n personalnotes: ''\r\n },\r\n dateTime: {\r\n introdatestart: ' ',\r\n introdateend: ' ',\r\n actiondatestart: ' ',\r\n actiondateend: ' ',\r\n personalnotesstart: ' ',\r\n personalnotesend: ' ',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: [],\r\n radio: {\r\n sortheader: false,\r\n sort1: 'state',\r\n sort2: 'billtype',\r\n sort3: 'billnumber',\r\n sort4: 'session',\r\n }\r\n },\r\n reportFormat: {\r\n selected: [],\r\n radio: {\r\n mapit: false,\r\n outformat: 'html',\r\n }\r\n },\r\n billType: {\r\n selected: [],\r\n },\r\n carryOrders: {\r\n selected: ['any'],\r\n },\r\n archivedYear: {\r\n selected: ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: [],\r\n },\r\n subjects: {\r\n selected: [],\r\n },\r\n favorites: {\r\n selected: [],\r\n },\r\n states: {\r\n selected: [],\r\n },\r\n progress: {\r\n selected: [],\r\n },\r\n priority: {\r\n selected: [],\r\n },\r\n position: {\r\n selected: [],\r\n },\r\n revenue: {\r\n selected: [],\r\n },\r\n compliance: {\r\n selected: [],\r\n },\r\n department: {\r\n selected: [],\r\n },\r\n maps: {\r\n selected: [],\r\n textValues: {\r\n lowcountcolor: '#9cc1e6',\r\n medcountcolor: '#4175b2',\r\n highcountcolor: '#243e66',\r\n foundbillscolor: '#4175b2',\r\n },\r\n },\r\n },\r\n Bill: {\r\n favorites: {\r\n selected: [],\r\n },\r\n },\r\n },\r\n}\r\nexport default function legisDataReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/legisFormData.js","import { page as pageIndex } from '../../globals'\r\nimport {\r\n matchParameters,\r\n sortFieldList,\r\n mapGroupNotesOptionsValues,\r\n mapGroupNotesFieldList,\r\n returnDateFormat } from './helpers'\r\nimport {\r\n START_DATA_FETCH,\r\n DATA_FETCHED,\r\n FETCH_FAILED,\r\n SAVE_GROUP_NOTES_OPTIONS,\r\n RETURN_DEFAULT_REPORT,\r\n OPEN_SAVED_REPORT,\r\n getFormDataHandlers,\r\n actionGroupNoteHandler } from './getFormData'\r\nimport { UPDATE_DATA, actionHandler } from './updateData'\r\nimport { CLEAR_FILTERS } from './reportLine'\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [START_DATA_FETCH] : getFormDataHandlers['START_DATA_FETCH'],\r\n [FETCH_FAILED] : getFormDataHandlers['FETCH_FAILED'],\r\n [DATA_FETCHED] : (state, action) => {\r\n const { page, field } = action.location\r\n const { json } = action.payload\r\n const mappedApiData = mapGroupNotesFieldList(json.FieldList)\r\n if (page !== pageIndex.local) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n [field]: {\r\n fieldList: sortFieldList(json.FieldList),\r\n fieldOptions: mapGroupNotesOptionsValues(json.FieldOptions),\r\n regionList: json.RegionList,\r\n subjectList: json.SubjectList,\r\n favoritesList: json.FavoritesList,\r\n archiveStartYear: json.ArchiveStartYear,\r\n clientId: json.ClientId,\r\n userId: json.UserId,\r\n defaultReport: json.DefaultReport\r\n }\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n [field]: {\r\n ...state.formDataValue[page][field],\r\n radio: {\r\n ...state.formDataValue[page][field].radio,\r\n ...mappedApiData.radio,\r\n },\r\n dateTime: {\r\n ...state.formDataValue[page][field].dateTime,\r\n ...mappedApiData.dateTime,\r\n },\r\n textValues: {\r\n ...state.formDataValue[page][field].textValues,\r\n ...mappedApiData.textValues\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [SAVE_GROUP_NOTES_OPTIONS] : (state, action) => action.location.page !== pageIndex.local\r\n ? state : actionGroupNoteHandler(state, action),\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.local ? state : actionHandler(state, action),\r\n [CLEAR_FILTERS] : (state, action) => {\r\n const { page } = action\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...clearState.formDataValue[page],\r\n }\r\n }\r\n }\r\n },\r\n [RETURN_DEFAULT_REPORT] : (state, action) => {\r\n const { page } = action\r\n if (page !== pageIndex.local) {\r\n return {\r\n ...state\r\n }\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...initialState.formDataValue[page],\r\n groupNotesOptions: {\r\n selected: [\r\n ...state.formDataValue[page].groupNotesOptions.selected,\r\n ],\r\n radio: {\r\n sw0h: false,\r\n }\r\n }\r\n }\r\n },\r\n renderData: {\r\n ...state.renderData,\r\n }\r\n }\r\n },\r\n [OPEN_SAVED_REPORT] : (state, action) => {\r\n const { page } = action\r\n const { json } = action.payload\r\n if (page !== pageIndex.local || json === undefined) {\r\n return {\r\n ...state,\r\n }\r\n } else {\r\n const criteria = matchParameters(json.ReportCriteria)\r\n const favorites = criteria.filters.personalreport ? criteria.filters.personalreport : []\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n defaultSearch: {\r\n ...state.formDataValue[page].defaultSearch,\r\n title: json.Name,\r\n textValues: {\r\n ...state.formDataValue[page].defaultSearch.textValues,\r\n reporttitle: criteria.filters.reporttitle || '',\r\n },\r\n dateTime: {\r\n recorddatestart: criteria.filters.recorddatestart\r\n ? returnDateFormat(criteria.filters.recorddatestart)\r\n : new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: criteria.filters.recorddateend\r\n ? returnDateFormat(criteria.filters.recorddateend) : new Date(),\r\n meetingdatestart: criteria.filters.meetingdatestart\r\n ? returnDateFormat(criteria.filters.meetingdatestart) : ' ',\r\n meetingdateend: criteria.filters.meetingdateend\r\n ? returnDateFormat(criteria.filters.meetingdateend) : ' ',\r\n },\r\n radio: {\r\n reporttype: criteria.filters.reporttype[0] || 'alltracked',\r\n },\r\n selected: []\r\n },\r\n viewingOptions: {\r\n selected: criteria.viewingOptions.selected || [],\r\n radio: {\r\n histlist: criteria.viewingOptions.historyRadioButton,\r\n howmany: criteria.viewingOptions.howmany,\r\n },\r\n },\r\n advancedEditingTools: {\r\n selected: criteria.advancedEditingTools.selected || [],\r\n radio: {\r\n sortheader: !!criteria.advancedEditingTools.sortheader,\r\n sort1: criteria.advancedEditingTools.sort1[0],\r\n sort2: criteria.advancedEditingTools.sort2[0],\r\n sort3: criteria.advancedEditingTools.sort3[0],\r\n sort4: criteria.advancedEditingTools.sort4[0],\r\n }\r\n },\r\n reportFormat: {\r\n selected: criteria.mapOptions.selectedAdvancedOptions\r\n ? [criteria.mapOptions.selectedAdvancedOptions] : [],\r\n radio: {\r\n mapit: !!criteria.mapOptions.mapit,\r\n outformat: criteria.mapOptions.outformat[0],\r\n }\r\n },\r\n maps: {\r\n selected: criteria.mapOptions.selected || [],\r\n textValues: {\r\n lowcountcolor: criteria.mapOptions.lowcountcolor ||\r\n state.formDataValue[page].maps.textValues.lowcountcolor,\r\n medcountcolor: criteria.mapOptions.medcountcolor ||\r\n state.formDataValue[page].maps.textValues.medcountcolor,\r\n highcountcolor: criteria.mapOptions.highcountcolor ||\r\n state.formDataValue[page].maps.textValues.highcountcolor,\r\n foundbillscolor: criteria.mapOptions.foundbillscolor ||\r\n state.formDataValue[page].maps.textValues.foundbillscolor,\r\n },\r\n },\r\n groupNotesOptions: {\r\n selected: criteria.groupNotesOptions || [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n title: criteria.filters.title || '',\r\n summary: criteria.filters.summary || '',\r\n history: criteria.filters.history || '',\r\n personalnotes: criteria.filters.personalnotes || '',\r\n },\r\n dateTime: {\r\n actiondatestart: criteria.filters.personalnotesstart\r\n ? returnDateFormat(criteria.filters.personalnotesstart) : ' ',\r\n actiondateend: criteria.filters.actiondateend\r\n ? returnDateFormat(criteria.filters.actiondateend) : ' ',\r\n personalnotesstart: criteria.filters.personalnotesstart\r\n ? returnDateFormat(criteria.filters.personalnotesstart) : ' ',\r\n personalnotesend: criteria.filters.personalnotesend\r\n ? returnDateFormat(criteria.filters.personalnotesend) : ' ',\r\n }\r\n },\r\n archivedYear: {\r\n selected: criteria.filters.archive ? [criteria.filters.archive] : ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: criteria.filters.archivedsubject ? [criteria.filters.archivedsubject] : [],\r\n },\r\n groupNotes: {\r\n selected: criteria.filters.noteslastupdateunassigned === 'true'\r\n ? ['noteslastupdateunassigned']\r\n : [],\r\n radio: {\r\n noteslogic: criteria.filters.noteslogic === 'and' || criteria.filters.noteslogic === undefined\r\n ? 'ALL selected Group Notes criteria must be true.'\r\n : 'ANY selected Group Notes criteria must be true.'\r\n },\r\n dateTime: {\r\n noteslastupdatestart: criteria.filters.noteslastupdatestart\r\n ? returnDateFormat(criteria.filters.noteslastupdatestart) : ' ',\r\n noteslastupdateend: criteria.filters.noteslastupdateend\r\n ? returnDateFormat(criteria.filters.noteslastupdateend) : ' ',\r\n },\r\n },\r\n favorites: {\r\n selected: criteria.filters.notinpersonalreport === 'true' ? [...favorites, 'notinpersonalreport'] : []\r\n },\r\n progress: {\r\n selected: criteria.filters.progress ? [criteria.filters.progress] : []\r\n },\r\n subjects: {\r\n selected: criteria.filters.subjects ? [criteria.filters.subjects] : []\r\n },\r\n locality: {\r\n selected: criteria.filters.states ? [criteria.filters.states] : []\r\n }\r\n }\r\n },\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n groupNotes: {\r\n ...state.renderData[page].groupNotes,\r\n selectedReport: json,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst clearState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {\r\n O: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n O: {\r\n viewingOptions: {\r\n selected: [],\r\n radio: {\r\n histlist: '',\r\n howmany: '25',\r\n },\r\n },\r\n defaultSearch : {\r\n title: 'Default Search',\r\n textValues: {\r\n reporttitle: '',\r\n citation: '',\r\n },\r\n radio: {\r\n reporttype: 'alltracked',\r\n },\r\n dateTime: {\r\n recorddatestart: new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: new Date(),\r\n meetingdatestart: ' ',\r\n meetingdateend: ' ',\r\n dt2fr: ' ',\r\n dt2to: ' ',\r\n },\r\n selected: ['cb4date']\r\n },\r\n groupNotes: {\r\n selected: [],\r\n radio: {\r\n noteslogic: 'ALL selected Group Notes criteria must be true.',\r\n },\r\n dateTime: {\r\n noteslastupdatestart: ' ',\r\n noteslastupdateend: ' ',\r\n },\r\n },\r\n groupNotesOptions: {\r\n selected: [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n title: '',\r\n history: '',\r\n summary: '',\r\n personalnotes: '',\r\n },\r\n dateTime: {\r\n dt0if: ' ',\r\n dt1it: ' ',\r\n personalnotesstart: ' ',\r\n personalnotesend: ' ',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: [],\r\n radio: {\r\n sortheader: false,\r\n sort1: 'locality',\r\n sort2: 'title',\r\n sort3: 'meetingdate',\r\n sort4: 'subject',\r\n }\r\n },\r\n reportFormat: {\r\n selected: [],\r\n radio: {\r\n mapit: false,\r\n outformat: 'html',\r\n }\r\n },\r\n recordType: {\r\n selected: [],\r\n },\r\n carryOrders: {\r\n selected: [],\r\n },\r\n archivedYear: {\r\n selected: ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: [],\r\n },\r\n subjects: {\r\n selected: [],\r\n },\r\n favorites: {\r\n selected: [],\r\n },\r\n locality: {\r\n selected: [],\r\n },\r\n progress: {\r\n selected: [],\r\n },\r\n priority: {\r\n selected: [],\r\n },\r\n position: {\r\n selected: [],\r\n },\r\n revenue: {\r\n selected: [],\r\n },\r\n compliance: {\r\n selected: [],\r\n },\r\n department: {\r\n selected: [],\r\n },\r\n maps: {\r\n selected: [],\r\n textValues: {\r\n lowcountcolor: '#9cc1e6',\r\n medcountcolor: '#4175b2',\r\n highcountcolor: '#243e66',\r\n foundbillscolor: '#4175b2',\r\n },\r\n },\r\n },\r\n },\r\n}\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {\r\n O: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n O: {\r\n viewingOptions: {\r\n selected: [\r\n 'viewsearchcriteria', 'viewemailalerts', 'viewemailit',\r\n 'viewcontactinfo', '', '',\r\n 'viewlinks', 'viewsubject', 'viewsummary',\r\n 'viewhistory', 'viewremarks', '',\r\n 'viewpersonalnotes', 'viewpersreports'\r\n ],\r\n radio: {\r\n histlist: 'History by Line',\r\n howmany: '25',\r\n },\r\n },\r\n defaultSearch : {\r\n title: 'Default Search',\r\n textValues: {\r\n reporttitle: 'Local Report',\r\n },\r\n cb: {\r\n cb4date: {},\r\n },\r\n radio: {\r\n reporttype: 'alltracked',\r\n },\r\n dateTime: {\r\n recorddatestart: new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: new Date(),\r\n meetingdatestart: ' ',\r\n meetingdateend: ' ',\r\n dt2fr: ' ',\r\n dt2to: ' ',\r\n },\r\n selected: []\r\n },\r\n groupNotes: {\r\n selected: [],\r\n radio: {\r\n noteslogic: 'ALL selected Group Notes criteria must be true.',\r\n },\r\n dateTime: {\r\n noteslastupdatestart: ' ',\r\n noteslastupdateend: ' ',\r\n },\r\n },\r\n groupNotesOptions: {\r\n selected: ['editnotes', 'viewnoteslastupdated'],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n title: '',\r\n history: '',\r\n summary: '',\r\n personalnotes: '',\r\n },\r\n dateTime: {\r\n dt0if: ' ',\r\n dt1it: ' ',\r\n personalnotesstart: ' ',\r\n personalnotesend: ' ',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: [],\r\n radio: {\r\n sortheader: false,\r\n sort1: 'locality',\r\n sort2: 'title',\r\n sort3: 'meetingdate',\r\n sort4: 'subject',\r\n }\r\n },\r\n reportFormat: {\r\n selected: [],\r\n radio: {\r\n mapit: false,\r\n outformat: 'html',\r\n }\r\n },\r\n recordType: {\r\n selected: [],\r\n },\r\n carryOrders: {\r\n selected: [],\r\n },\r\n archivedYear: {\r\n selected: ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: [],\r\n },\r\n subjects: {\r\n selected: [],\r\n },\r\n favorites: {\r\n selected: [],\r\n },\r\n locality: {\r\n selected: [],\r\n },\r\n progress: {\r\n selected: [],\r\n },\r\n priority: {\r\n selected: [],\r\n },\r\n position: {\r\n selected: [],\r\n },\r\n revenue: {\r\n selected: [],\r\n },\r\n compliance: {\r\n selected: [],\r\n },\r\n department: {\r\n selected: [],\r\n },\r\n maps: {\r\n selected: [],\r\n textValues: {\r\n lowcountcolor: '#9cc1e6',\r\n medcountcolor: '#4175b2',\r\n highcountcolor: '#243e66',\r\n foundbillscolor: '#4175b2',\r\n },\r\n },\r\n },\r\n },\r\n}\r\nexport default function localDataReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/localFormData.js","import { globals } from '../../globals'\r\nimport moment from 'moment'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const GET_PERSONAL_NOTE_START = 'GET_PERSONAL_NOTE_START'\r\nexport const GET_PERSONAL_NOTE_SUCCESS = 'GET_PERSONAL_NOTE_SUCCESS'\r\nexport const GET_PERSONAL_NOTE_FAILED = 'NEW_FAVORITE_FAILED'\r\nexport const CREATE_PERSONAL_NOTE_START = 'CREATE_PERSONAL_NOTE_START'\r\nexport const CREATE_PERSONAL_NOTE_SUCCESS = 'CREATE_PERSONAL_NOTE_SUCCESS'\r\nexport const CREATE_PERSONAL_NOTE_FAILED = 'CREATE_PERSONAL_NOTE_FAILED'\r\nexport const UPDATE_PERSONAL_NOTE_START = 'UPDATE_PERSONAL_NOTE_START'\r\nexport const UPDATE_PERSONAL_NOTE_SUCCESS = 'UPDATE_PERSONAL_NOTE_SUCCESS'\r\nexport const UPDATE_PERSONAL_NOTE_FAILED = 'UPDATE_PERSONAL_NOTE_FAILED'\r\nexport const DELETE_PERSONAL_NOTE_START = 'DELETE_PERSONAL_NOTE_START'\r\nexport const DELETE_PERSONAL_NOTE_SUCCESS = 'DELETE_PERSONAL_NOTE_SUCCESS'\r\nexport const DELETE_PERSONAL_NOTE_FAILED = 'DELETE_PERSONAL_NOTE_FAILED'\r\nexport const THERE_ARE_NO_NOTES = 'THERE_ARE_NO_NOTES'\r\nexport const UPDATE_NOTES = 'UPDATE_NOTES'\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport const actions = {\r\n getPersonalNote,\r\n createPersonalNote,\r\n updatePersonalNote,\r\n deletePersonalNote,\r\n}\r\n\r\nexport function updateNote (location, fieldValue) {\r\n return {\r\n type: UPDATE_NOTES,\r\n location,\r\n payload: {\r\n value: fieldValue,\r\n }\r\n }\r\n}\r\n\r\nexport function getPersonalNote (usage, itemId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_PERSONAL_NOTE_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/personalnotes?usage=${usage}&itemid=${itemId}`, options).then((response) => {\r\n if (response.status === 404) {\r\n dispatch({ type: THERE_ARE_NO_NOTES })\r\n } else if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_PERSONAL_NOTE_SUCCESS,\r\n payload: {\r\n json,\r\n itemId,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_PERSONAL_NOTE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function createPersonalNote (personal) {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_PERSONAL_NOTE_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(personal)\r\n }\r\n fetch(`${globals.apiUrl}/api/personalnotes`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: CREATE_PERSONAL_NOTE_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: CREATE_PERSONAL_NOTE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function updatePersonalNote (personal) {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_PERSONAL_NOTE_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(personal)\r\n }\r\n fetch(`${globals.apiUrl}/api/personalnotes`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: UPDATE_PERSONAL_NOTE_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: UPDATE_PERSONAL_NOTE_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function deletePersonalNote (usage, itemId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_PERSONAL_NOTE_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/personalnotes?usage=${usage}&itemid=${itemId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: DELETE_PERSONAL_NOTE_SUCCESS,\r\n payload: {\r\n json,\r\n itemId,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: DELETE_PERSONAL_NOTE_FAILED })\r\n })\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_NOTES] : (state, action) => {\r\n const { value } = action.payload\r\n const { field } = action.location\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n Bill: {\r\n ...state.formDataValue.Bill,\r\n [field]: {\r\n ...state.formDataValue.Bill[field],\r\n Note: value,\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [GET_PERSONAL_NOTE_SUCCESS] : (state, action) => {\r\n const { json, itemId } = action.payload\r\n const date = json.NoteDate.match(/[0-9]{4}-[0-9]{2}-[0-9]{2}/g)[0]\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n noteCreated: undefined,\r\n noteFetched: json,\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n Bill: {\r\n ...state.formDataValue.Bill,\r\n [itemId]: {\r\n Note: json.Note,\r\n NoteDate: moment(date).format('MM/DD/YYYY')\r\n },\r\n }\r\n }\r\n }\r\n },\r\n [CREATE_PERSONAL_NOTE_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n noteCreated: undefined,\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n },\r\n }\r\n },\r\n [CREATE_PERSONAL_NOTE_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n noteCreated: json,\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n },\r\n }\r\n },\r\n [DELETE_PERSONAL_NOTE_SUCCESS] : (state, action) => {\r\n const { json, itemId } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n noteDeleted: json,\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n Bill: {\r\n ...state.formDataValue.Bill,\r\n [itemId]: {\r\n ItemId: undefined,\r\n Note: undefined,\r\n NoteDate: undefined,\r\n },\r\n }\r\n }\r\n }\r\n },\r\n [UPDATE_PERSONAL_NOTE_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n noteCreated: json,\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n },\r\n }\r\n },\r\n}\r\n\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n Bill: {},\r\n },\r\n}\r\nexport default function personalNotesReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/personalNotes.js","import { globals, page as pageIndex } from '../../globals'\r\nimport {\r\n matchParameters,\r\n filterRegions,\r\n returnDateFormat,\r\n sortFieldList,\r\n mapGroupNotesOptionsValues,\r\n returnTextValuesForClearedFilters,\r\n mapGroupNotesFieldList } from './helpers'\r\nimport {\r\n START_DATA_FETCH,\r\n DATA_FETCHED,\r\n FETCH_FAILED,\r\n SAVE_GROUP_NOTES_OPTIONS,\r\n RETURN_DEFAULT_REPORT,\r\n OPEN_SAVED_REPORT,\r\n getFormDataHandlers,\r\n actionGroupNoteHandler } from './getFormData'\r\nimport { UPDATE_DATA, actionHandler } from './updateData'\r\nimport { CLEAR_FILTERS, NEW_REPORT_SAVED } from './reportLine'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const CREATE_REGULATION_START = 'CREATE_REGULATION_START'\r\nexport const CREATE_REGULATION_SUCCESS = 'CREATE_REGULATION_SUCCESS'\r\nexport const CREATE_REGULATION_FAIL = 'CREATE_REGULATION_FAIL'\r\nexport const CLEAR_REGULATION = 'CLEAR_REGULATION'\r\nexport const GET_REGULATION_START = 'GET_REGULATION_START'\r\nexport const GET_REGULATION_SUCCESS = 'GET_REGULATION_SUCCESS'\r\nexport const GET_REGULATION_FAIL = 'GET_REGULATION_FAIL'\r\nexport const UPDATE_REGULATION_START = 'UPDATE_REGULATION_START'\r\nexport const UPDATE_REGULATION_SUCCESS = 'UPDATE_REGULATION_SUCCESS'\r\nexport const UPDATE_REGULATION_FAIL = 'UPDATE_REGULATION_FAIL'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport const returnDefaultRegulation = () => {\r\n return (dispatch) => {\r\n dispatch({ type: CLEAR_REGULATION })\r\n }\r\n}\r\n\r\nexport const setNewRegulation = (regulation) => {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_REGULATION_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(regulation),\r\n }\r\n fetch(`${globals.apiUrl}/api/regulation`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: CREATE_REGULATION_SUCCESS,\r\n payload: { json },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: CREATE_REGULATION_FAIL })\r\n })\r\n }\r\n}\r\n\r\nexport const getRegulation = (regulationId) => {\r\n return (dispatch) => {\r\n dispatch({ type: GET_REGULATION_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/regulation/${regulationId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: GET_REGULATION_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_REGULATION_FAIL })\r\n })\r\n }\r\n}\r\n\r\nexport const updateRegulation = (regulationId, regulation) => {\r\n return (dispatch) => {\r\n dispatch({ type: UPDATE_REGULATION_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(regulation),\r\n }\r\n fetch(`${globals.apiUrl}/api/regulation/${regulationId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: UPDATE_REGULATION_SUCCESS,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: UPDATE_REGULATION_FAIL })\r\n })\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [START_DATA_FETCH] : getFormDataHandlers['START_DATA_FETCH'],\r\n [FETCH_FAILED] : getFormDataHandlers['FETCH_FAILED'],\r\n [DATA_FETCHED] : (state, action) => {\r\n const { page, field } = action.location\r\n const { json } = action.payload\r\n const mappedApiData = mapGroupNotesFieldList(json.FieldList)\r\n if (page !== pageIndex.regs) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n [field]: {\r\n fieldList: sortFieldList(json.FieldList),\r\n fieldOptions: mapGroupNotesOptionsValues(json.FieldOptions),\r\n regionList: filterRegions(json.RegionList),\r\n subjectList: json.SubjectList,\r\n favoritesList: json.FavoritesList,\r\n archiveStartYear: json.ArchiveStartYear,\r\n clientId: json.ClientId,\r\n userId: json.UserId,\r\n regulationTypes: json.RegulationTypes,\r\n defaultReport: json.DefaultReport\r\n }\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...state.formDataValue[page],\r\n [field]: {\r\n ...state.formDataValue[page][field],\r\n radio: {\r\n ...state.formDataValue[page][field].radio,\r\n ...mappedApiData.radio\r\n },\r\n dateTime: {\r\n ...state.formDataValue[page][field].dateTime,\r\n ...mappedApiData.dateTime\r\n },\r\n textValues: {\r\n ...state.formDataValue[page][field].textValues,\r\n ...mappedApiData.textValues\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [SAVE_GROUP_NOTES_OPTIONS] : (state, action) => action.location.page !== pageIndex.regs\r\n ? state : actionGroupNoteHandler(state, action),\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.regs ? state : actionHandler(state, action),\r\n [CREATE_REGULATION_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n }\r\n },\r\n [CREATE_REGULATION_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n regulationId: json,\r\n }\r\n },\r\n [CREATE_REGULATION_FAIL] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n }\r\n },\r\n [CLEAR_FILTERS] : (state, action) => {\r\n const { page } = action\r\n if (page !== pageIndex.regs) {\r\n return state\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...clearState.formDataValue[page],\r\n groupNotes: {\r\n ...clearState.formDataValue[page].groupNotes,\r\n textValues: returnTextValuesForClearedFilters\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [RETURN_DEFAULT_REPORT] : (state, action) => {\r\n const { page } = action\r\n if (page !== pageIndex.regs) {\r\n return {\r\n ...state\r\n }\r\n }\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...initialState.formDataValue[page],\r\n groupNotesOptions: {\r\n selected: [\r\n ...state.formDataValue[page].groupNotesOptions.selected,\r\n ],\r\n radio: {\r\n sw0h: false,\r\n }\r\n }\r\n }\r\n },\r\n renderData: {\r\n ...state.renderData,\r\n }\r\n }\r\n },\r\n [OPEN_SAVED_REPORT] : (state, action) => {\r\n const { page } = action\r\n const { json } = action.payload\r\n if (page !== pageIndex.regs || json === undefined) {\r\n return {\r\n ...state,\r\n }\r\n } else {\r\n const criteria = matchParameters(json.ReportCriteria, state.renderData[page].groupNotes.fieldList)\r\n let favorites = criteria.filters.personalreport ? criteria.filters.personalreport : []\r\n favorites = criteria.filters.notinpersonalreport ? [...favorites, 'notinpersonalreport'] : favorites\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [page]: {\r\n ...initialState.formDataValue[page],\r\n defaultSearch: {\r\n ...initialState.formDataValue[page].defaultSearch,\r\n title: json.Name,\r\n textValues: {\r\n ...initialState.formDataValue[page].defaultSearch.textValues,\r\n reporttitle: criteria.filters.reporttitle || '',\r\n citation: criteria.filters.citation || ''\r\n },\r\n radio: {\r\n reporttype: criteria.filters.reporttype[0] || 'alltracked',\r\n },\r\n dateTime: {\r\n recorddatestart: criteria.filters.recorddatestart\r\n ? returnDateFormat(criteria.filters.recorddatestart[0])\r\n : new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: criteria.filters.recorddateend\r\n ? returnDateFormat(criteria.filters.recorddateend[0]) : new Date(),\r\n commentsdatestart: criteria.filters.commentsdatestart\r\n ? returnDateFormat(criteria.filters.commentsdatestart[0]) : ' ',\r\n commentsdateend: criteria.filters.commentsdateend\r\n ? returnDateFormat(criteria.filters.commentsdateend[0]) : ' ',\r\n }\r\n },\r\n viewingOptions: {\r\n selected: criteria.viewingOptions.selected || [],\r\n radio: {\r\n histlist: criteria.viewingOptions.historyRadioButton\r\n ? criteria.viewingOptions.historyRadioButton\r\n : 'History By line',\r\n howmany: criteria.viewingOptions.howmany ? criteria.viewingOptions.howmany : '25',\r\n },\r\n },\r\n groupNotes: {\r\n selected: criteria.groupNotesFilters ? criteria.groupNotesFilters.selected : [],\r\n radio: {\r\n noteslogic: criteria.filters.noteslogic === 'and' || criteria.filters.noteslogic === undefined\r\n ? 'ALL selected Group Notes criteria must be true.'\r\n : 'ANY selected Group Notes criteria must be true.'\r\n },\r\n dateTime: {\r\n noteslastupdatestart: criteria.filters.noteslastupdatestart\r\n ? returnDateFormat(criteria.filters.noteslastupdatestart[0]) : ' ',\r\n noteslastupdateend: criteria.filters.noteslastupdateend\r\n ? returnDateFormat(criteria.filters.noteslastupdateend[0]) : ' ',\r\n },\r\n textValues: criteria.groupNotesFilters.textValues\r\n },\r\n groupNotesOptions: {\r\n selected: criteria.groupNotesOptions ? criteria.groupNotesOptions : [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n title: criteria.filters.title ? criteria.filters.title : '',\r\n summary: criteria.filters.summary ? criteria.filters.summary : '',\r\n history: criteria.filters.history ? criteria.filters.history : '',\r\n personalnotes: criteria.filters.personalnotes ? criteria.filters.personalnotes : '',\r\n },\r\n dateTime: {\r\n hearingdatestart: criteria.filters.hearingdatestart\r\n ? returnDateFormat(criteria.filters.hearingdatestart[0]) : ' ',\r\n hearingdateend: criteria.filters.hearingdateend\r\n ? returnDateFormat(criteria.filters.hearingdateend[0]) : ' ',\r\n actiondatestart: criteria.filters.actiondatestart\r\n ? returnDateFormat(criteria.filters.actiondatestart[0]) : ' ',\r\n actiondateend: criteria.filters.actiondateend\r\n ? returnDateFormat(criteria.filters.actiondateend[0]) : ' ',\r\n personalnotesstart: criteria.filters.personalnotesstart\r\n ? returnDateFormat(criteria.filters.personalnotesstart[0]) : ' ',\r\n personalnotesend: criteria.filters.personalnotesend\r\n ? returnDateFormat(criteria.filters.personalnotesend[0]) : ' ',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: criteria.advancedEditingTools.selected || [],\r\n radio: {\r\n sortheader: !!criteria.advancedEditingTools.sortheader,\r\n sort1: criteria.advancedEditingTools.sort1[0],\r\n sort2: criteria.advancedEditingTools.sort2[0],\r\n sort3: criteria.advancedEditingTools.sort3[0],\r\n sort4: criteria.advancedEditingTools.sort4[0],\r\n }\r\n },\r\n reportFormat: {\r\n selected: criteria.mapOptions.selectedAdvancedOptions\r\n ? [criteria.mapOptions.selectedAdvancedOptions] : [],\r\n radio: {\r\n mapit: !!criteria.mapOptions.mapit,\r\n outformat: criteria.mapOptions.outformat,\r\n }\r\n },\r\n regType: {\r\n selected: criteria.filters.regtype ? criteria.filters.regtype : [],\r\n },\r\n recordCreator: {\r\n selected: criteria.filters.regcreator ? criteria.filters.regcreator : [],\r\n },\r\n archivedYear: {\r\n selected: criteria.filters.archive ? criteria.filters.archive : ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: criteria.filters.archivedsubjects ? criteria.filters.archivedsubjects : [],\r\n },\r\n subjects: {\r\n selected: criteria.filters.subjects ? criteria.filters.subjects : []\r\n },\r\n favorites: {\r\n selected: favorites,\r\n },\r\n states: {\r\n selected: criteria.filters.states ? criteria.filters.states : []\r\n },\r\n progress: {\r\n selected: criteria.filters.progress ? criteria.filters.progress : [],\r\n },\r\n maps: {\r\n selected: criteria.mapOptions.selected !== undefined ? criteria.mapOptions.selected : [],\r\n textValues: {\r\n lowcountcolor: criteria.mapOptions.lowcountcolor ||\r\n state.formDataValue[page].maps.textValues.lowcountcolor,\r\n medcountcolor: criteria.mapOptions.medcountcolor ||\r\n state.formDataValue[page].maps.textValues.medcountcolor,\r\n highcountcolor: criteria.mapOptions.highcountcolor ||\r\n state.formDataValue[page].maps.textValues.highcountcolor,\r\n foundbillscolor: criteria.mapOptions.foundbillscolor ||\r\n state.formDataValue[page].maps.textValues.foundbillscolor,\r\n },\r\n },\r\n }\r\n },\r\n renderData: {\r\n ...state.renderData,\r\n [page]: {\r\n ...state.renderData[page],\r\n groupNotes: {\r\n ...state.renderData[page].groupNotes,\r\n selectedReport: json,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [NEW_REPORT_SAVED] : (state, action) => {\r\n const { json, name } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n R: {\r\n ...state.renderData.R,\r\n saveReportId: json,\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n R: {\r\n ...state.formDataValue.R,\r\n defaultSearch: {\r\n ...state.formDataValue.R.defaultSearch,\r\n title: name,\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [CLEAR_REGULATION] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n R: {\r\n ...state.formDataValue.R,\r\n ARgroupNotes: {},\r\n ARgroupNotesOptions:{\r\n selected: [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n ARregulationTitle: {\r\n textValues: {\r\n reporttitle: '',\r\n }\r\n },\r\n ARstates: {\r\n selected: [],\r\n radio: {\r\n r0r: '',\r\n },\r\n },\r\n ARregulationType: {\r\n radio: {\r\n sr1t: '',\r\n }\r\n },\r\n ARprogress: {\r\n radio: {\r\n sr2p: '',\r\n },\r\n },\r\n ARcitationNumber: {\r\n textValues: {\r\n ti1r: '',\r\n }\r\n },\r\n ARofficialContact: {\r\n textValues: {\r\n ti2r: '',\r\n }\r\n },\r\n ARsummary: {\r\n textValues: {\r\n ti3r: '',\r\n }\r\n },\r\n ARsubject: {\r\n selected: [],\r\n },\r\n ARhistory: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {},\r\n },\r\n ARupload: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {\r\n iff0: '',\r\n ifs0: '',\r\n source0: '',\r\n }\r\n },\r\n ARlink: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {},\r\n },\r\n ARrows: {\r\n ARhistory: [\r\n {\r\n key: 0,\r\n type: 'ARhistory',\r\n },\r\n ],\r\n ARupload: [\r\n {\r\n key: 0,\r\n type: 'ARupload',\r\n },\r\n ],\r\n ARlink: [\r\n {\r\n key: 0,\r\n type: 'ARlink',\r\n },\r\n ],\r\n },\r\n }\r\n }\r\n }\r\n },\r\n [GET_REGULATION_SUCCESS] : (state, action) => {\r\n const { json } = action.payload\r\n const regObject = json.SelectedRegulation\r\n const localStore = JSON.parse(localStorage.getItem('formData'))\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n R: {\r\n ...state.renderData.R,\r\n selectedRegulation: regObject,\r\n }\r\n },\r\n formDataValue: {\r\n ...state.formDataValue,\r\n R: {\r\n ...state.formDataValue.R,\r\n ARregulationTitle: {\r\n textValues: {\r\n ti0r: regObject.Title ? regObject.Title : '',\r\n }\r\n },\r\n ARstates: {\r\n selected: [],\r\n radio: {\r\n r0r: regObject.RegionCode !== null\r\n ? localStore.regionList.filter(item => item.RegionCode === regObject.RegionCode)[0].Name\r\n : '',\r\n },\r\n },\r\n ARregulationType: {\r\n radio: {\r\n sr1t: regObject.RegulationTypeId !== null ? `${regObject.RegulationTypeId}` : '',\r\n }\r\n },\r\n ARprogress: {\r\n radio: {\r\n sr2p: '',\r\n },\r\n },\r\n ARcitationNumber: {\r\n textValues: {\r\n ti1r: regObject.Citation !== null ? regObject.Citation : '',\r\n }\r\n },\r\n ARofficialContact: {\r\n textValues: {\r\n ti2r: regObject.OfficialContact !== null ? regObject.OfficialContact : '',\r\n }\r\n },\r\n ARsummary: {\r\n textValues: {\r\n ti3r: regObject.Summary !== null ? regObject.Summary : '',\r\n }\r\n },\r\n ARsubject: {\r\n selected: [],\r\n },\r\n ARhistory: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {},\r\n },\r\n ARupload: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {\r\n iff0: '',\r\n ifs0: '',\r\n source0: '',\r\n }\r\n },\r\n ARlink: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {},\r\n },\r\n ARrows: {\r\n ARhistory: [\r\n {\r\n key: 0,\r\n type: 'ARhistory',\r\n },\r\n ],\r\n ARupload: [\r\n {\r\n key: 0,\r\n type: 'ARupload',\r\n },\r\n ],\r\n ARlink: [\r\n {\r\n key: 0,\r\n type: 'ARlink',\r\n },\r\n ],\r\n },\r\n }\r\n }\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst clearState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {\r\n R: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n R: {\r\n ARgroupNotes: {},\r\n ARgroupNotesOptions:{\r\n selected: [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n ARregulationTitle: {\r\n textValues: {\r\n ti0r: '',\r\n }\r\n },\r\n ARstates: {\r\n selected: [],\r\n radio: {\r\n r0r: '',\r\n },\r\n },\r\n ARregulationType: {\r\n radio: {\r\n sr1t: '',\r\n }\r\n },\r\n ARprogress: {\r\n radio: {\r\n sr2p: '',\r\n },\r\n },\r\n ARcitationNumber: {\r\n textValues: {\r\n ti1r: '',\r\n }\r\n },\r\n ARofficialContact: {\r\n textValues: {\r\n ti2r: '',\r\n }\r\n },\r\n ARsummary: {\r\n textValues: {\r\n ti3r: '',\r\n }\r\n },\r\n ARsubject: {\r\n selected: [],\r\n },\r\n ARhistory: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {},\r\n },\r\n ARupload: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {\r\n iff0: '',\r\n ifs0: '',\r\n source0: '',\r\n }\r\n },\r\n ARlink: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {},\r\n },\r\n ARrows: {\r\n ARhistory: [\r\n {\r\n key: 0,\r\n type: 'ARhistory',\r\n },\r\n ],\r\n ARupload: [\r\n {\r\n key: 0,\r\n type: 'ARupload',\r\n },\r\n ],\r\n ARlink: [\r\n {\r\n key: 0,\r\n type: 'ARlink',\r\n },\r\n ],\r\n },\r\n viewingOptions: {\r\n selected: [],\r\n radio: {\r\n histlist: '',\r\n howmany: '25',\r\n },\r\n },\r\n defaultSearch : {\r\n title: 'Default Search',\r\n textValues: {\r\n reporttitle: '',\r\n citation: '',\r\n },\r\n radio: {\r\n reporttype: 'alltracked',\r\n },\r\n dateTime: {\r\n recorddatefrom: new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: new Date(),\r\n commentsdatestart: ' ',\r\n commentsdateend: ' ',\r\n }\r\n },\r\n groupNotes: {\r\n selected: [],\r\n radio: {\r\n noteslogic: 'ALL selected Group Notes criteria must be true.',\r\n },\r\n dateTime: {\r\n noteslastupdatestart: ' ',\r\n noteslastupdateend: ' ',\r\n },\r\n textValues: {},\r\n },\r\n groupNotesOptions: {\r\n selected: [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n title: '',\r\n summary: '',\r\n history: '',\r\n personalnotes: '',\r\n },\r\n dateTime: {\r\n hearingdatestart: ' ',\r\n hearingdateend: ' ',\r\n actiondatestart: ' ',\r\n actiondateend: ' ',\r\n personalnotesstart: ' ',\r\n personalnotesend: ' ',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: [],\r\n radio: {\r\n sortheader: false,\r\n sort1: 'state',\r\n sort2: 'title',\r\n sort3: 'citation',\r\n sort4: 'progressnum',\r\n }\r\n },\r\n reportFormat: {\r\n selected: [],\r\n radio: {\r\n mapit: false,\r\n outformat: 'html',\r\n }\r\n },\r\n regType: {\r\n selected: [],\r\n },\r\n recordCreator: {\r\n selected: [],\r\n },\r\n archivedYear: {\r\n selected: ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: [],\r\n },\r\n subjects: {\r\n selected: [],\r\n },\r\n favorites: {\r\n selected: [],\r\n },\r\n states: {\r\n selected: [],\r\n },\r\n progress: {\r\n selected: [],\r\n },\r\n priority: {\r\n selected: [],\r\n },\r\n position: {\r\n selected: [],\r\n },\r\n revenue: {\r\n selected: [],\r\n },\r\n compliance: {\r\n selected: [],\r\n },\r\n department: {\r\n selected: [],\r\n },\r\n maps: {\r\n selected: [],\r\n textValues: {\r\n lowcountcolor: '#9cc1e6',\r\n medcountcolor: '#4175b2',\r\n highcountcolor: '#243e66',\r\n foundbillscolor: '#4175b2',\r\n },\r\n },\r\n },\r\n },\r\n}\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {\r\n R: {\r\n groupNotes: {},\r\n },\r\n },\r\n formDataValue: {\r\n R: {\r\n ARgroupNotes: {},\r\n ARgroupNotesOptions:{\r\n selected: [],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n ARregulationTitle: {\r\n textValues: {\r\n ti0r: '',\r\n }\r\n },\r\n ARstates: {\r\n selected: [],\r\n radio: {\r\n r0r: '',\r\n },\r\n },\r\n ARregulationType: {\r\n radio: {\r\n sr1t: '',\r\n }\r\n },\r\n ARprogress: {\r\n radio: {\r\n sr2p: '',\r\n },\r\n },\r\n ARcitationNumber: {\r\n textValues: {\r\n ti1r: '',\r\n }\r\n },\r\n ARofficialContact: {\r\n textValues: {\r\n ti2r: '',\r\n }\r\n },\r\n ARsummary: {\r\n textValues: {\r\n ti3r: '',\r\n }\r\n },\r\n ARsubject: {\r\n selected: [],\r\n },\r\n ARhistory: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {},\r\n },\r\n ARupload: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {\r\n iff0: '',\r\n ifs0: '',\r\n source0: '',\r\n }\r\n },\r\n ARlink: {\r\n radio: {},\r\n dateTime: {},\r\n textValues: {},\r\n },\r\n ARrows: {\r\n ARhistory: [\r\n {\r\n key: 0,\r\n type: 'ARhistory',\r\n },\r\n ],\r\n ARupload: [\r\n {\r\n key: 0,\r\n type: 'ARupload',\r\n },\r\n ],\r\n ARlink: [\r\n {\r\n key: 0,\r\n type: 'ARlink',\r\n },\r\n ],\r\n },\r\n viewingOptions: {\r\n selected: [\r\n 'viewsearchcriteria', 'viewcreator', 'viewcitation',\r\n 'viewemailalerts', 'viewemailit', 'viewcontact',\r\n 'viewdoctype', 'viewprogress', 'viewotherlinks',\r\n 'viewkeydates', 'viewsubject', 'viewsummary',\r\n 'viewhistory', 'viewremarks', 'viewfutureaction',\r\n 'viewpersonalnotes', 'viewpersreports'\r\n ],\r\n radio: {\r\n histlist: 'History by Line',\r\n howmany: '25',\r\n },\r\n },\r\n defaultSearch : {\r\n title: 'Default Search',\r\n textValues: {\r\n reporttitle: 'Regulatory Report',\r\n citation: '',\r\n },\r\n radio: {\r\n reporttype: 'alltracked',\r\n },\r\n dateTime: {\r\n recorddatestart: new Date(new Date().getFullYear(), 0, 1),\r\n recorddateend: new Date(),\r\n commentsdatestart: ' ',\r\n commentsdateend: ' ',\r\n }\r\n },\r\n groupNotes: {\r\n selected: [],\r\n radio: {\r\n noteslogic: 'ALL selected Group Notes criteria must be true.',\r\n },\r\n dateTime: {\r\n noteslastupdatestart: ' ',\r\n noteslastupdateend: ' ',\r\n },\r\n },\r\n groupNotesOptions: {\r\n selected: ['editnotes', 'viewnoteslastupdated'],\r\n radio: {\r\n sw0h: false,\r\n }\r\n },\r\n additionalFilters: {\r\n textValues: {\r\n title: '',\r\n summary: '',\r\n history: '',\r\n personalnotes: '',\r\n },\r\n dateTime: {\r\n hearingdatestart: ' ',\r\n hearingdateend: ' ',\r\n actiondatestart: ' ',\r\n actiondateend: ' ',\r\n personalnotesstart: ' ',\r\n personalnotesend: ' ',\r\n }\r\n },\r\n advancedEditingTools: {\r\n selected: [],\r\n radio: {\r\n sortheader: false,\r\n sort1: 'state',\r\n sort2: 'title',\r\n sort3: 'citation',\r\n sort4: 'progressnum',\r\n }\r\n },\r\n reportFormat: {\r\n selected: [],\r\n radio: {\r\n mapit: false,\r\n outformat: 'html',\r\n }\r\n },\r\n regType: {\r\n selected: [],\r\n },\r\n recordCreator: {\r\n selected: [],\r\n },\r\n archivedYear: {\r\n selected: ['current'],\r\n },\r\n archivedSubjects: {\r\n selected: [],\r\n },\r\n subjects: {\r\n selected: [],\r\n },\r\n favorites: {\r\n selected: [],\r\n },\r\n states: {\r\n selected: [],\r\n },\r\n progress: {\r\n selected: [],\r\n },\r\n priority: {\r\n selected: [],\r\n },\r\n position: {\r\n selected: [],\r\n },\r\n revenue: {\r\n selected: [],\r\n },\r\n compliance: {\r\n selected: [],\r\n },\r\n department: {\r\n selected: [],\r\n },\r\n maps: {\r\n selected: [],\r\n textValues: {\r\n lowcountcolor: '#9cc1e6',\r\n medcountcolor: '#4175b2',\r\n highcountcolor: '#243e66',\r\n foundbillscolor: '#4175b2',\r\n },\r\n },\r\n },\r\n Bill: {\r\n favorites: {\r\n selected: [],\r\n },\r\n },\r\n },\r\n}\r\nexport default function regsDataReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/regsFormData.js","import { globals } from '../../globals'\r\n\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const UPDATE_DATA_FOR_SHARING = 'UPDATE_DATA_FOR_SHARING'\r\n\r\nexport const GET_USERS_LIST_START = 'GET_USERS_LIST_START'\r\nexport const USERS_LIST_FETCHED = 'USERS_LIST_FETCHED'\r\nexport const GET_USERS_LIST_FAILED = 'GET_USERS_LIST_FAILED'\r\n\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nexport const actions = {\r\n updateSharingData,\r\n getUsersListForSharing\r\n}\r\n\r\nexport function updateSharingData (location, valueType, valueID, fieldValue) {\r\n return {\r\n type: UPDATE_DATA_FOR_SHARING,\r\n location,\r\n valueType,\r\n payload: {\r\n value: valueID,\r\n fieldValue: fieldValue,\r\n }\r\n }\r\n}\r\n\r\nexport function getUsersListForSharing (clientId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_USERS_LIST_START })\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n }\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers,\r\n }\r\n fetch(`${globals.apiUrl}/api/simpleuserlist?clientId=${clientId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n } else {\r\n dispatch({\r\n type: GET_USERS_LIST_FAILED,\r\n payload: {\r\n json: [],\r\n },\r\n })\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: USERS_LIST_FETCHED,\r\n payload: {\r\n json,\r\n },\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_USERS_LIST_FAILED })\r\n })\r\n }\r\n}\r\n\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA_FOR_SHARING] : (state, action) => {\r\n if (action.location.page !== undefined) {\r\n return state\r\n }\r\n switch (action.valueType) {\r\n case 'ch': {\r\n // mark single checkbox as checked\r\n const { field } = action.location\r\n const { value } = action.payload\r\n const resultedSelectedArray = Array.isArray(value)\r\n ? [...state.formDataValue[field].selected, ...value]\r\n : [...state.formDataValue[field].selected, value]\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [field]: {\r\n ...state.formDataValue[field],\r\n selected: resultedSelectedArray,\r\n }\r\n }\r\n }\r\n }\r\n case 'ch_uncheck': {\r\n // uncheck single checkbox\r\n const { field } = action.location\r\n const { value } = action.payload\r\n let resultedSelectedArray = state.formDataValue[field].selected\r\n if (Array.isArray(value)) {\r\n value.forEach(item => {\r\n resultedSelectedArray = resultedSelectedArray.filter(function (element) {\r\n return element !== item\r\n })\r\n })\r\n } else {\r\n const idIndex = state.formDataValue[field].selected.indexOf(value)\r\n resultedSelectedArray = [\r\n ...resultedSelectedArray.slice(0, idIndex),\r\n ...resultedSelectedArray.slice(idIndex + 1)\r\n ]\r\n }\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [field]: {\r\n ...state.formDataValue[field],\r\n selected: resultedSelectedArray,\r\n }\r\n }\r\n }\r\n }\r\n case 'radio':\r\n case 'switch':\r\n case 'select': {\r\n // radio button template\r\n const { field } = action.location\r\n const { value, fieldValue } = action.payload\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [action.location.field]: {\r\n ...state.formDataValue[field],\r\n radio: {\r\n ...state.formDataValue[field].radio,\r\n [value]: fieldValue,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n case 'textinput' : {\r\n // set text value\r\n const { field } = action.location\r\n const { value, fieldValue } = action.payload\r\n return {\r\n ...state,\r\n formDataValue: {\r\n ...state.formDataValue,\r\n [field]: {\r\n ...state.formDataValue[field],\r\n textValues: {\r\n ...state.formDataValue[field].textValues,\r\n [value]: fieldValue,\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n [GET_USERS_LIST_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: true\r\n }\r\n },\r\n [USERS_LIST_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n shareUsersList: json\r\n }\r\n }\r\n },\r\n [GET_USERS_LIST_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false\r\n }\r\n },\r\n}\r\n\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n clientsDashboard: {\r\n selected: [],\r\n radio: {\r\n customList: 'List 1',\r\n shareWith: 'Share with a person',\r\n personShare: 'All'\r\n },\r\n textValues: {\r\n copyLink: '',\r\n addNew: ''\r\n }\r\n }\r\n },\r\n}\r\n\r\nexport default function shareReportReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/shareReport.js","import { page as pageIndex } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.dashboard\r\n ? state\r\n : action.location.section !== 'subjectChanges' ? null : actionHandler(state, action)\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n D: {\r\n archivedYear: {\r\n radio: {\r\n archivedYear: ''\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport default function subjectChangesReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/subjectChanges.js","import { globals } from '../../globals'\r\n// ------------------------------------\r\n// Constants\r\n// ------------------------------------\r\nexport const CREATE_SUBJECT_START = 'CREATE_SUBJECT_START'\r\nexport const NEW_SUBJECT_CREATED = 'NEW_SUBJECT_CREATED'\r\nexport const NEW_SUBJECT_FAILED = 'NEW_SUBJECT_FAILED'\r\nexport const NONUNIQUE_SUBJECT_NAME = 'NONUNIQUE_SUBJECT_NAME'\r\nexport const DELETE_SUBJECT_START = 'DELETE_SUBJECT_START'\r\nexport const SUBJECT_DELETED = 'SUBJECT_DELETED'\r\nexport const DELETE_SUBJECT_FAILED = 'DELETE_SUBJECT_FAILED'\r\nexport const EDIT_SUBJECT_START = 'EDIT_SUBJECT_START'\r\nexport const SUBJECT_EDITED = 'SUBJECT_EDITED'\r\nexport const EDIT_SUBJECT_FAILED = 'EDIT_SUBJECT_FAILED'\r\nexport const GET_SUBJECT_START = 'GET_SUBJECT_START'\r\nexport const SUBJECT_FETCHED = 'SUBJECT_FETCHED'\r\nexport const GET_SUBJECT_FAILED = 'GET_SUBJECT_FAILED'\r\nexport const DATA_FETCHED = 'DATA_FETCHED'\r\n// ------------------------------------\r\n// Actions\r\n// ------------------------------------\r\nconst headers = {\r\n 'Content-Type': 'application/json'\r\n}\r\n\r\nexport function createNewSubject (subject) {\r\n return (dispatch) => {\r\n dispatch({ type: CREATE_SUBJECT_START })\r\n const options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(subject)\r\n }\r\n fetch(`${globals.apiUrl}/api/subject`, options).then((response) => {\r\n if (response.status === 400) {\r\n dispatch({ type: NONUNIQUE_SUBJECT_NAME })\r\n } else if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: NEW_SUBJECT_CREATED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: NEW_SUBJECT_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function deleteSubject (subjectId) {\r\n return (dispatch) => {\r\n dispatch({ type: DELETE_SUBJECT_START })\r\n const options = {\r\n method: 'DELETE',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/api/subject/${subjectId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n dispatch({ type: SUBJECT_DELETED })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: DELETE_SUBJECT_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function getSubject (subjectId) {\r\n return (dispatch) => {\r\n dispatch({ type: GET_SUBJECT_START })\r\n const options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n headers\r\n }\r\n fetch(`${globals.apiUrl}/api/subject/${subjectId}`, options).then((response) => {\r\n if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SUBJECT_FETCHED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: GET_SUBJECT_FAILED })\r\n })\r\n }\r\n}\r\n\r\nexport function editSubject (subjectId, subject) {\r\n return (dispatch) => {\r\n dispatch({ type: EDIT_SUBJECT_START })\r\n const options = {\r\n method: 'PUT',\r\n credentials: 'include',\r\n headers,\r\n body: JSON.stringify(subject)\r\n }\r\n fetch(`${globals.apiUrl}/api/subject/${subjectId}`, options).then((response) => {\r\n if (response.status === 400) {\r\n dispatch({ type: NONUNIQUE_SUBJECT_NAME })\r\n } else if (response.status === 200) {\r\n return response.json()\r\n }\r\n }).then((json) => {\r\n if (json) {\r\n dispatch({\r\n type: SUBJECT_EDITED,\r\n payload: {\r\n json\r\n }\r\n })\r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n dispatch({ type: EDIT_SUBJECT_FAILED })\r\n })\r\n }\r\n}\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [DATA_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n groupNotes: {\r\n clientId: json.ClientId,\r\n userId: json.UserId\r\n }\r\n }\r\n }\r\n },\r\n [CREATE_SUBJECT_START] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n subjectsFetching: true,\r\n },\r\n }\r\n },\r\n [NEW_SUBJECT_CREATED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n subjectId: json,\r\n subjectsFetching: false,\r\n uniqueSubjectName: true\r\n }\r\n }\r\n },\r\n [NEW_SUBJECT_FAILED] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n subjectsFetching: false,\r\n uniqueSubjectName: false\r\n }\r\n }\r\n },\r\n [NONUNIQUE_SUBJECT_NAME] : (state) => {\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n subjectsFetching: false,\r\n uniqueSubjectName: false,\r\n },\r\n }\r\n },\r\n [SUBJECT_EDITED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n editedSubjectResult: json,\r\n },\r\n }\r\n },\r\n [SUBJECT_FETCHED] : (state, action) => {\r\n const { json } = action.payload\r\n return {\r\n ...state,\r\n isFetchingData: false,\r\n renderData: {\r\n ...state.renderData,\r\n fetchedSubject: json,\r\n editedSubjectResult: 0,\r\n },\r\n }\r\n }\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {}\r\n}\r\nexport default function subjectsReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/subjects.js","import { page as pageIndex } from '../../globals'\r\nimport {\r\n actionHandler,\r\n UPDATE_DATA\r\n} from './updateData'\r\n// ------------------------------------\r\n// Action Handlers\r\n// ------------------------------------\r\nconst ACTION_HANDLERS = {\r\n [UPDATE_DATA] : (state, action) => action.location.page !== pageIndex.dashboard\r\n ? state\r\n : action.location.section !== 'trackingStats' ? null : actionHandler(state, action)\r\n}\r\n// ------------------------------------\r\n// Reducer\r\n// ------------------------------------\r\nconst initialState = {\r\n isFetchingData: true,\r\n errorCode: '',\r\n renderData: {},\r\n formDataValue: {\r\n D: {\r\n archivedYear: {\r\n radio: {\r\n archivedYear: ''\r\n }\r\n }\r\n }\r\n }\r\n}\r\nexport default function trackingStatsReducer (state = initialState, action) {\r\n const handler = ACTION_HANDLERS[action.type]\r\n return handler ? handler(state, action) : state\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/reducers/trackingStats.js","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect, ReactReduxContext } from 'react-redux';\nimport { Router } from 'react-router';\nimport isEqualWith from 'lodash.isequalwith';\nimport { onLocationChanged as _onLocationChanged } from './actions';\nimport createSelectors from './selectors';\n\nvar createConnectedRouter = function createConnectedRouter(structure) {\n var _createSelectors = createSelectors(structure),\n getLocation = _createSelectors.getLocation;\n /*\n * ConnectedRouter listens to a history object passed from props.\n * When history is changed, it dispatches action to redux store.\n * Then, store will pass props to component to render.\n * This creates uni-directional flow from history->store->router->components.\n */\n\n\n var ConnectedRouter = /*#__PURE__*/function (_PureComponent) {\n _inherits(ConnectedRouter, _PureComponent);\n\n var _super = _createSuper(ConnectedRouter);\n\n function ConnectedRouter(props) {\n var _this;\n\n _classCallCheck(this, ConnectedRouter);\n\n _this = _super.call(this, props);\n var store = props.store,\n history = props.history,\n onLocationChanged = props.onLocationChanged,\n stateCompareFunction = props.stateCompareFunction;\n _this.inTimeTravelling = false; // Subscribe to store changes to check if we are in time travelling\n\n _this.unsubscribe = store.subscribe(function () {\n // Allow time travel debugging compatibility to be turned off\n // as the detection for this (below) is error prone in apps where the\n // store may be unmounted, a navigation occurs, and then the store is re-mounted\n // during the app's lifetime. Detection could be much improved if Redux DevTools\n // simply set a global variable like `REDUX_DEVTOOLS_IS_TIME_TRAVELLING=true`.\n var isTimeTravelDebuggingAllowed = !props.noTimeTravelDebugging; // Extract store's location\n\n var _getLocation = getLocation(store.getState()),\n pathnameInStore = _getLocation.pathname,\n searchInStore = _getLocation.search,\n hashInStore = _getLocation.hash,\n stateInStore = _getLocation.state; // Extract history's location\n\n\n var _history$location = history.location,\n pathnameInHistory = _history$location.pathname,\n searchInHistory = _history$location.search,\n hashInHistory = _history$location.hash,\n stateInHistory = _history$location.state; // If we do time travelling, the location in store is changed but location in history is not changed\n\n if (isTimeTravelDebuggingAllowed && props.history.action === 'PUSH' && (pathnameInHistory !== pathnameInStore || searchInHistory !== searchInStore || hashInHistory !== hashInStore || !isEqualWith(stateInStore, stateInHistory, stateCompareFunction))) {\n _this.inTimeTravelling = true; // Update history's location to match store's location\n\n history.push({\n pathname: pathnameInStore,\n search: searchInStore,\n hash: hashInStore,\n state: stateInStore\n });\n }\n });\n\n var handleLocationChange = function handleLocationChange(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n // Dispatch onLocationChanged except when we're in time travelling\n if (!_this.inTimeTravelling) {\n onLocationChanged(location, action, isFirstRendering);\n } else {\n _this.inTimeTravelling = false;\n }\n }; // Listen to history changes\n\n\n _this.unlisten = history.listen(handleLocationChange);\n\n if (!props.noInitialPop) {\n // Dispatch a location change action for the initial location.\n // This makes it backward-compatible with react-router-redux.\n // But, we add `isFirstRendering` to `true` to prevent double-rendering.\n handleLocationChange(history.location, history.action, true);\n }\n\n return _this;\n }\n\n _createClass(ConnectedRouter, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unlisten();\n this.unsubscribe();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n omitRouter = _this$props.omitRouter,\n history = _this$props.history,\n children = _this$props.children; // The `omitRouter` option is available for applications that must\n // have a Router instance higher in the component tree but still desire\n // to use connected-react-router for its Redux integration.\n\n if (omitRouter) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n }\n\n return /*#__PURE__*/React.createElement(Router, {\n history: history\n }, children);\n }\n }]);\n\n return ConnectedRouter;\n }(PureComponent);\n\n ConnectedRouter.propTypes = {\n store: PropTypes.shape({\n getState: PropTypes.func.isRequired,\n subscribe: PropTypes.func.isRequired\n }).isRequired,\n history: PropTypes.shape({\n action: PropTypes.string.isRequired,\n listen: PropTypes.func.isRequired,\n location: PropTypes.object.isRequired,\n push: PropTypes.func.isRequired\n }).isRequired,\n basename: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n onLocationChanged: PropTypes.func.isRequired,\n noInitialPop: PropTypes.bool,\n noTimeTravelDebugging: PropTypes.bool,\n stateCompareFunction: PropTypes.func,\n omitRouter: PropTypes.bool\n };\n\n var mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onLocationChanged: function onLocationChanged(location, action, isFirstRendering) {\n return dispatch(_onLocationChanged(location, action, isFirstRendering));\n }\n };\n };\n\n var ConnectedRouterWithContext = function ConnectedRouterWithContext(props) {\n var Context = props.context || ReactReduxContext;\n\n if (Context == null) {\n throw 'Please upgrade to react-redux v6';\n }\n\n return /*#__PURE__*/React.createElement(Context.Consumer, null, function (_ref) {\n var store = _ref.store;\n return /*#__PURE__*/React.createElement(ConnectedRouter, _extends({\n store: store\n }, props));\n });\n };\n\n ConnectedRouterWithContext.propTypes = {\n context: PropTypes.object\n };\n return connect(null, mapDispatchToProps)(ConnectedRouterWithContext);\n};\n\nexport default createConnectedRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/connected-react-router/esm/ConnectedRouter.js\n// module id = 585\n// module chunks = 19","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { CALL_HISTORY_METHOD } from './actions';\n/**\n * This middleware captures CALL_HISTORY_METHOD actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n\nvar routerMiddleware = function routerMiddleware(history) {\n return function (store) {\n return function (next) {\n return function (action) {\n // eslint-disable-line no-unused-vars\n if (action.type !== CALL_HISTORY_METHOD) {\n return next(action);\n }\n\n var _action$payload = action.payload,\n method = _action$payload.method,\n args = _action$payload.args;\n history[method].apply(history, _toConsumableArray(args));\n };\n };\n };\n};\n\nexport default routerMiddleware;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/connected-react-router/esm/middleware.js\n// module id = 586\n// module chunks = 19","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { LOCATION_CHANGE } from './actions';\n/**\n * Adds query to location.\n * Utilises the search prop of location to construct query.\n */\n\nvar injectQuery = function injectQuery(location) {\n if (location && location.query) {\n // Don't inject query if it already exists in history\n return location;\n }\n\n var searchQuery = location && location.search;\n\n if (typeof searchQuery !== 'string' || searchQuery.length === 0) {\n return _objectSpread({}, location, {\n query: {}\n });\n } // Ignore the `?` part of the search string e.g. ?username=codejockie\n\n\n var search = searchQuery.substring(1); // Split the query string on `&` e.g. ?username=codejockie&name=Kennedy\n\n var queries = search.split('&'); // Contruct query\n\n var query = queries.reduce(function (acc, currentQuery) {\n // Split on `=`, to get key and value\n var _currentQuery$split = currentQuery.split('='),\n _currentQuery$split2 = _slicedToArray(_currentQuery$split, 2),\n queryKey = _currentQuery$split2[0],\n queryValue = _currentQuery$split2[1];\n\n return _objectSpread({}, acc, _defineProperty({}, queryKey, queryValue));\n }, {});\n return _objectSpread({}, location, {\n query: query\n });\n};\n\nvar createConnectRouter = function createConnectRouter(structure) {\n var fromJS = structure.fromJS,\n merge = structure.merge;\n\n var createRouterReducer = function createRouterReducer(history) {\n var initialRouterState = fromJS({\n location: injectQuery(history.location),\n action: history.action\n });\n /*\n * This reducer will update the state with the most recent location history\n * has transitioned to.\n */\n\n return function () {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialRouterState;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n type = _ref.type,\n payload = _ref.payload;\n\n if (type === LOCATION_CHANGE) {\n var location = payload.location,\n action = payload.action,\n isFirstRendering = payload.isFirstRendering; // Don't update the state ref for the first rendering\n // to prevent the double-rendering issue on initilization\n\n return isFirstRendering ? state : merge(state, {\n location: fromJS(injectQuery(location)),\n action: action\n });\n }\n\n return state;\n };\n };\n\n return createRouterReducer;\n};\n\nexport default createConnectRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/connected-react-router/esm/reducer.js\n// module id = 587\n// module chunks = 19","/* Code from github.com/erikras/redux-form by Erik Rasmussen */\nvar getIn = function getIn(state, path) {\n if (!state) {\n return state;\n }\n\n var length = path.length;\n\n if (!length) {\n return undefined;\n }\n\n var result = state;\n\n for (var i = 0; i < length && !!result; ++i) {\n result = result[path[i]];\n }\n\n return result;\n};\n\nexport default getIn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/connected-react-router/esm/structure/plain/getIn.js\n// module id = 588\n// module chunks = 19","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport getIn from './getIn';\nvar structure = {\n fromJS: function fromJS(value) {\n return value;\n },\n getIn: getIn,\n merge: function merge(state, payload) {\n return _objectSpread({}, state, {}, payload);\n },\n toJS: function toJS(value) {\n return value;\n }\n};\nexport default structure;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/connected-react-router/esm/structure/plain/index.js\n// module id = 589\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/connected-react-router/~/prop-types/factoryWithThrowingShims.js\n// module id = 590\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/connected-react-router/~/prop-types/index.js\n// module id = 591\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/connected-react-router/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 592\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/aes.js\n// module id = 593\n// module chunks = 19",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/enc-utf16.js\n// module id = 594\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/format-hex.js\n// module id = 595\n// module chunks = 19",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/lib-typedarrays.js\n// module id = 596\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t var keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t var keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-cfb.js\n// module id = 597\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-ctr-gladman.js\n// module id = 598\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-ctr.js\n// module id = 599\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-ecb.js\n// module id = 600\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-ofb.js\n// module id = 601\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-ansix923.js\n// module id = 602\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-iso10126.js\n// module id = 603\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-iso97971.js\n// module id = 604\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-nopadding.js\n// module id = 605\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t i--;\n\t }\n\t data.sigBytes = i + 1;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-zeropadding.js\n// module id = 606\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA1 = C_algo.SHA1;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA1\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA1,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pbkdf2.js\n// module id = 607\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/rabbit-legacy.js\n// module id = 608\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/rabbit.js\n// module id = 609\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/rc4.js\n// module id = 610\n// module chunks = 19",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/ripemd160.js\n// module id = 611\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha224.js\n// module id = 612\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha3.js\n// module id = 613\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha384.js\n// module id = 614\n// module chunks = 19",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2)));\n\t this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4)));\n\t this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6)));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/tripledes.js\n// module id = 615\n// module chunks = 19","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/exenv/index.js\n// module id = 616\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatError = formatError;\n\nvar _devAssert = _interopRequireDefault(require(\"../jsutils/devAssert\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n */\nfunction formatError(error) {\n error || (0, _devAssert.default)(0, 'Received null or undefined error.');\n var message = error.message || 'An unknown error occurred.';\n var locations = error.locations;\n var path = error.path;\n var extensions = error.extensions;\n return extensions ? {\n message: message,\n locations: locations,\n path: path,\n extensions: extensions\n } : {\n message: message,\n locations: locations,\n path: path\n };\n}\n/**\n * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors\n */\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/error/formatError.js\n// module id = 641\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"GraphQLError\", {\n enumerable: true,\n get: function get() {\n return _GraphQLError.GraphQLError;\n }\n});\nObject.defineProperty(exports, \"printError\", {\n enumerable: true,\n get: function get() {\n return _GraphQLError.printError;\n }\n});\nObject.defineProperty(exports, \"syntaxError\", {\n enumerable: true,\n get: function get() {\n return _syntaxError.syntaxError;\n }\n});\nObject.defineProperty(exports, \"locatedError\", {\n enumerable: true,\n get: function get() {\n return _locatedError.locatedError;\n }\n});\nObject.defineProperty(exports, \"formatError\", {\n enumerable: true,\n get: function get() {\n return _formatError.formatError;\n }\n});\n\nvar _GraphQLError = require(\"./GraphQLError\");\n\nvar _syntaxError = require(\"./syntaxError\");\n\nvar _locatedError = require(\"./locatedError\");\n\nvar _formatError = require(\"./formatError\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/error/index.js\n// module id = 642\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"responsePathAsArray\", {\n enumerable: true,\n get: function get() {\n return _Path.pathToArray;\n }\n});\nObject.defineProperty(exports, \"execute\", {\n enumerable: true,\n get: function get() {\n return _execute.execute;\n }\n});\nObject.defineProperty(exports, \"defaultFieldResolver\", {\n enumerable: true,\n get: function get() {\n return _execute.defaultFieldResolver;\n }\n});\nObject.defineProperty(exports, \"defaultTypeResolver\", {\n enumerable: true,\n get: function get() {\n return _execute.defaultTypeResolver;\n }\n});\nObject.defineProperty(exports, \"getDirectiveValues\", {\n enumerable: true,\n get: function get() {\n return _values.getDirectiveValues;\n }\n});\n\nvar _Path = require(\"../jsutils/Path\");\n\nvar _execute = require(\"./execute\");\n\nvar _values = require(\"./values\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/execution/index.js\n// module id = 643\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.graphql = graphql;\nexports.graphqlSync = graphqlSync;\n\nvar _isPromise = _interopRequireDefault(require(\"./jsutils/isPromise\"));\n\nvar _parser = require(\"./language/parser\");\n\nvar _validate = require(\"./validation/validate\");\n\nvar _validate2 = require(\"./type/validate\");\n\nvar _execute = require(\"./execution/execute\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n var _arguments = arguments;\n\n /* eslint-enable no-redeclare */\n // Always return a Promise for a consistent API.\n return new Promise(function (resolve) {\n return resolve( // Extract arguments from object args if provided.\n _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({\n schema: argsOrSchema,\n source: source,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n }));\n });\n}\n/**\n * The graphqlSync function also fulfills GraphQL operations by parsing,\n * validating, and executing a GraphQL document along side a GraphQL schema.\n * However, it guarantees to complete synchronously (or throw an error) assuming\n * that all field resolvers are also synchronous.\n */\n\n\nfunction graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({\n schema: argsOrSchema,\n source: source,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n }); // Assert that the execution was synchronous.\n\n if ((0, _isPromise.default)(result)) {\n throw new Error('GraphQL execution failed to complete synchronously.');\n }\n\n return result;\n}\n\nfunction graphqlImpl(args) {\n var schema = args.schema,\n source = args.source,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n typeResolver = args.typeResolver; // Validate Schema\n\n var schemaValidationErrors = (0, _validate2.validateSchema)(schema);\n\n if (schemaValidationErrors.length > 0) {\n return {\n errors: schemaValidationErrors\n };\n } // Parse\n\n\n var document;\n\n try {\n document = (0, _parser.parse)(source);\n } catch (syntaxError) {\n return {\n errors: [syntaxError]\n };\n } // Validate\n\n\n var validationErrors = (0, _validate.validate)(schema, document);\n\n if (validationErrors.length > 0) {\n return {\n errors: validationErrors\n };\n } // Execute\n\n\n return (0, _execute.execute)({\n schema: schema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n typeResolver: typeResolver\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/graphql.js\n// module id = 644\n// module chunks = 19","/**\n * GraphQL.js provides a reference implementation for the GraphQL specification\n * but is also a useful utility for operating on GraphQL files and building\n * sophisticated tools.\n *\n * This primary module exports a general purpose function for fulfilling all\n * steps of the GraphQL specification in a single operation, but also includes\n * utilities for every part of the GraphQL specification:\n *\n * - Parsing the GraphQL language.\n * - Building a GraphQL type schema.\n * - Validating a GraphQL request against a type schema.\n * - Executing a GraphQL request against a type schema.\n *\n * This also includes utility functions for operating on GraphQL types and\n * GraphQL documents to facilitate building tools.\n *\n * You may also import from each sub-directory directly. For example, the\n * following two import statements are equivalent:\n *\n * import { parse } from 'graphql';\n * import { parse } from 'graphql/language';\n */\n// The GraphQL.js version info.\nexport { version, versionInfo } from './version'; // The primary entry point into fulfilling a GraphQL request.\n\nexport { graphql, graphqlSync } from './graphql'; // Create and operate on GraphQL type definitions and schema.\n\nexport { // Definitions\nGraphQLSchema, GraphQLDirective, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull, // Standard GraphQL Scalars\nspecifiedScalarTypes, GraphQLInt, GraphQLFloat, GraphQLString, GraphQLBoolean, GraphQLID, // Built-in Directives defined by the Spec\nspecifiedDirectives, GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective, // \"Enum\" of Type Kinds\nTypeKind, // Constant Deprecation Reason\nDEFAULT_DEPRECATION_REASON, // GraphQL Types for introspection.\nintrospectionTypes, __Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind, // Meta-field definitions.\nSchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, // Predicates\nisSchema, isDirective, isType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isInputType, isOutputType, isLeafType, isCompositeType, isAbstractType, isWrappingType, isNullableType, isNamedType, isRequiredArgument, isRequiredInputField, isSpecifiedScalarType, isIntrospectionType, isSpecifiedDirective, // Assertions\nassertSchema, assertDirective, assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType, // Un-modifiers\ngetNullableType, getNamedType, // Validate GraphQL schema.\nvalidateSchema, assertValidSchema } from './type';\n// Parse and operate on GraphQL language source files.\nexport { Source, getLocation, // Print source location\nprintLocation, printSourceLocation, // Lex\ncreateLexer, TokenKind, // Parse\nparse, parseValue, parseType, // Print\nprint, // Visit\nvisit, visitInParallel, visitWithTypeInfo, getVisitFn, BREAK, Kind, DirectiveLocation, // Predicates\nisDefinitionNode, isExecutableDefinitionNode, isSelectionNode, isValueNode, isTypeNode, isTypeSystemDefinitionNode, isTypeDefinitionNode, isTypeSystemExtensionNode, isTypeExtensionNode } from './language';\n// Execute GraphQL queries.\nexport { execute, defaultFieldResolver, defaultTypeResolver, responsePathAsArray, getDirectiveValues } from './execution';\nexport { subscribe, createSourceEventStream } from './subscription';\n// Validate GraphQL documents.\nexport { validate, ValidationContext, // All validation rules in the GraphQL Specification.\nspecifiedRules, // Individual validation rules.\nExecutableDefinitionsRule, FieldsOnCorrectTypeRule, FragmentsOnCompositeTypesRule, KnownArgumentNamesRule, KnownDirectivesRule, KnownFragmentNamesRule, KnownTypeNamesRule, LoneAnonymousOperationRule, NoFragmentCyclesRule, NoUndefinedVariablesRule, NoUnusedFragmentsRule, NoUnusedVariablesRule, OverlappingFieldsCanBeMergedRule, PossibleFragmentSpreadsRule, ProvidedRequiredArgumentsRule, ScalarLeafsRule, SingleFieldSubscriptionsRule, UniqueArgumentNamesRule, UniqueDirectivesPerLocationRule, UniqueFragmentNamesRule, UniqueInputFieldNamesRule, UniqueOperationNamesRule, UniqueVariableNamesRule, ValuesOfCorrectTypeRule, VariablesAreInputTypesRule, VariablesInAllowedPositionRule, // SDL-specific validation rules\nLoneSchemaDefinitionRule, UniqueOperationTypesRule, UniqueTypeNamesRule, UniqueEnumValueNamesRule, UniqueFieldDefinitionNamesRule, UniqueDirectiveNamesRule, PossibleTypeExtensionsRule } from './validation';\n// Create, format, and print GraphQL errors.\nexport { GraphQLError, syntaxError, locatedError, printError, formatError } from './error';\n// Utilities for operating on GraphQL type schema and parsed sources.\nexport { // Produce the GraphQL query recommended for a full schema introspection.\n// Accepts optional IntrospectionOptions.\ngetIntrospectionQuery, // @deprecated: use getIntrospectionQuery - will be removed in v15.\nintrospectionQuery, // Gets the target Operation from a Document.\ngetOperationAST, // Gets the Type for the target Operation AST.\ngetOperationRootType, // Convert a GraphQLSchema to an IntrospectionQuery.\nintrospectionFromSchema, // Build a GraphQLSchema from an introspection result.\nbuildClientSchema, // Build a GraphQLSchema from a parsed GraphQL Schema language AST.\nbuildASTSchema, // Build a GraphQLSchema from a GraphQL schema language document.\nbuildSchema, // @deprecated: Get the description from a schema AST node and supports legacy\n// syntax for specifying descriptions - will be removed in v16.\ngetDescription, // Extends an existing GraphQLSchema from a parsed GraphQL Schema\n// language AST.\nextendSchema, // Sort a GraphQLSchema.\nlexicographicSortSchema, // Print a GraphQLSchema to GraphQL Schema language.\nprintSchema, // Print a GraphQLType to GraphQL Schema language.\nprintType, // Prints the built-in introspection schema in the Schema Language\n// format.\nprintIntrospectionSchema, // Create a GraphQLType from a GraphQL language AST.\ntypeFromAST, // Create a JavaScript value from a GraphQL language AST with a Type.\nvalueFromAST, // Create a JavaScript value from a GraphQL language AST without a Type.\nvalueFromASTUntyped, // Create a GraphQL language AST from a JavaScript value.\nastFromValue, // A helper to use within recursive-descent visitors which need to be aware of\n// the GraphQL type system.\nTypeInfo, // Coerces a JavaScript value to a GraphQL type, or produces errors.\ncoerceInputValue, // @deprecated use coerceInputValue - will be removed in v15\ncoerceValue, // @deprecated use coerceInputValue - will be removed in v15\nisValidJSValue, // @deprecated use validation - will be removed in v15\nisValidLiteralValue, // Concatenates multiple AST together.\nconcatAST, // Separates an AST into an AST per Operation.\nseparateOperations, // Strips characters that are not significant to the validity or execution\n// of a GraphQL document.\nstripIgnoredCharacters, // Comparators for types\nisEqualType, isTypeSubTypeOf, doTypesOverlap, // Asserts a string is a valid GraphQL name.\nassertValidName, // Determine if a string is a valid GraphQL name.\nisValidNameError, // Compares two GraphQLSchemas and detects breaking changes.\nBreakingChangeType, DangerousChangeType, findBreakingChanges, findDangerousChanges, // Report all deprecated usage within a GraphQL document.\nfindDeprecatedUsages } from './utilities';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/index.mjs\n// module id = 645\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = identityFunc;\n\n/**\n * Returns the first argument it receives.\n */\nfunction identityFunc(x) {\n return x;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/jsutils/identityFunc.js\n// module id = 646\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = memoize3;\n\n/**\n * Memoizes the provided three-argument function.\n */\nfunction memoize3(fn) {\n var cache0;\n\n function memoized(a1, a2, a3) {\n if (!cache0) {\n cache0 = new WeakMap();\n }\n\n var cache1 = cache0.get(a1);\n var cache2;\n\n if (cache1) {\n cache2 = cache1.get(a2);\n\n if (cache2) {\n var cachedValue = cache2.get(a3);\n\n if (cachedValue !== undefined) {\n return cachedValue;\n }\n }\n } else {\n cache1 = new WeakMap();\n cache0.set(a1, cache1);\n }\n\n if (!cache2) {\n cache2 = new WeakMap();\n cache1.set(a2, cache2);\n }\n\n var newValue = fn(a1, a2, a3);\n cache2.set(a3, newValue);\n return newValue;\n }\n\n return memoized;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/jsutils/memoize3.js\n// module id = 647\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = promiseForObject;\n\n/**\n * This function transforms a JS object `ObjMap>` into\n * a `Promise>`\n *\n * This is akin to bluebird's `Promise.props`, but implemented only using\n * `Promise.all` so it will work with any implementation of ES6 promises.\n */\nfunction promiseForObject(object) {\n var keys = Object.keys(object);\n var valuesAndPromises = keys.map(function (name) {\n return object[name];\n });\n return Promise.all(valuesAndPromises).then(function (values) {\n return values.reduce(function (resolvedObject, value, i) {\n resolvedObject[keys[i]] = value;\n return resolvedObject;\n }, Object.create(null));\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/jsutils/promiseForObject.js\n// module id = 648\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = promiseReduce;\n\nvar _isPromise = _interopRequireDefault(require(\"./isPromise\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Similar to Array.prototype.reduce(), however the reducing callback may return\n * a Promise, in which case reduction will continue after each promise resolves.\n *\n * If the callback does not return a Promise, then this function will also not\n * return a Promise.\n */\nfunction promiseReduce(values, callback, initialValue) {\n return values.reduce(function (previous, value) {\n return (0, _isPromise.default)(previous) ? previous.then(function (resolved) {\n return callback(resolved, value);\n }) : callback(previous, value);\n }, initialValue);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/jsutils/promiseReduce.js\n// module id = 649\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Source\", {\n enumerable: true,\n get: function get() {\n return _source.Source;\n }\n});\nObject.defineProperty(exports, \"getLocation\", {\n enumerable: true,\n get: function get() {\n return _location.getLocation;\n }\n});\nObject.defineProperty(exports, \"printLocation\", {\n enumerable: true,\n get: function get() {\n return _printLocation.printLocation;\n }\n});\nObject.defineProperty(exports, \"printSourceLocation\", {\n enumerable: true,\n get: function get() {\n return _printLocation.printSourceLocation;\n }\n});\nObject.defineProperty(exports, \"Kind\", {\n enumerable: true,\n get: function get() {\n return _kinds.Kind;\n }\n});\nObject.defineProperty(exports, \"TokenKind\", {\n enumerable: true,\n get: function get() {\n return _tokenKind.TokenKind;\n }\n});\nObject.defineProperty(exports, \"createLexer\", {\n enumerable: true,\n get: function get() {\n return _lexer.createLexer;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function get() {\n return _parser.parse;\n }\n});\nObject.defineProperty(exports, \"parseValue\", {\n enumerable: true,\n get: function get() {\n return _parser.parseValue;\n }\n});\nObject.defineProperty(exports, \"parseType\", {\n enumerable: true,\n get: function get() {\n return _parser.parseType;\n }\n});\nObject.defineProperty(exports, \"print\", {\n enumerable: true,\n get: function get() {\n return _printer.print;\n }\n});\nObject.defineProperty(exports, \"visit\", {\n enumerable: true,\n get: function get() {\n return _visitor.visit;\n }\n});\nObject.defineProperty(exports, \"visitInParallel\", {\n enumerable: true,\n get: function get() {\n return _visitor.visitInParallel;\n }\n});\nObject.defineProperty(exports, \"visitWithTypeInfo\", {\n enumerable: true,\n get: function get() {\n return _visitor.visitWithTypeInfo;\n }\n});\nObject.defineProperty(exports, \"getVisitFn\", {\n enumerable: true,\n get: function get() {\n return _visitor.getVisitFn;\n }\n});\nObject.defineProperty(exports, \"BREAK\", {\n enumerable: true,\n get: function get() {\n return _visitor.BREAK;\n }\n});\nObject.defineProperty(exports, \"isDefinitionNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isDefinitionNode;\n }\n});\nObject.defineProperty(exports, \"isExecutableDefinitionNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isExecutableDefinitionNode;\n }\n});\nObject.defineProperty(exports, \"isSelectionNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isSelectionNode;\n }\n});\nObject.defineProperty(exports, \"isValueNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isValueNode;\n }\n});\nObject.defineProperty(exports, \"isTypeNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isTypeNode;\n }\n});\nObject.defineProperty(exports, \"isTypeSystemDefinitionNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isTypeSystemDefinitionNode;\n }\n});\nObject.defineProperty(exports, \"isTypeDefinitionNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isTypeDefinitionNode;\n }\n});\nObject.defineProperty(exports, \"isTypeSystemExtensionNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isTypeSystemExtensionNode;\n }\n});\nObject.defineProperty(exports, \"isTypeExtensionNode\", {\n enumerable: true,\n get: function get() {\n return _predicates.isTypeExtensionNode;\n }\n});\nObject.defineProperty(exports, \"DirectiveLocation\", {\n enumerable: true,\n get: function get() {\n return _directiveLocation.DirectiveLocation;\n }\n});\n\nvar _source = require(\"./source\");\n\nvar _location = require(\"./location\");\n\nvar _printLocation = require(\"./printLocation\");\n\nvar _kinds = require(\"./kinds\");\n\nvar _tokenKind = require(\"./tokenKind\");\n\nvar _lexer = require(\"./lexer\");\n\nvar _parser = require(\"./parser\");\n\nvar _printer = require(\"./printer\");\n\nvar _visitor = require(\"./visitor\");\n\nvar _predicates = require(\"./predicates\");\n\nvar _directiveLocation = require(\"./directiveLocation\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/language/index.js\n// module id = 650\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/* eslint-disable no-redeclare */\n// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441\nvar isFinitePolyfill = Number.isFinite || function (value) {\n return typeof value === 'number' && isFinite(value);\n};\n\nvar _default = isFinitePolyfill;\nexports.default = _default;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/polyfills/isFinite.js\n// module id = 651\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/* eslint-disable no-redeclare */\n// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441\nvar isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n};\n\nvar _default = isInteger;\nexports.default = _default;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/polyfills/isInteger.js\n// module id = 652\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"subscribe\", {\n enumerable: true,\n get: function get() {\n return _subscribe.subscribe;\n }\n});\nObject.defineProperty(exports, \"createSourceEventStream\", {\n enumerable: true,\n get: function get() {\n return _subscribe.createSourceEventStream;\n }\n});\n\nvar _subscribe = require(\"./subscribe\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/subscription/index.js\n// module id = 653\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = mapAsyncIterator;\n\nvar _iterall = require(\"iterall\");\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\nfunction mapAsyncIterator(iterable, callback, rejectCallback) {\n var iterator = (0, _iterall.getAsyncIterator)(iterable);\n var $return;\n var abruptClose; // $FlowFixMe(>=0.68.0)\n\n if (typeof iterator.return === 'function') {\n $return = iterator.return;\n\n abruptClose = function abruptClose(error) {\n var rethrow = function rethrow() {\n return Promise.reject(error);\n };\n\n return $return.call(iterator).then(rethrow, rethrow);\n };\n }\n\n function mapResult(result) {\n return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);\n }\n\n var mapReject;\n\n if (rejectCallback) {\n // Capture rejectCallback to ensure it cannot be null.\n var reject = rejectCallback;\n\n mapReject = function mapReject(error) {\n return asyncMapValue(error, reject).then(iteratorResult, abruptClose);\n };\n }\n /* TODO: Flow doesn't support symbols as keys:\n https://github.com/facebook/flow/issues/3258 */\n\n\n return _defineProperty({\n next: function next() {\n return iterator.next().then(mapResult, mapReject);\n },\n return: function _return() {\n return $return ? $return.call(iterator).then(mapResult, mapReject) : Promise.resolve({\n value: undefined,\n done: true\n });\n },\n throw: function _throw(error) {\n // $FlowFixMe(>=0.68.0)\n if (typeof iterator.throw === 'function') {\n return iterator.throw(error).then(mapResult, mapReject);\n }\n\n return Promise.reject(error).catch(abruptClose);\n }\n }, _iterall.$$asyncIterator, function () {\n return this;\n });\n}\n\nfunction asyncMapValue(value, callback) {\n return new Promise(function (resolve) {\n return resolve(callback(value));\n });\n}\n\nfunction iteratorResult(value) {\n return {\n value: value,\n done: false\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/subscription/mapAsyncIterator.js\n// module id = 654\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.subscribe = subscribe;\nexports.createSourceEventStream = createSourceEventStream;\n\nvar _iterall = require(\"iterall\");\n\nvar _inspect = _interopRequireDefault(require(\"../jsutils/inspect\"));\n\nvar _Path = require(\"../jsutils/Path\");\n\nvar _GraphQLError = require(\"../error/GraphQLError\");\n\nvar _locatedError = require(\"../error/locatedError\");\n\nvar _execute = require(\"../execution/execute\");\n\nvar _getOperationRootType = require(\"../utilities/getOperationRootType\");\n\nvar _mapAsyncIterator = _interopRequireDefault(require(\"./mapAsyncIterator\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {\n /* eslint-enable no-redeclare */\n // Extract arguments from object args if provided.\n return arguments.length === 1 ? subscribeImpl(argsOrSchema) : subscribeImpl({\n schema: argsOrSchema,\n document: document,\n rootValue: rootValue,\n contextValue: contextValue,\n variableValues: variableValues,\n operationName: operationName,\n fieldResolver: fieldResolver,\n subscribeFieldResolver: subscribeFieldResolver\n });\n}\n/**\n * This function checks if the error is a GraphQLError. If it is, report it as\n * an ExecutionResult, containing only errors and no data. Otherwise treat the\n * error as a system-class error and re-throw it.\n */\n\n\nfunction reportGraphQLError(error) {\n if (error instanceof _GraphQLError.GraphQLError) {\n return {\n errors: [error]\n };\n }\n\n throw error;\n}\n\nfunction subscribeImpl(args) {\n var schema = args.schema,\n document = args.document,\n rootValue = args.rootValue,\n contextValue = args.contextValue,\n variableValues = args.variableValues,\n operationName = args.operationName,\n fieldResolver = args.fieldResolver,\n subscribeFieldResolver = args.subscribeFieldResolver;\n var sourcePromise = createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver); // For each payload yielded from a subscription, map it over the normal\n // GraphQL `execute` function, with `payload` as the rootValue.\n // This implements the \"MapSourceToResponseEvent\" algorithm described in\n // the GraphQL specification. The `execute` function provides the\n // \"ExecuteSubscriptionEvent\" algorithm, as it is nearly identical to the\n // \"ExecuteQuery\" algorithm, for which `execute` is also used.\n\n var mapSourceToResponse = function mapSourceToResponse(payload) {\n return (0, _execute.execute)(schema, document, payload, contextValue, variableValues, operationName, fieldResolver);\n }; // Resolve the Source Stream, then map every source value to a\n // ExecutionResult value as described above.\n\n\n return sourcePromise.then(function (resultOrStream) {\n return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used.\n (0, _iterall.isAsyncIterable)(resultOrStream) ? (0, _mapAsyncIterator.default)(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream\n );\n });\n}\n/**\n * Implements the \"CreateSourceEventStream\" algorithm described in the\n * GraphQL specification, resolving the subscription source event stream.\n *\n * Returns a Promise which resolves to either an AsyncIterable (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to the AsyncIterable for the\n * event stream returned by the resolver.\n *\n * A Source Event Stream represents a sequence of events, each of which triggers\n * a GraphQL execution for that event.\n *\n * This may be useful when hosting the stateful subscription service in a\n * different process or machine than the stateless GraphQL execution engine,\n * or otherwise separating these two steps. For more on this, see the\n * \"Supporting Subscriptions at Scale\" information in the GraphQL specification.\n */\n\n\nfunction createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {\n // If arguments are missing or incorrectly typed, this is an internal\n // developer mistake which should throw an early error.\n (0, _execute.assertValidExecutionArguments)(schema, document, variableValues);\n\n try {\n // If a valid context cannot be created due to incorrect arguments,\n // this will throw an error.\n var exeContext = (0, _execute.buildExecutionContext)(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed.\n\n if (Array.isArray(exeContext)) {\n return Promise.resolve({\n errors: exeContext\n });\n }\n\n var type = (0, _getOperationRootType.getOperationRootType)(schema, exeContext.operation);\n var fields = (0, _execute.collectFields)(exeContext, type, exeContext.operation.selectionSet, Object.create(null), Object.create(null));\n var responseNames = Object.keys(fields);\n var responseName = responseNames[0];\n var fieldNodes = fields[responseName];\n var fieldNode = fieldNodes[0];\n var fieldName = fieldNode.name.value;\n var fieldDef = (0, _execute.getFieldDef)(schema, type, fieldName);\n\n if (!fieldDef) {\n throw new _GraphQLError.GraphQLError(\"The subscription field \\\"\".concat(fieldName, \"\\\" is not defined.\"), fieldNodes);\n } // Call the `subscribe()` resolver or the default resolver to produce an\n // AsyncIterable yielding raw payloads.\n\n\n var resolveFn = fieldDef.subscribe || exeContext.fieldResolver;\n var path = (0, _Path.addPath)(undefined, responseName);\n var info = (0, _execute.buildResolveInfo)(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the \"ResolveFieldEventStream\"\n // algorithm from GraphQL specification. It differs from\n // \"ResolveFieldValue\" due to providing a different `resolveFn`.\n\n var result = (0, _execute.resolveFieldValueOrError)(exeContext, fieldDef, fieldNodes, resolveFn, rootValue, info); // Coerce to Promise for easier error handling and consistent return type.\n\n return Promise.resolve(result).then(function (eventStream) {\n // If eventStream is an Error, rethrow a located error.\n if (eventStream instanceof Error) {\n return {\n errors: [(0, _locatedError.locatedError)(eventStream, fieldNodes, (0, _Path.pathToArray)(path))]\n };\n } // Assert field returned an event stream, otherwise yield an error.\n\n\n if ((0, _iterall.isAsyncIterable)(eventStream)) {\n // Note: isAsyncIterable above ensures this will be correct.\n return eventStream;\n }\n\n throw new Error('Subscription field must return Async Iterable. Received: ' + (0, _inspect.default)(eventStream));\n });\n } catch (error) {\n // As with reportGraphQLError above, if the error is a GraphQLError, report\n // it as an ExecutionResult; otherwise treat it as a system-class error and\n // re-throw it.\n return error instanceof _GraphQLError.GraphQLError ? Promise.resolve({\n errors: [error]\n }) : Promise.reject(error);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/subscription/subscribe.js\n// module id = 655\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"isSchema\", {\n enumerable: true,\n get: function get() {\n return _schema.isSchema;\n }\n});\nObject.defineProperty(exports, \"assertSchema\", {\n enumerable: true,\n get: function get() {\n return _schema.assertSchema;\n }\n});\nObject.defineProperty(exports, \"GraphQLSchema\", {\n enumerable: true,\n get: function get() {\n return _schema.GraphQLSchema;\n }\n});\nObject.defineProperty(exports, \"isType\", {\n enumerable: true,\n get: function get() {\n return _definition.isType;\n }\n});\nObject.defineProperty(exports, \"isScalarType\", {\n enumerable: true,\n get: function get() {\n return _definition.isScalarType;\n }\n});\nObject.defineProperty(exports, \"isObjectType\", {\n enumerable: true,\n get: function get() {\n return _definition.isObjectType;\n }\n});\nObject.defineProperty(exports, \"isInterfaceType\", {\n enumerable: true,\n get: function get() {\n return _definition.isInterfaceType;\n }\n});\nObject.defineProperty(exports, \"isUnionType\", {\n enumerable: true,\n get: function get() {\n return _definition.isUnionType;\n }\n});\nObject.defineProperty(exports, \"isEnumType\", {\n enumerable: true,\n get: function get() {\n return _definition.isEnumType;\n }\n});\nObject.defineProperty(exports, \"isInputObjectType\", {\n enumerable: true,\n get: function get() {\n return _definition.isInputObjectType;\n }\n});\nObject.defineProperty(exports, \"isListType\", {\n enumerable: true,\n get: function get() {\n return _definition.isListType;\n }\n});\nObject.defineProperty(exports, \"isNonNullType\", {\n enumerable: true,\n get: function get() {\n return _definition.isNonNullType;\n }\n});\nObject.defineProperty(exports, \"isInputType\", {\n enumerable: true,\n get: function get() {\n return _definition.isInputType;\n }\n});\nObject.defineProperty(exports, \"isOutputType\", {\n enumerable: true,\n get: function get() {\n return _definition.isOutputType;\n }\n});\nObject.defineProperty(exports, \"isLeafType\", {\n enumerable: true,\n get: function get() {\n return _definition.isLeafType;\n }\n});\nObject.defineProperty(exports, \"isCompositeType\", {\n enumerable: true,\n get: function get() {\n return _definition.isCompositeType;\n }\n});\nObject.defineProperty(exports, \"isAbstractType\", {\n enumerable: true,\n get: function get() {\n return _definition.isAbstractType;\n }\n});\nObject.defineProperty(exports, \"isWrappingType\", {\n enumerable: true,\n get: function get() {\n return _definition.isWrappingType;\n }\n});\nObject.defineProperty(exports, \"isNullableType\", {\n enumerable: true,\n get: function get() {\n return _definition.isNullableType;\n }\n});\nObject.defineProperty(exports, \"isNamedType\", {\n enumerable: true,\n get: function get() {\n return _definition.isNamedType;\n }\n});\nObject.defineProperty(exports, \"isRequiredArgument\", {\n enumerable: true,\n get: function get() {\n return _definition.isRequiredArgument;\n }\n});\nObject.defineProperty(exports, \"isRequiredInputField\", {\n enumerable: true,\n get: function get() {\n return _definition.isRequiredInputField;\n }\n});\nObject.defineProperty(exports, \"assertType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertType;\n }\n});\nObject.defineProperty(exports, \"assertScalarType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertScalarType;\n }\n});\nObject.defineProperty(exports, \"assertObjectType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertObjectType;\n }\n});\nObject.defineProperty(exports, \"assertInterfaceType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertInterfaceType;\n }\n});\nObject.defineProperty(exports, \"assertUnionType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertUnionType;\n }\n});\nObject.defineProperty(exports, \"assertEnumType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertEnumType;\n }\n});\nObject.defineProperty(exports, \"assertInputObjectType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertInputObjectType;\n }\n});\nObject.defineProperty(exports, \"assertListType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertListType;\n }\n});\nObject.defineProperty(exports, \"assertNonNullType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertNonNullType;\n }\n});\nObject.defineProperty(exports, \"assertInputType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertInputType;\n }\n});\nObject.defineProperty(exports, \"assertOutputType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertOutputType;\n }\n});\nObject.defineProperty(exports, \"assertLeafType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertLeafType;\n }\n});\nObject.defineProperty(exports, \"assertCompositeType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertCompositeType;\n }\n});\nObject.defineProperty(exports, \"assertAbstractType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertAbstractType;\n }\n});\nObject.defineProperty(exports, \"assertWrappingType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertWrappingType;\n }\n});\nObject.defineProperty(exports, \"assertNullableType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertNullableType;\n }\n});\nObject.defineProperty(exports, \"assertNamedType\", {\n enumerable: true,\n get: function get() {\n return _definition.assertNamedType;\n }\n});\nObject.defineProperty(exports, \"getNullableType\", {\n enumerable: true,\n get: function get() {\n return _definition.getNullableType;\n }\n});\nObject.defineProperty(exports, \"getNamedType\", {\n enumerable: true,\n get: function get() {\n return _definition.getNamedType;\n }\n});\nObject.defineProperty(exports, \"GraphQLScalarType\", {\n enumerable: true,\n get: function get() {\n return _definition.GraphQLScalarType;\n }\n});\nObject.defineProperty(exports, \"GraphQLObjectType\", {\n enumerable: true,\n get: function get() {\n return _definition.GraphQLObjectType;\n }\n});\nObject.defineProperty(exports, \"GraphQLInterfaceType\", {\n enumerable: true,\n get: function get() {\n return _definition.GraphQLInterfaceType;\n }\n});\nObject.defineProperty(exports, \"GraphQLUnionType\", {\n enumerable: true,\n get: function get() {\n return _definition.GraphQLUnionType;\n }\n});\nObject.defineProperty(exports, \"GraphQLEnumType\", {\n enumerable: true,\n get: function get() {\n return _definition.GraphQLEnumType;\n }\n});\nObject.defineProperty(exports, \"GraphQLInputObjectType\", {\n enumerable: true,\n get: function get() {\n return _definition.GraphQLInputObjectType;\n }\n});\nObject.defineProperty(exports, \"GraphQLList\", {\n enumerable: true,\n get: function get() {\n return _definition.GraphQLList;\n }\n});\nObject.defineProperty(exports, \"GraphQLNonNull\", {\n enumerable: true,\n get: function get() {\n return _definition.GraphQLNonNull;\n }\n});\nObject.defineProperty(exports, \"isDirective\", {\n enumerable: true,\n get: function get() {\n return _directives.isDirective;\n }\n});\nObject.defineProperty(exports, \"assertDirective\", {\n enumerable: true,\n get: function get() {\n return _directives.assertDirective;\n }\n});\nObject.defineProperty(exports, \"GraphQLDirective\", {\n enumerable: true,\n get: function get() {\n return _directives.GraphQLDirective;\n }\n});\nObject.defineProperty(exports, \"isSpecifiedDirective\", {\n enumerable: true,\n get: function get() {\n return _directives.isSpecifiedDirective;\n }\n});\nObject.defineProperty(exports, \"specifiedDirectives\", {\n enumerable: true,\n get: function get() {\n return _directives.specifiedDirectives;\n }\n});\nObject.defineProperty(exports, \"GraphQLIncludeDirective\", {\n enumerable: true,\n get: function get() {\n return _directives.GraphQLIncludeDirective;\n }\n});\nObject.defineProperty(exports, \"GraphQLSkipDirective\", {\n enumerable: true,\n get: function get() {\n return _directives.GraphQLSkipDirective;\n }\n});\nObject.defineProperty(exports, \"GraphQLDeprecatedDirective\", {\n enumerable: true,\n get: function get() {\n return _directives.GraphQLDeprecatedDirective;\n }\n});\nObject.defineProperty(exports, \"DEFAULT_DEPRECATION_REASON\", {\n enumerable: true,\n get: function get() {\n return _directives.DEFAULT_DEPRECATION_REASON;\n }\n});\nObject.defineProperty(exports, \"isSpecifiedScalarType\", {\n enumerable: true,\n get: function get() {\n return _scalars.isSpecifiedScalarType;\n }\n});\nObject.defineProperty(exports, \"specifiedScalarTypes\", {\n enumerable: true,\n get: function get() {\n return _scalars.specifiedScalarTypes;\n }\n});\nObject.defineProperty(exports, \"GraphQLInt\", {\n enumerable: true,\n get: function get() {\n return _scalars.GraphQLInt;\n }\n});\nObject.defineProperty(exports, \"GraphQLFloat\", {\n enumerable: true,\n get: function get() {\n return _scalars.GraphQLFloat;\n }\n});\nObject.defineProperty(exports, \"GraphQLString\", {\n enumerable: true,\n get: function get() {\n return _scalars.GraphQLString;\n }\n});\nObject.defineProperty(exports, \"GraphQLBoolean\", {\n enumerable: true,\n get: function get() {\n return _scalars.GraphQLBoolean;\n }\n});\nObject.defineProperty(exports, \"GraphQLID\", {\n enumerable: true,\n get: function get() {\n return _scalars.GraphQLID;\n }\n});\nObject.defineProperty(exports, \"isIntrospectionType\", {\n enumerable: true,\n get: function get() {\n return _introspection.isIntrospectionType;\n }\n});\nObject.defineProperty(exports, \"introspectionTypes\", {\n enumerable: true,\n get: function get() {\n return _introspection.introspectionTypes;\n }\n});\nObject.defineProperty(exports, \"__Schema\", {\n enumerable: true,\n get: function get() {\n return _introspection.__Schema;\n }\n});\nObject.defineProperty(exports, \"__Directive\", {\n enumerable: true,\n get: function get() {\n return _introspection.__Directive;\n }\n});\nObject.defineProperty(exports, \"__DirectiveLocation\", {\n enumerable: true,\n get: function get() {\n return _introspection.__DirectiveLocation;\n }\n});\nObject.defineProperty(exports, \"__Type\", {\n enumerable: true,\n get: function get() {\n return _introspection.__Type;\n }\n});\nObject.defineProperty(exports, \"__Field\", {\n enumerable: true,\n get: function get() {\n return _introspection.__Field;\n }\n});\nObject.defineProperty(exports, \"__InputValue\", {\n enumerable: true,\n get: function get() {\n return _introspection.__InputValue;\n }\n});\nObject.defineProperty(exports, \"__EnumValue\", {\n enumerable: true,\n get: function get() {\n return _introspection.__EnumValue;\n }\n});\nObject.defineProperty(exports, \"__TypeKind\", {\n enumerable: true,\n get: function get() {\n return _introspection.__TypeKind;\n }\n});\nObject.defineProperty(exports, \"TypeKind\", {\n enumerable: true,\n get: function get() {\n return _introspection.TypeKind;\n }\n});\nObject.defineProperty(exports, \"SchemaMetaFieldDef\", {\n enumerable: true,\n get: function get() {\n return _introspection.SchemaMetaFieldDef;\n }\n});\nObject.defineProperty(exports, \"TypeMetaFieldDef\", {\n enumerable: true,\n get: function get() {\n return _introspection.TypeMetaFieldDef;\n }\n});\nObject.defineProperty(exports, \"TypeNameMetaFieldDef\", {\n enumerable: true,\n get: function get() {\n return _introspection.TypeNameMetaFieldDef;\n }\n});\nObject.defineProperty(exports, \"validateSchema\", {\n enumerable: true,\n get: function get() {\n return _validate.validateSchema;\n }\n});\nObject.defineProperty(exports, \"assertValidSchema\", {\n enumerable: true,\n get: function get() {\n return _validate.assertValidSchema;\n }\n});\n\nvar _schema = require(\"./schema\");\n\nvar _definition = require(\"./definition\");\n\nvar _directives = require(\"./directives\");\n\nvar _scalars = require(\"./scalars\");\n\nvar _introspection = require(\"./introspection\");\n\nvar _validate = require(\"./validate\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/type/index.js\n// module id = 656\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.buildClientSchema = buildClientSchema;\n\nvar _objectValues = _interopRequireDefault(require(\"../polyfills/objectValues\"));\n\nvar _inspect = _interopRequireDefault(require(\"../jsutils/inspect\"));\n\nvar _devAssert = _interopRequireDefault(require(\"../jsutils/devAssert\"));\n\nvar _keyValMap = _interopRequireDefault(require(\"../jsutils/keyValMap\"));\n\nvar _isObjectLike = _interopRequireDefault(require(\"../jsutils/isObjectLike\"));\n\nvar _parser = require(\"../language/parser\");\n\nvar _directives = require(\"../type/directives\");\n\nvar _scalars = require(\"../type/scalars\");\n\nvar _introspection = require(\"../type/introspection\");\n\nvar _schema = require(\"../type/schema\");\n\nvar _definition = require(\"../type/definition\");\n\nvar _valueFromAST = require(\"./valueFromAST\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Build a GraphQLSchema for use by client tools.\n *\n * Given the result of a client running the introspection query, creates and\n * returns a GraphQLSchema instance which can be then used with all graphql-js\n * tools, but cannot be used to execute a query, as introspection does not\n * represent the \"resolver\", \"parse\" or \"serialize\" functions or any other\n * server-internal mechanisms.\n *\n * This function expects a complete introspection result. Don't forget to check\n * the \"errors\" field of a server response before calling this function.\n */\nfunction buildClientSchema(introspection, options) {\n (0, _isObjectLike.default)(introspection) && (0, _isObjectLike.default)(introspection.__schema) || (0, _devAssert.default)(0, 'Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ' + (0, _inspect.default)(introspection)); // Get the schema from the introspection result.\n\n var schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each.\n\n var typeMap = (0, _keyValMap.default)(schemaIntrospection.types, function (typeIntrospection) {\n return typeIntrospection.name;\n }, function (typeIntrospection) {\n return buildType(typeIntrospection);\n });\n\n for (var _i2 = 0, _ref2 = [].concat(_scalars.specifiedScalarTypes, _introspection.introspectionTypes); _i2 < _ref2.length; _i2++) {\n var stdType = _ref2[_i2];\n\n if (typeMap[stdType.name]) {\n typeMap[stdType.name] = stdType;\n }\n } // Get the root Query, Mutation, and Subscription types.\n\n\n var queryType = schemaIntrospection.queryType ? getObjectType(schemaIntrospection.queryType) : null;\n var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null;\n var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null; // Get the directives supported by Introspection, assuming empty-set if\n // directives were not queried for.\n\n var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : []; // Then produce and return a Schema with these types.\n\n return new _schema.GraphQLSchema({\n query: queryType,\n mutation: mutationType,\n subscription: subscriptionType,\n types: (0, _objectValues.default)(typeMap),\n directives: directives,\n assumeValid: options && options.assumeValid,\n allowedLegacyNames: options && options.allowedLegacyNames\n }); // Given a type reference in introspection, return the GraphQLType instance.\n // preferring cached instances before building new instances.\n\n function getType(typeRef) {\n if (typeRef.kind === _introspection.TypeKind.LIST) {\n var itemRef = typeRef.ofType;\n\n if (!itemRef) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n\n return (0, _definition.GraphQLList)(getType(itemRef));\n }\n\n if (typeRef.kind === _introspection.TypeKind.NON_NULL) {\n var nullableRef = typeRef.ofType;\n\n if (!nullableRef) {\n throw new Error('Decorated type deeper than introspection query.');\n }\n\n var nullableType = getType(nullableRef);\n return (0, _definition.GraphQLNonNull)((0, _definition.assertNullableType)(nullableType));\n }\n\n if (!typeRef.name) {\n throw new Error('Unknown type reference: ' + (0, _inspect.default)(typeRef));\n }\n\n return getNamedType(typeRef.name);\n }\n\n function getNamedType(typeName) {\n var type = typeMap[typeName];\n\n if (!type) {\n throw new Error(\"Invalid or incomplete schema, unknown type: \".concat(typeName, \". Ensure that a full introspection query is used in order to build a client schema.\"));\n }\n\n return type;\n }\n\n function getInputType(typeRef) {\n var type = getType(typeRef);\n\n if ((0, _definition.isInputType)(type)) {\n return type;\n }\n\n throw new Error('Introspection must provide input type for arguments, but received: ' + (0, _inspect.default)(type) + '.');\n }\n\n function getOutputType(typeRef) {\n var type = getType(typeRef);\n\n if ((0, _definition.isOutputType)(type)) {\n return type;\n }\n\n throw new Error('Introspection must provide output type for fields, but received: ' + (0, _inspect.default)(type) + '.');\n }\n\n function getObjectType(typeRef) {\n var type = getType(typeRef);\n return (0, _definition.assertObjectType)(type);\n }\n\n function getInterfaceType(typeRef) {\n var type = getType(typeRef);\n return (0, _definition.assertInterfaceType)(type);\n } // Given a type's introspection result, construct the correct\n // GraphQLType instance.\n\n\n function buildType(type) {\n if (type && type.name && type.kind) {\n switch (type.kind) {\n case _introspection.TypeKind.SCALAR:\n return buildScalarDef(type);\n\n case _introspection.TypeKind.OBJECT:\n return buildObjectDef(type);\n\n case _introspection.TypeKind.INTERFACE:\n return buildInterfaceDef(type);\n\n case _introspection.TypeKind.UNION:\n return buildUnionDef(type);\n\n case _introspection.TypeKind.ENUM:\n return buildEnumDef(type);\n\n case _introspection.TypeKind.INPUT_OBJECT:\n return buildInputObjectDef(type);\n }\n }\n\n throw new Error('Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema:' + (0, _inspect.default)(type));\n }\n\n function buildScalarDef(scalarIntrospection) {\n return new _definition.GraphQLScalarType({\n name: scalarIntrospection.name,\n description: scalarIntrospection.description\n });\n }\n\n function buildObjectDef(objectIntrospection) {\n if (!objectIntrospection.interfaces) {\n throw new Error('Introspection result missing interfaces: ' + (0, _inspect.default)(objectIntrospection));\n }\n\n return new _definition.GraphQLObjectType({\n name: objectIntrospection.name,\n description: objectIntrospection.description,\n interfaces: function interfaces() {\n return objectIntrospection.interfaces.map(getInterfaceType);\n },\n fields: function fields() {\n return buildFieldDefMap(objectIntrospection);\n }\n });\n }\n\n function buildInterfaceDef(interfaceIntrospection) {\n return new _definition.GraphQLInterfaceType({\n name: interfaceIntrospection.name,\n description: interfaceIntrospection.description,\n fields: function fields() {\n return buildFieldDefMap(interfaceIntrospection);\n }\n });\n }\n\n function buildUnionDef(unionIntrospection) {\n if (!unionIntrospection.possibleTypes) {\n throw new Error('Introspection result missing possibleTypes: ' + (0, _inspect.default)(unionIntrospection));\n }\n\n return new _definition.GraphQLUnionType({\n name: unionIntrospection.name,\n description: unionIntrospection.description,\n types: function types() {\n return unionIntrospection.possibleTypes.map(getObjectType);\n }\n });\n }\n\n function buildEnumDef(enumIntrospection) {\n if (!enumIntrospection.enumValues) {\n throw new Error('Introspection result missing enumValues: ' + (0, _inspect.default)(enumIntrospection));\n }\n\n return new _definition.GraphQLEnumType({\n name: enumIntrospection.name,\n description: enumIntrospection.description,\n values: (0, _keyValMap.default)(enumIntrospection.enumValues, function (valueIntrospection) {\n return valueIntrospection.name;\n }, function (valueIntrospection) {\n return {\n description: valueIntrospection.description,\n deprecationReason: valueIntrospection.deprecationReason\n };\n })\n });\n }\n\n function buildInputObjectDef(inputObjectIntrospection) {\n if (!inputObjectIntrospection.inputFields) {\n throw new Error('Introspection result missing inputFields: ' + (0, _inspect.default)(inputObjectIntrospection));\n }\n\n return new _definition.GraphQLInputObjectType({\n name: inputObjectIntrospection.name,\n description: inputObjectIntrospection.description,\n fields: function fields() {\n return buildInputValueDefMap(inputObjectIntrospection.inputFields);\n }\n });\n }\n\n function buildFieldDefMap(typeIntrospection) {\n if (!typeIntrospection.fields) {\n throw new Error('Introspection result missing fields: ' + (0, _inspect.default)(typeIntrospection));\n }\n\n return (0, _keyValMap.default)(typeIntrospection.fields, function (fieldIntrospection) {\n return fieldIntrospection.name;\n }, function (fieldIntrospection) {\n if (!fieldIntrospection.args) {\n throw new Error('Introspection result missing field args: ' + (0, _inspect.default)(fieldIntrospection));\n }\n\n return {\n description: fieldIntrospection.description,\n deprecationReason: fieldIntrospection.deprecationReason,\n type: getOutputType(fieldIntrospection.type),\n args: buildInputValueDefMap(fieldIntrospection.args)\n };\n });\n }\n\n function buildInputValueDefMap(inputValueIntrospections) {\n return (0, _keyValMap.default)(inputValueIntrospections, function (inputValue) {\n return inputValue.name;\n }, buildInputValue);\n }\n\n function buildInputValue(inputValueIntrospection) {\n var type = getInputType(inputValueIntrospection.type);\n var defaultValue = inputValueIntrospection.defaultValue ? (0, _valueFromAST.valueFromAST)((0, _parser.parseValue)(inputValueIntrospection.defaultValue), type) : undefined;\n return {\n description: inputValueIntrospection.description,\n type: type,\n defaultValue: defaultValue\n };\n }\n\n function buildDirective(directiveIntrospection) {\n if (!directiveIntrospection.args) {\n throw new Error('Introspection result missing directive args: ' + (0, _inspect.default)(directiveIntrospection));\n }\n\n if (!directiveIntrospection.locations) {\n throw new Error('Introspection result missing directive locations: ' + (0, _inspect.default)(directiveIntrospection));\n }\n\n return new _directives.GraphQLDirective({\n name: directiveIntrospection.name,\n description: directiveIntrospection.description,\n locations: directiveIntrospection.locations.slice(),\n args: buildInputValueDefMap(directiveIntrospection.args)\n });\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/buildClientSchema.js\n// module id = 657\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.concatAST = concatAST;\n\nvar _flatMap = _interopRequireDefault(require(\"../polyfills/flatMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Provided a collection of ASTs, presumably each from different files,\n * concatenate the ASTs together into batched AST, useful for validating many\n * GraphQL source files which together represent one conceptual application.\n */\nfunction concatAST(asts) {\n return {\n kind: 'Document',\n definitions: (0, _flatMap.default)(asts, function (ast) {\n return ast.definitions;\n })\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/concatAST.js\n// module id = 658\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.extendSchema = extendSchema;\n\nvar _flatMap = _interopRequireDefault(require(\"../polyfills/flatMap\"));\n\nvar _objectValues = _interopRequireDefault(require(\"../polyfills/objectValues\"));\n\nvar _inspect = _interopRequireDefault(require(\"../jsutils/inspect\"));\n\nvar _mapValue = _interopRequireDefault(require(\"../jsutils/mapValue\"));\n\nvar _invariant = _interopRequireDefault(require(\"../jsutils/invariant\"));\n\nvar _devAssert = _interopRequireDefault(require(\"../jsutils/devAssert\"));\n\nvar _keyValMap = _interopRequireDefault(require(\"../jsutils/keyValMap\"));\n\nvar _kinds = require(\"../language/kinds\");\n\nvar _predicates = require(\"../language/predicates\");\n\nvar _validate = require(\"../validation/validate\");\n\nvar _directives = require(\"../type/directives\");\n\nvar _scalars = require(\"../type/scalars\");\n\nvar _introspection = require(\"../type/introspection\");\n\nvar _schema = require(\"../type/schema\");\n\nvar _definition = require(\"../type/definition\");\n\nvar _buildASTSchema = require(\"./buildASTSchema\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Produces a new schema given an existing schema and a document which may\n * contain GraphQL type extensions and definitions. The original schema will\n * remain unaltered.\n *\n * Because a schema represents a graph of references, a schema cannot be\n * extended without effectively making an entire copy. We do not know until it's\n * too late if subgraphs remain unchanged.\n *\n * This algorithm copies the provided schema, applying extensions while\n * producing the copy. The original schema remains unaltered.\n *\n * Accepts options as a third argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\nfunction extendSchema(schema, documentAST, options) {\n (0, _schema.assertSchema)(schema);\n documentAST && documentAST.kind === _kinds.Kind.DOCUMENT || (0, _devAssert.default)(0, 'Must provide valid Document AST');\n\n if (!options || !(options.assumeValid || options.assumeValidSDL)) {\n (0, _validate.assertValidSDLExtension)(documentAST, schema);\n } // Collect the type definitions and extensions found in the document.\n\n\n var typeDefs = [];\n var typeExtsMap = Object.create(null); // New directives and types are separate because a directives and types can\n // have the same name. For example, a type named \"skip\".\n\n var directiveDefs = [];\n var schemaDef; // Schema extensions are collected which may add additional operation types.\n\n var schemaExts = [];\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var def = _documentAST$definiti2[_i2];\n\n if (def.kind === _kinds.Kind.SCHEMA_DEFINITION) {\n schemaDef = def;\n } else if (def.kind === _kinds.Kind.SCHEMA_EXTENSION) {\n schemaExts.push(def);\n } else if ((0, _predicates.isTypeDefinitionNode)(def)) {\n typeDefs.push(def);\n } else if ((0, _predicates.isTypeExtensionNode)(def)) {\n var extendedTypeName = def.name.value;\n var existingTypeExts = typeExtsMap[extendedTypeName];\n typeExtsMap[extendedTypeName] = existingTypeExts ? existingTypeExts.concat([def]) : [def];\n } else if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {\n directiveDefs.push(def);\n }\n } // If this document contains no new types, extensions, or directives then\n // return the same unmodified GraphQLSchema instance.\n\n\n if (Object.keys(typeExtsMap).length === 0 && typeDefs.length === 0 && directiveDefs.length === 0 && schemaExts.length === 0 && !schemaDef) {\n return schema;\n }\n\n var schemaConfig = schema.toConfig();\n var astBuilder = new _buildASTSchema.ASTDefinitionBuilder(options, function (typeName) {\n var type = typeMap[typeName];\n\n if (type === undefined) {\n throw new Error(\"Unknown type: \\\"\".concat(typeName, \"\\\".\"));\n }\n\n return type;\n });\n var typeMap = (0, _keyValMap.default)(typeDefs, function (node) {\n return node.name.value;\n }, function (node) {\n return astBuilder.buildType(node);\n });\n\n for (var _i4 = 0, _schemaConfig$types2 = schemaConfig.types; _i4 < _schemaConfig$types2.length; _i4++) {\n var existingType = _schemaConfig$types2[_i4];\n typeMap[existingType.name] = extendNamedType(existingType);\n } // Get the extended root operation types.\n\n\n var operationTypes = {\n query: schemaConfig.query && schemaConfig.query.name,\n mutation: schemaConfig.mutation && schemaConfig.mutation.name,\n subscription: schemaConfig.subscription && schemaConfig.subscription.name\n };\n\n if (schemaDef) {\n for (var _i6 = 0, _schemaDef$operationT2 = schemaDef.operationTypes; _i6 < _schemaDef$operationT2.length; _i6++) {\n var _ref2 = _schemaDef$operationT2[_i6];\n var operation = _ref2.operation;\n var type = _ref2.type;\n operationTypes[operation] = type.name.value;\n }\n } // Then, incorporate schema definition and all schema extensions.\n\n\n for (var _i8 = 0; _i8 < schemaExts.length; _i8++) {\n var schemaExt = schemaExts[_i8];\n\n if (schemaExt.operationTypes) {\n for (var _i10 = 0, _schemaExt$operationT2 = schemaExt.operationTypes; _i10 < _schemaExt$operationT2.length; _i10++) {\n var _ref4 = _schemaExt$operationT2[_i10];\n var _operation = _ref4.operation;\n var _type = _ref4.type;\n operationTypes[_operation] = _type.name.value;\n }\n }\n } // Support both original legacy names and extended legacy names.\n\n\n var allowedLegacyNames = schemaConfig.allowedLegacyNames.concat(options && options.allowedLegacyNames || []); // Then produce and return a Schema with these types.\n\n return new _schema.GraphQLSchema({\n // Note: While this could make early assertions to get the correctly\n // typed values, that would throw immediately while type system\n // validation with validateSchema() will produce more actionable results.\n query: getMaybeTypeByName(operationTypes.query),\n mutation: getMaybeTypeByName(operationTypes.mutation),\n subscription: getMaybeTypeByName(operationTypes.subscription),\n types: (0, _objectValues.default)(typeMap),\n directives: getMergedDirectives(),\n astNode: schemaDef || schemaConfig.astNode,\n extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExts),\n allowedLegacyNames: allowedLegacyNames\n }); // Below are functions used for producing this schema that have closed over\n // this scope and have access to the schema, cache, and newly defined types.\n\n function replaceType(type) {\n if ((0, _definition.isListType)(type)) {\n return new _definition.GraphQLList(replaceType(type.ofType));\n } else if ((0, _definition.isNonNullType)(type)) {\n return new _definition.GraphQLNonNull(replaceType(type.ofType));\n }\n\n return replaceNamedType(type);\n }\n\n function replaceNamedType(type) {\n return typeMap[type.name];\n }\n\n function getMaybeTypeByName(typeName) {\n return typeName ? typeMap[typeName] : null;\n }\n\n function getMergedDirectives() {\n var existingDirectives = schema.getDirectives().map(extendDirective);\n existingDirectives || (0, _devAssert.default)(0, 'schema must have default directives');\n return existingDirectives.concat(directiveDefs.map(function (node) {\n return astBuilder.buildDirective(node);\n }));\n }\n\n function extendNamedType(type) {\n if ((0, _introspection.isIntrospectionType)(type) || (0, _scalars.isSpecifiedScalarType)(type)) {\n // Builtin types are not extended.\n return type;\n } else if ((0, _definition.isScalarType)(type)) {\n return extendScalarType(type);\n } else if ((0, _definition.isObjectType)(type)) {\n return extendObjectType(type);\n } else if ((0, _definition.isInterfaceType)(type)) {\n return extendInterfaceType(type);\n } else if ((0, _definition.isUnionType)(type)) {\n return extendUnionType(type);\n } else if ((0, _definition.isEnumType)(type)) {\n return extendEnumType(type);\n } else if ((0, _definition.isInputObjectType)(type)) {\n return extendInputObjectType(type);\n } // Not reachable. All possible types have been considered.\n\n\n /* istanbul ignore next */\n (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));\n }\n\n function extendDirective(directive) {\n var config = directive.toConfig();\n return new _directives.GraphQLDirective(_objectSpread({}, config, {\n args: (0, _mapValue.default)(config.args, extendArg)\n }));\n }\n\n function extendInputObjectType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n var fieldNodes = (0, _flatMap.default)(extensions, function (node) {\n return node.fields || [];\n });\n return new _definition.GraphQLInputObjectType(_objectSpread({}, config, {\n fields: function fields() {\n return _objectSpread({}, (0, _mapValue.default)(config.fields, function (field) {\n return _objectSpread({}, field, {\n type: replaceType(field.type)\n });\n }), {}, (0, _keyValMap.default)(fieldNodes, function (field) {\n return field.name.value;\n }, function (field) {\n return astBuilder.buildInputField(field);\n }));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendEnumType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[type.name] || [];\n var valueNodes = (0, _flatMap.default)(extensions, function (node) {\n return node.values || [];\n });\n return new _definition.GraphQLEnumType(_objectSpread({}, config, {\n values: _objectSpread({}, config.values, {}, (0, _keyValMap.default)(valueNodes, function (value) {\n return value.name.value;\n }, function (value) {\n return astBuilder.buildEnumValue(value);\n })),\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendScalarType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n return new _definition.GraphQLScalarType(_objectSpread({}, config, {\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendObjectType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n var interfaceNodes = (0, _flatMap.default)(extensions, function (node) {\n return node.interfaces || [];\n });\n var fieldNodes = (0, _flatMap.default)(extensions, function (node) {\n return node.fields || [];\n });\n return new _definition.GraphQLObjectType(_objectSpread({}, config, {\n interfaces: function interfaces() {\n return [].concat(type.getInterfaces().map(replaceNamedType), interfaceNodes.map(function (node) {\n return astBuilder.getNamedType(node);\n }));\n },\n fields: function fields() {\n return _objectSpread({}, (0, _mapValue.default)(config.fields, extendField), {}, (0, _keyValMap.default)(fieldNodes, function (node) {\n return node.name.value;\n }, function (node) {\n return astBuilder.buildField(node);\n }));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendInterfaceType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n var fieldNodes = (0, _flatMap.default)(extensions, function (node) {\n return node.fields || [];\n });\n return new _definition.GraphQLInterfaceType(_objectSpread({}, config, {\n fields: function fields() {\n return _objectSpread({}, (0, _mapValue.default)(config.fields, extendField), {}, (0, _keyValMap.default)(fieldNodes, function (node) {\n return node.name.value;\n }, function (node) {\n return astBuilder.buildField(node);\n }));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendUnionType(type) {\n var config = type.toConfig();\n var extensions = typeExtsMap[config.name] || [];\n var typeNodes = (0, _flatMap.default)(extensions, function (node) {\n return node.types || [];\n });\n return new _definition.GraphQLUnionType(_objectSpread({}, config, {\n types: function types() {\n return [].concat(type.getTypes().map(replaceNamedType), typeNodes.map(function (node) {\n return astBuilder.getNamedType(node);\n }));\n },\n extensionASTNodes: config.extensionASTNodes.concat(extensions)\n }));\n }\n\n function extendField(field) {\n return _objectSpread({}, field, {\n type: replaceType(field.type),\n args: (0, _mapValue.default)(field.args, extendArg)\n });\n }\n\n function extendArg(arg) {\n return _objectSpread({}, arg, {\n type: replaceType(arg.type)\n });\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/extendSchema.js\n// module id = 659\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findBreakingChanges = findBreakingChanges;\nexports.findDangerousChanges = findDangerousChanges;\nexports.DangerousChangeType = exports.BreakingChangeType = void 0;\n\nvar _objectValues = _interopRequireDefault(require(\"../polyfills/objectValues\"));\n\nvar _keyMap = _interopRequireDefault(require(\"../jsutils/keyMap\"));\n\nvar _inspect = _interopRequireDefault(require(\"../jsutils/inspect\"));\n\nvar _invariant = _interopRequireDefault(require(\"../jsutils/invariant\"));\n\nvar _printer = require(\"../language/printer\");\n\nvar _visitor = require(\"../language/visitor\");\n\nvar _definition = require(\"../type/definition\");\n\nvar _astFromValue = require(\"./astFromValue\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar BreakingChangeType = Object.freeze({\n TYPE_REMOVED: 'TYPE_REMOVED',\n TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND',\n TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION',\n VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM',\n REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED',\n INTERFACE_REMOVED_FROM_OBJECT: 'INTERFACE_REMOVED_FROM_OBJECT',\n FIELD_REMOVED: 'FIELD_REMOVED',\n FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND',\n REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED',\n ARG_REMOVED: 'ARG_REMOVED',\n ARG_CHANGED_KIND: 'ARG_CHANGED_KIND',\n DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED',\n DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED',\n REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED',\n DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED'\n});\nexports.BreakingChangeType = BreakingChangeType;\nvar DangerousChangeType = Object.freeze({\n VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM',\n TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION',\n OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED',\n OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED',\n INTERFACE_ADDED_TO_OBJECT: 'INTERFACE_ADDED_TO_OBJECT',\n ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE'\n});\nexports.DangerousChangeType = DangerousChangeType;\n\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of breaking changes covered by the other functions down below.\n */\nfunction findBreakingChanges(oldSchema, newSchema) {\n var breakingChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {\n return change.type in BreakingChangeType;\n });\n return breakingChanges;\n}\n/**\n * Given two schemas, returns an Array containing descriptions of all the types\n * of potentially dangerous changes covered by the other functions down below.\n */\n\n\nfunction findDangerousChanges(oldSchema, newSchema) {\n var dangerousChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {\n return change.type in DangerousChangeType;\n });\n return dangerousChanges;\n}\n\nfunction findSchemaChanges(oldSchema, newSchema) {\n return [].concat(findTypeChanges(oldSchema, newSchema), findDirectiveChanges(oldSchema, newSchema));\n}\n\nfunction findDirectiveChanges(oldSchema, newSchema) {\n var schemaChanges = [];\n var directivesDiff = diff(oldSchema.getDirectives(), newSchema.getDirectives());\n\n for (var _i2 = 0, _directivesDiff$remov2 = directivesDiff.removed; _i2 < _directivesDiff$remov2.length; _i2++) {\n var oldDirective = _directivesDiff$remov2[_i2];\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_REMOVED,\n description: \"\".concat(oldDirective.name, \" was removed.\")\n });\n }\n\n for (var _i4 = 0, _directivesDiff$persi2 = directivesDiff.persisted; _i4 < _directivesDiff$persi2.length; _i4++) {\n var _ref2 = _directivesDiff$persi2[_i4];\n var _oldDirective = _ref2[0];\n var newDirective = _ref2[1];\n var argsDiff = diff(_oldDirective.args, newDirective.args);\n\n for (var _i6 = 0, _argsDiff$added2 = argsDiff.added; _i6 < _argsDiff$added2.length; _i6++) {\n var newArg = _argsDiff$added2[_i6];\n\n if ((0, _definition.isRequiredArgument)(newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,\n description: \"A required arg \".concat(newArg.name, \" on directive \").concat(_oldDirective.name, \" was added.\")\n });\n }\n }\n\n for (var _i8 = 0, _argsDiff$removed2 = argsDiff.removed; _i8 < _argsDiff$removed2.length; _i8++) {\n var oldArg = _argsDiff$removed2[_i8];\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,\n description: \"\".concat(oldArg.name, \" was removed from \").concat(_oldDirective.name, \".\")\n });\n }\n\n for (var _i10 = 0, _oldDirective$locatio2 = _oldDirective.locations; _i10 < _oldDirective$locatio2.length; _i10++) {\n var location = _oldDirective$locatio2[_i10];\n\n if (newDirective.locations.indexOf(location) === -1) {\n schemaChanges.push({\n type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,\n description: \"\".concat(location, \" was removed from \").concat(_oldDirective.name, \".\")\n });\n }\n }\n }\n\n return schemaChanges;\n}\n\nfunction findTypeChanges(oldSchema, newSchema) {\n var schemaChanges = [];\n var typesDiff = diff((0, _objectValues.default)(oldSchema.getTypeMap()), (0, _objectValues.default)(newSchema.getTypeMap()));\n\n for (var _i12 = 0, _typesDiff$removed2 = typesDiff.removed; _i12 < _typesDiff$removed2.length; _i12++) {\n var oldType = _typesDiff$removed2[_i12];\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED,\n description: \"\".concat(oldType.name, \" was removed.\")\n });\n }\n\n for (var _i14 = 0, _typesDiff$persisted2 = typesDiff.persisted; _i14 < _typesDiff$persisted2.length; _i14++) {\n var _ref4 = _typesDiff$persisted2[_i14];\n var _oldType = _ref4[0];\n var newType = _ref4[1];\n\n if ((0, _definition.isEnumType)(_oldType) && (0, _definition.isEnumType)(newType)) {\n schemaChanges.push.apply(schemaChanges, findEnumTypeChanges(_oldType, newType));\n } else if ((0, _definition.isUnionType)(_oldType) && (0, _definition.isUnionType)(newType)) {\n schemaChanges.push.apply(schemaChanges, findUnionTypeChanges(_oldType, newType));\n } else if ((0, _definition.isInputObjectType)(_oldType) && (0, _definition.isInputObjectType)(newType)) {\n schemaChanges.push.apply(schemaChanges, findInputObjectTypeChanges(_oldType, newType));\n } else if ((0, _definition.isObjectType)(_oldType) && (0, _definition.isObjectType)(newType)) {\n schemaChanges.push.apply(schemaChanges, findObjectTypeChanges(_oldType, newType));\n } else if ((0, _definition.isInterfaceType)(_oldType) && (0, _definition.isInterfaceType)(newType)) {\n schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType));\n } else if (_oldType.constructor !== newType.constructor) {\n schemaChanges.push({\n type: BreakingChangeType.TYPE_CHANGED_KIND,\n description: \"\".concat(_oldType.name, \" changed from \") + \"\".concat(typeKindName(_oldType), \" to \").concat(typeKindName(newType), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findInputObjectTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var fieldsDiff = diff((0, _objectValues.default)(oldType.getFields()), (0, _objectValues.default)(newType.getFields()));\n\n for (var _i16 = 0, _fieldsDiff$added2 = fieldsDiff.added; _i16 < _fieldsDiff$added2.length; _i16++) {\n var newField = _fieldsDiff$added2[_i16];\n\n if ((0, _definition.isRequiredInputField)(newField)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,\n description: \"A required field \".concat(newField.name, \" on input type \").concat(oldType.name, \" was added.\")\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,\n description: \"An optional field \".concat(newField.name, \" on input type \").concat(oldType.name, \" was added.\")\n });\n }\n }\n\n for (var _i18 = 0, _fieldsDiff$removed2 = fieldsDiff.removed; _i18 < _fieldsDiff$removed2.length; _i18++) {\n var oldField = _fieldsDiff$removed2[_i18];\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" was removed.\")\n });\n }\n\n for (var _i20 = 0, _fieldsDiff$persisted2 = fieldsDiff.persisted; _i20 < _fieldsDiff$persisted2.length; _i20++) {\n var _ref6 = _fieldsDiff$persisted2[_i20];\n var _oldField = _ref6[0];\n var _newField = _ref6[1];\n var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldField.type, _newField.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(_oldField.name, \" changed type from \") + \"\".concat(String(_oldField.type), \" to \").concat(String(_newField.type), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findUnionTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());\n\n for (var _i22 = 0, _possibleTypesDiff$ad2 = possibleTypesDiff.added; _i22 < _possibleTypesDiff$ad2.length; _i22++) {\n var newPossibleType = _possibleTypesDiff$ad2[_i22];\n schemaChanges.push({\n type: DangerousChangeType.TYPE_ADDED_TO_UNION,\n description: \"\".concat(newPossibleType.name, \" was added to union type \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i24 = 0, _possibleTypesDiff$re2 = possibleTypesDiff.removed; _i24 < _possibleTypesDiff$re2.length; _i24++) {\n var oldPossibleType = _possibleTypesDiff$re2[_i24];\n schemaChanges.push({\n type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,\n description: \"\".concat(oldPossibleType.name, \" was removed from union type \").concat(oldType.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findEnumTypeChanges(oldType, newType) {\n var schemaChanges = [];\n var valuesDiff = diff(oldType.getValues(), newType.getValues());\n\n for (var _i26 = 0, _valuesDiff$added2 = valuesDiff.added; _i26 < _valuesDiff$added2.length; _i26++) {\n var newValue = _valuesDiff$added2[_i26];\n schemaChanges.push({\n type: DangerousChangeType.VALUE_ADDED_TO_ENUM,\n description: \"\".concat(newValue.name, \" was added to enum type \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i28 = 0, _valuesDiff$removed2 = valuesDiff.removed; _i28 < _valuesDiff$removed2.length; _i28++) {\n var oldValue = _valuesDiff$removed2[_i28];\n schemaChanges.push({\n type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,\n description: \"\".concat(oldValue.name, \" was removed from enum type \").concat(oldType.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findObjectTypeChanges(oldType, newType) {\n var schemaChanges = findFieldChanges(oldType, newType);\n var interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());\n\n for (var _i30 = 0, _interfacesDiff$added2 = interfacesDiff.added; _i30 < _interfacesDiff$added2.length; _i30++) {\n var newInterface = _interfacesDiff$added2[_i30];\n schemaChanges.push({\n type: DangerousChangeType.INTERFACE_ADDED_TO_OBJECT,\n description: \"\".concat(newInterface.name, \" added to interfaces implemented by \").concat(oldType.name, \".\")\n });\n }\n\n for (var _i32 = 0, _interfacesDiff$remov2 = interfacesDiff.removed; _i32 < _interfacesDiff$remov2.length; _i32++) {\n var oldInterface = _interfacesDiff$remov2[_i32];\n schemaChanges.push({\n type: BreakingChangeType.INTERFACE_REMOVED_FROM_OBJECT,\n description: \"\".concat(oldType.name, \" no longer implements interface \").concat(oldInterface.name, \".\")\n });\n }\n\n return schemaChanges;\n}\n\nfunction findFieldChanges(oldType, newType) {\n var schemaChanges = [];\n var fieldsDiff = diff((0, _objectValues.default)(oldType.getFields()), (0, _objectValues.default)(newType.getFields()));\n\n for (var _i34 = 0, _fieldsDiff$removed4 = fieldsDiff.removed; _i34 < _fieldsDiff$removed4.length; _i34++) {\n var oldField = _fieldsDiff$removed4[_i34];\n schemaChanges.push({\n type: BreakingChangeType.FIELD_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" was removed.\")\n });\n }\n\n for (var _i36 = 0, _fieldsDiff$persisted4 = fieldsDiff.persisted; _i36 < _fieldsDiff$persisted4.length; _i36++) {\n var _ref8 = _fieldsDiff$persisted4[_i36];\n var _oldField2 = _ref8[0];\n var newField = _ref8[1];\n schemaChanges.push.apply(schemaChanges, findArgChanges(oldType, _oldField2, newField));\n var isSafe = isChangeSafeForObjectOrInterfaceField(_oldField2.type, newField.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.FIELD_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(_oldField2.name, \" changed type from \") + \"\".concat(String(_oldField2.type), \" to \").concat(String(newField.type), \".\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction findArgChanges(oldType, oldField, newField) {\n var schemaChanges = [];\n var argsDiff = diff(oldField.args, newField.args);\n\n for (var _i38 = 0, _argsDiff$removed4 = argsDiff.removed; _i38 < _argsDiff$removed4.length; _i38++) {\n var oldArg = _argsDiff$removed4[_i38];\n schemaChanges.push({\n type: BreakingChangeType.ARG_REMOVED,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(oldArg.name, \" was removed.\")\n });\n }\n\n for (var _i40 = 0, _argsDiff$persisted2 = argsDiff.persisted; _i40 < _argsDiff$persisted2.length; _i40++) {\n var _ref10 = _argsDiff$persisted2[_i40];\n var _oldArg = _ref10[0];\n var newArg = _ref10[1];\n var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldArg.type, newArg.type);\n\n if (!isSafe) {\n schemaChanges.push({\n type: BreakingChangeType.ARG_CHANGED_KIND,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" has changed type from \") + \"\".concat(String(_oldArg.type), \" to \").concat(String(newArg.type), \".\")\n });\n } else if (_oldArg.defaultValue !== undefined) {\n if (newArg.defaultValue === undefined) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" defaultValue was removed.\")\n });\n } else {\n // Since we looking only for client's observable changes we should\n // compare default values in the same representation as they are\n // represented inside introspection.\n var oldValueStr = stringifyValue(_oldArg.defaultValue, _oldArg.type);\n var newValueStr = stringifyValue(newArg.defaultValue, newArg.type);\n\n if (oldValueStr !== newValueStr) {\n schemaChanges.push({\n type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,\n description: \"\".concat(oldType.name, \".\").concat(oldField.name, \" arg \").concat(_oldArg.name, \" has changed defaultValue from \").concat(oldValueStr, \" to \").concat(newValueStr, \".\")\n });\n }\n }\n }\n }\n\n for (var _i42 = 0, _argsDiff$added4 = argsDiff.added; _i42 < _argsDiff$added4.length; _i42++) {\n var _newArg = _argsDiff$added4[_i42];\n\n if ((0, _definition.isRequiredArgument)(_newArg)) {\n schemaChanges.push({\n type: BreakingChangeType.REQUIRED_ARG_ADDED,\n description: \"A required arg \".concat(_newArg.name, \" on \").concat(oldType.name, \".\").concat(oldField.name, \" was added.\")\n });\n } else {\n schemaChanges.push({\n type: DangerousChangeType.OPTIONAL_ARG_ADDED,\n description: \"An optional arg \".concat(_newArg.name, \" on \").concat(oldType.name, \".\").concat(oldField.name, \" was added.\")\n });\n }\n }\n\n return schemaChanges;\n}\n\nfunction isChangeSafeForObjectOrInterfaceField(oldType, newType) {\n if ((0, _definition.isListType)(oldType)) {\n return (// if they're both lists, make sure the underlying types are compatible\n (0, _definition.isListType)(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) || // moving from nullable to non-null of the same underlying type is safe\n (0, _definition.isNonNullType)(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)\n );\n }\n\n if ((0, _definition.isNonNullType)(oldType)) {\n // if they're both non-null, make sure the underlying types are compatible\n return (0, _definition.isNonNullType)(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType);\n }\n\n return (// if they're both named types, see if their names are equivalent\n (0, _definition.isNamedType)(newType) && oldType.name === newType.name || // moving from nullable to non-null of the same underlying type is safe\n (0, _definition.isNonNullType)(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)\n );\n}\n\nfunction isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {\n if ((0, _definition.isListType)(oldType)) {\n // if they're both lists, make sure the underlying types are compatible\n return (0, _definition.isListType)(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType);\n }\n\n if ((0, _definition.isNonNullType)(oldType)) {\n return (// if they're both non-null, make sure the underlying types are\n // compatible\n (0, _definition.isNonNullType)(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) || // moving from non-null to nullable of the same underlying type is safe\n !(0, _definition.isNonNullType)(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)\n );\n } // if they're both named types, see if their names are equivalent\n\n\n return (0, _definition.isNamedType)(newType) && oldType.name === newType.name;\n}\n\nfunction typeKindName(type) {\n if ((0, _definition.isScalarType)(type)) {\n return 'a Scalar type';\n }\n\n if ((0, _definition.isObjectType)(type)) {\n return 'an Object type';\n }\n\n if ((0, _definition.isInterfaceType)(type)) {\n return 'an Interface type';\n }\n\n if ((0, _definition.isUnionType)(type)) {\n return 'a Union type';\n }\n\n if ((0, _definition.isEnumType)(type)) {\n return 'an Enum type';\n }\n\n /* istanbul ignore else */\n if ((0, _definition.isInputObjectType)(type)) {\n return 'an Input type';\n } // Not reachable. All possible named types have been considered.\n\n\n /* istanbul ignore next */\n (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));\n}\n\nfunction stringifyValue(value, type) {\n var ast = (0, _astFromValue.astFromValue)(value, type);\n\n /* istanbul ignore next */\n ast != null || (0, _invariant.default)(0);\n var sortedAST = (0, _visitor.visit)(ast, {\n ObjectValue: function ObjectValue(objectNode) {\n var fields = [].concat(objectNode.fields).sort(function (fieldA, fieldB) {\n return fieldA.name.value.localeCompare(fieldB.name.value);\n });\n return _objectSpread({}, objectNode, {\n fields: fields\n });\n }\n });\n return (0, _printer.print)(sortedAST);\n}\n\nfunction diff(oldArray, newArray) {\n var added = [];\n var removed = [];\n var persisted = [];\n var oldMap = (0, _keyMap.default)(oldArray, function (_ref11) {\n var name = _ref11.name;\n return name;\n });\n var newMap = (0, _keyMap.default)(newArray, function (_ref12) {\n var name = _ref12.name;\n return name;\n });\n\n for (var _i44 = 0; _i44 < oldArray.length; _i44++) {\n var oldItem = oldArray[_i44];\n var newItem = newMap[oldItem.name];\n\n if (newItem === undefined) {\n removed.push(oldItem);\n } else {\n persisted.push([oldItem, newItem]);\n }\n }\n\n for (var _i46 = 0; _i46 < newArray.length; _i46++) {\n var _newItem = newArray[_i46];\n\n if (oldMap[_newItem.name] === undefined) {\n added.push(_newItem);\n }\n }\n\n return {\n added: added,\n persisted: persisted,\n removed: removed\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/findBreakingChanges.js\n// module id = 660\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findDeprecatedUsages = findDeprecatedUsages;\n\nvar _GraphQLError = require(\"../error/GraphQLError\");\n\nvar _visitor = require(\"../language/visitor\");\n\nvar _definition = require(\"../type/definition\");\n\nvar _TypeInfo = require(\"./TypeInfo\");\n\n/**\n * A validation rule which reports deprecated usages.\n *\n * Returns a list of GraphQLError instances describing each deprecated use.\n */\nfunction findDeprecatedUsages(schema, ast) {\n var errors = [];\n var typeInfo = new _TypeInfo.TypeInfo(schema);\n (0, _visitor.visit)(ast, (0, _visitor.visitWithTypeInfo)(typeInfo, {\n Field: function Field(node) {\n var fieldDef = typeInfo.getFieldDef();\n\n if (fieldDef && fieldDef.isDeprecated) {\n var parentType = typeInfo.getParentType();\n\n if (parentType) {\n var reason = fieldDef.deprecationReason;\n errors.push(new _GraphQLError.GraphQLError(\"The field \".concat(parentType.name, \".\").concat(fieldDef.name, \" is deprecated.\") + (reason ? ' ' + reason : ''), node));\n }\n }\n },\n EnumValue: function EnumValue(node) {\n var enumVal = typeInfo.getEnumValue();\n\n if (enumVal && enumVal.isDeprecated) {\n var type = (0, _definition.getNamedType)(typeInfo.getInputType());\n\n if (type) {\n var reason = enumVal.deprecationReason;\n errors.push(new _GraphQLError.GraphQLError(\"The enum value \".concat(type.name, \".\").concat(enumVal.name, \" is deprecated.\") + (reason ? ' ' + reason : ''), node));\n }\n }\n }\n }));\n return errors;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/findDeprecatedUsages.js\n// module id = 661\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getOperationAST = getOperationAST;\n\nvar _kinds = require(\"../language/kinds\");\n\n/**\n * Returns an operation AST given a document AST and optionally an operation\n * name. If a name is not provided, an operation is only returned if only one is\n * provided in the document.\n */\nfunction getOperationAST(documentAST, operationName) {\n var operation = null;\n\n for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {\n var definition = _documentAST$definiti2[_i2];\n\n if (definition.kind === _kinds.Kind.OPERATION_DEFINITION) {\n if (!operationName) {\n // If no operation name was provided, only return an Operation if there\n // is one defined in the document. Upon encountering the second, return\n // null.\n if (operation) {\n return null;\n }\n\n operation = definition;\n } else if (definition.name && definition.name.value === operationName) {\n return definition;\n }\n }\n }\n\n return operation;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/getOperationAST.js\n// module id = 662\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getIntrospectionQuery\", {\n enumerable: true,\n get: function get() {\n return _introspectionQuery.getIntrospectionQuery;\n }\n});\nObject.defineProperty(exports, \"introspectionQuery\", {\n enumerable: true,\n get: function get() {\n return _introspectionQuery.introspectionQuery;\n }\n});\nObject.defineProperty(exports, \"getOperationAST\", {\n enumerable: true,\n get: function get() {\n return _getOperationAST.getOperationAST;\n }\n});\nObject.defineProperty(exports, \"getOperationRootType\", {\n enumerable: true,\n get: function get() {\n return _getOperationRootType.getOperationRootType;\n }\n});\nObject.defineProperty(exports, \"introspectionFromSchema\", {\n enumerable: true,\n get: function get() {\n return _introspectionFromSchema.introspectionFromSchema;\n }\n});\nObject.defineProperty(exports, \"buildClientSchema\", {\n enumerable: true,\n get: function get() {\n return _buildClientSchema.buildClientSchema;\n }\n});\nObject.defineProperty(exports, \"buildASTSchema\", {\n enumerable: true,\n get: function get() {\n return _buildASTSchema.buildASTSchema;\n }\n});\nObject.defineProperty(exports, \"buildSchema\", {\n enumerable: true,\n get: function get() {\n return _buildASTSchema.buildSchema;\n }\n});\nObject.defineProperty(exports, \"getDescription\", {\n enumerable: true,\n get: function get() {\n return _buildASTSchema.getDescription;\n }\n});\nObject.defineProperty(exports, \"extendSchema\", {\n enumerable: true,\n get: function get() {\n return _extendSchema.extendSchema;\n }\n});\nObject.defineProperty(exports, \"lexicographicSortSchema\", {\n enumerable: true,\n get: function get() {\n return _lexicographicSortSchema.lexicographicSortSchema;\n }\n});\nObject.defineProperty(exports, \"printSchema\", {\n enumerable: true,\n get: function get() {\n return _schemaPrinter.printSchema;\n }\n});\nObject.defineProperty(exports, \"printType\", {\n enumerable: true,\n get: function get() {\n return _schemaPrinter.printType;\n }\n});\nObject.defineProperty(exports, \"printIntrospectionSchema\", {\n enumerable: true,\n get: function get() {\n return _schemaPrinter.printIntrospectionSchema;\n }\n});\nObject.defineProperty(exports, \"typeFromAST\", {\n enumerable: true,\n get: function get() {\n return _typeFromAST.typeFromAST;\n }\n});\nObject.defineProperty(exports, \"valueFromAST\", {\n enumerable: true,\n get: function get() {\n return _valueFromAST.valueFromAST;\n }\n});\nObject.defineProperty(exports, \"valueFromASTUntyped\", {\n enumerable: true,\n get: function get() {\n return _valueFromASTUntyped.valueFromASTUntyped;\n }\n});\nObject.defineProperty(exports, \"astFromValue\", {\n enumerable: true,\n get: function get() {\n return _astFromValue.astFromValue;\n }\n});\nObject.defineProperty(exports, \"TypeInfo\", {\n enumerable: true,\n get: function get() {\n return _TypeInfo.TypeInfo;\n }\n});\nObject.defineProperty(exports, \"coerceInputValue\", {\n enumerable: true,\n get: function get() {\n return _coerceInputValue.coerceInputValue;\n }\n});\nObject.defineProperty(exports, \"coerceValue\", {\n enumerable: true,\n get: function get() {\n return _coerceValue.coerceValue;\n }\n});\nObject.defineProperty(exports, \"isValidJSValue\", {\n enumerable: true,\n get: function get() {\n return _isValidJSValue.isValidJSValue;\n }\n});\nObject.defineProperty(exports, \"isValidLiteralValue\", {\n enumerable: true,\n get: function get() {\n return _isValidLiteralValue.isValidLiteralValue;\n }\n});\nObject.defineProperty(exports, \"concatAST\", {\n enumerable: true,\n get: function get() {\n return _concatAST.concatAST;\n }\n});\nObject.defineProperty(exports, \"separateOperations\", {\n enumerable: true,\n get: function get() {\n return _separateOperations.separateOperations;\n }\n});\nObject.defineProperty(exports, \"stripIgnoredCharacters\", {\n enumerable: true,\n get: function get() {\n return _stripIgnoredCharacters.stripIgnoredCharacters;\n }\n});\nObject.defineProperty(exports, \"isEqualType\", {\n enumerable: true,\n get: function get() {\n return _typeComparators.isEqualType;\n }\n});\nObject.defineProperty(exports, \"isTypeSubTypeOf\", {\n enumerable: true,\n get: function get() {\n return _typeComparators.isTypeSubTypeOf;\n }\n});\nObject.defineProperty(exports, \"doTypesOverlap\", {\n enumerable: true,\n get: function get() {\n return _typeComparators.doTypesOverlap;\n }\n});\nObject.defineProperty(exports, \"assertValidName\", {\n enumerable: true,\n get: function get() {\n return _assertValidName.assertValidName;\n }\n});\nObject.defineProperty(exports, \"isValidNameError\", {\n enumerable: true,\n get: function get() {\n return _assertValidName.isValidNameError;\n }\n});\nObject.defineProperty(exports, \"BreakingChangeType\", {\n enumerable: true,\n get: function get() {\n return _findBreakingChanges.BreakingChangeType;\n }\n});\nObject.defineProperty(exports, \"DangerousChangeType\", {\n enumerable: true,\n get: function get() {\n return _findBreakingChanges.DangerousChangeType;\n }\n});\nObject.defineProperty(exports, \"findBreakingChanges\", {\n enumerable: true,\n get: function get() {\n return _findBreakingChanges.findBreakingChanges;\n }\n});\nObject.defineProperty(exports, \"findDangerousChanges\", {\n enumerable: true,\n get: function get() {\n return _findBreakingChanges.findDangerousChanges;\n }\n});\nObject.defineProperty(exports, \"findDeprecatedUsages\", {\n enumerable: true,\n get: function get() {\n return _findDeprecatedUsages.findDeprecatedUsages;\n }\n});\n\nvar _introspectionQuery = require(\"./introspectionQuery\");\n\nvar _getOperationAST = require(\"./getOperationAST\");\n\nvar _getOperationRootType = require(\"./getOperationRootType\");\n\nvar _introspectionFromSchema = require(\"./introspectionFromSchema\");\n\nvar _buildClientSchema = require(\"./buildClientSchema\");\n\nvar _buildASTSchema = require(\"./buildASTSchema\");\n\nvar _extendSchema = require(\"./extendSchema\");\n\nvar _lexicographicSortSchema = require(\"./lexicographicSortSchema\");\n\nvar _schemaPrinter = require(\"./schemaPrinter\");\n\nvar _typeFromAST = require(\"./typeFromAST\");\n\nvar _valueFromAST = require(\"./valueFromAST\");\n\nvar _valueFromASTUntyped = require(\"./valueFromASTUntyped\");\n\nvar _astFromValue = require(\"./astFromValue\");\n\nvar _TypeInfo = require(\"./TypeInfo\");\n\nvar _coerceInputValue = require(\"./coerceInputValue\");\n\nvar _coerceValue = require(\"./coerceValue\");\n\nvar _isValidJSValue = require(\"./isValidJSValue\");\n\nvar _isValidLiteralValue = require(\"./isValidLiteralValue\");\n\nvar _concatAST = require(\"./concatAST\");\n\nvar _separateOperations = require(\"./separateOperations\");\n\nvar _stripIgnoredCharacters = require(\"./stripIgnoredCharacters\");\n\nvar _typeComparators = require(\"./typeComparators\");\n\nvar _assertValidName = require(\"./assertValidName\");\n\nvar _findBreakingChanges = require(\"./findBreakingChanges\");\n\nvar _findDeprecatedUsages = require(\"./findDeprecatedUsages\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/index.js\n// module id = 663\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.introspectionFromSchema = introspectionFromSchema;\n\nvar _invariant = _interopRequireDefault(require(\"../jsutils/invariant\"));\n\nvar _isPromise = _interopRequireDefault(require(\"../jsutils/isPromise\"));\n\nvar _parser = require(\"../language/parser\");\n\nvar _execute = require(\"../execution/execute\");\n\nvar _introspectionQuery = require(\"./introspectionQuery\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Build an IntrospectionQuery from a GraphQLSchema\n *\n * IntrospectionQuery is useful for utilities that care about type and field\n * relationships, but do not need to traverse through those relationships.\n *\n * This is the inverse of buildClientSchema. The primary use case is outside\n * of the server context, for instance when doing schema comparisons.\n */\nfunction introspectionFromSchema(schema, options) {\n var queryAST = (0, _parser.parse)((0, _introspectionQuery.getIntrospectionQuery)(options));\n var result = (0, _execute.execute)(schema, queryAST);\n\n /* istanbul ignore next */\n !(0, _isPromise.default)(result) && !result.errors && result.data || (0, _invariant.default)(0);\n return result.data;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/introspectionFromSchema.js\n// module id = 664\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isValidJSValue = isValidJSValue;\n\nvar _coerceValue = require(\"./coerceValue\");\n\n/* istanbul ignore file */\n\n/**\n * Deprecated. Use coerceInputValue() directly for richer information.\n *\n * This function will be removed in v15\n */\nfunction isValidJSValue(value, type) {\n var errors = (0, _coerceValue.coerceValue)(value, type).errors;\n return errors ? errors.map(function (error) {\n return error.message;\n }) : [];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/isValidJSValue.js\n// module id = 665\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isValidLiteralValue = isValidLiteralValue;\n\nvar _kinds = require(\"../language/kinds\");\n\nvar _visitor = require(\"../language/visitor\");\n\nvar _ValuesOfCorrectType = require(\"../validation/rules/ValuesOfCorrectType\");\n\nvar _ValidationContext = require(\"../validation/ValidationContext\");\n\nvar _schema = require(\"../type/schema\");\n\nvar _TypeInfo = require(\"./TypeInfo\");\n\n/**\n * Utility which determines if a value literal node is valid for an input type.\n *\n * Deprecated. Rely on validation for documents containing literal values.\n *\n * This function will be removed in v15\n */\nfunction isValidLiteralValue(type, valueNode) {\n var emptySchema = new _schema.GraphQLSchema({});\n var emptyDoc = {\n kind: _kinds.Kind.DOCUMENT,\n definitions: []\n };\n var typeInfo = new _TypeInfo.TypeInfo(emptySchema, undefined, type);\n var context = new _ValidationContext.ValidationContext(emptySchema, emptyDoc, typeInfo);\n var visitor = (0, _ValuesOfCorrectType.ValuesOfCorrectType)(context);\n (0, _visitor.visit)(valueNode, (0, _visitor.visitWithTypeInfo)(typeInfo, visitor));\n return context.getErrors();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/isValidLiteralValue.js\n// module id = 666\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.lexicographicSortSchema = lexicographicSortSchema;\n\nvar _objectValues = _interopRequireDefault(require(\"../polyfills/objectValues\"));\n\nvar _inspect = _interopRequireDefault(require(\"../jsutils/inspect\"));\n\nvar _invariant = _interopRequireDefault(require(\"../jsutils/invariant\"));\n\nvar _keyValMap = _interopRequireDefault(require(\"../jsutils/keyValMap\"));\n\nvar _schema = require(\"../type/schema\");\n\nvar _directives = require(\"../type/directives\");\n\nvar _introspection = require(\"../type/introspection\");\n\nvar _definition = require(\"../type/definition\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Sort GraphQLSchema.\n */\nfunction lexicographicSortSchema(schema) {\n var schemaConfig = schema.toConfig();\n var typeMap = (0, _keyValMap.default)(sortByName(schemaConfig.types), function (type) {\n return type.name;\n }, sortNamedType);\n return new _schema.GraphQLSchema(_objectSpread({}, schemaConfig, {\n types: (0, _objectValues.default)(typeMap),\n directives: sortByName(schemaConfig.directives).map(sortDirective),\n query: replaceMaybeType(schemaConfig.query),\n mutation: replaceMaybeType(schemaConfig.mutation),\n subscription: replaceMaybeType(schemaConfig.subscription)\n }));\n\n function replaceType(type) {\n if ((0, _definition.isListType)(type)) {\n return new _definition.GraphQLList(replaceType(type.ofType));\n } else if ((0, _definition.isNonNullType)(type)) {\n return new _definition.GraphQLNonNull(replaceType(type.ofType));\n }\n\n return replaceNamedType(type);\n }\n\n function replaceNamedType(type) {\n return typeMap[type.name];\n }\n\n function replaceMaybeType(maybeType) {\n return maybeType && replaceNamedType(maybeType);\n }\n\n function sortDirective(directive) {\n var config = directive.toConfig();\n return new _directives.GraphQLDirective(_objectSpread({}, config, {\n locations: sortBy(config.locations, function (x) {\n return x;\n }),\n args: sortArgs(config.args)\n }));\n }\n\n function sortArgs(args) {\n return sortObjMap(args, function (arg) {\n return _objectSpread({}, arg, {\n type: replaceType(arg.type)\n });\n });\n }\n\n function sortFields(fieldsMap) {\n return sortObjMap(fieldsMap, function (field) {\n return _objectSpread({}, field, {\n type: replaceType(field.type),\n args: sortArgs(field.args)\n });\n });\n }\n\n function sortInputFields(fieldsMap) {\n return sortObjMap(fieldsMap, function (field) {\n return _objectSpread({}, field, {\n type: replaceType(field.type)\n });\n });\n }\n\n function sortTypes(arr) {\n return sortByName(arr).map(replaceNamedType);\n }\n\n function sortNamedType(type) {\n if ((0, _definition.isScalarType)(type) || (0, _introspection.isIntrospectionType)(type)) {\n return type;\n } else if ((0, _definition.isObjectType)(type)) {\n var config = type.toConfig();\n return new _definition.GraphQLObjectType(_objectSpread({}, config, {\n interfaces: function interfaces() {\n return sortTypes(config.interfaces);\n },\n fields: function fields() {\n return sortFields(config.fields);\n }\n }));\n } else if ((0, _definition.isInterfaceType)(type)) {\n var _config = type.toConfig();\n\n return new _definition.GraphQLInterfaceType(_objectSpread({}, _config, {\n fields: function fields() {\n return sortFields(_config.fields);\n }\n }));\n } else if ((0, _definition.isUnionType)(type)) {\n var _config2 = type.toConfig();\n\n return new _definition.GraphQLUnionType(_objectSpread({}, _config2, {\n types: function types() {\n return sortTypes(_config2.types);\n }\n }));\n } else if ((0, _definition.isEnumType)(type)) {\n var _config3 = type.toConfig();\n\n return new _definition.GraphQLEnumType(_objectSpread({}, _config3, {\n values: sortObjMap(_config3.values)\n }));\n } else if ((0, _definition.isInputObjectType)(type)) {\n var _config4 = type.toConfig();\n\n return new _definition.GraphQLInputObjectType(_objectSpread({}, _config4, {\n fields: function fields() {\n return sortInputFields(_config4.fields);\n }\n }));\n } // Not reachable. All possible types have been considered.\n\n\n /* istanbul ignore next */\n (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));\n }\n}\n\nfunction sortObjMap(map, sortValueFn) {\n var sortedMap = Object.create(null);\n var sortedKeys = sortBy(Object.keys(map), function (x) {\n return x;\n });\n\n for (var _i2 = 0; _i2 < sortedKeys.length; _i2++) {\n var key = sortedKeys[_i2];\n var value = map[key];\n sortedMap[key] = sortValueFn ? sortValueFn(value) : value;\n }\n\n return sortedMap;\n}\n\nfunction sortByName(array) {\n return sortBy(array, function (obj) {\n return obj.name;\n });\n}\n\nfunction sortBy(array, mapToKey) {\n return array.slice().sort(function (obj1, obj2) {\n var key1 = mapToKey(obj1);\n var key2 = mapToKey(obj2);\n return key1.localeCompare(key2);\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/lexicographicSortSchema.js\n// module id = 667\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.printSchema = printSchema;\nexports.printIntrospectionSchema = printIntrospectionSchema;\nexports.printType = printType;\n\nvar _flatMap = _interopRequireDefault(require(\"../polyfills/flatMap\"));\n\nvar _objectValues = _interopRequireDefault(require(\"../polyfills/objectValues\"));\n\nvar _inspect = _interopRequireDefault(require(\"../jsutils/inspect\"));\n\nvar _invariant = _interopRequireDefault(require(\"../jsutils/invariant\"));\n\nvar _printer = require(\"../language/printer\");\n\nvar _blockString = require(\"../language/blockString\");\n\nvar _introspection = require(\"../type/introspection\");\n\nvar _scalars = require(\"../type/scalars\");\n\nvar _directives = require(\"../type/directives\");\n\nvar _definition = require(\"../type/definition\");\n\nvar _astFromValue = require(\"../utilities/astFromValue\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Accepts options as a second argument:\n *\n * - commentDescriptions:\n * Provide true to use preceding comments as the description.\n *\n */\nfunction printSchema(schema, options) {\n return printFilteredSchema(schema, function (n) {\n return !(0, _directives.isSpecifiedDirective)(n);\n }, isDefinedType, options);\n}\n\nfunction printIntrospectionSchema(schema, options) {\n return printFilteredSchema(schema, _directives.isSpecifiedDirective, _introspection.isIntrospectionType, options);\n}\n\nfunction isDefinedType(type) {\n return !(0, _scalars.isSpecifiedScalarType)(type) && !(0, _introspection.isIntrospectionType)(type);\n}\n\nfunction printFilteredSchema(schema, directiveFilter, typeFilter, options) {\n var directives = schema.getDirectives().filter(directiveFilter);\n var typeMap = schema.getTypeMap();\n var types = (0, _objectValues.default)(typeMap).sort(function (type1, type2) {\n return type1.name.localeCompare(type2.name);\n }).filter(typeFilter);\n return [printSchemaDefinition(schema)].concat(directives.map(function (directive) {\n return printDirective(directive, options);\n }), types.map(function (type) {\n return printType(type, options);\n })).filter(Boolean).join('\\n\\n') + '\\n';\n}\n\nfunction printSchemaDefinition(schema) {\n if (isSchemaOfCommonNames(schema)) {\n return;\n }\n\n var operationTypes = [];\n var queryType = schema.getQueryType();\n\n if (queryType) {\n operationTypes.push(\" query: \".concat(queryType.name));\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType) {\n operationTypes.push(\" mutation: \".concat(mutationType.name));\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType) {\n operationTypes.push(\" subscription: \".concat(subscriptionType.name));\n }\n\n return \"schema {\\n\".concat(operationTypes.join('\\n'), \"\\n}\");\n}\n/**\n * GraphQL schema define root types for each type of operation. These types are\n * the same as any other type and can be named in any manner, however there is\n * a common naming convention:\n *\n * schema {\n * query: Query\n * mutation: Mutation\n * }\n *\n * When using this naming convention, the schema description can be omitted.\n */\n\n\nfunction isSchemaOfCommonNames(schema) {\n var queryType = schema.getQueryType();\n\n if (queryType && queryType.name !== 'Query') {\n return false;\n }\n\n var mutationType = schema.getMutationType();\n\n if (mutationType && mutationType.name !== 'Mutation') {\n return false;\n }\n\n var subscriptionType = schema.getSubscriptionType();\n\n if (subscriptionType && subscriptionType.name !== 'Subscription') {\n return false;\n }\n\n return true;\n}\n\nfunction printType(type, options) {\n if ((0, _definition.isScalarType)(type)) {\n return printScalar(type, options);\n } else if ((0, _definition.isObjectType)(type)) {\n return printObject(type, options);\n } else if ((0, _definition.isInterfaceType)(type)) {\n return printInterface(type, options);\n } else if ((0, _definition.isUnionType)(type)) {\n return printUnion(type, options);\n } else if ((0, _definition.isEnumType)(type)) {\n return printEnum(type, options);\n } else if ((0, _definition.isInputObjectType)(type)) {\n return printInputObject(type, options);\n } // Not reachable. All possible types have been considered.\n\n\n /* istanbul ignore next */\n (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));\n}\n\nfunction printScalar(type, options) {\n return printDescription(options, type) + \"scalar \".concat(type.name);\n}\n\nfunction printObject(type, options) {\n var interfaces = type.getInterfaces();\n var implementedInterfaces = interfaces.length ? ' implements ' + interfaces.map(function (i) {\n return i.name;\n }).join(' & ') : '';\n return printDescription(options, type) + \"type \".concat(type.name).concat(implementedInterfaces) + printFields(options, type);\n}\n\nfunction printInterface(type, options) {\n return printDescription(options, type) + \"interface \".concat(type.name) + printFields(options, type);\n}\n\nfunction printUnion(type, options) {\n var types = type.getTypes();\n var possibleTypes = types.length ? ' = ' + types.join(' | ') : '';\n return printDescription(options, type) + 'union ' + type.name + possibleTypes;\n}\n\nfunction printEnum(type, options) {\n var values = type.getValues().map(function (value, i) {\n return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value);\n });\n return printDescription(options, type) + \"enum \".concat(type.name) + printBlock(values);\n}\n\nfunction printInputObject(type, options) {\n var fields = (0, _objectValues.default)(type.getFields()).map(function (f, i) {\n return printDescription(options, f, ' ', !i) + ' ' + printInputValue(f);\n });\n return printDescription(options, type) + \"input \".concat(type.name) + printBlock(fields);\n}\n\nfunction printFields(options, type) {\n var fields = (0, _objectValues.default)(type.getFields()).map(function (f, i) {\n return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f);\n });\n return printBlock(fields);\n}\n\nfunction printBlock(items) {\n return items.length !== 0 ? ' {\\n' + items.join('\\n') + '\\n}' : '';\n}\n\nfunction printArgs(options, args) {\n var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n if (args.length === 0) {\n return '';\n } // If every arg does not have a description, print them on one line.\n\n\n if (args.every(function (arg) {\n return !arg.description;\n })) {\n return '(' + args.map(printInputValue).join(', ') + ')';\n }\n\n return '(\\n' + args.map(function (arg, i) {\n return printDescription(options, arg, ' ' + indentation, !i) + ' ' + indentation + printInputValue(arg);\n }).join('\\n') + '\\n' + indentation + ')';\n}\n\nfunction printInputValue(arg) {\n var defaultAST = (0, _astFromValue.astFromValue)(arg.defaultValue, arg.type);\n var argDecl = arg.name + ': ' + String(arg.type);\n\n if (defaultAST) {\n argDecl += \" = \".concat((0, _printer.print)(defaultAST));\n }\n\n return argDecl;\n}\n\nfunction printDirective(directive, options) {\n return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + (directive.isRepeatable ? ' repeatable' : '') + ' on ' + directive.locations.join(' | ');\n}\n\nfunction printDeprecated(fieldOrEnumVal) {\n if (!fieldOrEnumVal.isDeprecated) {\n return '';\n }\n\n var reason = fieldOrEnumVal.deprecationReason;\n var reasonAST = (0, _astFromValue.astFromValue)(reason, _scalars.GraphQLString);\n\n if (reasonAST && reason !== '' && reason !== _directives.DEFAULT_DEPRECATION_REASON) {\n return ' @deprecated(reason: ' + (0, _printer.print)(reasonAST) + ')';\n }\n\n return ' @deprecated';\n}\n\nfunction printDescription(options, def) {\n var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var firstInBlock = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n if (!def.description) {\n return '';\n }\n\n var lines = descriptionLines(def.description, 120 - indentation.length);\n\n if (options && options.commentDescriptions) {\n return printDescriptionWithComments(lines, indentation, firstInBlock);\n }\n\n var text = lines.join('\\n');\n var preferMultipleLines = text.length > 70;\n var blockString = (0, _blockString.printBlockString)(text, '', preferMultipleLines);\n var prefix = indentation && !firstInBlock ? '\\n' + indentation : indentation;\n return prefix + blockString.replace(/\\n/g, '\\n' + indentation) + '\\n';\n}\n\nfunction printDescriptionWithComments(lines, indentation, firstInBlock) {\n var description = indentation && !firstInBlock ? '\\n' : '';\n\n for (var _i2 = 0; _i2 < lines.length; _i2++) {\n var line = lines[_i2];\n\n if (line === '') {\n description += indentation + '#\\n';\n } else {\n description += indentation + '# ' + line + '\\n';\n }\n }\n\n return description;\n}\n\nfunction descriptionLines(description, maxLen) {\n var rawLines = description.split('\\n');\n return (0, _flatMap.default)(rawLines, function (line) {\n if (line.length < maxLen + 5) {\n return line;\n } // For > 120 character long lines, cut at space boundaries into sublines\n // of ~80 chars.\n\n\n return breakLine(line, maxLen);\n });\n}\n\nfunction breakLine(line, maxLen) {\n var parts = line.split(new RegExp(\"((?: |^).{15,\".concat(maxLen - 40, \"}(?= |$))\")));\n\n if (parts.length < 4) {\n return [line];\n }\n\n var sublines = [parts[0] + parts[1] + parts[2]];\n\n for (var i = 3; i < parts.length; i += 2) {\n sublines.push(parts[i].slice(1) + parts[i + 1]);\n }\n\n return sublines;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/schemaPrinter.js\n// module id = 668\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.separateOperations = separateOperations;\n\nvar _visitor = require(\"../language/visitor\");\n\n/**\n * separateOperations accepts a single AST document which may contain many\n * operations and fragments and returns a collection of AST documents each of\n * which contains a single operation as well the fragment definitions it\n * refers to.\n */\nfunction separateOperations(documentAST) {\n var operations = [];\n var fragments = Object.create(null);\n var positions = new Map();\n var depGraph = Object.create(null);\n var fromName;\n var idx = 0; // Populate metadata and build a dependency graph.\n\n (0, _visitor.visit)(documentAST, {\n OperationDefinition: function OperationDefinition(node) {\n fromName = opName(node);\n operations.push(node);\n positions.set(node, idx++);\n },\n FragmentDefinition: function FragmentDefinition(node) {\n fromName = node.name.value;\n fragments[fromName] = node;\n positions.set(node, idx++);\n },\n FragmentSpread: function FragmentSpread(node) {\n var toName = node.name.value;\n (depGraph[fromName] || (depGraph[fromName] = Object.create(null)))[toName] = true;\n }\n }); // For each operation, produce a new synthesized AST which includes only what\n // is necessary for completing that operation.\n\n var separatedDocumentASTs = Object.create(null);\n\n for (var _i2 = 0; _i2 < operations.length; _i2++) {\n var operation = operations[_i2];\n var operationName = opName(operation);\n var dependencies = Object.create(null);\n collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted\n // to retain the same order as the original document.\n\n var definitions = [operation];\n\n for (var _i4 = 0, _Object$keys2 = Object.keys(dependencies); _i4 < _Object$keys2.length; _i4++) {\n var name = _Object$keys2[_i4];\n definitions.push(fragments[name]);\n }\n\n definitions.sort(function (n1, n2) {\n return (positions.get(n1) || 0) - (positions.get(n2) || 0);\n });\n separatedDocumentASTs[operationName] = {\n kind: 'Document',\n definitions: definitions\n };\n }\n\n return separatedDocumentASTs;\n}\n\n// Provides the empty string for anonymous operations.\nfunction opName(operation) {\n return operation.name ? operation.name.value : '';\n} // From a dependency graph, collects a list of transitive dependencies by\n// recursing through a dependency graph.\n\n\nfunction collectTransitiveDependencies(collected, depGraph, fromName) {\n var immediateDeps = depGraph[fromName];\n\n if (immediateDeps) {\n for (var _i6 = 0, _Object$keys4 = Object.keys(immediateDeps); _i6 < _Object$keys4.length; _i6++) {\n var toName = _Object$keys4[_i6];\n\n if (!collected[toName]) {\n collected[toName] = true;\n collectTransitiveDependencies(collected, depGraph, toName);\n }\n }\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/separateOperations.js\n// module id = 669\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stripIgnoredCharacters = stripIgnoredCharacters;\n\nvar _inspect = _interopRequireDefault(require(\"../jsutils/inspect\"));\n\nvar _source = require(\"../language/source\");\n\nvar _tokenKind = require(\"../language/tokenKind\");\n\nvar _lexer = require(\"../language/lexer\");\n\nvar _blockString = require(\"../language/blockString\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n *\n * Becomes:\n *\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n *\n * SDL example:\n *\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n *\n * Becomes:\n *\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n */\nfunction stripIgnoredCharacters(source) {\n var sourceObj = typeof source === 'string' ? new _source.Source(source) : source;\n\n if (!(sourceObj instanceof _source.Source)) {\n throw new TypeError(\"Must provide string or Source. Received: \".concat((0, _inspect.default)(sourceObj)));\n }\n\n var body = sourceObj.body;\n var lexer = (0, _lexer.createLexer)(sourceObj);\n var strippedBody = '';\n var wasLastAddedTokenNonPunctuator = false;\n\n while (lexer.advance().kind !== _tokenKind.TokenKind.EOF) {\n var currentToken = lexer.token;\n var tokenKind = currentToken.kind;\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n\n var isNonPunctuator = !(0, _lexer.isPunctuatorToken)(currentToken);\n\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === _tokenKind.TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n var tokenBody = body.slice(currentToken.start, currentToken.end);\n\n if (tokenKind === _tokenKind.TokenKind.BLOCK_STRING) {\n strippedBody += dedentBlockString(tokenBody);\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n\nfunction dedentBlockString(blockStr) {\n // skip leading and trailing triple quotations\n var rawStr = blockStr.slice(3, -3);\n var body = (0, _blockString.dedentBlockStringValue)(rawStr);\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n\n if ((0, _blockString.getBlockStringIndentation)(lines) > 0) {\n body = '\\n' + body;\n }\n\n var lastChar = body[body.length - 1];\n var hasTrailingQuote = lastChar === '\"' && body.slice(-4) !== '\\\\\"\"\"';\n\n if (hasTrailingQuote || lastChar === '\\\\') {\n body += '\\n';\n }\n\n return '\"\"\"' + body + '\"\"\"';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/utilities/stripIgnoredCharacters.js\n// module id = 670\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function get() {\n return _validate.validate;\n }\n});\nObject.defineProperty(exports, \"ValidationContext\", {\n enumerable: true,\n get: function get() {\n return _ValidationContext.ValidationContext;\n }\n});\nObject.defineProperty(exports, \"specifiedRules\", {\n enumerable: true,\n get: function get() {\n return _specifiedRules.specifiedRules;\n }\n});\nObject.defineProperty(exports, \"ExecutableDefinitionsRule\", {\n enumerable: true,\n get: function get() {\n return _ExecutableDefinitions.ExecutableDefinitions;\n }\n});\nObject.defineProperty(exports, \"FieldsOnCorrectTypeRule\", {\n enumerable: true,\n get: function get() {\n return _FieldsOnCorrectType.FieldsOnCorrectType;\n }\n});\nObject.defineProperty(exports, \"FragmentsOnCompositeTypesRule\", {\n enumerable: true,\n get: function get() {\n return _FragmentsOnCompositeTypes.FragmentsOnCompositeTypes;\n }\n});\nObject.defineProperty(exports, \"KnownArgumentNamesRule\", {\n enumerable: true,\n get: function get() {\n return _KnownArgumentNames.KnownArgumentNames;\n }\n});\nObject.defineProperty(exports, \"KnownDirectivesRule\", {\n enumerable: true,\n get: function get() {\n return _KnownDirectives.KnownDirectives;\n }\n});\nObject.defineProperty(exports, \"KnownFragmentNamesRule\", {\n enumerable: true,\n get: function get() {\n return _KnownFragmentNames.KnownFragmentNames;\n }\n});\nObject.defineProperty(exports, \"KnownTypeNamesRule\", {\n enumerable: true,\n get: function get() {\n return _KnownTypeNames.KnownTypeNames;\n }\n});\nObject.defineProperty(exports, \"LoneAnonymousOperationRule\", {\n enumerable: true,\n get: function get() {\n return _LoneAnonymousOperation.LoneAnonymousOperation;\n }\n});\nObject.defineProperty(exports, \"NoFragmentCyclesRule\", {\n enumerable: true,\n get: function get() {\n return _NoFragmentCycles.NoFragmentCycles;\n }\n});\nObject.defineProperty(exports, \"NoUndefinedVariablesRule\", {\n enumerable: true,\n get: function get() {\n return _NoUndefinedVariables.NoUndefinedVariables;\n }\n});\nObject.defineProperty(exports, \"NoUnusedFragmentsRule\", {\n enumerable: true,\n get: function get() {\n return _NoUnusedFragments.NoUnusedFragments;\n }\n});\nObject.defineProperty(exports, \"NoUnusedVariablesRule\", {\n enumerable: true,\n get: function get() {\n return _NoUnusedVariables.NoUnusedVariables;\n }\n});\nObject.defineProperty(exports, \"OverlappingFieldsCanBeMergedRule\", {\n enumerable: true,\n get: function get() {\n return _OverlappingFieldsCanBeMerged.OverlappingFieldsCanBeMerged;\n }\n});\nObject.defineProperty(exports, \"PossibleFragmentSpreadsRule\", {\n enumerable: true,\n get: function get() {\n return _PossibleFragmentSpreads.PossibleFragmentSpreads;\n }\n});\nObject.defineProperty(exports, \"ProvidedRequiredArgumentsRule\", {\n enumerable: true,\n get: function get() {\n return _ProvidedRequiredArguments.ProvidedRequiredArguments;\n }\n});\nObject.defineProperty(exports, \"ScalarLeafsRule\", {\n enumerable: true,\n get: function get() {\n return _ScalarLeafs.ScalarLeafs;\n }\n});\nObject.defineProperty(exports, \"SingleFieldSubscriptionsRule\", {\n enumerable: true,\n get: function get() {\n return _SingleFieldSubscriptions.SingleFieldSubscriptions;\n }\n});\nObject.defineProperty(exports, \"UniqueArgumentNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueArgumentNames.UniqueArgumentNames;\n }\n});\nObject.defineProperty(exports, \"UniqueDirectivesPerLocationRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueDirectivesPerLocation.UniqueDirectivesPerLocation;\n }\n});\nObject.defineProperty(exports, \"UniqueFragmentNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueFragmentNames.UniqueFragmentNames;\n }\n});\nObject.defineProperty(exports, \"UniqueInputFieldNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueInputFieldNames.UniqueInputFieldNames;\n }\n});\nObject.defineProperty(exports, \"UniqueOperationNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueOperationNames.UniqueOperationNames;\n }\n});\nObject.defineProperty(exports, \"UniqueVariableNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueVariableNames.UniqueVariableNames;\n }\n});\nObject.defineProperty(exports, \"ValuesOfCorrectTypeRule\", {\n enumerable: true,\n get: function get() {\n return _ValuesOfCorrectType.ValuesOfCorrectType;\n }\n});\nObject.defineProperty(exports, \"VariablesAreInputTypesRule\", {\n enumerable: true,\n get: function get() {\n return _VariablesAreInputTypes.VariablesAreInputTypes;\n }\n});\nObject.defineProperty(exports, \"VariablesInAllowedPositionRule\", {\n enumerable: true,\n get: function get() {\n return _VariablesInAllowedPosition.VariablesInAllowedPosition;\n }\n});\nObject.defineProperty(exports, \"LoneSchemaDefinitionRule\", {\n enumerable: true,\n get: function get() {\n return _LoneSchemaDefinition.LoneSchemaDefinition;\n }\n});\nObject.defineProperty(exports, \"UniqueOperationTypesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueOperationTypes.UniqueOperationTypes;\n }\n});\nObject.defineProperty(exports, \"UniqueTypeNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueTypeNames.UniqueTypeNames;\n }\n});\nObject.defineProperty(exports, \"UniqueEnumValueNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueEnumValueNames.UniqueEnumValueNames;\n }\n});\nObject.defineProperty(exports, \"UniqueFieldDefinitionNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueFieldDefinitionNames.UniqueFieldDefinitionNames;\n }\n});\nObject.defineProperty(exports, \"UniqueDirectiveNamesRule\", {\n enumerable: true,\n get: function get() {\n return _UniqueDirectiveNames.UniqueDirectiveNames;\n }\n});\nObject.defineProperty(exports, \"PossibleTypeExtensionsRule\", {\n enumerable: true,\n get: function get() {\n return _PossibleTypeExtensions.PossibleTypeExtensions;\n }\n});\n\nvar _validate = require(\"./validate\");\n\nvar _ValidationContext = require(\"./ValidationContext\");\n\nvar _specifiedRules = require(\"./specifiedRules\");\n\nvar _ExecutableDefinitions = require(\"./rules/ExecutableDefinitions\");\n\nvar _FieldsOnCorrectType = require(\"./rules/FieldsOnCorrectType\");\n\nvar _FragmentsOnCompositeTypes = require(\"./rules/FragmentsOnCompositeTypes\");\n\nvar _KnownArgumentNames = require(\"./rules/KnownArgumentNames\");\n\nvar _KnownDirectives = require(\"./rules/KnownDirectives\");\n\nvar _KnownFragmentNames = require(\"./rules/KnownFragmentNames\");\n\nvar _KnownTypeNames = require(\"./rules/KnownTypeNames\");\n\nvar _LoneAnonymousOperation = require(\"./rules/LoneAnonymousOperation\");\n\nvar _NoFragmentCycles = require(\"./rules/NoFragmentCycles\");\n\nvar _NoUndefinedVariables = require(\"./rules/NoUndefinedVariables\");\n\nvar _NoUnusedFragments = require(\"./rules/NoUnusedFragments\");\n\nvar _NoUnusedVariables = require(\"./rules/NoUnusedVariables\");\n\nvar _OverlappingFieldsCanBeMerged = require(\"./rules/OverlappingFieldsCanBeMerged\");\n\nvar _PossibleFragmentSpreads = require(\"./rules/PossibleFragmentSpreads\");\n\nvar _ProvidedRequiredArguments = require(\"./rules/ProvidedRequiredArguments\");\n\nvar _ScalarLeafs = require(\"./rules/ScalarLeafs\");\n\nvar _SingleFieldSubscriptions = require(\"./rules/SingleFieldSubscriptions\");\n\nvar _UniqueArgumentNames = require(\"./rules/UniqueArgumentNames\");\n\nvar _UniqueDirectivesPerLocation = require(\"./rules/UniqueDirectivesPerLocation\");\n\nvar _UniqueFragmentNames = require(\"./rules/UniqueFragmentNames\");\n\nvar _UniqueInputFieldNames = require(\"./rules/UniqueInputFieldNames\");\n\nvar _UniqueOperationNames = require(\"./rules/UniqueOperationNames\");\n\nvar _UniqueVariableNames = require(\"./rules/UniqueVariableNames\");\n\nvar _ValuesOfCorrectType = require(\"./rules/ValuesOfCorrectType\");\n\nvar _VariablesAreInputTypes = require(\"./rules/VariablesAreInputTypes\");\n\nvar _VariablesInAllowedPosition = require(\"./rules/VariablesInAllowedPosition\");\n\nvar _LoneSchemaDefinition = require(\"./rules/LoneSchemaDefinition\");\n\nvar _UniqueOperationTypes = require(\"./rules/UniqueOperationTypes\");\n\nvar _UniqueTypeNames = require(\"./rules/UniqueTypeNames\");\n\nvar _UniqueEnumValueNames = require(\"./rules/UniqueEnumValueNames\");\n\nvar _UniqueFieldDefinitionNames = require(\"./rules/UniqueFieldDefinitionNames\");\n\nvar _UniqueDirectiveNames = require(\"./rules/UniqueDirectiveNames\");\n\nvar _PossibleTypeExtensions = require(\"./rules/PossibleTypeExtensions\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/validation/index.js\n// module id = 671\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.versionInfo = exports.version = void 0;\n\n/**\n * Note: This file is autogenerated using \"resources/gen-version.js\" script and\n * automatically updated by \"yarn version\" command.\n */\n\n/**\n * A string containing the version of the GraphQL.js library\n */\nvar version = '14.7.0';\n/**\n * An object containing the components of the GraphQL.js version string\n */\n\nexports.version = version;\nvar versionInfo = Object.freeze({\n major: 14,\n minor: 7,\n patch: 0,\n preReleaseTag: null\n});\nexports.versionInfo = versionInfo;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/graphql/version.js\n// module id = 672\n// module chunks = 19","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_DataView.js\n// module id = 674\n// module chunks = 19","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_Hash.js\n// module id = 675\n// module chunks = 19","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_Promise.js\n// module id = 676\n// module chunks = 19","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_Set.js\n// module id = 677\n// module chunks = 19","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_SetCache.js\n// module id = 678\n// module chunks = 19","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_WeakMap.js\n// module id = 679\n// module chunks = 19","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_apply.js\n// module id = 680\n// module chunks = 19","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_arrayEach.js\n// module id = 681\n// module chunks = 19","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_arrayFilter.js\n// module id = 682\n// module chunks = 19","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_arrayPush.js\n// module id = 683\n// module chunks = 19","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_arraySome.js\n// module id = 684\n// module chunks = 19","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_assignValue.js\n// module id = 685\n// module chunks = 19","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseCreate.js\n// module id = 686\n// module chunks = 19","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseForOwn.js\n// module id = 687\n// module chunks = 19","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseGetAllKeys.js\n// module id = 688\n// module chunks = 19","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseHasIn.js\n// module id = 689\n// module chunks = 19","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseIsArguments.js\n// module id = 690\n// module chunks = 19","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseIsEqualDeep.js\n// module id = 691\n// module chunks = 19","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseIsMatch.js\n// module id = 692\n// module chunks = 19","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseIsNative.js\n// module id = 693\n// module chunks = 19","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseIsTypedArray.js\n// module id = 694\n// module chunks = 19","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseIteratee.js\n// module id = 695\n// module chunks = 19","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseKeys.js\n// module id = 696\n// module chunks = 19","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseKeysIn.js\n// module id = 697\n// module chunks = 19","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseMap.js\n// module id = 698\n// module chunks = 19","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseMatches.js\n// module id = 699\n// module chunks = 19","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseMatchesProperty.js\n// module id = 700\n// module chunks = 19","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseMerge.js\n// module id = 701\n// module chunks = 19","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseMergeDeep.js\n// module id = 702\n// module chunks = 19","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseProperty.js\n// module id = 703\n// module chunks = 19","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_basePropertyDeep.js\n// module id = 704\n// module chunks = 19","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseRest.js\n// module id = 705\n// module chunks = 19","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseSetToString.js\n// module id = 706\n// module chunks = 19","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseTimes.js\n// module id = 707\n// module chunks = 19","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseToString.js\n// module id = 708\n// module chunks = 19","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseTrim.js\n// module id = 709\n// module chunks = 19","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseUnary.js\n// module id = 710\n// module chunks = 19","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_cacheHas.js\n// module id = 711\n// module chunks = 19","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_castFunction.js\n// module id = 712\n// module chunks = 19","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_cloneArrayBuffer.js\n// module id = 713\n// module chunks = 19","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_cloneBuffer.js\n// module id = 714\n// module chunks = 19","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_cloneTypedArray.js\n// module id = 715\n// module chunks = 19","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_copyArray.js\n// module id = 716\n// module chunks = 19","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_copyObject.js\n// module id = 717\n// module chunks = 19","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_coreJsData.js\n// module id = 718\n// module chunks = 19","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_createAssigner.js\n// module id = 719\n// module chunks = 19","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_createBaseEach.js\n// module id = 720\n// module chunks = 19","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_createBaseFor.js\n// module id = 721\n// module chunks = 19","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_equalByTag.js\n// module id = 722\n// module chunks = 19","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_equalObjects.js\n// module id = 723\n// module chunks = 19","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_getAllKeys.js\n// module id = 724\n// module chunks = 19","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_getMatchData.js\n// module id = 725\n// module chunks = 19","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_getSymbols.js\n// module id = 727\n// module chunks = 19","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_getTag.js\n// module id = 728\n// module chunks = 19","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_getValue.js\n// module id = 729\n// module chunks = 19","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_hasPath.js\n// module id = 730\n// module chunks = 19","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_hashClear.js\n// module id = 731\n// module chunks = 19","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_hashDelete.js\n// module id = 732\n// module chunks = 19","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_hashGet.js\n// module id = 733\n// module chunks = 19","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_hashHas.js\n// module id = 734\n// module chunks = 19","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_hashSet.js\n// module id = 735\n// module chunks = 19","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_initCloneObject.js\n// module id = 736\n// module chunks = 19","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_isIterateeCall.js\n// module id = 737\n// module chunks = 19","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_isKeyable.js\n// module id = 738\n// module chunks = 19","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_isMasked.js\n// module id = 739\n// module chunks = 19","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_listCacheClear.js\n// module id = 740\n// module chunks = 19","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_listCacheDelete.js\n// module id = 741\n// module chunks = 19","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_listCacheGet.js\n// module id = 742\n// module chunks = 19","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_listCacheHas.js\n// module id = 743\n// module chunks = 19","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_listCacheSet.js\n// module id = 744\n// module chunks = 19","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_mapCacheClear.js\n// module id = 745\n// module chunks = 19","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_mapCacheDelete.js\n// module id = 746\n// module chunks = 19","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_mapCacheGet.js\n// module id = 747\n// module chunks = 19","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_mapCacheHas.js\n// module id = 748\n// module chunks = 19","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_mapCacheSet.js\n// module id = 749\n// module chunks = 19","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_mapToArray.js\n// module id = 750\n// module chunks = 19","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_memoizeCapped.js\n// module id = 751\n// module chunks = 19","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_nativeKeys.js\n// module id = 752\n// module chunks = 19","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_nativeKeysIn.js\n// module id = 753\n// module chunks = 19","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_nodeUtil.js\n// module id = 754\n// module chunks = 19","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_overRest.js\n// module id = 756\n// module chunks = 19","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_setCacheAdd.js\n// module id = 757\n// module chunks = 19","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_setCacheHas.js\n// module id = 758\n// module chunks = 19","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_setToArray.js\n// module id = 759\n// module chunks = 19","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_setToString.js\n// module id = 760\n// module chunks = 19","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_shortOut.js\n// module id = 761\n// module chunks = 19","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_stackClear.js\n// module id = 762\n// module chunks = 19","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_stackDelete.js\n// module id = 763\n// module chunks = 19","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_stackGet.js\n// module id = 764\n// module chunks = 19","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_stackHas.js\n// module id = 765\n// module chunks = 19","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_stackSet.js\n// module id = 766\n// module chunks = 19","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_stringToPath.js\n// module id = 767\n// module chunks = 19","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_trimmedEndIndex.js\n// module id = 768\n// module chunks = 19","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/constant.js\n// module id = 769\n// module chunks = 19","export { default } from './forEach.js'\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/each.js\n// module id = 770\n// module chunks = 19","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/forEach.js\n// module id = 771\n// module chunks = 19","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/get.js\n// module id = 772\n// module chunks = 19","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/hasIn.js\n// module id = 773\n// module chunks = 19","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/isArrayLikeObject.js\n// module id = 774\n// module chunks = 19","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/isUndefined.js\n// module id = 775\n// module chunks = 19","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/memoize.js\n// module id = 776\n// module chunks = 19","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/now.js\n// module id = 777\n// module chunks = 19","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/property.js\n// module id = 778\n// module chunks = 19","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/stubArray.js\n// module id = 779\n// module chunks = 19","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/stubFalse.js\n// module id = 780\n// module chunks = 19","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/throttle.js\n// module id = 781\n// module chunks = 19","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/toNumber.js\n// module id = 782\n// module chunks = 19","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/toPlainObject.js\n// module id = 783\n// module chunks = 19","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/toString.js\n// module id = 784\n// module chunks = 19","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, customizer) : !!result;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = isEqualWith;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash.isequalwith/index.js\n// module id = 785\n// module chunks = 19","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_DataView.js\n// module id = 786\n// module chunks = 19","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Hash.js\n// module id = 787\n// module chunks = 19","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Promise.js\n// module id = 788\n// module chunks = 19","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Set.js\n// module id = 789\n// module chunks = 19","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_SetCache.js\n// module id = 790\n// module chunks = 19","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_WeakMap.js\n// module id = 791\n// module chunks = 19","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayEach.js\n// module id = 792\n// module chunks = 19","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayFilter.js\n// module id = 793\n// module chunks = 19","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arraySome.js\n// module id = 794\n// module chunks = 19","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssign.js\n// module id = 795\n// module chunks = 19","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssignIn.js\n// module id = 796\n// module chunks = 19","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseClone.js\n// module id = 797\n// module chunks = 19","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseCreate.js\n// module id = 798\n// module chunks = 19","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseEach.js\n// module id = 799\n// module chunks = 19","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFor.js\n// module id = 800\n// module chunks = 19","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseHasIn.js\n// module id = 801\n// module chunks = 19","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsArguments.js\n// module id = 802\n// module chunks = 19","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsEqualDeep.js\n// module id = 803\n// module chunks = 19","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsMap.js\n// module id = 804\n// module chunks = 19","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsMatch.js\n// module id = 805\n// module chunks = 19","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsNative.js\n// module id = 806\n// module chunks = 19","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsSet.js\n// module id = 807\n// module chunks = 19","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsTypedArray.js\n// module id = 808\n// module chunks = 19","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIteratee.js\n// module id = 809\n// module chunks = 19","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseKeys.js\n// module id = 810\n// module chunks = 19","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseKeysIn.js\n// module id = 811\n// module chunks = 19","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseMap.js\n// module id = 812\n// module chunks = 19","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseMatches.js\n// module id = 813\n// module chunks = 19","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseMatchesProperty.js\n// module id = 814\n// module chunks = 19","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseProperty.js\n// module id = 815\n// module chunks = 19","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_basePropertyDeep.js\n// module id = 816\n// module chunks = 19","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseTimes.js\n// module id = 817\n// module chunks = 19","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseToString.js\n// module id = 818\n// module chunks = 19","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cacheHas.js\n// module id = 819\n// module chunks = 19","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_castFunction.js\n// module id = 820\n// module chunks = 19","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneBuffer.js\n// module id = 821\n// module chunks = 19","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneDataView.js\n// module id = 822\n// module chunks = 19","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneRegExp.js\n// module id = 823\n// module chunks = 19","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneSymbol.js\n// module id = 824\n// module chunks = 19","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cloneTypedArray.js\n// module id = 825\n// module chunks = 19","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copyArray.js\n// module id = 826\n// module chunks = 19","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copySymbols.js\n// module id = 827\n// module chunks = 19","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copySymbolsIn.js\n// module id = 828\n// module chunks = 19","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_coreJsData.js\n// module id = 829\n// module chunks = 19","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createBaseEach.js\n// module id = 830\n// module chunks = 19","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createBaseFor.js\n// module id = 831\n// module chunks = 19","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_defineProperty.js\n// module id = 832\n// module chunks = 19","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_equalByTag.js\n// module id = 833\n// module chunks = 19","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_equalObjects.js\n// module id = 834\n// module chunks = 19","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getAllKeysIn.js\n// module id = 835\n// module chunks = 19","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getMatchData.js\n// module id = 836\n// module chunks = 19","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getRawTag.js\n// module id = 837\n// module chunks = 19","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getValue.js\n// module id = 838\n// module chunks = 19","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hasPath.js\n// module id = 839\n// module chunks = 19","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashClear.js\n// module id = 840\n// module chunks = 19","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashDelete.js\n// module id = 841\n// module chunks = 19","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashGet.js\n// module id = 842\n// module chunks = 19","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashHas.js\n// module id = 843\n// module chunks = 19","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashSet.js\n// module id = 844\n// module chunks = 19","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_initCloneArray.js\n// module id = 845\n// module chunks = 19","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_initCloneByTag.js\n// module id = 846\n// module chunks = 19","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_initCloneObject.js\n// module id = 847\n// module chunks = 19","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isKeyable.js\n// module id = 848\n// module chunks = 19","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isMasked.js\n// module id = 849\n// module chunks = 19","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheClear.js\n// module id = 850\n// module chunks = 19","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheDelete.js\n// module id = 851\n// module chunks = 19","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheGet.js\n// module id = 852\n// module chunks = 19","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheHas.js\n// module id = 853\n// module chunks = 19","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheSet.js\n// module id = 854\n// module chunks = 19","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheClear.js\n// module id = 855\n// module chunks = 19","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheDelete.js\n// module id = 856\n// module chunks = 19","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheGet.js\n// module id = 857\n// module chunks = 19","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheHas.js\n// module id = 858\n// module chunks = 19","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheSet.js\n// module id = 859\n// module chunks = 19","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapToArray.js\n// module id = 860\n// module chunks = 19","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_memoizeCapped.js\n// module id = 861\n// module chunks = 19","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeKeys.js\n// module id = 862\n// module chunks = 19","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeKeysIn.js\n// module id = 863\n// module chunks = 19","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_objectToString.js\n// module id = 864\n// module chunks = 19","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setCacheAdd.js\n// module id = 865\n// module chunks = 19","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setCacheHas.js\n// module id = 866\n// module chunks = 19","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setToArray.js\n// module id = 867\n// module chunks = 19","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackClear.js\n// module id = 868\n// module chunks = 19","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackDelete.js\n// module id = 869\n// module chunks = 19","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackGet.js\n// module id = 870\n// module chunks = 19","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackHas.js\n// module id = 871\n// module chunks = 19","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stackSet.js\n// module id = 872\n// module chunks = 19","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_stringToPath.js\n// module id = 873\n// module chunks = 19","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/cloneDeep.js\n// module id = 874\n// module chunks = 19","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/get.js\n// module id = 875\n// module chunks = 19","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/hasIn.js\n// module id = 876\n// module chunks = 19","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isMap.js\n// module id = 877\n// module chunks = 19","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isPlainObject.js\n// module id = 878\n// module chunks = 19","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isSet.js\n// module id = 879\n// module chunks = 19","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isString.js\n// module id = 880\n// module chunks = 19","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/map.js\n// module id = 881\n// module chunks = 19","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/memoize.js\n// module id = 882\n// module chunks = 19","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/property.js\n// module id = 883\n// module chunks = 19","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/stubFalse.js\n// module id = 884\n// module chunks = 19","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toString.js\n// module id = 885\n// module chunks = 19","module.exports = {\"version\":\"2021e\",\"zones\":[\"Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5\",\"Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5\",\"Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5\",\"Africa/Lagos|LMT GMT +0030 WAT|-d.z 0 -u -10|01023|-2B40d.z 7iod.z dnXK.p dLzH.z|17e6\",\"Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4\",\"Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5\",\"Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6\",\"Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5\",\"Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3\",\"Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4\",\"Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5\",\"Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|012121212121212121212121212121212131|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 PeX0|\",\"Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5\",\"Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5\",\"Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5\",\"Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|\",\"Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5\",\"Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5\",\"Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4\",\"America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326\",\"America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4\",\"America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5\",\"America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4\",\"America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\",\"America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\",\"America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|\",\"America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|\",\"America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|\",\"America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|\",\"America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|\",\"America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|\",\"America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|\",\"America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5\",\"America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5\",\"America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3\",\"America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5\",\"America/Barbados|LMT AST ADT -0330|3W.t 40 30 3u|0121213121212121|-2m4k1.v 1eAN1.v RB0 1Bz0 Op0 1rb0 11d0 1jJc0 IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4\",\"America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5\",\"America/Belize|LMT CST -0530 CWT CPT CDT|5Q.M 60 5u 50 50 50|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121215151|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu Rcu 7Bt0 Ni0 4nd0 Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu e9Au qn0 lxB0 mn0|57e3\",\"America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2\",\"America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5\",\"America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4\",\"America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2\",\"America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4\",\"America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4\",\"America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5\",\"America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3\",\"America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5\",\"America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4\",\"America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5\",\"America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5\",\"America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4\",\"America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8\",\"America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3\",\"America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|13e2\",\"America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5\",\"America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5\",\"America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5\",\"America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3\",\"America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5\",\"America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5\",\"America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2\",\"America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5\",\"America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3\",\"America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2\",\"America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|0121212121212121212121212121212121212121212121212121212121212121212121212132121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 7jA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2\",\"America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5\",\"America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5\",\"America/Guyana|LMT -04 -0345 -03|3Q.D 40 3J 30|01231|-2mf87.l 8Hc7.l 2r7bJ Ey0f|80e4\",\"America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4\",\"America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\",\"America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4\",\"America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2\",\"America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2\",\"America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4\",\"America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3\",\"America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5\",\"America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6\",\"America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6\",\"America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4\",\"America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5\",\"America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5\",\"America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4\",\"America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4\",\"America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4\",\"America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2\",\"America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5\",\"America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6\",\"America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2\",\"America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3\",\"America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5\",\"America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5\",\"America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5\",\"America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6\",\"America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2\",\"America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2\",\"America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2\",\"America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3\",\"America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4\",\"America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4\",\"America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4\",\"America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|\",\"America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842\",\"America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2\",\"America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5\",\"America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4\",\"America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229\",\"America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4\",\"America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5\",\"America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5\",\"America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6\",\"America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452\",\"America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2\",\"America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3\",\"America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5\",\"America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656\",\"America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|23e3\",\"America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4\",\"America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642\",\"America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"Antarctica/Casey|-00 +08 +11|0 -80 -b0|0121212121212|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10 1o30 14k0 1kr0 12l0 1o01|10\",\"Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70\",\"Pacific/Port_Moresby|+10|-a0|0||25e4\",\"Antarctica/Macquarie|AEST AEDT -00|-a0 -b0 0|010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 4SK0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 3Co0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|1\",\"Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60\",\"Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5\",\"Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40\",\"Antarctica/Rothera|-00 -03|0 30|01|gOo0|130\",\"Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5\",\"Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40\",\"Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25\",\"Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4\",\"Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5\",\"Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00 LA0 1C00 Oo0 1zc0 Oo0 1C00 LA0 1C00 LA0 1C00 LA0 1C00 LA0 1C00 Oo0 1zc0 Oo0 1C00 LA0 1C00 LA0 1C00 LA0 1C00 LA0 1C00 Oo0 1C00 LA0 1C00|25e5\",\"Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3\",\"Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4\",\"Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4\",\"Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4\",\"Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\",\"Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5\",\"Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4\",\"Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5\",\"Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6\",\"Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|\",\"Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5\",\"Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4\",\"Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4\",\"Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6\",\"Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4\",\"Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3\",\"Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6\",\"Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5\",\"Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6\",\"Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5\",\"Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4\",\"Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5\",\"Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4\",\"Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1qo0 Xc0 1qo0|18e5\",\"Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|01010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1qo0 Xc0 1qo0|25e4\",\"Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5\",\"Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5\",\"Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3\",\"Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6\",\"Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6\",\"Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4\",\"Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyOk.E MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 3LA0 Eo0 oo0 1co0 1dA0 16o0 10M0 1jc0 1tA0 14o0 1cM0 1a00 11A0 1Nc0 Ao0 1Nc0 Ao0 1Ko0 LA0 1o00 WM0 EQK0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4\",\"Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5\",\"Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4\",\"Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6\",\"Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5\",\"Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5\",\"Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2\",\"Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5\",\"Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5\",\"Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4\",\"Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4\",\"Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3\",\"Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5\",\"Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6\",\"Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4\",\"Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4\",\"Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5\",\"Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5\",\"Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4\",\"Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4\",\"Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5\",\"Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\",\"Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4\",\"Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5\",\"Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4\",\"Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4\",\"Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6\",\"Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2\",\"Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5\",\"Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5\",\"Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5\",\"Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6\",\"Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3\",\"Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6\",\"Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5\",\"Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5\",\"Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2\",\"Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4\",\"Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5\",\"Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5\",\"Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|0121212121212121212121212121212121212121212123212321232123212121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4\",\"Atlantic/Bermuda|BMT BST AST ADT|4j.i 3j.i 40 30|010102323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28p7E.G 1bb0 1i10 11X0 ru30 thbE.G 1PX0 11B0 1tz0 Rd0 1zb0 Op0 1zb0 3I10 Lz0 1EN0 FX0 1HB0 FX0 1Kp0 Db0 1Kp0 Db0 1Kp0 FX0 93d0 11z0 GAp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3\",\"Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4\",\"Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3\",\"Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|0121212121212121212121212121212121212121212123212321232123212121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4\",\"Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4\",\"Atlantic/South_Georgia|-02|20|0||30\",\"Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2\",\"Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5\",\"Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5\",\"Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5\",\"Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3\",\"Australia/Hobart|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 1qM0 Oo0 1zc0 Oo0 TAo0 yM0 1cM0 1cM0 1fA0 1a00 VfA0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4\",\"Australia/Darwin|ACST ACDT|-9u -au|010101010|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00|12e4\",\"Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293iJ xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368\",\"Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347\",\"Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10\",\"Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5\",\"Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293i0 xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5\",\"CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2\",\"CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"EST|EST|50|0||\",\"EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"Etc/GMT-0|GMT|0|0||\",\"Etc/GMT-1|+01|-10|0||\",\"Etc/GMT-11|+11|-b0|0||\",\"Pacific/Tarawa|+12|-c0|0||29e3\",\"Etc/GMT-13|+13|-d0|0||\",\"Etc/GMT-14|+14|-e0|0||\",\"Etc/GMT-2|+02|-20|0||\",\"Etc/GMT-3|+03|-30|0||\",\"Etc/GMT-4|+04|-40|0||\",\"Etc/GMT-5|+05|-50|0||\",\"Etc/GMT-6|+06|-60|0||\",\"Indian/Christmas|+07|-70|0||21e2\",\"Etc/GMT-8|+08|-80|0||\",\"Pacific/Palau|+09|-90|0||21e3\",\"Etc/GMT+1|-01|10|0||\",\"Etc/GMT+10|-10|a0|0||\",\"Etc/GMT+11|-11|b0|0||\",\"Etc/GMT+12|-12|c0|0||\",\"Etc/GMT+3|-03|30|0||\",\"Etc/GMT+4|-04|40|0||\",\"Etc/GMT+5|-05|50|0||\",\"Etc/GMT+6|-06|60|0||\",\"Etc/GMT+7|-07|70|0||\",\"Etc/GMT+8|-08|80|0||\",\"Etc/GMT+9|-09|90|0||\",\"Etc/UTC|UTC|0|0||\",\"Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5\",\"Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3\",\"Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5\",\"Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5\",\"Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6\",\"Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5\",\"Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5\",\"Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5\",\"Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5\",\"Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 1oo0 11c0 1lc0 17c0 O1V0 3Nf0 WM0 1fA0 1cM0 1cM0 1oJ0 1dd0 1020 1fX0 1cp0 1cM0 1cM0 1cM0 1fA0 1a00 bhy0 Rb0 1wr0 Rc0 1C00 LA0 1C00 LA0 SNW0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cO0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4\",\"Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4\",\"Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3\",\"Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4\",\"Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5\",\"Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4\",\"Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5\",\"Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5\",\"Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5\",\"Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2n5c9.l cFX9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3\",\"Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6\",\"Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6\",\"Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4\",\"Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5\",\"Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5\",\"Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|\",\"Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4\",\"Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5\",\"Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4\",\"Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5\",\"Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4\",\"Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5\",\"Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|0123232323232323212121212121212121212121212121212121212121212121|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0 5gn0|10e5\",\"Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4\",\"HST|HST|a0|0||\",\"Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2\",\"Indian/Cocos|+0630|-6u|0||596\",\"Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130\",\"Indian/Mahe|LMT +04|-3F.M -40|01|-2xorF.M|79e3\",\"Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4\",\"Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4\",\"Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4\",\"Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3\",\"MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"MST|MST|70|0||\",\"MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600\",\"Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0|37e3\",\"Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4\",\"Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3\",\"Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|012121212121212121212121|-2l9nd.g 2uNXd.g Dc0 n610 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3\",\"Pacific/Enderbury|-00 -12 -11 +13|0 c0 b0 -d0|0123|-1iIo0 1GsA0 B7X0|1\",\"Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483\",\"Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|01212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 4q00 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4\",\"Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3\",\"Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125\",\"Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4\",\"Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4\",\"Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4\",\"Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2\",\"Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2\",\"Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3\",\"Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2\",\"Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2\",\"Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3\",\"Pacific/Niue|LMT -1120 -11|bj.E bk b0|012|-FScE.k suo0.k|12e2\",\"Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4\",\"Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3\",\"Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56\",\"Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3\",\"Pacific/Rarotonga|LMT -1030 -0930 -10|aD.4 au 9u a0|0123232323232323232323232323|-FSdk.U 13tbO.U IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3\",\"Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4\",\"Pacific/Tongatapu|LMT +1220 +13 +14|-cj.c -ck -d0 -e0|01232323232|-XbMj.c BgLX.c 1yndk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3\",\"PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\"],\"links\":[\"Africa/Abidjan|Africa/Accra\",\"Africa/Abidjan|Africa/Bamako\",\"Africa/Abidjan|Africa/Banjul\",\"Africa/Abidjan|Africa/Conakry\",\"Africa/Abidjan|Africa/Dakar\",\"Africa/Abidjan|Africa/Freetown\",\"Africa/Abidjan|Africa/Lome\",\"Africa/Abidjan|Africa/Nouakchott\",\"Africa/Abidjan|Africa/Ouagadougou\",\"Africa/Abidjan|Africa/Timbuktu\",\"Africa/Abidjan|Atlantic/St_Helena\",\"Africa/Cairo|Egypt\",\"Africa/Johannesburg|Africa/Maseru\",\"Africa/Johannesburg|Africa/Mbabane\",\"Africa/Lagos|Africa/Bangui\",\"Africa/Lagos|Africa/Brazzaville\",\"Africa/Lagos|Africa/Douala\",\"Africa/Lagos|Africa/Kinshasa\",\"Africa/Lagos|Africa/Libreville\",\"Africa/Lagos|Africa/Luanda\",\"Africa/Lagos|Africa/Malabo\",\"Africa/Lagos|Africa/Niamey\",\"Africa/Lagos|Africa/Porto-Novo\",\"Africa/Maputo|Africa/Blantyre\",\"Africa/Maputo|Africa/Bujumbura\",\"Africa/Maputo|Africa/Gaborone\",\"Africa/Maputo|Africa/Harare\",\"Africa/Maputo|Africa/Kigali\",\"Africa/Maputo|Africa/Lubumbashi\",\"Africa/Maputo|Africa/Lusaka\",\"Africa/Nairobi|Africa/Addis_Ababa\",\"Africa/Nairobi|Africa/Asmara\",\"Africa/Nairobi|Africa/Asmera\",\"Africa/Nairobi|Africa/Dar_es_Salaam\",\"Africa/Nairobi|Africa/Djibouti\",\"Africa/Nairobi|Africa/Kampala\",\"Africa/Nairobi|Africa/Mogadishu\",\"Africa/Nairobi|Indian/Antananarivo\",\"Africa/Nairobi|Indian/Comoro\",\"Africa/Nairobi|Indian/Mayotte\",\"Africa/Tripoli|Libya\",\"America/Adak|America/Atka\",\"America/Adak|US/Aleutian\",\"America/Anchorage|US/Alaska\",\"America/Argentina/Buenos_Aires|America/Buenos_Aires\",\"America/Argentina/Catamarca|America/Argentina/ComodRivadavia\",\"America/Argentina/Catamarca|America/Catamarca\",\"America/Argentina/Cordoba|America/Cordoba\",\"America/Argentina/Cordoba|America/Rosario\",\"America/Argentina/Jujuy|America/Jujuy\",\"America/Argentina/Mendoza|America/Mendoza\",\"America/Chicago|US/Central\",\"America/Denver|America/Shiprock\",\"America/Denver|Navajo\",\"America/Denver|US/Mountain\",\"America/Detroit|US/Michigan\",\"America/Edmonton|Canada/Mountain\",\"America/Fort_Wayne|America/Indiana/Indianapolis\",\"America/Fort_Wayne|America/Indianapolis\",\"America/Fort_Wayne|US/East-Indiana\",\"America/Godthab|America/Nuuk\",\"America/Halifax|Canada/Atlantic\",\"America/Havana|Cuba\",\"America/Indiana/Knox|America/Knox_IN\",\"America/Indiana/Knox|US/Indiana-Starke\",\"America/Jamaica|Jamaica\",\"America/Kentucky/Louisville|America/Louisville\",\"America/Los_Angeles|US/Pacific\",\"America/Manaus|Brazil/West\",\"America/Mazatlan|Mexico/BajaSur\",\"America/Mexico_City|Mexico/General\",\"America/New_York|US/Eastern\",\"America/Noronha|Brazil/DeNoronha\",\"America/Panama|America/Atikokan\",\"America/Panama|America/Cayman\",\"America/Panama|America/Coral_Harbour\",\"America/Phoenix|America/Creston\",\"America/Phoenix|US/Arizona\",\"America/Puerto_Rico|America/Anguilla\",\"America/Puerto_Rico|America/Antigua\",\"America/Puerto_Rico|America/Aruba\",\"America/Puerto_Rico|America/Blanc-Sablon\",\"America/Puerto_Rico|America/Curacao\",\"America/Puerto_Rico|America/Dominica\",\"America/Puerto_Rico|America/Grenada\",\"America/Puerto_Rico|America/Guadeloupe\",\"America/Puerto_Rico|America/Kralendijk\",\"America/Puerto_Rico|America/Lower_Princes\",\"America/Puerto_Rico|America/Marigot\",\"America/Puerto_Rico|America/Montserrat\",\"America/Puerto_Rico|America/Port_of_Spain\",\"America/Puerto_Rico|America/St_Barthelemy\",\"America/Puerto_Rico|America/St_Kitts\",\"America/Puerto_Rico|America/St_Lucia\",\"America/Puerto_Rico|America/St_Thomas\",\"America/Puerto_Rico|America/St_Vincent\",\"America/Puerto_Rico|America/Tortola\",\"America/Puerto_Rico|America/Virgin\",\"America/Regina|Canada/Saskatchewan\",\"America/Rio_Branco|America/Porto_Acre\",\"America/Rio_Branco|Brazil/Acre\",\"America/Santiago|Chile/Continental\",\"America/Sao_Paulo|Brazil/East\",\"America/St_Johns|Canada/Newfoundland\",\"America/Tijuana|America/Ensenada\",\"America/Tijuana|America/Santa_Isabel\",\"America/Tijuana|Mexico/BajaNorte\",\"America/Toronto|America/Montreal\",\"America/Toronto|America/Nassau\",\"America/Toronto|Canada/Eastern\",\"America/Vancouver|Canada/Pacific\",\"America/Whitehorse|Canada/Yukon\",\"America/Winnipeg|Canada/Central\",\"Asia/Ashgabat|Asia/Ashkhabad\",\"Asia/Bangkok|Asia/Phnom_Penh\",\"Asia/Bangkok|Asia/Vientiane\",\"Asia/Dhaka|Asia/Dacca\",\"Asia/Dubai|Asia/Muscat\",\"Asia/Ho_Chi_Minh|Asia/Saigon\",\"Asia/Hong_Kong|Hongkong\",\"Asia/Jerusalem|Asia/Tel_Aviv\",\"Asia/Jerusalem|Israel\",\"Asia/Kathmandu|Asia/Katmandu\",\"Asia/Kolkata|Asia/Calcutta\",\"Asia/Kuala_Lumpur|Asia/Singapore\",\"Asia/Kuala_Lumpur|Singapore\",\"Asia/Macau|Asia/Macao\",\"Asia/Makassar|Asia/Ujung_Pandang\",\"Asia/Nicosia|Europe/Nicosia\",\"Asia/Qatar|Asia/Bahrain\",\"Asia/Rangoon|Asia/Yangon\",\"Asia/Riyadh|Antarctica/Syowa\",\"Asia/Riyadh|Asia/Aden\",\"Asia/Riyadh|Asia/Kuwait\",\"Asia/Seoul|ROK\",\"Asia/Shanghai|Asia/Chongqing\",\"Asia/Shanghai|Asia/Chungking\",\"Asia/Shanghai|Asia/Harbin\",\"Asia/Shanghai|PRC\",\"Asia/Taipei|ROC\",\"Asia/Tehran|Iran\",\"Asia/Thimphu|Asia/Thimbu\",\"Asia/Tokyo|Japan\",\"Asia/Ulaanbaatar|Asia/Ulan_Bator\",\"Asia/Urumqi|Asia/Kashgar\",\"Atlantic/Faroe|Atlantic/Faeroe\",\"Atlantic/Reykjavik|Iceland\",\"Atlantic/South_Georgia|Etc/GMT+2\",\"Australia/Adelaide|Australia/South\",\"Australia/Brisbane|Australia/Queensland\",\"Australia/Broken_Hill|Australia/Yancowinna\",\"Australia/Darwin|Australia/North\",\"Australia/Hobart|Australia/Currie\",\"Australia/Hobart|Australia/Tasmania\",\"Australia/Lord_Howe|Australia/LHI\",\"Australia/Melbourne|Australia/Victoria\",\"Australia/Perth|Australia/West\",\"Australia/Sydney|Australia/ACT\",\"Australia/Sydney|Australia/Canberra\",\"Australia/Sydney|Australia/NSW\",\"Etc/GMT-0|Etc/GMT\",\"Etc/GMT-0|Etc/GMT+0\",\"Etc/GMT-0|Etc/GMT0\",\"Etc/GMT-0|Etc/Greenwich\",\"Etc/GMT-0|GMT\",\"Etc/GMT-0|GMT+0\",\"Etc/GMT-0|GMT-0\",\"Etc/GMT-0|GMT0\",\"Etc/GMT-0|Greenwich\",\"Etc/UTC|Etc/UCT\",\"Etc/UTC|Etc/Universal\",\"Etc/UTC|Etc/Zulu\",\"Etc/UTC|UCT\",\"Etc/UTC|UTC\",\"Etc/UTC|Universal\",\"Etc/UTC|Zulu\",\"Europe/Belgrade|Europe/Ljubljana\",\"Europe/Belgrade|Europe/Podgorica\",\"Europe/Belgrade|Europe/Sarajevo\",\"Europe/Belgrade|Europe/Skopje\",\"Europe/Belgrade|Europe/Zagreb\",\"Europe/Chisinau|Europe/Tiraspol\",\"Europe/Dublin|Eire\",\"Europe/Helsinki|Europe/Mariehamn\",\"Europe/Istanbul|Asia/Istanbul\",\"Europe/Istanbul|Turkey\",\"Europe/Lisbon|Portugal\",\"Europe/London|Europe/Belfast\",\"Europe/London|Europe/Guernsey\",\"Europe/London|Europe/Isle_of_Man\",\"Europe/London|Europe/Jersey\",\"Europe/London|GB\",\"Europe/London|GB-Eire\",\"Europe/Moscow|W-SU\",\"Europe/Oslo|Arctic/Longyearbyen\",\"Europe/Oslo|Atlantic/Jan_Mayen\",\"Europe/Prague|Europe/Bratislava\",\"Europe/Rome|Europe/San_Marino\",\"Europe/Rome|Europe/Vatican\",\"Europe/Warsaw|Poland\",\"Europe/Zurich|Europe/Busingen\",\"Europe/Zurich|Europe/Vaduz\",\"Indian/Christmas|Etc/GMT-7\",\"Pacific/Auckland|Antarctica/McMurdo\",\"Pacific/Auckland|Antarctica/South_Pole\",\"Pacific/Auckland|NZ\",\"Pacific/Chatham|NZ-CHAT\",\"Pacific/Chuuk|Pacific/Truk\",\"Pacific/Chuuk|Pacific/Yap\",\"Pacific/Easter|Chile/EasterIsland\",\"Pacific/Enderbury|Pacific/Kanton\",\"Pacific/Guam|Pacific/Saipan\",\"Pacific/Honolulu|Pacific/Johnston\",\"Pacific/Honolulu|US/Hawaii\",\"Pacific/Kwajalein|Kwajalein\",\"Pacific/Pago_Pago|Pacific/Midway\",\"Pacific/Pago_Pago|Pacific/Samoa\",\"Pacific/Pago_Pago|US/Samoa\",\"Pacific/Palau|Etc/GMT-9\",\"Pacific/Pohnpei|Pacific/Ponape\",\"Pacific/Port_Moresby|Antarctica/DumontDUrville\",\"Pacific/Port_Moresby|Etc/GMT-10\",\"Pacific/Tarawa|Etc/GMT-12\",\"Pacific/Tarawa|Pacific/Funafuti\",\"Pacific/Tarawa|Pacific/Wake\",\"Pacific/Tarawa|Pacific/Wallis\"],\"countries\":[\"AD|Europe/Andorra\",\"AE|Asia/Dubai\",\"AF|Asia/Kabul\",\"AG|America/Port_of_Spain America/Antigua\",\"AI|America/Port_of_Spain America/Anguilla\",\"AL|Europe/Tirane\",\"AM|Asia/Yerevan\",\"AO|Africa/Lagos Africa/Luanda\",\"AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo\",\"AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia\",\"AS|Pacific/Pago_Pago\",\"AT|Europe/Vienna\",\"AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla\",\"AW|America/Curacao America/Aruba\",\"AX|Europe/Helsinki Europe/Mariehamn\",\"AZ|Asia/Baku\",\"BA|Europe/Belgrade Europe/Sarajevo\",\"BB|America/Barbados\",\"BD|Asia/Dhaka\",\"BE|Europe/Brussels\",\"BF|Africa/Abidjan Africa/Ouagadougou\",\"BG|Europe/Sofia\",\"BH|Asia/Qatar Asia/Bahrain\",\"BI|Africa/Maputo Africa/Bujumbura\",\"BJ|Africa/Lagos Africa/Porto-Novo\",\"BL|America/Port_of_Spain America/St_Barthelemy\",\"BM|Atlantic/Bermuda\",\"BN|Asia/Brunei\",\"BO|America/La_Paz\",\"BQ|America/Curacao America/Kralendijk\",\"BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco\",\"BS|America/Nassau\",\"BT|Asia/Thimphu\",\"BW|Africa/Maputo Africa/Gaborone\",\"BY|Europe/Minsk\",\"BZ|America/Belize\",\"CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver\",\"CC|Indian/Cocos\",\"CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi\",\"CF|Africa/Lagos Africa/Bangui\",\"CG|Africa/Lagos Africa/Brazzaville\",\"CH|Europe/Zurich\",\"CI|Africa/Abidjan\",\"CK|Pacific/Rarotonga\",\"CL|America/Santiago America/Punta_Arenas Pacific/Easter\",\"CM|Africa/Lagos Africa/Douala\",\"CN|Asia/Shanghai Asia/Urumqi\",\"CO|America/Bogota\",\"CR|America/Costa_Rica\",\"CU|America/Havana\",\"CV|Atlantic/Cape_Verde\",\"CW|America/Curacao\",\"CX|Indian/Christmas\",\"CY|Asia/Nicosia Asia/Famagusta\",\"CZ|Europe/Prague\",\"DE|Europe/Zurich Europe/Berlin Europe/Busingen\",\"DJ|Africa/Nairobi Africa/Djibouti\",\"DK|Europe/Copenhagen\",\"DM|America/Port_of_Spain America/Dominica\",\"DO|America/Santo_Domingo\",\"DZ|Africa/Algiers\",\"EC|America/Guayaquil Pacific/Galapagos\",\"EE|Europe/Tallinn\",\"EG|Africa/Cairo\",\"EH|Africa/El_Aaiun\",\"ER|Africa/Nairobi Africa/Asmara\",\"ES|Europe/Madrid Africa/Ceuta Atlantic/Canary\",\"ET|Africa/Nairobi Africa/Addis_Ababa\",\"FI|Europe/Helsinki\",\"FJ|Pacific/Fiji\",\"FK|Atlantic/Stanley\",\"FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae\",\"FO|Atlantic/Faroe\",\"FR|Europe/Paris\",\"GA|Africa/Lagos Africa/Libreville\",\"GB|Europe/London\",\"GD|America/Port_of_Spain America/Grenada\",\"GE|Asia/Tbilisi\",\"GF|America/Cayenne\",\"GG|Europe/London Europe/Guernsey\",\"GH|Africa/Accra\",\"GI|Europe/Gibraltar\",\"GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule\",\"GM|Africa/Abidjan Africa/Banjul\",\"GN|Africa/Abidjan Africa/Conakry\",\"GP|America/Port_of_Spain America/Guadeloupe\",\"GQ|Africa/Lagos Africa/Malabo\",\"GR|Europe/Athens\",\"GS|Atlantic/South_Georgia\",\"GT|America/Guatemala\",\"GU|Pacific/Guam\",\"GW|Africa/Bissau\",\"GY|America/Guyana\",\"HK|Asia/Hong_Kong\",\"HN|America/Tegucigalpa\",\"HR|Europe/Belgrade Europe/Zagreb\",\"HT|America/Port-au-Prince\",\"HU|Europe/Budapest\",\"ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura\",\"IE|Europe/Dublin\",\"IL|Asia/Jerusalem\",\"IM|Europe/London Europe/Isle_of_Man\",\"IN|Asia/Kolkata\",\"IO|Indian/Chagos\",\"IQ|Asia/Baghdad\",\"IR|Asia/Tehran\",\"IS|Atlantic/Reykjavik\",\"IT|Europe/Rome\",\"JE|Europe/London Europe/Jersey\",\"JM|America/Jamaica\",\"JO|Asia/Amman\",\"JP|Asia/Tokyo\",\"KE|Africa/Nairobi\",\"KG|Asia/Bishkek\",\"KH|Asia/Bangkok Asia/Phnom_Penh\",\"KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati\",\"KM|Africa/Nairobi Indian/Comoro\",\"KN|America/Port_of_Spain America/St_Kitts\",\"KP|Asia/Pyongyang\",\"KR|Asia/Seoul\",\"KW|Asia/Riyadh Asia/Kuwait\",\"KY|America/Panama America/Cayman\",\"KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral\",\"LA|Asia/Bangkok Asia/Vientiane\",\"LB|Asia/Beirut\",\"LC|America/Port_of_Spain America/St_Lucia\",\"LI|Europe/Zurich Europe/Vaduz\",\"LK|Asia/Colombo\",\"LR|Africa/Monrovia\",\"LS|Africa/Johannesburg Africa/Maseru\",\"LT|Europe/Vilnius\",\"LU|Europe/Luxembourg\",\"LV|Europe/Riga\",\"LY|Africa/Tripoli\",\"MA|Africa/Casablanca\",\"MC|Europe/Monaco\",\"MD|Europe/Chisinau\",\"ME|Europe/Belgrade Europe/Podgorica\",\"MF|America/Port_of_Spain America/Marigot\",\"MG|Africa/Nairobi Indian/Antananarivo\",\"MH|Pacific/Majuro Pacific/Kwajalein\",\"MK|Europe/Belgrade Europe/Skopje\",\"ML|Africa/Abidjan Africa/Bamako\",\"MM|Asia/Yangon\",\"MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan\",\"MO|Asia/Macau\",\"MP|Pacific/Guam Pacific/Saipan\",\"MQ|America/Martinique\",\"MR|Africa/Abidjan Africa/Nouakchott\",\"MS|America/Port_of_Spain America/Montserrat\",\"MT|Europe/Malta\",\"MU|Indian/Mauritius\",\"MV|Indian/Maldives\",\"MW|Africa/Maputo Africa/Blantyre\",\"MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas\",\"MY|Asia/Kuala_Lumpur Asia/Kuching\",\"MZ|Africa/Maputo\",\"NA|Africa/Windhoek\",\"NC|Pacific/Noumea\",\"NE|Africa/Lagos Africa/Niamey\",\"NF|Pacific/Norfolk\",\"NG|Africa/Lagos\",\"NI|America/Managua\",\"NL|Europe/Amsterdam\",\"NO|Europe/Oslo\",\"NP|Asia/Kathmandu\",\"NR|Pacific/Nauru\",\"NU|Pacific/Niue\",\"NZ|Pacific/Auckland Pacific/Chatham\",\"OM|Asia/Dubai Asia/Muscat\",\"PA|America/Panama\",\"PE|America/Lima\",\"PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier\",\"PG|Pacific/Port_Moresby Pacific/Bougainville\",\"PH|Asia/Manila\",\"PK|Asia/Karachi\",\"PL|Europe/Warsaw\",\"PM|America/Miquelon\",\"PN|Pacific/Pitcairn\",\"PR|America/Puerto_Rico\",\"PS|Asia/Gaza Asia/Hebron\",\"PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores\",\"PW|Pacific/Palau\",\"PY|America/Asuncion\",\"QA|Asia/Qatar\",\"RE|Indian/Reunion\",\"RO|Europe/Bucharest\",\"RS|Europe/Belgrade\",\"RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr\",\"RW|Africa/Maputo Africa/Kigali\",\"SA|Asia/Riyadh\",\"SB|Pacific/Guadalcanal\",\"SC|Indian/Mahe\",\"SD|Africa/Khartoum\",\"SE|Europe/Stockholm\",\"SG|Asia/Singapore\",\"SH|Africa/Abidjan Atlantic/St_Helena\",\"SI|Europe/Belgrade Europe/Ljubljana\",\"SJ|Europe/Oslo Arctic/Longyearbyen\",\"SK|Europe/Prague Europe/Bratislava\",\"SL|Africa/Abidjan Africa/Freetown\",\"SM|Europe/Rome Europe/San_Marino\",\"SN|Africa/Abidjan Africa/Dakar\",\"SO|Africa/Nairobi Africa/Mogadishu\",\"SR|America/Paramaribo\",\"SS|Africa/Juba\",\"ST|Africa/Sao_Tome\",\"SV|America/El_Salvador\",\"SX|America/Curacao America/Lower_Princes\",\"SY|Asia/Damascus\",\"SZ|Africa/Johannesburg Africa/Mbabane\",\"TC|America/Grand_Turk\",\"TD|Africa/Ndjamena\",\"TF|Indian/Reunion Indian/Kerguelen\",\"TG|Africa/Abidjan Africa/Lome\",\"TH|Asia/Bangkok\",\"TJ|Asia/Dushanbe\",\"TK|Pacific/Fakaofo\",\"TL|Asia/Dili\",\"TM|Asia/Ashgabat\",\"TN|Africa/Tunis\",\"TO|Pacific/Tongatapu\",\"TR|Europe/Istanbul\",\"TT|America/Port_of_Spain\",\"TV|Pacific/Funafuti\",\"TW|Asia/Taipei\",\"TZ|Africa/Nairobi Africa/Dar_es_Salaam\",\"UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye\",\"UG|Africa/Nairobi Africa/Kampala\",\"UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway\",\"US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu\",\"UY|America/Montevideo\",\"UZ|Asia/Samarkand Asia/Tashkent\",\"VA|Europe/Rome Europe/Vatican\",\"VC|America/Port_of_Spain America/St_Vincent\",\"VE|America/Caracas\",\"VG|America/Port_of_Spain America/Tortola\",\"VI|America/Port_of_Spain America/St_Thomas\",\"VN|Asia/Bangkok Asia/Ho_Chi_Minh\",\"VU|Pacific/Efate\",\"WF|Pacific/Wallis\",\"WS|Pacific/Apia\",\"YE|Asia/Riyadh Asia/Aden\",\"YT|Africa/Nairobi Indian/Mayotte\",\"ZA|Africa/Johannesburg\",\"ZM|Africa/Maputo Africa/Lusaka\",\"ZW|Africa/Maputo Africa/Harare\"]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment-timezone/data/packed/latest.json\n// module id = 886\n// module chunks = 19","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment-timezone/index.js\n// module id = 887\n// module chunks = 19","//! moment-timezone.js\n//! version : 0.5.34\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.34\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment-timezone/moment-timezone.js\n// module id = 888\n// module chunks = 19","var map = {\n\t\"./af\": 316,\n\t\"./af.js\": 316,\n\t\"./ar\": 323,\n\t\"./ar-dz\": 317,\n\t\"./ar-dz.js\": 317,\n\t\"./ar-kw\": 318,\n\t\"./ar-kw.js\": 318,\n\t\"./ar-ly\": 319,\n\t\"./ar-ly.js\": 319,\n\t\"./ar-ma\": 320,\n\t\"./ar-ma.js\": 320,\n\t\"./ar-sa\": 321,\n\t\"./ar-sa.js\": 321,\n\t\"./ar-tn\": 322,\n\t\"./ar-tn.js\": 322,\n\t\"./ar.js\": 323,\n\t\"./az\": 324,\n\t\"./az.js\": 324,\n\t\"./be\": 325,\n\t\"./be.js\": 325,\n\t\"./bg\": 326,\n\t\"./bg.js\": 326,\n\t\"./bm\": 327,\n\t\"./bm.js\": 327,\n\t\"./bn\": 329,\n\t\"./bn-bd\": 328,\n\t\"./bn-bd.js\": 328,\n\t\"./bn.js\": 329,\n\t\"./bo\": 330,\n\t\"./bo.js\": 330,\n\t\"./br\": 331,\n\t\"./br.js\": 331,\n\t\"./bs\": 332,\n\t\"./bs.js\": 332,\n\t\"./ca\": 333,\n\t\"./ca.js\": 333,\n\t\"./cs\": 334,\n\t\"./cs.js\": 334,\n\t\"./cv\": 335,\n\t\"./cv.js\": 335,\n\t\"./cy\": 336,\n\t\"./cy.js\": 336,\n\t\"./da\": 337,\n\t\"./da.js\": 337,\n\t\"./de\": 340,\n\t\"./de-at\": 338,\n\t\"./de-at.js\": 338,\n\t\"./de-ch\": 339,\n\t\"./de-ch.js\": 339,\n\t\"./de.js\": 340,\n\t\"./dv\": 341,\n\t\"./dv.js\": 341,\n\t\"./el\": 342,\n\t\"./el.js\": 342,\n\t\"./en-au\": 343,\n\t\"./en-au.js\": 343,\n\t\"./en-ca\": 344,\n\t\"./en-ca.js\": 344,\n\t\"./en-gb\": 345,\n\t\"./en-gb.js\": 345,\n\t\"./en-ie\": 346,\n\t\"./en-ie.js\": 346,\n\t\"./en-il\": 347,\n\t\"./en-il.js\": 347,\n\t\"./en-in\": 348,\n\t\"./en-in.js\": 348,\n\t\"./en-nz\": 349,\n\t\"./en-nz.js\": 349,\n\t\"./en-sg\": 350,\n\t\"./en-sg.js\": 350,\n\t\"./eo\": 351,\n\t\"./eo.js\": 351,\n\t\"./es\": 355,\n\t\"./es-do\": 352,\n\t\"./es-do.js\": 352,\n\t\"./es-mx\": 353,\n\t\"./es-mx.js\": 353,\n\t\"./es-us\": 354,\n\t\"./es-us.js\": 354,\n\t\"./es.js\": 355,\n\t\"./et\": 356,\n\t\"./et.js\": 356,\n\t\"./eu\": 357,\n\t\"./eu.js\": 357,\n\t\"./fa\": 358,\n\t\"./fa.js\": 358,\n\t\"./fi\": 359,\n\t\"./fi.js\": 359,\n\t\"./fil\": 360,\n\t\"./fil.js\": 360,\n\t\"./fo\": 361,\n\t\"./fo.js\": 361,\n\t\"./fr\": 364,\n\t\"./fr-ca\": 362,\n\t\"./fr-ca.js\": 362,\n\t\"./fr-ch\": 363,\n\t\"./fr-ch.js\": 363,\n\t\"./fr.js\": 364,\n\t\"./fy\": 365,\n\t\"./fy.js\": 365,\n\t\"./ga\": 366,\n\t\"./ga.js\": 366,\n\t\"./gd\": 367,\n\t\"./gd.js\": 367,\n\t\"./gl\": 368,\n\t\"./gl.js\": 368,\n\t\"./gom-deva\": 369,\n\t\"./gom-deva.js\": 369,\n\t\"./gom-latn\": 370,\n\t\"./gom-latn.js\": 370,\n\t\"./gu\": 371,\n\t\"./gu.js\": 371,\n\t\"./he\": 372,\n\t\"./he.js\": 372,\n\t\"./hi\": 373,\n\t\"./hi.js\": 373,\n\t\"./hr\": 374,\n\t\"./hr.js\": 374,\n\t\"./hu\": 375,\n\t\"./hu.js\": 375,\n\t\"./hy-am\": 376,\n\t\"./hy-am.js\": 376,\n\t\"./id\": 377,\n\t\"./id.js\": 377,\n\t\"./is\": 378,\n\t\"./is.js\": 378,\n\t\"./it\": 380,\n\t\"./it-ch\": 379,\n\t\"./it-ch.js\": 379,\n\t\"./it.js\": 380,\n\t\"./ja\": 381,\n\t\"./ja.js\": 381,\n\t\"./jv\": 382,\n\t\"./jv.js\": 382,\n\t\"./ka\": 383,\n\t\"./ka.js\": 383,\n\t\"./kk\": 384,\n\t\"./kk.js\": 384,\n\t\"./km\": 385,\n\t\"./km.js\": 385,\n\t\"./kn\": 386,\n\t\"./kn.js\": 386,\n\t\"./ko\": 387,\n\t\"./ko.js\": 387,\n\t\"./ku\": 388,\n\t\"./ku.js\": 388,\n\t\"./ky\": 389,\n\t\"./ky.js\": 389,\n\t\"./lb\": 390,\n\t\"./lb.js\": 390,\n\t\"./lo\": 391,\n\t\"./lo.js\": 391,\n\t\"./lt\": 392,\n\t\"./lt.js\": 392,\n\t\"./lv\": 393,\n\t\"./lv.js\": 393,\n\t\"./me\": 394,\n\t\"./me.js\": 394,\n\t\"./mi\": 395,\n\t\"./mi.js\": 395,\n\t\"./mk\": 396,\n\t\"./mk.js\": 396,\n\t\"./ml\": 397,\n\t\"./ml.js\": 397,\n\t\"./mn\": 398,\n\t\"./mn.js\": 398,\n\t\"./mr\": 399,\n\t\"./mr.js\": 399,\n\t\"./ms\": 401,\n\t\"./ms-my\": 400,\n\t\"./ms-my.js\": 400,\n\t\"./ms.js\": 401,\n\t\"./mt\": 402,\n\t\"./mt.js\": 402,\n\t\"./my\": 403,\n\t\"./my.js\": 403,\n\t\"./nb\": 404,\n\t\"./nb.js\": 404,\n\t\"./ne\": 405,\n\t\"./ne.js\": 405,\n\t\"./nl\": 407,\n\t\"./nl-be\": 406,\n\t\"./nl-be.js\": 406,\n\t\"./nl.js\": 407,\n\t\"./nn\": 408,\n\t\"./nn.js\": 408,\n\t\"./oc-lnc\": 409,\n\t\"./oc-lnc.js\": 409,\n\t\"./pa-in\": 410,\n\t\"./pa-in.js\": 410,\n\t\"./pl\": 411,\n\t\"./pl.js\": 411,\n\t\"./pt\": 413,\n\t\"./pt-br\": 412,\n\t\"./pt-br.js\": 412,\n\t\"./pt.js\": 413,\n\t\"./ro\": 414,\n\t\"./ro.js\": 414,\n\t\"./ru\": 415,\n\t\"./ru.js\": 415,\n\t\"./sd\": 416,\n\t\"./sd.js\": 416,\n\t\"./se\": 417,\n\t\"./se.js\": 417,\n\t\"./si\": 418,\n\t\"./si.js\": 418,\n\t\"./sk\": 419,\n\t\"./sk.js\": 419,\n\t\"./sl\": 420,\n\t\"./sl.js\": 420,\n\t\"./sq\": 421,\n\t\"./sq.js\": 421,\n\t\"./sr\": 423,\n\t\"./sr-cyrl\": 422,\n\t\"./sr-cyrl.js\": 422,\n\t\"./sr.js\": 423,\n\t\"./ss\": 424,\n\t\"./ss.js\": 424,\n\t\"./sv\": 425,\n\t\"./sv.js\": 425,\n\t\"./sw\": 426,\n\t\"./sw.js\": 426,\n\t\"./ta\": 427,\n\t\"./ta.js\": 427,\n\t\"./te\": 428,\n\t\"./te.js\": 428,\n\t\"./tet\": 429,\n\t\"./tet.js\": 429,\n\t\"./tg\": 430,\n\t\"./tg.js\": 430,\n\t\"./th\": 431,\n\t\"./th.js\": 431,\n\t\"./tk\": 432,\n\t\"./tk.js\": 432,\n\t\"./tl-ph\": 433,\n\t\"./tl-ph.js\": 433,\n\t\"./tlh\": 434,\n\t\"./tlh.js\": 434,\n\t\"./tr\": 435,\n\t\"./tr.js\": 435,\n\t\"./tzl\": 436,\n\t\"./tzl.js\": 436,\n\t\"./tzm\": 438,\n\t\"./tzm-latn\": 437,\n\t\"./tzm-latn.js\": 437,\n\t\"./tzm.js\": 438,\n\t\"./ug-cn\": 439,\n\t\"./ug-cn.js\": 439,\n\t\"./uk\": 440,\n\t\"./uk.js\": 440,\n\t\"./ur\": 441,\n\t\"./ur.js\": 441,\n\t\"./uz\": 443,\n\t\"./uz-latn\": 442,\n\t\"./uz-latn.js\": 442,\n\t\"./uz.js\": 443,\n\t\"./vi\": 444,\n\t\"./vi.js\": 444,\n\t\"./x-pseudo\": 445,\n\t\"./x-pseudo.js\": 445,\n\t\"./yo\": 446,\n\t\"./yo.js\": 446,\n\t\"./zh-cn\": 447,\n\t\"./zh-cn.js\": 447,\n\t\"./zh-hk\": 448,\n\t\"./zh-hk.js\": 448,\n\t\"./zh-mo\": 449,\n\t\"./zh-mo.js\": 449,\n\t\"./zh-tw\": 450,\n\t\"./zh-tw.js\": 450\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 889;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale ^\\.\\/.*$\n// module id = 889\n// module chunks = 19","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 894\n// module chunks = 19","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 895\n// module chunks = 19","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/~/fbjs/lib/emptyFunction.js\n// module id = 896\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/~/fbjs/lib/invariant.js\n// module id = 897\n// module chunks = 19","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { ColorWrap, Alpha } from '../common';\nimport AlphaPointer from './AlphaPointer';\n\nexport var AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n React.createElement(Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: AlphaPointer\n};\n\nexport default ColorWrap(AlphaPicker);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/alpha/Alpha.js\n// module id = 898\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default AlphaPointer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/alpha/AlphaPointer.js\n// module id = 899\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Checkboard } from '../common';\nimport BlockSwatches from './BlockSwatches';\n\nexport var Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.head },\n transparent && React.createElement(Checkboard, { borderRadius: '6px 6px 0 0' }),\n React.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(BlockSwatches, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n React.createElement(EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['top', 'hide']),\n styles: PropTypes.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexport default ColorWrap(Block);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/block/Block.js\n// module id = 900\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport { Swatch } from '../common';\n\nexport var BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n map(colors, function (c) {\n return React.createElement(Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default BlockSwatches;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/block/BlockSwatches.js\n// module id = 901\n// module chunks = 19","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport isUndefined from 'lodash-es/isUndefined';\n\nimport { EditableInput } from '../common';\nimport UnfoldMoreHorizontalIcon from '@icons/material/UnfoldMoreHorizontalIcon';\n\nexport var ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!isUndefined(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!isUndefined(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n React.createElement(\n 'div',\n { style: styles.toggle },\n React.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n React.createElement(UnfoldMoreHorizontalIcon, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(React.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexport default ChromeFields;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/chrome/ChromeFields.js\n// module id = 902\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointer = function ChromePointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/chrome/ChromePointer.js\n// module id = 903\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointerCircle = function ChromePointerCircle() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointerCircle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/chrome/ChromePointerCircle.js\n// module id = 904\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap } from '../common';\nimport CircleSwatch from './CircleSwatch';\n\nexport var Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n map(colors, function (c) {\n return React.createElement(CircleSwatch, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n circleSize: PropTypes.number,\n circleSpacing: PropTypes.number,\n styles: PropTypes.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexport default ColorWrap(Circle);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/circle/Circle.js\n// module id = 905\n// module chunks = 19","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexport default handleHover(CircleSwatch);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/circle/CircleSwatch.js\n// module id = 906\n// module chunks = 19","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\n\nimport Checkboard from './Checkboard';\n\nexport var Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = reactCSS({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(\n 'div',\n { style: styles.checkboard },\n React.createElement(Checkboard, { renderers: this.props.renderers })\n ),\n React.createElement('div', { style: styles.gradient }),\n React.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(PureComponent || Component);\n\nexport default Alpha;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/common/Alpha.js\n// module id = 907\n// module chunks = 19","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nexport var EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? React.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(PureComponent || Component);\n\nexport default EditableInput;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/common/EditableInput.js\n// module id = 908\n// module chunks = 19","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\n\nexport var Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = reactCSS({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(PureComponent || Component);\n\nexport default Hue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/common/Hue.js\n// module id = 909\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nexport var Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = reactCSS(merge({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('div', { style: styles.bg }),\n React.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: PropTypes.string,\n zDepth: PropTypes.oneOf([0, 1, 2, 3, 4, 5]),\n radius: PropTypes.number,\n styles: PropTypes.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexport default Raised;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/common/Raised.js\n// module id = 910\n// module chunks = 19","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash-es/throttle';\nimport * as saturation from '../../helpers/saturation';\n\nexport var Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = reactCSS({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return React.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n React.createElement('div', { style: styles.black, className: 'saturation-black' }),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(PureComponent || Component);\n\nexport default Saturation;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/common/Saturation.js\n// module id = 911\n// module chunks = 19","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\n\nimport Checkboard from './Checkboard';\n\nvar ENTER = 13;\n\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return React.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexport default handleFocus(Swatch);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/common/Swatch.js\n// module id = 912\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, Raised } from '../common';\nimport CompactColor from './CompactColor';\nimport CompactFields from './CompactFields';\n\nexport var Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return React.createElement(\n Raised,\n { style: styles.Compact, styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n React.createElement(\n 'div',\n null,\n map(colors, function (c) {\n return React.createElement(CompactColor, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n ),\n React.createElement(CompactFields, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexport default ColorWrap(Compact);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/compact/Compact.js\n// module id = 913\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\n\nexport var CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return React.createElement(\n Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement('div', { style: styles.dot })\n );\n};\n\nexport default CompactColor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/compact/CompactColor.js\n// module id = 914\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { EditableInput } from '../common';\n\nexport var CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement('div', { style: styles.active }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexport default CompactFields;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/compact/CompactFields.js\n// module id = 915\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap } from '../common';\nimport GithubSwatch from './GithubSwatch';\n\nexport var Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n map(colors, function (c) {\n return React.createElement(GithubSwatch, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: PropTypes.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Github);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/github/Github.js\n// module id = 916\n// module chunks = 19","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexport default handleHover(GithubSwatch);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/github/GithubSwatch.js\n// module id = 917\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport GooglePointerCircle from './GooglePointerCircle';\nimport GooglePointer from './GooglePointer';\nimport GoogleFields from './GoogleFields';\n\nexport var Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n React.createElement('div', { style: styles.swatch }),\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: GooglePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: GooglePointer,\n onChange: onChange\n })\n )\n ),\n React.createElement(GoogleFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object,\n header: PropTypes.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexport default ColorWrap(Google);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/google/Google.js\n// module id = 918\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\n\nexport var GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.column },\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default GoogleFields;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/google/GoogleFields.js\n// module id = 919\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointer = function GooglePointer(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/google/GooglePointer.js\n// module id = 920\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointerCircle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/google/GooglePointerCircle.js\n// module id = 921\n// module chunks = 19","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport HuePointer from './HuePointer';\n\nexport var HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n React.createElement(Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: PropTypes.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: HuePointer,\n styles: {}\n};\n\nexport default ColorWrap(HuePicker);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/hue/Hue.js\n// module id = 922\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/hue/HuePointer.js\n// module id = 923\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Raised } from '../common';\n\nexport var Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n Raised,\n { styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default ColorWrap(Material);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/material/Material.js\n// module id = 924\n// module chunks = 19","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport PhotoshopFields from './PhotoshopFields';\nimport PhotoshopPointerCircle from './PhotoshopPointerCircle';\nimport PhotoshopPointer from './PhotoshopPointer';\nimport PhotoshopButton from './PhotoshopButton';\nimport PhotoshopPreviews from './PhotoshopPreviews';\n\nexport var Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n React.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: PhotoshopPointerCircle,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: PhotoshopPointer,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls },\n React.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.previews },\n React.createElement(PhotoshopPreviews, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n React.createElement(\n 'div',\n { style: styles.actions },\n React.createElement(PhotoshopButton, { label: 'OK', onClick: this.props.onAccept, active: true }),\n React.createElement(PhotoshopButton, { label: 'Cancel', onClick: this.props.onCancel }),\n React.createElement(PhotoshopFields, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(React.Component);\n\nPhotoshop.propTypes = {\n header: PropTypes.string,\n styles: PropTypes.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexport default ColorWrap(Photoshop);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/photoshop/Photoshop.js\n// module id = 925\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return React.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexport default PhotoshopButton;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/photoshop/PhotoshopButton.js\n// module id = 926\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.fieldSymbols },\n React.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexport default PhotoshopPicker;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/photoshop/PhotoshopFields.js\n// module id = 927\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = reactCSS({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.pointer },\n React.createElement(\n 'div',\n { style: styles.left },\n React.createElement('div', { style: styles.leftInside })\n ),\n React.createElement(\n 'div',\n { style: styles.right },\n React.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexport default PhotoshopPointerCircle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/photoshop/PhotoshopPointer.js\n// module id = 928\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default PhotoshopPointerCircle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/photoshop/PhotoshopPointerCircle.js\n// module id = 929\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return React.createElement(\n 'div',\n null,\n React.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement('div', { style: styles.new }),\n React.createElement('div', { style: styles.current })\n ),\n React.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexport default PhotoshopPreviews;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/photoshop/PhotoshopPreviews.js\n// module id = 930\n// module chunks = 19","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\n\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.sliders },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(Checkboard, null),\n React.createElement('div', { style: styles.activeColor })\n )\n ),\n React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexport default ColorWrap(Sketch);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/sketch/Sketch.js\n// module id = 931\n// module chunks = 19","/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexport default SketchFields;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/sketch/SketchFields.js\n// module id = 932\n// module chunks = 19","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return React.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n React.createElement(Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n color: PropTypes.string,\n title: PropTypes.string\n })])).isRequired\n};\n\nexport default SketchPresetColors;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/sketch/SketchPresetColors.js\n// module id = 933\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport SliderSwatches from './SliderSwatches';\nimport SliderPointer from './SliderPointer';\n\nexport var Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(SliderSwatches, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: PropTypes.object\n};\nSlider.defaultProps = {\n pointer: SliderPointer,\n styles: {}\n};\n\nexport default ColorWrap(Slider);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/slider/Slider.js\n// module id = 934\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/slider/SliderPointer.js\n// module id = 935\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return React.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexport default SliderSwatch;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/slider/SliderSwatch.js\n// module id = 936\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport SliderSwatch from './SliderSwatch';\n\nexport var SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default SliderSwatches;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/slider/SliderSwatches.js\n// module id = 937\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap, Raised } from '../common';\nimport SwatchesGroup from './SwatchesGroup';\n\nexport var Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n React.createElement(\n Raised,\n null,\n React.createElement(\n 'div',\n { style: styles.overflow },\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (group) {\n return React.createElement(SwatchesGroup, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n styles: PropTypes.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexport default ColorWrap(Swatches);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/swatches/Swatches.js\n// module id = 938\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\nimport CheckIcon from '@icons/material/CheckIcon';\n\nexport var SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return React.createElement(\n Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement(\n 'div',\n { style: styles.check },\n React.createElement(CheckIcon, null)\n )\n );\n};\n\nexport default SwatchesColor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/swatches/SwatchesColor.js\n// module id = 939\n// module chunks = 19","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport SwatchesColor from './SwatchesColor';\n\nexport var SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.group },\n map(group, function (color, i) {\n return React.createElement(SwatchesColor, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexport default SwatchesGroup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/swatches/SwatchesGroup.js\n// module id = 940\n// module chunks = 19","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Swatch } from '../common';\n\nexport var Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (c, i) {\n return React.createElement(Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n React.createElement(EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right']),\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Twitter);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/components/twitter/Twitter.js\n// module id = 941\n// module chunks = 19","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/helpers/alpha.js\n// module id = 942\n// module chunks = 19","var checkboardCache = {};\n\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/helpers/checkboard.js\n// module id = 943\n// module chunks = 19","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/helpers/hue.js\n// module id = 944\n// module chunks = 19","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable no-invalid-this */\nimport React from 'react';\n\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n React.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(React.Component);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/helpers/interaction.js\n// module id = 945\n// module chunks = 19","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/helpers/saturation.js\n// module id = 946\n// module chunks = 19","export { default as AlphaPicker } from './components/alpha/Alpha';\nexport { default as BlockPicker } from './components/block/Block';\nexport { default as CirclePicker } from './components/circle/Circle';\nimport _default from './components/chrome/Chrome';\nexport { _default as default };\nexport { default as ChromePicker } from './components/chrome/Chrome';\nexport { default as CompactPicker } from './components/compact/Compact';\nexport { default as GithubPicker } from './components/github/Github';\nexport { default as HuePicker } from './components/hue/Hue';\nexport { default as MaterialPicker } from './components/material/Material';\nexport { default as PhotoshopPicker } from './components/photoshop/Photoshop';\nexport { default as SketchPicker } from './components/sketch/Sketch';\nexport { default as SliderPicker } from './components/slider/Slider';\nexport { default as SwatchesPicker } from './components/swatches/Swatches';\nexport { default as TwitterPicker } from './components/twitter/Twitter';\nexport { default as GooglePicker } from './components/google/Google';\n\nexport { default as CustomPicker } from './components/common/ColorWrap';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/es/index.js\n// module id = 947\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/~/prop-types/factoryWithThrowingShims.js\n// module id = 948\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-color/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 949\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ga4/dist/format.js\n// module id = 951\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ga4/dist/ga4.js\n// module id = 952\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ga4/dist/gtag.js\n// module id = 953\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-input-autosize/~/prop-types/factoryWithThrowingShims.js\n// module id = 954\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-input-autosize/~/prop-types/index.js\n// module id = 955\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-input-autosize/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 956\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-lifecycles-compat/react-lifecycles-compat.es.js\n// module id = 958\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _reactDom2.default.createPortal !== undefined;\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = document.createElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = document.createElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n parentSelector: function parentSelector() {\n return document.body;\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nexports.default = Modal;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/components/Modal.js\n// module id = 959\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus();\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus();\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n return this.shouldBeClosed() ? null : _react2.default.createElement(\n \"div\",\n {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n },\n _react2.default.createElement(\n \"div\",\n _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", this.props.aria || {}), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n }),\n this.props.children\n )\n );\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/components/ModalPortal.js\n// module id = 960\n// module chunks = 19","\"use strict\";\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before || !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/bodyTrap.js\n// module id = 961\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dumpClassLists = dumpClassLists;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\nfunction dumpClassLists() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n\";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n\";\n }\n\n classes = document.body.className;\n\n // eslint-disable-next-line max-len\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n\";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n\";\n }\n\n buffer += \"\\n\";\n\n // eslint-disable-next-line no-console\n console.log(buffer);\n }\n}\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/classList.js\n// module id = 962\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus();\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/focusManager.js\n// module id = 963\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === document.activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === document.activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === document.activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(document.activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/scopeTab.js\n// module id = 964\n// module chunks = 19","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/index.js\n// module id = 965\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/~/prop-types/factoryWithThrowingShims.js\n// module id = 966\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 967\n// module chunks = 19","import React, { Component } from 'react';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\nvar defaultProps = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(StateManager, _Component);\n\n function StateManager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.select = void 0;\n _this.state = {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n };\n\n _this.onChange = function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n\n _this.setState({\n value: value\n });\n };\n\n _this.onInputChange = function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n };\n\n _this.onMenuOpen = function () {\n _this.callProp('onMenuOpen');\n\n _this.setState({\n menuIsOpen: true\n });\n };\n\n _this.onMenuClose = function () {\n _this.callProp('onMenuClose');\n\n _this.setState({\n menuIsOpen: false\n });\n };\n\n return _this;\n }\n\n var _proto = StateManager.prototype;\n\n _proto.focus = function focus() {\n this.select.focus();\n };\n\n _proto.blur = function blur() {\n this.select.blur();\n } // FIXME: untyped flow code, return any\n ;\n\n _proto.getProp = function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n } // FIXME: untyped flow code, return any\n ;\n\n _proto.callProp = function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$props = this.props)[name].apply(_this$props, args);\n }\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n defaultInputValue = _this$props2.defaultInputValue,\n defaultMenuIsOpen = _this$props2.defaultMenuIsOpen,\n defaultValue = _this$props2.defaultValue,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\"]);\n\n return React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n };\n\n return StateManager;\n }(Component), _class.defaultProps = defaultProps, _temp;\n};\n\nexport { manageState as m };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/dist/stateManager-04f734a2.browser.esm.js\n// module id = 987\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/~/prop-types/factoryWithThrowingShims.js\n// module id = 988\n// module chunks = 19","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-select/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 989\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.autoprefix = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transforms = {\n borderRadius: function borderRadius(value) {\n return {\n msBorderRadius: value,\n MozBorderRadius: value,\n OBorderRadius: value,\n WebkitBorderRadius: value,\n borderRadius: value\n };\n },\n boxShadow: function boxShadow(value) {\n return {\n msBoxShadow: value,\n MozBoxShadow: value,\n OBoxShadow: value,\n WebkitBoxShadow: value,\n boxShadow: value\n };\n },\n userSelect: function userSelect(value) {\n return {\n WebkitTouchCallout: value,\n KhtmlUserSelect: value,\n MozUserSelect: value,\n msUserSelect: value,\n WebkitUserSelect: value,\n userSelect: value\n };\n },\n\n flex: function flex(value) {\n return {\n WebkitBoxFlex: value,\n MozBoxFlex: value,\n WebkitFlex: value,\n msFlex: value,\n flex: value\n };\n },\n flexBasis: function flexBasis(value) {\n return {\n WebkitFlexBasis: value,\n flexBasis: value\n };\n },\n justifyContent: function justifyContent(value) {\n return {\n WebkitJustifyContent: value,\n justifyContent: value\n };\n },\n\n transition: function transition(value) {\n return {\n msTransition: value,\n MozTransition: value,\n OTransition: value,\n WebkitTransition: value,\n transition: value\n };\n },\n\n transform: function transform(value) {\n return {\n msTransform: value,\n MozTransform: value,\n OTransform: value,\n WebkitTransform: value,\n transform: value\n };\n },\n absolute: function absolute(value) {\n var direction = value && value.split(' ');\n return {\n position: 'absolute',\n top: direction && direction[0],\n right: direction && direction[1],\n bottom: direction && direction[2],\n left: direction && direction[3]\n };\n },\n extend: function extend(name, otherElementStyles) {\n var otherStyle = otherElementStyles[name];\n if (otherStyle) {\n return otherStyle;\n }\n return {\n 'extend': name\n };\n }\n};\n\nvar autoprefix = exports.autoprefix = function autoprefix(elements) {\n var prefixed = {};\n (0, _forOwn3.default)(elements, function (styles, element) {\n var expanded = {};\n (0, _forOwn3.default)(styles, function (value, key) {\n var transform = transforms[key];\n if (transform) {\n expanded = _extends({}, expanded, transform(value));\n } else {\n expanded[key] = value;\n }\n });\n prefixed[element] = expanded;\n });\n return prefixed;\n};\n\nexports.default = autoprefix;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reactcss/lib/autoprefix.js\n// module id = 991\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.active = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar active = exports.active = function active(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reactcss/lib/components/active.js\n// module id = 992\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reactcss/lib/components/hover.js\n// module id = 993\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reactcss/lib/flattenNames.js\n// module id = 994\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reactcss/lib/loop.js\n// module id = 995\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/reactcss/lib/mergeClasses.js\n// module id = 996\n// module chunks = 19","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){\"use strict\";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,\"kind\",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,\"path\",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,\"E\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0}),Object.defineProperty(this,\"rhs\",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,\"N\",e),Object.defineProperty(this,\"rhs\",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,\"D\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,\"A\",e),Object.defineProperty(this,\"index\",{value:t,enumerable:!0}),Object.defineProperty(this,\"item\",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t=\"undefined\"==typeof e?\"undefined\":N(e);return\"object\"!==t?t:e===Math?\"math\":null===e?\"null\":Array.isArray(e)?\"array\":\"[object Date]\"===Object.prototype.toString.call(e)?\"date\":\"function\"==typeof e.toString&&/^\\/.*\\//.test(e.toString())?\"regexp\":\"object\"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if(\"undefined\"!=typeof d){if(c){if(\"function\"==typeof c&&c(g,d))return;if(\"object\"===(\"undefined\"==typeof c?\"undefined\":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}\"regexp\"===u(e)&&\"regexp\"===u(t)&&(e=e.toString(),t=t.toString());var y=\"undefined\"==typeof e?\"undefined\":N(e),v=\"undefined\"==typeof t?\"undefined\":N(t),b=\"undefined\"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m=\"undefined\"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if(\"date\"===u(e)&&e-t!==0)r(new n(g,e,t));else if(\"object\"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&(\"number\"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if(\"undefined\"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error(\"[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from 'redux-logger'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from 'redux-logger'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if(\"function\"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&\"function\"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E(\"0\",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+\":\"+A(e.getMinutes(),2)+\":\"+A(e.getSeconds(),2)+\".\"+A(e.getMilliseconds(),3)},O=\"undefined\"!=typeof performance&&null!==performance&&\"function\"==typeof performance.now?performance:Date,N=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return\"function\"==typeof t||\"function\"==typeof r?S()({dispatch:t,getState:r}):void console.error(\"\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from 'redux-logger'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from 'redux-logger'\\n\")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,\"__esModule\",{value:!0})});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-logger/dist/redux-logger.js\n// module id = 997\n// module chunks = 19","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/tinycolor2/tinycolor.js\n// module id = 1006\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _cookie = require('cookie');\n\nvar _cookie2 = _interopRequireDefault(_cookie);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Cookies = function () {\n function Cookies(cookies, hooks) {\n _classCallCheck(this, Cookies);\n\n this.changeListeners = [];\n\n this.cookies = parseCookies(cookies);\n this.hooks = hooks;\n this.HAS_DOCUMENT_COOKIE = (0, _utils.hasDocumentCookie)();\n }\n\n _createClass(Cookies, [{\n key: '_updateBrowserValues',\n value: function _updateBrowserValues() {\n if (!this.HAS_DOCUMENT_COOKIE) {\n return;\n }\n\n this.cookies = _cookie2.default.parse(document.cookie);\n }\n }, {\n key: 'get',\n value: function get(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n this._updateBrowserValues();\n return readCookie(this.cookies[name], options);\n }\n }, {\n key: 'getAll',\n value: function getAll() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._updateBrowserValues();\n var result = {};\n\n for (var name in this.cookies) {\n result[name] = readCookie(this.cookies[name], options);\n }\n\n return result;\n }\n }, {\n key: 'set',\n value: function set(name, value, options) {\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n value = JSON.stringify(value);\n }\n\n if (this.hooks && this.hooks.onSet) {\n this.hooks.onSet(name, value, options);\n }\n\n this.cookies[name] = value;\n\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = _cookie2.default.serialize(name, value, options);\n }\n\n this._emitChange({ name: name, value: value, options: options });\n }\n }, {\n key: 'remove',\n value: function remove(name, options) {\n var finalOptions = options = (0, _objectAssign2.default)({}, options, {\n expires: new Date(1970, 1, 1, 0, 0, 1),\n maxAge: 0\n });\n\n if (this.hooks && this.hooks.onRemove) {\n this.hooks.onRemove(name, finalOptions);\n }\n\n delete this.cookies[name];\n\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = _cookie2.default.serialize(name, '', finalOptions);\n }\n\n this._emitChange({ name: name, value: undefined, options: options });\n }\n }, {\n key: '_emitChange',\n value: function _emitChange(params) {\n for (var i = 0; i < this.changeListeners.length; ++i) {\n this.changeListeners[i](params);\n }\n }\n }, {\n key: 'addChangeListener',\n value: function addChangeListener(callback) {\n this.changeListeners.push(callback);\n }\n }, {\n key: 'removeChangeListener',\n value: function removeChangeListener(callback) {\n var idx = this.changeListeners.indexOf(callback);\n if (idx >= 0) {\n this.changeListeners.splice(idx, 1);\n }\n }\n }]);\n\n return Cookies;\n}();\n\nexports.default = Cookies;\n\n\nfunction parseCookies(cookies) {\n if (typeof cookies === 'string') {\n return _cookie2.default.parse(cookies);\n } else if ((typeof cookies === 'undefined' ? 'undefined' : _typeof(cookies)) === 'object' && cookies !== null) {\n return cookies;\n } else {\n return {};\n }\n}\n\nfunction isParsingCookie(value, doNotParse) {\n if (typeof doNotParse === 'undefined') {\n // We guess if the cookie start with { or [, it has been serialized\n doNotParse = !value || value[0] !== '{' && value[0] !== '[' && value[0] !== '\"';\n }\n\n return !doNotParse;\n}\n\nfunction readCookie(value) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (isParsingCookie(value, options.doNotParse)) {\n try {\n return JSON.parse(value);\n } catch (e) {\n // At least we tried\n }\n }\n\n return value;\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/universal-cookie/lib/Cookies.js\n// module id = 1007\n// module chunks = 19","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.hasDocumentCookie = hasDocumentCookie;\nexports.cleanCookies = cleanCookies;\n// Can we get/set cookies on document.cookie?\n\nfunction hasDocumentCookie() {\n return (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object' && typeof document.cookie === 'string';\n}\n\n//backwards compatibility\nvar HAS_DOCUMENT_COOKIE = exports.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\n\nfunction cleanCookies() {\n document.cookie.split(';').forEach(function (c) {\n document.cookie = c.replace(/^ +/, '').replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/universal-cookie/lib/utils.js\n// module id = 1008\n// module chunks = 19","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\nvar pairSplitRegExp = /; */;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(pairSplitRegExp);\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var eq_idx = pair.indexOf('=');\n\n // skip things that don't look like key=value\n if (eq_idx < 0) {\n continue;\n }\n\n var key = pair.substr(0, eq_idx).trim()\n var val = pair.substr(++eq_idx, pair.length).trim();\n\n // quoted values\n if ('\"' == val[0]) {\n val = val.slice(1, -1);\n }\n\n // only assign once\n if (undefined == obj[key]) {\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/universal-cookie/~/cookie/index.js\n// module id = 1009\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNFODM0NTI7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojRTgzNDUyO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTc5LDJjNDIuNSwwLDc3LDM0LjUsNzcsNzdzLTM0LjUsNzctNzcsNzdTMiwxMjEuNSwyLDc5UzM2LjUsMiw3OSwyIE03OSwwQzM1LjQsMCwwLDM1LjQsMCw3OXMzNS40LDc5LDc5LDc5DQoJCXM3OS0zNS40LDc5LTc5UzEyMi42LDAsNzksMEw3OSwweiIvPg0KPC9nPg0KPGcgaWQ9ImRlcy1tYWduaWZ5XzFfIj4NCgk8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSI5NC44IiBjeT0iNjMuMiIgcj0iMjUuNCIvPg0KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik05NC44LDQ3LjNjLTguOCwwLTE1LjgsNy4xLTE1LjgsMTUuOCIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00OC42LDExOC40Yy0yLjUsMi41LTYuNSwyLjUtOSwwYy0yLjUtMi41LTIuNS02LjUsMC05bDIyLjItMjIuMmMyLjUtMi41LDYuNS0yLjUsOSwwYzIuNSwyLjUsMi41LDYuNSwwLDkNCgkJTDQ4LjYsMTE4LjR6Ii8+DQoJPGxpbmUgY2xhc3M9InN0MCIgeDE9IjY3LjciIHkxPSI4NS41IiB4Mj0iNzQuNyIgeTI9Ijc4LjUiLz4NCgk8bGluZSBjbGFzcz0ic3QwIiB4MT0iNzIuNSIgeTE9IjkwLjMiIHgyPSI3OS40IiB5Mj0iODMuMyIvPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/Bill Finder_Icon.svg\n// module id = 1010\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojODA4MDgwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiM4MDgwODA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojODA4MDgwO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6IzgwODA4MDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTc5LDJjNDIuNSwwLDc3LDM0LjUsNzcsNzdzLTM0LjUsNzctNzcsNzdTMiwxMjEuNSwyLDc5UzM2LjUsMiw3OSwyIE03OSwwQzM1LjQsMCwwLDM1LjQsMCw3OXMzNS40LDc5LDc5LDc5DQoJCXM3OS0zNS40LDc5LTc5UzEyMi42LDAsNzksMEw3OSwweiIvPg0KPC9nPg0KPGcgaWQ9ImRlcy1tYWduaWZ5XzFfIj4NCgk8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSI5NC44IiBjeT0iNjMuMiIgcj0iMjUuNCIvPg0KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik05NC44LDQ3LjNjLTguOCwwLTE1LjgsNy4xLTE1LjgsMTUuOCIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00OC42LDExOC40Yy0yLjUsMi41LTYuNSwyLjUtOSwwYy0yLjUtMi41LTIuNS02LjUsMC05bDIyLjItMjIuMmMyLjUtMi41LDYuNS0yLjUsOSwwYzIuNSwyLjUsMi41LDYuNSwwLDkNCgkJTDQ4LjYsMTE4LjR6Ii8+DQoJPGxpbmUgY2xhc3M9InN0MCIgeDE9IjY3LjciIHkxPSI4NS41IiB4Mj0iNzQuNyIgeTI9Ijc4LjUiLz4NCgk8bGluZSBjbGFzcz0ic3QwIiB4MT0iNzIuNSIgeTE9IjkwLjMiIHgyPSI3OS40IiB5Mj0iODMuMyIvPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/Bill Finder_Icon_Disa.svg\n// module id = 1011\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNFODM0NTI7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojRTgzNDUyO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTc5LDJjNDIuNSwwLDc3LDM0LjUsNzcsNzdzLTM0LjUsNzctNzcsNzdTMiwxMjEuNSwyLDc5UzM2LjYsMiw3OSwyIE03OSwwQzM1LjQsMCwwLDM1LjQsMCw3OXMzNS40LDc5LDc5LDc5DQoJCXM3OS0zNS40LDc5LTc5UzEyMi43LDAsNzksMEw3OSwweiIvPg0KPC9nPg0KPGcgaWQ9ImxvYy1nbG9iZV8xXyI+DQoJPGNpcmNsZSBjbGFzcz0ic3QxIiBjeD0iNzkiIGN5PSI3NC43IiByPSIyOS41Ii8+DQoJPGxpbmUgY2xhc3M9InN0MCIgeDE9IjY5LjIiIHkxPSIxMjMuOCIgeDI9Ijg4LjgiIHkyPSIxMjMuOCIvPg0KCTxsaW5lIGNsYXNzPSJzdDAiIHgxPSI3OSIgeTE9IjExNCIgeDI9Ijc5IiB5Mj0iMTIzLjgiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTUuNCwzOC43YzEzLjUsNi4yLDIyLjksMjAuMiwyMi45LDM2YzAsMjEuNy0xNy42LDM5LjMtMzkuMywzOS4zYy01LjcsMC0xMS4xLTEuMi0xNS45LTMuNCIvPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/GlobalTrack_Icon.svg\n// module id = 1012\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojODA4MDgwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiM4MDgwODA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojODA4MDgwO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6IzgwODA4MDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTc5LDJjNDIuNSwwLDc3LDM0LjUsNzcsNzdzLTM0LjUsNzctNzcsNzdTMiwxMjEuNSwyLDc5UzM2LjYsMiw3OSwyIE03OSwwQzM1LjQsMCwwLDM1LjQsMCw3OXMzNS40LDc5LDc5LDc5DQoJCXM3OS0zNS40LDc5LTc5UzEyMi43LDAsNzksMEw3OSwweiIvPg0KPC9nPg0KPGcgaWQ9ImxvYy1nbG9iZV8xXyI+DQoJPGNpcmNsZSBjbGFzcz0ic3QxIiBjeD0iNzkiIGN5PSI3NC43IiByPSIyOS41Ii8+DQoJPGxpbmUgY2xhc3M9InN0MCIgeDE9IjY5LjIiIHkxPSIxMjMuOCIgeDI9Ijg4LjgiIHkyPSIxMjMuOCIvPg0KCTxsaW5lIGNsYXNzPSJzdDAiIHgxPSI3OSIgeTE9IjExNCIgeDI9Ijc5IiB5Mj0iMTIzLjgiLz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTUuNCwzOC43YzEzLjUsNi4yLDIyLjksMjAuMiwyMi45LDM2YzAsMjEuNy0xNy42LDM5LjMtMzkuMywzOS4zYy01LjcsMC0xMS4xLTEuMi0xNS45LTMuNCIvPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/GlobalTrack_Icon_Disa.svg\n// module id = 1013\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNFODM0NTI7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojRTgzNDUyO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHJlY3QgeD0iMzcuMyIgeT0iMTA0LjQiIGNsYXNzPSJzdDAiIHdpZHRoPSI4My40IiBoZWlnaHQ9IjEyLjQiLz4NCjxyZWN0IHg9IjM3LjMiIHk9IjU4LjEiIGNsYXNzPSJzdDAiIHdpZHRoPSI4My40IiBoZWlnaHQ9IjYuMiIvPg0KPHJlY3QgeD0iNDYuNSIgeT0iNzAuNCIgY2xhc3M9InN0MSIgd2lkdGg9IjkuMyIgaGVpZ2h0PSIyNy44Ii8+DQo8cmVjdCB4PSI3NC4zIiB5PSI3MC40IiBjbGFzcz0ic3QxIiB3aWR0aD0iOS4zIiBoZWlnaHQ9IjI3LjgiLz4NCjxyZWN0IHg9IjEwMi4xIiB5PSI3MC40IiBjbGFzcz0ic3QxIiB3aWR0aD0iOS4zIiBoZWlnaHQ9IjI3LjgiLz4NCjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMzcuMyw1OC4xIDEyMC43LDU4LjEgNzksMzMuNCAiLz4NCjxnPg0KCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik03OSwyYzQyLjUsMCw3NywzNC41LDc3LDc3cy0zNC41LDc3LTc3LDc3UzIsMTIxLjUsMiw3OVMzNi41LDIsNzksMiBNNzksMEMzNS40LDAsMCwzNS40LDAsNzlzMzUuNCw3OSw3OSw3OQ0KCQlzNzktMzUuNCw3OS03OVMxMjIuNiwwLDc5LDBMNzksMHoiLz4NCjwvZz4NCjwvc3ZnPg0K\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/LegisTrack_Icon.svg\n// module id = 1014\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojODA4MDgwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiM4MDgwODA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojODA4MDgwO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6IzgwODA4MDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHJlY3QgeD0iMzcuMyIgeT0iMTA0LjQiIGNsYXNzPSJzdDAiIHdpZHRoPSI4My40IiBoZWlnaHQ9IjEyLjQiLz4NCjxyZWN0IHg9IjM3LjMiIHk9IjU4LjEiIGNsYXNzPSJzdDAiIHdpZHRoPSI4My40IiBoZWlnaHQ9IjYuMiIvPg0KPHJlY3QgeD0iNDYuNSIgeT0iNzAuNCIgY2xhc3M9InN0MSIgd2lkdGg9IjkuMyIgaGVpZ2h0PSIyNy44Ii8+DQo8cmVjdCB4PSI3NC4zIiB5PSI3MC40IiBjbGFzcz0ic3QxIiB3aWR0aD0iOS4zIiBoZWlnaHQ9IjI3LjgiLz4NCjxyZWN0IHg9IjEwMi4xIiB5PSI3MC40IiBjbGFzcz0ic3QxIiB3aWR0aD0iOS4zIiBoZWlnaHQ9IjI3LjgiLz4NCjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMzcuMyw1OC4xIDEyMC43LDU4LjEgNzksMzMuNCAiLz4NCjxnPg0KCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik03OSwyYzQyLjUsMCw3NywzNC41LDc3LDc3cy0zNC41LDc3LTc3LDc3UzIsMTIxLjUsMiw3OVMzNi41LDIsNzksMiBNNzksMEMzNS40LDAsMCwzNS40LDAsNzlzMzUuNCw3OSw3OSw3OQ0KCQlzNzktMzUuNCw3OS03OVMxMjIuNiwwLDc5LDBMNzksMHoiLz4NCjwvZz4NCjwvc3ZnPg0K\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/LegisTrack_Icon_Disa.svg\n// module id = 1015\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmlld0JveD0iMCAwIDUwMCA1MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogIDxsaW5lIGlkPSJMaW5lXzIyIiBkYXRhLW5hbWU9IkxpbmUgMjIiIHgxPSI1MCIgeDI9IjQ1MCIgeTE9IjI1MCIgeTI9IjI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEzIi8+DQo8L3N2Zz4NCg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/Line_Icon.svg\n// module id = 1016\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNFODM0NTI7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojRTgzNDUyO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTc5LDJjNDIuNSwwLDc3LDM0LjUsNzcsNzdzLTM0LjUsNzctNzcsNzdTMiwxMjEuNSwyLDc5UzM2LjUsMiw3OSwyIE03OSwwQzM1LjQsMCwwLDM1LjQsMCw3OXMzNS40LDc5LDc5LDc5DQoJCXM3OS0zNS40LDc5LTc5UzEyMi42LDAsNzksMEw3OSwweiIvPg0KPC9nPg0KPGcgaWQ9ImxvYy1wb2ludHMiPg0KCTxnPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzguNywxMjAuNUw2MC4zLDc5LjlsMCwwYy0xLjMtMi43LTIuMS01LjgtMi4xLTljMC0xMS4zLDkuMi0yMC40LDIwLjQtMjAuNHMyMC41LDkuMSwyMC41LDIwLjQNCgkJCWMwLDMuMi0wLjgsNi4zLTIuMSw5bDAsMEw3OC43LDEyMC41eiIvPg0KCQk8Zz4NCgkJCTxjaXJjbGUgY2xhc3M9InN0MSIgY3g9Ijc4LjciIGN5PSI3MC45IiByPSI4LjgiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xMDAuNyw1Ni40YzAuNC0wLjEsMC45LTAuMiwxLjQtMC4yYzMuMiwwLDUuOCwyLjYsNS44LDUuOGMwLDIuMy0xLjMsNC4yLTMuMiw1LjIiLz4NCgkJPC9nPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTEuNiw0OGMyLjktMi4xLDYuNS0zLjQsMTAuNC0zLjRjOS43LDAsMTcuNSw3LjgsMTcuNSwxNy41YzAsMi0wLjQsNC0xLDUuOGwwLDBsLTE2LjUsMzhsLTUuNC0xMi4zIi8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTU2LjcsNTYuNGMtMC40LTAuMS0wLjktMC4yLTEuNC0wLjJjLTMuMiwwLTUuOCwyLjYtNS44LDUuOGMwLDIuMywxLjMsNC4yLDMuMiw1LjIiLz4NCgkJPC9nPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNjUuNyw0OGMtMi45LTIuMS02LjUtMy40LTEwLjQtMy40Yy05LjcsMC0xNy41LDcuOC0xNy41LDE3LjVjMCwyLDAuNCw0LDEsNS44bDAsMGwxNi41LDM4bDUuNC0xMi4zIi8+DQoJPC9nPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/LocalTrack_Icon.svg\n// module id = 1017\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojODA4MDgwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiM4MDgwODA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojODA4MDgwO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6IzgwODA4MDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTc5LDJjNDIuNSwwLDc3LDM0LjUsNzcsNzdzLTM0LjUsNzctNzcsNzdTMiwxMjEuNSwyLDc5UzM2LjUsMiw3OSwyIE03OSwwQzM1LjQsMCwwLDM1LjQsMCw3OXMzNS40LDc5LDc5LDc5DQoJCXM3OS0zNS40LDc5LTc5UzEyMi42LDAsNzksMEw3OSwweiIvPg0KPC9nPg0KPGcgaWQ9ImxvYy1wb2ludHMiPg0KCTxnPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzguNywxMjAuNUw2MC4zLDc5LjlsMCwwYy0xLjMtMi43LTIuMS01LjgtMi4xLTljMC0xMS4zLDkuMi0yMC40LDIwLjQtMjAuNHMyMC41LDkuMSwyMC41LDIwLjQNCgkJCWMwLDMuMi0wLjgsNi4zLTIuMSw5bDAsMEw3OC43LDEyMC41eiIvPg0KCQk8Zz4NCgkJCTxjaXJjbGUgY2xhc3M9InN0MSIgY3g9Ijc4LjciIGN5PSI3MC45IiByPSI4LjgiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xMDAuNyw1Ni40YzAuNC0wLjEsMC45LTAuMiwxLjQtMC4yYzMuMiwwLDUuOCwyLjYsNS44LDUuOGMwLDIuMy0xLjMsNC4yLTMuMiw1LjIiLz4NCgkJPC9nPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTEuNiw0OGMyLjktMi4xLDYuNS0zLjQsMTAuNC0zLjRjOS43LDAsMTcuNSw3LjgsMTcuNSwxNy41YzAsMi0wLjQsNC0xLDUuOGwwLDBsLTE2LjUsMzhsLTUuNC0xMi4zIi8+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTU2LjcsNTYuNGMtMC40LTAuMS0wLjktMC4yLTEuNC0wLjJjLTMuMiwwLTUuOCwyLjYtNS44LDUuOGMwLDIuMywxLjMsNC4yLDMuMiw1LjIiLz4NCgkJPC9nPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNjUuNyw0OGMtMi45LTIuMS02LjUtMy40LTEwLjQtMy40Yy05LjcsMC0xNy41LDcuOC0xNy41LDE3LjVjMCwyLDAuNCw0LDEsNS44bDAsMGwxNi41LDM4bDUuNC0xMi4zIi8+DQoJPC9nPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/LocalTrack_Icon_Disa.svg\n// module id = 1018\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iUXVpY2tfTGlua3MiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCINCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTU4IDE1OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTU4IDE1ODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6I0U4MzQ1Mjt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNFODM0NTI7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCjwvc3R5bGU+DQo8Zz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzksMmM0Mi41LDAsNzcsMzQuNSw3Nyw3N3MtMzQuNSw3Ny03Nyw3N1MyLDEyMS41LDIsNzlTMzYuNiwyLDc5LDIgTTc5LDBDMzUuNCwwLDAsMzUuNCwwLDc5czM1LjQsNzksNzksNzkNCgkJczc5LTM1LjQsNzktNzlTMTIyLjcsMCw3OSwwTDc5LDB6Ii8+DQo8L2c+DQo8ZyBpZD0idWktbGluay1icm9rZW4tMl8yXyI+DQoJPGc+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjU3LjEiIHkxPSI1Ny4xIiB4Mj0iNDciIHkyPSI0NyIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjY3LjMiIHkxPSI1My43IiB4Mj0iNjcuMyIgeTI9IjQwLjIiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxsaW5lIGNsYXNzPSJzdDEiIHgxPSI1My44IiB5MT0iNjcuMiIgeDI9IjQwLjMiIHkyPSI2Ny4yIi8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8bGluZSBjbGFzcz0ic3QxIiB4MT0iMTAxIiB5MT0iMTAwLjkiIHgyPSIxMTEuMSIgeTI9IjExMSIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjkwLjgiIHkxPSIxMDQuMyIgeDI9IjkwLjgiIHkyPSIxMTcuOCIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjEwNC4zIiB5MT0iOTAuOCIgeDI9IjExNy44IiB5Mj0iOTAuOCIvPg0KCQk8L2c+DQoJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik04Mi40LDkwLjZjLTMuNy0wLjUtNy4yLTIuMi0xMC01Yy02LjktNi45LTYuOS0xOCwwLTI0LjlMOTEuMSw0MmM2LjktNi45LDE4LTYuOSwyNC45LDBzNi45LDE4LDAsMjQuOQ0KCQkJTDk3LjMsODUuNiIvPg0KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNzUuNyw2Ny40YzMuNywwLjUsNy4yLDIuMiwxMCw1YzYuOSw2LjksNi45LDE4LDAsMjQuOUw2NywxMTZjLTYuOSw2LjktMTgsNi45LTI0LjksMHMtNi45LTE4LDAtMjQuOQ0KCQkJbDE4LjctMTguNyIvPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg0K\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/QuickLinks_Icon.svg\n// module id = 1019\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iUXVpY2tfTGlua3MiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCINCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTU4IDE1OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTU4IDE1ODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzgwODA4MDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiM4MDgwODA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojODA4MDgwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCjwvc3R5bGU+DQo8Zz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzksMmM0Mi41LDAsNzcsMzQuNSw3Nyw3N3MtMzQuNSw3Ny03Nyw3N1MyLDEyMS41LDIsNzlTMzYuNiwyLDc5LDIgTTc5LDBDMzUuNCwwLDAsMzUuNCwwLDc5czM1LjQsNzksNzksNzkNCgkJczc5LTM1LjQsNzktNzlTMTIyLjcsMCw3OSwwTDc5LDB6Ii8+DQo8L2c+DQo8ZyBpZD0idWktbGluay1icm9rZW4tMl8yXyI+DQoJPGc+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjU3LjEiIHkxPSI1Ny4xIiB4Mj0iNDciIHkyPSI0NyIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjY3LjMiIHkxPSI1My43IiB4Mj0iNjcuMyIgeTI9IjQwLjIiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxsaW5lIGNsYXNzPSJzdDEiIHgxPSI1My44IiB5MT0iNjcuMiIgeDI9IjQwLjMiIHkyPSI2Ny4yIi8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8bGluZSBjbGFzcz0ic3QxIiB4MT0iMTAxIiB5MT0iMTAwLjkiIHgyPSIxMTEuMSIgeTI9IjExMSIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjkwLjgiIHkxPSIxMDQuMyIgeDI9IjkwLjgiIHkyPSIxMTcuOCIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjEwNC4zIiB5MT0iOTAuOCIgeDI9IjExNy44IiB5Mj0iOTAuOCIvPg0KCQk8L2c+DQoJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik04Mi40LDkwLjZjLTMuNy0wLjUtNy4yLTIuMi0xMC01Yy02LjktNi45LTYuOS0xOCwwLTI0LjlMOTEuMSw0MmM2LjktNi45LDE4LTYuOSwyNC45LDBzNi45LDE4LDAsMjQuOQ0KCQkJTDk3LjMsODUuNiIvPg0KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNzUuNyw2Ny40YzMuNywwLjUsNy4yLDIuMiwxMCw1YzYuOSw2LjksNi45LDE4LDAsMjQuOUw2NywxMTZjLTYuOSw2LjktMTgsNi45LTI0LjksMHMtNi45LTE4LDAtMjQuOQ0KCQkJbDE4LjctMTguNyIvPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg0K\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/QuickLinks_Icon_Disa.svg\n// module id = 1020\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojRkZGRkZGO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiNFODM0NTI7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojRTgzNDUyO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6I0ZGRkZGRjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTc5LDJjNDIuNSwwLDc3LDM0LjUsNzcsNzdzLTM0LjUsNzctNzcsNzdTMiwxMjEuNSwyLDc5UzM2LjUsMiw3OSwyIE03OSwwQzM1LjQsMCwwLDM1LjQsMCw3OXMzNS40LDc5LDc5LDc5DQoJCXM3OS0zNS40LDc5LTc5UzEyMi42LDAsNzksMEw3OSwweiIvPg0KPC9nPg0KPGcgaWQ9ImRvYy1maWxlIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTMuMywzOS44aDM5LjJsMTYuNiwxNi42djU3LjNjMCwyLjUtMiw0LjUtNC41LDQuNUg1My4zYy0yLjUsMC00LjUtMi00LjUtNC41VjQ0LjMNCgkJCQlDNDguOCw0MS44LDUwLjgsMzkuOCw1My4zLDM5LjgiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik05MSwzOS44djEzLjZjMCwyLjUsMiw0LjUsNC41LDQuNWgxMy42Ii8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8bGluZSBjbGFzcz0ic3QxIiB4MT0iNTcuOSIgeTE9IjU5LjQiIHgyPSI3NiIgeTI9IjU5LjQiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxsaW5lIGNsYXNzPSJzdDEiIHgxPSI1Ny45IiB5MT0iNjguNSIgeDI9IjEwMC4xIiB5Mj0iNjguNSIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjU3LjkiIHkxPSI3Ny41IiB4Mj0iMTAwLjEiIHkyPSI3Ny41Ii8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8bGluZSBjbGFzcz0ic3QxIiB4MT0iNTcuOSIgeTE9Ijg2LjYiIHgyPSI5MSIgeTI9Ijg2LjYiLz4NCgkJPC9nPg0KCTwvZz4NCjwvZz4NCjxwb2x5bGluZSBjbGFzcz0ic3QxIiBwb2ludHM9Ijc5LDk5LjYgODYuMywxMDcgMTAwLjEsOTMuMiAiLz4NCjwvc3ZnPg0K\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/RegsTrack_Icon.svg\n// module id = 1021\n// module chunks = 19","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGVnaXNUcmFjayIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxNTggMTU4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNTggMTU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojODA4MDgwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiM4MDgwODA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQ0KCS5zdDJ7ZmlsbDojODA4MDgwO30NCgkuc3Qze2ZpbGw6bm9uZTtzdHJva2U6IzgwODA4MDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTc5LDJjNDIuNSwwLDc3LDM0LjUsNzcsNzdzLTM0LjUsNzctNzcsNzdTMiwxMjEuNSwyLDc5UzM2LjUsMiw3OSwyIE03OSwwQzM1LjQsMCwwLDM1LjQsMCw3OXMzNS40LDc5LDc5LDc5DQoJCXM3OS0zNS40LDc5LTc5UzEyMi42LDAsNzksMEw3OSwweiIvPg0KPC9nPg0KPGcgaWQ9ImRvYy1maWxlIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNNTMuMywzOS44aDM5LjJsMTYuNiwxNi42djU3LjNjMCwyLjUtMiw0LjUtNC41LDQuNUg1My4zYy0yLjUsMC00LjUtMi00LjUtNC41VjQ0LjMNCgkJCQlDNDguOCw0MS44LDUwLjgsMzkuOCw1My4zLDM5LjgiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik05MSwzOS44djEzLjZjMCwyLjUsMiw0LjUsNC41LDQuNWgxMy42Ii8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8bGluZSBjbGFzcz0ic3QxIiB4MT0iNTcuOSIgeTE9IjU5LjQiIHgyPSI3NiIgeTI9IjU5LjQiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxsaW5lIGNsYXNzPSJzdDEiIHgxPSI1Ny45IiB5MT0iNjguNSIgeDI9IjEwMC4xIiB5Mj0iNjguNSIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGxpbmUgY2xhc3M9InN0MSIgeDE9IjU3LjkiIHkxPSI3Ny41IiB4Mj0iMTAwLjEiIHkyPSI3Ny41Ii8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8bGluZSBjbGFzcz0ic3QxIiB4MT0iNTcuOSIgeTE9Ijg2LjYiIHgyPSI5MSIgeTI9Ijg2LjYiLz4NCgkJPC9nPg0KCTwvZz4NCjwvZz4NCjxwb2x5bGluZSBjbGFzcz0ic3QxIiBwb2ludHM9Ijc5LDk5LjYgODYuMywxMDcgMTAwLjEsOTMuMiAiLz4NCjwvc3ZnPg0K\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/RegsTrack_Icon_Disa.svg\n// module id = 1022\n// module chunks = 19","module.exports = __webpack_public_path__ + \"8bf3d6729db79c79c2b0d537bede88c9.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/bookmark.png\n// module id = 1023\n// module chunks = 19","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS8AAAA8CAYAAAFA7AzPAAAACXBIWXMAAAsSAAALEgHS3X78AAAQ5UlEQVR4nO1d71HkPA/fnbkGuC/3HUqAp4OjgnegBCiBLQFKOEqAeSqADl4oAb7fl6OEfawg5RRFsuUkziaMfzM7u5u/jiLLsvyz/G2/32+WiG+HLoCFpmC///nf/sf//92G74vw/SgPov3s/1P4fy73bbfbX+ENXIfv8LXfym88pvdbO64jMa1QiF0owFXYfx97Sl4osZ0KchO+zmPXIHzDAm2lVAhh+1HYfgf7w99owagQWuEQt7j/KHx/yIL3CsZeZfuKGP6E7anyNAg3fAg3uVS2d14fbY5dKykxvp9teuf76VwoFC+EJj3aFnk42LdrdSxWKLk//L62zrP0i/+W39qx36ody8S3oB+/4NVwHRO/H8LXhbGvo5fMHl2E70fUl9fw+4z2h69HqiBoPm7VWikLpeAi92mhUPjznQqVez1XrQx4dRYoZsOagobPsTxHLRi8qlCgnu0ROPUUjL3Kp/AN9vCYXisechw7v1MwKFTKhsF3pGXY03GKxM7poVihj9jpH/xaZN/guPZVaoXRtgl71jtO2K3n8PXMt4um6N46d7F2bKlo7atoCjtvSe6T+/kxqfMCnrkrF7uubFL5myYTyHZ/hP3f+fFcZeV9lOb6Lhy3i+zfhf135PS88MLCg1B7ILfH6qUEP2/DBGUdJx7ohT8sPAD5x3gICAvM9wnW8z/atelcw1o2Qgj7r8LvX/Cf7zS9xFDgs/BQPzUt8YKajkTzoUK7L7Rj4UF+xrSEHQv2p7Ofnxdx/m7DPtLSXtOm3Zs0DBrVY6ERj45mCo79w84ZBEPDmjIJd7z1Sryghw7ff2SV3aCGWefGNOwRtaO1CR5hIaA6tMLF63h8ghZc2CQ8cuWYBmyEsECrjrn2MOE+iP9P4euntzwEoZl/bRgvaAyxZj3nGO89E9VQagvfdyn+92xn7Nqx/dWtyMRiu21LRRVYJrgfxjtmlxS6S/lY/BixTTqW5nkMO4jAwQ/0wzplYp2/qFMrj5H7NDdDOMXmftKwU3oYfAhoZTp9NI+PxltHfHAIPzYt1ADDf0oFxQdoy4Quh3Rq9+KhH6xySiFQa8w9fb6fg1dJ8kd6MYUMZAddErDK5HERcssCNWKXOogLrDkhvPGTnLtg1QNA0/2Uc64DTZmg+xM7KOIigADAm7+SEQgF1uhBB52IWI6Hz3CL13j2Bto5rKpOVXGoh4/XuEPHF/qJPYEJp1cN/FNZaFvHcUXjfxG+3zI1rQ3049DJR+xgjphNRKE1ZQrfbylNI4igG/QR1UjjEOeVWklQ/WfshEPfMNeGHbMW7y18TC/cCwzfPGMnPLdMb3iNyb1y0jBQW9AKeFDQFlfs18BR+hAXYmXqDF0pVWeqMvTAjf5RbsQBx0i465HdyRX3bP0wKpPhEzW2Set4M/Dxlr01QBmDdn1u9CmIdp0aT2aQTTcUSAby3PaMA+1XWyYtzg52bcNCQGK/FA4vK5RpkBZyow8FMgXljFT0AnmxFtcRrYiWyWoEYoOx+D9qY2ONQe1LZqKGdyqKotbIiqLoKZgVxQo4C22ayrHI8d4SwSFzKNlZRg3qaKizzNIrbKEMIxPOQqsQ5aLA4OFGD1O4e8yeaGDqHAU95y3zfEBnHI7zBKJDxwEvEIoYMsLrAQ6Mym2nhlI/Z1w651iJd7khNcQe8BKOMV944iVd4P7Ui+7JKmw7TSm2A7+QWjDmHXdkxi3YC/vdqbkQ6tlgpAAGesO+TlTSIqVo+yLQwslQJq138cq3i/6ryd+wkFlpOnLitZW6afi7F+6Gl8f+vvNeStgH573hXzV2x+CWVQSy7GCNb/C3xhDowKuEXMHggcjkw3d789yI9Ui84udqxnvmwJSTN7apIZwLNT/XcpSS1WSRMR6ngMEwaE6aGsqs0DlE6qe6oQZiprH7fWCgqdkHMeDC93f5fgCMwrVyYk3eOZJAi4IYc+yeHxgAa/YpRGcLnOQlkYyVe31AOUOlbXqY0J9wGOgj7B8dpDfQxp2VkZMxcfIiQF9Hzh95At9ro3BGJ0YrD85glvsG4p5ROyeBGaZg8XnqLVGs/yTs6zm/Q8HJe5vuiPMO76v6fVNiTMeF0QxaOaHSnWCzNxmExVFlpfl+BqKsyxSyfTDhKN8z4vQdWjB6ODhuSp/shv2+FQrHjymmYDkQrM+2xmPTCT8HyUk4+dYL7MjKaOIWIysAt2BQKGrfr8KLfkflgi6xVXNGAcIQ/H+sNxoJWcyNjpzCS35H5fLICbaRQ35M1gZDH2/suJ4vB2EI/j/GdJsoZDEJuJPf+BXspfasSYEYGHdYtQBja/o3+d1wNyJB116glfwv9kJ7lsRqPmjWBTv3BptWDitQuwhZESLxPD3QSphCibzXSB1HVE/HdbLiXp57pzAmGDnkXAcdKymrkQHUQefXsciKoqgKVlEUla5TUQzVelUUQ1WuimKoylVRDFW5KopBY69qHv6rxV6YgklqXMecmjOWLes9PxYXM4KKrx7mgjJPneAaq1SYs1EyIjsv+tyxmJZ3xp86ZxQQEfrpkLxCmZBsTBg68c77mhURQZ9GkkOlzgW8hf1JavWmkKxSZc8FH9COUX3pGI25MBVFWdbkxVFxADjXN3WMyloQrFULnqGcYrLa/k37OBqdqbXsdzuBA1LObf4OwPZG4qemJ3swEQWbYE7cMNCRE1kZVBxTTgjOLDVzAW5FYuQSENlNWjr0xjc12kXlUR16zkj48ZlGtig1OVxfnfWfm5ZhbvDma/+Z6tstpwQfC5o9tZlDyo62fbBCIltDDqiPxlJ6i/ylgENMjIBFcZZmRExJissKFHgKEqSqXNBz401FYUce0AoMrCbLvgPbF6tcUNt58zATa6KVFVhOJC7S9klkNRW7VhII29kv2CTN9WKtWSnF8riMQEdO2BzNWQEml1WJJhEgZwjx2MnN78+1UOacfkYYk9UuF5IkGXXwWQ4xAhAAL8ZMPxuJQbKKhEQ8fpskTKoOvpwdtMWQBNWC49LxLcjvzf5SBrx2DuEBKM/JF4U5jTpymjpGpAFTBxB6spqC8jxwZpMqM42V+p1WOKFt2NU380uMBHdQSWA8HgYmOztLYWnAS8AEpa2c0Bp4gqBDUVRWU1cOKxRxieEBPpEAckt8LxAaaF8OpQ8WTv3UyVslcuNcLfafy1P15BS2fS8Up2plsce0xsKpd8tqpCINj3MBcN6iXAMMmoLSPcdVgabrCx+mymnTHf5pewyiJkMbnBzymAJjlvuYC7xnJWrvbHLCcixeVtxyce+fx7g+hmR99sAb+f/tWAxzRqhywrwOgy8qlKXX7Hij/87U4bPg0BF673DJYhkSQ5EYrtE6BKuTlRWh76x/WfD+fDS/01kQyeuWypBoww8DmqnWL8PUAS2MjDodWXHFFAnsFiMrrlydVSIMpSoWEpC90JLNsYCVt8Ia9urIyVAqS04QaG17lhbh0C7qJ6TFG9skD4CZokklC+KKGtDOW0MB9z/sRcKzgZYp6/glMCTAqgTBRuW0Z6sfiXPfw7mQ0MTidWmLDcsFM5KYg7LjgYzQwxjZDmsyCe8uc4yRP1RsAJT7EB5BwPGD0wEJDM78D8CxxJ3gQXX4WZFzm+T8gqoMzeB1ZMD4kLLi982SmRVEbYQ3pATedYg8OSGmyj+hHD9J8jZSsoHnunJieI/1BEVHsjayZXbo3mLFF0ZVropiqMpVUQxVuSqKoWa5qaioWCVqy1hRUbFKVONVUVGxSlTjVVFRsUq4jRfy7YGUJmebwKg+jPq/Dl1qD6nPnlRDuXj0DqqL8sBzvkQOyV6EawnPKOanjsXgGVQAZIhE9anEkoQ4DxTuC+9Dzr18xs/j1IuH4b2TejXVfcUcWy+ANvY6ZmGyEfe2YM46M40XcvuAgJli0YIC0GRp2naZyTMslSJi6HVT9PUhOUCW8IwHS8WB/McsfWJk20uLj+m8tzfT6k/83NJSm5vPNVanmvNcQq8sDHnX0JBcMNLx0OU6Z9EzM6nSxp9WV8NDuAa8+JMlkJVzgEY7pWSQtuVubc92KGQYDwsP4RqNPuUQupX58bkAXXjBxRFHpZ5B453UKyDVL4G0jrjCSY6zLMydCy1/OBTWUjRwaa9591CQ8DloJcskZzbFgxbJVzlKJGLNmTTodq8X9owSo7qAMaDyR/WJVwwxWYHDrU94HbmSqoRMVAvHQ7YZ7R0cZ65qr6GIXg2A2g0TiX4lYNH3KQzYqLWyJTTPy3oANbYCkzxCxYMYhaYoRzI15grgzb5XWsm+Ckx9guxBciMmBTb1SaYQHXBfQC87Ef4/x6WnH5RzTjH539Du66L1CruH15F4FTQqY4z35NCMl9VfNfv9ELyG9dk3evK5uTJTjgauLa89P1QmWRmOMePnZHOIvyiy9QnnFY/VJ+u490S3LBbfGqTLaBDdejXSSI4FGE7NUz5dyjxsgma84OVpLynVIsA+7QXNme10LKzWGroXp5t+sBmUshqvOFalT5Tqb+LLrkmvYsbpKLF/VmjGC9xH6PdLxTnG1DjqWnYLyt42CEiP0OId95iSB5Spp2QHSEe9Npj6hGmA1PX+lpLhbiyQHqHqFaYvUvVqitTdA2F1b99L0EfGQEsnDhUVRlaAj6K1mL9wtTMI3l1+oRE3K1tyLye8cl41Xgawgkb1CYPFjT4tqVsyEVahV44R4cXFd61MS82wNC6C8aQds/lsTf4gt6vYaNUcQHqE1uK0xFvmfUll/Aq0CTMJIwK8zyF8nwZokE6QIBrVJ+RXTToqdSjgCKaqVzRyx7yvnl4Vok2YySMj2E3kCafuncUrizLsseJucd0NGIGxCIak/NBSXOayzxcAc0RM+a+1pHXk0QGssFvkX0X1CZW80aeldVcysHa9AvmfL9Ubdk0PQmPUDJPiiJw2lAwAZXxDgur5imJBlpJ1WhsYWcRnk/GbQytZaUz6HtEYNfoUoSYAGn1CguqUTPe54NIrGFnEZzy0XtHUrOcDyTrrntkTs5EaQAsmdJaQY2iYycD/GtPdmANojLVYzKPRFYSXK7sCa6dNHKzbj5QAWhwiqk/A/xo4XWV2oFFW9crwZFS9KkCbOGSXvDhJ1Q0irUZY9lfA/1p4PCwVUNW2a89aaRMjQaTVCMv+CqfqLFmfCFWvCkObHmRNUzG9KGTZQyuzxH67CaRHWEr2kLliUaVNKMCltiyqgKpPyLI/iD6Jpb0kXJ4D0iNMvcpc3emQtIlFI8fzSs0UX2NQdeqFtyttwo+l6lOsXN7AddWrGaAZLxgR0lrKC2ueIsaNLHLbkl1e73yznOtNldLkq8DUJ2ueIsaLxuoT3FcLmEMc6TayOp01eJBz76pXM0Ajqd6hMdKGsVN8IIn3zKUeZwOm/dEAZU6mP7ES+61wIjog970CXDnbwDihMVL1KZNz9O5ZEhPv+4gTvDUDdoOkzBxceygDkeu60upYE6MzJqQvGUM4ZmYuN4ukehYJwnuRu0bt3LBcey8ZTxsdouuuXck8cE9ShlQykSC8F661fMV9IUsCeGAxbyoFMFhnGVyzqlfTwtQzM+bFFs0GocH0DU92RHjR10unDEQ8S4C37Nbo0OnKaRNFwBYXz9anMVQBomJgEB3um8rkSgAjsstMflhUrw6cbWJxSAbssRIeVGBTJ+PjXLUR13gdew1xvdIJB7MXrC8BrHyz6xOO1hXNR8U5ayOuMYlehesc7F3Pde+6elBFRcUqUY1XRUXFKlGNV0VFxSpRjVdFRcUqUY1XRUXFKvEf2fOV5MRHavIAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/statescape-logo.png\n// module id = 1024\n// module chunks = 19","module.exports = __webpack_public_path__ + \"e014ac1338f3f93bb1ad6935c8477b89.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/statescape-logo2.png\n// module id = 1025\n// module chunks = 19","module.exports = __webpack_public_path__ + \"0422dd9587ebe05f800b91f72d5980dd.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/images/statescape-signon.png\n// module id = 1026\n// module chunks = 19","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/warning/warning.js\n// module id = 1028\n// module chunks = 19"],"sourceRoot":""}