Guest User

Untitled

a guest
Feb 24th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 498.76 KB | None | 0 0
  1. /**
  2. * @license
  3. EventEmitter2
  4. https://github.com/hij1nx/EventEmitter2
  5.  
  6. Copyright (c) 2013 hij1nx
  7. Licensed under the MIT license.
  8. Determine if an object is a Buffer
  9.  
  10. @author Feross Aboukhadijeh <https://feross.org>
  11. @license MIT
  12. JavaScript Cookie v2.2.0
  13. https://github.com/js-cookie/js-cookie
  14.  
  15. Copyright 2006, 2015 Klaus Hartl & Fagner Brack
  16. Released under the MIT license
  17. */
  18. 'use strict';
  19. (window.webpackJsonpUnite = window.webpackJsonpUnite || []).push([[6], [, , , , , , , , , , , , , , , function(canCreateDiscussions, responses, $) {
  20. /**
  21. * @param {!Object} obj
  22. * @param {string} key
  23. * @param {!Object} value
  24. * @return {?}
  25. */
  26. function fn(obj, key, value) {
  27. return key in obj ? Object.defineProperty(obj, key, {
  28. value : value,
  29. enumerable : true,
  30. configurable : true,
  31. writable : true
  32. }) : obj[key] = value, obj;
  33. }
  34. /**
  35. * @param {!Object} data
  36. * @return {?}
  37. */
  38. function callback(data) {
  39. /** @type {number} */
  40. var __$0 = 1;
  41. for (; __$0 < arguments.length; __$0++) {
  42. var p = null != arguments[__$0] ? arguments[__$0] : {};
  43. /** @type {!Array<string>} */
  44. var i = Object.keys(p);
  45. if ("function" == typeof Object.getOwnPropertySymbols) {
  46. /** @type {!Array<?>} */
  47. i = i.concat(Object.getOwnPropertySymbols(p).filter(function(key) {
  48. return Object.getOwnPropertyDescriptor(p, key).enumerable;
  49. }));
  50. }
  51. i.forEach(function(i) {
  52. fn(data, i, p[i]);
  53. });
  54. }
  55. return data;
  56. }
  57. /**
  58. * @param {!Object} obj
  59. * @return {?}
  60. */
  61. function stringify(obj) {
  62. return (stringify = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(errorText) {
  63. return typeof errorText;
  64. } : function(obj) {
  65. return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
  66. })(obj);
  67. }
  68. /**
  69. * @param {!Array} obj
  70. * @return {?}
  71. */
  72. function type(obj) {
  73. return (type = "function" == typeof Symbol && "symbol" === stringify(Symbol.iterator) ? function(obj) {
  74. return stringify(obj);
  75. } : function(obj) {
  76. return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : stringify(obj);
  77. })(obj);
  78. }
  79. /**
  80. * @return {?}
  81. */
  82. function serialize() {
  83. var columns = {};
  84. var control = win.nike.unite.currentView();
  85. return control && control.view && forEach()(control.view.components, function(data) {
  86. if ("function" == typeof data.getValue) {
  87. columns[data.model.name] = {
  88. dataField : data.model.dataField ? data.model.dataField : data.model.name,
  89. value : data.getValue()
  90. };
  91. } else {
  92. if (get()(data, "model.hiddenFields")) {
  93. forEach()(data.model.hiddenFields, function(command_module_id, columnIndex) {
  94. columns[columnIndex] = {
  95. dataField : columnIndex,
  96. value : command_module_id
  97. };
  98. });
  99. columns[data.model.name] = {
  100. hiddenFields : data.model.hiddenFields
  101. };
  102. }
  103. }
  104. }), columns;
  105. }
  106. /**
  107. * @param {string} string
  108. * @return {?}
  109. */
  110. function sprintf(string) {
  111. if (!string) {
  112. return "";
  113. }
  114. var normalizedHexColor = string.split("?")[0];
  115. return (normalizedHexColor = normalizedHexColor.split("/"))[normalizedHexColor.length - 1];
  116. }
  117. /**
  118. * @param {!Object} e
  119. * @return {undefined}
  120. */
  121. function done(e) {
  122. var idx = sprintf(e && e.target ? e.target.src : "unknown");
  123. if ($filter()(array, idx)) {
  124. var entry = array[idx];
  125. each()(entry, function(cb) {
  126. return cb(e);
  127. });
  128. delete array[idx];
  129. }
  130. if (e && e.target) {
  131. win.document.getElementsByTagName("head")[0].removeChild(e.target);
  132. }
  133. delete items[idx];
  134. }
  135. /**
  136. * @param {string} url
  137. * @return {?}
  138. */
  139. function parseQueryString(url) {
  140. var data = {};
  141. return url = url || win.document.location.search, forEach()(url.slice(1).split("&"), function(clusterShardData) {
  142. var chunks = clusterShardData.split("=");
  143. if (2 === chunks.length) {
  144. try {
  145. /** @type {string} */
  146. data[chunks[0]] = decodeURIComponent(chunks[1]);
  147. } catch (ruleItem) {
  148. console.error('Unable to parse key "'.concat(chunks[0], '" with value "').concat(chunks[1], '": ').concat(ruleItem.message));
  149. }
  150. }
  151. }), data;
  152. }
  153. /**
  154. * @param {string} index
  155. * @return {?}
  156. */
  157. function canSeeComment(index) {
  158. var parent_category_text = {
  159. view : "defaultview"
  160. };
  161. return parent_category_text[index.toLowerCase()] || index.toLowerCase();
  162. }
  163. /**
  164. * @param {!Array} userId
  165. * @param {number} doc
  166. * @return {?}
  167. */
  168. function query(userId, doc) {
  169. return function(value) {
  170. if (Array.isArray(value)) {
  171. return value;
  172. }
  173. }(userId) || function(values, userId) {
  174. /** @type {!Array} */
  175. var x = [];
  176. /** @type {boolean} */
  177. var _n = true;
  178. /** @type {boolean} */
  179. var i = false;
  180. var o = void 0;
  181. try {
  182. var item;
  183. var __$0 = values[Symbol.iterator]();
  184. for (; !(_n = (item = __$0.next()).done) && (x.push(item.value), !userId || x.length !== userId); _n = true) {
  185. }
  186. } catch (tObj) {
  187. /** @type {boolean} */
  188. i = true;
  189. o = tObj;
  190. } finally {
  191. try {
  192. if (!(_n || null == __$0.return)) {
  193. __$0.return();
  194. }
  195. } finally {
  196. if (i) {
  197. throw o;
  198. }
  199. }
  200. }
  201. return x;
  202. }(userId, doc) || function() {
  203. throw new TypeError("Invalid attempt to destructure non-iterable instance");
  204. }();
  205. }
  206. /**
  207. * @return {undefined}
  208. */
  209. function act_on_opener_closer() {
  210. win.nike.unite.spinner.hide();
  211. assert.handleUnexpected("", "TIMEOUT");
  212. }
  213. /**
  214. * @param {!Object} c
  215. * @param {!Function} record
  216. * @return {undefined}
  217. */
  218. function _update(c, record) {
  219. win.nike.unite.spinner.hide();
  220. assert.handleUnexpected(c, record);
  221. }
  222. /**
  223. * @param {string} val
  224. * @return {?}
  225. */
  226. function reject(val) {
  227. var result;
  228. try {
  229. /** @type {*} */
  230. result = val ? JSON.parse(val) : {};
  231. } catch (e) {
  232. return new Error("Invalid Response");
  233. }
  234. return result;
  235. }
  236. /**
  237. * @param {!Object} fn
  238. * @param {string} n
  239. * @param {number} value
  240. * @return {undefined}
  241. */
  242. function open(fn, n, value) {
  243. /** @type {!Object} */
  244. var obj = fn;
  245. var charListNotLatin = n.split(".");
  246. var i = charListNotLatin.slice(-1);
  247. forEach()(charListNotLatin.slice(0, -1), function(pathPart) {
  248. if (!obj[pathPart]) {
  249. obj[pathPart] = {};
  250. }
  251. obj = obj[pathPart];
  252. });
  253. obj[i] = void 0 !== value ? value : void 0 !== obj[i] ? obj[i] : "";
  254. }
  255. /**
  256. * @return {?}
  257. */
  258. function getState() {
  259. if (!tasks) {
  260. throw new Error("Called getExperience without first setting the experience.");
  261. }
  262. return tasks;
  263. }
  264. /**
  265. * @return {?}
  266. */
  267. function replace() {
  268. var email = win.document.getElementById("nike-unite");
  269. return get()(email, "dataset.environment", null) || "production";
  270. }
  271. /**
  272. * @return {?}
  273. */
  274. function getData() {
  275. var index = replace();
  276. var _data = getState().settings.environments[index];
  277. if (!_data) {
  278. throw new Error("Called getEnvironmentVariables for an environment that is unknown");
  279. }
  280. return _data;
  281. }
  282. /**
  283. * @return {?}
  284. */
  285. function status() {
  286. return getState(), getData().backendEnvironment;
  287. }
  288. /**
  289. * @return {?}
  290. */
  291. function isIOS() {
  292. return /iPhone/i.test(win.navigator.userAgent) || /iPad/i.test(win.navigator.userAgent) || /iPod/i.test(win.navigator.userAgent);
  293. }
  294. /**
  295. * @return {?}
  296. */
  297. function isAndroid() {
  298. return /Android/i.test(win.navigator.userAgent);
  299. }
  300. /**
  301. * @return {?}
  302. */
  303. function then() {
  304. var beanObjectFactory = Initialization;
  305. return "true" === get()(beanObjectFactory.getObject(), "dataset.native");
  306. }
  307. /**
  308. * @return {?}
  309. */
  310. function parseURL() {
  311. return {
  312. delayAnalyticsUntilTouch : "" !== (utils.script.parseQueryString().androidSDKVersion || "").replace(/\s/g, "")
  313. };
  314. }
  315. /**
  316. * @return {?}
  317. */
  318. function parse() {
  319. var value = (utils.script.parseQueryString().iOSSDKVersion || "").replace(/\s/g, "");
  320. return {
  321. showDOMCancelButton : "" === value && then() && isIOS(),
  322. delayAnalyticsUntilTouch : "" !== value
  323. };
  324. }
  325. /**
  326. * @param {!Object} i
  327. * @return {?}
  328. */
  329. function next(i) {
  330. var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
  331. var browserLang = arguments.length > 2 ? arguments[2] : void 0;
  332. return each()(n, function(icao) {
  333. /** @type {string} */
  334. i["".concat(browserLang.replace(/:/g, "_").toUpperCase(), "_").concat(icao.toUpperCase(), "_SUCCESS")] = "".concat(browserLang.toLowerCase(), ":").concat(icao.toLowerCase(), ":success");
  335. /** @type {string} */
  336. i["".concat(browserLang.replace(/:/g, "_").toUpperCase(), "_").concat(icao.toUpperCase(), "_FAILURE")] = "".concat(browserLang.toLowerCase(), ":").concat(icao.toLowerCase(), ":failure");
  337. }), i;
  338. }
  339. /**
  340. * @param {undefined} data
  341. * @return {undefined}
  342. */
  343. function applyDataChange(data) {
  344. console.error("Error", data);
  345. }
  346. /**
  347. * @return {?}
  348. */
  349. function attr() {
  350. if (!params) {
  351. throw new Error("Called getCountry without first calling setLocale");
  352. }
  353. return params;
  354. }
  355. /**
  356. * @return {?}
  357. */
  358. function getLanguage() {
  359. if (!match) {
  360. throw new Error("Called getLanguage without first calling setLocale");
  361. }
  362. return match;
  363. }
  364. /**
  365. * @param {?} params
  366. * @param {!Object} n
  367. * @return {?}
  368. */
  369. function set(params, n) {
  370. return split()(params) === split()(n.value);
  371. }
  372. /**
  373. * @param {?} val
  374. * @param {!Object} fn
  375. * @return {?}
  376. */
  377. function checked(val, fn) {
  378. return fn.value.indexOf(val) < 0;
  379. }
  380. /**
  381. * @param {!Array} value
  382. * @param {!Object} message
  383. * @return {?}
  384. */
  385. function share(value, message) {
  386. if (null === value || void 0 === value) {
  387. return true;
  388. }
  389. forEach()(message.value, function(p_Interval, s) {
  390. message.value[s] = split()(p_Interval.toLowerCase());
  391. });
  392. var t = type(value);
  393. return "object" === t && write()(value) && (t = "array"), message.value.indexOf(t) >= 0;
  394. }
  395. /**
  396. * @param {?} parent
  397. * @param {!Object} child
  398. * @return {?}
  399. */
  400. function _extends(parent, child) {
  401. return split()(parent) !== split()(child.value);
  402. }
  403. /**
  404. * @param {?} params
  405. * @param {!Object} lang
  406. * @return {?}
  407. */
  408. function changeLanguageCode(params, lang) {
  409. var instanceFillValue = split()(params).toUpperCase();
  410. var i = split()(lang.value).toUpperCase();
  411. return ($rootScope.states[i] || /.*/).test(instanceFillValue);
  412. }
  413. /**
  414. * @param {?} params
  415. * @param {!Object} options
  416. * @return {?}
  417. */
  418. function serve(params, options) {
  419. var i = split()(params).toUpperCase();
  420. var instanceFillValue = split()(options.value).toUpperCase();
  421. return ($rootScope.states[i] || /.*/).test(instanceFillValue);
  422. }
  423. /**
  424. * @param {?} styles
  425. * @param {!Object} element
  426. * @param {string} valid
  427. * @return {undefined}
  428. */
  429. function check(styles, element, valid) {
  430. forEach()(styles, function(minutes) {
  431. var newValue = element.querySelector(".".concat(minutes));
  432. if (newValue) {
  433. if ("valid" === valid) {
  434. settings.onValid(newValue);
  435. }
  436. if ("invalid" === valid) {
  437. settings.onInvalid(newValue);
  438. }
  439. }
  440. });
  441. }
  442. /**
  443. * @return {undefined}
  444. */
  445. function r() {
  446. boolean = void 0;
  447. clearTimeout(paintNodesTimeout);
  448. }
  449. /**
  450. * @param {!AudioNode} e
  451. * @param {!Function} callback
  452. * @return {undefined}
  453. */
  454. function off(e, callback) {
  455. if (!(e instanceof callback)) {
  456. throw new TypeError("Cannot call a class as a function");
  457. }
  458. }
  459. /**
  460. * @param {!Function} target
  461. * @param {string} props
  462. * @return {undefined}
  463. */
  464. function defineProperties(target, props) {
  465. /** @type {number} */
  466. var i = 0;
  467. for (; i < props.length; i++) {
  468. var descriptor = props[i];
  469. descriptor.enumerable = descriptor.enumerable || false;
  470. /** @type {boolean} */
  471. descriptor.configurable = true;
  472. if ("value" in descriptor) {
  473. /** @type {boolean} */
  474. descriptor.writable = true;
  475. }
  476. Object.defineProperty(target, descriptor.key, descriptor);
  477. }
  478. }
  479. /**
  480. * @param {!Function} Constructor
  481. * @param {!Function} protoProps
  482. * @param {!Function} staticProps
  483. * @return {?}
  484. */
  485. function define(Constructor, protoProps, staticProps) {
  486. return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), Constructor;
  487. }
  488. /**
  489. * @param {?} obj
  490. * @return {?}
  491. */
  492. function build(obj) {
  493. return function(value) {
  494. if (Array.isArray(value)) {
  495. /** @type {number} */
  496. var i = 0;
  497. /** @type {!Array} */
  498. var result = new Array(value.length);
  499. for (; i < value.length; i++) {
  500. result[i] = value[i];
  501. }
  502. return result;
  503. }
  504. }(obj) || function(arr) {
  505. if (Symbol.iterator in Object(arr) || "[object Arguments]" === Object.prototype.toString.call(arr)) {
  506. return Array.from(arr);
  507. }
  508. }(obj) || function() {
  509. throw new TypeError("Invalid attempt to spread non-iterable instance");
  510. }();
  511. }
  512. /**
  513. * @param {!Array} out
  514. * @param {?} a
  515. * @return {?}
  516. */
  517. function compile(out, a) {
  518. return !a || "object" !== type(a) && "function" != typeof a ? function(data) {
  519. if (void 0 === data) {
  520. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  521. }
  522. return data;
  523. }(out) : a;
  524. }
  525. /**
  526. * @param {(!Function|string)} obj
  527. * @return {?}
  528. */
  529. function isEmpty(obj) {
  530. return (isEmpty = Object.setPrototypeOf ? Object.getPrototypeOf : function(o) {
  531. return o.__proto__ || Object.getPrototypeOf(o);
  532. })(obj);
  533. }
  534. /**
  535. * @param {!Function} el
  536. * @param {!Function} b
  537. * @return {?}
  538. */
  539. function contains(el, b) {
  540. return (contains = Object.setPrototypeOf || function(result, source) {
  541. return result.__proto__ = source, result;
  542. })(el, b);
  543. }
  544. /**
  545. * @param {!Function} proto
  546. * @return {?}
  547. */
  548. function inherits(proto) {
  549. /**
  550. * @return {?}
  551. */
  552. function obj() {
  553. var res = Reflect.construct(proto, Array.from(arguments));
  554. return Object.setPrototypeOf(res, Object.getPrototypeOf(this)), res;
  555. }
  556. return obj.prototype = Object.create(proto.prototype, {
  557. constructor : {
  558. value : proto,
  559. enumerable : false,
  560. writable : true,
  561. configurable : true
  562. }
  563. }), Object.setPrototypeOf ? Object.setPrototypeOf(obj, proto) : obj.__proto__ = proto, obj;
  564. }
  565. /**
  566. * @return {undefined}
  567. */
  568. function getUploadHttpData() {
  569. /** @type {boolean} */
  570. $isReady = false;
  571. if (element) {
  572. win.document.body.removeChild(element);
  573. /** @type {null} */
  574. element = null;
  575. }
  576. }
  577. /**
  578. * @param {!Object} event
  579. * @return {undefined}
  580. */
  581. function onSuccess(event) {
  582. if (key === "".concat(event.origin, "/") && event.data) {
  583. /** @type {*} */
  584. var data = JSON.parse(event.data);
  585. var callback = _callbacks[data.transactionId];
  586. delete _callbacks[data.transactionId];
  587. if ("function" == typeof callback) {
  588. callback(data.value);
  589. }
  590. }
  591. }
  592. /**
  593. * @param {?} data
  594. * @param {!Function} type
  595. * @return {undefined}
  596. */
  597. function notify(data, type) {
  598. !function(data, callback) {
  599. if ("function" == typeof callback) {
  600. /** @type {!Function} */
  601. _callbacks[id] = callback;
  602. }
  603. data.transactionId = id;
  604. id = id + 1;
  605. }(data, type);
  606. element.contentWindow.postMessage(JSON.stringify(data), key);
  607. }
  608. /**
  609. * @param {string} type
  610. * @param {!Function} logger
  611. * @return {?}
  612. */
  613. function wrap(type, logger) {
  614. var resolve = this;
  615. return function() {
  616. if (!$isReady) {
  617. throw new Error("Attempted to use session method ".concat(type, " before session module was initialized"));
  618. }
  619. /** @type {number} */
  620. var arglen = arguments.length;
  621. /** @type {!Array} */
  622. var args = new Array(arglen);
  623. /** @type {number} */
  624. var i = 0;
  625. for (; i < arglen; i++) {
  626. args[i] = arguments[i];
  627. }
  628. logger.apply(resolve, args);
  629. };
  630. }
  631. /**
  632. * @param {string} data
  633. * @param {string} sid
  634. * @param {!Function} fn
  635. * @param {!Function} callback
  636. * @param {!Function} a
  637. * @return {undefined}
  638. */
  639. function cb(data, sid, fn, callback, a) {
  640. if ("string" != typeof data || !data) {
  641. throw new Error("refreshToken must be a non-empty string");
  642. }
  643. if ("function" != typeof fn) {
  644. throw new Error("onSuccess must be a function");
  645. }
  646. if ("function" != typeof callback) {
  647. throw new Error("onError must be a function");
  648. }
  649. if ("function" != typeof a) {
  650. throw new Error("onTimeout must be a function");
  651. }
  652. /** @type {string} */
  653. var THREAD_STARTED = "".concat(res.experience.getCorsServer(), "/tokenRefresh");
  654. var payload = {
  655. refresh_token : data,
  656. client_id : sid || res.experience.getClientId(),
  657. grant_type : "refresh_token"
  658. };
  659. console.post(THREAD_STARTED, payload, fn, callback, a, {
  660. "Content-Type" : "application/json"
  661. });
  662. }
  663. /**
  664. * @param {string} options
  665. * @param {!Function} type
  666. * @param {!Function} name
  667. * @param {!Function} callback
  668. * @return {undefined}
  669. */
  670. function Item(options, type, name, callback) {
  671. var data = {
  672. clientId : res.experience.getClientId(),
  673. token : options
  674. };
  675. /** @type {string} */
  676. var n = "".concat(res.experience.getCorsServer(), "/tokenExchange").concat(utils.script.buildQueryString(data));
  677. console.get(n, type, name, callback);
  678. }
  679. /**
  680. * @param {!Object} target
  681. * @param {!Object} data
  682. * @param {!Function} method
  683. * @param {!Function} callback
  684. * @param {!Function} fn
  685. * @return {undefined}
  686. */
  687. function makeRequest(target, data, method, callback, fn) {
  688. if ("string" != typeof target || !target) {
  689. throw new Error("state must be a non-empty string");
  690. }
  691. if ("string" != typeof data || !data) {
  692. throw new Error("accessToken must be a non-empty string");
  693. }
  694. if ("function" != typeof method) {
  695. throw new Error("onSuccess must be a function");
  696. }
  697. if ("function" != typeof callback) {
  698. throw new Error("onError must be a function");
  699. }
  700. if ("function" != typeof fn) {
  701. throw new Error("onTimeout must be a function");
  702. }
  703. if ("hasAcceptedSwooshTerms" !== target) {
  704. var params = {
  705. state : target
  706. };
  707. /** @type {string} */
  708. var a = "".concat(res.experience.getCorsServer(), "/userState").concat(utils.script.buildQueryString(params));
  709. console.get(a, method, callback, fn, {
  710. Authorization : "Bearer ".concat(data)
  711. });
  712. } else {
  713. method(false);
  714. }
  715. }
  716. /**
  717. * @param {string} options
  718. * @return {?}
  719. */
  720. function normalize(options) {
  721. return !(!options.location || "CN" !== options.location.country);
  722. }
  723. /**
  724. * @param {!Function} map
  725. * @return {?}
  726. */
  727. function has(map) {
  728. return !(!map.verifiedphone || "CN" !== map.verifiedPhoneCountry);
  729. }
  730. /**
  731. * @param {!Function} opts
  732. * @return {?}
  733. */
  734. function eq(opts) {
  735. return !opts.verificationRequired && (!normalize(opts) || has(opts));
  736. }
  737. /**
  738. * @param {?} entity
  739. * @return {?}
  740. */
  741. function equals(entity) {
  742. return !(!entity.verifiedphone || entity.verificationRequired);
  743. }
  744. /**
  745. * @param {string} name
  746. * @param {!Object} data
  747. * @return {?}
  748. */
  749. function filter(name, data) {
  750. if (!data.user) {
  751. return storage.getUserStateWithPromise(name, data.access_token);
  752. }
  753. switch(name) {
  754. case "isLegallyCompliant":
  755. return $window.a.resolve(eq(data.user));
  756. case "isMobileVerified":
  757. return $window.a.resolve(equals(data.user));
  758. case "isSneakerHead":
  759. return $window.a.resolve(function(left) {
  760. return eq(left) && equals(left);
  761. }(data.user));
  762. case "isSwooshUser":
  763. return $window.a.resolve(function(event) {
  764. return !(!event.swooshAccess || "SWOOSH" !== event.userType);
  765. }(data.user));
  766. case "hasEmail":
  767. case "canCheckOut":
  768. case "canRegisterEvent":
  769. return $window.a.resolve(function(stats) {
  770. return !(!stats.emails || !stats.emails.primary.email);
  771. }(data.user));
  772. case "hasDateOfBirth":
  773. return $window.a.resolve(function(data) {
  774. return !(!data.dob || !data.dob.date);
  775. }(data.user));
  776. case "hasShoppingGender":
  777. return $window.a.resolve(function(crossfadingPreferences) {
  778. return !(!crossfadingPreferences.preferences || !crossfadingPreferences.preferences.shoppingGender);
  779. }(data.user));
  780. default:
  781. return $window.a.reject({
  782. code : "UNSUPPORTED"
  783. });
  784. }
  785. }
  786. /**
  787. * @param {!Object} args
  788. * @param {?} callback
  789. * @param {?} done
  790. * @return {undefined}
  791. */
  792. function register(args, callback, done) {
  793. var ctx = res.experience.getExperience();
  794. var elemsAttrsTuples = ctx.settings.progressive.contexts.login;
  795. var items = {};
  796. /** @type {!Array} */
  797. var values = [];
  798. each()(elemsAttrsTuples, function(pivot) {
  799. var k = get()(ctx, "settings.progressive.states.".concat(pivot));
  800. if (k) {
  801. items[pivot] = k;
  802. }
  803. });
  804. if (setAttribute()(items)) {
  805. callback(true);
  806. } else {
  807. info()(items, function(dashboardDataServiceMockData, key) {
  808. if ("userState" === dashboardDataServiceMockData.endpoint) {
  809. values.push(filter(key, args));
  810. }
  811. });
  812. $window.a.all(values).then(function(i) {
  813. return callback(triggerEvent()(i, function(canCreateDiscussions) {
  814. return true === canCreateDiscussions;
  815. }));
  816. }).catch(function(signupErr) {
  817. return done(signupErr);
  818. });
  819. }
  820. }
  821. /**
  822. * @param {!Object} obj
  823. * @param {!Function} color
  824. * @param {!Function} data
  825. * @param {!Function} callback
  826. * @return {undefined}
  827. */
  828. function debug(obj, color, data, callback) {
  829. var params = {
  830. viewId : res.experience.getExperience().settings.viewId,
  831. atgSync : res.experience.getAtgSync()
  832. };
  833. /** @type {string} */
  834. var o = "".concat(res.experience.getCorsServer(), "/getUserService").concat(utils.script.buildQueryString(params));
  835. console.get(o, color, data, callback, {
  836. Authorization : "Bearer ".concat(obj.access_token)
  837. });
  838. }
  839. /**
  840. * @param {!Object} result
  841. * @param {number} n
  842. * @return {?}
  843. */
  844. function save(result, n) {
  845. return parseInt(result.timestamp, 10) + (parseInt(result.expires_in, 10) - n) < Math.floor(Date.now() / 1E3);
  846. }
  847. /**
  848. * @param {!Function} callback
  849. * @param {!Function} text
  850. * @param {string} args
  851. * @return {undefined}
  852. */
  853. function log(callback, text, args) {
  854. /** @type {string} */
  855. var fb_api_for_invitable_friends = "/me?fields=id,first_name,last_name,email,birthday,gender".concat(args ? "&access_token=".concat(args) : "");
  856. win.window.FB.api(fb_api_for_invitable_friends, function(t) {
  857. if (t && !t.error) {
  858. callback(t);
  859. } else {
  860. text(t);
  861. }
  862. });
  863. }
  864. /**
  865. * @param {!Object} data
  866. * @return {undefined}
  867. */
  868. function logout(data) {
  869. if ("connected" === data.status) {
  870. var options = {
  871. token : data.authResponse.accessToken,
  872. provider : "Facebook",
  873. secret : ""
  874. };
  875. log(function(data) {
  876. /** @type {string} */
  877. options.user = data;
  878. isObject(options);
  879. }, function(type) {
  880. close(type);
  881. });
  882. } else {
  883. if ("unknown" === data.status || "not_authorized" === data.status) {
  884. out.emit(self.getEvent(["ui", win.nike.unite.currentView().name, "social", "cancel", "facebook", "click"]), {
  885. providerName : "facebook"
  886. });
  887. } else {
  888. close(data);
  889. }
  890. }
  891. }
  892. /**
  893. * @return {undefined}
  894. */
  895. function buildFriendSelector() {
  896. win.window.FB.getLoginStatus(function(e) {
  897. if ("connected" === e.status) {
  898. logout(e);
  899. } else {
  900. win.window.FB.login(function(type) {
  901. logout(type);
  902. }, {
  903. scope : "user_friends,email,user_birthday"
  904. });
  905. }
  906. });
  907. }
  908. /**
  909. * @param {!Object} obj
  910. * @param {!Array} num
  911. * @return {?}
  912. */
  913. function test(obj, num) {
  914. if (null == obj) {
  915. return {};
  916. }
  917. var k;
  918. var i;
  919. var out = function(o, value) {
  920. if (null == o) {
  921. return {};
  922. }
  923. var prop;
  924. var i;
  925. var obj = {};
  926. /** @type {!Array<string>} */
  927. var s = Object.keys(o);
  928. /** @type {number} */
  929. i = 0;
  930. for (; i < s.length; i++) {
  931. /** @type {string} */
  932. prop = s[i];
  933. if (!(value.indexOf(prop) >= 0)) {
  934. obj[prop] = o[prop];
  935. }
  936. }
  937. return obj;
  938. }(obj, num);
  939. if (Object.getOwnPropertySymbols) {
  940. /** @type {!Array<?>} */
  941. var s = Object.getOwnPropertySymbols(obj);
  942. /** @type {number} */
  943. i = 0;
  944. for (; i < s.length; i++) {
  945. k = s[i];
  946. if (!(num.indexOf(k) >= 0)) {
  947. if (Object.prototype.propertyIsEnumerable.call(obj, k)) {
  948. out[k] = obj[k];
  949. }
  950. }
  951. }
  952. }
  953. return out;
  954. }
  955. /**
  956. * @return {?}
  957. */
  958. function traverse() {
  959. return (traverse = Object.assign || function(obj) {
  960. /** @type {number} */
  961. var i = 1;
  962. for (; i < arguments.length; i++) {
  963. var source = arguments[i];
  964. var prop;
  965. for (prop in source) {
  966. if (Object.prototype.hasOwnProperty.call(source, prop)) {
  967. obj[prop] = source[prop];
  968. }
  969. }
  970. }
  971. return obj;
  972. }).apply(this, arguments);
  973. }
  974. /**
  975. * @return {?}
  976. */
  977. function isMatch() {
  978. var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
  979. return !!two2three[e.toUpperCase()];
  980. }
  981. /**
  982. * @param {!Array} name
  983. * @return {?}
  984. */
  985. function include(name) {
  986. var name = p.a.get(username);
  987. if (!name) {
  988. return void 0 === name || isMatch(name) ? cache.UNSET : cache[3];
  989. }
  990. if (cache[name]) {
  991. return cache[name];
  992. }
  993. throw new Error("unknown value for privacy cookie: " + name);
  994. }
  995. /**
  996. * @param {!Object} data
  997. * @return {undefined}
  998. */
  999. function activate(data) {
  1000. /** @type {boolean} */
  1001. var placeFirst = void 0 === first;
  1002. /** @type {!Object} */
  1003. first = data;
  1004. res.experience.setExperience(data, Initialization.getObject().dataset);
  1005. res.localization.setLocale(data.settings.locale);
  1006. options.helpers.dom.addClassToPlaceholders("language_".concat(res.localization.getLanguage()));
  1007. config.init();
  1008. atap.init();
  1009. if (placeFirst) {
  1010. grid.initialLoad(data);
  1011. }
  1012. var firstQueryMask = get()(first, "settings.social.networks");
  1013. forEach()(firstQueryMask, function(b) {
  1014. if ($filter()(b, "name") && $filter()(a, "".concat(b.name.toLowerCase(), "Service.loadSDK"))) {
  1015. a["".concat(b.name.toLowerCase(), "Service")].loadSDK();
  1016. }
  1017. });
  1018. label.emit(opt, data);
  1019. }
  1020. /**
  1021. * @param {!Object} data
  1022. * @param {!Object} url
  1023. * @param {string} root
  1024. * @param {!Function} file
  1025. * @param {!Function} output
  1026. * @param {!Function} callback
  1027. * @return {undefined}
  1028. */
  1029. function insert(data, url, root, file, output, callback) {
  1030. var params = {
  1031. atgSync : res.experience.getAtgSync(),
  1032. uxId : res.experience.getUxId()
  1033. };
  1034. if ("password" === root) {
  1035. /** @type {string} */
  1036. params.cookieType = "N";
  1037. }
  1038. if (false === url) {
  1039. /** @type {string} */
  1040. params.lifetime = "session";
  1041. }
  1042. /** @type {string} */
  1043. var s = "".concat(res.experience.getCorsServer(), "/auth/slcheck_cookies/v1").concat(utils.script.buildQueryString(params));
  1044. console.get(s, file, output, callback, {
  1045. Authorization : "Bearer ".concat(data)
  1046. });
  1047. }
  1048. /**
  1049. * @param {?} fn
  1050. * @return {?}
  1051. */
  1052. function bind(fn) {
  1053. var val = {};
  1054. return forEach()(fn, function(curr, newTypeName) {
  1055. if (curr) {
  1056. if ("dateOfBirth" === newTypeName) {
  1057. var rparts = curr.split("-");
  1058. /** @type {number} */
  1059. curr = Date.UTC(parseInt(rparts[0], 10), parseInt(rparts[1], 10) - 1, parseInt(rparts[2], 10));
  1060. }
  1061. if (text()(curr)) {
  1062. return void forEach()(curr, function(ctx, newTypeName) {
  1063. if (structuredTypes[newTypeName]) {
  1064. storeParam()(val, structuredTypes[newTypeName], ctx);
  1065. }
  1066. });
  1067. }
  1068. if (structuredTypes[newTypeName]) {
  1069. storeParam()(val, structuredTypes[newTypeName], curr);
  1070. }
  1071. }
  1072. }), val;
  1073. }
  1074. /**
  1075. * @return {?}
  1076. */
  1077. function resolve() {
  1078. return new $window.a(function(finish, nack) {
  1079. /**
  1080. * @param {string} type
  1081. * @return {?}
  1082. */
  1083. config.views.progressive.eventHandler = function(type) {
  1084. var target = win.nike.unite.currentView().view.placeholder.querySelector(".nike-unite-form");
  1085. var options = utils.formData.getFormData(target);
  1086. switch(type) {
  1087. case "submit":
  1088. switch(data.endpoint) {
  1089. case "acceptance":
  1090. return user.postAgreement(data.loginResponse.access_token, data.loginResponse.user_id, data.getUserResponse.nuId).then(function() {
  1091. return finish();
  1092. }).catch(function() {
  1093. return finish();
  1094. });
  1095. case "update":
  1096. return doRequest(options).then(function() {
  1097. return finish();
  1098. }).catch(function() {
  1099. return finish();
  1100. });
  1101. case "userState":
  1102. return "isMobileVerified" === data.currentState || "isLegallyCompliant" === data.currentState || "isSneakerHead" === data.currentState ? (require()(data.getUserResponse, Analytics.applyUserUpdates(options, data.getUserResponse)), finish()) : doRequest(options).then(function() {
  1103. return finish();
  1104. }).catch(function(options) {
  1105. switch(win.nike.unite.destroyAllViews(), options.code) {
  1106. case "DUPLICATE":
  1107. assert.byKey("email.notUnique", options);
  1108. break;
  1109. default:
  1110. assert.handleUnexpected(options, options.httpStatus);
  1111. }
  1112. return resolve().then(finish).catch(nack);
  1113. });
  1114. default:
  1115. return nack(new Error("Endpoint is not accounted for in progressive event handler."));
  1116. }case "getAccessToken":
  1117. return $window.a.resolve(data.loginResponse.access_token);
  1118. case "skip":
  1119. return finish();
  1120. default:
  1121. return nack(new Error("Action is not accounted for in progressive event handler."));
  1122. }
  1123. };
  1124. config.views.progressive.render(function() {
  1125. var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  1126. return setAttribute()(options) ? server.getChinaProgressiveOverride(data.currentState, options) : require()({
  1127. headerUserName : options.name ? options.name.latin.given : options.entity.firstName,
  1128. partnerName : res.experience.getExperience().settings.partnerName
  1129. }, server.getChinaProgressiveOverride(data.currentState, options));
  1130. }(data.getUserResponse));
  1131. });
  1132. }
  1133. /**
  1134. * @param {?} options
  1135. * @return {?}
  1136. */
  1137. function doRequest(options) {
  1138. return Analytics.updateUser(options, data.loginResponse.access_token).then(function() {
  1139. return require()(data.getUserResponse, Analytics.applyUserUpdates(options, data.getUserResponse));
  1140. }).then(function() {
  1141. return $window.a.resolve();
  1142. }).catch(function(rejectionValue) {
  1143. return $window.a.reject(rejectionValue);
  1144. });
  1145. }
  1146. /**
  1147. * @return {?}
  1148. */
  1149. function remove() {
  1150. switch(data.endpoint) {
  1151. case "update":
  1152. return resolve();
  1153. case "acceptance":
  1154. return function(username) {
  1155. return user.getAgreement(username).then(function(error) {
  1156. return error ? $window.a.resolve() : resolve();
  1157. }).catch(function() {
  1158. return resolve();
  1159. });
  1160. }(data.loginResponse.access_token, data.loginResponse.user_id);
  1161. default:
  1162. return server.getUserState(data.currentState, {
  1163. access_token : data.loginResponse.access_token,
  1164. user : data.getUserResponse
  1165. }).then(function(error) {
  1166. return error ? $window.a.resolve() : resolve();
  1167. }).catch(function(rejectionValue) {
  1168. return $window.a.reject(rejectionValue);
  1169. });
  1170. }
  1171. }
  1172. /**
  1173. * @return {undefined}
  1174. */
  1175. function hide() {
  1176. if (el && el.parentNode) {
  1177. el.parentNode.removeChild(el);
  1178. }
  1179. el = void 0;
  1180. }
  1181. /**
  1182. * @return {?}
  1183. */
  1184. function show() {
  1185. hide();
  1186. var grid = win.nike.unite.currentView();
  1187. return grid && ((el = document.createElement("div")).id = utils.generateUuid(), el.addEventListener("dblclick", function() {
  1188. return hide(), false;
  1189. }), el.classList.add("nike-unite-spinner-overlay"), grid.view.placeholder.appendChild(el)), el;
  1190. }
  1191. /**
  1192. * @param {!Object} data
  1193. * @param {!Function} args
  1194. * @param {!Function} params
  1195. * @param {!Function} callback
  1196. * @return {undefined}
  1197. */
  1198. function login(data, args, params, callback) {
  1199. var options = {
  1200. username : data.username,
  1201. password : data.password,
  1202. client_id : res.experience.getClientId(),
  1203. ux_id : res.experience.getUxId(),
  1204. grant_type : "password"
  1205. };
  1206. if (true === data.swooshUser) {
  1207. /** @type {boolean} */
  1208. options.swooshUser = true;
  1209. }
  1210. console.post("".concat(res.experience.getCorsServerOverride() || res.experience.getCorsServer(), "/login"), options, args, params, callback, {
  1211. "Content-Type" : "application/json"
  1212. });
  1213. }
  1214. /**
  1215. * @param {!Object} state
  1216. * @param {!Function} n
  1217. * @param {!Function} fn
  1218. * @param {!Function} callback
  1219. * @return {undefined}
  1220. */
  1221. function update(state, n, fn, callback) {
  1222. /** @type {string} */
  1223. var MSG_CLICK = String(state.network).toLowerCase();
  1224. var options = {
  1225. network : MSG_CLICK,
  1226. token : state.token,
  1227. client_id : res.experience.getClientId(),
  1228. grant_type : "nike:social"
  1229. };
  1230. if (state.networkUserId) {
  1231. options.network_user_id = state.networkUserId;
  1232. }
  1233. if ("wechat" === MSG_CLICK) {
  1234. options.network_app_id = res.experience.getWeChatAppId();
  1235. }
  1236. if ("line" === MSG_CLICK) {
  1237. options.network_app_id = res.experience.getEnvironmentVariables().lineAppId;
  1238. }
  1239. if ("wechatmini" === MSG_CLICK) {
  1240. options.token = state.code;
  1241. options.network_user_initialization_vector = state.iv;
  1242. options.network_user_encrypted_data = state.data;
  1243. options.network_app_id = res.experience.getEnvironmentVariables().weChatMiniAppId;
  1244. }
  1245. /** @type {string} */
  1246. var i = "/socialLogin";
  1247. if (!("production" !== res.experience.getEnvironment() || res.experience.isIdentityBackend())) {
  1248. /** @type {string} */
  1249. i = i + "?backendEnvironment=identity";
  1250. }
  1251. console.post((res.experience.getCorsServerOverride() || res.experience.getCorsServer()) + i, options, n, fn, callback, {
  1252. "Content-Type" : "application/json"
  1253. });
  1254. }
  1255. /**
  1256. * @param {!Object} user
  1257. * @param {!Function} name
  1258. * @param {?} callback
  1259. * @return {?}
  1260. */
  1261. function saveUser(user, name, callback) {
  1262. /**
  1263. * @param {string} count
  1264. * @return {undefined}
  1265. */
  1266. function profile(count) {
  1267. /** @type {string} */
  1268. user.user = count;
  1269. name();
  1270. }
  1271. if (!user.deactivated) {
  1272. return name();
  1273. }
  1274. assert.byKey("dpa.reactivation.user.wait.timeout");
  1275. setTimeout(function() {
  1276. return collection.getUserWithPolling({
  1277. access_token : user.access_token,
  1278. user_id : user.user_id
  1279. }, profile, callback);
  1280. }, 3E3);
  1281. }
  1282. /**
  1283. * @param {!Object} obj
  1284. * @return {?}
  1285. */
  1286. function createElement(obj) {
  1287. return {
  1288. firstName : {
  1289. value : obj.firstName
  1290. },
  1291. lastName : {
  1292. value : obj.lastName
  1293. },
  1294. mobileJoinForm : {
  1295. hiddenFields : {
  1296. registrationToken : obj.registrationToken
  1297. }
  1298. }
  1299. };
  1300. }
  1301. /**
  1302. * @param {!Object} email
  1303. * @param {!Object} password
  1304. * @param {string} client
  1305. * @param {!Object} data
  1306. * @param {!Function} save
  1307. * @param {!Function} callback
  1308. * @param {!Function} error
  1309. * @return {undefined}
  1310. */
  1311. function updateUser(email, password, client, data, save, callback, error) {
  1312. var options = {
  1313. username : email,
  1314. password : password,
  1315. client_id : client,
  1316. state : data
  1317. };
  1318. /** @type {string} */
  1319. var u = "".concat(res.experience.getCorsServer(), "/partnerLogin");
  1320. console.post(u, options, function(exisObj) {
  1321. save(callback({}, exisObj, {
  1322. redirectWhitelist : new RegExp(res.experience.getExperience().settings.oauthRedirectURIWhitelist)
  1323. }));
  1324. }, callback, error, {
  1325. "Content-Type" : "application/json"
  1326. });
  1327. }
  1328. /**
  1329. * @param {!Object} options
  1330. * @return {?}
  1331. */
  1332. function getValue(options) {
  1333. return {
  1334. emailAddress : {
  1335. value : options.emailAddress
  1336. },
  1337. verifyMobileNumber : {
  1338. value : options.phone ? options.phone.mobileNumber : null
  1339. }
  1340. };
  1341. }
  1342. /**
  1343. * @param {string} url
  1344. * @param {string} username
  1345. * @param {?} method
  1346. * @param {string} done
  1347. * @param {?} evt
  1348. * @param {?} tpl
  1349. * @param {!Array} args
  1350. * @param {string} name
  1351. * @param {!Function} params
  1352. * @param {!Function} context
  1353. * @param {!Function} callback
  1354. * @return {undefined}
  1355. */
  1356. function route(url, username, method, done, evt, tpl, args, name, params, context, callback) {
  1357. var p = {
  1358. network_user_access_token : evt,
  1359. network_user_id : tpl
  1360. };
  1361. if ("wechat" === done) {
  1362. p.network_app_id = res.experience.getWeChatAppId();
  1363. }
  1364. if ("wechatmini" === done) {
  1365. p.network_app_id = res.experience.getEnvironmentVariables().weChatMiniAppId;
  1366. /** @type {!Array} */
  1367. p.network_user_initialization_vector = args;
  1368. /** @type {string} */
  1369. p.network_user_encrypted_data = name;
  1370. }
  1371. if ("line" === done) {
  1372. p.network_app_id = res.experience.getEnvironmentVariables().lineAppId;
  1373. }
  1374. var data = {
  1375. userId : username,
  1376. socialProvider : done
  1377. };
  1378. var e = res.experience.getCorsServer() + url + utils.script.buildQueryString(data);
  1379. console.post(e, p, params, context, callback, {
  1380. Authorization : "Bearer ".concat(method),
  1381. "Content-Type" : "application/json"
  1382. });
  1383. }
  1384. /**
  1385. * @param {boolean} complete
  1386. * @return {?}
  1387. */
  1388. function join(complete) {
  1389. var n = {};
  1390. return win.nike.unite.currentView() && (n = complete ? utils.formData.getFormDataByComponent() : utils.formData.getFormData()), n;
  1391. }
  1392. /**
  1393. * @param {string} type
  1394. * @param {?} i
  1395. * @return {undefined}
  1396. */
  1397. function render(type, i) {
  1398. var data;
  1399. var value;
  1400. switch("submit" === type ? data = join() : (data = join(true), win.nike.unite.destroyAllViews()), data.provider = utils.formData.getProviderNameDisplay(req.passedInData.provider.toLowerCase()), data.providerKey = req.passedInData.provider.toLowerCase(), require()(req.formData, data), req.formData.mobileNumber = get()(req, "formData.phone.mobileNumber") || req.formData.mobileNumber, req.formData.registrationToken = get()(req.formData, "phone.registrationToken") || req.formData.registrationToken,
  1401. type) {
  1402. case "render":
  1403. /** @type {function(string, ?): undefined} */
  1404. config.views[i].eventHandler = render;
  1405. config.views[i].render(req.formData);
  1406. break;
  1407. case "resetPasswordRender":
  1408. config.views.resetPassword.render(req.formData);
  1409. break;
  1410. case "mobileResetPasswordRender":
  1411. config.views.mobileResetPassword.render(req.formData);
  1412. break;
  1413. case "linkRender":
  1414. /** @type {function(string, ?): undefined} */
  1415. config.views.link.eventHandler = render;
  1416. config.views.link.render(req.formData);
  1417. break;
  1418. case "mobileLinkRender":
  1419. /** @type {function(string, ?): undefined} */
  1420. config.views.mobileLink.eventHandler = render;
  1421. config.views.mobileLink.render(req.formData);
  1422. break;
  1423. case "socialJoinRender":
  1424. /** @type {function(string, ?): undefined} */
  1425. config.views.socialJoin.eventHandler = render;
  1426. config.views.socialJoin.render(req.formData);
  1427. break;
  1428. case "mobileSocialJoinRender":
  1429. /** @type {function(string, ?): undefined} */
  1430. config.views.mobileSocialJoin.eventHandler = render;
  1431. config.views.mobileSocialJoin.render(req.formData);
  1432. break;
  1433. case "weChatMiniMobileJoinRender":
  1434. /** @type {function(string, ?): undefined} */
  1435. config.views.weChatMiniMobileJoin.eventHandler = render;
  1436. config.views.weChatMiniMobileJoin.render(req.formData);
  1437. break;
  1438. case "weChatMiniMobileJoinContinueRender":
  1439. /** @type {function(string, ?): undefined} */
  1440. config.views.weChatMiniMobileJoinContinue.eventHandler = render;
  1441. config.views.weChatMiniMobileJoinContinue.render(callback({}, req.formData, {
  1442. phoneNumberKey : req.formData.mobileNumber
  1443. }));
  1444. break;
  1445. case "countryChange":
  1446. /** @type {string} */
  1447. value = "".concat(res.localization.getLanguage(), "_").concat(req.formData.country.value);
  1448. res.localization.setLocale(value);
  1449. adapter.getExperienceForLocale(value, function() {
  1450. /** @type {string} */
  1451. var i = res.experience.getExperience().settings.enableMobileJoin ? "mobileSocialJoin" : "socialJoin";
  1452. /** @type {function(string, ?): undefined} */
  1453. config.views[i].eventHandler = render;
  1454. config.views[i].render(req.formData);
  1455. });
  1456. break;
  1457. case "submit":
  1458. switch(win.nike.unite.spinner.show(), i) {
  1459. case "socialJoin":
  1460. !function() {
  1461. if (res.experience.getExperience().settings.enableMobileJoin) {
  1462. win.nike.unite.destroyAllViews();
  1463. /**
  1464. * @param {string} type
  1465. * @return {undefined}
  1466. */
  1467. config.views.mobileJoinContinue.eventHandler = function init(type) {
  1468. var user;
  1469. switch(type) {
  1470. case "joinRender":
  1471. config.views.mobileJoinContinue.destroy();
  1472. /** @type {function(string, ?): undefined} */
  1473. config.views.mobileSocialJoin.eventHandler = render;
  1474. config.views.mobileSocialJoin.render();
  1475. break;
  1476. case "submit":
  1477. start({
  1478. country : (user = require()({}, req.formData, join())).country,
  1479. dateOfBirth : user.dateOfBirth,
  1480. emailAddress : user.emailAddress,
  1481. firstName : user.firstName,
  1482. gender : user.gender,
  1483. lastName : user.lastName,
  1484. mobileNumber : user.mobileNumber,
  1485. password : user.password,
  1486. receiveEmail : user.receiveEmail,
  1487. registrationSiteId : user.registrationSiteId,
  1488. registrationToken : user.registrationToken
  1489. }, "mobileJoin", init);
  1490. }
  1491. };
  1492. config.views.mobileJoinContinue.render();
  1493. } else {
  1494. start({
  1495. country : req.formData.country,
  1496. dateOfBirth : req.formData.dateOfBirth,
  1497. emailAddress : req.formData.emailAddress,
  1498. firstName : req.formData.firstName,
  1499. gender : req.formData.gender,
  1500. lastName : req.formData.lastName,
  1501. mobileNumber : req.formData.mobileNumber,
  1502. password : req.formData.password,
  1503. receiveEmail : req.formData.receiveEmail,
  1504. registrationSiteId : req.formData.registrationSiteId
  1505. }, "join", render);
  1506. }
  1507. }();
  1508. break;
  1509. case "weChatMiniMobileJoinContinue":
  1510. start({
  1511. country : "CN",
  1512. dateOfBirth : req.formData.dateOfBirth,
  1513. emailAddress : req.formData.emailAddress,
  1514. firstName : req.formData.firstName,
  1515. gender : req.formData.gender,
  1516. lastName : req.formData.lastName,
  1517. mobileNumber : req.formData.mobileNumber,
  1518. password : req.formData.password,
  1519. receiveEmail : req.formData.receiveEmail,
  1520. registrationSiteId : req.formData.registrationSiteId,
  1521. registrationToken : req.formData.registrationToken
  1522. }, "mobileJoin", render);
  1523. break;
  1524. case "weChatMiniMobileJoin":
  1525. win.nike.unite.destroyAllViews();
  1526. /** @type {function(string, ?): undefined} */
  1527. config.views.weChatMiniMobileJoinContinue.eventHandler = render;
  1528. config.views.weChatMiniMobileJoinContinue.render(callback({}, req.formData, {
  1529. phoneNumberKey : req.formData.mobileNumber
  1530. }));
  1531. break;
  1532. case "mobileLink":
  1533. case "login":
  1534. case "link":
  1535. add(data, "login").then(function(id) {
  1536. win.nike.unite.destroyAllViews();
  1537. db.emit(namespace, callback({}, id, {
  1538. socialProvider : req.passedInData.provider.toLowerCase(),
  1539. socialUserId : req.passedInData.user ? req.passedInData.user.loginProviderUID : null
  1540. }));
  1541. }).catch(function(e) {
  1542. db.emit(subject, e);
  1543. });
  1544. }
  1545. }
  1546. }
  1547. /**
  1548. * @param {undefined} token
  1549. * @param {string} type
  1550. * @param {!Object} fn
  1551. * @return {?}
  1552. */
  1553. function start(token, type, fn) {
  1554. return actions.create(token).catch(function(options) {
  1555. var query = {
  1556. text : options.message,
  1557. code : options.code,
  1558. field : options.fieldName
  1559. };
  1560. /** @type {string} */
  1561. var i = "socialJoin";
  1562. var data = join(true);
  1563. if (data.provider = utils.formData.getProviderNameDisplay(req.passedInData.provider.toLowerCase()), data.providerKey = req.passedInData.provider.toLowerCase(), "mobileJoin" === type && (i = "mobileJoinContinue", query.meta = {
  1564. mobileJoinOrLogin : true
  1565. }, data.mobileJoinForm = {
  1566. hiddenFields : {
  1567. registrationToken : token.registrationToken
  1568. }
  1569. }), "COPPA_ERROR" === options.code) {
  1570. assert.coppa();
  1571. query = {
  1572. text : "not eligible"
  1573. };
  1574. } else {
  1575. if (400 === options.httpStatus && options.fieldName) {
  1576. /** @type {!Object} */
  1577. config.views[i].eventHandler = fn;
  1578. config.views[i].render(data);
  1579. var newValue = win.document.querySelector(".nike-unite-component.".concat(options.fieldName));
  1580. settings.onInvalid(newValue, options.message);
  1581. } else {
  1582. /** @type {!Object} */
  1583. config.views[i].eventHandler = fn;
  1584. config.views[i].render(data);
  1585. assert.handleUnexpected(options, options.code);
  1586. }
  1587. }
  1588. var c = self.getEvent(["join", "social", req.passedInData.provider.toLowerCase(), "failure"]);
  1589. return db.emit(c, query), Promise.reject();
  1590. }).then(function() {
  1591. var table = self.getEvent(["join", "social", req.passedInData.provider.toLowerCase(), "success"]);
  1592. return db.emit(table, {
  1593. providerName : req.passedInData.provider.toLowerCase()
  1594. }), add(token, type);
  1595. }).then(function(key) {
  1596. var val = require()({}, key, {
  1597. socialProvider : req.passedInData.provider.toLowerCase(),
  1598. socialUserId : req.passedInData.user ? req.passedInData.user.loginProviderUID : null
  1599. });
  1600. win.nike.unite.destroyAllViews();
  1601. db.emit(users, val);
  1602. }).catch(function() {
  1603. });
  1604. }
  1605. /**
  1606. * @param {!Object} data
  1607. * @param {string} key
  1608. * @return {?}
  1609. */
  1610. function add(data, key) {
  1611. var i = win.nike.unite.currentView().name;
  1612. var result = pos()(join(true), "password");
  1613. return result.provider = data.provider, result.providerKey = data.providerKey, connection.start({
  1614. username : data.emailAddress ? data.emailAddress : "+".concat(get()(data, "mobileNumber", get()(data, "phone.sanitizedNumber", null))),
  1615. password : data.password
  1616. }).then(function(bestbuyBody) {
  1617. return req.loginResponse = bestbuyBody.loginResponse, req.getUserResponse = bestbuyBody.getUserResponse, values.start(res.experience.getExperience().settings.progressive.contexts[key], {
  1618. loginResponse : req.loginResponse,
  1619. getUserResponse : req.getUserResponse
  1620. });
  1621. }).then(function() {
  1622. return worker.start({
  1623. loginResponse : req.loginResponse,
  1624. socialModel : {
  1625. socialInputs : {
  1626. network : req.passedInData.provider.toLowerCase(),
  1627. networkToken : req.socialModel ? req.socialModel.socialInputs.networkToken : req.passedInData.code,
  1628. networkUserId : req.socialModel ? req.socialModel.socialInputs.networkUserId : null
  1629. }
  1630. },
  1631. iv : req.passedInData.iv,
  1632. data : req.passedInData.data
  1633. });
  1634. }).then(function() {
  1635. return req.passedInData.keepMeLoggedIn = true, app.start(req);
  1636. }).catch(function(e) {
  1637. switch(win.nike.unite.destroyAllViews(), e.code) {
  1638. case "UNAUTHORIZED":
  1639. result.errorMessage = extend(data);
  1640. /** @type {function(string, ?): undefined} */
  1641. config.views[i].eventHandler = render;
  1642. config.views[i].render(result);
  1643. break;
  1644. default:
  1645. /** @type {function(string, ?): undefined} */
  1646. config.views[i].eventHandler = render;
  1647. config.views[i].render(result);
  1648. assert.handleUnexpected(e, e.errorCode);
  1649. }
  1650. return Promise.reject(e);
  1651. });
  1652. }
  1653. /**
  1654. * @param {!Object} result
  1655. * @return {?}
  1656. */
  1657. function process(result) {
  1658. if (!result) {
  1659. return {};
  1660. }
  1661. /** @type {string} */
  1662. var n = "";
  1663. switch(type(result.emailAddress)) {
  1664. case "object":
  1665. if (result.emailAddress.value) {
  1666. n = result.emailAddress.value;
  1667. }
  1668. break;
  1669. case "string":
  1670. n = result.emailAddress;
  1671. }
  1672. return {
  1673. emailAddress : {
  1674. value : n
  1675. },
  1676. firstName : {
  1677. value : result.firstName
  1678. },
  1679. jpFirstNameKana : {
  1680. value : result.jpFirstNameKana
  1681. },
  1682. gender : {
  1683. value : result.gender
  1684. },
  1685. lastName : {
  1686. value : result.lastName
  1687. },
  1688. jpLastNameKana : {
  1689. value : result.jpLastNameKana
  1690. },
  1691. dateOfBirth : {
  1692. value : result.dateOfBirth
  1693. },
  1694. zipCode : {
  1695. value : result.postalCode
  1696. },
  1697. emailAddressKey : result.emailAddress,
  1698. firstNameKey : result.firstName,
  1699. lastNameKey : result.lastName,
  1700. countryKey : result.country
  1701. };
  1702. }
  1703. /**
  1704. * @param {string} listener
  1705. * @return {undefined}
  1706. */
  1707. function submit(listener) {
  1708. var app = utils.formData.getFormData();
  1709. switch(require()(input.passedInData, app), listener) {
  1710. case "submit":
  1711. !function(source_url) {
  1712. var params = now()(source_url);
  1713. params.inviteToken = "FAMILY" === params.type ? Initialization.getObject().dataset.invitetoken : null;
  1714. actions.create(params).then(function() {
  1715. return connection.start({
  1716. username : params.emailAddress,
  1717. password : params.password,
  1718. swooshUser : true
  1719. });
  1720. }).then(function(p) {
  1721. return input.loginResponse = p.loginResponse, input.getUserResponse = p.getUserResponse, values.start(res.experience.getExperience().settings.progressive.contexts.join, {
  1722. loginResponse : input.loginResponse,
  1723. getUserResponse : input.getUserResponse
  1724. });
  1725. }).then(function() {
  1726. return app.start(input);
  1727. }).then(function(tile) {
  1728. q.emit(transpilations, tile);
  1729. }).catch(function(e, styleCode) {
  1730. var options = {
  1731. code : styleCode
  1732. };
  1733. config.views.join.render(process(params));
  1734. /** @type {function(string): undefined} */
  1735. config.views.join.eventHandler = submit;
  1736. options.code = e.code || options.code || "general error";
  1737. var key = e.fieldName;
  1738. if (key) {
  1739. (function(element, hosts) {
  1740. var newValue = win.document.querySelector(".nike-unite-component.".concat(element));
  1741. settings.onInvalid(newValue, hosts);
  1742. })(key, e.message);
  1743. } else {
  1744. if (e.message) {
  1745. assert.handleUnexpected(e.message, e.code);
  1746. } else {
  1747. assert.handleUnexpected("".concat(e.httpStatus, " - ").concat(e.message ? e.message : "No error message found."), e.code);
  1748. }
  1749. }
  1750. q.emit(qa, options);
  1751. });
  1752. }(input.passedInData);
  1753. break;
  1754. case "loginRender":
  1755. nike.unite.destroyAllViews();
  1756. nike.unite.views.login.render(process(app));
  1757. }
  1758. }
  1759. /**
  1760. * @param {string} options
  1761. * @param {?} url
  1762. * @param {!Function} callback
  1763. * @param {!Function} fn
  1764. * @param {?} a
  1765. * @return {undefined}
  1766. */
  1767. function request(options, url, callback, fn, a) {
  1768. if ("string" != typeof options || !options) {
  1769. throw new Error("code must be a non-empty string");
  1770. }
  1771. if ("string" != typeof url || !url) {
  1772. throw new Error("accessToken must be a non-empty string");
  1773. }
  1774. if ("function" != typeof callback) {
  1775. throw new Error("onSuccess must be a function");
  1776. }
  1777. if ("function" != typeof fn) {
  1778. throw new Error("onError must be a function");
  1779. }
  1780. if ("function" != typeof a && void 0 !== a) {
  1781. throw new Error("onTimeout must be a function or undefined");
  1782. }
  1783. var data = {
  1784. code : options
  1785. };
  1786. /** @type {string} */
  1787. var e = "".concat(res.experience.getCorsServerOverride() || res.experience.getCorsServer(), "/verifyCode").concat(utils.script.buildQueryString(data));
  1788. console.post(e, {}, callback, fn, a, {
  1789. Authorization : "Bearer ".concat(url),
  1790. "Content-Type" : "application/json"
  1791. });
  1792. }
  1793. /**
  1794. * @param {string} target
  1795. * @param {?} options
  1796. * @param {string} doc
  1797. * @param {!Function} fn
  1798. * @param {!Function} callback
  1799. * @param {?} e
  1800. * @return {undefined}
  1801. */
  1802. function send(target, options, doc, fn, callback, e) {
  1803. if ("string" != typeof target || !target) {
  1804. throw new Error("phoneNumber must be a non-empty string");
  1805. }
  1806. if ("string" != typeof options || !options) {
  1807. throw new Error("accessToken must be a non-empty string");
  1808. }
  1809. if ("function" != typeof fn) {
  1810. throw new Error("onSuccess must be a function");
  1811. }
  1812. if ("function" != typeof callback) {
  1813. throw new Error("onError must be a function");
  1814. }
  1815. if ("function" != typeof e && void 0 !== e) {
  1816. throw new Error("onTimeout must be a function or undefined");
  1817. }
  1818. var data = {
  1819. phone : target,
  1820. country : doc
  1821. };
  1822. /** @type {string} */
  1823. var s = "".concat(res.experience.getCorsServerOverride() || res.experience.getCorsServer(), "/sendCode").concat(utils.script.buildQueryString(data));
  1824. console.post(s, {}, fn, callback, e, {
  1825. Authorization : "Bearer ".concat(options),
  1826. "Content-Type" : "application/json"
  1827. });
  1828. }
  1829. /**
  1830. * @param {!Object} curr
  1831. * @return {undefined}
  1832. */
  1833. function execute(curr) {
  1834. /** @type {string} */
  1835. stool.getElementsByClassName("code")[0].innerHTML = "+".concat(curr.code);
  1836. }
  1837. /**
  1838. * @param {string} event
  1839. * @param {string} field
  1840. * @return {undefined}
  1841. */
  1842. function append(event, field) {
  1843. var newValue = win.document.querySelector(".".concat(event));
  1844. settings.onInvalid(newValue, field);
  1845. }
  1846. /**
  1847. * @param {string} callback
  1848. * @return {?}
  1849. */
  1850. function validate(callback) {
  1851. var html = dispatch()(message.supportedList, function(parent) {
  1852. return parent.country === child.value;
  1853. }).code;
  1854. return name = html + event.value, _this.validate(newValue, message.rules.sendCode, name, callback);
  1855. }
  1856. /**
  1857. * @return {?}
  1858. */
  1859. function validator() {
  1860. return validate("submit") ? !!_this.validate(changedPath, message.rules.verifyCode, e.value, "submit") || (message.inputId = message.verifyCodeInputId, false) : (message.inputId = message.phoneInputId, false);
  1861. }
  1862. /**
  1863. * @return {undefined}
  1864. */
  1865. function buildThreads() {
  1866. /** @type {string} */
  1867. digitPar.style.display = "none";
  1868. /** @type {string} */
  1869. digitPar.innerHTML = "";
  1870. /** @type {boolean} */
  1871. ex1go.disabled = false;
  1872. }
  1873. /**
  1874. * @return {?}
  1875. */
  1876. function initialize() {
  1877. if (!validate("submit") || ex1go.disabled) {
  1878. return $window.a.resolve();
  1879. }
  1880. /** @type {boolean} */
  1881. ex1go.disabled = true;
  1882. /** @type {number} */
  1883. var e = 30;
  1884. return digitPar.style.display = "block", digitPar.innerHTML = message.sendCodeSubmissionMessage.replace("{{seconds}}", e.toString()), fbxTimer && clearInterval(fbxTimer), fbxTimer = setInterval(function() {
  1885. if (0 === (e = e - 1)) {
  1886. return clearInterval(fbxTimer), void buildThreads();
  1887. }
  1888. digitPar.innerHTML = message.sendCodeSubmissionMessage.replace("{{seconds}}", e.toString());
  1889. }, 1E3), function() {
  1890. var x = res.localization.getCountry();
  1891. var html = dispatch()(message.supportedList, function(parent) {
  1892. return parent.country === child.value;
  1893. }).code;
  1894. return "progressive" === win.nike.unite.currentView().name ? nike.unite.currentView().view.eventHandler("getAccessToken").then(function(i) {
  1895. return util.sendCodeWithPromise(html + event.value, i, child.value);
  1896. }) : Sprite.create(html + event.value, x);
  1897. }().then(function() {
  1898. e.focus();
  1899. verbInst.emit(self.getEvent(["user", "sendMobileCode", "success"]));
  1900. }).catch(function(e) {
  1901. switch(clearInterval(fbxTimer), buildThreads(), e.code) {
  1902. case "99819":
  1903. case "99801":
  1904. case "99808":
  1905. case "99704":
  1906. _this.state.onInvalid(newValue, e.message);
  1907. break;
  1908. default:
  1909. assert.handleUnexpected({}, e.code);
  1910. }
  1911. verbInst.emit(self.getEvent(["user", "sendMobileCode", "failure"]));
  1912. });
  1913. }
  1914. /**
  1915. * @return {?}
  1916. */
  1917. function success() {
  1918. if (optcur) {
  1919. return $window.a.resolve();
  1920. }
  1921. var html = dispatch()(message.supportedList, function(parent) {
  1922. return parent.country === child.value;
  1923. }).code;
  1924. return name = html + event.value, nodeType = name.replace("+", "").replace(" ", ""), (fbxTimer && clearInterval(fbxTimer), "progressive" === win.nike.unite.currentView().name ? nike.unite.currentView().view.eventHandler("getAccessToken").then(function(value) {
  1925. return $scope.verifyCodeWithPromise(e.value, value);
  1926. }) : dom.create(name, e.value)).then(function(token) {
  1927. return optcur = token.registrationToken ? token.registrationToken : null, verbInst.emit(argv), $window.a.resolve({
  1928. registrationToken : optcur,
  1929. mobileNumber : name
  1930. });
  1931. }).catch(function(e) {
  1932. buildThreads();
  1933. clearInterval(fbxTimer);
  1934. var me = win.nike.unite.currentView().view;
  1935. var handler = me.eventHandler;
  1936. var n = utils.formData.getFormDataByComponent();
  1937. return me.render(n), me.eventHandler = handler, "99704" === e.code ? append("sendCode", e.message) : ["99980", "99809", "99800"].indexOf(e.code) > -1 ? append("verifyCode", e.message) : assert.handleUnexpected(e.message, e.code), verbInst.emit(presType), $window.a.reject(e);
  1938. });
  1939. }
  1940. /**
  1941. * @return {?}
  1942. */
  1943. function getter() {
  1944. return {
  1945. mobileNumber : name,
  1946. phoneCountry : child.value,
  1947. sanitizedNumber : nodeType,
  1948. registrationToken : optcur
  1949. };
  1950. }
  1951. /**
  1952. * @param {?} roomid
  1953. * @param {string} data
  1954. * @param {undefined} key
  1955. * @return {?}
  1956. */
  1957. function func(roomid, data, key) {
  1958. if ("/" === data && (m[key].type += "Close"), "object" === type(m[key])) {
  1959. var node = module.render(m[key], key, value);
  1960. return components.push(node), node.handlers.length > 0 && (handlers = handlers.concat(node.handlers)), node.html;
  1961. }
  1962. return m[key];
  1963. }
  1964. /**
  1965. * @param {string} x
  1966. * @return {?}
  1967. */
  1968. function push(x) {
  1969. return config.views[x];
  1970. }
  1971. /**
  1972. * @param {string} node
  1973. * @param {string} data
  1974. * @param {number} method
  1975. * @return {undefined}
  1976. */
  1977. function create(node, data, method) {
  1978. var options = push(node);
  1979. if (options.rendered) {
  1980. options.destroy();
  1981. }
  1982. var form = config.layout(options, data);
  1983. if (options.placeholder = win.document.getElementById(options.model.src), !options.placeholder) {
  1984. throw new Error("The placeholder for ".concat(node, " is missing. (").concat(options.model.src, ")"));
  1985. }
  1986. if (options.model.classes && "string" == typeof options.model.classes) {
  1987. /** @type {!Array<string>} */
  1988. options.model.classes = options.model.classes.split(" ");
  1989. }
  1990. if (!options.model.classes) {
  1991. /** @type {!Array} */
  1992. options.model.classes = [];
  1993. }
  1994. if (!inject()(options.model.classes, "nike-unite")) {
  1995. options.model.classes.push("nike-unite");
  1996. }
  1997. forEach()(options.model.classes, function(e) {
  1998. options.placeholder.classList.add(e);
  1999. });
  2000. options.placeholder.innerHTML = form.html;
  2001. options.placeholder.setAttribute("data-view", node);
  2002. /** @type {boolean} */
  2003. options.rendered = true;
  2004. options.components = form.components;
  2005. var artistTrack = options.placeholder.querySelectorAll(".nike-unite-component input");
  2006. if (forEach()(artistTrack, function(canCreateDiscussions) {
  2007. if ("function" == typeof canCreateDiscussions.uniteShim) {
  2008. canCreateDiscussions.uniteShim();
  2009. }
  2010. }), forEach()(form.handlers, function(binding) {
  2011. var element = win.document.getElementById(binding.target);
  2012. if (element) {
  2013. if ("render" === binding.event && "function" == typeof binding.handler) {
  2014. binding.handler(element, options);
  2015. } else {
  2016. element.addEventListener(binding.event, binding.handler, false);
  2017. }
  2018. }
  2019. }), options.placeholder.style.display = "block", void 0 !== method) {
  2020. if ("function" != typeof method) {
  2021. throw new Error("The submit handler for a view MUST be a function if passed.");
  2022. }
  2023. /** @type {number} */
  2024. options.submitHandler = method;
  2025. }
  2026. !function(catalogs, data) {
  2027. var options = {};
  2028. switch(catalogs.name) {
  2029. case "appLanding":
  2030. JSON.emit(is);
  2031. break;
  2032. case "login":
  2033. JSON.emit(tx);
  2034. break;
  2035. case "loginContinuity":
  2036. JSON.emit(localIdEvent);
  2037. break;
  2038. case "emailOnlyJoin":
  2039. JSON.emit(downName);
  2040. break;
  2041. case "join":
  2042. JSON.emit(installation);
  2043. break;
  2044. case "socialJoin":
  2045. options.providerName = data ? data.providerKey : "";
  2046. JSON.emit(outlet, options);
  2047. break;
  2048. case "reauth":
  2049. JSON.emit(noDataNode);
  2050. break;
  2051. case "resetPassword":
  2052. JSON.emit(ls);
  2053. break;
  2054. case "updatePassword":
  2055. JSON.emit(scrollRow);
  2056. break;
  2057. case "link":
  2058. options.providerName = data ? data.providerKey : "";
  2059. JSON.emit(stack, options);
  2060. break;
  2061. case "mobileJoin":
  2062. case "mobileJoinContinue":
  2063. JSON.emit(installation);
  2064. break;
  2065. case "partnerConnect":
  2066. JSON.emit(err);
  2067. break;
  2068. case "progressive":
  2069. JSON.emit(vvm);
  2070. break;
  2071. case "verifyMobileCode":
  2072. JSON.emit(os);
  2073. break;
  2074. case "mobileVerificationCode":
  2075. JSON.emit(EVENT_CLOSED);
  2076. break;
  2077. case "isMobileVerifiedState":
  2078. JSON.emit(disabledURLs);
  2079. break;
  2080. case "isLegallyCompliantState":
  2081. JSON.emit(ELEMENT_EVENT_NAME);
  2082. break;
  2083. case "weChatMiniMobileJoin":
  2084. JSON.emit(cs);
  2085. break;
  2086. case "weChatMiniMobileJoinContinue":
  2087. JSON.emit(stat);
  2088. }
  2089. }(options, data);
  2090. }
  2091. /**
  2092. * @param {!Object} opts
  2093. * @param {string} name
  2094. * @return {?}
  2095. */
  2096. function main(opts, name) {
  2097. return opts.aliasFor ? (utils.namespace("nike.unite.views")[name] = {}, true) : (function(data) {
  2098. utils.namespace("nike.unite.views")[data.name] = data;
  2099. config.views[data.name] = data;
  2100. }({
  2101. destroy : function() {
  2102. return config.views[name].rendered ? function(undefined) {
  2103. var options = push(undefined);
  2104. delete options.submitHandler;
  2105. delete options.components;
  2106. /** @type {null} */
  2107. options.eventHandler = null;
  2108. if (options.placeholder) {
  2109. /** @type {string} */
  2110. options.placeholder.innerHTML = "";
  2111. /** @type {string} */
  2112. options.placeholder.style.display = "none";
  2113. }
  2114. /** @type {boolean} */
  2115. options.rendered = false;
  2116. }(name) : utils.noop();
  2117. },
  2118. getComponentById : function(id) {
  2119. return function(path, index) {
  2120. var cssPropValueList = push(path).components || [];
  2121. /** @type {number} */
  2122. var i = 0;
  2123. for (; i < cssPropValueList.length; i = i + 1) {
  2124. var value = cssPropValueList[i];
  2125. if (get()(value, "model.id") === index) {
  2126. return value;
  2127. }
  2128. }
  2129. return null;
  2130. }(name, id);
  2131. },
  2132. getFormData : function() {
  2133. return function(k) {
  2134. /** @type {null} */
  2135. var obj = null;
  2136. var element = push(k);
  2137. if (element.placeholder) {
  2138. var aRow = element.placeholder.querySelector(".nike-unite-form");
  2139. if (aRow) {
  2140. var prop = utils.formData.getFormDataByComponent(aRow);
  2141. obj = setAttribute()(prop) ? obj : prop;
  2142. }
  2143. }
  2144. return obj;
  2145. }(name);
  2146. },
  2147. model : opts,
  2148. placeholder : null,
  2149. render : function(type, value) {
  2150. return create(name, type, value);
  2151. },
  2152. rendered : false,
  2153. submit : function(password) {
  2154. return function(k, n) {
  2155. var element = push(k);
  2156. if (n && (element.validationCallback = n), !element.placeholder || !element.placeholder.querySelector(".nike-unite-submit-button input[type=button]")) {
  2157. throw new Error("View does not exist or is not rendered with a submit button.");
  2158. }
  2159. element.placeholder.querySelector(".nike-unite-submit-button input[type=button]").click();
  2160. }(name, password);
  2161. },
  2162. values : {},
  2163. name : name,
  2164. eventHandler : null
  2165. }), true);
  2166. }
  2167. /**
  2168. * @param {!Object} elem
  2169. * @return {undefined}
  2170. */
  2171. function init(elem) {
  2172. /** @type {string} */
  2173. (node = elem).placeholder = "";
  2174. /** @type {string} */
  2175. node.style.color = "transparent";
  2176. /** @type {string} */
  2177. node.autocomplete = "on";
  2178. /** @type {boolean} */
  2179. node.readOnly = true;
  2180. /** @type {string} */
  2181. node.tabIndex = "-1";
  2182. var html = function() {
  2183. var f;
  2184. var locale = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : navigator.language;
  2185. /** @type {string} */
  2186. var hash = "";
  2187. if (window.Intl) {
  2188. /** @type {!Intl.DateTimeFormat} */
  2189. f = new Intl.DateTimeFormat(locale, {
  2190. year : "numeric",
  2191. month : "numeric",
  2192. day : "numeric"
  2193. });
  2194. }
  2195. if (f && f.formatToParts) {
  2196. var navLinksArr = f.formatToParts(Date.now());
  2197. hash = navLinksArr.map(function(scope) {
  2198. switch(scope.type) {
  2199. case "year":
  2200. return "{yyyy}";
  2201. case "month":
  2202. return "{mm}";
  2203. case "day":
  2204. return "{dd}";
  2205. case "literal":
  2206. return "/";
  2207. default:
  2208. return "";
  2209. }
  2210. }).join("");
  2211. } else {
  2212. if (res.experience.getExperience().settings.dateFormat) {
  2213. hash = res.experience.getExperience().settings.dateFormat;
  2214. }
  2215. }
  2216. return function(url) {
  2217. return 0 === button()(url.split("/"), ["{mm}", "{dd}", "{yyyy}"]).length;
  2218. }(hash) ? hash : "{dd}/{mm}/{yyyy}";
  2219. }();
  2220. node.insertAdjacentHTML("afterend", function(selector) {
  2221. var rule = selector.replace(/{/g, "</span>").replace(/}/g, '</div><div class="nike-unite-date-select"><span>').replace("yyyy", function(parentTokens, featureTags) {
  2222. /** @type {string} */
  2223. var body = "";
  2224. /** @type {number} */
  2225. var e = (new Date).getFullYear();
  2226. for (; e >= end; e--) {
  2227. /** @type {string} */
  2228. body = body + '<option value="'.concat(e, '">').concat(highlight(e), "</option>");
  2229. }
  2230. return '<select id="'.concat(parentTokens, '"><option value="" class="select-placeholder">').concat(featureTags, "</option>").concat(body, "</select>");
  2231. }("nike-unite-date-id-yyyy", Vs.yyyylabel)).replace("mm", function(parentTokens, featureTags) {
  2232. /** @type {string} */
  2233. var body = "";
  2234. /** @type {number} */
  2235. var naturalized = 1;
  2236. for (; naturalized <= 12; naturalized++) {
  2237. /** @type {string} */
  2238. var e = "0".concat(naturalized).slice(-2);
  2239. /** @type {string} */
  2240. body = body + '<option value="'.concat(e, '">').concat(highlight(e), "</option>");
  2241. }
  2242. return '<select id="'.concat(parentTokens, '"><option value="" class="select-placeholder">').concat(featureTags, "</option>").concat(body, "</select>");
  2243. }("nike-unite-date-id-mm", Vs.mmlabel)).replace("dd", function(parentTokens, featureTags) {
  2244. /** @type {string} */
  2245. var body = "";
  2246. /** @type {number} */
  2247. var naturalized = 1;
  2248. for (; naturalized <= 31; naturalized++) {
  2249. /** @type {string} */
  2250. var e = "0".concat(naturalized).slice(-2);
  2251. /** @type {string} */
  2252. body = body + '<option value="'.concat(e, '">').concat(highlight(e), "</option>");
  2253. }
  2254. return '<select id="'.concat(parentTokens, '"><option value="" class="select-placeholder">').concat(featureTags, "</option>").concat(body, "</select>");
  2255. }("nike-unite-date-id-dd", Vs.ddlabel));
  2256. return rule = (rule = (rule = '<div class="nike-unite-date-select"><span>'.concat(rule, "</span></div>")).replace(/<span><\/span>/g, "")).replace(/<div class="nike-unite-date-select"><\/div>/, ""), mainDivID = utils.generateUuid(), '<div class="nike-unite-date" id="'.concat(mainDivID, '">').concat(rule, "</div>");
  2257. }(html));
  2258. /** @type {(Element|null)} */
  2259. var elemToShow = document.getElementById(mainDivID);
  2260. if (elemToShow && (elemToShow.style.display = "block", elemToShow.parentNode.classList.add("nike-unite-date-parent")), format = {
  2261. month : document.getElementById("nike-unite-date-id-mm"),
  2262. day : document.getElementById("nike-unite-date-id-dd"),
  2263. year : document.getElementById("nike-unite-date-id-yyyy")
  2264. }, forEach()(format, function(e) {
  2265. if (node.value) {
  2266. e.classList.remove("select-placeholder");
  2267. } else {
  2268. e.classList.add("select-placeholder");
  2269. }
  2270. }), node.value) {
  2271. var p = node.value.split("-");
  2272. forEach()(p, function(x1, y) {
  2273. if (x1 && 1 === x1.length) {
  2274. /** @type {string} */
  2275. p[y] = "0".concat(x1);
  2276. }
  2277. });
  2278. /** @type {string} */
  2279. node.value = "".concat(p[0], "-").concat(p[1], "-").concat(p[2]);
  2280. node.focus();
  2281. node.blur();
  2282. format.year.value = p[0];
  2283. format.month.value = p[1];
  2284. format.day.value = p[2];
  2285. forEach()(format, function(focusedObj) {
  2286. focusedObj.classList.remove("select-placeholder");
  2287. });
  2288. } else {
  2289. forEach()(format, function(e) {
  2290. e.classList.add("select-placeholder");
  2291. });
  2292. }
  2293. forEach()(format, function(elem) {
  2294. /** @type {function(): undefined} */
  2295. elem.onblur = link;
  2296. });
  2297. }
  2298. /**
  2299. * @param {string} e
  2300. * @return {?}
  2301. */
  2302. function highlight(e) {
  2303. var attrToProp = Languages[res.localization.getLanguage()];
  2304. if (!attrToProp) {
  2305. return e;
  2306. }
  2307. /** @type {string} */
  2308. var pix_color = "";
  2309. return e = e + "", forEach()(e, function(name) {
  2310. var pix_base = attrToProp[name] || name;
  2311. pix_color = pix_color + pix_base;
  2312. }), pix_color;
  2313. }
  2314. /**
  2315. * @return {undefined}
  2316. */
  2317. function link() {
  2318. var a = format.month.value;
  2319. var b = format.day.value;
  2320. var row = format.year.value;
  2321. /** @type {string} */
  2322. node.value = row && a && b ? "".concat(row, "-").concat("0".concat(a).slice(-2), "-").concat("0".concat(b).slice(-2)) : "";
  2323. if (node.value) {
  2324. node.focus();
  2325. node.blur();
  2326. forEach()(format, function(focusedObj) {
  2327. focusedObj.classList.remove("select-placeholder");
  2328. });
  2329. } else {
  2330. forEach()(format, function(e) {
  2331. e.classList.add("select-placeholder");
  2332. });
  2333. }
  2334. }
  2335. /**
  2336. * @return {undefined}
  2337. */
  2338. function throwEx() {
  2339. /**
  2340. * @return {undefined}
  2341. */
  2342. HTMLInputElement.prototype.uniteShim = function() {
  2343. if ("date" === this.getAttribute("type")) {
  2344. Vs = {
  2345. mmlabel : this.dataset.mmlabel,
  2346. ddlabel : this.dataset.ddlabel,
  2347. yyyylabel : this.dataset.yyyylabel
  2348. };
  2349. this.setAttribute("type", "text");
  2350. init(this);
  2351. }
  2352. };
  2353. }
  2354. /**
  2355. * @param {!Event} event
  2356. * @return {undefined}
  2357. */
  2358. function onTempoIconUp(event) {
  2359. /** @type {string} */
  2360. win.window.location.hash = '{"event":"cancelled"}';
  2361. event.stopPropagation();
  2362. }
  2363. /**
  2364. * @return {undefined}
  2365. */
  2366. function hideMenu() {
  2367. if (gobel) {
  2368. gobel.parentNode.removeChild(gobel);
  2369. gobel = void 0;
  2370. }
  2371. }
  2372. /**
  2373. * @return {undefined}
  2374. */
  2375. function showMenu() {
  2376. hideMenu();
  2377. (gobel = document.createElement("span")).classList.add("nike-unite-close-button");
  2378. gobel.addEventListener("click", onTempoIconUp);
  2379. document.body.appendChild(gobel);
  2380. }
  2381. /**
  2382. * @return {undefined}
  2383. */
  2384. function handleKeyPress() {
  2385. if (res.platform.getIOSProperties().showDOMCancelButton) {
  2386. showMenu();
  2387. }
  2388. }
  2389. /**
  2390. * @return {undefined}
  2391. */
  2392. function onChange() {
  2393. $document.offAny(handleKeyPress);
  2394. $document.on(self.getEvent(["app", "load", "success"]), handleKeyPress);
  2395. }
  2396. /**
  2397. * @param {!Object} value
  2398. * @return {?}
  2399. */
  2400. function copy(value) {
  2401. return !(!value || "0" === value || "false" === value);
  2402. }
  2403. /**
  2404. * @param {string} value
  2405. * @param {?} text
  2406. * @return {?}
  2407. */
  2408. function find(value, text) {
  2409. var result = {};
  2410. return car()(text).forEach(function(root) {
  2411. var n = query(root, 2);
  2412. var i = n[0];
  2413. var node = n[1];
  2414. if (text()(node) && !write()(node)) {
  2415. var array = get()(value, node._path);
  2416. switch(node._type) {
  2417. case "avatar":
  2418. result[i] = function(type, value) {
  2419. var collection;
  2420. var options = {
  2421. base : type || "",
  2422. crop : null,
  2423. preview : null,
  2424. id : value ? value.toString() : null,
  2425. suffix : "_LRG.jpg"
  2426. };
  2427. var searcher_name = entity.getBackendEnvironment();
  2428. switch(searcher_name.match(/~*^identityInt_ecn[0-9]+$/) && (searcher_name = "identityInt"), searcher_name) {
  2429. case "identityInt":
  2430. /** @type {string} */
  2431. collection = "ecn81-www.nikedev.com";
  2432. break;
  2433. case "commercePerf":
  2434. /** @type {string} */
  2435. collection = "ecn104-www.nikedev.com";
  2436. break;
  2437. default:
  2438. /** @type {string} */
  2439. collection = "www.nike.com";
  2440. }
  2441. return options.prefix = "https://".concat(collection, "/vc/profile/"), options.fullUrl = type ? "".concat(options.prefix).concat(type, "_100.jpg") : null, options;
  2442. }(array, get()(value, "upmId", null));
  2443. break;
  2444. case "boolean":
  2445. result[i] = copy(array);
  2446. break;
  2447. case "constant":
  2448. result[i] = node._value;
  2449. break;
  2450. case "dataShareOptIns":
  2451. result[i] = function(obj) {
  2452. return [{
  2453. code : "00001",
  2454. defaultValue : true,
  2455. optedIn : !(!obj || !Object.keys(obj).some(function(envDir) {
  2456. return envDir.endsWith("active");
  2457. }))
  2458. }];
  2459. }(array);
  2460. break;
  2461. case "date":
  2462. result[i] = function(value) {
  2463. if (value && !validateWithRE()(value)) {
  2464. /** @type {!Date} */
  2465. var d = new Date(value);
  2466. return [d.getUTCFullYear(), "0".concat(d.getUTCMonth() + 1).slice(-2), "0".concat(d.getUTCDate()).slice(-2)].join("-");
  2467. }
  2468. return null;
  2469. }(array);
  2470. break;
  2471. case "float":
  2472. result[i] = function(obj) {
  2473. /** @type {number} */
  2474. var value = parseFloat(obj, 10);
  2475. return validateWithRE()(value) ? null : value;
  2476. }(array);
  2477. break;
  2478. case "gender":
  2479. result[i] = function(adjustType) {
  2480. switch(adjustType) {
  2481. case "F":
  2482. return "1";
  2483. case "M":
  2484. return "2";
  2485. default:
  2486. return "0";
  2487. }
  2488. }(array);
  2489. break;
  2490. case "stringifiedBinary":
  2491. result[i] = function(type) {
  2492. return copy(type) ? "1" : "0";
  2493. }(array);
  2494. break;
  2495. case "userType":
  2496. result[i] = function(name) {
  2497. return name && "swoosh" === name.toLowerCase() ? "swoosh" : "nike";
  2498. }(array);
  2499. break;
  2500. default:
  2501. result[i] = find(value, node);
  2502. }
  2503. } else {
  2504. result[i] = function(pingErr) {
  2505. return pingErr ? pingErr.toString() : null;
  2506. }(get()(value, node));
  2507. }
  2508. }), result;
  2509. }
  2510. /**
  2511. * @param {string} name
  2512. * @return {?}
  2513. */
  2514. function findUser(name) {
  2515. return find(name, selector);
  2516. }
  2517. /**
  2518. * @param {!Function} error
  2519. * @return {?}
  2520. */
  2521. function getUser(error) {
  2522. return function(frag, xhr) {
  2523. var r = get()(res.experience.getExperience(), "settings.useLegacyGetUser", null);
  2524. var shouldClone = !res.experience.isIdentityBackend() || res.experience.isIdentityBackend() && r;
  2525. return error(frag && shouldClone ? findUser(frag) : frag, xhr);
  2526. };
  2527. }
  2528. /**
  2529. * @return {undefined}
  2530. */
  2531. function action() {
  2532. commands.create({
  2533. name : "login.footerLink",
  2534. namespaces : ["ui:login:footerLink:*:click"]
  2535. });
  2536. commands.create({
  2537. name : "login.socialCancel",
  2538. namespaces : ["ui:login:socialCancel:*:click"]
  2539. });
  2540. commands.create({
  2541. name : "join.footerLink",
  2542. namespaces : ["ui:join:footerLink:*:click"]
  2543. });
  2544. commands.create({
  2545. name : "join.alreadyAMemberLink",
  2546. namespaces : ["ui:join:alreadyMember:click"]
  2547. });
  2548. commands.create({
  2549. name : "join.socialLink",
  2550. namespaces : ["ui:join:socialLink:*:click"]
  2551. });
  2552. commands.create({
  2553. name : "join.socialCancel",
  2554. namespaces : ["ui:join:socialCancel:*:click"]
  2555. });
  2556. commands.create({
  2557. name : "appLanding.view",
  2558. namespaces : ["view:appLanding:rendered"]
  2559. });
  2560. commands.create({
  2561. name : "login.view",
  2562. namespaces : ["view:login:rendered"]
  2563. });
  2564. commands.create({
  2565. name : "login.fail",
  2566. namespaces : ["login:failure", "login:*:failure"]
  2567. });
  2568. commands.create({
  2569. name : "login.success",
  2570. namespaces : ["login:success", "login:*:success"]
  2571. });
  2572. commands.create({
  2573. name : "login.socialLink",
  2574. namespaces : ["ui:login:socialLink:*:click"]
  2575. });
  2576. commands.create({
  2577. name : "login.joinNowButton",
  2578. namespaces : ["ui:login:joinNow:*:click"]
  2579. });
  2580. commands.create({
  2581. name : "login.resetPasswordLink",
  2582. namespaces : ["ui:login:resetPassword:*:click"]
  2583. });
  2584. commands.create({
  2585. name : "partnerConnect.view",
  2586. namespaces : ["view:partnerConnect:rendered"]
  2587. });
  2588. commands.create({
  2589. name : "partnerLogin.fail",
  2590. namespaces : ["login:partner:failure"]
  2591. });
  2592. commands.create({
  2593. name : "partnerLogin.success",
  2594. namespaces : ["login:partner:success"]
  2595. });
  2596. commands.create({
  2597. name : "loginContinuity.view",
  2598. namespaces : ["view:loginContinuity:rendered"]
  2599. });
  2600. commands.create({
  2601. name : "loginContinuity.notMeLink",
  2602. namespaces : ["ui:loginContinuity:notMe:click"]
  2603. });
  2604. commands.create({
  2605. name : "join.view",
  2606. namespaces : ["view:join:rendered"]
  2607. });
  2608. commands.create({
  2609. name : "join.fail",
  2610. namespaces : ["join:failure", "join:*:failure"]
  2611. });
  2612. commands.create({
  2613. name : "join.success",
  2614. namespaces : ["join:success", "join:*:success"]
  2615. });
  2616. commands.create({
  2617. name : "emailOnlyJoin.view",
  2618. namespaces : ["view:emailOnly:rendered"]
  2619. });
  2620. commands.create({
  2621. name : "emailOnlyJoin.fail",
  2622. namespaces : ["join:emailOnly:failure"]
  2623. });
  2624. commands.create({
  2625. name : "emailOnlyJoin.success",
  2626. namespaces : ["join:emailOnly:success"]
  2627. });
  2628. commands.create({
  2629. name : "partnerJoin.fail",
  2630. namespaces : ["join:partner:failure"]
  2631. });
  2632. commands.create({
  2633. name : "partnerJoin.success",
  2634. namespaces : ["join:partner:success"]
  2635. });
  2636. commands.create({
  2637. name : "reauth.view",
  2638. namespaces : ["view:reauth:rendered"]
  2639. });
  2640. commands.create({
  2641. name : "reauth.resetPasswordLink",
  2642. namespaces : ["ui:reauth:resetPassword:click"]
  2643. });
  2644. commands.create({
  2645. name : "resetPassword.view",
  2646. namespaces : ["view:resetPassword:rendered"]
  2647. });
  2648. commands.create({
  2649. name : "resetPassword.fail",
  2650. namespaces : ["password:reset:failure"]
  2651. });
  2652. commands.create({
  2653. name : "resetPassword.success",
  2654. namespaces : ["password:reset:success"]
  2655. });
  2656. commands.create({
  2657. name : "updatePassword.view",
  2658. namespaces : ["view:updatePassword:rendered"]
  2659. });
  2660. commands.create({
  2661. name : "updatePassword.fail",
  2662. namespaces : ["password:update:failure"]
  2663. });
  2664. commands.create({
  2665. name : "updatePassword.success",
  2666. namespaces : ["password:update:success"]
  2667. });
  2668. commands.create({
  2669. name : "userState.fail",
  2670. namespaces : ["user:canCheckOut:failure", "user:canRegisterEvent:failure", "user:hasDateOfBirth:failure", "user:hasEmail:failure", "user:isLegallyCompliant:failure", "user:isMobileVerified:failure", "user:isSneakerHead:failure", "user:isSwooshUser:failure", "user:verifyMobileCode:failure"]
  2671. });
  2672. commands.create({
  2673. name : "userState.success",
  2674. namespaces : ["user:canCheckOut:success", "user:canRegisterEvent:success", "user:hasDateOfBirth:success", "user:hasEmail:success", "user:isLegallyCompliant:success", "user:isMobileVerified:success", "user:isSneakerHead:success", "user:isSwooshUser:success", "user:verifyMobileCode:success"]
  2675. });
  2676. commands.create({
  2677. name : "linkAccounts.view",
  2678. namespaces : ["view:linkAccounts:rendered"]
  2679. });
  2680. commands.create({
  2681. name : "linkAccounts.success",
  2682. namespaces : ["link:create:*:success"]
  2683. });
  2684. commands.create({
  2685. name : "linkAccounts.fail",
  2686. namespaces : ["link:create:*:failure"]
  2687. });
  2688. commands.create({
  2689. name : "linkOverride.success",
  2690. namespaces : ["link:update:*:success"]
  2691. });
  2692. commands.create({
  2693. name : "linkOverride.fail",
  2694. namespaces : ["link:update:*:failure"]
  2695. });
  2696. commands.create({
  2697. name : "linkAccounts.resetPasswordLink",
  2698. namespaces : ["ui:linkAccounts:resetPassword:click"]
  2699. });
  2700. commands.create({
  2701. name : "socialJoin.view",
  2702. namespaces : ["view:socialJoin:rendered"]
  2703. });
  2704. commands.create({
  2705. name : "socialJoin.success",
  2706. namespaces : ["join:social:*:success"]
  2707. });
  2708. commands.create({
  2709. name : "socialJoin.fail",
  2710. namespaces : ["join:*:failure"]
  2711. });
  2712. commands.create({
  2713. name : "progressiveProfile.view",
  2714. namespaces : ["view:progressiveProfile:rendered"]
  2715. });
  2716. commands.create({
  2717. name : "progressiveProfile.success",
  2718. namespaces : ["progressiveProfile:success"]
  2719. });
  2720. commands.create({
  2721. name : "progressiveProfile.fail",
  2722. namespaces : ["progressiveProfile:failure"]
  2723. });
  2724. commands.create({
  2725. name : "isLegallyCompliantState.view",
  2726. namespaces : ["view:isLegallyCompliant:rendered"]
  2727. });
  2728. commands.create({
  2729. name : "isMobileVerifiedState.view",
  2730. namespaces : ["view:isMobileVerified:rendered"]
  2731. });
  2732. commands.create({
  2733. name : "verifyMobileCode.view",
  2734. namespaces : ["view:verifyMobileCode:rendered"]
  2735. });
  2736. commands.create({
  2737. name : "mobileVerification.view",
  2738. namespaces : ["view:mobileVerification:rendered"]
  2739. });
  2740. commands.create({
  2741. name : "mobileVerification.success",
  2742. namespaces : ["user:mobileVerification:success"]
  2743. });
  2744. commands.create({
  2745. name : "mobileVerification.fail",
  2746. namespaces : ["user:mobileVerification:failure"]
  2747. });
  2748. commands.create({
  2749. name : "weChatMiniMobileJoin.view",
  2750. namespaces : ["view:weChatMiniMobileJoin:rendered"]
  2751. });
  2752. commands.create({
  2753. name : "weChatMiniMobileJoinContinue.view",
  2754. namespaces : ["view:weChatMiniMobileJoinContinue:rendered"]
  2755. });
  2756. commands.create({
  2757. name : "experience.load.success",
  2758. namespaces : ["experience:load:success"]
  2759. });
  2760. commands.create({
  2761. name : "gigya.load.success",
  2762. namespaces : ["gigya:load:success"]
  2763. });
  2764. commands.create({
  2765. name : "facebooksdk.load.success",
  2766. namespaces : ["facebooksdk:load:success"]
  2767. });
  2768. commands.create({
  2769. name : "app.load.success",
  2770. namespaces : ["app:load:success"]
  2771. });
  2772. commands.create({
  2773. name : "logout",
  2774. namespaces : ["logout:*"]
  2775. });
  2776. commands.create({
  2777. name : "tokenRefresh",
  2778. namespaces : ["token:refresh:success"]
  2779. });
  2780. }
  2781. $.r(responses);
  2782. var todo = $(71);
  2783. var sort = $.n(todo);
  2784. var day = $(75);
  2785. var now = $.n(day);
  2786. var win = {
  2787. window : window,
  2788. document : window.document,
  2789. navigator : navigator,
  2790. nike : window.nike = window.nike || {}
  2791. };
  2792. var property = $(19);
  2793. var get = $.n(property);
  2794. var __WEBPACK_IMPORTED_MODULE_16_date_fns_start_of_minute__ = $(131);
  2795. var __WEBPACK_IMPORTED_MODULE_16_date_fns_start_of_minute___default = $.n(__WEBPACK_IMPORTED_MODULE_16_date_fns_start_of_minute__);
  2796. var x = $(27);
  2797. var split = $.n(x);
  2798. var tablesongs = $(16);
  2799. var forEach = $.n(tablesongs);
  2800. var browserUtils = {
  2801. getBrowser : function() {
  2802. var arr;
  2803. /** @type {!Array} */
  2804. var result = navigator.userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
  2805. /** @type {string} */
  2806. var platform = "desktop";
  2807. return navigator.userAgent.match(/Android/i) ? platform = "android" : navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) ? platform = "ios" : (navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/Windows Phone/i)) && (platform = "mobile"), /trident/i.test(result[1]) ? {
  2808. name : "msie",
  2809. version : (arr = /\brv[ :]+(\d+)/g.exec(navigator.userAgent) || [])[1] || ""
  2810. } : "Chrome" === result[1] && null !== (arr = navigator.userAgent.match(/\bOPR\/(\d+)/)) ? {
  2811. name : "opera",
  2812. version : arr[1]
  2813. } : (result = result[2] ? [result[1], result[2]] : [navigator.appName, navigator.appVersion, "-?"], null !== (arr = navigator.userAgent.match(/version\/(\d+)/i)) && result.splice(1, 1, arr[1]), {
  2814. name : result[0].toLowerCase(),
  2815. version : result[1],
  2816. platform : platform
  2817. });
  2818. },
  2819. getShim : function() {
  2820. var options = browserUtils.getBrowser();
  2821. var opts = {
  2822. browser : "",
  2823. version : "",
  2824. platform : ""
  2825. };
  2826. switch(options.platform) {
  2827. case "ios":
  2828. case "android":
  2829. opts.platform = options.platform;
  2830. break;
  2831. default:
  2832. switch(options.name) {
  2833. case "safari":
  2834. if ("desktop" === options.platform) {
  2835. opts.browser = options.name;
  2836. opts.platform = options.platform;
  2837. }
  2838. break;
  2839. case "firefox":
  2840. opts.browser = options.name;
  2841. break;
  2842. case "msie":
  2843. if ("11" === options.version) {
  2844. opts.browser = options.name;
  2845. opts.version = options.version;
  2846. }
  2847. }
  2848. }
  2849. return opts;
  2850. }
  2851. };
  2852. var isBrowser = browserUtils;
  2853. var cookieWrapper = {
  2854. setCookie : function(options) {
  2855. var name = options.key;
  2856. var data = options.value;
  2857. var callback = options.expiresIn;
  2858. var path = options.path;
  2859. var target = options.domain;
  2860. if ("string" != typeof name) {
  2861. throw new Error("new cookie key param must be a string");
  2862. }
  2863. if ("string" != typeof data) {
  2864. throw new Error("new cookie value param must be a string");
  2865. }
  2866. if ("number" != typeof callback) {
  2867. throw new Error("new cookie expiresIn param must be a number");
  2868. }
  2869. if ("string" != typeof path) {
  2870. throw new Error("new cookie path param must be a string");
  2871. }
  2872. if ("string" != typeof target) {
  2873. throw new Error("new cookie domain param must be a string");
  2874. }
  2875. /** @type {!Date} */
  2876. var date = new Date;
  2877. date.setTime(date.getTime() + 1e3 * callback);
  2878. /** @type {string} */
  2879. win.document.cookie = "".concat(name, "=").concat(data, "; path=").concat(path, "; domain=").concat(target, "; expires=").concat(date.toUTCString());
  2880. },
  2881. getCookieValue : function(url) {
  2882. if ("string" != typeof url) {
  2883. throw new Error("key must be a string");
  2884. }
  2885. var incoming_value = win.document.cookie.match("(^|;)\\s*".concat(url, "\\s*=\\s*([^;]+)"));
  2886. return incoming_value ? incoming_value.pop() : null;
  2887. },
  2888. clearCookie : function(key) {
  2889. /** @type {string} */
  2890. win.document.cookie = "".concat(key, "=; path=/; domain=.nikedev.com; expires=Thu, 01 Jan 1970 00:00:01 GMT");
  2891. /** @type {string} */
  2892. win.document.cookie = "".concat(key, "=; path=/; domain=.nike.com; expires=Thu, 01 Jan 1970 00:00:01 GMT");
  2893. }
  2894. };
  2895. /**
  2896. * @param {?} obj
  2897. * @param {string} item
  2898. * @return {?}
  2899. */
  2900. var b = function merge(obj, item) {
  2901. /** @type {!Array} */
  2902. var result = [];
  2903. return item = item || "", forEach()(obj, function(o, i) {
  2904. if ("object" === type(o) && null !== o) {
  2905. result = result.concat(merge(o, "".concat(item + i, ".")));
  2906. } else {
  2907. result.push(item + i);
  2908. }
  2909. }), result;
  2910. };
  2911. var _takingTooLongTimeout;
  2912. var formData = {
  2913. getFormData : function() {
  2914. var value = serialize();
  2915. var result = {};
  2916. return forEach()(value, function(value) {
  2917. if (value.dataField) {
  2918. result[value.dataField] = value.value;
  2919. }
  2920. }), result;
  2921. },
  2922. getFormDataByComponent : serialize,
  2923. getProviderNameDisplay : function(name) {
  2924. var result = {
  2925. facebook : "Facebook",
  2926. line : "Line",
  2927. qq : "QQ",
  2928. sina : "Sina Weibo",
  2929. wechat : "WeChat",
  2930. wechatmini : "WeChat"
  2931. };
  2932. var user = res.experience.getExperience();
  2933. var title = name.toLowerCase();
  2934. return user.settings.social && user.settings.social.networks.length > 0 && forEach()(user.settings.social.networks, function(prop) {
  2935. if (-1 === prop.displayName.indexOf("provider")) {
  2936. result[prop.name.toLowerCase()] = prop.displayName;
  2937. }
  2938. }), result[title] ? result[title] : name;
  2939. }
  2940. };
  2941. /**
  2942. * @param {string} url
  2943. * @param {!Function} callback
  2944. * @return {?}
  2945. */
  2946. var load = function(url, callback) {
  2947. var svg = win.document.getElementsByTagName("head")[0];
  2948. var r = svg.querySelector('link[href="'.concat(url, '"]'));
  2949. if (r) {
  2950. return "function" == typeof callback && callback(), r;
  2951. }
  2952. var node = win.document.createElement("link");
  2953. return node.rel = "styleSheet", node.href = url, node.type = "text/css", node.setAttribute("charset", "utf-8"), node.onload = function() {
  2954. clearTimeout(_takingTooLongTimeout);
  2955. if ("function" == typeof callback) {
  2956. callback();
  2957. }
  2958. }, "function" == typeof callback && (_takingTooLongTimeout = setTimeout(function() {
  2959. /** @type {null} */
  2960. node.onload = null;
  2961. callback();
  2962. }, 1E3)), svg.appendChild(node), node;
  2963. };
  2964. /**
  2965. * @param {string} name
  2966. * @param {!Object} obj
  2967. * @return {?}
  2968. */
  2969. var Module = function(name, obj) {
  2970. var artistTrack = name.split(".");
  2971. return obj = obj || window, forEach()(artistTrack, function(pathPart) {
  2972. if (void 0 === obj[pathPart]) {
  2973. obj[pathPart] = {};
  2974. }
  2975. obj = obj[pathPart];
  2976. }), obj;
  2977. };
  2978. var O = {
  2979. getParentComponent : function run(elem) {
  2980. var cursor;
  2981. if (elem) {
  2982. return "BODY" !== elem.tagName && ((cursor = elem.parentNode) && cursor.className && -1 !== cursor.className.indexOf("nike-unite-component") ? cursor : run(cursor));
  2983. }
  2984. }
  2985. };
  2986. var regexes = {
  2987. htmlEntities : function(s) {
  2988. return String(s).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
  2989. }
  2990. };
  2991. var eachLimit = $(28);
  2992. var each = $.n(eachLimit);
  2993. var form = $(63);
  2994. var $filter = $.n(form);
  2995. var array = {};
  2996. var items = {};
  2997. var w;
  2998. var utils = {
  2999. browser : isBrowser,
  3000. cookie : cookieWrapper,
  3001. deepKeys : b,
  3002. formData : formData,
  3003. generateUuid : function() {
  3004. /** @type {!Array} */
  3005. var uuid = new Array(36);
  3006. /** @type {number} */
  3007. var i = 0;
  3008. for (; i < 36; i++) {
  3009. /** @type {string} */
  3010. uuid[i] = "0123456789abcdef".substr(Math.floor(16 * Math.random()), 1);
  3011. }
  3012. return uuid[14] = "4", uuid[19] = "0123456789abcdef".substr(3 & uuid[19] | 8, 1), uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-", uuid.join("");
  3013. },
  3014. loadCss : load,
  3015. namespace : Module,
  3016. noop : function() {
  3017. },
  3018. parentNodes : O,
  3019. sanitize : regexes,
  3020. script : {
  3021. load : function(val, name, data) {
  3022. var idx = sprintf(val);
  3023. if (array[idx] || (array[idx] = []), $filter()(items, idx)) {
  3024. return "function" == typeof name && array[idx].push(name), items[idx];
  3025. }
  3026. if ("function" == typeof name) {
  3027. array[idx].push(name);
  3028. }
  3029. var res = win.document.createElement("script");
  3030. return res.setAttribute("charset", "utf-8"), res.setAttribute("async", ""), res.onload = done, data && res.setAttribute("id", data), items[idx] = res, res.setAttribute("src", val), win.document.head.appendChild(res), res;
  3031. },
  3032. setAttributesWithQueryStringParams : function(e) {
  3033. var i;
  3034. var map = parseQueryString();
  3035. for (i in map) {
  3036. e.getAttribute(e.dataset[i]);
  3037. var name = canSeeComment(i);
  3038. e.setAttribute("data-".concat(name), map[i] || e.dataset[i]);
  3039. }
  3040. },
  3041. buildQueryString : function(obj) {
  3042. /** @type {string} */
  3043. var value = "?";
  3044. return forEach()(obj, function(e, t) {
  3045. if ("?" !== value) {
  3046. value = value + "&";
  3047. }
  3048. /** @type {string} */
  3049. value = value + "".concat(encodeURIComponent(t), "=").concat(encodeURIComponent(e));
  3050. }), value;
  3051. },
  3052. parseQueryString : parseQueryString
  3053. },
  3054. window : {
  3055. openCenteredPopUp : function(url, name) {
  3056. var t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {
  3057. width : 500,
  3058. height : 500
  3059. };
  3060. var doc = win.document;
  3061. /** @type {!Window} */
  3062. var window = win.window;
  3063. /** @type {number} */
  3064. var id = void 0 !== window.screenLeft ? window.screenLeft : window.screenX;
  3065. /** @type {number} */
  3066. var sp = void 0 !== window.screenTop ? window.screenTop : window.screenY;
  3067. var wh = window.screen;
  3068. var w = wh.width;
  3069. var height = wh.height;
  3070. if (window.innerWidth && window.innerHeight) {
  3071. /** @type {number} */
  3072. w = window.innerWidth;
  3073. /** @type {number} */
  3074. height = window.innerHeight;
  3075. } else {
  3076. if (doc.documentElement.clientWidth && doc.documentElement.clientHeight) {
  3077. w = doc.documentElement.clientWidth;
  3078. height = doc.documentElement.clientHeight;
  3079. }
  3080. }
  3081. /** @type {number} */
  3082. var cb = w / 2 - t.width / 2 + id;
  3083. /** @type {number} */
  3084. var p = height / 2 - t.height / 2 + sp;
  3085. /** @type {(Window|null)} */
  3086. var c = window.open(url, name, "scrollbars=yes, resizeable=yes, status=yes, width=".concat(t.width, ", height=").concat(t.height, ", top=").concat(p, ", left=").concat(cb));
  3087. return window.focus && c.focus(), c;
  3088. }
  3089. }
  3090. };
  3091. var Initialization = {
  3092. getObject : function() {
  3093. return w;
  3094. },
  3095. reset : function() {
  3096. w = void 0;
  3097. },
  3098. start : function() {
  3099. if (!(w = win.document.getElementById("nike-unite"))) {
  3100. throw new Error('Unable to start Unite -- no element with id "nike-unite" was found!');
  3101. }
  3102. if ("true" === w.dataset.allowqueryparams) {
  3103. utils.script.setAttributesWithQueryStringParams(w);
  3104. }
  3105. utils.namespace("nike.unite.version");
  3106. if (w.dataset.experienceVersion) {
  3107. window.nike.unite.version.experiences = w.dataset.experienceVersion;
  3108. }
  3109. if (w.dataset.appVersion) {
  3110. window.nike.unite.version.app = w.dataset.appVersion;
  3111. }
  3112. }
  3113. };
  3114. var target = $(139);
  3115. var isString = $.n(target);
  3116. var elem = $(154);
  3117. var assign = $.n(elem);
  3118. var hash = $(20);
  3119. var text = $.n(hash);
  3120. var urlPath;
  3121. var visitor;
  3122. var word = $(95);
  3123. var info = $.n(word);
  3124. var style = $(156);
  3125. var display = $.n(style);
  3126. var script = $(22);
  3127. var require = $.n(script);
  3128. var _ = {
  3129. getVisitData : function() {
  3130. return {
  3131. visit : urlPath,
  3132. visitor : visitor
  3133. };
  3134. },
  3135. onErrorDefault : _update,
  3136. onTimeoutDefault : act_on_opener_closer,
  3137. setup : function(method, data, callback) {
  3138. var cb = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : _update;
  3139. var errorFunc = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : act_on_opener_closer;
  3140. var Pad = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : {};
  3141. var alwaysDownload = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : {
  3142. withCredentials : true
  3143. };
  3144. var exclusive = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : {
  3145. addLogData : true
  3146. };
  3147. /** @type {!XMLHttpRequest} */
  3148. var xhr = new XMLHttpRequest;
  3149. if (!("withCredentials" in xhr)) {
  3150. throw new Error("CORS not supported");
  3151. }
  3152. var a = exclusive.addLogData ? function(e) {
  3153. var next = query(e.split("#", 2), 2);
  3154. var fn = next[0];
  3155. var name = next[1];
  3156. var id = void 0 === name ? "" : name;
  3157. var headers = query(fn.split("?", 2), 2);
  3158. var result = headers[0];
  3159. var key = headers[1];
  3160. var params = {};
  3161. var artistTrack = (void 0 === key ? "" : key).split("&");
  3162. return forEach()(artistTrack, function(clusterShardData) {
  3163. var next = query(clusterShardData.split("=", 2), 2);
  3164. var name = next[0];
  3165. var value = next[1];
  3166. if (name && value) {
  3167. /** @type {string} */
  3168. params[name] = decodeURIComponent(value);
  3169. }
  3170. }), params = require()({
  3171. appVersion : win.window.nike.unite.version.app,
  3172. experienceVersion : win.window.nike.unite.version.experiences,
  3173. uxid : res.experience.getUxId(),
  3174. locale : res.localization.getLocale(),
  3175. backendEnvironment : res.experience.getBackendEnvironment(),
  3176. browser : win.window.navigator.vendor,
  3177. os : win.window.navigator.oscpu,
  3178. mobile : res.platform.isMobile(),
  3179. native : res.platform.isNative(),
  3180. visit : urlPath || "",
  3181. visitor : visitor || ""
  3182. }, params), result + utils.script.buildQueryString(params) + (id ? "#".concat(id) : "");
  3183. }(data) : data;
  3184. return xhr.open(method, a, true), xhr.onerror = function() {
  3185. var value = reject(xhr.responseText);
  3186. cb(value, xhr.status);
  3187. }, xhr.onload = function(transform, callback) {
  3188. /** @type {number} */
  3189. var code = this.status;
  3190. var result = reject(this.responseText);
  3191. if (display()(result)) {
  3192. callback({
  3193. message : "Invalid Respone"
  3194. }, code);
  3195. } else {
  3196. if ([200, 201, 202, 204].indexOf(code) >= 0 && "function" == typeof transform) {
  3197. transform(result, code);
  3198. } else {
  3199. callback(result, code);
  3200. }
  3201. }
  3202. }.bind(xhr, callback, cb), xhr.ontimeout = errorFunc, xhr.timeout = 3E4, info()(alwaysDownload, function(type, name) {
  3203. xhr[name] = type;
  3204. }), info()(Pad, function(type, i) {
  3205. xhr.setRequestHeader(i, type);
  3206. }), xhr;
  3207. },
  3208. setVisitData : function(context) {
  3209. urlPath = context.visit;
  3210. visitor = context.visitor;
  3211. }
  3212. };
  3213. /** @type {!Array} */
  3214. var fx_pow_gx = [/^http(s)?:\/\/localhost(:[0-9]+)?[/]?$/, /^http(s)?:\/\/([^/]*\.)?nike\.com(:[0-9]+)?[/]?$/, /^http(s)?:\/\/([^/]*\.)?nikedev\.com(:[0-9]+)?[/]?$/, /^http(s)?:\/\/([^/]*\.)?nikecdn\.com(:[0-9]+)?[/]?$/];
  3215. var tasks;
  3216. var lastTrackInfoUrl;
  3217. var console = {
  3218. get : function(id, params, callback, options, dispatcher, mode, input) {
  3219. _.setup("GET", id, params, callback, options, dispatcher, mode, input).send();
  3220. },
  3221. isValidDomain : function(name) {
  3222. /** @type {boolean} */
  3223. var n = false;
  3224. return name && (n = isString()(fx_pow_gx, function(simRuntimeRegExp) {
  3225. return !!name.match(simRuntimeRegExp);
  3226. })), n;
  3227. },
  3228. post : function(type, res, params, callback, options, value, data, input) {
  3229. var req = {};
  3230. if (text()(res)) {
  3231. req = assign()(req, res);
  3232. } else {
  3233. /** @type {string} */
  3234. req.data = res;
  3235. }
  3236. _.setup("POST", type, params, callback, options, value, data, input).send(JSON.stringify(req));
  3237. }
  3238. };
  3239. /** @type {null} */
  3240. var anotherPicture = null;
  3241. var baseUrl;
  3242. var entity = {
  3243. reset : function() {
  3244. /** @type {null} */
  3245. tasks = null;
  3246. /** @type {null} */
  3247. lastTrackInfoUrl = null;
  3248. /** @type {null} */
  3249. anotherPicture = null;
  3250. },
  3251. getBackendEnvironment : status,
  3252. getCorsServer : function() {
  3253. return getState(), getData().cors;
  3254. },
  3255. getCorsServerOverride : function() {
  3256. return getState(), getData().corsOverride;
  3257. },
  3258. getClientId : function() {
  3259. var res = getState();
  3260. if (!res.settings.clientId) {
  3261. throw new Error("Called getClientId without first setting data-clientid attribute for unite loader script.");
  3262. }
  3263. return res.settings.clientId;
  3264. },
  3265. getWelcomeEmailTemplate : function() {
  3266. if (!tasks || !tasks.settings || "" === split()(tasks.settings.welcomeEmailTemplate)) {
  3267. throw new Error("Called getWelcomeEmailTemplate without first calling setExperience.");
  3268. }
  3269. return tasks.settings.welcomeEmailTemplate;
  3270. },
  3271. getExperience : getState,
  3272. setExperience : function(cb, options) {
  3273. if (options) {
  3274. open(cb, "settings.clientId", options.clientid || options.appid);
  3275. open(cb, "settings.mode", options.mode);
  3276. open(cb, "settings.environments.local.backendEnvironment", options.backendenvironment);
  3277. open(cb, "settings.environments.ci.backendEnvironment", options.backendenvironment);
  3278. open(cb, "settings.environments.production.backendEnvironment", options.backendenvironment);
  3279. open(cb, "settings.environments.local.facebookAppId", options.facebookappid);
  3280. open(cb, "settings.environments.ci.facebookAppId", options.facebookappid);
  3281. open(cb, "settings.environments.production.facebookAppId", options.facebookappid);
  3282. open(cb, "settings.weChatAppId", options.wechatappid);
  3283. open(cb, "settings.passwordRedirectURL", options.redirecturl);
  3284. open(cb, "settings.passwordResetEmailTemplate", options.passwordresetemailtemplate);
  3285. open(cb, "settings.welcomeEmailTemplate", options.welcomeemailtemplate);
  3286. open(cb, "settings.atgSync", options.atgsync);
  3287. open(cb, "settings.atgLogoutOnLogin", options.atgLogoutOnLogin);
  3288. open(cb, "settings.environments.local.enableAnalytics", options.enableAnalytics);
  3289. open(cb, "settings.environments.ci.enableAnalytics", options.enableAnalytics);
  3290. open(cb, "settings.environments.production.enableAnalytics", options.enableAnalytics);
  3291. if (options.cors && console.isValidDomain(options.cors)) {
  3292. open(cb, "settings.environments.local.cors", options.cors);
  3293. open(cb, "settings.environments.ci.cors", options.cors);
  3294. open(cb, "settings.environments.production.cors", options.cors);
  3295. }
  3296. if (options.corsoverride && console.isValidDomain(options.corsoverride)) {
  3297. open(cb, "settings.environments.local.corsOverride", options.corsoverride);
  3298. open(cb, "settings.environments.ci.corsOverride", options.corsoverride);
  3299. open(cb, "settings.environments.production.corsOverride", options.corsoverride);
  3300. }
  3301. } else {
  3302. if (!__WEBPACK_IMPORTED_MODULE_16_date_fns_start_of_minute___default()(cb)) {
  3303. throw new Error("You must set the required experience overrides.");
  3304. }
  3305. }
  3306. /** @type {!Object} */
  3307. tasks = cb;
  3308. },
  3309. getProgressiveFields : function() {
  3310. /** @type {!Array} */
  3311. var result = [];
  3312. var value = getState().settings.progressiveFields || [];
  3313. return forEach()(value, function(b) {
  3314. if (Object.keys(b).length > 0) {
  3315. result.push(b);
  3316. }
  3317. }), result;
  3318. },
  3319. getUuId : function() {
  3320. return lastTrackInfoUrl;
  3321. },
  3322. setUuId : function(trackInfoUrl) {
  3323. lastTrackInfoUrl = trackInfoUrl;
  3324. },
  3325. getUxId : function() {
  3326. if (!tasks || !tasks.settings || "" === split()(tasks.settings.uxId)) {
  3327. throw new Error("Called getUxId without first calling setExperience.");
  3328. }
  3329. return tasks.settings.uxId;
  3330. },
  3331. getGigyaModel : function() {
  3332. return anotherPicture;
  3333. },
  3334. setGigyaModel : function(p) {
  3335. anotherPicture = p;
  3336. },
  3337. getGigyaApiKey : function() {
  3338. return getData().gigyaApiKey;
  3339. },
  3340. getEnvironment : replace,
  3341. getEnvironmentVariables : getData,
  3342. getWeChatAppId : function() {
  3343. return getState().settings.weChatAppId;
  3344. },
  3345. getAtgSync : function() {
  3346. if (!tasks || !tasks.settings) {
  3347. throw new Error("Called getAtgSync without first calling setExperience.");
  3348. }
  3349. return tasks.settings.atgSync;
  3350. },
  3351. isIdentityBackend : function() {
  3352. return status().toLowerCase().indexOf("identity") >= 0;
  3353. },
  3354. isDefaultFacebookAppId : function() {
  3355. var state = getState();
  3356. return "" === split()(Initialization.getObject().dataset.facebookappid) && state.settings.isDefaultFacebookAppId;
  3357. },
  3358. isAnalyticsEnabled : function() {
  3359. var e = getData().enableAnalytics;
  3360. return void 0 === e || e;
  3361. }
  3362. };
  3363. var Ie = {
  3364. getBaseUrl : function() {
  3365. if (!baseUrl) {
  3366. throw new Error("Called getBaseUrl without first calling setBaseUrl.");
  3367. }
  3368. return baseUrl;
  3369. },
  3370. setBaseUrl : function(newBaseUrl) {
  3371. baseUrl = newBaseUrl;
  3372. }
  3373. };
  3374. var locales = {
  3375. ar : "ar_AE",
  3376. ca : "ca_ES",
  3377. cs : "cs_CZ",
  3378. da : "da_DK",
  3379. de : "de_DE",
  3380. el : "el_GR",
  3381. en : "en_GB",
  3382. es : "es_ES",
  3383. fr : "fr_FR",
  3384. hi : "hi_IN",
  3385. hr : "hr_HR",
  3386. hu : "hu_HU",
  3387. id : "in_ID",
  3388. in : "in_ID",
  3389. it : "it_IT",
  3390. ja : "ja_JP",
  3391. ko : "ko_KR",
  3392. ms : "ms_MY",
  3393. nl : "nl_NL",
  3394. no : "no_NO",
  3395. pl : "pl_PL",
  3396. pt : "pt_BR",
  3397. ru : "ru_RU",
  3398. sv : "sv_SE",
  3399. th : "th_TH",
  3400. tr : "tr_TR",
  3401. zh : "zh_CN"
  3402. };
  3403. var results = {
  3404. AD : {},
  3405. AE : {},
  3406. AF : {},
  3407. AG : {},
  3408. AI : {},
  3409. AL : {},
  3410. AM : {},
  3411. AN : {},
  3412. AO : {},
  3413. AQ : {},
  3414. AR : {
  3415. es : "es_AR"
  3416. },
  3417. AS : {},
  3418. AT : {},
  3419. AU : {},
  3420. AW : {},
  3421. AZ : {},
  3422. BA : {},
  3423. BB : {},
  3424. BD : {},
  3425. BE : {},
  3426. BF : {},
  3427. BG : {},
  3428. BH : {},
  3429. BI : {},
  3430. BJ : {},
  3431. BM : {},
  3432. BN : {},
  3433. BO : {},
  3434. BR : {},
  3435. BS : {},
  3436. BT : {},
  3437. BV : {},
  3438. BW : {},
  3439. BY : {},
  3440. BZ : {},
  3441. CA : {
  3442. fr : "fr_CA"
  3443. },
  3444. CC : {},
  3445. CD : {},
  3446. CF : {},
  3447. CG : {},
  3448. CH : {},
  3449. CI : {},
  3450. CK : {},
  3451. CL : {
  3452. es : "es_LA"
  3453. },
  3454. CM : {},
  3455. CN : {},
  3456. CO : {},
  3457. CR : {},
  3458. CU : {},
  3459. CV : {},
  3460. CX : {},
  3461. CY : {},
  3462. CZ : {},
  3463. DE : {},
  3464. DJ : {},
  3465. DK : {},
  3466. DM : {},
  3467. DO : {},
  3468. DZ : {},
  3469. EC : {
  3470. es : "es_LA"
  3471. },
  3472. EE : {},
  3473. EG : {},
  3474. EH : {},
  3475. ER : {},
  3476. ES : {},
  3477. ET : {},
  3478. EU : {},
  3479. FI : {},
  3480. FJ : {},
  3481. FK : {},
  3482. FM : {},
  3483. FO : {},
  3484. FR : {},
  3485. GA : {},
  3486. GB : {},
  3487. GD : {},
  3488. GE : {},
  3489. GF : {},
  3490. GH : {},
  3491. GI : {},
  3492. GL : {},
  3493. GM : {},
  3494. GN : {},
  3495. GP : {},
  3496. GQ : {},
  3497. GR : {},
  3498. GS : {},
  3499. GT : {},
  3500. GU : {},
  3501. GW : {},
  3502. GY : {},
  3503. HK : {
  3504. zh : "zh_TW"
  3505. },
  3506. HM : {},
  3507. HN : {},
  3508. HR : {},
  3509. HT : {},
  3510. HU : {},
  3511. ID : {},
  3512. IE : {},
  3513. IL : {},
  3514. IN : {},
  3515. IO : {},
  3516. IQ : {},
  3517. IR : {},
  3518. IS : {},
  3519. IT : {},
  3520. JM : {},
  3521. JO : {},
  3522. JP : {},
  3523. KE : {},
  3524. KG : {},
  3525. KH : {},
  3526. KI : {},
  3527. KM : {},
  3528. KN : {},
  3529. KP : {},
  3530. KR : {},
  3531. KW : {},
  3532. KY : {},
  3533. KZ : {},
  3534. LA : {},
  3535. LB : {},
  3536. LC : {},
  3537. LI : {},
  3538. LK : {},
  3539. LR : {},
  3540. LS : {},
  3541. LT : {},
  3542. LU : {},
  3543. LV : {},
  3544. LY : {},
  3545. MA : {},
  3546. MC : {},
  3547. MD : {},
  3548. ME : {},
  3549. MG : {},
  3550. MH : {},
  3551. MK : {},
  3552. ML : {},
  3553. MM : {},
  3554. MN : {},
  3555. MO : {
  3556. zh : "zh_TW"
  3557. },
  3558. MP : {},
  3559. MQ : {},
  3560. MR : {},
  3561. MS : {},
  3562. MT : {},
  3563. MU : {},
  3564. MV : {},
  3565. MW : {},
  3566. MX : {
  3567. es : "es_MX"
  3568. },
  3569. MY : {},
  3570. MZ : {},
  3571. NA : {},
  3572. NC : {},
  3573. NE : {},
  3574. NF : {},
  3575. NG : {},
  3576. NI : {},
  3577. NL : {},
  3578. NO : {},
  3579. NP : {},
  3580. NR : {},
  3581. NU : {},
  3582. NZ : {},
  3583. OM : {},
  3584. PA : {
  3585. es : "es_LA"
  3586. },
  3587. PE : {
  3588. es : "es_LA"
  3589. },
  3590. PF : {},
  3591. PG : {},
  3592. PH : {},
  3593. PK : {},
  3594. PL : {},
  3595. PM : {},
  3596. PN : {},
  3597. PR : {},
  3598. PT : {
  3599. pt : "pt_PT"
  3600. },
  3601. PW : {},
  3602. PY : {
  3603. es : "es_LA"
  3604. },
  3605. QA : {},
  3606. RE : {},
  3607. RO : {},
  3608. RS : {},
  3609. RU : {},
  3610. RW : {},
  3611. SA : {},
  3612. SB : {},
  3613. SC : {},
  3614. SD : {},
  3615. SE : {},
  3616. SG : {},
  3617. SH : {},
  3618. SI : {},
  3619. SJ : {},
  3620. SK : {},
  3621. SL : {},
  3622. SM : {},
  3623. SN : {},
  3624. SO : {},
  3625. SR : {},
  3626. SS : {},
  3627. ST : {},
  3628. SV : {},
  3629. SY : {},
  3630. SZ : {},
  3631. TC : {},
  3632. TD : {},
  3633. TF : {},
  3634. TG : {},
  3635. TH : {},
  3636. TJ : {},
  3637. TK : {},
  3638. TL : {},
  3639. TM : {},
  3640. TN : {},
  3641. TO : {},
  3642. TR : {},
  3643. TT : {},
  3644. TV : {},
  3645. TW : {
  3646. zh : "zh_TW"
  3647. },
  3648. TZ : {},
  3649. UA : {},
  3650. UG : {},
  3651. UM : {},
  3652. US : {
  3653. en : "en_US"
  3654. },
  3655. UY : {
  3656. es : "es_AR"
  3657. },
  3658. UZ : {},
  3659. VA : {},
  3660. VC : {},
  3661. VE : {
  3662. es : "es_LA"
  3663. },
  3664. VG : {},
  3665. VI : {},
  3666. VN : {},
  3667. VU : {},
  3668. WF : {},
  3669. WS : {},
  3670. XX : {},
  3671. YE : {},
  3672. YT : {},
  3673. ZA : {},
  3674. ZM : {},
  3675. ZW : {}
  3676. };
  3677. var $rootScope = {
  3678. countryDialectExceptions : results,
  3679. languageDefaultDialects : locales,
  3680. supportedDialects : ["ar_AE", "ca_ES", "cs_CZ", "da_DK", "de_DE", "el_GR", "en_GB", "en_US", "es_AR", "es_ES", "es_LA", "es_MX", "fr_CA", "fr_FR", "hi_IN", "hr_HR", "hu_HU", "in_ID", "it_IT", "ja_JP", "ko_KR", "ms_MY", "nl_NL", "no_NO", "pl_PL", "pt_BR", "pt_PT", "ru_RU", "sv_SE", "th_TH", "tr_TR", "zh_CN", "zh_TW"],
  3681. getDialect : function(key, namespace) {
  3682. return locales[key] || (key = "en"), results[namespace] && results[namespace][key] ? results[namespace][key] : locales[key] || "en_GB";
  3683. },
  3684. states : {
  3685. US : /^\s*(AL|AK|AZ|AR|CA|CO|CT|DC|DE|FL|GA|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VT|VA|WA|WV|WI|WY)\s*$/i
  3686. },
  3687. coppaMinimumAge : {
  3688. AD : 16,
  3689. AE : 13,
  3690. AF : 13,
  3691. AG : 13,
  3692. AI : 16,
  3693. AL : 16,
  3694. AM : 16,
  3695. AN : 16,
  3696. AO : 13,
  3697. AQ : 13,
  3698. AR : 13,
  3699. AS : 13,
  3700. AT : 14,
  3701. AU : 13,
  3702. AW : 18,
  3703. AZ : 13,
  3704. BA : 16,
  3705. BB : 13,
  3706. BD : 13,
  3707. BE : 14,
  3708. BF : 13,
  3709. BG : 14,
  3710. BH : 13,
  3711. BI : 13,
  3712. BJ : 13,
  3713. BM : 13,
  3714. BN : 13,
  3715. BO : 13,
  3716. BR : 13,
  3717. BS : 13,
  3718. BT : 13,
  3719. BV : 15,
  3720. BW : 13,
  3721. BY : 16,
  3722. BZ : 13,
  3723. CA : 13,
  3724. CC : 13,
  3725. CD : 13,
  3726. CF : 13,
  3727. CG : 13,
  3728. CH : 16,
  3729. CI : 13,
  3730. CK : 13,
  3731. CL : 13,
  3732. CM : 13,
  3733. CN : 13,
  3734. CO : 13,
  3735. CR : 13,
  3736. CU : 13,
  3737. CV : 13,
  3738. CX : 13,
  3739. CY : 16,
  3740. CZ : 16,
  3741. DE : 14,
  3742. DJ : 13,
  3743. DK : 15,
  3744. DM : 13,
  3745. DO : 13,
  3746. DZ : 16,
  3747. EC : 13,
  3748. EE : 16,
  3749. EG : 16,
  3750. EH : 16,
  3751. ER : 13,
  3752. ES : 16,
  3753. ET : 13,
  3754. EU : 16,
  3755. FI : 16,
  3756. FJ : 13,
  3757. FK : 16,
  3758. FM : 13,
  3759. FO : 13,
  3760. FR : 16,
  3761. GA : 13,
  3762. GB : 16,
  3763. GD : 13,
  3764. GE : 16,
  3765. GF : 16,
  3766. GH : 13,
  3767. GI : 16,
  3768. GL : 13,
  3769. GM : 13,
  3770. GN : 13,
  3771. GP : 16,
  3772. GQ : 13,
  3773. GR : 16,
  3774. GS : 16,
  3775. GT : 13,
  3776. GU : 13,
  3777. GW : 13,
  3778. GY : 13,
  3779. HK : 13,
  3780. HM : 13,
  3781. HN : 13,
  3782. HR : 16,
  3783. HT : 13,
  3784. HU : 16,
  3785. ID : 13,
  3786. IE : 16,
  3787. IL : 18,
  3788. IN : 13,
  3789. IO : 16,
  3790. IQ : 13,
  3791. IR : 13,
  3792. IS : 16,
  3793. IT : 14,
  3794. JM : 13,
  3795. JO : 13,
  3796. JP : 13,
  3797. KE : 13,
  3798. KG : 13,
  3799. KH : 13,
  3800. KI : 13,
  3801. KM : 13,
  3802. KN : 13,
  3803. KP : 14,
  3804. KR : 14,
  3805. KW : 13,
  3806. KY : 13,
  3807. KZ : 13,
  3808. LA : 13,
  3809. LB : 13,
  3810. LC : 13,
  3811. LI : 16,
  3812. LK : 13,
  3813. LR : 13,
  3814. LS : 13,
  3815. LT : 13,
  3816. LU : 16,
  3817. LV : 16,
  3818. LY : 16,
  3819. MA : 16,
  3820. MC : 16,
  3821. MD : 16,
  3822. ME : 16,
  3823. MG : 13,
  3824. MH : 13,
  3825. MK : 16,
  3826. ML : 13,
  3827. MM : 13,
  3828. MN : 13,
  3829. MO : 13,
  3830. MP : 13,
  3831. MQ : 16,
  3832. MR : 13,
  3833. MS : 16,
  3834. MT : 13,
  3835. MU : 13,
  3836. MV : 13,
  3837. MW : 13,
  3838. MX : 13,
  3839. MY : 13,
  3840. MZ : 13,
  3841. NA : 13,
  3842. NC : 16,
  3843. NE : 13,
  3844. NF : 13,
  3845. NG : 13,
  3846. NI : 13,
  3847. NL : 16,
  3848. NO : 13,
  3849. NP : 13,
  3850. NR : 13,
  3851. NU : 13,
  3852. NZ : 13,
  3853. OM : 13,
  3854. PA : 13,
  3855. PE : 13,
  3856. PF : 16,
  3857. PG : 13,
  3858. PH : 13,
  3859. PK : 13,
  3860. PL : 16,
  3861. PM : 16,
  3862. PN : 16,
  3863. PR : 13,
  3864. PT : 16,
  3865. PW : 13,
  3866. PY : 13,
  3867. QA : 13,
  3868. RE : 16,
  3869. RO : 16,
  3870. RS : 16,
  3871. RU : 14,
  3872. RW : 13,
  3873. SA : 13,
  3874. SB : 13,
  3875. SC : 13,
  3876. SD : 16,
  3877. SE : 16,
  3878. SG : 13,
  3879. SH : 13,
  3880. SI : 16,
  3881. SJ : 13,
  3882. SK : 16,
  3883. SL : 13,
  3884. SM : 16,
  3885. SN : 13,
  3886. SO : 13,
  3887. SR : 13,
  3888. SS : 13,
  3889. ST : 13,
  3890. SV : 13,
  3891. SY : 13,
  3892. SZ : 13,
  3893. TC : 16,
  3894. TD : 13,
  3895. TF : 13,
  3896. TG : 13,
  3897. TH : 13,
  3898. TJ : 13,
  3899. TK : 13,
  3900. TL : 13,
  3901. TM : 13,
  3902. TN : 16,
  3903. TO : 13,
  3904. TR : 18,
  3905. TT : 13,
  3906. TV : 13,
  3907. TW : 13,
  3908. TZ : 13,
  3909. UA : 16,
  3910. UG : 13,
  3911. UM : 13,
  3912. US : 13,
  3913. UY : 13,
  3914. UZ : 13,
  3915. VA : 17,
  3916. VC : 13,
  3917. VE : 13,
  3918. VG : 16,
  3919. VI : 13,
  3920. VN : 13,
  3921. VU : 13,
  3922. WF : 16,
  3923. WS : 13,
  3924. XX : 17,
  3925. YE : 13,
  3926. YT : 16,
  3927. ZA : 13,
  3928. ZM : 13,
  3929. ZW : 13
  3930. },
  3931. defaultCOPPAAge : 17
  3932. };
  3933. var exports = utils.namespace("nike.unite.settings");
  3934. /** @type {function(): ?} */
  3935. exports.getAndroidProperties = parseURL;
  3936. /** @type {function(): ?} */
  3937. exports.getIOSProperties = parse;
  3938. var lastIndexStream;
  3939. var ret = {
  3940. isAndroid : isAndroid,
  3941. isIOS : isIOS,
  3942. isMobile : function() {
  3943. var email = Initialization.getObject();
  3944. switch(get()(email, "dataset.mobile")) {
  3945. case "true":
  3946. return true;
  3947. case "false":
  3948. return false;
  3949. default:
  3950. return isAndroid() || isIOS() || /webOS/i.test(win.navigator.userAgent) || /BlackBerry/i.test(win.navigator.userAgent) || /Windows Phone/i.test(win.navigator.userAgent);
  3951. }
  3952. },
  3953. isNative : then,
  3954. getAndroidProperties : parseURL,
  3955. getIOSProperties : parse
  3956. };
  3957. var classes = $(162);
  3958. var headers = $.n(classes);
  3959. var isVisible = $(170);
  3960. var _cat = $.n(isVisible);
  3961. var ee = $(172);
  3962. /** @type {!Array} */
  3963. var topicsData = ["facebook", "wechat", "line", "sina", "qq"];
  3964. var args = callback({}, next({
  3965. LOGIN_SUCCESS : "login:success",
  3966. LOGIN_FAILURE : "login:failure",
  3967. LOGIN_MOBILE_SUCCESS : "login:mobile:success",
  3968. LOGIN_MOBILE_FAILURE : "login:mobile:failure",
  3969. LOGIN_PARTNER_SUCCESS : "login:partner:success",
  3970. LOGIN_PARTNER_FAILURE : "login:partner:failure",
  3971. LOGIN_SSO_SUCCESS : "login:sso:success",
  3972. LOGIN_SSO_FAILURE : "login:sso:failure",
  3973. LOGIN_REAUTH_SUCCESS : "login:reauth:success",
  3974. LOGIN_REAUTH_FAILURE : "login:reauth:failure"
  3975. }, topicsData.concat(["wechatmini"]), "login:social"), next({
  3976. JOIN_SUCCESS : "join:success",
  3977. JOIN_FAILURE : "join:failure",
  3978. JOIN_COPPA_SUCCESS : "join:coppa:success",
  3979. JOIN_COPPA_FAILURE : "join:coppa:failure",
  3980. JOIN_MOBILE_SUCCESS : "join:mobile:success",
  3981. JOIN_MOBILE_FAILURE : "join:mobile:failure",
  3982. JOIN_PARTNER_SUCCESS : "join:partner:success",
  3983. JOIN_PARTNER_FAILURE : "join:partner:failure",
  3984. JOIN_EMAILONLY_SUCCESS : "join:emailOnly:success",
  3985. JOIN_EMAILONLY_FAILURE : "join:emailOnly:failure"
  3986. }, topicsData.concat(["wechatmini"]), "join:social"), {
  3987. USER_CAN_CHECK_OUT_FAILURE : "user:canCheckOut:failure",
  3988. USER_CAN_CHECK_OUT_SUCCESS : "user:canCheckOut:success",
  3989. USER_CAN_REGISTER_EVENT_FAILURE : "user:canRegisterEvent:failure",
  3990. USER_CAN_REGISTER_EVENT_SUCCESS : "user:canRegisterEvent:success",
  3991. USER_HAS_DATE_OF_BIRTH_FAILURE : "user:hasDateOfBirth:failure",
  3992. USER_HAS_DATE_OF_BIRTH_SUCCESS : "user:hasDateOfBirth:success",
  3993. USER_HAS_EMAIL_FAILURE : "user:hasEmail:failure",
  3994. USER_HAS_EMAIL_SUCCESS : "user:hasEmail:success",
  3995. USER_HAS_SHOPPING_GENDER_FAILURE : "user:hasShoppingGender:failure",
  3996. USER_HAS_SHOPPING_GENDER_SUCCESS : "user:hasShoppingGender:success",
  3997. USER_IS_LEGALLY_COMPLIANT_FAILURE : "user:isLegallyCompliant:failure",
  3998. USER_IS_LEGALLY_COMPLIANT_SUCCESS : "user:isLegallyCompliant:success",
  3999. USER_IS_MOBILE_VERIFIED_FAILURE : "user:isMobileVerified:failure",
  4000. USER_IS_MOBILE_VERIFIED_SUCCESS : "user:isMobileVerified:success",
  4001. USER_IS_SNEAKER_HEAD_FAILURE : "user:isSneakerHead:failure",
  4002. USER_IS_SNEAKER_HEAD_SUCCESS : "user:isSneakerHead:success",
  4003. USER_IS_SWOOSH_USER_FAILURE : "user:isSwooshUser:failure",
  4004. USER_IS_SWOOSH_USER_SUCCESS : "user:isSwooshUser:success",
  4005. USER_MOBILE_VERIFICATION_SUCCESS : "user:mobileVerification:success",
  4006. USER_MOBILE_VERIFICATION_FAILURE : "user:mobileVerification:failure",
  4007. USER_SEND_MOBILE_CODE_SUCCESS : "user:sendMobileCode:success",
  4008. USER_SEND_MOBILE_CODE_FAILURE : "user:sendMobileCode:failure",
  4009. USER_VERIFY_MOBILE_CODE_SUCCESS : "user:verifyMobileCode:success",
  4010. USER_VERIFY_MOBILE_CODE_FAILURE : "user:verifyMobileCode:failure"
  4011. }, next({}, topicsData, "link:create"), next({}, topicsData, "link:update"), {
  4012. PROGRESSIVE_CAN_CHECKOUT_FAILURE : "progressive:canCheckout:failure",
  4013. PROGRESSIVE_CAN_CHECKOUT_SUCCESS : "progressive:canCheckout:success",
  4014. PROGRESSIVE_CAN_REGISTER_EVENT_FAILURE : "progressive:canRegisterEvent:failure",
  4015. PROGRESSIVE_CAN_REGISTER_EVENT_SUCCESS : "progressive:canRegisterEvent:success",
  4016. PROGRESSIVE_CAPTURE_DOB_AND_EMAIL_FAILURE : "progressive:captureDobAndEmail:failure",
  4017. PROGRESSIVE_CAPTURE_DOB_AND_EMAIL_SUCCESS : "progressive:captureDobAndEmail:success",
  4018. PROGRESSIVE_HAS_ACCEPTED_SWOOSH_TERMS_FAILURE : "progressive:hasAcceptedSwooshTerms:failure",
  4019. PROGRESSIVE_HAS_ACCEPTED_SWOOSH_TERMS_SUCCESS : "progressive:hasAcceptedSwooshTerms:success",
  4020. PROGRESSIVE_HAS_DATE_OF_BIRTH_FAILURE : "progressive:hasDateOfBirth:failure",
  4021. PROGRESSIVE_HAS_DATE_OF_BIRTH_SUCCESS : "progressive:hasDateOfBirth:success",
  4022. PROGRESSIVE_HAS_DATE_OF_BIRTH_OPTIONAL_FAILURE : "progressive:hasDateOfBirthOptional:failure",
  4023. PROGRESSIVE_HAS_DATE_OF_BIRTH_OPTIONAL_SUCCESS : "progressive:hasDateOfBirthOptional:success",
  4024. PROGRESSIVE_HAS_SHOPPING_GENDER_FAILURE : "progressive:hasShoppingGender:failure",
  4025. PROGRESSIVE_HAS_SHOPPING_GENDER_SUCCESS : "progressive:hasShoppingGender:success",
  4026. PROGRESSIVE_HAS_EMAIL_FAILURE : "progressive:hasEmail:failure",
  4027. PROGRESSIVE_HAS_EMAIL_SUCCESS : "progressive:hasEmail:success",
  4028. PROGRESSIVE_IS_LEGALLY_COMPLIANT_FAILURE : "progressive:isLegallyCompliant:failure",
  4029. PROGRESSIVE_IS_LEGALLY_COMPLIANT_SUCCESS : "progressive:isLegallyCompliant:success",
  4030. PROGRESSIVE_IS_MOBILE_VERIFIED_FAILURE : "progressive:isMobileVerified:failure",
  4031. PROGRESSIVE_IS_MOBILE_VERIFIED_SUCCESS : "progressive:isMobileVerified:success",
  4032. PROGRESSIVE_IS_SNEAKER_HEAD_FAILURE : "progressive:isSneakerHead:failure",
  4033. PROGRESSIVE_IS_SNEAKER_HEAD_SUCCESS : "progressive:isSneakerHead:success",
  4034. PROGRESSIVE_PARTNER_CONNECT_FAILURE : "progressive:partnerConnect:failure",
  4035. PROGRESSIVE_PARTNER_CONNECT_SUCCESS : "progressive:partnerConnect:success",
  4036. PROGRESSIVE_SUCCESS : "progressive:success",
  4037. PROGRESSIVE_FAILURE : "progressive:failure"
  4038. }, {
  4039. VIEW_APP_LANDING_DESTROYED : "view:appLanding:destroyed",
  4040. VIEW_APP_LANDING_RENDERED : "view:appLanding:rendered",
  4041. VIEW_CONFIRM_PARTNER_CONNECT_DESTROYED : "view:confirmPartnerConnect:destroyed",
  4042. VIEW_CONFIRM_PARTNER_CONNECT_RENDERED : "view:confirmPartnerConnect:rendered",
  4043. VIEW_CONFIRM_PASSWORD_RESET_DESTROYED : "view:confirmPasswordReset:destroyed",
  4044. VIEW_CONFIRM_PASSWORD_RESET_RENDERED : "view:confirmPasswordReset:rendered",
  4045. VIEW_EMAIL_ONLY_JOIN_DESTROYED : "view:emailOnlyJoin:destroyed",
  4046. VIEW_EMAIL_ONLY_JOIN_RENDERED : "view:emailOnlyJoin:rendered",
  4047. VIEW_ERROR_DESTROYED : "view:error:destroyed",
  4048. VIEW_ERROR_RENDERED : "view:error:rendered",
  4049. VIEW_JOIN_DESTROYED : "view:join:destroyed",
  4050. VIEW_JOIN_RENDERED : "view:join:rendered",
  4051. VIEW_LINK_DESTROYED : "view:link:destroyed",
  4052. VIEW_LINK_RENDERED : "view:link:rendered",
  4053. VIEW_LOGIN_CONTINUITY_DESTROYED : "view:loginContinuity:destroyed",
  4054. VIEW_LOGIN_CONTINUITY_RENDERED : "view:loginContinuity:rendered",
  4055. VIEW_LOGIN_DESTROYED : "view:login:destroyed",
  4056. VIEW_LOGIN_RENDERED : "view:login:rendered",
  4057. VIEW_LOGIN_DROPDOWN_DESTROYED : "view:loginDropdown:destroyed",
  4058. VIEW_LOGIN_DROPDOWN_RENDERED : "view:loginDropdown:rendered",
  4059. VIEW_MOBILE_CONFIRM_PASSWORD_RESET_DESTROYED : "view:mobileConfirmPasswordReset:destroyed",
  4060. VIEW_MOBILE_CONFIRM_PASSWORD_RESET_RENDERED : "view:mobileConfirmPasswordReset:rendered",
  4061. VIEW_MOBILE_JOIN_CONTINUE_DESTROYED : "view:mobileJoinContinue:destroyed",
  4062. VIEW_MOBILE_JOIN_CONTINUE_RENDERED : "view:mobileJoinContinue:rendered",
  4063. VIEW_MOBILE_JOIN_DESTROYED : "view:mobileJoin:destroyed",
  4064. VIEW_MOBILE_JOIN_RENDERED : "view:mobileJoin:rendered",
  4065. VIEW_MOBILE_LINK_DESTROYED : "view:mobileLink:destroyed",
  4066. VIEW_MOBILE_LINK_RENDERED : "view:mobileLink:rendered",
  4067. VIEW_MOBILE_LOGIN_DESTROYED : "view:mobileLogin:destroyed",
  4068. VIEW_MOBILE_LOGIN_RENDERED : "view:mobileLogin:rendered",
  4069. VIEW_MOBILE_REAUTH_DESTROYED : "view:mobileReauth:destroyed",
  4070. VIEW_MOBILE_REAUTH_RENDERED : "view:mobileReauth:rendered",
  4071. VIEW_MOBILE_RESET_PASSWORD_DESTROYED : "view:mobileResetPassword:destroyed",
  4072. VIEW_MOBILE_RESET_PASSWORD_RENDERED : "view:mobileResetPassword:rendered",
  4073. VIEW_MOBILE_SOCIAL_JOIN_DESTROYED : "view:mobileSocialJoin:destroyed",
  4074. VIEW_MOBILE_SOCIAL_JOIN_RENDERED : "view:mobileSocialJoin:rendered",
  4075. VIEW_MOBILE_VERIFICATION_CODE_DESTROYED : "view:mobileVerificationCode:destroyed",
  4076. VIEW_MOBILE_VERIFICATION_CODE_RENDERED : "view:mobileVerificationCode:rendered",
  4077. VIEW_PROGRESSIVE_PROFILE_DESTROYED : "view:progressiveProfile:destroyed",
  4078. VIEW_PROGRESSIVE_PROFILE_RENDERED : "view:progressiveProfile:rendered",
  4079. VIEW_REAUTH_DESTROYED : "view:reauth:destroyed",
  4080. VIEW_REAUTH_RENDERED : "view:reauth:rendered",
  4081. VIEW_RESET_PASSWORD_DESTROYED : "view:resetPassword:destroyed",
  4082. VIEW_RESET_PASSWORD_RENDERED : "view:resetPassword:rendered",
  4083. VIEW_SOCIAL_JOIN_DESTROYED : "view:socialJoin:destroyed",
  4084. VIEW_SOCIAL_JOIN_RENDERED : "view:socialJoin:rendered",
  4085. VIEW_UPDATE_PASSWORD_DESTROYED : "view:updatePassword:destroyed",
  4086. VIEW_UPDATE_PASSWORD_RENDERED : "view:updatePassword:rendered",
  4087. VIEW_VERIFY_MOBILE_CODE_DESTROYED : "view:verifyMobileCode:destroyed",
  4088. VIEW_VERIFY_MOBILE_CODE_RENDERED : "view:verifyMobileCode:rendered",
  4089. VIEW_WE_CHAT_MINI_MOBILE_JOIN_CONTINUE_DESTROYED : "view:weChatMiniMobileJoinContinue:destroyed",
  4090. VIEW_WE_CHAT_MINI_MOBILE_JOIN_CONTINUE_RENDERED : "view:weChatMiniMobileJoinContinue:rendered",
  4091. VIEW_WE_CHAT_MINI_MOBILE_JOIN_DESTROYED : "view:weChatMiniMobileJoin:destroyed",
  4092. VIEW_WE_CHAT_MINI_MOBILE_JOIN_RENDERED : "view:weChatMiniMobileJoin:rendered"
  4093. }, {
  4094. PASSWORD_UPDATE_SUCCESS : "password:update:success",
  4095. PASSWORD_UPDATE_FAILURE : "password:update:failure",
  4096. PASSWORD_RESET_FAILURE : "password:reset:failure",
  4097. PASSWORD_RESET_SUCCESS : "password:reset:success"
  4098. }, {
  4099. EXPERIENCE_LOAD_SUCCESS : "experience:load:success",
  4100. EXPERIENCE_LOAD_FAILURE : "experience:load:failure",
  4101. FACEBOOKSDK_LOAD_SUCCESS : "facebooksdk:load:success",
  4102. FACEBOOKSDK_LOAD_FAILURE : "facebooksdk:load:failure",
  4103. GIGYA_LOAD_SUCCESS : "gigya:load:success",
  4104. GIGYA_LOAD_FAILURE : "gigya:load:failure",
  4105. APP_LOAD_SUCCESS : "app:load:success",
  4106. APP_LOAD_FAILURE : "app:load:failure"
  4107. }, {
  4108. LOGOUT_SUCCESS : "logout:success",
  4109. LOGOUT_FAILURE : "logout:failure"
  4110. }, require()(function(self) {
  4111. var elemsAttrsTuples = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
  4112. var attrValTupleList = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];
  4113. var artistTrack = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : [];
  4114. return each()(elemsAttrsTuples, function(n) {
  4115. each()(artistTrack, function(args) {
  4116. each()(attrValTupleList, function(addr) {
  4117. /** @type {string} */
  4118. self["UI_".concat(n.toUpperCase(), "_").concat(args.toUpperCase(), "_").concat(addr.toUpperCase(), "_CLICK")] = "ui:".concat(n, ":").concat(_cat()(args), ":").concat(addr, ":click");
  4119. });
  4120. });
  4121. }), self;
  4122. }({}, ["login", "join"], topicsData, ["social_cancel", "social_link"]), {
  4123. UI_LOGIN_FOOTER_LINK_CLICK : "ui:login:footerLink:click",
  4124. UI_LOGIN_JOIN_NOW_CLICK : "ui:login:joinNow:click",
  4125. UI_LOGIN_RESET_PASSWORD_CLICK : "ui:login:resetPassword:click",
  4126. UI_JOIN_FOOTER_LINK_CLICK : "ui:join:footerLink:click",
  4127. UI_JOIN_ALREADY_MEMBER_CLICK : "ui:join:alreadyMember:click",
  4128. UI_LOGIN_CONTINUITY_NOT_ME_CLICK : "ui:loginContinuity:notMe:click",
  4129. UI_REAUTH_RESET_PASSWORD_CLICK : "ui:reauth:resetPassword:click",
  4130. UI_LINK_ACCOUNTS_RESET_PASSWORD_CLICK : "ui:linkAccounts:resetPassword:click"
  4131. }), {
  4132. TOKEN_REFRESH_SUCCESS : "token:refresh:success",
  4133. TOKEN_REFRESH_FAILURE : "token:refresh:failure",
  4134. TOKEN_EXCHANGE_SUCCESS : "token:exchange:success",
  4135. TOKEN_EXCHANGE_FAILURE : "token:exchange:failure"
  4136. }, {
  4137. API_LOGOUT : "api:logout",
  4138. API_GET_VISIT_DATA : "api:getVisitData"
  4139. });
  4140. var locale;
  4141. var match;
  4142. var params;
  4143. var self = callback({}, args, {
  4144. getEvent : function(data) {
  4145. return args[data.map(function(req) {
  4146. return headers()(req).split(" ").join("_").toUpperCase();
  4147. }).join("_")] || "error";
  4148. },
  4149. getInstance : function() {
  4150. return lastIndexStream || (lastIndexStream = new ee.EventEmitter2({
  4151. wildcard : true,
  4152. newListener : false,
  4153. delimiter : ":",
  4154. maxListeners : 0
  4155. })).on("error", applyDataChange), lastIndexStream;
  4156. },
  4157. reset : function() {
  4158. lastIndexStream.removeAllListeners();
  4159. lastIndexStream.on("error", applyDataChange);
  4160. }
  4161. });
  4162. var Dom = self.getInstance();
  4163. /**
  4164. * @param {string} a
  4165. * @return {undefined}
  4166. */
  4167. utils.namespace("nike.unite").openLegalLink = function(a) {
  4168. var vertices = {
  4169. participantLink : "participant",
  4170. policyLink : "privacyPolicy",
  4171. swooshTermsLink : "programTerms",
  4172. termsLink : "termsOfUse"
  4173. };
  4174. var ty = nike.unite.currentView().name;
  4175. if (Dom.emit(self.getEvent(["ui", ty, "footerLink", "click"]), {
  4176. innerHTML : a
  4177. }), !vertices.hasOwnProperty(a)) {
  4178. throw new Error("Called openLegalLink with an invalid agreementType");
  4179. }
  4180. var defaults = {
  4181. agreementType : a = vertices[a],
  4182. country : attr(),
  4183. language : getLanguage(),
  4184. mobileStatus : ret.isMobile(),
  4185. requestType : entity.getExperience().settings.legalServiceRequestType,
  4186. uxId : entity.getUxId()
  4187. };
  4188. if ("participant" === a) {
  4189. /** @type {boolean} */
  4190. defaults.mobileStatus = false;
  4191. }
  4192. var yyyy = function() {
  4193. var a = entity.getEnvironmentVariables().agreementServiceUrl;
  4194. var item = win.document.getElementById("nike-unite").getAttribute("data-agreements-url");
  4195. return item && "" !== item.trim() && (a = item.trim()), a;
  4196. }();
  4197. /** @type {!Array} */
  4198. var drilldownLevelLabels = [];
  4199. forEach()(defaults, function(e, n) {
  4200. drilldownLevelLabels.push("".concat(encodeURIComponent(n), "=").concat(encodeURIComponent(e)));
  4201. });
  4202. /** @type {string} */
  4203. win.window.location = "".concat(yyyy, "?").concat(drilldownLevelLabels.join("&"));
  4204. };
  4205. var res = {
  4206. experience : entity,
  4207. fileStructure : Ie,
  4208. localization : {
  4209. reset : function() {
  4210. /** @type {null} */
  4211. locale = null;
  4212. /** @type {null} */
  4213. match = null;
  4214. /** @type {null} */
  4215. params = null;
  4216. },
  4217. getCountry : attr,
  4218. getLanguage : getLanguage,
  4219. getLocale : function() {
  4220. if (!locale) {
  4221. throw new Error("Called getLocale without first calling setLocale");
  4222. }
  4223. return locale;
  4224. },
  4225. sanitizeLocaleString : function(text) {
  4226. var temp_array = (text || "en_US").replace(/\s+/g, "").split(/[-_]+/g);
  4227. var name = temp_array[0].toLowerCase();
  4228. if (!$filter()($rootScope.languageDefaultDialects, name)) {
  4229. /** @type {string} */
  4230. name = "en";
  4231. }
  4232. var type = temp_array.slice(-1).toString().toUpperCase();
  4233. return $filter()($rootScope.countryDialectExceptions, type) || (type = "XX"), "".concat(name, "_").concat(type);
  4234. },
  4235. setLocale : function(name) {
  4236. if (name = name.replace(/-/g, "_"), !match) {
  4237. var target = split()(name.split("_")[0]);
  4238. /** @type {string} */
  4239. match = "en";
  4240. if ($filter()($rootScope.languageDefaultDialects, target)) {
  4241. match = target;
  4242. }
  4243. }
  4244. params = name.split("_").slice(-1)[0].toUpperCase();
  4245. var data = entity.getExperience();
  4246. return data.components && data.components.country && $filter()(data.components.country.supportedList, params) || (params = "XX"), locale = "".concat(split()(match), "_").concat(split()(params));
  4247. }
  4248. },
  4249. mappings : $rootScope,
  4250. platform : ret
  4251. };
  4252. var settings = {
  4253. onFocus : function(e) {
  4254. e.classList.remove("blurred");
  4255. e.classList.add("focused");
  4256. },
  4257. onBlur : function(e) {
  4258. e.classList.remove("focused");
  4259. e.classList.add("blurred");
  4260. },
  4261. onSubmit : function(body) {
  4262. body.classList.remove("submitted");
  4263. body.classList.add("submitting");
  4264. },
  4265. onSubmitted : function(data) {
  4266. data.classList.remove("submitting");
  4267. data.classList.add("submitted");
  4268. },
  4269. onKeydown : function() {
  4270. },
  4271. onKeyup : function() {
  4272. },
  4273. onValid : function(input) {
  4274. input.classList.add("valid");
  4275. input.classList.remove("invalid");
  4276. input.classList.remove("validating");
  4277. var onPlanet = input.querySelector(".error");
  4278. if (onPlanet) {
  4279. /** @type {string} */
  4280. onPlanet.innerHTML = "";
  4281. }
  4282. },
  4283. onInvalid : function(el, type) {
  4284. el.classList.add("invalid");
  4285. el.classList.remove("valid");
  4286. el.classList.remove("validating");
  4287. if (type) {
  4288. /** @type {string} */
  4289. el.querySelector(".error").innerHTML = type;
  4290. /** @type {string} */
  4291. el.querySelector(".tip").innerHTML = type;
  4292. }
  4293. },
  4294. onValidating : function(images) {
  4295. images.classList.remove("valid");
  4296. images.classList.remove("invalid");
  4297. images.classList.add("validating");
  4298. },
  4299. onSelected : function(selected) {
  4300. selected.classList.add("selected");
  4301. },
  4302. onDeselected : function(focusedObj) {
  4303. focusedObj.classList.remove("selected");
  4304. },
  4305. onEmpty : function(container) {
  4306. container.classList.add("empty");
  4307. },
  4308. onNotEmpty : function(e) {
  4309. e.classList.remove("empty");
  4310. }
  4311. };
  4312. var configuration = $(101);
  4313. var inject = $.n(configuration);
  4314. var dir = $(18);
  4315. var write = $.n(dir);
  4316. var meteorRequestListeners = {
  4317. areValuesUniqueForPath : function(value, prop) {
  4318. /** @type {!RegExp} */
  4319. var t = new RegExp(prop.value.pattern);
  4320. var item = utils.deepKeys(value);
  4321. /** @type {!Array} */
  4322. var trafficLights = [];
  4323. /** @type {boolean} */
  4324. var array = true;
  4325. return forEach()(item, function(name) {
  4326. if (t.test(name)) {
  4327. var val = get()(value, name);
  4328. if ("string" != typeof val) {
  4329. return;
  4330. }
  4331. if (val = val.trim(), trafficLights.indexOf(val) >= 0) {
  4332. return array = false, false;
  4333. }
  4334. trafficLights.push(val);
  4335. }
  4336. }), array;
  4337. },
  4338. crossField : function(params, row) {
  4339. var options = win.document.querySelector('[name="'.concat(row.lookup, '"]'));
  4340. if (!options || "" === split()(options.value)) {
  4341. return true;
  4342. }
  4343. switch(row.type) {
  4344. case "equal":
  4345. return set(params, options);
  4346. case "exclude":
  4347. return checked(params, options);
  4348. case "notequal":
  4349. return _extends(params, options);
  4350. case "validStateForCountry":
  4351. return changeLanguageCode(params, options);
  4352. case "validCountryForState":
  4353. return serve(params, options);
  4354. default:
  4355. throw new Error("Unsupported crossField type. (".concat(row.type, ")"));
  4356. }
  4357. },
  4358. dateInPast : function(type, result) {
  4359. /** @type {!Array<string>} */
  4360. var rparts = (type = "string" == typeof type ? type : "").split("-");
  4361. result.value = result.value || {};
  4362. /** @type {!Date} */
  4363. var n = new Date(parseInt(rparts[0], 10), result.value.zeroIndexedMonth ? parseInt(rparts[1], 10) : parseInt(rparts[1], 10) - 1, parseInt(rparts[2], 10));
  4364. /** @type {!Date} */
  4365. var dCurrent = new Date;
  4366. /** @type {!Date} */
  4367. var j4 = new Date(dCurrent.getFullYear(), dCurrent.getMonth(), dCurrent.getDate());
  4368. return false === result.value.required && !type || !isNaN(n) && n < j4;
  4369. },
  4370. equal : set,
  4371. exclude : checked,
  4372. inRange : function(p, range) {
  4373. return +p >= range.value.min && +p <= range.value.max;
  4374. },
  4375. isNotOfType : function(e, id) {
  4376. return null === e || void 0 === e || !share(e, id);
  4377. },
  4378. isOfType : share,
  4379. isPhoneNumber : function(phoneNumber) {
  4380. var ccCvv = phoneNumber.replace(/\D/g, "");
  4381. return ccCvv.length >= 9 && ccCvv.length <= 15;
  4382. },
  4383. matchPattern : function(filename, options) {
  4384. /** @type {!RegExp} */
  4385. var testFileRegex = new RegExp(options.value.pattern, options.value.suffix || "");
  4386. return false === options.value.required && !filename || testFileRegex.test(filename);
  4387. },
  4388. nestedObject : function(data, result) {
  4389. if (null === data || void 0 === data || !data.ulrValidateObject) {
  4390. return true;
  4391. }
  4392. if ("object" !== type(data)) {
  4393. return false;
  4394. }
  4395. /** @type {boolean} */
  4396. var results = true;
  4397. return forEach()(result.value, function(key, name) {
  4398. return forEach()(key, function(res) {
  4399. var i = res.name;
  4400. if (false === (results = meteorRequestListeners[i](get()(data, name), res))) {
  4401. return result.errorMessage = res.errorMessage, false;
  4402. }
  4403. }), results;
  4404. }), results;
  4405. },
  4406. notEqual : _extends,
  4407. notMatchPattern : function(elem, prop) {
  4408. return !(new RegExp(prop.value.pattern)).test(elem);
  4409. },
  4410. required : function(value) {
  4411. return "" !== split()(value);
  4412. },
  4413. stringLength : function(value, context) {
  4414. return value = split()(value), false === context.value.required && !value || value.length >= context.value.min && value.length <= context.value.max;
  4415. },
  4416. validCountryForState : serve,
  4417. validStateForCountry : changeLanguageCode
  4418. };
  4419. var constraint = meteorRequestListeners;
  4420. var env = {
  4421. validate : function(e, rlOrSO, key, callback) {
  4422. /** @type {boolean} */
  4423. var b = true;
  4424. /** @type {null} */
  4425. var result = null;
  4426. return settings.onValidating(e), forEach()(rlOrSO, function(ast) {
  4427. if (inject()(ast.events, callback) && ast.keys && ast.keys.length > 0) {
  4428. check(ast.keys, e, "valid");
  4429. }
  4430. }), forEach()(rlOrSO, function(item) {
  4431. if (!inject()(item.events, callback)) {
  4432. return true;
  4433. }
  4434. var value = constraint[item.name](key, item);
  4435. if (!(value = item.invertResult ? !value : value)) {
  4436. check(item.keys, e, "invalid");
  4437. result = result || function(result) {
  4438. var p = result.errorMessage;
  4439. return p && result.variables && forEach()(result.variables, function(indentStr, i) {
  4440. p = p.replace("{".concat(i, "}"), indentStr);
  4441. }), p;
  4442. }(item);
  4443. /** @type {boolean} */
  4444. b = false;
  4445. }
  4446. }), b ? settings.onValid(e, key) : settings.onInvalid(e, result), b;
  4447. }
  4448. };
  4449. var boardView = {
  4450. checkIfEmpty : function(e) {
  4451. var a;
  4452. a = e.tagName ? e : e.target;
  4453. var p = utils.parentNodes.getParentComponent(a);
  4454. if (p) {
  4455. if (a.value) {
  4456. settings.onNotEmpty(p);
  4457. } else {
  4458. settings.onEmpty(p);
  4459. }
  4460. }
  4461. },
  4462. getInvalidElements : function() {
  4463. /** @type {!Array} */
  4464. var dest = [];
  4465. var list = win.nike.unite.currentView().view.components;
  4466. return forEach()(list, function(obj) {
  4467. if (get()(obj, "model.rules")) {
  4468. var e = win.document.getElementById(obj.model.id);
  4469. if (!("function" == typeof obj.validate ? obj.validate() : env.validate(e, obj.model.rules, obj.getValue(), "submit"))) {
  4470. dest.push(win.document.getElementById(obj.model.inputId));
  4471. }
  4472. }
  4473. }), dest;
  4474. },
  4475. addClassToPlaceholders : function(e) {
  4476. var n = win.document.querySelectorAll(".nike-unite");
  4477. forEach()(n, function(n) {
  4478. n.classList.add(e);
  4479. });
  4480. }
  4481. };
  4482. var __WEBPACK_IMPORTED_MODULE_20_date_fns_min__ = $(178);
  4483. var __WEBPACK_IMPORTED_MODULE_20_date_fns_min___default = $.n(__WEBPACK_IMPORTED_MODULE_20_date_fns_min__);
  4484. var part = $(184);
  4485. var apply = $.n(part);
  4486. var _this = {
  4487. dom : boardView,
  4488. models : {
  4489. merge : function(obj, type) {
  4490. var t = apply()(obj, type, function(value, elems) {
  4491. if (write()(value)) {
  4492. return "string" == typeof elems && (elems = elems.split(" ")), __WEBPACK_IMPORTED_MODULE_20_date_fns_min___default()(value, elems);
  4493. }
  4494. });
  4495. return t.classes = t.classes.join(" "), t;
  4496. }
  4497. },
  4498. state : settings,
  4499. validate : env.validate
  4500. };
  4501. var date = $(185);
  4502. var obj = $.n(date);
  4503. var map = $(186);
  4504. var newObj = {};
  4505. map.keys().forEach(function(val) {
  4506. var i = obj.a.basename(val, ".tmplz");
  4507. newObj[i] = map(val);
  4508. });
  4509. var scope = newObj;
  4510. var yourscore = self.getInstance();
  4511. var title = self.UI_LOGIN_JOIN_NOW_CLICK;
  4512. /**
  4513. * @param {!Object} input
  4514. * @param {string} number
  4515. * @return {?}
  4516. */
  4517. var launch = function(input, number) {
  4518. var params = {
  4519. id : utils.generateUuid(),
  4520. inputId : utils.generateUuid(),
  4521. classes : ["nike-unite-action-button", number],
  4522. name : number,
  4523. value : ""
  4524. };
  4525. var data = _this.models.merge(params, input);
  4526. return {
  4527. html : scope.actionButton(data),
  4528. handlers : [{
  4529. target : data.inputId,
  4530. event : "click",
  4531. handler : function() {
  4532. if (data.view) {
  4533. var e;
  4534. var me = win.nike.unite.currentView().view;
  4535. if (me.placeholder) {
  4536. var forNodeId = me.placeholder.querySelector(".nike-unite-form");
  4537. if (forNodeId) {
  4538. e = utils.formData.getFormDataByComponent(forNodeId);
  4539. }
  4540. }
  4541. if ("loginCreateButton" === data.name && yourscore.emit(title), me.eventHandler) {
  4542. var save = data.action || "render";
  4543. me.eventHandler(save, data.view);
  4544. } else {
  4545. if (data.action && "skip" === data.action) {
  4546. me.submitHandler();
  4547. } else {
  4548. win.nike.unite.destroyAllViews();
  4549. win.nike.unite.views[data.view].render(e);
  4550. }
  4551. }
  4552. }
  4553. }
  4554. }]
  4555. };
  4556. };
  4557. var Object = self.getInstance();
  4558. var thisParcelBundles = self.UI_LOGIN_RESET_PASSWORD_CLICK;
  4559. var equalizerPresets = self.UI_REAUTH_RESET_PASSWORD_CLICK;
  4560. var withArgs_ = self.UI_LINK_ACCOUNTS_RESET_PASSWORD_CLICK;
  4561. /**
  4562. * @param {!Object} obj
  4563. * @param {string} n
  4564. * @param {!Object} data
  4565. * @return {?}
  4566. */
  4567. var generate = function(obj, n, data) {
  4568. var defaults = {
  4569. id : utils.generateUuid(),
  4570. linkId : utils.generateUuid(),
  4571. name : n,
  4572. value : "",
  4573. classes : ["nike-unite-component", "action-link", n]
  4574. };
  4575. var data = _this.models.merge(defaults, obj);
  4576. return {
  4577. html : scope.actionLink(data),
  4578. handlers : [{
  4579. target : data.linkId,
  4580. event : "click",
  4581. handler : function() {
  4582. if (config.views[data.view]) {
  4583. var n;
  4584. if ("forgotPassword" === data.name) {
  4585. switch(data.model && data.model.src ? data.model.src : "") {
  4586. case "nike-unite-login-view":
  4587. Object.emit(thisParcelBundles);
  4588. break;
  4589. case "nike-unite-reauth-view":
  4590. Object.emit(equalizerPresets);
  4591. break;
  4592. case "nike-unite-link-view":
  4593. Object.emit(withArgs_);
  4594. }
  4595. }
  4596. if ("login" === obj.view && ["duplicateEmailSignIn", "currentMemberSignIn"].indexOf(obj.name) >= 0) {
  4597. var emitMsgName = self.getEvent(["ui", "join", "alreadyMember", "click"]);
  4598. Object.emit(emitMsgName, obj);
  4599. }
  4600. var c = win.nike.unite.currentView().view.placeholder;
  4601. if (c) {
  4602. var fx_pow_gx = c.querySelector(".nike-unite-form");
  4603. if (fx_pow_gx) {
  4604. n = utils.formData.getFormDataByComponent(fx_pow_gx);
  4605. }
  4606. }
  4607. var me = win.nike.unite.currentView().view;
  4608. if (me.eventHandler) {
  4609. var x = "duplicateEmailSignIn" === obj.name && "socialJoin" === me.name ? "link" : obj.view;
  4610. me.eventHandler("".concat(x, "Render"), data.name);
  4611. } else {
  4612. win.nike.unite.destroyAllViews();
  4613. win.nike.unite.views[obj.view].render(n);
  4614. }
  4615. }
  4616. }
  4617. }]
  4618. };
  4619. };
  4620. /**
  4621. * @param {!Object} button
  4622. * @return {?}
  4623. */
  4624. var buildBlock = function(button) {
  4625. return {
  4626. html : button.value,
  4627. handlers : []
  4628. };
  4629. };
  4630. /**
  4631. * @param {!Object} config
  4632. * @param {string} key
  4633. * @return {?}
  4634. */
  4635. var reset = function(config, key) {
  4636. var entry = {
  4637. id : utils.generateUuid(),
  4638. tip : "",
  4639. keyboardType : "text",
  4640. inputId : utils.generateUuid(),
  4641. classes : ["nike-unite-checkbox", key],
  4642. name : key,
  4643. value : ""
  4644. };
  4645. if (Object.prototype.hasOwnProperty.call(config, "active") && !config.active) {
  4646. entry.classes.push("valid");
  4647. }
  4648. var data = _this.models.merge(entry, config);
  4649. return data.alwaysRenderWithDefaultValue && (data.value = res.experience.getExperience().components[key].value), data.checked = true === data.value ? 'checked="checked"' : "", {
  4650. html : scope.checkbox(data),
  4651. model : data,
  4652. getValue : function() {
  4653. return win.document.getElementById(data.inputId).checked;
  4654. },
  4655. handlers : [{
  4656. target : data.inputId,
  4657. event : "blur",
  4658. handler : function(item) {
  4659. var e = win.document.getElementById(data.id);
  4660. _this.dom.checkIfEmpty(item);
  4661. _this.state.onBlur(e);
  4662. }
  4663. }, {
  4664. target : data.inputId,
  4665. event : "change",
  4666. handler : function(e) {
  4667. var n = win.document.getElementById(data.id);
  4668. _this.dom.checkIfEmpty(e);
  4669. _this.validate(n, data.rules, e.target.checked, "change");
  4670. }
  4671. }, {
  4672. target : data.inputId,
  4673. event : "focus",
  4674. handler : function() {
  4675. var e = win.document.getElementById(data.id);
  4676. _this.state.onFocus(e);
  4677. }
  4678. }]
  4679. };
  4680. };
  4681. var socket = self.getInstance();
  4682. /**
  4683. * @param {!Object} config
  4684. * @param {string} filePath
  4685. * @return {?}
  4686. */
  4687. var addFileToProject = function(config, filePath) {
  4688. var data = {
  4689. id : utils.generateUuid(),
  4690. classes : ["nike-unite-coppa", filePath],
  4691. name : filePath
  4692. };
  4693. return config = _this.models.merge(data, config), {
  4694. html : scope.coppa(config),
  4695. handlers : [{
  4696. target : config.id,
  4697. event : "render",
  4698. handler : function() {
  4699. if (document.cookie && document.cookie.indexOf("coppa") > -1) {
  4700. socket.emit(self.getEvent(["join", "coppa", "failure"]), {
  4701. code : 400,
  4702. messages : [{
  4703. text : "not eligible"
  4704. }]
  4705. });
  4706. assert.previousCoppaFailure();
  4707. }
  4708. }
  4709. }]
  4710. };
  4711. };
  4712. var custom = $(21);
  4713. var pipe = $.n(custom);
  4714. /**
  4715. * @param {!Object} d
  4716. * @param {string} event
  4717. * @return {?}
  4718. */
  4719. var select = function(d, event) {
  4720. var result = {
  4721. id : utils.generateUuid(),
  4722. selectId : utils.generateUuid(),
  4723. classes : ["nike-unite-select", event],
  4724. name : event,
  4725. value : ""
  4726. };
  4727. if (!d.suppressBlank) {
  4728. /** @type {!Array} */
  4729. result.options = [{
  4730. label : d.label,
  4731. value : "",
  4732. cssClass : "select-placeholder"
  4733. }];
  4734. }
  4735. var data = _this.models.merge(result, d);
  4736. return forEach()(pipe()(data.options), function(name) {
  4737. var options = data.options[name];
  4738. options.cssClass = options.cssClass || "";
  4739. if (data.value === options.value) {
  4740. /** @type {string} */
  4741. options.selectedValue = 'selected="selected"';
  4742. } else {
  4743. /** @type {string} */
  4744. options.selectedValue = "";
  4745. }
  4746. }), {
  4747. getValue : function() {
  4748. return document.getElementById(data.selectId).value;
  4749. },
  4750. html : scope.select(data),
  4751. model : data,
  4752. handlers : [{
  4753. target : data.selectId,
  4754. event : "render",
  4755. handler : function(obj) {
  4756. var n = win.document.getElementById(data.id);
  4757. _this.dom.checkIfEmpty(obj);
  4758. if (obj.value) {
  4759. _this.validate(n, data.rules, obj.value, "submit");
  4760. }
  4761. }
  4762. }, {
  4763. target : data.selectId,
  4764. event : "blur",
  4765. handler : function(item) {
  4766. var e = win.document.getElementById(data.id);
  4767. _this.dom.checkIfEmpty(item);
  4768. _this.state.onBlur(e);
  4769. _this.validate(e, data.rules, item.target.value, "blur");
  4770. }
  4771. }, {
  4772. target : data.selectId,
  4773. event : "change",
  4774. handler : function(item) {
  4775. var n = win.document.getElementById(data.id);
  4776. _this.dom.checkIfEmpty(item);
  4777. _this.validate(n, data.rules, item.target.value, "change");
  4778. }
  4779. }, {
  4780. target : data.selectId,
  4781. event : "focus",
  4782. handler : function() {
  4783. var e = win.document.getElementById(data.id);
  4784. _this.state.onFocus(e);
  4785. }
  4786. }]
  4787. };
  4788. };
  4789. var history;
  4790. var paintNodesTimeout;
  4791. var boolean;
  4792. var tools = {
  4793. facebook : {
  4794. getModel : function(response, id) {
  4795. return {
  4796. firstName : {
  4797. value : response.first_name || ""
  4798. },
  4799. lastName : {
  4800. value : response.last_name || ""
  4801. },
  4802. emailAddress : {
  4803. value : response.email || ""
  4804. },
  4805. gender : {
  4806. value : function(gender) {
  4807. switch(gender) {
  4808. case "male":
  4809. return "M";
  4810. case "female":
  4811. return "F";
  4812. default:
  4813. return "O";
  4814. }
  4815. }(response.gender)
  4816. },
  4817. provider : utils.formData.getProviderNameDisplay("facebook"),
  4818. providerKey : "facebook",
  4819. dateOfBirth : {
  4820. value : response.birthday ? function(nameOfRoute) {
  4821. var s = nameOfRoute.split("/").reverse();
  4822. var v = s[2];
  4823. return s[2] = s[1], s[1] = v, s.join("-");
  4824. }(response.birthday) : null
  4825. },
  4826. socialInputs : {
  4827. network : "facebook",
  4828. networkToken : id || "",
  4829. networkEmail : response.email || "",
  4830. networkUserId : response.id || ""
  4831. }
  4832. };
  4833. },
  4834. mapSocialData : function(profile) {
  4835. return profile.provider = utils.formData.getProviderNameDisplay("facebook"), profile.providerKey = "facebook", profile.socialInputs = {
  4836. network : profile.network ? profile.network.value : void 0,
  4837. networkToken : profile.networkToken ? profile.networkToken.value : void 0,
  4838. networkEmail : profile.networkEmail ? profile.networkEmail.value : void 0,
  4839. networkUserId : profile.networkUserId ? profile.networkUserId.value : void 0
  4840. }, profile;
  4841. }
  4842. },
  4843. gigya : {
  4844. getModel : function(item, options, name) {
  4845. /** @type {string} */
  4846. var mark = "O";
  4847. return "m" !== item.gender && "f" !== item.gender || (mark = item.gender.toUpperCase()), {
  4848. firstName : {
  4849. value : item.firstName || ""
  4850. },
  4851. image : {
  4852. value : item.thumbnailURL || ""
  4853. },
  4854. lastName : {
  4855. value : item.lastName || ""
  4856. },
  4857. screenName : {
  4858. value : (item.nickname || "").replace(/\s+/g, "")
  4859. },
  4860. avatar : {
  4861. email : item.email || ""
  4862. },
  4863. emailAddress : {
  4864. value : item.email || ""
  4865. },
  4866. gender : {
  4867. value : mark
  4868. },
  4869. zipCode : {
  4870. value : item.zip || ""
  4871. },
  4872. provider : utils.formData.getProviderNameDisplay(name),
  4873. providerKey : name,
  4874. dateOfBirth : {
  4875. value : item.birthYear ? "".concat(item.birthYear, "-").concat("0".concat(item.birthMonth).slice(-2), "-").concat("0".concat(item.birthDay).slice(-2)) : null
  4876. },
  4877. socialInputs : {
  4878. network : name,
  4879. networkToken : options.authToken || options,
  4880. networkSecret : options.tokenSecret || "",
  4881. networkEmail : item.email,
  4882. networkScreenName : item.nickname,
  4883. networkUserId : function(data, project_) {
  4884. var priority;
  4885. return forEach()(data.identities, function(options) {
  4886. if (options.provider === project_.toLowerCase()) {
  4887. priority = options.providerUID;
  4888. }
  4889. }), priority || "";
  4890. }(item, name),
  4891. isLinked : item.isSiteUID,
  4892. resourceOwnerId : item.UID
  4893. }
  4894. };
  4895. },
  4896. mapSocialData : function(data) {
  4897. var account = data.network ? data.network.value : void 0;
  4898. return data.provider = utils.formData.getProviderNameDisplay(account), data.providerKey = account, data.socialInputs = {
  4899. network : account,
  4900. networkToken : data.networkToken ? data.networkToken.value : void 0,
  4901. networkSecret : data.networkSecret ? data.networkSecret.value : void 0,
  4902. networkEmail : data.networkEmail ? data.networkEmail.value : void 0,
  4903. networkScreenName : data.networkScreenName ? data.networkScreenName.value : void 0,
  4904. networkUserId : data.networkUserId ? data.networkUserId.value : void 0,
  4905. isLinked : data.isLinked ? "true" === data.isLinked.value : void 0,
  4906. resourceOwnerId : data.resourceOwnerId ? data.resourceOwnerId.value : void 0
  4907. }, data;
  4908. }
  4909. },
  4910. line : {
  4911. getModel : function() {
  4912. var args = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  4913. var key = args.email;
  4914. var url = void 0 === key ? "" : key;
  4915. var b = args.loginProviderUID;
  4916. var second = void 0 === b ? "" : b;
  4917. var opt_by = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "";
  4918. return {
  4919. provider : utils.formData.getProviderNameDisplay("line"),
  4920. providerKey : "line",
  4921. socialInputs : {
  4922. network : "line",
  4923. networkToken : opt_by,
  4924. networkEmail : url,
  4925. networkUserId : second
  4926. }
  4927. };
  4928. }
  4929. },
  4930. wechat : {
  4931. getModel : function(config, type) {
  4932. return {
  4933. provider : utils.formData.getProviderNameDisplay("wechat"),
  4934. providerKey : "wechat",
  4935. socialInputs : {
  4936. network : "wechat",
  4937. networkToken : type || "",
  4938. networkEmail : config.email || "",
  4939. networkUserId : config.loginProviderUID || ""
  4940. }
  4941. };
  4942. },
  4943. mapSocialData : function(data) {
  4944. var account = data.network ? data.network.value : void 0;
  4945. return data.provider = utils.formData.getProviderNameDisplay(account), data.providerKey = account, data.socialInputs = {
  4946. network : account,
  4947. networkToken : data.networkToken ? data.networkToken.value : void 0,
  4948. networkEmail : data.networkEmail ? data.networkEmail.value : void 0,
  4949. networkUserId : data.networkUserId ? data.networkUserId.value : void 0
  4950. }, data;
  4951. }
  4952. }
  4953. };
  4954. /** @type {number} */
  4955. var connect = (new Date).getTime();
  4956. var rightcol = history = {
  4957. reportNikeUniteInit : function(status) {
  4958. if ("success" !== status && "failure" !== status) {
  4959. throw new Error("a status must be defined and valid");
  4960. }
  4961. if (true === boolean && "success" === status) {
  4962. /** @type {string} */
  4963. status = "delayedSuccess";
  4964. }
  4965. if (paintNodesTimeout) {
  4966. clearTimeout(paintNodesTimeout);
  4967. r();
  4968. }
  4969. var data = {
  4970. clientId : res.experience.getClientId(),
  4971. status : status,
  4972. experienceVersion : win.nike.unite.version.experiences,
  4973. appVersion : win.nike.unite.version.app,
  4974. uxId : res.experience.getUxId(),
  4975. isAndroid : res.platform.isAndroid(),
  4976. isIOS : res.platform.isIOS(),
  4977. isMobile : res.platform.isMobile(),
  4978. isNative : res.platform.isNative(),
  4979. timeElapsed : (new Date).getTime() - connect
  4980. };
  4981. /** @type {string} */
  4982. var t = "".concat(res.experience.getCorsServer(), "/appInitialization").concat(utils.script.buildQueryString(data));
  4983. console.get(t, function() {
  4984. }, function() {
  4985. }, function() {
  4986. });
  4987. },
  4988. nikeUniteInitTimeout : function() {
  4989. /** @type {number} */
  4990. paintNodesTimeout = setTimeout(function() {
  4991. history.reportNikeUniteInit("failure");
  4992. /** @type {boolean} */
  4993. boolean = true;
  4994. }, 1E4);
  4995. },
  4996. reset : r
  4997. };
  4998. var QueueManager = function() {
  4999. /**
  5000. * @return {undefined}
  5001. */
  5002. function t() {
  5003. off(this, t);
  5004. /** @type {!Array} */
  5005. this.items = [];
  5006. }
  5007. return define(t, [{
  5008. key : "prepend",
  5009. value : function(obj) {
  5010. var _ref2;
  5011. if (obj instanceof Array) {
  5012. (_ref2 = this.items).unshift.apply(_ref2, build(obj));
  5013. } else {
  5014. this.items.unshift(obj);
  5015. }
  5016. }
  5017. }, {
  5018. key : "enqueue",
  5019. value : function(obj) {
  5020. this.items.push(obj);
  5021. }
  5022. }, {
  5023. key : "dequeue",
  5024. value : function() {
  5025. var i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1;
  5026. return 1 === i ? this.items.shift() : this.items.splice(0, i);
  5027. }
  5028. }]), t;
  5029. }();
  5030. var error = {
  5031. codes : {
  5032. COPPA_ERROR : "COPPA_ERROR",
  5033. DUPLICATE_ACCOUNT : "DUPLICATE_ACCOUNT",
  5034. EMPTY : "EMPTY",
  5035. GENERIC : "GENERIC",
  5036. SERVER_ERROR : "SERVER_ERROR",
  5037. TIMEOUT : "TIMEOUT",
  5038. UNAUTHORIZED : "UNAUTHORIZED",
  5039. NOT_LINKED : "NOT_LINKED"
  5040. },
  5041. ServerError : function(canCreateDiscussions) {
  5042. /**
  5043. * @param {!Object} response
  5044. * @return {?}
  5045. */
  5046. function callback(response) {
  5047. var error;
  5048. return off(this, callback), (error = compile(this, isEmpty(callback).call(this, response.message))).code = response.code, error.httpStatus = response.httpStatus, error.fieldName = response.fieldName, error;
  5049. }
  5050. return function(x, e) {
  5051. if ("function" != typeof e && null !== e) {
  5052. throw new TypeError("Super expression must either be null or a function");
  5053. }
  5054. /** @type {!Object} */
  5055. x.prototype = Object.create(e && e.prototype, {
  5056. constructor : {
  5057. value : x,
  5058. writable : true,
  5059. configurable : true
  5060. }
  5061. });
  5062. if (e) {
  5063. contains(x, e);
  5064. }
  5065. }(callback, inherits(Error)), callback;
  5066. }()
  5067. };
  5068. var fields_to_add = $(208);
  5069. var getPrintRectangleCenterCoord = $.n(fields_to_add);
  5070. var select2Svc = {
  5071. getConfig : function() {
  5072. var userId = res.experience.getUuId() || "";
  5073. var anonymousId = cookieWrapper.getCookieValue("anonymousId");
  5074. if (!anonymousId) {
  5075. (function(command_module_id) {
  5076. var hostExcludingPort = function(_testModuleName) {
  5077. var n = _testModuleName.match(/[a-zA-Z0-9-]+\.com$/);
  5078. return n ? ".".concat(n[0]) : "";
  5079. }(win.document.location.hostname);
  5080. cookieWrapper.setCookie({
  5081. key : "anonymousId",
  5082. value : command_module_id,
  5083. expiresIn : 1200,
  5084. path : "/",
  5085. domain : hostExcludingPort
  5086. });
  5087. })(anonymousId = "UNTX".concat(getPrintRectangleCenterCoord()(utils.generateUuid())));
  5088. }
  5089. var query = {
  5090. anonymousId : anonymousId,
  5091. userId : userId,
  5092. type : "track"
  5093. };
  5094. return {
  5095. corsOptions : {
  5096. addLogData : false
  5097. },
  5098. headers : {
  5099. "Content-Type" : "application/json",
  5100. Authorization : res.experience.getEnvironmentVariables().segmentAuthHeader
  5101. },
  5102. params : query
  5103. };
  5104. }
  5105. };
  5106. var screen = {
  5107. batch : function() {
  5108. var navLinksArr = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
  5109. return new Promise(function(args, saveNotifs) {
  5110. var options = res.experience.getEnvironmentVariables().api.segmentBatch;
  5111. var _ref = select2Svc.getConfig();
  5112. var status = _ref.params;
  5113. var callback = _ref.headers;
  5114. var value = _ref.corsOptions;
  5115. console.post("".concat(options.cors).concat(options.path), {
  5116. batch : navLinksArr.map(function(exisObj) {
  5117. return callback({}, exisObj, status);
  5118. })
  5119. }, args, function(notMessage, httpStatus) {
  5120. saveNotifs(new error.ServerError({
  5121. httpStatus : httpStatus,
  5122. message : notMessage,
  5123. code : error.codes.GENERIC
  5124. }));
  5125. }, function() {
  5126. saveNotifs(new error.ServerError({
  5127. code : error.codes.TIMEOUT,
  5128. message : void 0
  5129. }));
  5130. }, callback, {}, value);
  5131. });
  5132. }
  5133. };
  5134. var haproxyManager;
  5135. var at = {
  5136. buildBaseResult : function() {
  5137. return {
  5138. meta : {
  5139. language : res.localization.getLanguage(),
  5140. country : res.localization.getCountry(),
  5141. experienceId : res.experience.getUxId(),
  5142. mobile : res.platform.isMobile(),
  5143. href : win.document.location.href,
  5144. host : win.document.location.host,
  5145. pathname : win.document.location.pathname
  5146. }
  5147. };
  5148. }
  5149. };
  5150. var AS_STATE = {
  5151. ENABLED : "ENABLED",
  5152. DISABLED : "DISABLED",
  5153. UNINITIALIZED : "UNITIALIZED"
  5154. };
  5155. var MockHaproxyManager = function() {
  5156. /**
  5157. * @return {undefined}
  5158. */
  5159. function callback() {
  5160. var l = this;
  5161. off(this, callback);
  5162. this.queue = new QueueManager;
  5163. /** @type {number} */
  5164. this.batchSize = 10;
  5165. /** @type {number} */
  5166. this.delay = 1E3;
  5167. /** @type {null} */
  5168. this.timeoutId = null;
  5169. /** @type {null} */
  5170. this._currentBatchPromise = null;
  5171. /** @type {string} */
  5172. this._isTracking = AS_STATE.UNINITIALIZED;
  5173. var settings = self.getInstance();
  5174. settings.on("**", function() {
  5175. var parent = at.buildBaseResult().meta;
  5176. var payload = {
  5177. event : settings.event,
  5178. properties : callback({}, parent, {
  5179. action : settings.event
  5180. })
  5181. };
  5182. l.enqueue(payload);
  5183. });
  5184. }
  5185. return define(callback, [{
  5186. key : "enqueue",
  5187. value : function(data) {
  5188. if (this._isTracking !== AS_STATE.DISABLED) {
  5189. this.queue.enqueue(callback({}, data, {
  5190. timestamp : (new Date).toISOString()
  5191. }));
  5192. }
  5193. }
  5194. }, {
  5195. key : "startTracking",
  5196. value : function() {
  5197. return this._isTracking === AS_STATE.UNINITIALIZED && (this._isTracking = AS_STATE.ENABLED, this._timer()), this._currentBatchPromise;
  5198. }
  5199. }, {
  5200. key : "stopTracking",
  5201. value : function() {
  5202. /** @type {string} */
  5203. this._isTracking = AS_STATE.DISABLED;
  5204. clearTimeout(this.timeoutId);
  5205. }
  5206. }, {
  5207. key : "_timer",
  5208. value : function() {
  5209. var that = this;
  5210. return this._currentBatchPromise = this._trackBatch().catch(function() {
  5211. }).finally(function() {
  5212. /** @type {number} */
  5213. that.timeoutId = setTimeout(that._timer.bind(that), that.delay);
  5214. }), this._currentBatchPromise;
  5215. }
  5216. }, {
  5217. key : "_trackBatch",
  5218. value : function() {
  5219. var rs = this;
  5220. var list = this.queue.dequeue(this.batchSize);
  5221. return list.length ? screen.batch(list).catch(function(fnError) {
  5222. return rs.queue.prepend(list), Promise.reject(fnError);
  5223. }) : Promise.resolve();
  5224. }
  5225. }]), callback;
  5226. }();
  5227. var t;
  5228. var element;
  5229. var key;
  5230. var global;
  5231. var pt;
  5232. var Queue = {
  5233. getInstance : function() {
  5234. return haproxyManager || (haproxyManager = new MockHaproxyManager), haproxyManager;
  5235. },
  5236. reset : function() {
  5237. /** @type {null} */
  5238. haproxyManager = null;
  5239. }
  5240. };
  5241. var __WEBPACK_IMPORTED_MODULE_21_date_fns_max__ = $(211);
  5242. var __WEBPACK_IMPORTED_MODULE_21_date_fns_max___default = $.n(__WEBPACK_IMPORTED_MODULE_21_date_fns_max__);
  5243. var __WEBPACK_IMPORTED_MODULE_14_date_fns_set_hours__ = $(216);
  5244. var __WEBPACK_IMPORTED_MODULE_14_date_fns_set_hours___default = $.n(__WEBPACK_IMPORTED_MODULE_14_date_fns_set_hours__);
  5245. var _callbacks = {};
  5246. /** @type {number} */
  5247. var id = 0;
  5248. /** @type {boolean} */
  5249. var $isReady = false;
  5250. var that = t = {
  5251. clear : wrap("clear", function(o) {
  5252. if (void 0 !== o && "function" != typeof o) {
  5253. throw new Error("callback needs to be a function or undefined");
  5254. }
  5255. if (!pt) {
  5256. return global = {}, void o();
  5257. }
  5258. notify({
  5259. type : "clear"
  5260. }, o);
  5261. }),
  5262. clearSkipVisitData : wrap("clearSkipVisitData", function(listener) {
  5263. if (void 0 !== listener && "function" != typeof listener) {
  5264. throw new Error("callback needs to be a function or undefined");
  5265. }
  5266. if (pt) {
  5267. var newValue = _.getVisitData().visit || "";
  5268. var tmp = _.getVisitData().visitor || "";
  5269. notify({
  5270. type : "clear"
  5271. }, function() {
  5272. var refresh;
  5273. if (listener) {
  5274. /** @type {number} */
  5275. var currentColumn = 0;
  5276. /**
  5277. * @return {undefined}
  5278. */
  5279. refresh = function() {
  5280. if (3 === (currentColumn = currentColumn + 1)) {
  5281. listener();
  5282. }
  5283. };
  5284. }
  5285. t.setLocalStorage("visit", newValue, refresh);
  5286. t.setLocalStorage("visitor", tmp, refresh);
  5287. t.setSessionStorage("visitProcessed", "true", refresh);
  5288. });
  5289. } else {
  5290. listener();
  5291. }
  5292. }),
  5293. deleteSessionCookie : wrap("deleteSessionCookie", function(diff) {
  5294. if (pt) {
  5295. notify({
  5296. cors : res.experience.getCorsServer(),
  5297. type : "deleteSessionCookie"
  5298. }, diff);
  5299. } else {
  5300. diff();
  5301. }
  5302. }),
  5303. getCookieStorage : wrap("getCookieStorage", function(awsKey, diff) {
  5304. if (pt) {
  5305. notify({
  5306. type : "getCookie",
  5307. key : awsKey
  5308. }, diff);
  5309. } else {
  5310. diff();
  5311. }
  5312. }),
  5313. getLocalStorage : wrap("getLocalStorage", function(name, callback) {
  5314. if ("string" != typeof name) {
  5315. throw new Error("key needs to be a string");
  5316. }
  5317. if ("function" != typeof callback) {
  5318. throw new Error("callback must be a function");
  5319. }
  5320. if (pt) {
  5321. notify({
  5322. type : "get",
  5323. key : name
  5324. }, callback);
  5325. } else {
  5326. callback(global[name]);
  5327. }
  5328. }),
  5329. getSessionCookie : wrap("getSessionCookie", function(diff) {
  5330. if (pt) {
  5331. notify({
  5332. cors : res.experience.getCorsServer(),
  5333. type : "getSessionCookie"
  5334. }, diff);
  5335. } else {
  5336. diff();
  5337. }
  5338. }),
  5339. getSessionStorage : wrap("getSessionStorage", function(token, o) {
  5340. if ("string" != typeof token) {
  5341. throw new Error("key needs to be a string");
  5342. }
  5343. if ("function" != typeof o) {
  5344. throw new Error("callback must be a function");
  5345. }
  5346. if (pt) {
  5347. notify({
  5348. type : "getSession",
  5349. key : token
  5350. }, o);
  5351. } else {
  5352. o();
  5353. }
  5354. }),
  5355. initialize : function() {
  5356. getUploadHttpData();
  5357. global = {};
  5358. _callbacks = {};
  5359. /** @type {number} */
  5360. id = 0;
  5361. /** @type {boolean} */
  5362. pt = true;
  5363. /** @type {boolean} */
  5364. var e = false;
  5365. try {
  5366. win.window.localStorage.setItem("uniteLocalStorageCheck", "unite");
  5367. } catch (n) {
  5368. /** @type {boolean} */
  5369. e = true;
  5370. }
  5371. if (e || Initialization.getObject().dataset.disablesession || res.platform.isNative()) {
  5372. return pt = false, void($isReady = true);
  5373. }
  5374. /**
  5375. * @return {undefined}
  5376. */
  5377. (element = win.document.createElement("iframe")).onload = function() {
  5378. /** @type {boolean} */
  5379. $isReady = true;
  5380. };
  5381. win.window.addEventListener("message", onSuccess, false);
  5382. /** @type {string} */
  5383. element.id = "nike-unite-session";
  5384. /** @type {string} */
  5385. element.style.display = "none";
  5386. element.setAttribute("data-ignore", "");
  5387. /** @type {string} */
  5388. key = "https://unite.nike.com/";
  5389. if ("local" === res.experience.getEnvironment()) {
  5390. key = Initialization.getObject().dataset.baseurl;
  5391. }
  5392. /** @type {string} */
  5393. element.src = "".concat(key, "session.html");
  5394. if ("loading" !== win.document.readyState) {
  5395. win.document.body.appendChild(element);
  5396. } else {
  5397. win.document.addEventListener("DOMContentLoaded", function() {
  5398. if (element.parentNode !== win.document.body) {
  5399. win.document.body.appendChild(element);
  5400. }
  5401. });
  5402. }
  5403. },
  5404. isReady : function() {
  5405. return $isReady;
  5406. },
  5407. removeLocalStorage : wrap("removeLocalStorage", function(token, o) {
  5408. if ("string" != typeof token) {
  5409. throw new Error("key needs to be a string");
  5410. }
  5411. if (void 0 !== o && "function" != typeof o) {
  5412. throw new Error("callback needs to be a function or undefined");
  5413. }
  5414. if (!pt) {
  5415. return delete global[token], void o();
  5416. }
  5417. notify({
  5418. type : "remove",
  5419. key : token
  5420. }, o);
  5421. }),
  5422. removeSessionStorage : wrap("removeSessionStorage", function(token, o) {
  5423. if ("string" != typeof token) {
  5424. throw new Error("key needs to be a string");
  5425. }
  5426. if (void 0 !== o && "function" != typeof o) {
  5427. throw new Error("callback needs to be a function or undefined");
  5428. }
  5429. if (pt) {
  5430. notify({
  5431. type : "removeSession",
  5432. key : token
  5433. }, o);
  5434. } else {
  5435. o();
  5436. }
  5437. }),
  5438. searchLocalStorage : wrap("searchLocalStorage", function(selector, callback) {
  5439. if ("string" != typeof selector) {
  5440. throw new Error("pattern must be a string");
  5441. }
  5442. if ("function" != typeof callback) {
  5443. throw new Error("callback must be a function");
  5444. }
  5445. if (!pt) {
  5446. /** @type {!RegExp} */
  5447. var re = new RegExp(selector);
  5448. var buffer = {};
  5449. return forEach()(global, function(data, num) {
  5450. if (re.test(num)) {
  5451. buffer[num] = data;
  5452. }
  5453. }), void callback(buffer);
  5454. }
  5455. notify({
  5456. type : "search",
  5457. key : selector
  5458. }, callback);
  5459. }),
  5460. setLocalStorage : wrap("setLocalStorage", function(name, data, o) {
  5461. if ("string" != typeof name) {
  5462. throw new Error("key needs to be a string");
  5463. }
  5464. if ("string" != typeof data) {
  5465. throw new Error("value needs to be a string");
  5466. }
  5467. if (void 0 !== o && "function" != typeof o) {
  5468. throw new Error("callback needs to be a function or undefined");
  5469. }
  5470. if (!pt) {
  5471. return global[name] = data, void o();
  5472. }
  5473. notify({
  5474. type : "set",
  5475. key : name,
  5476. value : data
  5477. }, o);
  5478. }),
  5479. setSessionCookie : wrap("setSessionCookie", function(data, diff) {
  5480. if (pt) {
  5481. var options = {
  5482. cors : res.experience.getCorsServer(),
  5483. type : "setSessionCookie"
  5484. };
  5485. options.value = {
  5486. user_id : data.user_id,
  5487. access_token : data.access_token,
  5488. refresh_token : data.refresh_token,
  5489. expires_in : data.expires_in,
  5490. token_type : "bearer",
  5491. timestamp : data.timestamp,
  5492. clientId : data.clientId,
  5493. uxId : data.uxId
  5494. };
  5495. notify(options, diff);
  5496. } else {
  5497. diff();
  5498. }
  5499. }),
  5500. setSessionStorage : wrap("setSessionStorage", function(token, val, o) {
  5501. if ("string" != typeof token) {
  5502. throw new Error("key needs to be a string");
  5503. }
  5504. if ("string" != typeof val) {
  5505. throw new Error("value needs to be a string");
  5506. }
  5507. if (void 0 !== o && "function" != typeof o) {
  5508. throw new Error("callback needs to be a function or undefined");
  5509. }
  5510. if (pt) {
  5511. notify({
  5512. type : "setSession",
  5513. key : token,
  5514. value : val
  5515. }, o);
  5516. } else {
  5517. o();
  5518. }
  5519. }),
  5520. uninitialize : getUploadHttpData
  5521. };
  5522. var client = {
  5523. tokenRefresh : cb,
  5524. tokenRefreshWithPromise : function(value, opts) {
  5525. return new Promise(function(subnext, handler) {
  5526. cb(value, opts, subnext, function(notMessage, httpStatus) {
  5527. var data = {
  5528. httpStatus : httpStatus,
  5529. message : notMessage
  5530. };
  5531. switch(httpStatus) {
  5532. case 500:
  5533. /** @type {string} */
  5534. data.code = "SERVER_ERROR";
  5535. break;
  5536. default:
  5537. /** @type {string} */
  5538. data.code = "GENERIC";
  5539. }
  5540. handler(data);
  5541. }, function() {
  5542. return handler({
  5543. code : "TIMEOUT"
  5544. });
  5545. });
  5546. });
  5547. }
  5548. };
  5549. var jwt = {
  5550. tokenExchange : Item,
  5551. tokenExchangeWithPromise : function(href) {
  5552. return new Promise(function(unbindFinished, handler) {
  5553. Item(href, unbindFinished, function(notMessage, httpStatus) {
  5554. var data = {
  5555. httpStatus : httpStatus,
  5556. message : notMessage
  5557. };
  5558. switch(httpStatus) {
  5559. case 500:
  5560. /** @type {string} */
  5561. data.code = "SERVER_ERROR";
  5562. break;
  5563. default:
  5564. /** @type {string} */
  5565. data.code = "GENERIC";
  5566. }
  5567. handler(data);
  5568. }, function() {
  5569. return handler({
  5570. code : "TIMEOUT"
  5571. });
  5572. });
  5573. });
  5574. }
  5575. };
  5576. var trigger = $(217);
  5577. var triggerEvent = $.n(trigger);
  5578. var documentClickBindings = $(50);
  5579. var setAttribute = $.n(documentClickBindings);
  5580. var _window = $(1);
  5581. var $window = $.n(_window);
  5582. var storage = {
  5583. getUserState : makeRequest,
  5584. getUserStateWithPromise : function(host, success) {
  5585. return new $window.a(function(reset, callback) {
  5586. makeRequest(host, success, reset, function(result, httpStatus) {
  5587. callback({
  5588. code : "GENERIC",
  5589. httpStatus : httpStatus,
  5590. message : result.error_description
  5591. });
  5592. }, function() {
  5593. callback({
  5594. code : "TIMEOUT",
  5595. message : void 0
  5596. });
  5597. });
  5598. });
  5599. }
  5600. };
  5601. var server = {
  5602. getChinaProgressiveOverride : function(regexMask, opts) {
  5603. return "isLegallyCompliant" === regexMask && (normalize(opts) || has(opts)) ? {
  5604. override : true,
  5605. verifyMobilePhoneNumber : {
  5606. "supportedList!" : [{
  5607. country : "CN",
  5608. text : "\u4e2d\u56fd",
  5609. code : "86"
  5610. }],
  5611. rules : [{}, {}, {
  5612. "value!" : {
  5613. pattern : "^861[0-9]{10}$"
  5614. }
  5615. }]
  5616. }
  5617. } : {};
  5618. },
  5619. getUserState : filter,
  5620. doesCredentialPassProgressiveLoginStates : function(b) {
  5621. var localPartialName = res.experience.getExperience();
  5622. return new $window.a(function(scope, options) {
  5623. return get()(localPartialName, "settings.allowSwooshSSO") ? filter("isSwooshUser", b).then(function(n) {
  5624. if (n) {
  5625. scope(true);
  5626. } else {
  5627. register(b, scope, options);
  5628. }
  5629. }).catch(function(isCorporate) {
  5630. return options(isCorporate);
  5631. }) : register(b, scope, options);
  5632. });
  5633. }
  5634. };
  5635. var dependency = $(69);
  5636. var factory = $.n(dependency);
  5637. var me;
  5638. var context;
  5639. var collection = {
  5640. getUser : function(data, cb, fn, callback) {
  5641. if (!data || !data.access_token) {
  5642. throw new Error("tokenResult was not passed or passed as incomplete to getUser");
  5643. }
  5644. if ("function" != typeof cb) {
  5645. throw new Error("onSuccess function not passed to getUser");
  5646. }
  5647. if ("function" != typeof fn) {
  5648. throw new Error("onError function not passed to getUser");
  5649. }
  5650. if ("function" != typeof callback) {
  5651. throw new Error("onTimeout function not passed to getUser");
  5652. }
  5653. return debug(data, function(res) {
  5654. instance.setUserProfile(res, function() {
  5655. cb(res);
  5656. });
  5657. }, fn, callback);
  5658. },
  5659. getUserWithPolling : function(e, url, callback) {
  5660. /** @type {number} */
  5661. var GET_AUTH_URL_TIMEOUT = 2E3;
  5662. /** @type {number} */
  5663. var start = 18E4;
  5664. /** @type {number} */
  5665. var runLen = Date.now();
  5666. !function getASTMMessage(timeout) {
  5667. setTimeout(function() {
  5668. /** @type {number} */
  5669. var len = Date.now() - runLen;
  5670. if (len >= start) {
  5671. return callback({
  5672. code : "TIMEOUT"
  5673. });
  5674. }
  5675. if (2E3 === GET_AUTH_URL_TIMEOUT && len >= 3E4) {
  5676. /** @type {number} */
  5677. GET_AUTH_URL_TIMEOUT = 5E3;
  5678. }
  5679. debug(e, url, function() {
  5680. return getASTMMessage(GET_AUTH_URL_TIMEOUT);
  5681. }, function() {
  5682. return getASTMMessage(GET_AUTH_URL_TIMEOUT);
  5683. });
  5684. }, timeout);
  5685. }(0);
  5686. },
  5687. getUserWithPromise : function(data) {
  5688. return new $window.a(function(f_callBack, next) {
  5689. if (!(data && data.access_token)) {
  5690. next(new Error("tokenResult was not passed or passed as incomplete to getUser"));
  5691. }
  5692. debug(data, function(res) {
  5693. instance.setUserProfile(res, function() {
  5694. return f_callBack(res);
  5695. });
  5696. }, function(result, httpStatus) {
  5697. var originalError = {
  5698. httpStatus : httpStatus,
  5699. message : result.error_description
  5700. };
  5701. switch(httpStatus) {
  5702. case 500:
  5703. /** @type {string} */
  5704. originalError.code = "SERVER_ERROR";
  5705. break;
  5706. default:
  5707. /** @type {string} */
  5708. originalError.code = "GENERIC";
  5709. }
  5710. next(originalError);
  5711. }, function() {
  5712. next({
  5713. code : "TIMEOUT",
  5714. message : void 0
  5715. });
  5716. });
  5717. });
  5718. },
  5719. standardize : function(data) {
  5720. return function(obj) {
  5721. var opts = factory()(obj);
  5722. if (obj && obj.avatar && 0 !== obj.avatar.indexOf("https://")) {
  5723. var logData = entity.getEnvironmentVariables();
  5724. var level = logData.avatarBaseUrl;
  5725. /** @type {string} */
  5726. opts.avatar = "".concat(level, "/").concat(opts.avatar, "_100.jpg");
  5727. }
  5728. return opts;
  5729. }(data);
  5730. }
  5731. };
  5732. var $bbcTransport = self.getInstance();
  5733. utils.namespace("nike.unite.session");
  5734. /**
  5735. * @param {?} e
  5736. * @return {undefined}
  5737. */
  5738. window.nike.unite.session.getAccessLevel = function(e) {
  5739. me.getAccessLevel(e);
  5740. };
  5741. /**
  5742. * @param {?} language
  5743. * @param {?} type
  5744. * @return {undefined}
  5745. */
  5746. window.nike.unite.session.getVisitData = function(language, type) {
  5747. me.getVisitData(language, type);
  5748. };
  5749. /**
  5750. * @param {!Function} userId
  5751. * @param {!Function} callback
  5752. * @return {undefined}
  5753. */
  5754. window.nike.unite.session.getUserProfile = function(userId, callback) {
  5755. me.getUserProfile(userId, callback, false);
  5756. };
  5757. /**
  5758. * @param {!Function} id
  5759. * @param {!Function} meta
  5760. * @return {undefined}
  5761. */
  5762. window.nike.unite.session.getUserProfileWithForceRefresh = function(id, meta) {
  5763. me.getUserProfile(id, meta, true);
  5764. };
  5765. /**
  5766. * @param {!Function} url
  5767. * @param {!Function} callback
  5768. * @return {undefined}
  5769. */
  5770. window.nike.unite.session.getCredential = function(url, callback) {
  5771. me.getCredentialWithUserRefresh(url, callback);
  5772. };
  5773. /**
  5774. * @param {!Function} callback
  5775. * @return {undefined}
  5776. */
  5777. window.nike.unite.session.logout = function(callback) {
  5778. cookieWrapper.clearCookie("CART_SUMMARY");
  5779. $bbcTransport.emit(self.getEvent(["api", "logout"]));
  5780. me.logout(callback);
  5781. };
  5782. var isObject;
  5783. var close;
  5784. var instance = me = {
  5785. getAccessLevel : function(fn) {
  5786. me.validateSession(function() {
  5787. that.getLocalStorage("lastNikeLoginTimeWithSlCheck", function(scope) {
  5788. /** @type {string} */
  5789. var n = "D";
  5790. if (scope) {
  5791. /** @type {*} */
  5792. var $scope = JSON.parse(scope);
  5793. /** @type {number} */
  5794. var startMinutes = parseInt($scope.timestamp, 10);
  5795. /** @type {number} */
  5796. var difMinutes = Date.now() - startMinutes;
  5797. /** @type {string} */
  5798. n = difMinutes < 18E5 && $scope.nikeLogin ? "A" : difMinutes < 108E5 && $scope.nikeLogin ? "B" : "C";
  5799. }
  5800. fn(n);
  5801. });
  5802. });
  5803. },
  5804. getCredential : function(e, callback, fn) {
  5805. /**
  5806. * @param {string} val
  5807. * @return {?}
  5808. */
  5809. function get(val) {
  5810. return get()(val, "access_token") ? (val && fn && fn(val), e(val)) : e(null);
  5811. }
  5812. /**
  5813. * @param {string} t
  5814. * @return {undefined}
  5815. */
  5816. function init(t) {
  5817. if (t) {
  5818. that.getLocalStorage("".concat(res.experience.getBackendEnvironment(), ".user"), function(data) {
  5819. if (data) {
  5820. /** @type {*} */
  5821. t.user = JSON.parse(data);
  5822. }
  5823. server.doesCredentialPassProgressiveLoginStates(t).then(function(prop) {
  5824. return prop ? get(t) : me.logout(function() {
  5825. e(null);
  5826. });
  5827. }).catch(callback);
  5828. });
  5829. } else {
  5830. e(null);
  5831. }
  5832. }
  5833. /**
  5834. * @param {!Object} obj
  5835. * @return {undefined}
  5836. */
  5837. function handler(obj) {
  5838. var cid = cookieWrapper.getCookieValue("pr_id");
  5839. if (obj) {
  5840. /** @type {*} */
  5841. obj = JSON.parse(obj);
  5842. if (cid && cid !== obj.user_id) {
  5843. /** @type {null} */
  5844. obj = null;
  5845. that.clear();
  5846. }
  5847. }
  5848. if (obj) {
  5849. if (save(obj, 300)) {
  5850. me.performTokenRefresh(obj, init, callback);
  5851. } else {
  5852. get(obj);
  5853. }
  5854. } else {
  5855. me.getLatestCredential(function(q) {
  5856. if (q && cid && cid !== q.user_id) {
  5857. /** @type {null} */
  5858. q = null;
  5859. that.clear();
  5860. }
  5861. if (q) {
  5862. me.performTokenExchange(q, init, callback);
  5863. } else {
  5864. me.performSSOCookieExchange(init, callback);
  5865. }
  5866. });
  5867. }
  5868. }
  5869. if ("function" != typeof e) {
  5870. throw new Error("onSuccess must be a function");
  5871. }
  5872. if ("function" != typeof callback) {
  5873. throw new Error("onError must be a function");
  5874. }
  5875. if (void 0 !== fn && "function" != typeof fn) {
  5876. throw new Error("onNewAccessToken must be a function if provided");
  5877. }
  5878. me.validateSession(function() {
  5879. that.getLocalStorage("".concat(res.experience.getUxId(), ".credential"), handler);
  5880. });
  5881. },
  5882. getCredentialWithUserRefresh : function(url, callback) {
  5883. me.getCredential(url, callback, function(data) {
  5884. (context = context || collection).getUser(data, function() {
  5885. }, function() {
  5886. }, function() {
  5887. });
  5888. });
  5889. },
  5890. getLatestCredential : function(callback) {
  5891. if ("function" != typeof callback) {
  5892. throw new Error("Callback must be a function");
  5893. }
  5894. that.searchLocalStorage("^.+\\.credential$", function(latLngString) {
  5895. /** @type {null} */
  5896. var fullPath = null;
  5897. var parts = __WEBPACK_IMPORTED_MODULE_14_date_fns_set_hours___default()(latLngString, function(aInit, jsonString) {
  5898. try {
  5899. /** @type {*} */
  5900. var o = JSON.parse(jsonString);
  5901. if ("object" === type(o)) {
  5902. aInit.push(o);
  5903. }
  5904. } catch (e) {
  5905. }
  5906. }, []);
  5907. if ((parts = __WEBPACK_IMPORTED_MODULE_21_date_fns_max___default()(parts, function(e) {
  5908. return parseInt(e.timestamp, 10);
  5909. })).length > 0) {
  5910. fullPath = parts[parts.length - 1];
  5911. }
  5912. callback(fullPath);
  5913. });
  5914. },
  5915. getUserProfile : function(callback, cb, err) {
  5916. /**
  5917. * @param {boolean} suggested_filename
  5918. * @return {undefined}
  5919. */
  5920. function update(suggested_filename) {
  5921. !function(value, fn, cb) {
  5922. /** @type {string} */
  5923. var type = "UNKNOWN";
  5924. /**
  5925. * @param {boolean} asNew
  5926. * @return {undefined}
  5927. */
  5928. var save = function(asNew) {
  5929. if (true === asNew) {
  5930. /** @type {string} */
  5931. type = "EMPLOYEE";
  5932. } else {
  5933. if (false === asNew) {
  5934. /** @type {string} */
  5935. type = "DEFAULT_USER";
  5936. }
  5937. }
  5938. that.setLocalStorage("userType", type, function() {
  5939. fn(value, type);
  5940. });
  5941. };
  5942. me.getCredential(function(res) {
  5943. if (res) {
  5944. server.getUserState("isSwooshUser", {
  5945. access_token : res.access_token,
  5946. user : value
  5947. }).then(save).catch(cb);
  5948. } else {
  5949. fn(null);
  5950. }
  5951. }, cb);
  5952. }(suggested_filename, callback, cb);
  5953. }
  5954. /**
  5955. * @param {!Object} username
  5956. * @return {undefined}
  5957. */
  5958. function url(username) {
  5959. if (username) {
  5960. context.getUser(username, update, cb, cb);
  5961. } else {
  5962. callback(null);
  5963. }
  5964. }
  5965. /**
  5966. * @param {?} data
  5967. * @return {undefined}
  5968. */
  5969. function init(data) {
  5970. if (data) {
  5971. that.getLocalStorage("userType", function(exisObj) {
  5972. if (exisObj) {
  5973. callback(JSON.parse(data), exisObj);
  5974. } else {
  5975. update(JSON.parse(data));
  5976. }
  5977. });
  5978. } else {
  5979. me.getCredential(url, cb);
  5980. }
  5981. }
  5982. /**
  5983. * @param {?} e
  5984. * @return {undefined}
  5985. */
  5986. function save(e) {
  5987. if (Date.now() > parseInt(e, 10) + 36E5) {
  5988. me.getCredential(url, cb);
  5989. } else {
  5990. that.getLocalStorage("".concat(res.experience.getBackendEnvironment(), ".user"), init);
  5991. }
  5992. }
  5993. if (context = context || collection, "function" != typeof callback) {
  5994. throw new Error("onSuccess needs to be a function or undefined");
  5995. }
  5996. if ("function" != typeof cb) {
  5997. throw new Error("onError needs to be a function or undefined");
  5998. }
  5999. me.validateSession(function() {
  6000. if (err) {
  6001. me.getCredential(url, cb);
  6002. } else {
  6003. that.getLocalStorage("lastGetUserTimestamp", save);
  6004. }
  6005. });
  6006. },
  6007. getVisitData : function(ret, method) {
  6008. if ("function" != typeof ret) {
  6009. throw new Error("onSuccess needs to be a function or undefined");
  6010. }
  6011. if ("function" != typeof method) {
  6012. throw new Error("onError needs to be a function or undefined");
  6013. }
  6014. $bbcTransport.emit(self.getEvent(["api", "getVisitData"]));
  6015. that.getLocalStorage("visit", function(id_local) {
  6016. that.getLocalStorage("visitor", function(visitorDetail) {
  6017. if (id_local && visitorDetail) {
  6018. ret({
  6019. visit : parseInt(id_local, 10),
  6020. visitor : visitorDetail
  6021. });
  6022. } else {
  6023. method(null);
  6024. }
  6025. });
  6026. });
  6027. },
  6028. initialize : function() {
  6029. that.initialize();
  6030. },
  6031. isReady : function() {
  6032. return that.isReady();
  6033. },
  6034. validateSession : function(callback) {
  6035. that.getLocalStorage("sessionExpirationTimestamp", function(id_local) {
  6036. if (Date.now() > parseInt(id_local, 10)) {
  6037. cookieWrapper.clearCookie("CART_SUMMARY");
  6038. me.logout(callback);
  6039. } else {
  6040. that.getCookieStorage("unite_session_timestamp", function(startDate) {
  6041. if (startDate) {
  6042. /** @type {number} */
  6043. startDate = parseInt(startDate, 10);
  6044. }
  6045. me.getLatestCredential(function(endDate) {
  6046. if (startDate && endDate && startDate > parseInt(endDate.timestamp, 10)) {
  6047. that.clear(callback);
  6048. } else {
  6049. callback();
  6050. }
  6051. });
  6052. });
  6053. }
  6054. });
  6055. },
  6056. logout : function(callback) {
  6057. var elem = this;
  6058. if ("function" != typeof callback) {
  6059. throw new Error("callback needs to be a function");
  6060. }
  6061. me.logoutWithoutNetwork(function() {
  6062. that.deleteSessionCookie(function() {
  6063. $bbcTransport.emit(self.getEvent(["logout", "success"]));
  6064. /** @type {number} */
  6065. var arglen = arguments.length;
  6066. /** @type {!Array} */
  6067. var args = new Array(arglen);
  6068. /** @type {number} */
  6069. var i = 0;
  6070. for (; i < arglen; i++) {
  6071. args[i] = arguments[i];
  6072. }
  6073. callback.apply(elem, args);
  6074. });
  6075. });
  6076. },
  6077. logoutWithoutNetwork : function(slot) {
  6078. cookieWrapper.clearCookie("pr_id");
  6079. cookieWrapper.clearCookie("pr_data");
  6080. that.clear(slot);
  6081. },
  6082. logoutWithoutClearingVisitData : function(bufDesc) {
  6083. cookieWrapper.clearCookie("pr_id");
  6084. cookieWrapper.clearCookie("pr_data");
  6085. that.clearSkipVisitData(bufDesc);
  6086. },
  6087. performSSOCookieExchange : function(n, fn) {
  6088. that.getSessionCookie(function(t) {
  6089. if (t) {
  6090. me.performTokenExchange(t, function(d) {
  6091. if (d) {
  6092. var n = cookieWrapper.getCookieValue("pr_id");
  6093. if (n && n !== d.user_id) {
  6094. cookieWrapper.clearCookie("pr_id");
  6095. cookieWrapper.clearCookie("pr_data");
  6096. }
  6097. /** @type {number} */
  6098. var predicted_answer = Date.now() - 1086E4;
  6099. that.setLocalStorage("lastNikeLoginTimeWithSlCheck", JSON.stringify({
  6100. timestamp : "".concat(predicted_answer),
  6101. nikeLogin : false
  6102. }), function() {
  6103. n(d);
  6104. });
  6105. } else {
  6106. n(null);
  6107. }
  6108. }, fn);
  6109. } else {
  6110. n(null);
  6111. }
  6112. });
  6113. },
  6114. performTokenExchange : function(obj, node, callback) {
  6115. /**
  6116. * @param {!Object} profile
  6117. * @return {undefined}
  6118. */
  6119. var handler = function(profile) {
  6120. /**
  6121. * @param {?} success
  6122. * @param {string} body
  6123. * @return {undefined}
  6124. */
  6125. var callback = function(success, body) {
  6126. $bbcTransport.emit(self.getEvent(["token", "exchange", "failure"]));
  6127. if (body && "401" === body.toString()) {
  6128. me.logout(function() {
  6129. });
  6130. node(null);
  6131. } else {
  6132. callback(success, body);
  6133. }
  6134. };
  6135. jwt.tokenExchange(profile.access_token, function(result) {
  6136. result.user_id = profile.user_id;
  6137. $bbcTransport.emit(self.getEvent(["token", "exchange", "success"]));
  6138. me.setCredential(result, null, null, node);
  6139. }, callback, callback);
  6140. };
  6141. if (save(obj, 300)) {
  6142. me.performTokenRefresh(obj, function(newValue) {
  6143. if (newValue) {
  6144. handler(newValue);
  6145. } else {
  6146. node(null);
  6147. }
  6148. }, callback);
  6149. } else {
  6150. handler(obj);
  6151. }
  6152. },
  6153. performTokenRefresh : function(result, cmd, fn) {
  6154. /**
  6155. * @param {?} value
  6156. * @param {string} e
  6157. * @return {undefined}
  6158. */
  6159. var cb = function(value, e) {
  6160. $bbcTransport.emit(self.getEvent(["token", "refresh", "failure"]));
  6161. if (e && "401" === e.toString()) {
  6162. me.logout(function() {
  6163. });
  6164. cmd(null);
  6165. } else {
  6166. fn(value, e);
  6167. }
  6168. };
  6169. client.tokenRefresh(result.refresh_token, result.clientId, function(response) {
  6170. var resultPackages = result.uxId;
  6171. var id = result.clientId;
  6172. var options = {
  6173. oldAccessToken : result.access_token,
  6174. oldRefreshToken : result.refresh_token,
  6175. user_id : response.user_id,
  6176. access_token : response.access_token,
  6177. refresh_token : response.refresh_token,
  6178. expires_in : response.expires_in
  6179. };
  6180. $bbcTransport.emit(self.getEvent(["token", "refresh", "success"]), options);
  6181. me.setCredential(response, resultPackages, id, function(ch) {
  6182. cmd(ch);
  6183. });
  6184. }, cb, cb);
  6185. },
  6186. setCredential : function(value, obj, key, e) {
  6187. if ("function" != typeof e && void 0 !== e) {
  6188. throw new Error("onSuccess must be a function or undefined");
  6189. }
  6190. var level;
  6191. var id;
  6192. if (obj && key) {
  6193. /** @type {string} */
  6194. level = obj;
  6195. /** @type {string} */
  6196. id = key;
  6197. } else {
  6198. level = res.experience.getUxId();
  6199. id = res.experience.getClientId();
  6200. }
  6201. /** @type {string} */
  6202. value.timestamp = Math.floor(Date.now() / 1E3).toString();
  6203. value.clientId = id;
  6204. value.uxId = level;
  6205. that.setSessionCookie(value, function() {
  6206. that.setLocalStorage("".concat(level, ".credential"), JSON.stringify(value), function() {
  6207. if (e) {
  6208. e(value);
  6209. }
  6210. });
  6211. });
  6212. },
  6213. setStorageTimestamp : function(data) {
  6214. var currentAnime = data.keepMeLoggedIn;
  6215. var isLinked = data.isLinked;
  6216. return new $window.a(function(e) {
  6217. that.setLocalStorage("lastNikeLoginTimeWithSlCheck", JSON.stringify({
  6218. timestamp : Date.now().toString(),
  6219. nikeLogin : res.experience.getExperience().settings.setCookieOnLogin && !isLinked
  6220. }), function() {
  6221. if (false === currentAnime) {
  6222. /** @type {number} */
  6223. var default_favicon = Date.now() + 108E5;
  6224. that.setLocalStorage("sessionExpirationTimestamp", default_favicon.toString(), e);
  6225. } else {
  6226. e();
  6227. }
  6228. });
  6229. });
  6230. },
  6231. setUserProfile : function(data, profile) {
  6232. that.setLocalStorage("lastGetUserTimestamp", Date.now().toString(), function() {
  6233. that.setLocalStorage("".concat(res.experience.getBackendEnvironment(), ".user"), JSON.stringify(data), profile);
  6234. });
  6235. },
  6236. setVisitData : function(picker) {
  6237. that.getLocalStorage("visitor", function(newValue) {
  6238. that.getSessionStorage("visitProcessed", function(val) {
  6239. that.getLocalStorage("visit", function(tmp) {
  6240. tmp = function(l, r) {
  6241. return l && r ? r : !l && r ? (parseInt(r, 10) + 1).toString() : "1";
  6242. }(val, tmp);
  6243. if (!newValue) {
  6244. newValue = utils.generateUuid();
  6245. that.setLocalStorage("visitor", newValue, function() {
  6246. });
  6247. }
  6248. that.setSessionStorage("visitProcessed", "true", function() {
  6249. });
  6250. that.setLocalStorage("visit", tmp, function() {
  6251. });
  6252. var params = {
  6253. visit : tmp,
  6254. visitor : newValue
  6255. };
  6256. _.setVisitData(params);
  6257. win.window.nike.unite.sessionData = params;
  6258. picker();
  6259. });
  6260. });
  6261. });
  6262. }
  6263. };
  6264. var out = self.getInstance();
  6265. var last = self.FACEBOOKSDK_LOAD_SUCCESS;
  6266. var lexiconEdge = {
  6267. key : "facebook",
  6268. getUserData : function(url, username) {
  6269. var t = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}).token;
  6270. if (lexiconEdge.facebookSdkLoaded) {
  6271. log(url, username, t);
  6272. } else {
  6273. out.once(last, function() {
  6274. log(url, username, t);
  6275. });
  6276. }
  6277. },
  6278. getSocialData : function(callback, url, type) {
  6279. var t = type.token;
  6280. /**
  6281. * @param {string} result
  6282. * @return {undefined}
  6283. */
  6284. var response = function(result) {
  6285. callback({
  6286. user : result,
  6287. token : t,
  6288. provider : "facebook"
  6289. });
  6290. };
  6291. if (lexiconEdge.facebookSdkLoaded) {
  6292. log(response, url, t);
  6293. } else {
  6294. out.once(last, function() {
  6295. log(response, url, t);
  6296. });
  6297. }
  6298. },
  6299. getUserAndAuthData : function(trackingPeriod, value) {
  6300. /** @type {!Function} */
  6301. isObject = trackingPeriod;
  6302. /** @type {!Function} */
  6303. close = value;
  6304. if (lexiconEdge.facebookSdkLoaded) {
  6305. buildFriendSelector();
  6306. } else {
  6307. out.once(last, function() {
  6308. buildFriendSelector();
  6309. });
  6310. }
  6311. },
  6312. loadSDK : function() {
  6313. if (!lexiconEdge.facebookSdkLoaded) {
  6314. utils.script.load("https://connect.facebook.net/en_US/sdk.js", function() {
  6315. win.window.FB.init({
  6316. appId : res.experience.getEnvironmentVariables().facebookAppId,
  6317. version : "v2.8"
  6318. });
  6319. _this.dom.addClassToPlaceholders("facebookLoaded");
  6320. out.emit(last);
  6321. /** @type {boolean} */
  6322. lexiconEdge.facebookSdkLoaded = true;
  6323. }, "facebooks-jssdk");
  6324. }
  6325. },
  6326. facebookSdkLoaded : false
  6327. };
  6328. var api;
  6329. var onMessage;
  6330. var rejectingServer;
  6331. var canvasLayersManager = {
  6332. lineCodeExchange : function(val) {
  6333. return new $window.a(function(args, saveNotifs) {
  6334. var redirectUri = res.experience.getEnvironmentVariables().lineRedirectURL;
  6335. var data = {
  6336. code : val,
  6337. redirect_uri : redirectUri,
  6338. clientId : res.experience.getClientId()
  6339. };
  6340. /** @type {string} */
  6341. var THREAD_STARTED = "".concat(res.experience.getCorsServer(), "/lineCodeExchange").concat(utils.script.buildQueryString(data));
  6342. console.post(THREAD_STARTED, {}, args, function(result, httpStatus) {
  6343. saveNotifs(new error.ServerError({
  6344. code : error.codes.GENERIC,
  6345. message : result.error_description,
  6346. httpStatus : httpStatus
  6347. }));
  6348. }, function() {
  6349. saveNotifs(new error.ServerError({
  6350. code : error.codes.TIMEOUT
  6351. }));
  6352. });
  6353. });
  6354. }
  6355. };
  6356. var ObjectOperation = {
  6357. weChatCodeExchange : function(data) {
  6358. return new Promise(function(setTimeout, stepCallback) {
  6359. if ("string" != typeof data || !data) {
  6360. return stepCallback(new Error("code must be a non-empty string"));
  6361. }
  6362. var value = {
  6363. code : data,
  6364. wechatAppId : res.experience.getWeChatAppId()
  6365. };
  6366. /** @type {string} */
  6367. var o = "".concat(res.experience.getCorsServer(), "/weChatCodeExchange").concat(utils.script.buildQueryString(value));
  6368. return console.get(o, function(data) {
  6369. var code = data.errcode;
  6370. var errmsg = data.errmsg;
  6371. var error = test(data, ["errcode", "errmsg"]);
  6372. if (code) {
  6373. stepCallback(new error.ServerError({
  6374. code : error.codes.GENERIC,
  6375. httpStatus : 400,
  6376. message : {
  6377. errcode : code,
  6378. errmsg : errmsg
  6379. }
  6380. }));
  6381. } else {
  6382. setTimeout(callback({
  6383. errmsg : errmsg
  6384. }, error));
  6385. }
  6386. }, function(data) {
  6387. stepCallback(new error.ServerError({
  6388. code : error.codes.GENERIC,
  6389. httpStatus : 400,
  6390. message : data.errmsg
  6391. }));
  6392. }, function() {
  6393. stepCallback(new error.ServerError({
  6394. code : error.codes.TIMEOUT
  6395. }));
  6396. });
  6397. });
  6398. },
  6399. weChatMiniPhoneExchange : function() {
  6400. var params = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  6401. var c = params.code;
  6402. var t = params.data;
  6403. var iv = params.iv;
  6404. return new Promise(function(args, stepCallback) {
  6405. if ("string" == typeof c && c) {
  6406. if ("string" == typeof t && t) {
  6407. if ("string" == typeof iv && iv) {
  6408. var options = {
  6409. encryptedData : t,
  6410. code : c,
  6411. iv : iv
  6412. };
  6413. console.post("".concat(res.experience.getCorsServer(), "/weChatMiniPhoneExchange?clientId=").concat(res.experience.getClientId()), options, args, function(data, httpStatus) {
  6414. stepCallback(new error.ServerError({
  6415. code : error.codes.GENERIC,
  6416. message : data.errmsg,
  6417. httpStatus : httpStatus
  6418. }));
  6419. }, function() {
  6420. stepCallback(new error.ServerError({
  6421. code : error.codes.TIMEOUT
  6422. }));
  6423. });
  6424. } else {
  6425. stepCallback(new Error("iv must be a non-empty string"));
  6426. }
  6427. } else {
  6428. stepCallback(new Error("data must be a non-empty string"));
  6429. }
  6430. } else {
  6431. stepCallback(new Error("code must be a non-empty string"));
  6432. }
  6433. });
  6434. }
  6435. };
  6436. var a = {
  6437. facebookService : lexiconEdge,
  6438. lineService : api = {
  6439. getUserData : function(dispatch, callback) {
  6440. var data = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}).user;
  6441. var payload = void 0 === data ? null : data;
  6442. try {
  6443. dispatch(JSON.parse(payload));
  6444. } catch (isFirstTimeShow) {
  6445. callback(isFirstTimeShow);
  6446. }
  6447. },
  6448. getSocialData : function(resolve, reject) {
  6449. var name;
  6450. var e = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
  6451. var id = e.user;
  6452. var key = void 0 === id ? null : id;
  6453. var end = e.token;
  6454. var s = void 0 === end ? null : end;
  6455. var index = e.code;
  6456. var j = void 0 === index ? null : index;
  6457. if (s) {
  6458. try {
  6459. resolve({
  6460. user : JSON.parse(key),
  6461. provider : "line",
  6462. token : s
  6463. });
  6464. } catch (dismiss) {
  6465. reject(dismiss);
  6466. }
  6467. } else {
  6468. canvasLayersManager.lineCodeExchange(j).then(function(results) {
  6469. return name = results.access_token, api.getUserProfile(name);
  6470. }).then(function(pledge) {
  6471. resolve({
  6472. user : {
  6473. loginProviderUID : pledge.userId
  6474. },
  6475. provider : "line",
  6476. token : name
  6477. });
  6478. }).catch(reject);
  6479. }
  6480. },
  6481. getUserAndAuthData : function(trigger, cb) {
  6482. api.openLoginWindow().then(function(styleCode) {
  6483. return api.getSocialData(trigger, cb, {
  6484. code : styleCode
  6485. });
  6486. }).catch(cb);
  6487. },
  6488. getUserProfile : function(username) {
  6489. return new $window.a(function(n, saveNotifs) {
  6490. console.get("https://api.line.me/v2/profile", n, function(result, httpStatus) {
  6491. saveNotifs(new error.ServerError({
  6492. code : error.codes.GENERIC,
  6493. message : result.error_description,
  6494. httpStatus : httpStatus
  6495. }));
  6496. }, function() {
  6497. saveNotifs(new error.ServerError({
  6498. code : error.codes.TIMEOUT
  6499. }));
  6500. }, {
  6501. Authorization : "Bearer ".concat(username)
  6502. }, null);
  6503. });
  6504. },
  6505. key : "line",
  6506. openLoginWindow : function() {
  6507. return new $window.a(function(fail, obtainGETData) {
  6508. var credentials = res.experience.getEnvironmentVariables();
  6509. var params = {
  6510. response_type : "code",
  6511. client_id : credentials.lineAppId,
  6512. redirect_uri : credentials.lineRedirectURL,
  6513. state : utils.generateUuid(),
  6514. scope : "openid profile"
  6515. };
  6516. rejectingServer = utils.window.openCenteredPopUp("https://access.line.me/oauth2/v2.1/authorize".concat(utils.script.buildQueryString(params)), "LineLoginWindow");
  6517. if (!onMessage) {
  6518. /**
  6519. * @param {!Object} task
  6520. * @return {undefined}
  6521. */
  6522. onMessage = function(task) {
  6523. var err;
  6524. try {
  6525. /** @type {*} */
  6526. err = JSON.parse(task.data);
  6527. } catch (val) {
  6528. obtainGETData(val);
  6529. }
  6530. if (rejectingServer && "lineSocialLogin" === err.type) {
  6531. rejectingServer.close();
  6532. window.removeEventListener("message", onMessage);
  6533. /** @type {null} */
  6534. onMessage = null;
  6535. /** @type {null} */
  6536. rejectingServer = null;
  6537. fail(err.code);
  6538. }
  6539. };
  6540. window.addEventListener("message", onMessage, false);
  6541. }
  6542. });
  6543. },
  6544. reset : function() {
  6545. /** @type {null} */
  6546. rejectingServer = null;
  6547. if (onMessage) {
  6548. window.removeEventListener("message", onMessage);
  6549. }
  6550. /** @type {null} */
  6551. onMessage = null;
  6552. }
  6553. },
  6554. sinaService : {
  6555. getSocialData : function(resolve, url) {
  6556. var req = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
  6557. var model = req.user;
  6558. var data = void 0 === model ? null : model;
  6559. var _token = req.token;
  6560. try {
  6561. resolve({
  6562. user : JSON.parse(data),
  6563. provider : "sina",
  6564. token : _token
  6565. });
  6566. } catch (FULL_PAGE) {
  6567. url(FULL_PAGE);
  6568. }
  6569. },
  6570. getUserData : function(dispatch, callback) {
  6571. var data = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}).user;
  6572. var payload = void 0 === data ? null : data;
  6573. try {
  6574. dispatch(JSON.parse(payload));
  6575. } catch (isFirstTimeShow) {
  6576. callback(isFirstTimeShow);
  6577. }
  6578. },
  6579. key : "sina"
  6580. },
  6581. qqService : {
  6582. getSocialData : function(resolve, url) {
  6583. var req = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
  6584. var model = req.user;
  6585. var data = void 0 === model ? null : model;
  6586. var _token = req.token;
  6587. try {
  6588. resolve({
  6589. user : JSON.parse(data),
  6590. provider : "qq",
  6591. token : _token
  6592. });
  6593. } catch (FULL_PAGE) {
  6594. url(FULL_PAGE);
  6595. }
  6596. },
  6597. getUserData : function(dispatch, callback) {
  6598. var data = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}).user;
  6599. var payload = void 0 === data ? null : data;
  6600. try {
  6601. dispatch(JSON.parse(payload));
  6602. } catch (isFirstTimeShow) {
  6603. callback(isFirstTimeShow);
  6604. }
  6605. },
  6606. key : "qq"
  6607. },
  6608. wechatService : {
  6609. key : "wechat",
  6610. getSocialData : function(callback, fn, o) {
  6611. if (function(options) {
  6612. var name = options.token;
  6613. var data = options.user;
  6614. var right = options.code;
  6615. return !!(name && data && data.loginProviderUID || right);
  6616. }(o)) {
  6617. var name = o.provider;
  6618. var t = o.token;
  6619. var from = o.user;
  6620. var a = o.code;
  6621. if (t) {
  6622. callback({
  6623. provider : "wechat",
  6624. token : t,
  6625. user : from
  6626. });
  6627. } else {
  6628. ObjectOperation.weChatCodeExchange(a).then(function(data) {
  6629. callback({
  6630. provider : name,
  6631. token : data.access_token,
  6632. user : {
  6633. loginProviderUID : data.openid
  6634. }
  6635. });
  6636. }).catch(function(responce) {
  6637. fn(responce);
  6638. });
  6639. }
  6640. } else {
  6641. fn({
  6642. message : "INVALID TOKEN DATA"
  6643. });
  6644. }
  6645. }
  6646. }
  6647. };
  6648. var atap = {
  6649. init : function() {
  6650. win.nike.unite.views.join = {
  6651. destroy : config.views.join.destroy,
  6652. getFormData : config.views.join.getFormData,
  6653. submit : config.views.join.submit,
  6654. getComponentById : config.views.join.getComponentById,
  6655. get values() {
  6656. return config.views.join.values;
  6657. },
  6658. set values(textures) {
  6659. return config.views.join.values = textures, config.views.join.values;
  6660. },
  6661. render : function(type) {
  6662. win.nike.unite.api.join(type);
  6663. },
  6664. get eventHandler() {
  6665. return config.views.join.eventHandler ? config.views.join.eventHandler() : null;
  6666. },
  6667. set eventHandler(eventHandler) {
  6668. return config.views.join.eventHandler = eventHandler, config.views.join.eventHandler;
  6669. },
  6670. get model() {
  6671. return config.views.join.model;
  6672. },
  6673. get rendered() {
  6674. return config.views.join.rendered;
  6675. },
  6676. set rendered(result) {
  6677. return config.views.join.rendered = result, config.views.join.rendered;
  6678. },
  6679. get name() {
  6680. return config.views.join.name;
  6681. },
  6682. set name(awsKey) {
  6683. return config.views.join.name = awsKey, config.views.join.name;
  6684. },
  6685. get components() {
  6686. return config.views.join.components;
  6687. },
  6688. set components(pathComponents) {
  6689. return config.views.join.components = pathComponents, config.views.join.components;
  6690. },
  6691. get placeholder() {
  6692. return config.views.join.placeholder;
  6693. },
  6694. set placeholder(val) {
  6695. return config.views.join.placeholder = val, config.views.join.placeholder;
  6696. }
  6697. };
  6698. }
  6699. };
  6700. var tile = $(221);
  6701. var p = $.n(tile);
  6702. var two2three = {
  6703. AT : "Austria",
  6704. BE : "Belgium",
  6705. BG : "Bulgaria",
  6706. HR : "Croatia",
  6707. CY : "Cyprus",
  6708. CZ : "Czech Republic",
  6709. DK : "Denmark",
  6710. EE : "Estonia",
  6711. FI : "Finland",
  6712. FR : "France",
  6713. DE : "Germany",
  6714. GR : "Greece",
  6715. HU : "Hungary",
  6716. IE : "Ireland, Republic of (EIRE)",
  6717. IT : "Italy",
  6718. LV : "Latvia",
  6719. LT : "Lithuania",
  6720. LU : "Luxembourg",
  6721. MT : "Malta",
  6722. NL : "Netherlands",
  6723. PL : "Poland",
  6724. PT : "Portugal",
  6725. RO : "Romania",
  6726. SK : "Slovakia",
  6727. SI : "Slovenia",
  6728. ES : "Spain",
  6729. SE : "Sweden",
  6730. GB : "United Kingdom"
  6731. };
  6732. /** @type {string} */
  6733. var username = "sq";
  6734. var cache = {
  6735. UNSET : {
  6736. allowPerformance : null,
  6737. allowMarketing : null
  6738. },
  6739. 0 : {
  6740. allowPerformance : false,
  6741. allowMarketing : false
  6742. },
  6743. 1 : {
  6744. allowPerformance : true,
  6745. allowMarketing : false
  6746. },
  6747. 2 : {
  6748. allowPerformance : false,
  6749. allowMarketing : true
  6750. },
  6751. 3 : {
  6752. allowPerformance : true,
  6753. allowMarketing : true
  6754. }
  6755. };
  6756. /** @type {number} */
  6757. var a_second = 3650;
  6758. var jimple = {
  6759. getPreferences : include,
  6760. setPreferences : function(value, value_2) {
  6761. /** @type {number} */
  6762. var template = 0;
  6763. for (; template <= 3; template = template + 1) {
  6764. if (cache[template].allowPerformance === value && cache[template].allowMarketing === value_2) {
  6765. p.a.set(username, template, {
  6766. expires : a_second,
  6767. domain : ".nike.com"
  6768. });
  6769. break;
  6770. }
  6771. }
  6772. },
  6773. isCookieRequiredCountry : isMatch,
  6774. isMarketingAllowed : function() {
  6775. return include().allowMarketing;
  6776. },
  6777. isPerformanceAllowed : function() {
  6778. return include().allowPerformance;
  6779. },
  6780. isPreferenceSet : function() {
  6781. return void 0 !== p.a.get(username);
  6782. }
  6783. };
  6784. var method = {};
  6785. traverse(method, {
  6786. pollForPrivacyPreferences : function(thisObj) {
  6787. var n = res.localization.getCountry();
  6788. setTimeout(function() {
  6789. if (jimple.isCookieRequiredCountry(n)) {
  6790. if (jimple.isPreferenceSet()) {
  6791. if (jimple.isMarketingAllowed() || jimple.isPerformanceAllowed()) {
  6792. thisObj.startTracking();
  6793. }
  6794. } else {
  6795. thisObj.stopTracking();
  6796. }
  6797. } else {
  6798. thisObj.startTracking();
  6799. }
  6800. method.pollForPrivacyPreferences(thisObj);
  6801. }, 1E3);
  6802. }
  6803. });
  6804. var first;
  6805. var initializeCheckTimer;
  6806. var effect = method;
  6807. var label = self.getInstance();
  6808. var opt = self.EXPERIENCE_LOAD_SUCCESS;
  6809. var trackend = self.APP_LOAD_SUCCESS;
  6810. var grid = {
  6811. finalizeLoad : function() {
  6812. if (!first) {
  6813. throw new Error("Cannot finalize loading when no experience has been loaded!");
  6814. }
  6815. rightcol.reportNikeUniteInit("success");
  6816. /** @type {boolean} */
  6817. win.window.nike.unite.isInitialized = true;
  6818. label.emit(trackend);
  6819. instance.setVisitData(function() {
  6820. var event = win.document.createEvent("Event");
  6821. event.initEvent("nikeUniteInit", true, true);
  6822. win.window.dispatchEvent(event);
  6823. if ("function" == typeof window.nikeUniteInit) {
  6824. window.nikeUniteInit();
  6825. }
  6826. });
  6827. },
  6828. getExperienceForLocale : function(value, srcNode) {
  6829. var settings = Initialization.getObject();
  6830. var __filename = res.experience.getEnvironment();
  6831. /** @type {string} */
  6832. var dst = "".concat(settings.dataset.baseurl, "unite/experiences/").concat(settings.dataset.experienceVersion, "/");
  6833. if (!("local" !== __filename && settings.dataset.experienceVersion)) {
  6834. /** @type {string} */
  6835. dst = "".concat(settings.dataset.baseurl, "experiences/");
  6836. }
  6837. var i = settings.dataset.uxid || "com.nike.unite";
  6838. /**
  6839. * @param {!Event} event
  6840. * @return {undefined}
  6841. */
  6842. utils.script.load("".concat(dst + i, "/").concat(value, ".js"), srcNode).onerror = function(event) {
  6843. event.target.parentNode.removeChild(event.target);
  6844. utils.script.load("".concat("https://unite.nike.com/getExperience?version=").concat(settings.dataset.experienceVersion, "&uxId=").concat(i, "&language=").concat(value.split("_")[0], "&country=").concat(value.split("_")[1]), srcNode);
  6845. };
  6846. },
  6847. getRawExperienceObject : function() {
  6848. return first;
  6849. },
  6850. initialLoad : function() {
  6851. var data = Initialization.getObject().dataset;
  6852. var thisObj = Queue.getInstance();
  6853. if (res.experience.isAnalyticsEnabled()) {
  6854. effect.pollForPrivacyPreferences(thisObj);
  6855. } else {
  6856. thisObj.stopTracking();
  6857. }
  6858. var newNodeLists = data.theme || (first || {
  6859. settings : {}
  6860. }).settings.theme || "unite";
  6861. /** @type {string} */
  6862. var url = "".concat($.p, "styles/").concat(newNodeLists, "Theme/import.css");
  6863. /** @type {boolean} */
  6864. var o = true;
  6865. utils.loadCss(url, function() {
  6866. !function() {
  6867. if (res.platform.isMobile()) {
  6868. options.helpers.dom.addClassToPlaceholders("unite-mobile-web");
  6869. }
  6870. options.helpers.dom.addClassToPlaceholders("theme_".concat(newNodeLists));
  6871. var i = data.defaultview || "appLanding";
  6872. if ("none" !== i) {
  6873. if (!win.nike.unite.views[i]) {
  6874. throw new Error('Unable to render unknown view "'.concat(i, '"'));
  6875. }
  6876. win.nike.unite.views[i].render();
  6877. }
  6878. /** @type {boolean} */
  6879. o = false;
  6880. }();
  6881. });
  6882. clearInterval(initializeCheckTimer);
  6883. /** @type {number} */
  6884. initializeCheckTimer = setInterval(function() {
  6885. if (instance.isReady() && !o) {
  6886. clearInterval(initializeCheckTimer);
  6887. grid.finalizeLoad();
  6888. }
  6889. }, 100);
  6890. },
  6891. loadExperience : activate,
  6892. reset : function() {
  6893. /** @type {boolean} */
  6894. win.window.nike.unite.isInitialized = false;
  6895. first = void 0;
  6896. clearInterval(initializeCheckTimer);
  6897. },
  6898. start : function() {
  6899. /** @type {boolean} */
  6900. win.window.nike.unite.isInitialized = false;
  6901. utils.namespace("nike.unite.experience");
  6902. /** @type {function(!Object): undefined} */
  6903. win.window.nike.unite.experience.load = activate;
  6904. var template = Initialization.getObject();
  6905. var n = res.localization.sanitizeLocaleString(template.dataset.locale);
  6906. grid.getExperienceForLocale(n);
  6907. }
  6908. };
  6909. var adapter = grid;
  6910. /**
  6911. * @param {!Object} data
  6912. * @param {string} type
  6913. * @return {?}
  6914. */
  6915. var setup = function(data, type) {
  6916. var defaults = {
  6917. classes : ["nike-unite-country", type],
  6918. selectId : utils.generateUuid(),
  6919. options : [],
  6920. name : type,
  6921. supportedList : {},
  6922. value : res.localization.getCountry()
  6923. };
  6924. /** @type {!Array} */
  6925. (data = _this.models.merge(defaults, data)).options = [];
  6926. forEach()(data.supportedList, function(yes_label, command_module_id) {
  6927. if ("XX" !== command_module_id) {
  6928. data.options.push({
  6929. label : yes_label,
  6930. value : command_module_id
  6931. });
  6932. }
  6933. });
  6934. if ("XX" === res.localization.getCountry()) {
  6935. data.options.push({
  6936. label : "",
  6937. value : ""
  6938. });
  6939. }
  6940. data.options.sort(function(e, n) {
  6941. var key_u = e.label.toLowerCase();
  6942. var key_v = n.label.toLowerCase();
  6943. return key_u.localeCompare(key_v);
  6944. });
  6945. /** @type {boolean} */
  6946. data.suppressBlank = true;
  6947. if (data.hidden) {
  6948. /** @type {string} */
  6949. data.style = "display: none;";
  6950. }
  6951. var el = select(data, type);
  6952. return el.handlers.push({
  6953. target : data.selectId,
  6954. event : "change",
  6955. handler : function() {
  6956. var item = win.nike.unite.currentView();
  6957. if (item.view.eventHandler) {
  6958. item.view.eventHandler("countryChange", item.name);
  6959. } else {
  6960. var self = adapter;
  6961. var t = utils.formData.getFormDataByComponent();
  6962. /** @type {string} */
  6963. var language = "".concat(res.localization.getLanguage(), "_").concat(el.getValue());
  6964. res.localization.setLocale(language);
  6965. self.getExperienceForLocale(language, function() {
  6966. var value = res.experience.getExperience().settings;
  6967. var group = (value = void 0 === value ? {} : value).enableMobileJoin;
  6968. if (!("join" !== item.name && "mobileJoin" !== item.name)) {
  6969. /** @type {string} */
  6970. item.name = group ? "mobileJoin" : "join";
  6971. }
  6972. win.nike.unite.destroyAllViews();
  6973. win.nike.unite.views[item.name].render(t);
  6974. });
  6975. }
  6976. }
  6977. }), el;
  6978. };
  6979. var Users;
  6980. /**
  6981. * @param {string} type
  6982. * @param {string} obj
  6983. * @return {?}
  6984. */
  6985. var setupPageInit = function(type, obj) {
  6986. var data = {
  6987. id : utils.generateUuid(),
  6988. tip : "",
  6989. inputId : utils.generateUuid(),
  6990. classes : ["nike-unite-date-input", obj],
  6991. name : obj,
  6992. value : ""
  6993. };
  6994. var params = _this.models.merge(data, type);
  6995. return {
  6996. html : scope.dateInput(params),
  6997. getValue : function() {
  6998. return win.document.getElementById(params.inputId).value;
  6999. },
  7000. model : params,
  7001. handlers : [{
  7002. target : params.inputId,
  7003. event : "render",
  7004. handler : function(data) {
  7005. var n = win.document.getElementById(params.id);
  7006. _this.dom.checkIfEmpty(data);
  7007. if (data.value) {
  7008. _this.validate(n, params.rules, data.value, "submit");
  7009. }
  7010. }
  7011. }, {
  7012. target : params.inputId,
  7013. event : "blur",
  7014. handler : function(item) {
  7015. var e = win.document.getElementById(params.id);
  7016. _this.dom.checkIfEmpty(item);
  7017. _this.state.onBlur(e);
  7018. _this.validate(e, params.rules, item.target.value, "blur");
  7019. }
  7020. }, {
  7021. target : params.inputId,
  7022. event : "change",
  7023. handler : function(item) {
  7024. var n = win.document.getElementById(params.id);
  7025. _this.dom.checkIfEmpty(item);
  7026. _this.validate(n, params.rules, item.target.value, "change");
  7027. }
  7028. }, {
  7029. target : params.inputId,
  7030. event : "focus",
  7031. handler : function() {
  7032. var e = win.document.getElementById(params.id);
  7033. _this.state.onFocus(e);
  7034. }
  7035. }]
  7036. };
  7037. };
  7038. var hover = $(70);
  7039. var dispatch = $.n(hover);
  7040. var User = Users = {
  7041. checkEmail : function(email, done, test, options) {
  7042. var data = {
  7043. clientId : res.experience.getClientId(),
  7044. email : email
  7045. };
  7046. /** @type {string} */
  7047. var o = "".concat(res.experience.getCorsServer(), "/checkEmailService").concat(utils.script.buildQueryString(data));
  7048. console.get(o, function(result) {
  7049. done(result && !dispatch()(result, "emailonly"));
  7050. }, function(e, snapshotOut) {
  7051. if (404 === snapshotOut) {
  7052. done(false);
  7053. } else {
  7054. test(e, snapshotOut);
  7055. }
  7056. }, options);
  7057. },
  7058. checkEmailWithPromise : function(email) {
  7059. return new Promise(function(saveNotifs, negater) {
  7060. Users.checkEmail(email, function(notifications) {
  7061. saveNotifs(notifications);
  7062. }, function(apiResponseError, httpStatus) {
  7063. var aerisCode;
  7064. switch(httpStatus) {
  7065. case 500:
  7066. /** @type {string} */
  7067. aerisCode = error.codes.SERVER_ERROR;
  7068. break;
  7069. default:
  7070. /** @type {string} */
  7071. aerisCode = error.codes.GENERIC;
  7072. }
  7073. negater(new error.ServerError({
  7074. code : aerisCode,
  7075. message : apiResponseError.message,
  7076. httpStatus : httpStatus
  7077. }));
  7078. }, function() {
  7079. negater(new error.ServerError({
  7080. code : error.codes.TIMEOUT
  7081. }));
  7082. });
  7083. });
  7084. }
  7085. };
  7086. /**
  7087. * @param {string} obj
  7088. * @param {string} val
  7089. * @param {!Object} options
  7090. * @return {?}
  7091. */
  7092. var list = function(obj, val, options) {
  7093. var defaults = {
  7094. id : utils.generateUuid(),
  7095. duplicateEmailId : utils.generateUuid(),
  7096. disabled : false,
  7097. tip : "",
  7098. keyboardType : "text",
  7099. focus : "",
  7100. inputId : utils.generateUuid(),
  7101. classes : ["nike-unite-text-input", val],
  7102. name : val,
  7103. value : ""
  7104. };
  7105. var data = _this.models.merge(defaults, obj);
  7106. return data.value = utils.sanitize.htmlEntities(data.value), {
  7107. html : scope.emailAddress(data),
  7108. model : data,
  7109. getValue : function() {
  7110. return split()(win.document.getElementById(data.inputId).value);
  7111. },
  7112. handlers : [{
  7113. target : data.inputId,
  7114. event : "render",
  7115. handler : function(obj) {
  7116. var e = win.document.getElementById(data.id);
  7117. _this.dom.checkIfEmpty(obj);
  7118. if (obj.value && _this.validate(e, data.rules, obj.value, "submit") && options.model.duplicateEmailCheck) {
  7119. User.checkEmail(obj.value, function(canCreateDiscussions) {
  7120. if (canCreateDiscussions) {
  7121. /** @type {string} */
  7122. win.document.getElementById(data.duplicateEmailId).style.display = "block";
  7123. }
  7124. }, function() {
  7125. }, function() {
  7126. });
  7127. }
  7128. if (data.disabled) {
  7129. obj.setAttribute("disabled", "disabled");
  7130. }
  7131. }
  7132. }, {
  7133. target : data.inputId,
  7134. event : "blur",
  7135. handler : function(item) {
  7136. var e = win.document.getElementById(data.id);
  7137. _this.dom.checkIfEmpty(item);
  7138. _this.state.onBlur(e);
  7139. if (_this.validate(e, data.rules, item.target.value, "blur") && options.model.duplicateEmailCheck) {
  7140. User.checkEmail(item.target.value, function(canCreateDiscussions) {
  7141. if (canCreateDiscussions) {
  7142. /** @type {string} */
  7143. win.document.getElementById(data.duplicateEmailId).style.display = "block";
  7144. }
  7145. }, function() {
  7146. }, function() {
  7147. });
  7148. }
  7149. }
  7150. }, {
  7151. target : data.inputId,
  7152. event : "change",
  7153. handler : function(item) {
  7154. _this.dom.checkIfEmpty(item);
  7155. }
  7156. }, {
  7157. target : data.inputId,
  7158. event : "focus",
  7159. handler : function() {
  7160. var e = win.document.getElementById(data.id);
  7161. _this.state.onFocus(e);
  7162. /** @type {string} */
  7163. win.document.getElementById(data.duplicateEmailId).style.display = "none";
  7164. }
  7165. }]
  7166. };
  7167. };
  7168. /**
  7169. * @param {string} data
  7170. * @param {string} obj
  7171. * @return {?}
  7172. */
  7173. var errorHandler = function(data, obj) {
  7174. var meta = {
  7175. id : utils.generateUuid(),
  7176. inputId : utils.generateUuid(),
  7177. classes : ["nike-unite-error-message", obj]
  7178. };
  7179. return data = _this.models.merge(meta, data), {
  7180. html : scope.errorMessage(data),
  7181. handlers : [{
  7182. target : data.id,
  7183. event : "render",
  7184. handler : function() {
  7185. /** @type {(Element|null)} */
  7186. var p = document.getElementById(data.id);
  7187. if (data.messages && data.messages.length > 0) {
  7188. _this.state.onNotEmpty(p);
  7189. } else {
  7190. _this.state.onEmpty(p);
  7191. }
  7192. }
  7193. }]
  7194. };
  7195. };
  7196. /**
  7197. * @param {!Object} options
  7198. * @param {?} events
  7199. * @return {?}
  7200. */
  7201. var attach = function(options, events) {
  7202. var conf = {
  7203. id : utils.generateUuid(),
  7204. hiddenId : utils.generateUuid(),
  7205. dismissId : utils.generateUuid(),
  7206. classes : ["nike-unite-error-panel", events],
  7207. hiddenCode : "",
  7208. hiddenResult : ""
  7209. };
  7210. return (options = _this.models.merge(conf, options)).blocking && (options.classes += " blocked"), {
  7211. html : scope.errorPanel(options),
  7212. handlers : [{
  7213. target : options.id,
  7214. event : "render",
  7215. handler : function(target, data) {
  7216. var bottom = win.document.getElementById(options.dismissId);
  7217. if (bottom) {
  7218. var document = data.placeholder;
  7219. /**
  7220. * @param {!Event} e
  7221. * @return {undefined}
  7222. */
  7223. var _callbackToReposition = function menuNextClickHandler(e) {
  7224. if (!(e.target !== document && e.currentTarget !== bottom)) {
  7225. data.destroy();
  7226. document.removeEventListener("click", menuNextClickHandler);
  7227. e.stopPropagation();
  7228. }
  7229. };
  7230. bottom.addEventListener("click", _callbackToReposition, false);
  7231. document.addEventListener("click", _callbackToReposition, false);
  7232. }
  7233. }
  7234. }, {
  7235. target : options.id,
  7236. event : "click",
  7237. handler : function(e) {
  7238. var boxChild = win.document.getElementById(options.hiddenId);
  7239. if (boxChild) {
  7240. if ("none" === boxChild.style.display) {
  7241. /** @type {string} */
  7242. boxChild.style.display = "block";
  7243. } else {
  7244. /** @type {string} */
  7245. boxChild.style.display = "none";
  7246. }
  7247. }
  7248. e.stopPropagation();
  7249. }
  7250. }, {
  7251. target : options.dismissId,
  7252. event : "click",
  7253. handler : function() {
  7254. if (options.buttonLink && "" !== options.buttonLink.trim()) {
  7255. win.window.open(options.buttonLink);
  7256. }
  7257. }
  7258. }]
  7259. };
  7260. };
  7261. var preTriggerMap = {
  7262. open : function(options, name) {
  7263. var defaults = {
  7264. classes : ["nike-unite-form", name],
  7265. hiddenFields : options.hiddenFields,
  7266. name : name
  7267. };
  7268. return (options = _this.models.merge(defaults, options)).id = "nike-unite-".concat(options.id), {
  7269. html : scope.form(options),
  7270. model : options,
  7271. handlers : [{
  7272. target : options.id,
  7273. event : "keyup",
  7274. handler : function(e) {
  7275. if (13 === (e.which || e.keyCode)) {
  7276. /** @type {(Event|null)} */
  7277. var event = document.createEvent("Event");
  7278. event.initEvent("submit", true, true);
  7279. win.document.getElementById(options.id).dispatchEvent(event);
  7280. }
  7281. }
  7282. }]
  7283. };
  7284. },
  7285. close : function() {
  7286. return {
  7287. html : "</form>",
  7288. handlers : []
  7289. };
  7290. }
  7291. };
  7292. /**
  7293. * @param {!Object} id
  7294. * @param {string} category
  7295. * @return {?}
  7296. */
  7297. var addPoi = function(id, category) {
  7298. var params = {
  7299. id : utils.generateUuid(),
  7300. inputId : utils.generateUuid(),
  7301. classes : ["nike-unite-gender-buttons", category],
  7302. name : category,
  7303. value : ""
  7304. };
  7305. /** @type {!Array} */
  7306. var handlers = [];
  7307. var data = _this.models.merge(params, id);
  7308. return forEach()(data.options, function(canCreateDiscussions, index) {
  7309. var item = data.options[index];
  7310. item.listItemId = utils.generateUuid();
  7311. /** @type {string} */
  7312. item.cssClass = data.value === item.value ? "checked" : "";
  7313. handlers.push({
  7314. target : item.listItemId,
  7315. event : "click",
  7316. handler : function() {
  7317. var s = win.document.getElementById(data.inputId);
  7318. if (!s.value || s.value !== item.value) {
  7319. s.value = item.value;
  7320. var colorTools = win.document.querySelector(".nike-unite-gender-buttons.".concat(category, " .checked"));
  7321. if (colorTools) {
  7322. /** @type {string} */
  7323. colorTools.className = "";
  7324. }
  7325. /** @type {string} */
  7326. win.document.getElementById(item.listItemId).className = "checked";
  7327. var r = win.document.getElementById(data.id);
  7328. _this.validate(r, data.rules, item.value, "change");
  7329. }
  7330. }
  7331. });
  7332. }), {
  7333. getValue : function() {
  7334. return win.document.getElementById(data.inputId).value;
  7335. },
  7336. html : scope.genderButtons(data),
  7337. handlers : handlers,
  7338. model : data
  7339. };
  7340. };
  7341. /**
  7342. * @param {!Object} callback
  7343. * @param {string} name
  7344. * @return {?}
  7345. */
  7346. var isHidden = function(callback, name) {
  7347. var data = {
  7348. inputId : utils.generateUuid(),
  7349. classes : ["nike-unite-hidden", name],
  7350. name : name,
  7351. value : ""
  7352. };
  7353. data.id = data.inputId;
  7354. var params = _this.models.merge(data, callback);
  7355. return {
  7356. getValue : function() {
  7357. return split()(win.document.getElementById(params.inputId).value);
  7358. },
  7359. html : scope.hidden(params),
  7360. handlers : [],
  7361. model : params
  7362. };
  7363. };
  7364. /**
  7365. * @param {!Object} data
  7366. * @param {string} day
  7367. * @return {?}
  7368. */
  7369. var draw = function(data, day) {
  7370. /**
  7371. * @param {string} value
  7372. * @param {!Object} count
  7373. * @param {string} callback
  7374. * @return {undefined}
  7375. */
  7376. function cb(value, count, callback) {
  7377. var t = win.document.getElementById(data.id);
  7378. var obj = win.document.querySelector(".nike-unite-internationalMobileNumber .sanitized-mobile-number");
  7379. obj.value = value.substring(1) + count;
  7380. obj.setAttribute("value", obj.value);
  7381. _this.validate(t, data.rules, obj.value, callback);
  7382. }
  7383. var city;
  7384. var country;
  7385. /** @type {number} */
  7386. var lastTrackInfoUrl = 0;
  7387. var nfc_ndef_discovered = res.localization.getCountry();
  7388. /** @type {string} */
  7389. var disabled = data.supportedList && 1 === data.supportedList.length ? "disabled" : "";
  7390. each()(data.supportedList, function(options, trackInfoUrl) {
  7391. return "US" !== options.country && options.country !== nfc_ndef_discovered || (country = options.country, city = "+".concat(options.code), lastTrackInfoUrl = trackInfoUrl, options.country !== nfc_ndef_discovered);
  7392. });
  7393. if (!(country && city)) {
  7394. if (data.supportedList && data.supportedList[0]) {
  7395. /** @type {string} */
  7396. city = "+".concat(data.supportedList[0].code);
  7397. country = data.supportedList[0].country;
  7398. }
  7399. }
  7400. var defaults = {
  7401. id : utils.generateUuid(),
  7402. selectDivClasses : ["select-div"],
  7403. spanCodeClasses : ["code"],
  7404. spanCodeId : utils.generateUuid(),
  7405. selectDivId : utils.generateUuid(),
  7406. inputId : utils.generateUuid(),
  7407. selectId : utils.generateUuid(),
  7408. classes : ["nike-unite-internationalMobileNumber", day],
  7409. name : day,
  7410. country : country,
  7411. code : city,
  7412. index : lastTrackInfoUrl,
  7413. disabled : disabled,
  7414. value : "",
  7415. sanitizedMobileNumberValue : ""
  7416. };
  7417. return data = _this.models.merge(defaults, data), {
  7418. getValue : function() {
  7419. var path = win.document.getElementById(data.inputId).value;
  7420. var bContentType = win.document.getElementById(data.selectId);
  7421. var code = bContentType.options[bContentType.selectedIndex].dataset.code;
  7422. var file = path ? code.substring(1) + path : path;
  7423. return {
  7424. mobileNumber : path,
  7425. phoneCountry : data.country,
  7426. sanitizedNumber : file,
  7427. phoneNumberCountryPrefix : code.substring(1)
  7428. };
  7429. },
  7430. validate : function() {
  7431. var n = win.document.getElementById(data.id);
  7432. var msg = win.document.getElementById(data.inputId).value;
  7433. var bContentType = win.document.getElementById(data.selectId);
  7434. var code = bContentType.options[bContentType.selectedIndex].dataset.code;
  7435. var message = msg ? code.substring(1) + msg : msg;
  7436. return _this.validate(n, data.rules, message, "submit");
  7437. },
  7438. html : scope.internationalMobileNumber(data),
  7439. handlers : [{
  7440. target : data.id,
  7441. event : "render",
  7442. handler : function() {
  7443. var n;
  7444. if ("object" === type(data.value) && data.value.countryCode && data.value.phoneNumber) {
  7445. n = data.value.phoneNumber;
  7446. each()(data.supportedList, function(opts, index) {
  7447. if (opts.code === data.value.countryCode) {
  7448. data.value.countryCode = opts.country;
  7449. /** @type {string} */
  7450. data.code = "+".concat(opts.code);
  7451. /** @type {number} */
  7452. data.index = index;
  7453. }
  7454. });
  7455. } else {
  7456. n = "object" === type(data.value) ? "" : data.value;
  7457. }
  7458. win.document.getElementById(data.selectId).selectedIndex = data.index;
  7459. win.document.getElementById(data.spanCodeId).innerHTML = data.code;
  7460. win.document.getElementById(data.inputId).value = n;
  7461. if (n) {
  7462. cb(data.code, n, "render");
  7463. }
  7464. }
  7465. }, {
  7466. target : data.selectId,
  7467. event : "change",
  7468. handler : function(obj) {
  7469. var o = obj.currentTarget;
  7470. var snippet = o.options[o.selectedIndex].dataset.code;
  7471. var i = win.document.getElementById(data.inputId).value;
  7472. win.document.getElementById(data.spanCodeId).innerHTML = snippet;
  7473. if (i) {
  7474. cb(snippet, i, "change");
  7475. }
  7476. }
  7477. }, {
  7478. target : data.inputId,
  7479. event : "blur",
  7480. handler : function(item) {
  7481. if (item.target.value) {
  7482. var e = win.document.getElementById(data.id);
  7483. var cmbProvince = win.document.getElementById(data.selectId);
  7484. var snippet = cmbProvince.options[cmbProvince.selectedIndex].dataset.code;
  7485. _this.dom.checkIfEmpty(item);
  7486. _this.state.onBlur(e);
  7487. cb(snippet, item.target.value, "blur");
  7488. }
  7489. }
  7490. }, {
  7491. target : data.inputId,
  7492. event : "change",
  7493. handler : function(item) {
  7494. _this.dom.checkIfEmpty(item);
  7495. }
  7496. }, {
  7497. target : data.inputId,
  7498. event : "focus",
  7499. handler : function() {
  7500. var e = win.document.getElementById(data.id);
  7501. _this.state.onFocus(e);
  7502. }
  7503. }],
  7504. model : data
  7505. };
  7506. };
  7507. /**
  7508. * @param {string} type
  7509. * @param {string} data
  7510. * @return {?}
  7511. */
  7512. var selectItem = function(type, data) {
  7513. var a = _this.models.merge({
  7514. classes : []
  7515. }, type);
  7516. var result = reset(a, data);
  7517. return result.handlers.push({
  7518. target : a.id,
  7519. event : "render",
  7520. handler : function(item) {
  7521. if (res.platform.isNative()) {
  7522. /** @type {string} */
  7523. item.style.display = "none";
  7524. }
  7525. }
  7526. }), result;
  7527. };
  7528. var sign_access_token = {
  7529. create : insert,
  7530. createWithPromise : function(category, cb, key) {
  7531. return new $window.a(function(b, callback) {
  7532. insert(category, cb, key, b, function(result, httpStatus) {
  7533. switch(httpStatus) {
  7534. case 500:
  7535. callback({
  7536. code : "SERVER_ERROR",
  7537. httpStatus : httpStatus,
  7538. message : result.error_description
  7539. });
  7540. break;
  7541. default:
  7542. callback({
  7543. code : "GENERIC",
  7544. httpStatus : httpStatus,
  7545. message : result.error_description
  7546. });
  7547. }
  7548. }, function() {
  7549. callback({
  7550. code : "TIMEOUT",
  7551. message : void 0
  7552. });
  7553. });
  7554. });
  7555. }
  7556. };
  7557. var app = {
  7558. start : function(req) {
  7559. var data = req.loginResponse;
  7560. return data.user = req.getUserResponse, (new $window.a(function(data) {
  7561. instance.logoutWithoutClearingVisitData(data);
  7562. })).then(function() {
  7563. /** @type {!Array} */
  7564. var pingPromises = [];
  7565. return pingPromises.push(new $window.a(function(value) {
  7566. instance.setCredential(data, null, null, value);
  7567. })), req.getUserResponse && pingPromises.push(new $window.a(function(props) {
  7568. instance.setUserProfile(req.getUserResponse, props);
  7569. })), pingPromises.push(instance.setStorageTimestamp(req.passedInData)), $window.a.all(pingPromises);
  7570. }).then(function() {
  7571. return res.experience.getExperience().settings.setCookieOnLogin ? sign_access_token.createWithPromise(req.loginResponse.access_token, req.passedInData.keepMeLoggedIn, req.passedInData.grant_type ? req.passedInData.grant_type : "password") : $window.a.resolve();
  7572. }).then(function() {
  7573. return utils.namespace("nike.unite.tokens"), win.nike.unite.tokens.access = data.access_token, win.nike.unite.tokens.refresh = data.refresh_token, res.experience.setUuId(data.user_id), data.uuid = data.user_id, $window.a.resolve(data);
  7574. }).catch(function(e) {
  7575. return new $window.a(function(n, enterEventHandler) {
  7576. instance.logout(function() {
  7577. enterEventHandler(e);
  7578. });
  7579. });
  7580. });
  7581. }
  7582. };
  7583. var user = {
  7584. getAgreement : function(token) {
  7585. return new $window.a(function(saveNotifs) {
  7586. var data = {
  7587. uxid : res.experience.getUxId(),
  7588. agreementKey : "programTerms",
  7589. requestedFields : "type,manual,nuid,link",
  7590. timePeriod : 365
  7591. };
  7592. /** @type {string} */
  7593. var r = "".concat(res.experience.getEnvironmentVariables().acceptanceServiceUrl, "/query").concat(utils.script.buildQueryString(data));
  7594. console.get(r, function() {
  7595. saveNotifs(true);
  7596. }, function() {
  7597. saveNotifs(false);
  7598. }, function() {
  7599. saveNotifs(false);
  7600. }, {
  7601. Authorization : token,
  7602. "X-Nike-AppId" : data.uxid
  7603. });
  7604. });
  7605. },
  7606. postAgreement : function(newToken, store, commitDetails) {
  7607. return new $window.a(function(callback) {
  7608. /** @type {string} */
  7609. var i = "".concat(res.experience.getEnvironmentVariables().acceptanceServiceUrl, "JWT");
  7610. var data = {
  7611. agreement : "programTerms",
  7612. country : res.localization.getCountry(),
  7613. language : res.localization.getLanguage(),
  7614. status : true,
  7615. type : "agreement",
  7616. uxid : res.experience.getUxId(),
  7617. nuid : commitDetails
  7618. };
  7619. console.post(i, data, callback, callback, callback, {
  7620. Authorization : newToken,
  7621. "Content-Type" : "application/json",
  7622. "X-Nike-AppId" : data.uxid,
  7623. UpmId : store
  7624. });
  7625. });
  7626. }
  7627. };
  7628. var tabs = $(225);
  7629. var storeParam = $.n(tabs);
  7630. var structuredTypes = {
  7631. emailAddress : "emails.primary.email",
  7632. dateOfBirth : "dob.date",
  7633. phoneCountry : "verifiedPhoneCountry",
  7634. mobileNumber : "verifiedphone",
  7635. shoppingGender : "preferences.shoppingGender"
  7636. };
  7637. var Analytics = {
  7638. applyUserUpdates : function(fn, stackScraper) {
  7639. var cb = bind(fn);
  7640. return require()({}, stackScraper, cb);
  7641. },
  7642. updateUser : function(e, username) {
  7643. /** @type {string} */
  7644. var t = "".concat(res.experience.getCorsServer(), "/updateUser");
  7645. var r = bind(e);
  7646. return setAttribute()(r) ? $window.a.resolve() : new $window.a(function(returnResultsFn, nrcEventEmitter) {
  7647. console.post(t, r, function() {
  7648. returnResultsFn(r);
  7649. }, function(convertedObject, httpStatus) {
  7650. var error = {
  7651. httpStatus : httpStatus,
  7652. message : convertedObject.errors[0].message
  7653. };
  7654. switch(httpStatus) {
  7655. case 409:
  7656. if (99812 === convertedObject.errors[0].code) {
  7657. /** @type {string} */
  7658. error.code = "DUPLICATE_EMAIL";
  7659. } else {
  7660. if (99113 === convertedObject.errors[0].code) {
  7661. /** @type {string} */
  7662. error.code = "DUPLICATE_SCREENNAME";
  7663. } else {
  7664. /** @type {string} */
  7665. error.code = "DUPLICATE";
  7666. }
  7667. }
  7668. break;
  7669. case 500:
  7670. /** @type {string} */
  7671. error.code = "SERVER_ERROR";
  7672. break;
  7673. default:
  7674. /** @type {string} */
  7675. error.code = "GENERIC";
  7676. }
  7677. nrcEventEmitter(error);
  7678. }, function() {
  7679. nrcEventEmitter(new error.ServerError({
  7680. code : "TIMEOUT"
  7681. }));
  7682. }, {
  7683. Authorization : "Bearer ".concat(username),
  7684. "Content-Type" : "application/json"
  7685. });
  7686. });
  7687. }
  7688. };
  7689. var data = {};
  7690. var el;
  7691. var values = {
  7692. start : function() {
  7693. var attachment = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
  7694. var options = arguments.length > 1 ? arguments[1] : void 0;
  7695. var keys = build(attachment);
  7696. var array = res.experience.getExperience().settings.progressive.states;
  7697. return data.getUserResponse = options.getUserResponse, data.loginResponse = options.loginResponse, data.forceRender = options.forceRender, function init(i) {
  7698. return i ? (data.currentState = i, data.layout = array[i].layout, data.endpoint = array[i].endpoint, function() {
  7699. win.nike.unite.destroyAllViews();
  7700. var layout = config.views.progressive.model.layout;
  7701. return config.views.progressive.model.layout = data.layout, data.forceRender ? resolve() : remove().then(function() {
  7702. return config.views.progressive.model.layout = layout, $window.a.resolve();
  7703. }).catch(function(rejectionValue) {
  7704. return $window.a.reject(rejectionValue);
  7705. });
  7706. }().then(function() {
  7707. return init(keys.shift());
  7708. }).catch(function(rejectionValue) {
  7709. return $window.a.reject(rejectionValue);
  7710. })) : $window.a.resolve();
  7711. }(keys.shift());
  7712. }
  7713. };
  7714. var _p = utils.namespace("nike.unite.spinner");
  7715. /** @type {function(): ?} */
  7716. _p.show = show;
  7717. /** @type {function(): undefined} */
  7718. _p.hide = hide;
  7719. var Offcanvas = {
  7720. show : show,
  7721. hide : hide
  7722. };
  7723. var state = self.getInstance();
  7724. var path = self.LOGIN_FAILURE;
  7725. var canvas = self.LOGIN_SUCCESS;
  7726. var trackstart = self.LOGOUT_SUCCESS;
  7727. var f = self.UI_LOGIN_CONTINUITY_NOT_ME_CLICK;
  7728. var emitMsgName = self.TOKEN_REFRESH_SUCCESS;
  7729. var opts = utils.namespace("nike.unite", win.window);
  7730. var result = {};
  7731. /**
  7732. * @return {undefined}
  7733. */
  7734. var onStreamError = function() {
  7735. Offcanvas.hide();
  7736. nike.unite.destroyAllViews();
  7737. config.views.login.render();
  7738. state.emit(path, {
  7739. loginContinuity : true
  7740. });
  7741. };
  7742. /**
  7743. * @param {string} userid
  7744. * @param {string} token
  7745. * @param {string} refreshToken
  7746. * @param {string} albumId
  7747. * @param {string} options
  7748. * @return {undefined}
  7749. */
  7750. utils.namespace("external", opts).loginContinuity = function(userid, token, refreshToken, albumId, options) {
  7751. if (function(b, rawReferenceToken, refreshToken, albumId) {
  7752. if (!b) {
  7753. throw new Error("loginContinuity requires uuid parameter");
  7754. }
  7755. if (!rawReferenceToken) {
  7756. throw new Error("loginContinuity requires accessToken parameter");
  7757. }
  7758. if (!refreshToken) {
  7759. throw new Error("loginContinuity requires refreshToken parameter");
  7760. }
  7761. if (!albumId) {
  7762. throw new Error("loginContinuity requires expiresIn parameter");
  7763. }
  7764. }(userid, token, refreshToken, albumId), result.loginResponse = {
  7765. user_id : userid,
  7766. access_token : token,
  7767. refresh_token : refreshToken,
  7768. expires_in : albumId
  7769. }, config.views.login.render(), "com.nike.swoosh" !== res.experience.getUxId()) {
  7770. Offcanvas.show();
  7771. /**
  7772. * @param {!Object} options
  7773. * @return {undefined}
  7774. */
  7775. var render = function(options) {
  7776. options = collection.standardize(options);
  7777. /** @type {!Object} */
  7778. result.getUserResponse = options;
  7779. nike.unite.destroyAllViews();
  7780. var response = ((options = options || {}).name || {}).latin || {};
  7781. var regInfo = (options.emails || {}).primary || {};
  7782. config.views.loginContinuity.render({
  7783. userFirstName : response.given || "",
  7784. loginContinuityDialog : {
  7785. userFirstName : response.given || "",
  7786. userLastName : response.family || "",
  7787. avatarImage : options.avatar || "",
  7788. email : regInfo.email || ""
  7789. }
  7790. });
  7791. };
  7792. if (options) {
  7793. client.tokenRefreshWithPromise(refreshToken, options).then(function(response) {
  7794. result.loginResponse.access_token = response.access_token;
  7795. var options = {
  7796. oldAccessToken : token,
  7797. oldRefreshToken : refreshToken,
  7798. user_id : response.user_id,
  7799. access_token : response.access_token,
  7800. refresh_token : response.refresh_token,
  7801. expires_in : response.expires_in
  7802. };
  7803. return state.emit(emitMsgName, options), collection.getUserWithPromise(response);
  7804. }).catch(function() {
  7805. return collection.getUserWithPromise(result.loginResponse);
  7806. }).then(render).catch(onStreamError);
  7807. } else {
  7808. collection.getUserWithPromise(result.loginResponse).then(render).catch(onStreamError);
  7809. }
  7810. }
  7811. };
  7812. /**
  7813. * @param {?} config
  7814. * @return {?}
  7815. */
  7816. var IrcLogger = function(config) {
  7817. var data = {
  7818. id : utils.generateUuid(),
  7819. continueButtonId : utils.generateUuid(),
  7820. notMeLinkId : utils.generateUuid(),
  7821. classes : ["nike-unite-login-continuity", "nike-unite-submit-button"],
  7822. avatarImage : "/images/swoosh_black.png",
  7823. email : "",
  7824. userFirstName : "",
  7825. userLastName : "",
  7826. continueText : "",
  7827. notMeText : ""
  7828. };
  7829. return config = _this.models.merge(data, config), {
  7830. html : scope.loginContinuityDialog(config),
  7831. handlers : [{
  7832. target : config.continueButtonId,
  7833. event : "click",
  7834. handler : function() {
  7835. Offcanvas.show();
  7836. jwt.tokenExchangeWithPromise(result.loginResponse ? result.loginResponse.access_token : null).then(function(glPosition) {
  7837. return Offcanvas.hide(), result.loginResponse = glPosition, values.start(res.experience.getExperience().settings.progressive.contexts.login, {
  7838. loginResponse : result.loginResponse,
  7839. getUserResponse : result.getUserResponse
  7840. });
  7841. }).then(function() {
  7842. return result.passedInData = {
  7843. keepMeLoggedIn : true
  7844. }, app.start(result);
  7845. }).then(function() {
  7846. nike.unite.destroyAllViews();
  7847. /** @type {boolean} */
  7848. result.loginResponse.loginContinuity = true;
  7849. /** @type {boolean} */
  7850. result.loginResponse.validAccessToken = true;
  7851. state.emit(canvas, result.loginResponse);
  7852. }).catch(onStreamError);
  7853. }
  7854. }, {
  7855. target : config.notMeLinkId,
  7856. event : "click",
  7857. handler : function() {
  7858. nike.unite.destroyAllViews();
  7859. config.views.login.render();
  7860. state.emit(trackstart);
  7861. state.emit(f);
  7862. }
  7863. }]
  7864. };
  7865. };
  7866. /**
  7867. * @param {!Object} item
  7868. * @param {string} kind
  7869. * @return {?}
  7870. */
  7871. var handler = function(item, kind) {
  7872. var defaults = {
  7873. id : utils.generateUuid(),
  7874. tip : "",
  7875. keyboardType : "password",
  7876. inputId : utils.generateUuid(),
  7877. classes : ["password", "nike-unite-text-input", kind],
  7878. value : "",
  7879. buttonId : utils.generateUuid(),
  7880. buttonLabel : item.showLabel,
  7881. name : kind
  7882. };
  7883. (item = _this.models.merge(defaults, item)).value = utils.sanitize.htmlEntities(item.value);
  7884. var htmlInfo = scope.passwordCreateInput(item);
  7885. /** @type {boolean} */
  7886. var i = false;
  7887. /** @type {string} */
  7888. var eventType = res.platform.isIOS() ? "touchstart" : "mousedown";
  7889. return {
  7890. getValue : function() {
  7891. return win.document.getElementById(item.inputId).value;
  7892. },
  7893. html : htmlInfo,
  7894. handlers : [{
  7895. target : item.inputId,
  7896. event : "render",
  7897. handler : function(data) {
  7898. var t = win.document.getElementById(item.id);
  7899. _this.dom.checkIfEmpty(data);
  7900. if (data.value) {
  7901. _this.validate(t, item.rules, data.value, "submit");
  7902. }
  7903. }
  7904. }, {
  7905. target : item.buttonId,
  7906. event : eventType,
  7907. handler : function() {
  7908. /** @type {boolean} */
  7909. i = true;
  7910. var listItemElement = win.document.getElementById(item.buttonId);
  7911. var t = win.document.getElementById(item.inputId);
  7912. if ("password" === t.getAttribute("type")) {
  7913. listItemElement.innerHTML = item.hideLabel;
  7914. listItemElement.classList.remove("nike-unite-reveal-button");
  7915. listItemElement.classList.add("nike-unite-hide-button");
  7916. t.setAttribute("type", "text");
  7917. } else {
  7918. listItemElement.innerHTML = item.showLabel;
  7919. listItemElement.classList.remove("nike-unite-hide-button");
  7920. listItemElement.classList.add("nike-unite-reveal-button");
  7921. t.setAttribute("type", "password");
  7922. }
  7923. }
  7924. }, {
  7925. target : item.inputId,
  7926. event : "blur",
  7927. handler : function(data) {
  7928. if (i) {
  7929. /** @type {boolean} */
  7930. i = false;
  7931. var elem = this;
  7932. elem.focus();
  7933. setTimeout(function() {
  7934. if (document.activeElement !== elem) {
  7935. var width = elem.value;
  7936. elem.focus();
  7937. /** @type {string} */
  7938. elem.value = " ";
  7939. elem.value = width;
  7940. }
  7941. });
  7942. } else {
  7943. var e = win.document.getElementById(item.id);
  7944. _this.dom.checkIfEmpty(data);
  7945. _this.state.onBlur(e);
  7946. _this.validate(e, item.rules, data.target.value, "blur");
  7947. }
  7948. }
  7949. }, {
  7950. target : item.inputId,
  7951. event : "focus",
  7952. handler : function() {
  7953. var e = win.document.getElementById(item.id);
  7954. _this.state.onFocus(e);
  7955. }
  7956. }, {
  7957. target : item.inputId,
  7958. event : "keyup",
  7959. handler : function(data) {
  7960. var t = win.document.getElementById(item.id);
  7961. _this.dom.checkIfEmpty(data);
  7962. _this.validate(t, item.rules, data.target.value, "keyup");
  7963. }
  7964. }],
  7965. model : item
  7966. };
  7967. };
  7968. /**
  7969. * @param {!Object} o
  7970. * @param {string} val
  7971. * @return {?}
  7972. */
  7973. var transform = function(o, val) {
  7974. var params = {
  7975. id : utils.generateUuid(),
  7976. disabled : false,
  7977. tip : "",
  7978. help : "",
  7979. keyboardType : "text",
  7980. autoCompleteType : "off",
  7981. focus : "",
  7982. inputId : utils.generateUuid(),
  7983. classes : ["nike-unite-text-input", val],
  7984. name : val,
  7985. value : ""
  7986. };
  7987. var data = _this.models.merge(params, o);
  7988. return data.value = utils.sanitize.htmlEntities(data.value), data.hasHelp = data.help ? "hasHelp" : "", {
  7989. html : scope.textInput(data),
  7990. model : data,
  7991. getValue : function() {
  7992. return split()(get()(win.document.getElementById(data.inputId), "value", null));
  7993. },
  7994. handlers : [{
  7995. target : data.inputId,
  7996. event : "render",
  7997. handler : function(obj) {
  7998. var n = win.document.getElementById(data.id);
  7999. _this.dom.checkIfEmpty(obj);
  8000. if (obj.value) {
  8001. _this.validate(n, data.rules, obj.value, "submit");
  8002. }
  8003. if (data.disabled) {
  8004. obj.setAttribute("disabled", "disabled");
  8005. }
  8006. }
  8007. }, {
  8008. target : data.inputId,
  8009. event : "blur",
  8010. handler : function(item) {
  8011. var e = win.document.getElementById(data.id);
  8012. _this.dom.checkIfEmpty(item);
  8013. _this.state.onBlur(e);
  8014. _this.validate(e, data.rules, item.target.value, "blur");
  8015. }
  8016. }, {
  8017. target : data.inputId,
  8018. event : "change",
  8019. handler : function(item) {
  8020. _this.dom.checkIfEmpty(item);
  8021. }
  8022. }, {
  8023. target : data.inputId,
  8024. event : "focus",
  8025. handler : function() {
  8026. var e = win.document.getElementById(data.id);
  8027. _this.state.onFocus(e);
  8028. }
  8029. }]
  8030. };
  8031. };
  8032. /**
  8033. * @param {?} i
  8034. * @param {string} n
  8035. * @return {?}
  8036. */
  8037. var showModelsTab = function(i, n) {
  8038. var options = {
  8039. classes : ["nike-unite-password-input", n],
  8040. keyboardType : "password",
  8041. autoCompleteType : "current-password",
  8042. value : "",
  8043. name : n
  8044. };
  8045. return i = _this.models.merge(options, i), transform(i, n);
  8046. };
  8047. /**
  8048. * @param {!Object} obj
  8049. * @param {string} x
  8050. * @return {?}
  8051. */
  8052. var createPoint = function(obj, x) {
  8053. obj.inputId = utils.generateUuid();
  8054. obj = _this.models.merge({
  8055. classes : []
  8056. }, obj);
  8057. var p = transform(obj, x);
  8058. return p.handlers.push({
  8059. target : obj.inputId,
  8060. event : "render",
  8061. handler : function(data) {
  8062. instance.getUserProfile(function(scope) {
  8063. data.value = scope.emails && scope.emails.primary ? scope.emails.primary.email : "";
  8064. }, function() {
  8065. });
  8066. }
  8067. }), p;
  8068. };
  8069. var phones = {
  8070. ar_AE : "ar",
  8071. ca_ES : "ca",
  8072. cs_CZ : "cs",
  8073. da_DK : "da",
  8074. de_DE : "de",
  8075. el_GR : "el",
  8076. en_GB : "en-GB",
  8077. en_US : "en",
  8078. es_AR : "es-AR",
  8079. es_ES : "es-ES",
  8080. es_LA : "es-419",
  8081. es_MX : "es-MX",
  8082. fr_CA : "fr",
  8083. fr_FR : "fr",
  8084. hi_IN : "hi",
  8085. hr_HR : "hr",
  8086. hu_HU : "hu",
  8087. in_ID : "in",
  8088. it_IT : "it",
  8089. ja_JP : "ja",
  8090. ko_KR : "ko",
  8091. ms_MY : "ms",
  8092. nl_NL : "nl",
  8093. no_NO : "no",
  8094. pl_PL : "pl",
  8095. pt_BR : "pt-BR",
  8096. pt_PT : "pt-PT",
  8097. ru_RU : "ru",
  8098. sv_SE : "sv",
  8099. th_TH : "th",
  8100. tr_TR : "tr",
  8101. zh_CN : "zh-Hans",
  8102. zh_TW : "zh-Hant"
  8103. };
  8104. var actions = {
  8105. create : function(user) {
  8106. return new $window.a(function(saveNotifs, innerCallback) {
  8107. var b = res.experience.getExperience().settings;
  8108. var en = (b = void 0 === b ? {} : b).dialect;
  8109. var locale = void 0 === en ? null : en;
  8110. var bSortValue = b.uxId;
  8111. var params = {
  8112. language : phones[locale] || "en",
  8113. uxId : bSortValue
  8114. };
  8115. var pseudoNames = res.localization.getLocale().split("_");
  8116. var data = {
  8117. country : user.country,
  8118. emailOnly : user.emailOnly || false,
  8119. firstName : user.firstName,
  8120. gender : user.gender,
  8121. lastName : user.lastName,
  8122. locale : res.localization.getLocale(),
  8123. password : user.password,
  8124. receiveEmail : user.receiveEmail,
  8125. registrationSiteId : user.registrationSiteId,
  8126. registrationToken : user.registrationToken,
  8127. welcomeEmailTemplate : res.experience.getWelcomeEmailTemplate(),
  8128. mobileNumber : user.mobileNumber && "+".concat(user.mobileNumber),
  8129. receiveSms : !!user.mobileNumber && !!user.receiveEmail,
  8130. shoppingGender : user.shoppingGender,
  8131. emailAddress : user.emailAddress,
  8132. ssn : user.ssn ? user.ssn : null,
  8133. username : user.emailAddress,
  8134. account : {
  8135. email : user.emailAddress,
  8136. passwordSettings : {
  8137. password : user.password,
  8138. passwordConfirm : user.password
  8139. }
  8140. },
  8141. dateOfBirth : user.dateOfBirth,
  8142. minimumAge : user.dateOfBirth ? void 0 : res.mappings.coppaMinimumAge[pseudoNames[1]],
  8143. minimumAgeReason : user.dateOfBirth ? void 0 : "TERMS",
  8144. employeeId : user.employeeId,
  8145. hireDate : user.hireDate,
  8146. swooshToken : user.swooshToken,
  8147. firstNameKana : user.jpFirstNameKana,
  8148. lastNameKana : user.jpLastNameKana,
  8149. postalCode : user.postalCode,
  8150. inviteToken : user.inviteToken
  8151. };
  8152. var self = res.experience.getEnvironmentVariables().api.createUser;
  8153. var yyyy = res.experience.getCorsServerOverride() || self.cors;
  8154. /** @type {string} */
  8155. var f = "".concat(yyyy).concat(self.path).concat(utils.script.buildQueryString(params));
  8156. console.post(f, data, function(notifications) {
  8157. saveNotifs(notifications);
  8158. }, function(config, httpStatus) {
  8159. var params = {
  8160. httpStatus : httpStatus,
  8161. message : config.message
  8162. };
  8163. switch(httpStatus) {
  8164. case 400:
  8165. switch(params.fieldName = config.fieldName, config.code) {
  8166. case "COPPA_ERROR":
  8167. /** @type {string} */
  8168. params.code = error.codes.COPPA_ERROR;
  8169. break;
  8170. default:
  8171. /** @type {string} */
  8172. params.code = error.codes.EMPTY;
  8173. }break;
  8174. case 409:
  8175. params.fieldName = config.fieldName;
  8176. /** @type {string} */
  8177. params.code = error.codes.DUPLICATE_ACCOUNT;
  8178. break;
  8179. case 500:
  8180. /** @type {string} */
  8181. params.code = error.codes.SERVER_ERROR;
  8182. break;
  8183. default:
  8184. /** @type {string} */
  8185. params.code = error.codes.GENERIC;
  8186. }
  8187. innerCallback(new error.ServerError(params));
  8188. }, function() {
  8189. innerCallback(new error.ServerError({
  8190. code : error.codes.TIMEOUT,
  8191. message : void 0
  8192. }));
  8193. }, {
  8194. "Content-Type" : "application/json"
  8195. });
  8196. });
  8197. }
  8198. };
  8199. var object = self.getInstance();
  8200. var groups = self.JOIN_EMAILONLY_SUCCESS;
  8201. var div = self.JOIN_EMAILONLY_FAILURE;
  8202. var InspectR = {
  8203. start : function(data) {
  8204. actions.create(callback({}, data, {
  8205. emailOnly : true
  8206. })).then(function(lb) {
  8207. win.nike.unite.destroyAllViews();
  8208. object.emit(groups, lb);
  8209. }).catch(function(info) {
  8210. var e;
  8211. var el;
  8212. var options = {};
  8213. switch(info.code) {
  8214. case error.codes.COPPA_ERROR:
  8215. assert.coppa();
  8216. /** @type {string} */
  8217. options.text = "not eligible";
  8218. break;
  8219. default:
  8220. win.nike.unite.destroyAllViews();
  8221. config.views.emailOnlyJoin.render(function(user) {
  8222. return {
  8223. country : {
  8224. value : user.country
  8225. },
  8226. dateOfBirth : {
  8227. value : user.dateOfBirth
  8228. },
  8229. emailAddress : {
  8230. value : user.emailAddress
  8231. },
  8232. gender : {
  8233. value : user.gender
  8234. },
  8235. shoppingGender : {
  8236. value : user.shoppingGender
  8237. }
  8238. };
  8239. }(data));
  8240. el = "account.email" === info.fieldName ? "emailAddress" : info.fieldName;
  8241. e = win.document.querySelector(".nike-unite-component.".concat(el));
  8242. settings.onInvalid(e, info.message);
  8243. e.querySelector("input,select").focus();
  8244. settings.onFocus(e);
  8245. options = {
  8246. text : info.message,
  8247. code : info.code || "general error",
  8248. field : el
  8249. };
  8250. }
  8251. object.emit(div, options);
  8252. });
  8253. }
  8254. };
  8255. var session = {
  8256. login : login,
  8257. loginWithPromise : function(data) {
  8258. return new $window.a(function(res, callback) {
  8259. login(data, res, function(err, httpStatus) {
  8260. switch(httpStatus) {
  8261. case 401:
  8262. if ("invalid_request" === err.error || "BadCredentials" === err.error) {
  8263. callback({
  8264. code : "UNAUTHORIZED",
  8265. httpStatus : httpStatus,
  8266. message : err.error_description
  8267. });
  8268. } else {
  8269. callback({
  8270. code : "INVALID_APIKEY",
  8271. httpStatus : httpStatus,
  8272. message : err.fault.faultstring
  8273. });
  8274. }
  8275. break;
  8276. case 500:
  8277. callback({
  8278. code : "SERVER_ERROR",
  8279. httpStatus : httpStatus,
  8280. message : err.error_description
  8281. });
  8282. break;
  8283. default:
  8284. callback({
  8285. code : "GENERIC",
  8286. httpStatus : httpStatus,
  8287. message : err.error_description
  8288. });
  8289. }
  8290. }, function() {
  8291. callback({
  8292. code : "TIMEOUT"
  8293. });
  8294. });
  8295. });
  8296. }
  8297. };
  8298. var httpApi = {
  8299. socialLogin : update,
  8300. socialLoginWithPromise : function(initialState) {
  8301. return new $window.a(function(saveNotifs, innerCallback) {
  8302. update(initialState, function(notifications) {
  8303. saveNotifs(notifications);
  8304. }, function(data, httpStatus) {
  8305. var params = {
  8306. code : error.codes.GENERIC,
  8307. httpStatus : httpStatus,
  8308. message : data.message
  8309. };
  8310. if (401 === httpStatus && "Unauthorized" === data.error) {
  8311. params = callback({}, params, {
  8312. code : error.codes.NOT_LINKED,
  8313. message : data.error_description
  8314. });
  8315. }
  8316. innerCallback(new error.ServerError(params));
  8317. }, function() {
  8318. innerCallback(new error.ServerError({
  8319. code : error.codes.TIMEOUT
  8320. }));
  8321. });
  8322. });
  8323. }
  8324. };
  8325. var QuickBase = {
  8326. waitForUserReactivationIfRequired : saveUser,
  8327. waitForUserReactivationIfRequiredWithPromise : function(profile) {
  8328. return new $window.a(function(traverseNode, callback) {
  8329. saveUser(profile, function() {
  8330. var traceTreeRaw = profile.user;
  8331. delete profile.user;
  8332. traverseNode(traceTreeRaw);
  8333. }, callback);
  8334. });
  8335. }
  8336. };
  8337. var connection = {
  8338. start : function(data, position) {
  8339. var options = {
  8340. passedInData : data
  8341. };
  8342. return function(options, name) {
  8343. return name ? httpApi.socialLoginWithPromise({
  8344. network : options.network,
  8345. networkUserId : options.networkUserId,
  8346. token : options.token,
  8347. code : options.code,
  8348. iv : options.iv,
  8349. data : options.data
  8350. }) : session.loginWithPromise({
  8351. username : options.username,
  8352. password : options.password,
  8353. swooshUser : options.swooshUser
  8354. });
  8355. }(data, position).then(function(val) {
  8356. return options.loginResponse = val, QuickBase.waitForUserReactivationIfRequiredWithPromise(val);
  8357. }).then(function(moduleName) {
  8358. return moduleName ? $window.a.resolve(moduleName) : collection.getUserWithPromise({
  8359. access_token : options.loginResponse.access_token,
  8360. user_id : options.loginResponse.user_id
  8361. });
  8362. }).then(function(POST) {
  8363. return options.getUserResponse = POST, $window.a.resolve(options);
  8364. }).catch(function(rejectionValue) {
  8365. return $window.a.reject(rejectionValue);
  8366. });
  8367. }
  8368. };
  8369. var arr = self.getInstance();
  8370. var unaryOper = self.JOIN_SUCCESS;
  8371. var filterCt = self.JOIN_FAILURE;
  8372. var s = {};
  8373. var crop_bounds = {
  8374. start : function(data) {
  8375. return s.passedInData = data, actions.create({
  8376. country : data.country,
  8377. dateOfBirth : data.dateOfBirth,
  8378. emailAddress : data.emailAddress,
  8379. firstName : data.firstName,
  8380. gender : data.gender,
  8381. lastName : data.lastName,
  8382. mobileNumber : data.mobileNumber,
  8383. password : data.password,
  8384. receiveEmail : data.receiveEmail,
  8385. registrationSiteId : data.registrationSiteId,
  8386. shoppingGender : data.shoppingGender
  8387. }).then(function() {
  8388. return connection.start({
  8389. username : data.emailAddress,
  8390. password : data.password
  8391. });
  8392. }).then(function(rv) {
  8393. return s.loginResponse = rv.loginResponse, s.getUserResponse = rv.getUserResponse, values.start(res.experience.getExperience().settings.progressive.contexts.join, {
  8394. loginResponse : s.loginResponse,
  8395. getUserResponse : s.getUserResponse
  8396. });
  8397. }).then(function() {
  8398. return app.start(s);
  8399. }).then(function(count) {
  8400. count.joinModel = {
  8401. emailSignup : data.receiveEmail
  8402. };
  8403. win.nike.unite.destroyAllViews();
  8404. arr.emit(unaryOper, count);
  8405. }).catch(function(d) {
  8406. var n;
  8407. var t = utils.formData.getFormDataByComponent();
  8408. switch(win.nike.unite.destroyAllViews(), config.views.join.render(t), d.code) {
  8409. case "COPPA_ERROR":
  8410. /** @type {string} */
  8411. d.text = "not eligible";
  8412. assert.coppa();
  8413. break;
  8414. case "DUPLICATE_ACCOUNT":
  8415. (n = win.document.querySelector(".nike-unite-component.emailAddress")).querySelector("input").focus();
  8416. settings.onInvalid(n, d.message);
  8417. break;
  8418. case "EMPTY":
  8419. if (n = win.document.querySelector(".nike-unite-component.".concat(d.fieldName))) {
  8420. n.querySelector("input").focus();
  8421. settings.onInvalid(n, d.message);
  8422. } else {
  8423. assert.handleUnexpected(d);
  8424. }
  8425. break;
  8426. default:
  8427. assert.handleUnexpected(d);
  8428. }
  8429. arr.emit(filterCt, d);
  8430. });
  8431. }
  8432. };
  8433. var port = self.getInstance();
  8434. var hparent = self.LOGIN_SUCCESS;
  8435. var publishEngine = self.LOGIN_FAILURE;
  8436. var oldDestroySoonCalled = self.LOGIN_MOBILE_SUCCESS;
  8437. var dataToParse = self.LOGIN_MOBILE_FAILURE;
  8438. /**
  8439. * @param {!Object} data
  8440. * @return {?}
  8441. */
  8442. var failed = function(data) {
  8443. return {
  8444. emailAddress : {
  8445. value : data.emailAddress
  8446. },
  8447. verifyMobileNumber : {
  8448. value : data.phone && data.phone.mobileNumber,
  8449. sanitizedNumber : data.phone && data.phone.sanitizedNumber
  8450. },
  8451. keepMeLoggedIn : {
  8452. value : data.keepMeLoggedIn
  8453. },
  8454. errorMessage : data.errorMessage
  8455. };
  8456. };
  8457. /**
  8458. * @param {!Object} data
  8459. * @return {?}
  8460. */
  8461. var getDataForHeaders = function(data) {
  8462. return data.emailAddress ? res.experience.getExperience().components.errorMessageLogin : res.experience.getExperience().components.errorMessageMobileLogin;
  8463. };
  8464. var _start0End1KeyedToPane = {
  8465. start : function(data) {
  8466. var login;
  8467. var name = win.nike.unite.currentView().name;
  8468. connection.start({
  8469. username : data.emailAddress ? data.emailAddress : "+".concat(data.phone.sanitizedNumber),
  8470. password : data.password,
  8471. keepMeLoggedIn : true === data.keepMeLoggedIn,
  8472. swooshUser : data.swooshUser
  8473. }).then(function(undefined) {
  8474. return login = undefined, values.start(res.experience.getExperience().settings.progressive.contexts.login, {
  8475. loginResponse : login.loginResponse,
  8476. getUserResponse : login.getUserResponse
  8477. });
  8478. }).then(function() {
  8479. return app.start(login);
  8480. }).then(function(allPasswords) {
  8481. var emitMsgName = data.phone && data.phone.sanitizedNumber ? oldDestroySoonCalled : hparent;
  8482. win.nike.unite.destroyAllViews();
  8483. port.emit(emitMsgName, allPasswords);
  8484. }).catch(function(options) {
  8485. switch(options.code) {
  8486. case "TIMEOUT":
  8487. win.nike.unite.destroyAllViews();
  8488. config.views[name].render(failed(data));
  8489. assert.handleUnexpected({}, options.code);
  8490. break;
  8491. case "UNAUTHORIZED":
  8492. win.nike.unite.destroyAllViews();
  8493. data.errorMessage = getDataForHeaders(data);
  8494. config.views[name].render(failed(data));
  8495. break;
  8496. default:
  8497. win.nike.unite.destroyAllViews();
  8498. config.views[name].render(failed(data));
  8499. assert.handleUnexpected("".concat(options.httpStatus, " - ").concat(options.message ? options.message : "No error message found."), options.code);
  8500. }
  8501. var emitMsgName = data.phone && data.phone.sanitizedNumber ? dataToParse : publishEngine;
  8502. port.emit(emitMsgName, options);
  8503. });
  8504. }
  8505. };
  8506. var cell = self.getInstance();
  8507. self.JOIN_SUCCESS;
  8508. self.JOIN_FAILURE;
  8509. var putPosition = {
  8510. start : function(data) {
  8511. var params = {
  8512. country : data.country,
  8513. registrationToken : data.phone.registrationToken,
  8514. mobileNumber : data.phone.mobileNumber,
  8515. receiveEmail : data.receiveEmail,
  8516. firstName : data.firstName,
  8517. lastName : data.lastName
  8518. };
  8519. win.nike.unite.destroyAllViews();
  8520. config.views.mobileJoinContinue.render(createElement(params), function init(data) {
  8521. var usernameValue;
  8522. var usernameName;
  8523. var action = require()({}, params, data);
  8524. actions.create(action).then(function() {
  8525. return connection.start({
  8526. username : "+".concat(action.mobileNumber),
  8527. password : action.password,
  8528. keepMeLoggedIn : false,
  8529. swooshUser : false
  8530. });
  8531. }).then(function(login) {
  8532. return usernameValue = login.loginResponse, usernameName = login.getUserResponse, values.start(res.experience.getExperience().settings.progressive.contexts.mobileJoin, {
  8533. loginResponse : usernameValue,
  8534. getUserResponse : usernameName
  8535. });
  8536. }).then(function() {
  8537. return app.start({
  8538. loginResponse : usernameValue,
  8539. getUserResponse : usernameName,
  8540. passedInData : action
  8541. });
  8542. }).then(function(i) {
  8543. win.nike.unite.destroyAllViews();
  8544. cell.emit(self.getEvent(["join", "mobile", "success"]), callback({}, i, {
  8545. joinModel : {
  8546. emailSignup : action.receiveEmail
  8547. }
  8548. }));
  8549. }).catch(function(options) {
  8550. if (config.views.mobileJoinContinue.render(createElement(params), init), 400 === options.httpStatus && options.fieldName) {
  8551. var newValue = win.document.querySelector(".nike-unite-component.".concat(options.fieldName));
  8552. settings.onInvalid(newValue, options.message);
  8553. } else {
  8554. assert.handleUnexpected(options, options.code);
  8555. }
  8556. var data = {
  8557. code : options.code,
  8558. messages : [{
  8559. text : options.message
  8560. }]
  8561. };
  8562. cell.emit(self.getEvent(["join", "mobile", "failure"]), data);
  8563. });
  8564. });
  8565. }
  8566. };
  8567. var auth0 = {
  8568. partnerLogin : updateUser,
  8569. partnerLoginWithPromise : function(data) {
  8570. return new Promise(function(saveHeight, saveNotifs) {
  8571. updateUser(data.username, data.password, data.clientId, data.state, saveHeight, function(result, httpStatus) {
  8572. saveNotifs(new error.ServerError({
  8573. code : error.codes.GENERIC,
  8574. message : result.error_description,
  8575. httpStatus : httpStatus
  8576. }));
  8577. }, function() {
  8578. saveNotifs(new error.ServerError({
  8579. code : error.codes.TIMEOUT
  8580. }));
  8581. });
  8582. });
  8583. }
  8584. };
  8585. var _this2 = self.getInstance();
  8586. var post = self.JOIN_PARTNER_SUCCESS;
  8587. var level = self.JOIN_PARTNER_FAILURE;
  8588. var _start1End0KeyedToPane = {
  8589. start : function(options) {
  8590. var data = {
  8591. country : options.country,
  8592. dateOfBirth : options.dateOfBirth,
  8593. emailAddress : options.emailAddress,
  8594. firstName : options.firstName,
  8595. gender : options.gender,
  8596. lastName : options.lastName,
  8597. mobileNumber : options.mobileNumber,
  8598. password : options.password,
  8599. receiveEmail : options.receiveEmail,
  8600. registrationSiteId : options.registrationSiteId
  8601. };
  8602. /**
  8603. * @param {!Object} u
  8604. * @return {?}
  8605. */
  8606. var success = function(u) {
  8607. return u.emailAddress ? u.emailAddress : "+".concat(u.phone.sanitizedNumber);
  8608. };
  8609. actions.create(data).then(function() {
  8610. return connection.start({
  8611. username : success(data),
  8612. password : data.password,
  8613. keepMeLoggedIn : true === data.keepMeLoggedIn
  8614. }).then(function(result) {
  8615. var token = result.loginResponse;
  8616. var courseSections = result.getUserResponse;
  8617. return values.start(res.experience.getExperience().settings.progressive.contexts.partnerJoin, {
  8618. loginResponse : token,
  8619. getUserResponse : courseSections
  8620. });
  8621. }).then(function() {
  8622. return win.nike.unite.destroyAllViews(), auth0.partnerLoginWithPromise({
  8623. username : success(data),
  8624. password : data.password,
  8625. clientId : res.experience.getExperience().settings.clientId,
  8626. state : {}
  8627. });
  8628. }).then(function(args) {
  8629. _this2.emit(post, args);
  8630. }).catch(function(err) {
  8631. var result = function(user) {
  8632. return {
  8633. country : {
  8634. value : user.country
  8635. },
  8636. dateOfBirth : {
  8637. value : user.dateOfBirth
  8638. },
  8639. emailAddress : {
  8640. value : user.emailAddress
  8641. },
  8642. emailSignup : {
  8643. value : user.receiveEmail
  8644. },
  8645. firstName : {
  8646. value : user.firstName
  8647. },
  8648. gender : {
  8649. value : user.gender
  8650. },
  8651. lastName : {
  8652. value : user.lastName
  8653. },
  8654. mobileNumber : {
  8655. value : user.mobileNumber
  8656. },
  8657. passwordCreate : {
  8658. value : user.password
  8659. }
  8660. };
  8661. }(data);
  8662. switch(err.code) {
  8663. case error.codes.UNAUTHORIZED:
  8664. result.errorMessage = function(connInfo) {
  8665. return connInfo.emailAddress ? res.experience.getExperience().components.errorMessageLogin : res.experience.getExperience().components.errorMessageMobileLogin;
  8666. }(data);
  8667. config.views.join.render(result);
  8668. break;
  8669. case error.codes.TIMEOUT:
  8670. config.views.join.render();
  8671. assert.handleUnexpected(err.message, error.codes.TIMEOUT);
  8672. break;
  8673. case error.codes.GENERIC:
  8674. config.views.join.render(result);
  8675. assert.handleUnexpected(err.message, err.httpStatus);
  8676. break;
  8677. default:
  8678. assert.handleUnexpected(err.message, err.httpStatus);
  8679. }
  8680. _this2.emit(level);
  8681. });
  8682. }).catch(function(args) {
  8683. var n;
  8684. var t = utils.formData.getFormDataByComponent();
  8685. switch(win.nike.unite.destroyAllViews(), config.views.join.render(t), args.code) {
  8686. case "COPPA_ERROR":
  8687. /** @type {string} */
  8688. args.text = "not eligible";
  8689. assert.coppa();
  8690. break;
  8691. case "DUPLICATE_ACCOUNT":
  8692. (n = win.document.querySelector(".nike-unite-component.emailAddress")).querySelector("input").focus();
  8693. settings.onInvalid(n, args.message);
  8694. break;
  8695. case "EMPTY":
  8696. if (n = win.document.querySelector(".nike-unite-component.".concat(args.fieldName))) {
  8697. n.querySelector("input").focus();
  8698. settings.onInvalid(n, args.message);
  8699. } else {
  8700. assert.handleUnexpected(args);
  8701. }
  8702. break;
  8703. default:
  8704. assert.handleUnexpected(args);
  8705. }
  8706. _this2.emit(level, args);
  8707. });
  8708. }
  8709. };
  8710. var events = self.getInstance();
  8711. var i = self.LOGIN_PARTNER_SUCCESS;
  8712. var holdName = self.LOGIN_PARTNER_FAILURE;
  8713. /**
  8714. * @param {!Object} data
  8715. * @return {?}
  8716. */
  8717. var toJSON = function(data) {
  8718. return data.emailAddress ? data.emailAddress : "+".concat(data.phone.sanitizedNumber);
  8719. };
  8720. /**
  8721. * @param {!Object} data
  8722. * @return {?}
  8723. */
  8724. var getMsg = function(data) {
  8725. return data.emailAddress ? res.experience.getExperience().components.errorMessageLogin : res.experience.getExperience().components.errorMessageMobileLogin;
  8726. };
  8727. var _start1EndPoint5KeyedToPane = {
  8728. start : function(data) {
  8729. var login;
  8730. return connection.start({
  8731. username : toJSON(data),
  8732. password : data.password,
  8733. keepMeLoggedIn : true === data.keepMeLoggedIn
  8734. }).then(function(undefined) {
  8735. return login = undefined, values.start(res.experience.getExperience().settings.progressive.contexts.partnerLogin, {
  8736. loginResponse : login.loginResponse,
  8737. getUserResponse : login.getUserResponse
  8738. });
  8739. }).then(function() {
  8740. return win.nike.unite.destroyAllViews(), auth0.partnerLoginWithPromise({
  8741. username : toJSON(data),
  8742. password : data.password,
  8743. clientId : res.experience.getExperience().settings.clientId,
  8744. state : {}
  8745. });
  8746. }).then(function(e) {
  8747. return events.emit(i, e), Promise.resolve(e);
  8748. }).catch(function(err) {
  8749. var result = function(u) {
  8750. return {
  8751. emailAddress : {
  8752. value : u.emailAddress
  8753. }
  8754. };
  8755. }(data);
  8756. switch(err.code) {
  8757. case error.codes.UNAUTHORIZED:
  8758. result.errorMessage = getMsg(data);
  8759. config.views.login.render(result);
  8760. break;
  8761. case error.codes.TIMEOUT:
  8762. config.views.login.render();
  8763. assert.handleUnexpected(err.message, error.codes.TIMEOUT);
  8764. break;
  8765. default:
  8766. assert.handleUnexpected(err.message, err.httpStatus);
  8767. }
  8768. events.emit(holdName);
  8769. });
  8770. }
  8771. };
  8772. var userResource = {
  8773. resetPassword : function(response, body, callback, e) {
  8774. var saveResourceAction = res.experience.getExperience();
  8775. var data = {
  8776. login : response.emailAddress || "+".concat(response.phone.sanitizedNumber),
  8777. backendEnvironment : res.experience.getBackendEnvironment(),
  8778. redirectUrl : saveResourceAction.settings.passwordRedirectURL,
  8779. messageTemplate : saveResourceAction.settings.passwordResetEmailTemplate,
  8780. email : response.emailAddress,
  8781. ux_id : res.experience.getUxId(),
  8782. emailTemplate : saveResourceAction.settings.passwordResetEmailTemplate
  8783. };
  8784. if (response.swooshUser) {
  8785. data.swooshUser = response.swooshUser;
  8786. }
  8787. var params = {
  8788. clientId : res.experience.getClientId(),
  8789. locale : res.localization.getLocale()
  8790. };
  8791. console.post("".concat(res.experience.getCorsServer(), "/resetPassword").concat(utils.script.buildQueryString(params)), data, body, callback, e, {
  8792. "Content-Type" : "application/json"
  8793. });
  8794. }
  8795. };
  8796. var wo = self.getInstance();
  8797. var c = self.PASSWORD_RESET_SUCCESS;
  8798. var $this = self.PASSWORD_RESET_FAILURE;
  8799. var timeRangeMethods = {
  8800. start : function(data) {
  8801. userResource.resetPassword(data, function() {
  8802. /** @type {string} */
  8803. var i = data.emailAddress ? "confirmPasswordReset" : "mobileConfirmPasswordReset";
  8804. win.nike.unite.destroyAllViews();
  8805. config.views[i].render(getValue(data));
  8806. wo.emit(c);
  8807. }, function(c, record) {
  8808. win.nike.unite.destroyAllViews();
  8809. config.views.resetPassword.render(getValue(data));
  8810. wo.emit($this);
  8811. assert.handleUnexpected(c, record);
  8812. });
  8813. }
  8814. };
  8815. var sel = $(227);
  8816. var pos = $.n(sel);
  8817. var privkeyDao = {
  8818. createSocialLink : function(data) {
  8819. return new Promise(function(saveNotifs, negater) {
  8820. route("/createSocialLink", data.userId, data.userToken, data.socialProvider, data.socialToken, data.networkUserId, data.iv, data.data, function() {
  8821. saveNotifs();
  8822. }, function(apiResponseError, httpStatus) {
  8823. negater(new error.ServerError({
  8824. code : error.codes.GENERIC,
  8825. httpStatus : httpStatus,
  8826. message : apiResponseError.message
  8827. }));
  8828. }, function() {
  8829. negater(new error.ServerError({
  8830. code : error.codes.TIMEOUT
  8831. }));
  8832. });
  8833. });
  8834. },
  8835. updateSocialLink : function(data) {
  8836. return new Promise(function(saveNotifs, negater) {
  8837. route("/updateSocialLink", data.userId, data.userToken, data.socialProvider, data.socialToken, data.networkUserId, data.iv, data.data, function() {
  8838. saveNotifs();
  8839. }, function(apiResponseError, httpStatus) {
  8840. negater(new error.ServerError({
  8841. code : error.codes.GENERIC,
  8842. httpStatus : httpStatus,
  8843. message : apiResponseError.message
  8844. }));
  8845. }, function() {
  8846. negater(new error.ServerError({
  8847. code : error.codes.TIMEOUT
  8848. }));
  8849. });
  8850. });
  8851. }
  8852. };
  8853. var sequelize = self.getInstance();
  8854. var worker = {
  8855. start : function(res) {
  8856. return res.socialModel.socialInputs.networkToken ? privkeyDao.createSocialLink({
  8857. userId : res.loginResponse.user_id,
  8858. userToken : res.loginResponse.access_token,
  8859. socialProvider : res.socialModel.socialInputs.network,
  8860. socialToken : res.socialModel.socialInputs.networkToken,
  8861. networkUserId : res.socialModel.socialInputs.networkUserId,
  8862. iv : res.iv,
  8863. data : res.data
  8864. }).then(function() {
  8865. return sequelize.emit(self.getEvent(["link", "create", res.socialModel.socialInputs.network, "success"]), {
  8866. expires_in : res.loginResponse.expires_in,
  8867. refresh_token : res.loginResponse.refresh_token,
  8868. uuid : res.loginResponse.user_id,
  8869. access_token : res.loginResponse.access_token,
  8870. socialProvider : res.socialModel.socialInputs.network.toLowerCase()
  8871. }), $window.a.resolve();
  8872. }).catch(function(model) {
  8873. return model.socialProvider = res.socialModel.socialInputs.network.toLowerCase(), sequelize.emit(self.getEvent(["link", "create", res.socialModel.socialInputs.network, "failure"]), model), "TIMEOUT" === model.code ? $window.a.reject(model) : privkeyDao.updateSocialLink({
  8874. userId : res.loginResponse.user_id,
  8875. userToken : res.loginResponse.access_token,
  8876. socialProvider : res.socialModel.socialInputs.network,
  8877. socialToken : res.socialModel.socialInputs.networkToken,
  8878. networkUserId : res.socialModel.socialInputs.networkUserId,
  8879. iv : res.iv,
  8880. data : res.data
  8881. }).then(function() {
  8882. return sequelize.emit(self.getEvent(["link", "update", res.socialModel.socialInputs.network, "success"]), {
  8883. socialProvider : res.socialModel.socialInputs.network.toLowerCase()
  8884. }), $window.a.resolve();
  8885. }).catch(function(model) {
  8886. return model.socialProvider = res.socialModel.socialInputs.network.toLowerCase(), sequelize.emit(self.getEvent(["link", "update", res.socialModel.socialInputs.network, "failure"]), model), "TIMEOUT" === model.code ? $window.a.reject(model) : $window.a.resolve();
  8887. });
  8888. }) : $window.a.resolve();
  8889. }
  8890. };
  8891. var db = self.getInstance();
  8892. var namespace = self.LOGIN_SUCCESS;
  8893. var subject = self.LOGIN_FAILURE;
  8894. var users = self.JOIN_SUCCESS;
  8895. var req = {};
  8896. /**
  8897. * @param {!Object} options
  8898. * @return {?}
  8899. */
  8900. var extend = function(options) {
  8901. return options.emailAddress ? res.experience.getExperience().components.errorMessageLogin : res.experience.getExperience().components.errorMessageMobileLogin;
  8902. };
  8903. var blocks = {
  8904. start : function(options) {
  8905. if (win.nike.unite.spinner.show(), req.passedInData = options, req.formData = {
  8906. mobileNumber : options.mobileNumber,
  8907. registrationToken : options.registrationToken
  8908. }, options.event) {
  8909. render(options.event);
  8910. } else {
  8911. var data = {
  8912. network : options.provider,
  8913. networkUserId : options.user ? options.user.loginProviderUID : null,
  8914. token : options.token
  8915. };
  8916. connection.start(data, true).then(function(bestbuyBody) {
  8917. return req.loginResponse = bestbuyBody.loginResponse, req.getUserResponse = bestbuyBody.getUserResponse, values.start(res.experience.getExperience().settings.progressive.contexts.login, {
  8918. loginResponse : req.loginResponse,
  8919. getUserResponse : req.getUserResponse
  8920. });
  8921. }).then(function() {
  8922. return req.passedInData.grant_type = "nike:social", req.passedInData.isLinked = true, app.start(req);
  8923. }).then(function(message) {
  8924. message.socialProvider = data.network.toLowerCase();
  8925. message.socialUserId = data.networkUserId;
  8926. win.nike.unite.destroyAllViews();
  8927. db.emit(namespace, message);
  8928. }).catch(function() {
  8929. /**
  8930. * @param {number} forward
  8931. * @return {?}
  8932. */
  8933. function init(forward) {
  8934. /** @type {string} */
  8935. var i = "login" === win.nike.unite.currentView().name ? "link" : "socialJoin";
  8936. return void 0 !== forward && (i = forward ? "link" : "socialJoin"), win.nike.unite.destroyAllViews(), config.views[i].eventHandler = render, config.views[i].render(n), Promise.resolve();
  8937. }
  8938. var n = tools[options.provider.toLowerCase()] ? tools[options.provider.toLowerCase()].getModel(options.user, options.token) : tools.gigya.getModel(options.user, options.token, options.provider.toLowerCase());
  8939. return req.socialModel = n, n.socialInputs.networkEmail ? User.checkEmailWithPromise(n.socialInputs.networkEmail).then(init).catch(function(err) {
  8940. win.nike.unite.spinner.hide();
  8941. assert.social(err.message, err.httpStatus);
  8942. }) : init();
  8943. });
  8944. }
  8945. }
  8946. };
  8947. var q = self.getInstance();
  8948. var transpilations = self.JOIN_SUCCESS;
  8949. var qa = self.JOIN_FAILURE;
  8950. var input = {};
  8951. var timerelative = {
  8952. start : function(value) {
  8953. input.passedInData = value || {};
  8954. /** @type {function(string): undefined} */
  8955. config.views.join.eventHandler = submit;
  8956. config.views.join.render(process(value));
  8957. }
  8958. };
  8959. var UserService = {
  8960. updatePassword : function(newPassword, options, params, next, callback) {
  8961. var user = {
  8962. password : newPassword,
  8963. token : options,
  8964. verificationCode : options
  8965. };
  8966. var data = {
  8967. clientId : res.experience.getClientId()
  8968. };
  8969. console.post("".concat(res.experience.getCorsServer(), "/updatePassword").concat(utils.script.buildQueryString(data)), user, params, next, callback, {
  8970. "Content-Type" : "application/json"
  8971. });
  8972. }
  8973. };
  8974. var container = self.getInstance();
  8975. var boxInput = self.PASSWORD_UPDATE_SUCCESS;
  8976. var rendererTypeRow = self.PASSWORD_UPDATE_FAILURE;
  8977. var crop_rect_bounds = {
  8978. start : function(req) {
  8979. var action_wrapper = win.document.getElementById("nike-unite");
  8980. var ide = res.experience.getExperience();
  8981. UserService.updatePassword(req.password, action_wrapper.dataset.resetkey, function() {
  8982. container.emit(boxInput);
  8983. var data = {
  8984. locale : res.localization.getLocale()
  8985. };
  8986. win.window.location = ide.settings.passwordRedirectURL + utils.script.buildQueryString(data);
  8987. }, function(c, record) {
  8988. var data = {
  8989. code : record,
  8990. messages : []
  8991. };
  8992. if (400 === record) {
  8993. data.messages.push({
  8994. text : "UpdatePasswordInvalidToken"
  8995. });
  8996. var err = {
  8997. errorMessage : ide.components.errorMessageUpdatePasswordInvalidToken
  8998. };
  8999. win.nike.unite.destroyAllViews();
  9000. config.views.resetPassword.render(err);
  9001. } else {
  9002. assert.handleUnexpected(c, record);
  9003. }
  9004. container.emit(rendererTypeRow, data);
  9005. });
  9006. }
  9007. };
  9008. var $scope = {
  9009. verifyCode : request,
  9010. verifyCodeWithPromise : function(value, url) {
  9011. return new Promise(function(fn, handler) {
  9012. request(value, url, fn, function(convertedObject, httpStatus) {
  9013. var data = {
  9014. httpStatus : httpStatus,
  9015. message : convertedObject.errors[0].message
  9016. };
  9017. switch(httpStatus) {
  9018. case 400:
  9019. /** @type {string} */
  9020. data.code = String(convertedObject.errors[0].code);
  9021. break;
  9022. case 500:
  9023. /** @type {string} */
  9024. data.code = "SERVER_ERROR";
  9025. break;
  9026. default:
  9027. /** @type {string} */
  9028. data.code = "GENERIC";
  9029. }
  9030. handler(data);
  9031. }, function() {
  9032. handler({
  9033. code : "TIMEOUT"
  9034. });
  9035. });
  9036. });
  9037. }
  9038. };
  9039. var javaReflection = self.getInstance();
  9040. var hosts = {
  9041. emailOnlyJoinFlow : InspectR,
  9042. joinFlow : crop_bounds,
  9043. loginFlow : _start0End1KeyedToPane,
  9044. mobileJoinFlow : putPosition,
  9045. partnerJoinFlow : _start1End0KeyedToPane,
  9046. partnerLoginFlow : _start1EndPoint5KeyedToPane,
  9047. resetPasswordFlow : timeRangeMethods,
  9048. socialFlow : blocks,
  9049. swooshJoinFlow : timerelative,
  9050. updatePasswordFlow : crop_rect_bounds,
  9051. verifyMobileCodeFlow : {
  9052. start : function(data) {
  9053. instance.getCredential(function(response) {
  9054. if (!response) {
  9055. throw new Error("Valid credential not found in session");
  9056. }
  9057. $scope.verifyCode(data.code, response.access_token, function() {
  9058. win.nike.unite.destroyAllViews();
  9059. javaReflection.emit(self.getEvent(["user", "verifyMobileCode", "success"]), {
  9060. stateKey : data.stateKey
  9061. });
  9062. }, function(c, result) {
  9063. win.nike.unite.destroyAllViews();
  9064. config.views.verifyMobileCode.render(function(data) {
  9065. return {
  9066. code : {
  9067. value : data.code
  9068. },
  9069. stateKey : {
  9070. value : data.stateKey
  9071. }
  9072. };
  9073. }(data));
  9074. var newValue = win.document.querySelector(".nike-unite-component.code");
  9075. /** @type {string} */
  9076. var errorMessage = "";
  9077. if (c.errors && c.errors[0] && c.errors[0].message) {
  9078. settings.onInvalid(newValue, c.errors[0].message);
  9079. errorMessage = c.errors[0].code;
  9080. } else {
  9081. assert.handleUnexpected(c, result);
  9082. }
  9083. javaReflection.emit(self.getEvent(["user", "verifyMobileCode", "failure"]), {
  9084. errorMessage : errorMessage || result,
  9085. stateKey : data.stateKey
  9086. });
  9087. });
  9088. }, function(possibleErrorMessage) {
  9089. throw new Error(possibleErrorMessage);
  9090. });
  9091. }
  9092. },
  9093. helpers : tools
  9094. };
  9095. var closestSphere = self.getInstance();
  9096. /**
  9097. * @param {!Object} o
  9098. * @param {?} done
  9099. * @return {?}
  9100. */
  9101. var run = function(o, done) {
  9102. var config = {
  9103. id : utils.generateUuid(),
  9104. classes : ["nike-unite-social-login", done],
  9105. providers : []
  9106. };
  9107. var user = res.experience.getExperience();
  9108. if (user.settings.social) {
  9109. config.providers = factory()(user.settings.social.networks) || [];
  9110. if (config.providers.length > 1) {
  9111. config.classes.push("nike-unite-social-bubble-icons");
  9112. }
  9113. }
  9114. config.classes.push("bottom" === o.conjunctionPosition ? "conjunction-bottom" : "conjunction-top");
  9115. var data = _this.models.merge(config, o);
  9116. forEach()(data.providers, function(canCreateDiscussions, i) {
  9117. var $scope = data.providers[i];
  9118. if (data.linkTextOverride && data.linkTextOverride[$scope.name]) {
  9119. $scope.linkText = data.linkTextOverride[$scope.name];
  9120. /** @type {string} */
  9121. $scope.type = "register";
  9122. }
  9123. $scope.inputId = utils.generateUuid();
  9124. });
  9125. /** @type {string} */
  9126. var set_tags = "";
  9127. if (data.providers.length > 0) {
  9128. set_tags = scope.socialLinks(data);
  9129. }
  9130. /** @type {!Array} */
  9131. var handlers = [];
  9132. return forEach()(data.providers, function(data) {
  9133. handlers.push({
  9134. target : data.inputId,
  9135. event : "click",
  9136. handler : function() {
  9137. if (res.platform.isNative() || a["".concat(data.name.toLowerCase(), "Service")].getUserAndAuthData(function(e) {
  9138. hosts.socialFlow.start(e);
  9139. }, function(e) {
  9140. assert.social(e, null);
  9141. }), Offcanvas.show(), "join" === win.nike.unite.currentView().name) {
  9142. var emitMsgName = self.getEvent(["ui", "join", "socialLink", data.name.toLowerCase(), "click"]);
  9143. closestSphere.emit(emitMsgName, {
  9144. providerName : data.name
  9145. });
  9146. } else {
  9147. var emitMsgName = self.getEvent(["ui", "login", "socialLink", data.name.toLowerCase(), "click"]);
  9148. closestSphere.emit(emitMsgName, {
  9149. providerName : data.name
  9150. });
  9151. }
  9152. }
  9153. });
  9154. }), {
  9155. html : set_tags,
  9156. handlers : handlers
  9157. };
  9158. };
  9159. /**
  9160. * @param {!Object} d
  9161. * @param {string} icon
  9162. * @return {?}
  9163. */
  9164. var oberserve = function(d, icon) {
  9165. var result = {
  9166. id : utils.generateUuid(),
  9167. inputId : utils.generateUuid(),
  9168. name : icon,
  9169. classes : ["nike-unite-submit-button", icon],
  9170. value : ""
  9171. };
  9172. var data = _this.models.merge(result, d);
  9173. return {
  9174. html : scope.submitButton(data),
  9175. handlers : [{
  9176. target : data.inputId,
  9177. event : "click",
  9178. handler : function(doc) {
  9179. var target = win.document.getElementById("nike-unite-".concat(data.formId)) || doc.target.form;
  9180. _this.state.onSubmit(doc.target);
  9181. /** @type {(Element|null)} */
  9182. var header = document.getElementById(data.inputId);
  9183. header.value = d.labelProcessing || "processing";
  9184. /** @type {boolean} */
  9185. header.disabled = true;
  9186. var cells = _this.dom.getInvalidElements(target);
  9187. var me = win.nike.unite.currentView().view;
  9188. /** @type {boolean} */
  9189. var svg = 0 === cells.length;
  9190. if ("function" == typeof me.validationCallback && me.validationCallback(svg), delete me.validationCallback, svg) {
  9191. /**
  9192. * @return {undefined}
  9193. */
  9194. var init = function() {
  9195. /** @type {string} */
  9196. var i = "".concat(me.model.flowOverride ? me.model.flowOverride : me.name, "Flow");
  9197. if (me.eventHandler) {
  9198. me.eventHandler("submit", me.name);
  9199. } else {
  9200. if (me.submitHandler) {
  9201. var e = utils.formData.getFormData(target);
  9202. me.submitHandler(e);
  9203. } else {
  9204. if (hosts[i]) {
  9205. var r = utils.formData.getFormData(target);
  9206. hosts[i].start(r);
  9207. }
  9208. }
  9209. }
  9210. _this.state.onSubmitted(target);
  9211. forEach()(target.elements, function(e) {
  9212. if (e.name) {
  9213. var falseySection = win.document.querySelector(".nike-unite-component.".concat(e.dataset.componentname));
  9214. if (falseySection) {
  9215. _this.state.onSubmitted(falseySection);
  9216. }
  9217. }
  9218. });
  9219. };
  9220. /** @type {!Array} */
  9221. var cyclicalModules = [];
  9222. var components_config = win.nike.unite.currentView().view.components;
  9223. forEach()(components_config, function(CommonTests) {
  9224. if ("function" == typeof CommonTests.submit) {
  9225. cyclicalModules.push(CommonTests.submit());
  9226. }
  9227. });
  9228. if (cyclicalModules.length > 0) {
  9229. $window.a.all(cyclicalModules).then(function() {
  9230. init();
  9231. }).catch(function() {
  9232. });
  9233. } else {
  9234. init();
  9235. }
  9236. } else {
  9237. cells[0].focus();
  9238. header.value = d.label;
  9239. /** @type {boolean} */
  9240. header.disabled = false;
  9241. }
  9242. }
  9243. }, {
  9244. target : "nike-unite-".concat(data.formId),
  9245. event : "submit",
  9246. handler : function() {
  9247. document.getElementById(data.inputId).click();
  9248. }
  9249. }, {
  9250. target : data.inputId,
  9251. event : "focus",
  9252. handler : function() {
  9253. var e = win.document.getElementById(data.id);
  9254. _this.state.onFocus(e);
  9255. }
  9256. }, {
  9257. target : data.inputId,
  9258. event : "blur",
  9259. handler : function() {
  9260. var e = win.document.getElementById(data.id);
  9261. _this.state.onBlur(e);
  9262. }
  9263. }]
  9264. };
  9265. };
  9266. var Sprite = {
  9267. create : function(s, code) {
  9268. var data = {
  9269. phoneNumber : s,
  9270. country : code
  9271. };
  9272. /** @type {string} */
  9273. var THREAD_STARTED = "".concat(res.experience.getCorsServer(), "/phoneVerification").concat(utils.script.buildQueryString(data));
  9274. return new $window.a(function(saveNotifs, callback) {
  9275. console.post(THREAD_STARTED, {}, function(notifications) {
  9276. saveNotifs(notifications);
  9277. }, function(convertedObject, httpStatus) {
  9278. var error = {
  9279. httpStatus : httpStatus,
  9280. message : convertedObject.errors[0].message
  9281. };
  9282. switch(httpStatus) {
  9283. case 400:
  9284. error.code = convertedObject.errors[0].code;
  9285. break;
  9286. case 500:
  9287. /** @type {string} */
  9288. error.code = "SERVER_ERROR";
  9289. break;
  9290. default:
  9291. /** @type {string} */
  9292. error.code = "GENERIC";
  9293. }
  9294. callback(error);
  9295. }, function() {
  9296. callback({
  9297. code : "TIMEOUT",
  9298. message : "The network call has timed out."
  9299. });
  9300. }, {
  9301. "Content-Type" : "application/json"
  9302. });
  9303. });
  9304. }
  9305. };
  9306. var dom = {
  9307. create : function(s, v) {
  9308. var data = {
  9309. phoneNumber : s
  9310. };
  9311. var options = {
  9312. verificationCode : v
  9313. };
  9314. /** @type {string} */
  9315. var i = "".concat(res.experience.getCorsServer(), "/registrationToken").concat(utils.script.buildQueryString(data));
  9316. return new Promise(function(saveNotifs, callback) {
  9317. console.post(i, options, function(notifications) {
  9318. saveNotifs(notifications);
  9319. }, function(convertedObject, httpStatus) {
  9320. var error = {
  9321. httpStatus : httpStatus,
  9322. message : convertedObject.errors[0].message
  9323. };
  9324. switch(httpStatus) {
  9325. case 400:
  9326. error.code = convertedObject.errors[0].code;
  9327. break;
  9328. case 500:
  9329. /** @type {string} */
  9330. error.code = "SERVER_ERROR";
  9331. break;
  9332. default:
  9333. /** @type {string} */
  9334. error.code = "GENERIC";
  9335. }
  9336. callback(error);
  9337. }, function() {
  9338. callback({
  9339. code : "TIMEOUT",
  9340. message : "The network call has timed out."
  9341. });
  9342. }, {
  9343. "Content-Type" : "application/json"
  9344. });
  9345. });
  9346. }
  9347. };
  9348. var stool;
  9349. var child;
  9350. var parent;
  9351. var message;
  9352. var event;
  9353. var ex1go;
  9354. var digitPar;
  9355. var newValue;
  9356. var e;
  9357. var changedPath;
  9358. var optcur;
  9359. var name;
  9360. var nodeType;
  9361. var fbxTimer;
  9362. var util = {
  9363. sendCode : send,
  9364. sendCodeWithPromise : function(file, val, callback) {
  9365. return new Promise(function(type, callback) {
  9366. send(file, val, callback, type, function(convertedObject, httpStatus) {
  9367. var err = {
  9368. httpStatus : httpStatus,
  9369. message : convertedObject.errors[0].message
  9370. };
  9371. switch(httpStatus) {
  9372. case 400:
  9373. /** @type {string} */
  9374. err.code = String(convertedObject.errors[0].code);
  9375. break;
  9376. case 500:
  9377. /** @type {string} */
  9378. err.code = "SERVER_ERROR";
  9379. break;
  9380. default:
  9381. /** @type {string} */
  9382. err.code = "GENERIC";
  9383. }
  9384. callback(err);
  9385. }, function() {
  9386. callback({
  9387. code : "TIMEOUT"
  9388. });
  9389. });
  9390. });
  9391. }
  9392. };
  9393. var verbInst = self.getInstance();
  9394. var argv = self.USER_MOBILE_VERIFICATION_SUCCESS;
  9395. var presType = self.USER_MOBILE_VERIFICATION_FAILURE;
  9396. var options = {
  9397. actionButton : launch,
  9398. actionLink : generate,
  9399. block : buildBlock,
  9400. checkbox : reset,
  9401. coppa : addFileToProject,
  9402. country : setup,
  9403. dateInput : setupPageInit,
  9404. emailAddress : list,
  9405. errorMessage : errorHandler,
  9406. errorPanel : attach,
  9407. form : preTriggerMap,
  9408. genderButtons : addPoi,
  9409. hidden : isHidden,
  9410. internationalMobileNumber : draw,
  9411. keepMeLoggedIn : selectItem,
  9412. loginContinuityDialog : IrcLogger,
  9413. passwordCreateInput : handler,
  9414. passwordInput : showModelsTab,
  9415. reauthEmailAddress : createPoint,
  9416. select : select,
  9417. socialLinks : run,
  9418. spinner : Offcanvas,
  9419. submitButton : oberserve,
  9420. textInput : transform,
  9421. verifyMobileNumber : function(path) {
  9422. /** @type {null} */
  9423. optcur = null;
  9424. /** @type {null} */
  9425. parent = null;
  9426. each()(path.supportedList, function(p) {
  9427. return p.country !== res.localization.getCountry() && "US" !== p.country || (parent = p, p.country !== res.localization.getCountry());
  9428. });
  9429. if (!parent && path.supportedList) {
  9430. parent = path.supportedList[0];
  9431. }
  9432. var result = {
  9433. name : "verifyMobileNumber",
  9434. componentId : utils.generateUuid(),
  9435. classes : ["nike-unite-component", "nike-unite-verifyMobileNumber"],
  9436. countryCodeDivId : utils.generateUuid(),
  9437. countrySelectId : utils.generateUuid(),
  9438. phoneInputId : utils.generateUuid(),
  9439. sendButtonId : utils.generateUuid(),
  9440. sendConfirmationMsgDivId : utils.generateUuid(),
  9441. sendDivId : utils.generateUuid(),
  9442. disabled : path.supportedList && 1 === path.supportedList.length ? "disabled" : "",
  9443. verifyCodeInputId : utils.generateUuid(),
  9444. verifyDivId : utils.generateUuid(),
  9445. phoneValue : "",
  9446. verifyCodeValue : ""
  9447. };
  9448. return message = _this.models.merge(result, path), {
  9449. html : scope.verifyMobileNumber(message),
  9450. getValue : getter,
  9451. submit : success,
  9452. validate : validator,
  9453. handlers : [{
  9454. target : message.componentId,
  9455. event : "render",
  9456. handler : function() {
  9457. stool = win.document.getElementById(message.countryCodeDivId);
  9458. (child = win.document.getElementById(message.countrySelectId)).value = parent.country;
  9459. event = win.document.getElementById(message.phoneInputId);
  9460. ex1go = win.document.getElementById(message.sendButtonId);
  9461. digitPar = win.document.getElementById(message.sendConfirmationMsgDivId);
  9462. newValue = win.document.getElementById(message.sendDivId);
  9463. e = win.document.getElementById(message.verifyCodeInputId);
  9464. changedPath = win.document.getElementById(message.verifyDivId);
  9465. execute(parent);
  9466. }
  9467. }, {
  9468. target : message.countrySelectId,
  9469. event : "change",
  9470. handler : function(item) {
  9471. execute(dispatch()(message.supportedList, function(proxy) {
  9472. return proxy.country === item.target.value;
  9473. }));
  9474. }
  9475. }, {
  9476. target : message.phoneInputId,
  9477. event : "focus",
  9478. handler : function() {
  9479. settings.onFocus(event);
  9480. }
  9481. }, {
  9482. target : message.phoneInputId,
  9483. event : "blur",
  9484. handler : function() {
  9485. validate("blur");
  9486. settings.onBlur(event);
  9487. }
  9488. }, {
  9489. target : message.phoneInputId,
  9490. event : "keyup",
  9491. handler : function(e) {
  9492. e.stopPropagation();
  9493. if (13 === (e.which || e.keyCode)) {
  9494. initialize();
  9495. }
  9496. }
  9497. }, {
  9498. target : message.sendButtonId,
  9499. event : "click",
  9500. handler : initialize
  9501. }, {
  9502. target : message.verifyCodeInputId,
  9503. event : "focus",
  9504. handler : function() {
  9505. settings.onFocus(e);
  9506. }
  9507. }, {
  9508. target : message.verifyCodeInputId,
  9509. event : "blur",
  9510. handler : function() {
  9511. _this.validate(changedPath, message.rules.verifyCode, e.value, "blur");
  9512. settings.onBlur(e);
  9513. }
  9514. }],
  9515. model : message
  9516. };
  9517. },
  9518. helpers : _this
  9519. };
  9520. var m;
  9521. var no_leading_pipe;
  9522. var handlers;
  9523. var components;
  9524. var value;
  9525. var item = {
  9526. actionButton : options.actionButton,
  9527. actionLink : options.actionLink,
  9528. avatar : function(value) {
  9529. return {
  9530. html : "<p>".concat(value.type, "</p>"),
  9531. handlers : []
  9532. };
  9533. },
  9534. block : options.block,
  9535. checkbox : options.checkbox,
  9536. coppa : options.coppa,
  9537. country : options.country,
  9538. dateOfBirth : options.dateInput,
  9539. emailAddress : options.emailAddress,
  9540. errorMessage : options.errorMessage,
  9541. errorPanel : options.errorPanel,
  9542. form : options.form.open,
  9543. formClose : options.form.close,
  9544. genderButtons : options.genderButtons,
  9545. hidden : options.hidden,
  9546. internationalMobileNumber : options.internationalMobileNumber,
  9547. keepMeLoggedIn : options.keepMeLoggedIn,
  9548. loginContinuityDialog : options.loginContinuityDialog,
  9549. passwordCreateInput : options.passwordCreateInput,
  9550. passwordInput : options.passwordInput,
  9551. reauthEmailAddress : options.reauthEmailAddress,
  9552. select : options.select,
  9553. socialInputs : options.socialInputs,
  9554. socialLinks : options.socialLinks,
  9555. submitButton : options.submitButton,
  9556. textInput : options.textInput,
  9557. verifyMobileNumber : options.verifyMobileNumber,
  9558. viewLink : options.viewLink
  9559. };
  9560. var module = {
  9561. render : function(o, selector, disabled) {
  9562. if (o && o.type) {
  9563. if (void 0 === item[o.type]) {
  9564. throw new Error("Tried to call render using component model type ".concat(o.type, " that doesn't exist"));
  9565. }
  9566. return item[o.type](o, selector, disabled);
  9567. }
  9568. }
  9569. };
  9570. /** @type {!RegExp} */
  9571. var _RE_DOT = /\{{\s*([#\/]?)(\w+)\s*([^}]*)\}}/g;
  9572. var renderer = {
  9573. render : function(obj, o) {
  9574. var url = obj.model.layout;
  9575. /** @type {!Array} */
  9576. handlers = [];
  9577. /** @type {!Array} */
  9578. components = [];
  9579. /** @type {string} */
  9580. value = obj;
  9581. if (o) {
  9582. if (o.override) {
  9583. (function transform(args, obj) {
  9584. if ("object" === type(obj)) {
  9585. forEach()(obj, function(data, prop) {
  9586. if ("object" !== type(data) || split()(prop).match(/!$/)) {
  9587. if ("string" == typeof prop) {
  9588. /** @type {string} */
  9589. prop = prop.replace(/!$/, "");
  9590. }
  9591. /** @type {!Array} */
  9592. args[prop] = data;
  9593. } else {
  9594. if ("object" !== type(args[prop])) {
  9595. args[prop] = {};
  9596. }
  9597. transform(args[prop], obj[prop]);
  9598. }
  9599. });
  9600. }
  9601. })(m, o);
  9602. } else {
  9603. m = require()(m, o);
  9604. }
  9605. }
  9606. for (; url.match(_RE_DOT);) {
  9607. url = url.replace(_RE_DOT, func);
  9608. }
  9609. return m = factory()(no_leading_pipe, true), {
  9610. html : url,
  9611. handlers : handlers,
  9612. components : components
  9613. };
  9614. },
  9615. setComponentsModel : function(n) {
  9616. no_leading_pipe = n;
  9617. m = factory()(n, true);
  9618. }
  9619. };
  9620. var JSON = self.getInstance();
  9621. var is = self.VIEW_APP_LANDING_RENDERED;
  9622. var tx = self.VIEW_LOGIN_RENDERED;
  9623. var localIdEvent = self.VIEW_LOGIN_CONTINUITY_RENDERED;
  9624. var downName = self.VIEW_EMAIL_ONLY_JOIN_RENDERED;
  9625. var installation = self.VIEW_JOIN_RENDERED;
  9626. var outlet = self.VIEW_SOCIAL_JOIN_RENDERED;
  9627. var noDataNode = self.VIEW_REAUTH_RENDERED;
  9628. var ls = self.VIEW_RESET_PASSWORD_RENDERED;
  9629. var scrollRow = self.VIEW_UPDATE_PASSWORD_RENDERED;
  9630. var stack = self.VIEW_LINK_RENDERED;
  9631. var err = self.error;
  9632. var vvm = self.VIEW_PROGRESSIVE_PROFILE_RENDERED;
  9633. var os = self.VIEW_VERIFY_MOBILE_CODE_RENDERED;
  9634. var disabledURLs = self.PROGRESSIVE_IS_MOBILE_VERIFIED_FAILURE;
  9635. var ELEMENT_EVENT_NAME = self.PROGRESSIVE_IS_LEGALLY_COMPLIANT_SUCCESS;
  9636. var cs = self.VIEW_WE_CHAT_MINI_MOBILE_JOIN_RENDERED;
  9637. var stat = self.VIEW_WE_CHAT_MINI_MOBILE_JOIN_CONTINUE_RENDERED;
  9638. var EVENT_CLOSED = self.VIEW_MOBILE_VERIFICATION_CODE_RENDERED;
  9639. /**
  9640. * @return {undefined}
  9641. */
  9642. win.nike.unite.destroyAllViews = function() {
  9643. forEach()(config.views, function(anAlertDialog) {
  9644. anAlertDialog.destroy();
  9645. });
  9646. };
  9647. /**
  9648. * @return {?}
  9649. */
  9650. win.nike.unite.currentView = function() {
  9651. var options;
  9652. return forEach()(config.views, function(result, newPrinter) {
  9653. return !result.rendered || (options = {
  9654. name : newPrinter,
  9655. view : result
  9656. }, false);
  9657. }), options;
  9658. };
  9659. var errors;
  9660. var App = {
  9661. init : function(params) {
  9662. var data = params || res.experience.getExperience();
  9663. config.setComponentsModel(data.components);
  9664. forEach()(data.views, main);
  9665. forEach()(data.views, function(opts, idView) {
  9666. if (opts.aliasFor) {
  9667. win.nike.unite.views[idView] = win.nike.unite.views[opts.aliasFor];
  9668. }
  9669. });
  9670. }
  9671. };
  9672. var config = {
  9673. component : module.render,
  9674. init : App.init,
  9675. layout : renderer.render,
  9676. views : {},
  9677. setComponentsModel : renderer.setComponentsModel
  9678. };
  9679. var assert = errors = {
  9680. handleUnexpected : function(c, error) {
  9681. if (0 === error) {
  9682. errors.connection();
  9683. } else {
  9684. errors.general(c, error);
  9685. }
  9686. },
  9687. general : function(result, name) {
  9688. return errors.byKey("general.error.connect", result, name);
  9689. },
  9690. connection : function() {
  9691. return errors.byKey("connection.error");
  9692. },
  9693. byKey : function(i, str, key) {
  9694. var fluid = res.experience.getExperience();
  9695. var ret = now()(fluid.components.errorPanel);
  9696. var conn = ret.byKey[i];
  9697. if (!conn) {
  9698. conn = ret.byKey["general.error.connect"];
  9699. }
  9700. var s = {
  9701. hiddenCode : key,
  9702. hiddenResult : str && JSON.stringify(str)
  9703. };
  9704. delete (ret = callback({}, ret, conn, s.hiddenCode && {
  9705. hiddenCode : key
  9706. }, s.hiddenResult && {
  9707. hiddenResult : s.hiddenResult
  9708. })).byKey;
  9709. config.views.error.render({
  9710. errorPanel : ret
  9711. });
  9712. },
  9713. social : function(options, req) {
  9714. return errors.byKey("socialNetwork.update.failure", options, req);
  9715. },
  9716. coppa : function(options, date) {
  9717. return win.document.cookie = "coppa=true;max-age=86400", win.nike.unite.destroyAllViews(), errors.byKey("EmailSignup.dateOfBirth.InvalidCOPPAweb", options, date);
  9718. },
  9719. previousCoppaFailure : function(options, date) {
  9720. return win.nike.unite.destroyAllViews(), errors.byKey("previous.coppa.failure", options, date);
  9721. }
  9722. };
  9723. var Console_error = {
  9724. display : function(options, i, display) {
  9725. Offcanvas.hide();
  9726. assert.byKey(options, i, display);
  9727. }
  9728. };
  9729. var fork = self.getInstance();
  9730. var FORK_ONLINE = self.LOGIN_SUCCESS;
  9731. var n = self.LOGIN_FAILURE;
  9732. var pages = {
  9733. login : function() {
  9734. var params = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  9735. var iv = params.iv;
  9736. var token = params.code;
  9737. var data = params.data;
  9738. return "string" != typeof iv ? $window.a.reject(new Error("Required: {string} 'data.iv' was not of type string.")) : "string" != typeof token ? $window.a.reject(new Error("Required: {string} 'data.code' was not of type string.")) : "string" != typeof data ? $window.a.reject(new Error("Required: {string} 'data.data' was not of type string.")) : connection.start({
  9739. iv : iv,
  9740. code : token,
  9741. data : data,
  9742. network : "wechatmini"
  9743. }, true).then(app.start).then(function(der) {
  9744. var res = callback({}, der, {
  9745. view : "login"
  9746. });
  9747. return fork.emit(FORK_ONLINE, res), $window.a.resolve(res);
  9748. }).catch(function(res) {
  9749. return res.socialProvider = "wechatmini", fork.emit(n, res), $window.a.reject(res);
  9750. });
  9751. }
  9752. };
  9753. var expandel = self.getInstance();
  9754. var previousBR = {
  9755. join : function() {
  9756. var results = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  9757. var id = results.phoneData;
  9758. var userData = results.userData;
  9759. return new $window.a(function(resolve) {
  9760. /**
  9761. * @param {!Object} message
  9762. * @param {string} action
  9763. * @return {?}
  9764. */
  9765. var dispatch = function(message, action) {
  9766. message.meta;
  9767. var result = test(message, ["meta"]);
  9768. return resolve(callback({}, result, {
  9769. view : action
  9770. }));
  9771. };
  9772. expandel.on("join:success", function(e) {
  9773. return dispatch(e, "join");
  9774. });
  9775. expandel.on("login:success", function(e) {
  9776. return dispatch(e, "login");
  9777. });
  9778. if (id && id.code) {
  9779. ObjectOperation.weChatMiniPhoneExchange(id).then(function() {
  9780. var args = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  9781. var phoneNumber = args.phoneNumber;
  9782. var load_from_variable = args.verifiedPhoneToken;
  9783. if (!function() {
  9784. return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "").startsWith("+86");
  9785. }(phoneNumber)) {
  9786. blocks.start(callback({}, userData, {
  9787. event : "weChatMiniMobileJoinRender",
  9788. provider : "wechatmini"
  9789. }));
  9790. } else {
  9791. blocks.start(callback({
  9792. mobileNumber : phoneNumber.substring(1),
  9793. registrationToken : load_from_variable
  9794. }, userData, {
  9795. event : "weChatMiniMobileJoinContinueRender",
  9796. provider : "wechatmini"
  9797. }));
  9798. }
  9799. }).catch(function() {
  9800. blocks.start(callback({}, userData, {
  9801. event : "weChatMiniMobileJoinRender",
  9802. provider : "wechatmini"
  9803. }));
  9804. });
  9805. } else {
  9806. blocks.start(callback({}, userData, {
  9807. event : "weChatMiniMobileJoinRender",
  9808. provider : "wechatmini"
  9809. }));
  9810. }
  9811. });
  9812. }
  9813. };
  9814. var renderingWorker = self.getInstance();
  9815. var body = callback({
  9816. cancelLogin : function() {
  9817. Offcanvas.hide();
  9818. },
  9819. login : function(data) {
  9820. Offcanvas.show();
  9821. a["".concat(data.provider.toLowerCase(), "Service")].getSocialData(function(connection) {
  9822. var provider = connection.provider;
  9823. var t = connection.token;
  9824. var user = connection.user;
  9825. hosts.socialFlow.start({
  9826. provider : provider,
  9827. token : t,
  9828. user : user
  9829. });
  9830. }, function(data) {
  9831. Offcanvas.hide();
  9832. assert.social(data, data.error && data.error.code);
  9833. }, data);
  9834. },
  9835. wechatmini : callback({}, pages, previousBR, {
  9836. link : function() {
  9837. var state = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  9838. var route = state.code;
  9839. var iv = state.iv;
  9840. var r = state.data;
  9841. return "string" != typeof route ? $window.a.reject(new Error("Required: {string} 'userData.code' was not of type string.")) : new $window.a(function(when) {
  9842. renderingWorker.on("login:success", function(n) {
  9843. n.meta;
  9844. var b = test(n, ["meta"]);
  9845. return when(callback({}, b, {
  9846. view : "login"
  9847. }));
  9848. });
  9849. renderingWorker.on("join:success", function(n) {
  9850. n.meta;
  9851. var b = test(n, ["meta"]);
  9852. return when(callback({}, b, {
  9853. view : "join"
  9854. }));
  9855. });
  9856. blocks.start({
  9857. code : route,
  9858. iv : iv,
  9859. data : r,
  9860. event : "linkRender",
  9861. provider : "wechatmini"
  9862. });
  9863. });
  9864. }
  9865. })
  9866. }, {
  9867. link : function() {
  9868. var response = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  9869. var token = response.code;
  9870. var iv = response.iv;
  9871. var data = response.data;
  9872. var accessToken = response.accessToken;
  9873. var username = response.socialToken;
  9874. var name = response.provider;
  9875. var user_id = response.userId;
  9876. var publicKeySignatureBody = response.networkUserId;
  9877. if ("string" != typeof accessToken) {
  9878. return $window.a.reject(new Error("Required: {string} 'userData.accessToken' was not of type string."));
  9879. }
  9880. if ("string" != typeof name) {
  9881. return $window.a.reject(new Error("Required: {string} 'userData.provider' was not of type string."));
  9882. }
  9883. if ("string" != typeof user_id) {
  9884. return $window.a.reject(new Error("Required: {string} 'userData.userId' was not of type string."));
  9885. }
  9886. if ("wechatmini" === name) {
  9887. if ("string" != typeof token) {
  9888. return $window.a.reject(new Error("Required: {string} 'userData.code' was not of type string."));
  9889. }
  9890. if ("string" != typeof iv) {
  9891. return $window.a.reject(new Error("Required: {string} 'userData.iv' was not of type string."));
  9892. }
  9893. if ("string" != typeof data) {
  9894. return $window.a.reject(new Error("Required: {string} 'userData.data' was not of type string."));
  9895. }
  9896. }
  9897. return worker.start({
  9898. loginResponse : {
  9899. user_id : user_id,
  9900. access_token : accessToken
  9901. },
  9902. socialModel : {
  9903. socialInputs : {
  9904. network : name,
  9905. networkToken : token || username,
  9906. networkUserId : publicKeySignatureBody
  9907. }
  9908. },
  9909. iv : iv,
  9910. data : data
  9911. }).then(function() {
  9912. return $window.a.resolve(true);
  9913. }).catch(function(rejectionValue) {
  9914. return $window.a.reject(rejectionValue);
  9915. });
  9916. }
  9917. });
  9918. var mch = self.getInstance();
  9919. var url = self.LOGIN_FAILURE;
  9920. var deferred = {
  9921. appRegainsFocus : function(a) {
  9922. if ("string" == typeof a && a.indexOf("com.facebook.sdk_client_state") >= 0 && a.indexOf("error_reason=user_denied") < 0) {
  9923. Offcanvas.show();
  9924. }
  9925. },
  9926. gigyaCancel : function() {
  9927. Offcanvas.hide();
  9928. },
  9929. gigyaComplete : function(username, email, userId, provider) {
  9930. var data = {
  9931. token : email,
  9932. provider : provider,
  9933. user : username
  9934. };
  9935. hosts.socialFlow.start(data);
  9936. },
  9937. gigyaError : function(str, obj) {
  9938. Offcanvas.hide();
  9939. assert.social(obj, str);
  9940. },
  9941. gigyaLogin : function(socialProvider) {
  9942. mch.emit(url, {
  9943. socialProvider : socialProvider
  9944. });
  9945. assert.social();
  9946. },
  9947. socialComplete : function(data) {
  9948. var response = callback({}, data);
  9949. if ("wechat" === data.provider.toLowerCase()) {
  9950. response = {
  9951. code : data.token,
  9952. provider : data.provider,
  9953. user : data.user
  9954. };
  9955. }
  9956. body.login(response);
  9957. }
  9958. };
  9959. var Login = self.getInstance();
  9960. var rest = {};
  9961. traverse(rest, {
  9962. completeState : function(data) {
  9963. if ("string" != typeof data || !data) {
  9964. throw new Error("state param must be a non-empty string");
  9965. }
  9966. /**
  9967. * @param {!Object} valid
  9968. * @return {undefined}
  9969. */
  9970. var update = function(valid) {
  9971. win.nike.unite.destroyAllViews();
  9972. Login.emit(self.getEvent(["user", data, "failure"]), {
  9973. errorMessage : valid.message,
  9974. stateKey : data
  9975. });
  9976. };
  9977. instance.getCredential(function(canCreateDiscussions) {
  9978. if (!canCreateDiscussions) {
  9979. throw new Error("Missing credentials");
  9980. }
  9981. instance.getUserProfile(function(res) {
  9982. values.start([data], {
  9983. forceRender : true,
  9984. getUserResponse : res,
  9985. loginResponse : canCreateDiscussions
  9986. }).then(function() {
  9987. return instance.setUserProfile(res, function() {
  9988. win.nike.unite.destroyAllViews();
  9989. Login.emit(self.getEvent(["user", data, "success"]), {
  9990. stateKey : data
  9991. });
  9992. });
  9993. }).catch(update);
  9994. }, update);
  9995. }, update);
  9996. },
  9997. completeStateWithCredential : function(fn, value) {
  9998. instance.setCredential(value, null, null, function() {
  9999. rest.completeState(fn);
  10000. });
  10001. },
  10002. getViewModel : function(data) {
  10003. var event = {
  10004. progressiveForm : {
  10005. hiddenFields : {
  10006. stateKey : data
  10007. }
  10008. }
  10009. };
  10010. switch(data) {
  10011. case "isLegallyCompliant":
  10012. /** @type {boolean} */
  10013. event.override = true;
  10014. event.verifyMobileNumber = {
  10015. "supportedList!" : [{
  10016. country : "CN",
  10017. text : "\u4e2d\u56fd",
  10018. code : "86"
  10019. }],
  10020. rules : [{}, {}, {
  10021. "value!" : {
  10022. pattern : "^861[0-9]{10}$"
  10023. }
  10024. }]
  10025. };
  10026. }
  10027. return event;
  10028. },
  10029. getState : function(name, callback, fn) {
  10030. if ("string" != typeof name || !name) {
  10031. throw new Error("state param must be a non-empty string");
  10032. }
  10033. if ("function" != typeof callback) {
  10034. throw new Error("onSuccess needs to be a function or undefined");
  10035. }
  10036. if ("function" != typeof fn) {
  10037. throw new Error("onError needs to be a function or undefined");
  10038. }
  10039. instance.getUserProfile(function(currentAppUser) {
  10040. var data = {
  10041. user : currentAppUser
  10042. };
  10043. instance.getCredential(function(response) {
  10044. if (response) {
  10045. data.access_token = response.access_token;
  10046. server.getUserState(name, data).then(callback).catch(fn);
  10047. } else {
  10048. callback(null);
  10049. }
  10050. }, fn);
  10051. }, fn);
  10052. },
  10053. doesAccountExist : function() {
  10054. var name = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).email;
  10055. return "string" != typeof name ? Promise.reject(new Error("Required: {string} 'data.email' was not of type string.")) : User.checkEmailWithPromise(name);
  10056. }
  10057. });
  10058. var json = rest;
  10059. var $mmEvents = self.getInstance();
  10060. var views = {
  10061. login : function() {
  10062. return new $window.a(function(when) {
  10063. /**
  10064. * @param {!Object} e
  10065. * @param {string} text
  10066. * @return {?}
  10067. */
  10068. var dispatch = function(e, text) {
  10069. e.meta;
  10070. var b = test(e, ["meta"]);
  10071. return when(callback({}, b, {
  10072. view : text
  10073. }));
  10074. };
  10075. $mmEvents.on("join:**:success", function(e) {
  10076. return dispatch(e, "join");
  10077. });
  10078. $mmEvents.on("login:**:success", function(e) {
  10079. return dispatch(e, "login");
  10080. });
  10081. win.nike.unite.destroyAllViews();
  10082. config.views.login.render();
  10083. });
  10084. }
  10085. };
  10086. var groupPermissionsRef = self.getInstance();
  10087. var channel = {
  10088. join : function(name) {
  10089. return new $window.a(function(resolve) {
  10090. /**
  10091. * @param {!Object} message
  10092. * @param {string} action
  10093. * @return {?}
  10094. */
  10095. var dispatch = function(message, action) {
  10096. message.meta;
  10097. var result = test(message, ["meta"]);
  10098. return resolve(callback({}, result, {
  10099. view : action
  10100. }));
  10101. };
  10102. groupPermissionsRef.on("join:**:success", function(e) {
  10103. return dispatch(e, "join");
  10104. });
  10105. groupPermissionsRef.on("login:**:success", function(e) {
  10106. return dispatch(e, "login");
  10107. });
  10108. win.nike.unite.destroyAllViews();
  10109. if (res.experience.getExperience().settings.swooshEnabled) {
  10110. timerelative.start(name);
  10111. } else {
  10112. config.views.join.render(name);
  10113. }
  10114. });
  10115. }
  10116. };
  10117. var format;
  10118. var node;
  10119. var mainDivID;
  10120. var Vs;
  10121. var moduleMapping = {
  10122. expose : function() {
  10123. var opts = utils.namespace("nike.unite");
  10124. var watcher = utils.namespace("api", opts);
  10125. sort()(watcher, callback({
  10126. error : Console_error,
  10127. social : body,
  10128. user : json
  10129. }, views, channel));
  10130. var b = utils.namespace("external", opts);
  10131. sort()(b, deferred);
  10132. }
  10133. };
  10134. var button2 = $(233);
  10135. var button = $.n(button2);
  10136. /** @type {number} */
  10137. var end = 1900;
  10138. var Languages = {
  10139. ar : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]
  10140. };
  10141. var gobel;
  10142. var formdialog = {
  10143. init : function() {
  10144. var note = utils.browser.getShim();
  10145. switch(note.browser) {
  10146. case "firefox":
  10147. throwEx();
  10148. break;
  10149. case "msie":
  10150. if ("11" === note.version) {
  10151. throwEx();
  10152. }
  10153. break;
  10154. case "safari":
  10155. if ("desktop" === note.platform) {
  10156. throwEx();
  10157. }
  10158. break;
  10159. default:
  10160. if ("android" === note.platform) {
  10161. throwEx();
  10162. }
  10163. }
  10164. }
  10165. };
  10166. var $document = self.getInstance();
  10167. var ic;
  10168. var methods = {
  10169. hide : hideMenu,
  10170. init : function() {
  10171. if ("ios" === utils.browser.getShim().browser) {
  10172. onChange();
  10173. }
  10174. },
  10175. reset : onChange,
  10176. show : showMenu
  10177. };
  10178. var model = $(235);
  10179. var car = $.n(model);
  10180. var __WEBPACK_IMPORTED_MODULE_5__material_checkboxes_html__ = $(241);
  10181. var validateWithRE = $.n(__WEBPACK_IMPORTED_MODULE_5__material_checkboxes_html__);
  10182. var selector = {
  10183. entity : {
  10184. postalCode : "location.code",
  10185. country : "location.country",
  10186. gender : {
  10187. _path : "gender",
  10188. _type : "gender"
  10189. },
  10190. height : {
  10191. _path : "measurements.height",
  10192. _type : "float"
  10193. },
  10194. weight : {
  10195. _path : "measurements.weight",
  10196. _type : "float"
  10197. },
  10198. distanceUnit : "preferences.distanceUnit",
  10199. city : "location.locality",
  10200. state : "location.province",
  10201. countyDistrict : "location.zone",
  10202. firstName : "name.latin.given",
  10203. lastName : "name.latin.family",
  10204. dateOfBirth : {
  10205. _path : "dob.date",
  10206. _type : "date"
  10207. },
  10208. id : "upmId",
  10209. optIns : null,
  10210. middleName : "name.latin.middle",
  10211. locale : "locale",
  10212. receiveEmail : {
  10213. _path : "marketing.email",
  10214. _type : "stringifiedBinary"
  10215. },
  10216. receiveSms : {
  10217. _path : "marketing.sms",
  10218. _type : "boolean"
  10219. },
  10220. dataShareOptIns : {
  10221. _type : "dataShareOptIns",
  10222. _path : "marketing.dataShare"
  10223. },
  10224. account : {
  10225. id : "upmId",
  10226. email : "emails.primary.email",
  10227. access : null,
  10228. nikePlusId : null,
  10229. notComplex : {
  10230. _type : "constant",
  10231. _value : false
  10232. },
  10233. passwordSettings : null,
  10234. screenName : "screenname",
  10235. isAutoGenSN : {
  10236. _path : "account.registration.wasScreenNameAutoGenerated",
  10237. _type : "boolean"
  10238. },
  10239. type : {
  10240. _path : "userType",
  10241. _type : "userType"
  10242. },
  10243. externalUserId : "nuId"
  10244. },
  10245. registrationSiteId : "account.registration.siteId",
  10246. mobileNumber : "phones.mobile.phone",
  10247. jpLastNameKana : "name.kana.family",
  10248. jpFirstNameKana : "name.kana.given",
  10249. jpKNumber : null,
  10250. cnEducation : null,
  10251. cnCareer : null,
  10252. cnFavoriteSports : null,
  10253. cnIdNum : "chinaId",
  10254. fuelActivationDate : null,
  10255. heightUnit : "preferences.heightUnit",
  10256. weightUnit : "preferences.weightUnit",
  10257. avatar : {
  10258. _path : "avatar",
  10259. _type : "avatar"
  10260. },
  10261. bio : "motto",
  10262. links : null,
  10263. mspFirstName : "name.latin.given",
  10264. mspLastName : "name.latin.family",
  10265. mspGender : "gender",
  10266. mspDateOfBirth : {
  10267. _path : "dob.date",
  10268. _type : "date"
  10269. },
  10270. mspEmail : "emails.primary.email",
  10271. mspScreenName : "screenname",
  10272. emailOnly : {
  10273. _path : "emailOnly",
  10274. _type : "boolean"
  10275. },
  10276. ofRequiredAge : {
  10277. _type : "constant",
  10278. _value : false
  10279. },
  10280. shoeSize : "measurements.shoeSizeAlpha",
  10281. shoeSizeUnit : "preferences.shoeSizeUnit",
  10282. shoeInfoUpdatedByApp : null,
  10283. registrationDate : null
  10284. },
  10285. links : {
  10286. _type : "constant",
  10287. _value : []
  10288. },
  10289. statusOverview : {
  10290. statusIndicator : {
  10291. _value : "success",
  10292. _type : "constant"
  10293. },
  10294. messages : {
  10295. _type : "constant",
  10296. _value : []
  10297. },
  10298. durationInMS : null
  10299. }
  10300. };
  10301. var AssignmentTab = {
  10302. convert : findUser,
  10303. init : function() {
  10304. if (!ic) {
  10305. /** @type {boolean} */
  10306. ic = true;
  10307. /** @type {function(!Object): ?} */
  10308. var button = app.start;
  10309. /**
  10310. * @param {!Object} type
  10311. * @return {?}
  10312. */
  10313. app.start = function(type) {
  10314. return button(type).then(function(data) {
  10315. return (!res.experience.isIdentityBackend() || res.experience.isIdentityBackend() && res.experience.getExperience().settings.useLegacyGetUser) && (data.user = findUser(data.user)), data;
  10316. }).catch(function(e) {
  10317. return new Promise(function(n, enterEventHandler) {
  10318. instance.logout(function() {
  10319. enterEventHandler(e);
  10320. });
  10321. });
  10322. });
  10323. };
  10324. /** @type {function(!Function, !Function): undefined} */
  10325. var filter = window.nike.unite.session.getUserProfile;
  10326. /**
  10327. * @param {!Function} req
  10328. * @param {!Function} callback
  10329. * @return {undefined}
  10330. */
  10331. window.nike.unite.session.getUserProfile = function(req, callback) {
  10332. filter(getUser(req), callback, false);
  10333. };
  10334. /** @type {function(!Function, !Function): undefined} */
  10335. var expect = window.nike.unite.session.getUserProfileWithForceRefresh;
  10336. /**
  10337. * @param {!Function} user
  10338. * @param {!Function} container
  10339. * @return {undefined}
  10340. */
  10341. window.nike.unite.session.getUserProfileWithForceRefresh = function(user, container) {
  10342. expect(getUser(user), container, true);
  10343. };
  10344. /** @type {function(!Function, !Function): undefined} */
  10345. var traverseChildNodeTree = window.nike.unite.session.getCredential;
  10346. /**
  10347. * @param {!Function} e
  10348. * @param {!Function} callback
  10349. * @return {undefined}
  10350. */
  10351. window.nike.unite.session.getCredential = function(e, callback) {
  10352. traverseChildNodeTree(function(x) {
  10353. return x ? getUser(function(currentAppUser) {
  10354. e(callback({}, x, {
  10355. user : currentAppUser
  10356. }));
  10357. })(x.user) : e(null);
  10358. }, callback);
  10359. };
  10360. }
  10361. }
  10362. };
  10363. var scalardashboardtable_methods = {
  10364. init : function() {
  10365. body.completeLoginWithToken = body.login;
  10366. var pa = utils.namespace("nike.unite.social");
  10367. sort()(pa, {
  10368. complete : deferred.gigyaComplete,
  10369. error : deferred.gigyaError
  10370. });
  10371. }
  10372. };
  10373. var parseTemplet = $(243);
  10374. var listenTouchEvent = $.n(parseTemplet);
  10375. /** @type {string} */
  10376. var yyyy = "nike.unite.on";
  10377. var listener = self.getInstance();
  10378. /** @type {!Array} */
  10379. var recycledIds = [];
  10380. var commands = {
  10381. create : function() {
  10382. var channel = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  10383. var n = channel.name;
  10384. var m = channel.namespaces;
  10385. var val = void 0 === m ? [] : m;
  10386. var p = n.lastIndexOf(".");
  10387. var name = n.substr(0, p);
  10388. /** @type {string} */
  10389. name = name.length > 0 ? "".concat(yyyy, ".").concat(name) : yyyy;
  10390. var type = n.substr(p + 1);
  10391. /** @type {boolean} */
  10392. var s = false;
  10393. recycledIds.push.apply(recycledIds, build(val));
  10394. var item = {
  10395. get fired() {
  10396. return s ? 1 : 0;
  10397. },
  10398. set fired(canCreateDiscussions) {
  10399. /** @type {boolean} */
  10400. s = !!canCreateDiscussions;
  10401. },
  10402. handlers : [],
  10403. name : "".concat(name, ".").concat(type),
  10404. namespaces : val,
  10405. addHandler : function(fn) {
  10406. var elem = this;
  10407. var previewKey = utils.generateUuid();
  10408. /**
  10409. * @param {!Object} error
  10410. * @return {undefined}
  10411. */
  10412. var handler = function(error) {
  10413. /** @type {boolean} */
  10414. s = true;
  10415. var stack = require()({}, error, {
  10416. message : error && error.message ? error.message : void 0
  10417. }, at.buildBaseResult());
  10418. try {
  10419. /** @type {number} */
  10420. var length = arguments.length;
  10421. /** @type {!Array} */
  10422. var args = new Array(length > 1 ? length - 1 : 0);
  10423. /** @type {number} */
  10424. var i = 1;
  10425. for (; i < length; i++) {
  10426. args[i - 1] = arguments[i];
  10427. }
  10428. fn.apply(elem, [stack].concat(args));
  10429. } catch (e) {
  10430. console.error("".concat(item.name, " Handler Error"), e);
  10431. }
  10432. };
  10433. return item.handlers.push({
  10434. key : previewKey,
  10435. callback : fn,
  10436. wrappedCallback : handler
  10437. }), each()(val, function(e) {
  10438. listener.on(e, handler);
  10439. }), previewKey;
  10440. },
  10441. getHandler : function(options) {
  10442. var data = dispatch()(item.handlers, {
  10443. key : options
  10444. });
  10445. return data && data.callback ? data.callback : null;
  10446. },
  10447. removeHandler : function(a) {
  10448. var self = query(listenTouchEvent()(item.handlers, {
  10449. key : a
  10450. }), 1)[0];
  10451. return self && self.wrappedCallback ? (each()(item.namespaces, function(topic) {
  10452. listener.off(topic, self.wrappedCallback);
  10453. }), self.callback) : null;
  10454. },
  10455. removeHandlers : function() {
  10456. /** @type {!Array} */
  10457. item.handlers = [];
  10458. each()(item.namespaces, function(event) {
  10459. listener.removeAllListeners(event);
  10460. });
  10461. },
  10462. fire : function() {
  10463. var err = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
  10464. console.error("".concat(item.name, " should not be directly calling fire"));
  10465. /** @type {boolean} */
  10466. s = true;
  10467. if (item.namespaces && 0 !== item.namespaces.length) {
  10468. listener.emit(item.namespaces[0], require()({}, err, {
  10469. message : err.message
  10470. }, at.buildBaseResult()));
  10471. }
  10472. }
  10473. };
  10474. utils.namespace(name)[type] = item;
  10475. /**
  10476. * @param {string} type
  10477. * @return {?}
  10478. */
  10479. item.handlers.add = function(type) {
  10480. return item.addHandler(type);
  10481. };
  10482. },
  10483. reset : function() {
  10484. each()(recycledIds, function(event) {
  10485. listener.removeAllListeners(event);
  10486. });
  10487. recycledIds.splice(0, 1 / 0);
  10488. }
  10489. };
  10490. var service = {
  10491. init : function() {
  10492. action();
  10493. },
  10494. resultBuilder : at,
  10495. reset : function() {
  10496. commands.reset();
  10497. action();
  10498. }
  10499. };
  10500. var easyTooltip = {
  10501. init : function() {
  10502. service.init();
  10503. scalardashboardtable_methods.init();
  10504. AssignmentTab.init();
  10505. methods.init();
  10506. formdialog.init();
  10507. }
  10508. };
  10509. responses.default = {
  10510. init : function() {
  10511. rightcol.nikeUniteInitTimeout();
  10512. self.getInstance();
  10513. Queue.getInstance();
  10514. Initialization.start();
  10515. instance.initialize();
  10516. easyTooltip.init();
  10517. moduleMapping.expose();
  10518. adapter.start();
  10519. }
  10520. };
  10521. }, function(module, n, factory) {
  10522. module.exports = factory(28);
  10523. }, function(mixin, n, __webpack_require__) {
  10524. var parser = __webpack_require__(26);
  10525. var normalize = __webpack_require__(24);
  10526. var b = __webpack_require__(105);
  10527. var isArray = __webpack_require__(18);
  10528. /**
  10529. * @param {!Object} obj
  10530. * @param {number} filter
  10531. * @return {?}
  10532. */
  10533. mixin.exports = function(obj, filter) {
  10534. return (isArray(obj) ? parser : b)(obj, normalize(filter, 3));
  10535. };
  10536. }, function(module, n) {
  10537. /** @type {function(*): boolean} */
  10538. var isArray = Array.isArray;
  10539. /** @type {function(*): boolean} */
  10540. module.exports = isArray;
  10541. }, function(mixin, n, makeParser) {
  10542. var parser = makeParser(60);
  10543. /**
  10544. * @param {!Object} string
  10545. * @param {number} data
  10546. * @param {number} name
  10547. * @return {?}
  10548. */
  10549. mixin.exports = function(string, data, name) {
  10550. var index = null == string ? void 0 : parser(string, data);
  10551. return void 0 === index ? name : index;
  10552. };
  10553. }, function(mixin, n) {
  10554. /**
  10555. * @param {!Object} o
  10556. * @return {?}
  10557. */
  10558. mixin.exports = function(o) {
  10559. /** @type {string} */
  10560. var tp = typeof o;
  10561. return null != o && ("object" == tp || "function" == tp);
  10562. };
  10563. }, function(module, n, __webpack_require__) {
  10564. var getPrototype = __webpack_require__(42)(Object.keys, Object);
  10565. module.exports = getPrototype;
  10566. }, function(module, n, saveNotifs) {
  10567. var assertAnalysis = saveNotifs(96);
  10568. var storeMixin = saveNotifs(39)(function(alphanumeric, n, expected1) {
  10569. assertAnalysis(alphanumeric, n, expected1);
  10570. });
  10571. module.exports = storeMixin;
  10572. }, function(mixin, n, saveNotifs) {
  10573. var traverseChildNodeTree = saveNotifs(38);
  10574. var addTree = saveNotifs(51);
  10575. /**
  10576. * @param {!Object} items
  10577. * @param {number} value
  10578. * @param {number} obj
  10579. * @param {string} callback
  10580. * @return {?}
  10581. */
  10582. mixin.exports = function(items, value, obj, callback) {
  10583. /** @type {boolean} */
  10584. var isNew = !obj;
  10585. if (!obj) {
  10586. obj = {};
  10587. }
  10588. /** @type {number} */
  10589. var i = -1;
  10590. var j = value.length;
  10591. for (; ++i < j;) {
  10592. var key = value[i];
  10593. var result = callback ? callback(obj[key], items[key], key, obj, items) : void 0;
  10594. if (void 0 === result) {
  10595. result = items[key];
  10596. }
  10597. if (isNew) {
  10598. addTree(obj, key, result);
  10599. } else {
  10600. traverseChildNodeTree(obj, key, result);
  10601. }
  10602. }
  10603. return obj;
  10604. };
  10605. }, function(mixin, n, require) {
  10606. var stringify = require(140);
  10607. var parse = require(147);
  10608. var val = require(53);
  10609. var isString = require(18);
  10610. var escape = require(150);
  10611. /**
  10612. * @param {?} str
  10613. * @return {?}
  10614. */
  10615. mixin.exports = function(str) {
  10616. return "function" == typeof str ? str : null == str ? val : "object" == typeof str ? isString(str) ? parse(str[0], str[1]) : stringify(str) : escape(str);
  10617. };
  10618. }, function(mixin, n, require) {
  10619. var gen = require(54);
  10620. var fn = require(74);
  10621. /**
  10622. * @param {!Object} obj
  10623. * @return {?}
  10624. */
  10625. mixin.exports = function(obj) {
  10626. return null != obj && fn(obj.length) && !gen(obj);
  10627. };
  10628. }, function(mixin, n) {
  10629. /**
  10630. * @param {!Object} arr
  10631. * @param {number} fn
  10632. * @return {?}
  10633. */
  10634. mixin.exports = function(arr, fn) {
  10635. /** @type {number} */
  10636. var i = -1;
  10637. var length = null == arr ? 0 : arr.length;
  10638. /** @type {!Array} */
  10639. var result = Array(length);
  10640. for (; ++i < length;) {
  10641. result[i] = fn(arr[i], i, arr);
  10642. }
  10643. return result;
  10644. };
  10645. }, function(mixin, n, require) {
  10646. var stringifyStyle = require(82);
  10647. var wrap = require(84);
  10648. var formatter = require(132);
  10649. var toInteger = require(133);
  10650. var $ = require(86);
  10651. var walk = require(36);
  10652. /** @type {!RegExp} */
  10653. var image_re = /^\s+|\s+$/g;
  10654. /**
  10655. * @param {!Object} e
  10656. * @param {number} value
  10657. * @param {string} object
  10658. * @return {?}
  10659. */
  10660. mixin.exports = function(e, value, object) {
  10661. if ((e = walk(e)) && (object || void 0 === value)) {
  10662. return e.replace(image_re, "");
  10663. }
  10664. if (!e || !(value = stringifyStyle(value))) {
  10665. return e;
  10666. }
  10667. var x = $(e);
  10668. var axis = $(value);
  10669. var i = toInteger(x, axis);
  10670. var hard = formatter(x, axis) + 1;
  10671. return wrap(x, i, hard).join("");
  10672. };
  10673. }, function(mixin, n, __webpack_require__) {
  10674. var parser = __webpack_require__(57);
  10675. var secondParser = __webpack_require__(46);
  10676. var normalize = __webpack_require__(89);
  10677. var defined = __webpack_require__(18);
  10678. /**
  10679. * @param {!Object} obj2
  10680. * @param {number} filter
  10681. * @return {?}
  10682. */
  10683. mixin.exports = function(obj2, filter) {
  10684. return (defined(obj2) ? parser : secondParser)(obj2, normalize(filter));
  10685. };
  10686. }, function(mixin, n, saveNotifs) {
  10687. var checkedSubscribe = saveNotifs(35);
  10688. /** @type {number} */
  10689. var INFINITY = 1 / 0;
  10690. /**
  10691. * @param {number} arg
  10692. * @return {?}
  10693. */
  10694. mixin.exports = function(arg) {
  10695. if ("string" == typeof arg || checkedSubscribe(arg)) {
  10696. return arg;
  10697. }
  10698. /** @type {string} */
  10699. var val = arg + "";
  10700. return "0" == val && 1 / arg == -INFINITY ? "-0" : val;
  10701. };
  10702. }, function(mixin, n) {
  10703. /**
  10704. * @param {!Object} obj
  10705. * @return {?}
  10706. */
  10707. mixin.exports = function(obj) {
  10708. return null != obj && "object" == typeof obj;
  10709. };
  10710. }, function(mixin, n) {
  10711. /** @type {function(this:*): string} */
  10712. var objectToString$2 = Object.prototype.toString;
  10713. /**
  10714. * @param {!Object} value
  10715. * @return {?}
  10716. */
  10717. mixin.exports = function(value) {
  10718. return objectToString$2.call(value);
  10719. };
  10720. }, function(mixin, n) {
  10721. /**
  10722. * @param {!Object} object
  10723. * @return {?}
  10724. */
  10725. mixin.exports = function(object) {
  10726. /** @type {!Array} */
  10727. var n = [];
  10728. if (null != object) {
  10729. var key;
  10730. for (key in Object(object)) {
  10731. n.push(key);
  10732. }
  10733. }
  10734. return n;
  10735. };
  10736. }, function(mixin, n) {
  10737. /**
  10738. * @return {?}
  10739. */
  10740. mixin.exports = function() {
  10741. return false;
  10742. };
  10743. }, function(mixin, n, __webpack_require__) {
  10744. var isArray = __webpack_require__(18);
  10745. var isKey = __webpack_require__(61);
  10746. var stringToPath = __webpack_require__(129);
  10747. var resolve = __webpack_require__(36);
  10748. /**
  10749. * @param {!Object} value
  10750. * @param {number} object
  10751. * @return {?}
  10752. */
  10753. mixin.exports = function(value, object) {
  10754. return isArray(value) ? value : isKey(value, object) ? [value] : stringToPath(resolve(value));
  10755. };
  10756. }, function(mixin, n) {
  10757. /**
  10758. * @return {?}
  10759. */
  10760. mixin.exports = function() {
  10761. return false;
  10762. };
  10763. }, function(mixin, n, makeParser) {
  10764. var parser = makeParser(82);
  10765. /**
  10766. * @param {!Object} string
  10767. * @return {?}
  10768. */
  10769. mixin.exports = function(string) {
  10770. return null == string ? "" : parser(string);
  10771. };
  10772. }, function(mixin, n) {
  10773. /**
  10774. * @param {!Array} property
  10775. * @param {number} value
  10776. * @param {number} count
  10777. * @return {?}
  10778. */
  10779. mixin.exports = function(property, value, count) {
  10780. /** @type {number} */
  10781. var i = count - 1;
  10782. var index = property.length;
  10783. for (; ++i < index;) {
  10784. if (property[i] === value) {
  10785. return i;
  10786. }
  10787. }
  10788. return -1;
  10789. };
  10790. }, function(mixin, n, __webpack_require__) {
  10791. var getOrSetConfigByTemplateWithId = __webpack_require__(51);
  10792. var has = __webpack_require__(52);
  10793. /** @type {function(this:Object, *): boolean} */
  10794. var hasOwnProperty = Object.prototype.hasOwnProperty;
  10795. /**
  10796. * @param {!Array} data
  10797. * @param {number} key
  10798. * @param {?} value
  10799. * @return {undefined}
  10800. */
  10801. mixin.exports = function(data, key, value) {
  10802. var options = data[key];
  10803. if (!(hasOwnProperty.call(data, key) && has(options, value) && (void 0 !== value || key in data))) {
  10804. getOrSetConfigByTemplateWithId(data, key, value);
  10805. }
  10806. };
  10807. }, function(mixin, n, require) {
  10808. var sparqlQuery = require(40);
  10809. var diff = require(41);
  10810. /**
  10811. * @param {!Object} f
  10812. * @return {?}
  10813. */
  10814. mixin.exports = function(f) {
  10815. return sparqlQuery(function(result, a) {
  10816. /** @type {number} */
  10817. var r = -1;
  10818. var k = a.length;
  10819. var m = k > 1 ? a[k - 1] : void 0;
  10820. var context = k > 2 ? a[2] : void 0;
  10821. /** @type {(!Function|undefined)} */
  10822. m = f.length > 3 && "function" == typeof m ? (k--, m) : void 0;
  10823. if (context && diff(a[0], a[1], context)) {
  10824. /** @type {(!Function|undefined)} */
  10825. m = k < 3 ? void 0 : m;
  10826. /** @type {number} */
  10827. k = 1;
  10828. }
  10829. /** @type {!Object} */
  10830. result = Object(result);
  10831. for (; ++r < k;) {
  10832. var i = a[r];
  10833. if (i) {
  10834. f(result, i, r, m);
  10835. }
  10836. }
  10837. return result;
  10838. });
  10839. };
  10840. }, function(mixin, n, $) {
  10841. var classes = $(53);
  10842. var i = $(72);
  10843. var callback = $(73);
  10844. /**
  10845. * @param {string} str
  10846. * @param {number} o
  10847. * @return {?}
  10848. */
  10849. mixin.exports = function(str, o) {
  10850. return callback(i(str, o, classes), str + "");
  10851. };
  10852. }, function(mixin, n) {
  10853. /**
  10854. * @return {?}
  10855. */
  10856. mixin.exports = function() {
  10857. return false;
  10858. };
  10859. }, function(mixin, n) {
  10860. /**
  10861. * @param {!Object} func
  10862. * @param {number} transform
  10863. * @return {?}
  10864. */
  10865. mixin.exports = function(func, transform) {
  10866. return function(type) {
  10867. return func(transform(type));
  10868. };
  10869. };
  10870. }, function(module, n, __webpack_require__) {
  10871. /**
  10872. * @param {!Object} o
  10873. * @return {undefined}
  10874. */
  10875. function c(o) {
  10876. /** @type {number} */
  10877. var i = -1;
  10878. var numPoistiveTicks = null == o ? 0 : o.length;
  10879. this.clear();
  10880. for (; ++i < numPoistiveTicks;) {
  10881. var m = o[i];
  10882. this.set(m[0], m[1]);
  10883. }
  10884. }
  10885. var listCacheClear = __webpack_require__(112);
  10886. var method = __webpack_require__(113);
  10887. var hashGet = __webpack_require__(114);
  10888. var has = __webpack_require__(115);
  10889. var cookie = __webpack_require__(116);
  10890. c.prototype.clear = listCacheClear;
  10891. c.prototype.delete = method;
  10892. c.prototype.get = hashGet;
  10893. c.prototype.has = has;
  10894. c.prototype.set = cookie;
  10895. /** @type {function(!Object): undefined} */
  10896. module.exports = c;
  10897. }, function(mixin, n, _require) {
  10898. var contains = _require(52);
  10899. /**
  10900. * @param {!Array} obj
  10901. * @param {number} elem
  10902. * @return {?}
  10903. */
  10904. mixin.exports = function(obj, elem) {
  10905. var p = obj.length;
  10906. for (; p--;) {
  10907. if (contains(obj[p][0], elem)) {
  10908. return p;
  10909. }
  10910. }
  10911. return -1;
  10912. };
  10913. }, function(mixin, n) {
  10914. /** @type {function(this:*): string} */
  10915. var objectToString$2 = Object.prototype.toString;
  10916. /**
  10917. * @param {!Object} value
  10918. * @return {?}
  10919. */
  10920. mixin.exports = function(value) {
  10921. return objectToString$2.call(value);
  10922. };
  10923. }, function(mixin, n, require) {
  10924. var r = require(88);
  10925. var m = require(137)(r);
  10926. mixin.exports = m;
  10927. }, function(mixin, n) {
  10928. /**
  10929. * @return {?}
  10930. */
  10931. mixin.exports = function() {
  10932. return false;
  10933. };
  10934. }, function(mixin, n) {
  10935. /**
  10936. * @return {?}
  10937. */
  10938. mixin.exports = function() {
  10939. return false;
  10940. };
  10941. }, function(mixin, n, unescape) {
  10942. var path = unescape(179);
  10943. var test_value = unescape(180);
  10944. /**
  10945. * @param {!Array} ast
  10946. * @param {number} n
  10947. * @param {boolean} value
  10948. * @param {boolean} key
  10949. * @param {!Object} result
  10950. * @return {?}
  10951. */
  10952. mixin.exports = function serialize(ast, n, value, key, result) {
  10953. /** @type {number} */
  10954. var index = -1;
  10955. var start = ast.length;
  10956. if (!value) {
  10957. value = test_value;
  10958. }
  10959. if (!result) {
  10960. /** @type {!Array} */
  10961. result = [];
  10962. }
  10963. for (; ++index < start;) {
  10964. var item = ast[index];
  10965. if (n > 0 && value(item)) {
  10966. if (n > 1) {
  10967. serialize(item, n - 1, value, key, result);
  10968. } else {
  10969. path(result, item);
  10970. }
  10971. } else {
  10972. if (!key) {
  10973. result[result.length] = item;
  10974. }
  10975. }
  10976. }
  10977. return result;
  10978. };
  10979. }, function(mixin, n, unescape) {
  10980. var query = unescape(220);
  10981. var str = unescape(45);
  10982. var json = unescape(47);
  10983. var url = unescape(18);
  10984. var markdown = unescape(25);
  10985. var path = unescape(33);
  10986. var txt = unescape(55);
  10987. var a = unescape(48);
  10988. /** @type {string} */
  10989. var showUserAgentCSS = "[object Map]";
  10990. /** @type {string} */
  10991. var expandShorthandProps = "[object Set]";
  10992. /** @type {function(this:Object, *): boolean} */
  10993. var hasOwnProperty = Object.prototype.hasOwnProperty;
  10994. /**
  10995. * @param {!Object} data
  10996. * @return {?}
  10997. */
  10998. mixin.exports = function(data) {
  10999. if (null == data) {
  11000. return true;
  11001. }
  11002. if (markdown(data) && (url(data) || "string" == typeof data || "function" == typeof data.splice || path(data) || a(data) || json(data))) {
  11003. return !data.length;
  11004. }
  11005. var name = str(data);
  11006. if (name == showUserAgentCSS || name == expandShorthandProps) {
  11007. return !data.size;
  11008. }
  11009. if (txt(data)) {
  11010. return !query(data).length;
  11011. }
  11012. var prop;
  11013. for (prop in data) {
  11014. if (hasOwnProperty.call(data, prop)) {
  11015. return false;
  11016. }
  11017. }
  11018. return true;
  11019. };
  11020. }, function(mixin, n, __webpack_require__) {
  11021. var defineProperty = __webpack_require__(109);
  11022. /**
  11023. * @param {!Array} instance
  11024. * @param {number} key
  11025. * @param {string} value
  11026. * @return {undefined}
  11027. */
  11028. mixin.exports = function(instance, key, value) {
  11029. if ("__proto__" == key && defineProperty) {
  11030. defineProperty(instance, key, {
  11031. configurable : true,
  11032. enumerable : true,
  11033. value : value,
  11034. writable : true
  11035. });
  11036. } else {
  11037. /** @type {string} */
  11038. instance[key] = value;
  11039. }
  11040. };
  11041. }, function(mixin, n) {
  11042. /**
  11043. * @param {!Object} type
  11044. * @param {?} object
  11045. * @return {?}
  11046. */
  11047. mixin.exports = function(type, object) {
  11048. return type === object || type != type && object != object;
  11049. };
  11050. }, function(mixin, n) {
  11051. /**
  11052. * @param {!Object} k
  11053. * @return {?}
  11054. */
  11055. mixin.exports = function(k) {
  11056. return k;
  11057. };
  11058. }, function(mixin, n, d3_bisect) {
  11059. var i = d3_bisect(31);
  11060. var index = d3_bisect(20);
  11061. /** @type {string} */
  11062. var compareVariable = "[object AsyncFunction]";
  11063. /** @type {string} */
  11064. var idx1 = "[object Function]";
  11065. /** @type {string} */
  11066. var idx2 = "[object GeneratorFunction]";
  11067. /** @type {string} */
  11068. var root_m = "[object Proxy]";
  11069. /**
  11070. * @param {!Object} text
  11071. * @return {?}
  11072. */
  11073. mixin.exports = function(text) {
  11074. if (!index(text)) {
  11075. return false;
  11076. }
  11077. var m = i(text);
  11078. return m == idx1 || m == idx2 || m == compareVariable || m == root_m;
  11079. };
  11080. }, function(mixin, n) {
  11081. /**
  11082. * @return {?}
  11083. */
  11084. mixin.exports = function() {
  11085. return false;
  11086. };
  11087. }, function(mixin, n, __webpack_require__) {
  11088. var Stack = __webpack_require__(43);
  11089. var arrayEach = __webpack_require__(57);
  11090. var assignValue = __webpack_require__(38);
  11091. var baseAssign = __webpack_require__(117);
  11092. var baseAssignIn = __webpack_require__(118);
  11093. var arrayCopy = __webpack_require__(76);
  11094. var copyArray = __webpack_require__(77);
  11095. var copySymbols = __webpack_require__(121);
  11096. var copySymbolsIn = __webpack_require__(123);
  11097. var getAllKeys = __webpack_require__(78);
  11098. var getAllKeysIn = __webpack_require__(79);
  11099. var get = __webpack_require__(45);
  11100. var initCloneArray = __webpack_require__(125);
  11101. var assign = __webpack_require__(126);
  11102. var initCloneObject = __webpack_require__(80);
  11103. var isArray = __webpack_require__(18);
  11104. var initCloneByTag = __webpack_require__(33);
  11105. var isObject = __webpack_require__(127);
  11106. var isBuffer = __webpack_require__(20);
  11107. var isHostObject = __webpack_require__(128);
  11108. var keys = __webpack_require__(21);
  11109. /** @type {number} */
  11110. var bm = 1;
  11111. /** @type {number} */
  11112. var CLONE_FLAT_FLAG = 2;
  11113. /** @type {number} */
  11114. var CLONE_SYMBOLS_FLAG = 4;
  11115. /** @type {string} */
  11116. var x = "[object Arguments]";
  11117. /** @type {string} */
  11118. var sign = "[object Function]";
  11119. /** @type {string} */
  11120. var EST = "[object GeneratorFunction]";
  11121. /** @type {string} */
  11122. var type = "[object Object]";
  11123. var map = {};
  11124. /** @type {boolean} */
  11125. map[x] = map["[object Array]"] = map["[object ArrayBuffer]"] = map["[object DataView]"] = map["[object Boolean]"] = map["[object Date]"] = map["[object Float32Array]"] = map["[object Float64Array]"] = map["[object Int8Array]"] = map["[object Int16Array]"] = map["[object Int32Array]"] = map["[object Map]"] = map["[object Number]"] = map[type] = map["[object RegExp]"] = map["[object Set]"] = map["[object String]"] = map["[object Symbol]"] = map["[object Uint8Array]"] = map["[object Uint8ClampedArray]"] =
  11126. map["[object Uint16Array]"] = map["[object Uint32Array]"] = true;
  11127. /** @type {boolean} */
  11128. map["[object Error]"] = map[sign] = map["[object WeakMap]"] = false;
  11129. /**
  11130. * @param {!Object} value
  11131. * @param {number} data
  11132. * @param {boolean} callback
  11133. * @param {?} key
  11134. * @param {!Object} object
  11135. * @param {!Object} stack
  11136. * @return {?}
  11137. */
  11138. mixin.exports = function baseClone(value, data, callback, key, object, stack) {
  11139. var result;
  11140. /** @type {number} */
  11141. var p = data & bm;
  11142. /** @type {number} */
  11143. var isFlat = data & CLONE_FLAT_FLAG;
  11144. /** @type {number} */
  11145. var isFull = data & CLONE_SYMBOLS_FLAG;
  11146. if (callback && (result = object ? callback(value, key, object, stack) : callback(value)), void 0 !== result) {
  11147. return result;
  11148. }
  11149. if (!isBuffer(value)) {
  11150. return value;
  11151. }
  11152. var isArr = isArray(value);
  11153. if (isArr) {
  11154. if (result = initCloneArray(value), !p) {
  11155. return copyArray(value, result);
  11156. }
  11157. } else {
  11158. var key = get(value);
  11159. /** @type {boolean} */
  11160. var isFunc = key == sign || key == EST;
  11161. if (initCloneByTag(value)) {
  11162. return arrayCopy(value, p);
  11163. }
  11164. if (key == type || key == x || isFunc && !object) {
  11165. if (result = isFlat || isFunc ? {} : initCloneObject(value), !p) {
  11166. return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));
  11167. }
  11168. } else {
  11169. if (!map[key]) {
  11170. return object ? value : {};
  11171. }
  11172. result = assign(value, key, p);
  11173. }
  11174. }
  11175. if (!stack) {
  11176. stack = new Stack;
  11177. }
  11178. var stacked = stack.get(value);
  11179. if (stacked) {
  11180. return stacked;
  11181. }
  11182. if (stack.set(value, result), isHostObject(value)) {
  11183. return value.forEach(function(key) {
  11184. result.add(baseClone(key, data, callback, key, value, stack));
  11185. }), result;
  11186. }
  11187. if (isObject(value)) {
  11188. return value.forEach(function(c, key) {
  11189. result.set(key, baseClone(c, data, callback, key, value, stack));
  11190. }), result;
  11191. }
  11192. var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;
  11193. var props = isArr ? void 0 : keysFunc(value);
  11194. return arrayEach(props || value, function(name, key) {
  11195. if (props) {
  11196. name = value[key = name];
  11197. }
  11198. assignValue(result, key, baseClone(name, data, callback, key, value, stack));
  11199. }), result;
  11200. };
  11201. }, function(mixin, n) {
  11202. /**
  11203. * @param {!Object} o
  11204. * @param {number} fn
  11205. * @return {?}
  11206. */
  11207. mixin.exports = function(o, fn) {
  11208. /** @type {number} */
  11209. var i = -1;
  11210. var numPoistiveTicks = null == o ? 0 : o.length;
  11211. for (; ++i < numPoistiveTicks && false !== fn(o[i], i, o);) {
  11212. }
  11213. return o;
  11214. };
  11215. }, function(module, n, __webpack_require__) {
  11216. var freeGlobal = __webpack_require__(120);
  11217. /** @type {(Window|boolean)} */
  11218. var freeSelf = "object" == typeof self && self && self.Object === Object && self;
  11219. var storeMixin = freeGlobal || freeSelf || Function("return this")();
  11220. module.exports = storeMixin;
  11221. }, function(module, n, __webpack_require__) {
  11222. var getPrototype = __webpack_require__(42)(Object.getPrototypeOf, Object);
  11223. module.exports = getPrototype;
  11224. }, function(mixin, n, require) {
  11225. var assert = require(34);
  11226. var transform = require(29);
  11227. /**
  11228. * @param {!Object} str
  11229. * @param {number} data
  11230. * @return {?}
  11231. */
  11232. mixin.exports = function(str, data) {
  11233. /** @type {number} */
  11234. var i = 0;
  11235. var l = (data = assert(data, str)).length;
  11236. for (; null != str && i < l;) {
  11237. str = str[transform(data[i++])];
  11238. }
  11239. return i && i == l ? str : void 0;
  11240. };
  11241. }, function(mixin, n, addVertex) {
  11242. var checkedSubscribe = addVertex(18);
  11243. var i = addVertex(35);
  11244. /** @type {!RegExp} */
  11245. var trueRE = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/;
  11246. /** @type {!RegExp} */
  11247. var contribRegex = /^\w*$/;
  11248. /**
  11249. * @param {?} value
  11250. * @param {number} key
  11251. * @return {?}
  11252. */
  11253. mixin.exports = function(value, key) {
  11254. if (checkedSubscribe(value)) {
  11255. return false;
  11256. }
  11257. /** @type {string} */
  11258. var t = typeof value;
  11259. return !("number" != t && "symbol" != t && "boolean" != t && null != value && !i(value)) || contribRegex.test(value) || !trueRE.test(value) || null != key && value in Object(key);
  11260. };
  11261. }, function(module, n, saveNotifs) {
  11262. var storeMixin = saveNotifs(136)();
  11263. module.exports = storeMixin;
  11264. }, function(mixin, n, $) {
  11265. var classes = $(138);
  11266. var i = $(90);
  11267. /**
  11268. * @param {!Object} obj
  11269. * @param {number} key
  11270. * @return {?}
  11271. */
  11272. mixin.exports = function(obj, key) {
  11273. return null != obj && i(obj, key, classes);
  11274. };
  11275. }, function(mixin, n) {
  11276. /** @type {number} */
  11277. var j = 9007199254740991;
  11278. /** @type {!RegExp} */
  11279. var r = /^(?:0|[1-9]\d*)$/;
  11280. /**
  11281. * @param {?} e
  11282. * @param {number} el
  11283. * @return {?}
  11284. */
  11285. mixin.exports = function(e, el) {
  11286. /** @type {string} */
  11287. var t = typeof e;
  11288. return !!(el = null == el ? j : el) && ("number" == t || "symbol" != t && r.test(e)) && e > -1 && e % 1 == 0 && e < el;
  11289. };
  11290. }, function(mixin, n, __webpack_require__) {
  11291. var isArray = __webpack_require__(18);
  11292. /**
  11293. * @return {?}
  11294. */
  11295. mixin.exports = function() {
  11296. if (!arguments.length) {
  11297. return [];
  11298. }
  11299. var type = arguments[0];
  11300. return isArray(type) ? type : [type];
  11301. };
  11302. }, function(mixin, n, require) {
  11303. var is = require(37);
  11304. /**
  11305. * @param {!Object} type
  11306. * @param {number} string
  11307. * @return {?}
  11308. */
  11309. mixin.exports = function(type, string) {
  11310. return !(null == type || !type.length) && is(type, string, 0) > -1;
  11311. };
  11312. }, function(mixin, n, require) {
  11313. var cof = require(31);
  11314. var extend = require(59);
  11315. var toBeValidDate = require(30);
  11316. /** @type {string} */
  11317. var NUMBER = "[object Object]";
  11318. var funcProto = Function.prototype;
  11319. var ObjProto = Object.prototype;
  11320. /** @type {function(this:!Function): string} */
  11321. var funcToString = funcProto.toString;
  11322. /** @type {function(this:Object, *): boolean} */
  11323. var hasOwnProperty = ObjProto.hasOwnProperty;
  11324. /** @type {string} */
  11325. var objectCtorString = funcToString.call(Object);
  11326. /**
  11327. * @param {!Object} that
  11328. * @return {?}
  11329. */
  11330. mixin.exports = function(that) {
  11331. if (!toBeValidDate(that) || cof(that) != NUMBER) {
  11332. return false;
  11333. }
  11334. var proto = extend(that);
  11335. if (null === proto) {
  11336. return true;
  11337. }
  11338. var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor;
  11339. return "function" == typeof Ctor && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
  11340. };
  11341. }, function(mixin, n, opt_function) {
  11342. var modifierMatches = opt_function(25);
  11343. var keyMatches = opt_function(30);
  11344. /**
  11345. * @param {!Object} e
  11346. * @return {?}
  11347. */
  11348. mixin.exports = function(e) {
  11349. return keyMatches(e) && modifierMatches(e);
  11350. };
  11351. }, function(mixin, n, atomicsOp) {
  11352. var smID = atomicsOp(56);
  11353. /** @type {number} */
  11354. var this_bool = 1;
  11355. /** @type {number} */
  11356. var other_bool = 4;
  11357. /**
  11358. * @param {!Object} name
  11359. * @return {?}
  11360. */
  11361. mixin.exports = function(name) {
  11362. return smID(name, this_bool | other_bool);
  11363. };
  11364. }, function(module, n, saveNotifs) {
  11365. var storeMixin = saveNotifs(222)(saveNotifs(223));
  11366. module.exports = storeMixin;
  11367. }, function(mixin, n, $) {
  11368. var debug = $(38);
  11369. var cb = $(23);
  11370. var flr = $(39);
  11371. var hasOwnPollutedProps = $(25);
  11372. var hasOwnEnumerableProps = $(55);
  11373. var f = $(21);
  11374. /** @type {function(this:Object, *): boolean} */
  11375. var hasOwn = Object.prototype.hasOwnProperty;
  11376. var m = flr(function(result, o) {
  11377. if (hasOwnEnumerableProps(o) || hasOwnPollutedProps(o)) {
  11378. cb(o, f(o), result);
  11379. } else {
  11380. var i;
  11381. for (i in o) {
  11382. if (hasOwn.call(o, i)) {
  11383. debug(result, i, o[i]);
  11384. }
  11385. }
  11386. }
  11387. });
  11388. mixin.exports = m;
  11389. }, function(mixin, n, saveNotifs) {
  11390. var checkStackStatus = saveNotifs(111);
  11391. /** @type {function(...?): number} */
  11392. var max = Math.max;
  11393. /**
  11394. * @param {!Object} input
  11395. * @param {number} i
  11396. * @param {boolean} value
  11397. * @return {?}
  11398. */
  11399. mixin.exports = function(input, i, value) {
  11400. return i = max(void 0 === i ? input.length - 1 : i, 0), function() {
  11401. /** @type {!Arguments} */
  11402. var v = arguments;
  11403. /** @type {number} */
  11404. var n = -1;
  11405. /** @type {number} */
  11406. var l = max(v.length - i, 0);
  11407. /** @type {!Array} */
  11408. var data = Array(l);
  11409. for (; ++n < l;) {
  11410. data[n] = v[i + n];
  11411. }
  11412. /** @type {number} */
  11413. n = -1;
  11414. /** @type {!Array} */
  11415. var params = Array(i + 1);
  11416. for (; ++n < i;) {
  11417. params[n] = v[n];
  11418. }
  11419. return params[i] = value(data), checkStackStatus(input, this, params);
  11420. };
  11421. };
  11422. }, function(mixin, n) {
  11423. /**
  11424. * @param {!Object} k
  11425. * @return {?}
  11426. */
  11427. mixin.exports = function(k) {
  11428. return k;
  11429. };
  11430. }, function(mixin, n) {
  11431. /** @type {number} */
  11432. var el = 9007199254740991;
  11433. /**
  11434. * @param {?} e
  11435. * @return {?}
  11436. */
  11437. mixin.exports = function(e) {
  11438. return "number" == typeof e && e > -1 && e % 1 == 0 && e <= el;
  11439. };
  11440. }, function(mixin, n, kvFn) {
  11441. var r = kvFn(56);
  11442. /** @type {number} */
  11443. var timeout = 4;
  11444. /**
  11445. * @param {!Object} type
  11446. * @return {?}
  11447. */
  11448. mixin.exports = function(type) {
  11449. return r(type, timeout);
  11450. };
  11451. }, function(e, exports, cb) {
  11452. (function(module) {
  11453. var name = cb(58);
  11454. var freeExports = "object" == typeof exports && exports && !exports.nodeType && exports;
  11455. var freeModule = freeExports && "object" == typeof module && module && !module.nodeType && module;
  11456. var Buffer = freeModule && freeModule.exports === freeExports ? name.Buffer : void 0;
  11457. var err = Buffer ? Buffer.allocUnsafe : void 0;
  11458. /**
  11459. * @param {!Object} file
  11460. * @param {number} size
  11461. * @return {?}
  11462. */
  11463. module.exports = function(file, size) {
  11464. if (size) {
  11465. return file.slice();
  11466. }
  11467. var path = file.length;
  11468. var result = err ? err(path) : new file.constructor(path);
  11469. return file.copy(result), result;
  11470. };
  11471. }).call(this, cb(119)(e));
  11472. }, function(mixin, n) {
  11473. /**
  11474. * @param {!Array} s
  11475. * @param {number} result
  11476. * @return {?}
  11477. */
  11478. mixin.exports = function(s, result) {
  11479. /** @type {number} */
  11480. var p = -1;
  11481. var q = s.length;
  11482. if (!result) {
  11483. /** @type {!Array} */
  11484. result = Array(q);
  11485. }
  11486. for (; ++p < q;) {
  11487. result[p] = s[p];
  11488. }
  11489. return result;
  11490. };
  11491. }, function(module, n, __webpack_require__) {
  11492. var getPrototype = __webpack_require__(42)(Object.keys, Object);
  11493. module.exports = getPrototype;
  11494. }, function(mixin, n) {
  11495. /**
  11496. * @param {!Object} object
  11497. * @return {?}
  11498. */
  11499. mixin.exports = function(object) {
  11500. /** @type {!Array} */
  11501. var n = [];
  11502. if (null != object) {
  11503. var key;
  11504. for (key in Object(object)) {
  11505. n.push(key);
  11506. }
  11507. }
  11508. return n;
  11509. };
  11510. }, function(mixin, n, $) {
  11511. var callback = $(81);
  11512. var i = $(59);
  11513. var objectSearch = $(55);
  11514. /**
  11515. * @param {!Object} obj
  11516. * @return {?}
  11517. */
  11518. mixin.exports = function(obj) {
  11519. return "function" != typeof obj.constructor || objectSearch(obj) ? {} : callback(i(obj));
  11520. };
  11521. }, function(module, n, _$$mdAnimate_) {
  11522. var current_object_parser = _$$mdAnimate_(20);
  11523. /** @type {function((Object|null), (Object|null)=): !Object} */
  11524. var _create = Object.create;
  11525. var storeMixin = function() {
  11526. /**
  11527. * @return {undefined}
  11528. */
  11529. function e() {
  11530. }
  11531. return function(obj) {
  11532. if (!current_object_parser(obj)) {
  11533. return {};
  11534. }
  11535. if (_create) {
  11536. return _create(obj);
  11537. }
  11538. /** @type {!Object} */
  11539. e.prototype = obj;
  11540. var b = new e;
  11541. return e.prototype = void 0, b;
  11542. };
  11543. }();
  11544. module.exports = storeMixin;
  11545. }, function(mixin, n, require) {
  11546. var Symbol = require(83);
  11547. var g = require(26);
  11548. var prettyPrint = require(18);
  11549. var isArray = require(35);
  11550. /** @type {number} */
  11551. var INFINITY = 1 / 0;
  11552. var symbolProto = Symbol ? Symbol.prototype : void 0;
  11553. var symbolToString = symbolProto ? symbolProto.toString : void 0;
  11554. /**
  11555. * @param {number} value
  11556. * @return {?}
  11557. */
  11558. mixin.exports = function d(value) {
  11559. if ("string" == typeof value) {
  11560. return value;
  11561. }
  11562. if (prettyPrint(value)) {
  11563. return g(value, d) + "";
  11564. }
  11565. if (isArray(value)) {
  11566. return symbolToString ? symbolToString.call(value) : "";
  11567. }
  11568. /** @type {string} */
  11569. var port = value + "";
  11570. return "0" == port && 1 / value == -INFINITY ? "-0" : port;
  11571. };
  11572. }, function(module, n, __webpack_require__) {
  11573. var Symbol = __webpack_require__(58).Symbol;
  11574. module.exports = Symbol;
  11575. }, function(mixin, n, kvFn) {
  11576. var r = kvFn(85);
  11577. /**
  11578. * @param {!Object} n
  11579. * @param {number} done
  11580. * @param {number} index
  11581. * @return {?}
  11582. */
  11583. mixin.exports = function(n, done, index) {
  11584. var length = n.length;
  11585. return index = void 0 === index ? length : index, !done && index >= length ? n : r(n, done, index);
  11586. };
  11587. }, function(mixin, n) {
  11588. /**
  11589. * @param {!Object} obj
  11590. * @param {number} n
  11591. * @param {number} val
  11592. * @return {?}
  11593. */
  11594. mixin.exports = function(obj, n, val) {
  11595. /** @type {number} */
  11596. var j = -1;
  11597. var i = obj.length;
  11598. if (n < 0) {
  11599. n = -n > i ? 0 : i + n;
  11600. }
  11601. if ((val = val > i ? i : val) < 0) {
  11602. val = val + i;
  11603. }
  11604. /** @type {number} */
  11605. i = n > val ? 0 : val - n >>> 0;
  11606. /** @type {number} */
  11607. n = n >>> 0;
  11608. /** @type {!Array} */
  11609. var all = Array(i);
  11610. for (; ++j < i;) {
  11611. all[j] = obj[j + n];
  11612. }
  11613. return all;
  11614. };
  11615. }, function(mixin, n, require) {
  11616. var extend = require(134);
  11617. var isArray = require(87);
  11618. var flatten = require(135);
  11619. /**
  11620. * @param {!Object} value
  11621. * @return {?}
  11622. */
  11623. mixin.exports = function(value) {
  11624. return isArray(value) ? flatten(value) : extend(value);
  11625. };
  11626. }, function(mixin, n) {
  11627. /** @type {!RegExp} */
  11628. var reNative = RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");
  11629. /**
  11630. * @param {!Object} value
  11631. * @return {?}
  11632. */
  11633. mixin.exports = function(value) {
  11634. return reNative.test(value);
  11635. };
  11636. }, function(mixin, n, $) {
  11637. var i = $(62);
  11638. var classes = $(21);
  11639. /**
  11640. * @param {!Object} next
  11641. * @param {number} a
  11642. * @return {?}
  11643. */
  11644. mixin.exports = function(next, a) {
  11645. return next && i(next, a, classes);
  11646. };
  11647. }, function(mixin, n) {
  11648. /**
  11649. * @param {!Object} k
  11650. * @return {?}
  11651. */
  11652. mixin.exports = function(k) {
  11653. return k;
  11654. };
  11655. }, function(mixin, n, require) {
  11656. var trim = require(34);
  11657. var $$ = require(47);
  11658. var $ = require(18);
  11659. var s = require(64);
  11660. var end = require(74);
  11661. var transform = require(29);
  11662. /**
  11663. * @param {!Object} el
  11664. * @param {number} input
  11665. * @param {boolean} fn
  11666. * @return {?}
  11667. */
  11668. mixin.exports = function(el, input, fn) {
  11669. /** @type {number} */
  11670. var index = -1;
  11671. var length = (input = trim(input, el)).length;
  11672. /** @type {boolean} */
  11673. var result = false;
  11674. for (; ++index < length;) {
  11675. var e = transform(input[index]);
  11676. if (!(result = null != el && fn(el, e))) {
  11677. break;
  11678. }
  11679. el = el[e];
  11680. }
  11681. return result || ++index != length ? result : !!(length = null == el ? 0 : el.length) && end(length) && s(e, length) && ($(el) || $$(el));
  11682. };
  11683. }, function(mixin, n) {
  11684. /**
  11685. * @param {!Object} o
  11686. * @param {number} fn
  11687. * @return {?}
  11688. */
  11689. mixin.exports = function(o, fn) {
  11690. /** @type {number} */
  11691. var i = -1;
  11692. var numPoistiveTicks = null == o ? 0 : o.length;
  11693. for (; ++i < numPoistiveTicks;) {
  11694. if (fn(o[i], i, o)) {
  11695. return true;
  11696. }
  11697. }
  11698. return false;
  11699. };
  11700. }, function(mixin, n, kvFn) {
  11701. var r = kvFn(142);
  11702. var _checkString = kvFn(30);
  11703. /**
  11704. * @param {!Object} type
  11705. * @param {?} key
  11706. * @param {boolean} hash
  11707. * @param {?} num
  11708. * @param {!Object} cb
  11709. * @return {?}
  11710. */
  11711. mixin.exports = function value(type, key, hash, num, cb) {
  11712. return type === key || (null == type || null == key || !_checkString(type) && !_checkString(key) ? type != type && key != key : r(type, key, hash, num, value, cb));
  11713. };
  11714. }, function(mixin, n, require) {
  11715. var getUnusedModules = require(20);
  11716. /**
  11717. * @param {!Object} type
  11718. * @return {?}
  11719. */
  11720. mixin.exports = function(type) {
  11721. return type == type && !getUnusedModules(type);
  11722. };
  11723. }, function(mixin, n) {
  11724. /**
  11725. * @param {?} key
  11726. * @param {number} value
  11727. * @return {?}
  11728. */
  11729. mixin.exports = function(key, value) {
  11730. return function(object) {
  11731. return null != object && object[key] === value && (void 0 !== value || key in Object(object));
  11732. };
  11733. };
  11734. }, function(mixin, n, require) {
  11735. var $ = require(62);
  11736. var closest = require(89);
  11737. var module = require(32);
  11738. /**
  11739. * @param {!Object} string
  11740. * @param {number} elem
  11741. * @return {?}
  11742. */
  11743. mixin.exports = function(string, elem) {
  11744. return null == string ? string : $(string, closest(elem), module);
  11745. };
  11746. }, function(mixin, n, require) {
  11747. var model = require(43);
  11748. var fn = require(97);
  11749. var prettyBytesOriginal = require(62);
  11750. var format = require(157);
  11751. var userDefinedHandler = require(20);
  11752. var CheckDailyStat = require(32);
  11753. var $ = require(98);
  11754. /**
  11755. * @param {?} name
  11756. * @param {?} size
  11757. * @param {boolean} type
  11758. * @param {string} handler
  11759. * @param {!Object} data
  11760. * @return {undefined}
  11761. */
  11762. mixin.exports = function initialize(name, size, type, handler, data) {
  11763. if (name !== size) {
  11764. prettyBytesOriginal(size, function(payload, c) {
  11765. if (userDefinedHandler(payload)) {
  11766. if (!data) {
  11767. data = new model;
  11768. }
  11769. format(name, size, c, type, initialize, handler, data);
  11770. } else {
  11771. var status = handler ? handler($(name, c), payload, c + "", name, size, data) : void 0;
  11772. if (void 0 === status) {
  11773. /** @type {!Object} */
  11774. status = payload;
  11775. }
  11776. fn(name, c, status);
  11777. }
  11778. }, CheckDailyStat);
  11779. }
  11780. };
  11781. }, function(mixin, n, encodeURIComponent) {
  11782. var f = encodeURIComponent(51);
  11783. var filter = encodeURIComponent(52);
  11784. /**
  11785. * @param {!Array} data
  11786. * @param {number} key
  11787. * @param {?} object
  11788. * @return {undefined}
  11789. */
  11790. mixin.exports = function(data, key, object) {
  11791. if (!((void 0 === object || filter(data[key], object)) && (void 0 !== object || key in data))) {
  11792. f(data, key, object);
  11793. }
  11794. };
  11795. }, function(mixin, n) {
  11796. /**
  11797. * @param {!Array} obj
  11798. * @param {number} key
  11799. * @return {?}
  11800. */
  11801. mixin.exports = function(obj, key) {
  11802. return "__proto__" == key ? void 0 : obj[key];
  11803. };
  11804. }, function(mixin, n, find) {
  11805. var route = find(163);
  11806. var i = find(164);
  11807. var path = find(165);
  11808. /** @type {!RegExp} */
  11809. var _REPVARS = RegExp("['\u2019]", "g");
  11810. /**
  11811. * @param {!Object} type
  11812. * @return {?}
  11813. */
  11814. mixin.exports = function(type) {
  11815. return function(transformOrigin) {
  11816. return route(path(i(transformOrigin).replace(_REPVARS, "")), type, "");
  11817. };
  11818. };
  11819. }, function(module, n, saveNotifs) {
  11820. var has = saveNotifs(169)("toUpperCase");
  11821. module.exports = has;
  11822. }, function(mixin, n, require) {
  11823. var matches = require(37);
  11824. var isString = require(25);
  11825. var sphereKnn = require(173);
  11826. var $ = require(102);
  11827. var stringify = require(176);
  11828. /** @type {function(...?): number} */
  11829. var describe = Math.max;
  11830. /**
  11831. * @param {!Object} value
  11832. * @param {number} key
  11833. * @param {number} selector
  11834. * @param {?} context
  11835. * @return {?}
  11836. */
  11837. mixin.exports = function(value, key, selector, context) {
  11838. value = isString(value) ? value : stringify(value);
  11839. selector = selector && !context ? $(selector) : 0;
  11840. var type = value.length;
  11841. return selector < 0 && (selector = describe(type + selector, 0)), sphereKnn(value) ? selector <= type && value.indexOf(key, selector) > -1 : !!type && matches(value, key, selector) > -1;
  11842. };
  11843. }, function(mixin, n, require) {
  11844. var createElement = require(174);
  11845. /**
  11846. * @param {!Object} option
  11847. * @return {?}
  11848. */
  11849. mixin.exports = function(option) {
  11850. var o = createElement(option);
  11851. /** @type {number} */
  11852. var subOffset = o % 1;
  11853. return o == o ? subOffset ? o - subOffset : o : 0;
  11854. };
  11855. }, function(mixin, n, require) {
  11856. var is = require(37);
  11857. /**
  11858. * @param {!Object} type
  11859. * @param {number} string
  11860. * @return {?}
  11861. */
  11862. mixin.exports = function(type, string) {
  11863. return !(null == type || !type.length) && is(type, string, 0) > -1;
  11864. };
  11865. }, function(mixin, n) {
  11866. /**
  11867. * @param {!Object} o
  11868. * @param {number} objects
  11869. * @param {boolean} func
  11870. * @return {?}
  11871. */
  11872. mixin.exports = function(o, objects, func) {
  11873. /** @type {number} */
  11874. var k = -1;
  11875. var kl = null == o ? 0 : o.length;
  11876. for (; ++k < kl;) {
  11877. if (func(objects, o[k])) {
  11878. return true;
  11879. }
  11880. }
  11881. return false;
  11882. };
  11883. }, function(mixin, n, __webpack_require__) {
  11884. var defineProperty = __webpack_require__(46);
  11885. var isArrayLike = __webpack_require__(25);
  11886. /**
  11887. * @param {!Object} obj
  11888. * @param {number} callback
  11889. * @return {?}
  11890. */
  11891. mixin.exports = function(obj, callback) {
  11892. /** @type {number} */
  11893. var j = -1;
  11894. /** @type {!Array} */
  11895. var value = isArrayLike(obj) ? Array(obj.length) : [];
  11896. return defineProperty(obj, function(version, i, init) {
  11897. value[++j] = callback(version, i, init);
  11898. }), value;
  11899. };
  11900. }, function(module, n) {
  11901. var charenc = {
  11902. utf8 : {
  11903. stringToBytes : function(s) {
  11904. return charenc.bin.stringToBytes(unescape(encodeURIComponent(s)));
  11905. },
  11906. bytesToString : function(bytes) {
  11907. return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
  11908. }
  11909. },
  11910. bin : {
  11911. stringToBytes : function(s) {
  11912. /** @type {!Array} */
  11913. var bytes = [];
  11914. /** @type {number} */
  11915. var i = 0;
  11916. for (; i < s.length; i++) {
  11917. bytes.push(255 & s.charCodeAt(i));
  11918. }
  11919. return bytes;
  11920. },
  11921. bytesToString : function(bytes) {
  11922. /** @type {!Array} */
  11923. var outChance = [];
  11924. /** @type {number} */
  11925. var i = 0;
  11926. for (; i < bytes.length; i++) {
  11927. outChance.push(String.fromCharCode(bytes[i]));
  11928. }
  11929. return outChance.join("");
  11930. }
  11931. }
  11932. };
  11933. module.exports = charenc;
  11934. }, function(mixin, n) {
  11935. /**
  11936. * @param {!Object} fn
  11937. * @return {?}
  11938. */
  11939. mixin.exports = function(fn) {
  11940. return function(responce) {
  11941. return fn(responce);
  11942. };
  11943. };
  11944. }, function(mixin, n, fn) {
  11945. var o = fn(34);
  11946. var text = fn(228);
  11947. var f = fn(229);
  11948. var p = fn(29);
  11949. /**
  11950. * @param {!Array} e
  11951. * @param {number} a
  11952. * @return {?}
  11953. */
  11954. mixin.exports = function(e, a) {
  11955. return a = o(a, e), null == (e = f(e, a)) || delete e[p(text(a))];
  11956. };
  11957. }, function(module, n, saveNotifs) {
  11958. var $defineProperty = saveNotifs(110);
  11959. var storeMixin = function() {
  11960. try {
  11961. var hasKey = $defineProperty(Object, "defineProperty");
  11962. return hasKey({}, "", {}), hasKey;
  11963. } catch (e) {
  11964. }
  11965. }();
  11966. module.exports = storeMixin;
  11967. }, function(mixin, n) {
  11968. /**
  11969. * @param {!Object} string
  11970. * @param {number} j
  11971. * @return {?}
  11972. */
  11973. mixin.exports = function(string, j) {
  11974. return null == string ? void 0 : string[j];
  11975. };
  11976. }, function(mixin, n) {
  11977. /**
  11978. * @param {!Function} fn
  11979. * @param {number} t
  11980. * @param {string} args
  11981. * @return {?}
  11982. */
  11983. mixin.exports = function(fn, t, args) {
  11984. switch(args.length) {
  11985. case 0:
  11986. return fn.call(t);
  11987. case 1:
  11988. return fn.call(t, args[0]);
  11989. case 2:
  11990. return fn.call(t, args[0], args[1]);
  11991. case 3:
  11992. return fn.call(t, args[0], args[1], args[2]);
  11993. }
  11994. return fn.apply(t, args);
  11995. };
  11996. }, function(mixin, n) {
  11997. /**
  11998. * @return {undefined}
  11999. */
  12000. mixin.exports = function() {
  12001. /** @type {!Array} */
  12002. this.__data__ = [];
  12003. /** @type {number} */
  12004. this.size = 0;
  12005. };
  12006. }, function(mixin, n, kvFn) {
  12007. var r = kvFn(44);
  12008. /** @type {function(this:IArrayLike<T>, *=, *=, ...T): !Array<T>} */
  12009. var splice = Array.prototype.splice;
  12010. /**
  12011. * @param {!Object} id
  12012. * @return {?}
  12013. */
  12014. mixin.exports = function(id) {
  12015. var data = this.__data__;
  12016. var i = r(data, id);
  12017. return !(i < 0 || (i == data.length - 1 ? data.pop() : splice.call(data, i, 1), --this.size, 0));
  12018. };
  12019. }, function(mixin, n, require) {
  12020. var $ = require(44);
  12021. /**
  12022. * @param {!Object} k
  12023. * @return {?}
  12024. */
  12025. mixin.exports = function(k) {
  12026. var e = this.__data__;
  12027. var f = $(e, k);
  12028. return f < 0 ? void 0 : e[f][1];
  12029. };
  12030. }, function(mixin, n, __webpack_require__) {
  12031. var assocIndexOf = __webpack_require__(44);
  12032. /**
  12033. * @param {!Object} key
  12034. * @return {?}
  12035. */
  12036. mixin.exports = function(key) {
  12037. return assocIndexOf(this.__data__, key) > -1;
  12038. };
  12039. }, function(mixin, n, saveNotifs) {
  12040. var addCore = saveNotifs(44);
  12041. /**
  12042. * @param {!Object} obj
  12043. * @param {number} a
  12044. * @return {?}
  12045. */
  12046. mixin.exports = function(obj, a) {
  12047. var cache = this.__data__;
  12048. var data = addCore(cache, obj);
  12049. return data < 0 ? (++this.size, cache.push([obj, a])) : cache[data][1] = a, this;
  12050. };
  12051. }, function(mixin, n, r) {
  12052. var t = r(23);
  12053. var require = r(21);
  12054. /**
  12055. * @param {!Object} a
  12056. * @param {number} n
  12057. * @return {?}
  12058. */
  12059. mixin.exports = function(a, n) {
  12060. return a && t(n, require(n), a);
  12061. };
  12062. }, function(mixin, n, r) {
  12063. var t = r(23);
  12064. var require = r(32);
  12065. /**
  12066. * @param {!Object} a
  12067. * @param {number} n
  12068. * @return {?}
  12069. */
  12070. mixin.exports = function(a, n) {
  12071. return a && t(n, require(n), a);
  12072. };
  12073. }, function(mixin, n) {
  12074. /**
  12075. * @param {!Object} context
  12076. * @return {?}
  12077. */
  12078. mixin.exports = function(context) {
  12079. return context.webpackPolyfill || (context.deprecate = function() {
  12080. }, context.paths = [], context.children || (context.children = []), Object.defineProperty(context, "loaded", {
  12081. enumerable : true,
  12082. get : function() {
  12083. return context.l;
  12084. }
  12085. }), Object.defineProperty(context, "id", {
  12086. enumerable : true,
  12087. get : function() {
  12088. return context.i;
  12089. }
  12090. }), context.webpackPolyfill = 1), context;
  12091. };
  12092. }, function(module, n, moment) {
  12093. (function(global) {
  12094. var freeGlobal = "object" == typeof global && global && global.Object === Object && global;
  12095. module.exports = freeGlobal;
  12096. }).call(this, moment(3));
  12097. }, function(mixin, n, addVertex) {
  12098. var r = addVertex(23);
  12099. var i = addVertex(122);
  12100. /**
  12101. * @param {!Object} name
  12102. * @param {number} cb
  12103. * @return {?}
  12104. */
  12105. mixin.exports = function(name, cb) {
  12106. return r(name, i(name), cb);
  12107. };
  12108. }, function(mixin, n) {
  12109. /**
  12110. * @return {?}
  12111. */
  12112. mixin.exports = function() {
  12113. return [];
  12114. };
  12115. }, function(mixin, n, addVertex) {
  12116. var r = addVertex(23);
  12117. var i = addVertex(124);
  12118. /**
  12119. * @param {!Object} name
  12120. * @param {number} cb
  12121. * @return {?}
  12122. */
  12123. mixin.exports = function(name, cb) {
  12124. return r(name, i(name), cb);
  12125. };
  12126. }, function(mixin, n) {
  12127. /**
  12128. * @return {?}
  12129. */
  12130. mixin.exports = function() {
  12131. return [];
  12132. };
  12133. }, function(mixin, n) {
  12134. /** @type {function(this:Object, *): boolean} */
  12135. var hasOwnProperty = Object.prototype.hasOwnProperty;
  12136. /**
  12137. * @param {!Object} array
  12138. * @return {?}
  12139. */
  12140. mixin.exports = function(array) {
  12141. var length = array.length;
  12142. var result = new array.constructor(length);
  12143. return length && "string" == typeof array[0] && hasOwnProperty.call(array, "index") && (result.index = array.index, result.input = array.input), result;
  12144. };
  12145. }, function(mixin, n) {
  12146. /**
  12147. * @param {!Object} k
  12148. * @return {?}
  12149. */
  12150. mixin.exports = function(k) {
  12151. return k;
  12152. };
  12153. }, function(mixin, n) {
  12154. /**
  12155. * @return {?}
  12156. */
  12157. mixin.exports = function() {
  12158. return false;
  12159. };
  12160. }, function(mixin, n) {
  12161. /**
  12162. * @return {?}
  12163. */
  12164. mixin.exports = function() {
  12165. return false;
  12166. };
  12167. }, function(module, n, saveNotifs) {
  12168. /** @type {!RegExp} */
  12169. var image_re = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
  12170. /** @type {!RegExp} */
  12171. var rcamelCase = /\\(\\)?/g;
  12172. var storeMixin = saveNotifs(130)(function(e) {
  12173. /** @type {!Array} */
  12174. var buf = [];
  12175. return 46 === e.charCodeAt(0) && buf.push(""), e.replace(image_re, function(msg, method, val, termUri) {
  12176. buf.push(val ? termUri.replace(rcamelCase, "$1") : method || msg);
  12177. }), buf;
  12178. });
  12179. module.exports = storeMixin;
  12180. }, function(mixin, n) {
  12181. /**
  12182. * @param {!Object} k
  12183. * @return {?}
  12184. */
  12185. mixin.exports = function(k) {
  12186. return k;
  12187. };
  12188. }, function(mixin, n) {
  12189. /**
  12190. * @param {!Object} k
  12191. * @return {?}
  12192. */
  12193. mixin.exports = function(k) {
  12194. return null === k;
  12195. };
  12196. }, function(mixin, n, __webpack_require__) {
  12197. var equal = __webpack_require__(37);
  12198. /**
  12199. * @param {!Array} item
  12200. * @param {number} n
  12201. * @return {?}
  12202. */
  12203. mixin.exports = function(item, n) {
  12204. var i = item.length;
  12205. for (; i-- && equal(n, item[i], 0) > -1;) {
  12206. }
  12207. return i;
  12208. };
  12209. }, function(mixin, n, $interval) {
  12210. var loop = $interval(37);
  12211. /**
  12212. * @param {!Array} obj
  12213. * @param {number} key
  12214. * @return {?}
  12215. */
  12216. mixin.exports = function(obj, key) {
  12217. /** @type {number} */
  12218. var i = -1;
  12219. var length = obj.length;
  12220. for (; ++i < length && loop(key, obj[i], 0) > -1;) {
  12221. }
  12222. return i;
  12223. };
  12224. }, function(mixin, n) {
  12225. /**
  12226. * @param {!Object} k
  12227. * @return {?}
  12228. */
  12229. mixin.exports = function(k) {
  12230. return k.split("");
  12231. };
  12232. }, function(mixin, n) {
  12233. /** @type {string} */
  12234. var topicUri6 = "[\\ud800-\\udfff]";
  12235. /** @type {string} */
  12236. var packet = "[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]";
  12237. /** @type {string} */
  12238. var key = "\\ud83c[\\udffb-\\udfff]";
  12239. /** @type {string} */
  12240. var msg = "[^\\ud800-\\udfff]";
  12241. /** @type {string} */
  12242. var valueAlias = "(?:\\ud83c[\\udde6-\\uddff]){2}";
  12243. /** @type {string} */
  12244. var testRev = "[\\ud800-\\udbff][\\udc00-\\udfff]";
  12245. /** @type {string} */
  12246. var c = "(?:" + packet + "|" + key + ")" + "?";
  12247. /** @type {string} */
  12248. var id = "[\\ufe0e\\ufe0f]?" + c + ("(?:\\u200d(?:" + [msg, valueAlias, testRev].join("|") + ")[\\ufe0e\\ufe0f]?" + c + ")*");
  12249. /** @type {string} */
  12250. var bookdetail = "(?:" + [msg + packet + "?", packet, valueAlias, testRev, topicUri6].join("|") + ")";
  12251. /** @type {!RegExp} */
  12252. var bindingToken = RegExp(key + "(?=" + key + ")|" + bookdetail + id, "g");
  12253. /**
  12254. * @param {!Object} str
  12255. * @return {?}
  12256. */
  12257. mixin.exports = function(str) {
  12258. return str.match(bindingToken) || [];
  12259. };
  12260. }, function(mixin, n) {
  12261. /**
  12262. * @param {!Array} index
  12263. * @return {?}
  12264. */
  12265. mixin.exports = function(index) {
  12266. return function(template, callback, createIsSearchQueryChangedFunction) {
  12267. /** @type {number} */
  12268. var i = -1;
  12269. /** @type {!Object} */
  12270. var obj = Object(template);
  12271. var result = createIsSearchQueryChangedFunction(template);
  12272. var y = result.length;
  12273. for (; y--;) {
  12274. var row = result[index ? y : ++i];
  12275. if (false === callback(obj[row], row, obj)) {
  12276. break;
  12277. }
  12278. }
  12279. return template;
  12280. };
  12281. };
  12282. }, function(mixin, n, saveNotifs) {
  12283. var warName = saveNotifs(25);
  12284. /**
  12285. * @param {!Object} callback
  12286. * @param {string} fromRight
  12287. * @return {?}
  12288. */
  12289. mixin.exports = function(callback, fromRight) {
  12290. return function(options, transform) {
  12291. if (null == options) {
  12292. return options;
  12293. }
  12294. if (!warName(options)) {
  12295. return callback(options, transform);
  12296. }
  12297. var length = options.length;
  12298. var index = fromRight ? length : -1;
  12299. /** @type {!Object} */
  12300. var obj = Object(options);
  12301. for (; (fromRight ? index-- : ++index < length) && false !== transform(obj[index], index, obj);) {
  12302. }
  12303. return options;
  12304. };
  12305. };
  12306. }, function(mixin, n) {
  12307. /** @type {function(this:Object, *): boolean} */
  12308. var hasOwnProperty = Object.prototype.hasOwnProperty;
  12309. /**
  12310. * @param {!Object} obj
  12311. * @param {number} key
  12312. * @return {?}
  12313. */
  12314. mixin.exports = function(obj, key) {
  12315. return null != obj && hasOwnProperty.call(obj, key);
  12316. };
  12317. }, function(mixin, n, require) {
  12318. var xml = require(91);
  12319. var get = require(24);
  12320. var event = require(153);
  12321. var isString = require(18);
  12322. var sphereKnn = require(41);
  12323. /**
  12324. * @param {!Object} str
  12325. * @param {number} data
  12326. * @param {boolean} start
  12327. * @return {?}
  12328. */
  12329. mixin.exports = function(str, data, start) {
  12330. var type = isString(str) ? xml : event;
  12331. return start && sphereKnn(str, data, start) && (data = void 0), type(str, get(data, 3));
  12332. };
  12333. }, function(mixin, n, floor) {
  12334. var c = floor(141);
  12335. var i = floor(146);
  12336. var which = floor(94);
  12337. /**
  12338. * @param {!Object} d
  12339. * @return {?}
  12340. */
  12341. mixin.exports = function(d) {
  12342. var b = i(d);
  12343. return 1 == b.length && b[0][2] ? which(b[0][0], b[0][1]) : function(target) {
  12344. return target === d || c(target, d, b);
  12345. };
  12346. };
  12347. }, function(mixin, n, require) {
  12348. var SchemaType = require(43);
  12349. var prepare = require(92);
  12350. /** @type {number} */
  12351. var this_bool = 1;
  12352. /** @type {number} */
  12353. var other_bool = 2;
  12354. /**
  12355. * @param {!Object} obj
  12356. * @param {number} t
  12357. * @param {string} a
  12358. * @param {?} fn
  12359. * @return {?}
  12360. */
  12361. mixin.exports = function(obj, t, a, fn) {
  12362. var c = a.length;
  12363. var G__10493 = c;
  12364. /** @type {boolean} */
  12365. var type = !fn;
  12366. if (null == obj) {
  12367. return !G__10493;
  12368. }
  12369. /** @type {!Object} */
  12370. obj = Object(obj);
  12371. for (; c--;) {
  12372. var x = a[c];
  12373. if (type && x[2] ? x[1] !== obj[x[0]] : !(x[0] in obj)) {
  12374. return false;
  12375. }
  12376. }
  12377. for (; ++c < G__10493;) {
  12378. var i = (x = a[c])[0];
  12379. var item = obj[i];
  12380. var index = x[1];
  12381. if (type && x[2]) {
  12382. if (void 0 === item && !(i in obj)) {
  12383. return false;
  12384. }
  12385. } else {
  12386. var type = new SchemaType;
  12387. if (fn) {
  12388. var key = fn(item, index, i, obj, t, type);
  12389. }
  12390. if (!(void 0 === key ? prepare(index, item, this_bool | other_bool, fn, type) : key)) {
  12391. return false;
  12392. }
  12393. }
  12394. }
  12395. return true;
  12396. };
  12397. }, function(mixin, n, __webpack_require__) {
  12398. var Stack = __webpack_require__(43);
  12399. var equalArrays = __webpack_require__(143);
  12400. var equalByTag = __webpack_require__(144);
  12401. var equalObjects = __webpack_require__(145);
  12402. var baseGetTag = __webpack_require__(45);
  12403. var isArray = __webpack_require__(18);
  12404. var isBuffer = __webpack_require__(33);
  12405. var isTypedArray = __webpack_require__(48);
  12406. /** @type {number} */
  12407. var BIND_FLAG = 1;
  12408. /** @type {string} */
  12409. var argsTag = "[object Arguments]";
  12410. /** @type {string} */
  12411. var arrayTag = "[object Array]";
  12412. /** @type {string} */
  12413. var objectTag = "[object Object]";
  12414. /** @type {function(this:Object, *): boolean} */
  12415. var hasOwnProperty = Object.prototype.hasOwnProperty;
  12416. /**
  12417. * @param {!Object} object
  12418. * @param {number} other
  12419. * @param {string} bitmask
  12420. * @param {?} customizer
  12421. * @param {!Object} equalFunc
  12422. * @param {!Object} stack
  12423. * @return {?}
  12424. */
  12425. mixin.exports = function(object, other, bitmask, customizer, equalFunc, stack) {
  12426. var objIsArr = isArray(object);
  12427. var othIsArr = isArray(other);
  12428. var objTag = objIsArr ? arrayTag : baseGetTag(object);
  12429. var othTag = othIsArr ? arrayTag : baseGetTag(other);
  12430. /** @type {boolean} */
  12431. var objIsObj = (objTag = objTag == argsTag ? objectTag : objTag) == objectTag;
  12432. /** @type {boolean} */
  12433. var othIsObj = (othTag = othTag == argsTag ? objectTag : othTag) == objectTag;
  12434. /** @type {boolean} */
  12435. var isSameTag = objTag == othTag;
  12436. if (isSameTag && isBuffer(object)) {
  12437. if (!isBuffer(other)) {
  12438. return false;
  12439. }
  12440. /** @type {boolean} */
  12441. objIsArr = true;
  12442. /** @type {boolean} */
  12443. objIsObj = false;
  12444. }
  12445. if (isSameTag && !objIsObj) {
  12446. return stack || (stack = new Stack), objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
  12447. }
  12448. if (!(bitmask & BIND_FLAG)) {
  12449. /** @type {boolean} */
  12450. var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__");
  12451. /** @type {boolean} */
  12452. var othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
  12453. if (objIsWrapped || othIsWrapped) {
  12454. var objUnwrapped = objIsWrapped ? object.value() : object;
  12455. var othUnwrapped = othIsWrapped ? other.value() : other;
  12456. return stack || (stack = new Stack), equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
  12457. }
  12458. }
  12459. return !!isSameTag && (stack || (stack = new Stack), equalObjects(object, other, bitmask, customizer, equalFunc, stack));
  12460. };
  12461. }, function(mixin, n, require) {
  12462. var ElementCreator = require(65);
  12463. var sphereKnn = require(91);
  12464. var show_fn = require(66);
  12465. /** @type {number} */
  12466. var MASK = 1;
  12467. /** @type {number} */
  12468. var TABLE_MASK = 2;
  12469. /**
  12470. * @param {!Array} data
  12471. * @param {!Object} n
  12472. * @param {number} index
  12473. * @param {?} func
  12474. * @param {!Object} cb
  12475. * @param {!Object} text
  12476. * @return {?}
  12477. */
  12478. mixin.exports = function(data, n, index, func, cb, text) {
  12479. /** @type {number} */
  12480. var groupRenderer = index & MASK;
  12481. var total = data.length;
  12482. var count = n.length;
  12483. if (total != count && !(groupRenderer && count > total)) {
  12484. return false;
  12485. }
  12486. var a = text.get(data);
  12487. if (a && text.get(n)) {
  12488. return a == n;
  12489. }
  12490. /** @type {number} */
  12491. var i = -1;
  12492. /** @type {boolean} */
  12493. var y = true;
  12494. var doc = index & TABLE_MASK ? new ElementCreator : void 0;
  12495. text.set(data, n);
  12496. text.set(n, data);
  12497. for (; ++i < total;) {
  12498. var v = data[i];
  12499. var x = n[i];
  12500. if (func) {
  12501. var g = groupRenderer ? func(x, v, i, n, data, text) : func(v, x, i, data, n, text);
  12502. }
  12503. if (void 0 !== g) {
  12504. if (g) {
  12505. continue;
  12506. }
  12507. /** @type {boolean} */
  12508. y = false;
  12509. break;
  12510. }
  12511. if (doc) {
  12512. if (!sphereKnn(n, function(e, req) {
  12513. if (!show_fn(doc, req) && (v === e || cb(v, e, index, func, text))) {
  12514. return doc.push(req);
  12515. }
  12516. })) {
  12517. /** @type {boolean} */
  12518. y = false;
  12519. break;
  12520. }
  12521. } else {
  12522. if (v !== x && !cb(v, x, index, func, text)) {
  12523. /** @type {boolean} */
  12524. y = false;
  12525. break;
  12526. }
  12527. }
  12528. }
  12529. return text.delete(data), text.delete(n), y;
  12530. };
  12531. }, function(mixin, n) {
  12532. /**
  12533. * @param {!Object} type
  12534. * @param {?} object
  12535. * @return {?}
  12536. */
  12537. mixin.exports = function(type, object) {
  12538. return type === object || type != type && object != object;
  12539. };
  12540. }, function(mixin, n, keysFunc) {
  12541. var keys = keysFunc(78);
  12542. /** @type {number} */
  12543. var COMPARE_PARTIAL_FLAG = 1;
  12544. /** @type {function(this:Object, *): boolean} */
  12545. var hasOwnProperty = Object.prototype.hasOwnProperty;
  12546. /**
  12547. * @param {!Object} object
  12548. * @param {!Object} other
  12549. * @param {string} bitmask
  12550. * @param {?} customizer
  12551. * @param {!Object} equalFunc
  12552. * @param {!Object} stack
  12553. * @return {?}
  12554. */
  12555. mixin.exports = function(object, other, bitmask, customizer, equalFunc, stack) {
  12556. /** @type {number} */
  12557. var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
  12558. var props = keys(object);
  12559. var len = props.length;
  12560. if (len != keys(other).length && !isPartial) {
  12561. return false;
  12562. }
  12563. var i = len;
  12564. for (; i--;) {
  12565. var key = props[i];
  12566. if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
  12567. return false;
  12568. }
  12569. }
  12570. var stacked = stack.get(object);
  12571. if (stacked && stack.get(other)) {
  12572. return stacked == other;
  12573. }
  12574. /** @type {boolean} */
  12575. var selfCompletionActive = true;
  12576. stack.set(object, other);
  12577. stack.set(other, object);
  12578. /** @type {number} */
  12579. var alreadyMarked = isPartial;
  12580. for (; ++i < len;) {
  12581. var objValue = object[key = props[i]];
  12582. var othValue = other[key];
  12583. if (customizer) {
  12584. var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
  12585. }
  12586. if (!(void 0 === compared ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
  12587. /** @type {boolean} */
  12588. selfCompletionActive = false;
  12589. break;
  12590. }
  12591. if (!alreadyMarked) {
  12592. /** @type {boolean} */
  12593. alreadyMarked = "constructor" == key;
  12594. }
  12595. }
  12596. if (selfCompletionActive && !alreadyMarked) {
  12597. var objCtor = object.constructor;
  12598. var othCtor = other.constructor;
  12599. if (objCtor != othCtor && "constructor" in object && "constructor" in other && !("function" == typeof objCtor && objCtor instanceof objCtor && "function" == typeof othCtor && othCtor instanceof othCtor)) {
  12600. /** @type {boolean} */
  12601. selfCompletionActive = false;
  12602. }
  12603. }
  12604. return stack.delete(object), stack.delete(other), selfCompletionActive;
  12605. };
  12606. }, function(mixin, n, addVertex) {
  12607. var checkedSubscribe = addVertex(93);
  12608. var i = addVertex(21);
  12609. /**
  12610. * @param {!Object} value
  12611. * @return {?}
  12612. */
  12613. mixin.exports = function(value) {
  12614. var m = i(value);
  12615. var p = m.length;
  12616. for (; p--;) {
  12617. var v = m[p];
  12618. var version = value[v];
  12619. /** @type {!Array} */
  12620. m[p] = [v, version, checkedSubscribe(version)];
  12621. }
  12622. return m;
  12623. };
  12624. }, function(mixin, n, $) {
  12625. var r = $(92);
  12626. var i = $(19);
  12627. var add = $(148);
  12628. var check = $(61);
  12629. var use = $(93);
  12630. var success = $(94);
  12631. var a = $(29);
  12632. /** @type {number} */
  12633. var l = 1;
  12634. /** @type {number} */
  12635. var mask_bit = 2;
  12636. /**
  12637. * @param {!Object} o
  12638. * @param {number} c
  12639. * @return {?}
  12640. */
  12641. mixin.exports = function(o, c) {
  12642. return check(o) && use(c) ? success(a(o), c) : function(a) {
  12643. var b = i(a, o);
  12644. return void 0 === b && b === c ? add(a, o) : r(c, b, l | mask_bit);
  12645. };
  12646. };
  12647. }, function(mixin, n, $) {
  12648. var classes = $(149);
  12649. var i = $(90);
  12650. /**
  12651. * @param {!Object} obj
  12652. * @param {number} key
  12653. * @return {?}
  12654. */
  12655. mixin.exports = function(obj, key) {
  12656. return null != obj && i(obj, key, classes);
  12657. };
  12658. }, function(mixin, n) {
  12659. /**
  12660. * @param {!Object} object
  12661. * @param {number} key
  12662. * @return {?}
  12663. */
  12664. mixin.exports = function(object, key) {
  12665. return null != object && key in Object(object);
  12666. };
  12667. }, function(mixin, n, require) {
  12668. var $ = require(151);
  12669. var reject = require(152);
  12670. var evaluatePredicate = require(61);
  12671. var a = require(29);
  12672. /**
  12673. * @param {!Object} e
  12674. * @return {?}
  12675. */
  12676. mixin.exports = function(e) {
  12677. return evaluatePredicate(e) ? $(a(e)) : reject(e);
  12678. };
  12679. }, function(mixin, n) {
  12680. /**
  12681. * @param {?} key
  12682. * @return {?}
  12683. */
  12684. mixin.exports = function(key) {
  12685. return function(array) {
  12686. return null == array ? void 0 : array[key];
  12687. };
  12688. };
  12689. }, function(mixin, n, generateExhibitHTML) {
  12690. var template = generateExhibitHTML(60);
  12691. /**
  12692. * @param {!Object} val
  12693. * @return {?}
  12694. */
  12695. mixin.exports = function(val) {
  12696. return function(listItm) {
  12697. return template(listItm, val);
  12698. };
  12699. };
  12700. }, function(mixin, n, require) {
  12701. var getUnusedModules = require(46);
  12702. /**
  12703. * @param {!Object} k
  12704. * @param {number} func
  12705. * @return {?}
  12706. */
  12707. mixin.exports = function(k, func) {
  12708. var c;
  12709. return getUnusedModules(k, function(o, data, y) {
  12710. return !(c = func(o, data, y));
  12711. }), !!c;
  12712. };
  12713. }, function(module, n, factory) {
  12714. module.exports = factory(155);
  12715. }, function(mixin, n, addVertex) {
  12716. var mathMax = addVertex(23);
  12717. var i = addVertex(39);
  12718. var mathAbs = addVertex(32);
  12719. var m = i(function(b, right) {
  12720. mathMax(right, mathAbs(right), b);
  12721. });
  12722. mixin.exports = m;
  12723. }, function(mixin, n, floor) {
  12724. var a = floor(31);
  12725. var base = floor(30);
  12726. var repeat = floor(67);
  12727. /** @type {string} */
  12728. var idx2 = "[object DOMException]";
  12729. /** @type {string} */
  12730. var idx1 = "[object Error]";
  12731. /**
  12732. * @param {!Object} value
  12733. * @return {?}
  12734. */
  12735. mixin.exports = function(value) {
  12736. if (!base(value)) {
  12737. return false;
  12738. }
  12739. var m = a(value);
  12740. return m == idx1 || m == idx2 || "string" == typeof value.message && "string" == typeof value.name && !repeat(value);
  12741. };
  12742. }, function(mixin, n, require) {
  12743. var r = require(97);
  12744. var _phpCastString = require(76);
  12745. var p = require(158);
  12746. var a = require(77);
  12747. var s = require(80);
  12748. var isObject = require(47);
  12749. var $ = require(18);
  12750. var d = require(68);
  12751. var toBeValidDate = require(33);
  12752. var isFn = require(54);
  12753. var sphereKnn = require(20);
  12754. var isFunction = require(67);
  12755. var h = require(48);
  12756. var fn = require(98);
  12757. var i = require(161);
  12758. /**
  12759. * @param {!Object} id
  12760. * @param {number} name
  12761. * @param {string} p
  12762. * @param {string} fn
  12763. * @param {!Object} test
  12764. * @param {string} f
  12765. * @param {!Object} path
  12766. * @return {undefined}
  12767. */
  12768. mixin.exports = function(id, name, p, fn, test, f, path) {
  12769. var o = fn(id, p);
  12770. var a = fn(name, p);
  12771. var b = path.get(a);
  12772. if (b) {
  12773. r(id, p, b);
  12774. } else {
  12775. var b = f ? f(o, a, p + "", id, name, path) : void 0;
  12776. /** @type {boolean} */
  12777. var afterOverride = void 0 === b;
  12778. if (afterOverride) {
  12779. var block = $(a);
  12780. var element = !block && toBeValidDate(a);
  12781. var modifier = !block && !element && h(a);
  12782. b = a;
  12783. if (block || element || modifier) {
  12784. if ($(o)) {
  12785. b = o;
  12786. } else {
  12787. if (d(o)) {
  12788. b = a(o);
  12789. } else {
  12790. if (element) {
  12791. /** @type {boolean} */
  12792. afterOverride = false;
  12793. b = _phpCastString(a, true);
  12794. } else {
  12795. if (modifier) {
  12796. /** @type {boolean} */
  12797. afterOverride = false;
  12798. b = p(a, true);
  12799. } else {
  12800. /** @type {!Array} */
  12801. b = [];
  12802. }
  12803. }
  12804. }
  12805. }
  12806. } else {
  12807. if (isFunction(a) || isObject(a)) {
  12808. b = o;
  12809. if (isObject(o)) {
  12810. b = i(o);
  12811. } else {
  12812. if (!sphereKnn(o) || fn && isFn(o)) {
  12813. b = s(a);
  12814. }
  12815. }
  12816. } else {
  12817. /** @type {boolean} */
  12818. afterOverride = false;
  12819. }
  12820. }
  12821. }
  12822. if (afterOverride) {
  12823. path.set(a, b);
  12824. test(b, a, fn, f, path);
  12825. path.delete(a);
  12826. }
  12827. r(id, p, b);
  12828. }
  12829. };
  12830. }, function(mixin, n, factory) {
  12831. var resolve = factory(159);
  12832. /**
  12833. * @param {!Object} source
  12834. * @param {number} success
  12835. * @return {?}
  12836. */
  12837. mixin.exports = function(source, success) {
  12838. var out = success ? resolve(source.buffer) : source.buffer;
  12839. return new source.constructor(out, source.byteOffset, source.length);
  12840. };
  12841. }, function(mixin, n, __webpack_require__) {
  12842. var Uint8Array = __webpack_require__(160);
  12843. /**
  12844. * @param {!Object} value
  12845. * @return {?}
  12846. */
  12847. mixin.exports = function(value) {
  12848. var lump = new value.constructor(value.byteLength);
  12849. return (new Uint8Array(lump)).set(new Uint8Array(value)), lump;
  12850. };
  12851. }, function(module, n, saveNotifs) {
  12852. var Uint8Array = saveNotifs(58).Uint8Array;
  12853. module.exports = Uint8Array;
  12854. }, function(mixin, n, require) {
  12855. var formatter = require(23);
  12856. var i = require(32);
  12857. /**
  12858. * @param {!Object} value
  12859. * @return {?}
  12860. */
  12861. mixin.exports = function(value) {
  12862. return formatter(value, i(value));
  12863. };
  12864. }, function(mixin, n, SHA384) {
  12865. var mainCheck = SHA384(99);
  12866. var test = SHA384(100);
  12867. var m = mainCheck(function(source, query, escape) {
  12868. return source + (escape ? " " : "") + test(query);
  12869. });
  12870. mixin.exports = m;
  12871. }, function(mixin, n) {
  12872. /**
  12873. * @param {!Object} args
  12874. * @param {number} format
  12875. * @param {string} value
  12876. * @param {number} name
  12877. * @return {?}
  12878. */
  12879. mixin.exports = function(args, format, value, name) {
  12880. /** @type {number} */
  12881. var i = -1;
  12882. var index = null == args ? 0 : args.length;
  12883. if (name && index) {
  12884. value = args[++i];
  12885. }
  12886. for (; ++i < index;) {
  12887. value = format(value, args[i], i, args);
  12888. }
  12889. return value;
  12890. };
  12891. }, function(mixin, n) {
  12892. /**
  12893. * @param {!Object} k
  12894. * @return {?}
  12895. */
  12896. mixin.exports = function(k) {
  12897. return k;
  12898. };
  12899. }, function(mixin, n, require) {
  12900. var extend = require(166);
  12901. var isArray = require(167);
  12902. var walk = require(36);
  12903. var flatten = require(168);
  12904. /**
  12905. * @param {!Object} value
  12906. * @param {number} pattern
  12907. * @param {boolean} guard
  12908. * @return {?}
  12909. */
  12910. mixin.exports = function(value, pattern, guard) {
  12911. return value = walk(value), void 0 === (pattern = guard ? void 0 : pattern) ? isArray(value) ? flatten(value) : extend(value) : value.match(pattern) || [];
  12912. };
  12913. }, function(mixin, n) {
  12914. /** @type {!RegExp} */
  12915. var image_re = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
  12916. /**
  12917. * @param {!Object} e
  12918. * @return {?}
  12919. */
  12920. mixin.exports = function(e) {
  12921. return e.match(image_re) || [];
  12922. };
  12923. }, function(mixin, n) {
  12924. /** @type {!RegExp} */
  12925. var resourceNodeExp = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
  12926. /**
  12927. * @param {!Object} k
  12928. * @return {?}
  12929. */
  12930. mixin.exports = function(k) {
  12931. return resourceNodeExp.test(k);
  12932. };
  12933. }, function(mixin, n) {
  12934. /** @type {string} */
  12935. var t = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000";
  12936. /** @type {string} */
  12937. var $mime_type = "[" + t + "]";
  12938. /** @type {string} */
  12939. var ms = "\\d+";
  12940. /** @type {string} */
  12941. var overviewId = "[\\u2700-\\u27bf]";
  12942. /** @type {string} */
  12943. var yr = "[a-z\\xdf-\\xf6\\xf8-\\xff]";
  12944. /** @type {string} */
  12945. var s = "[^\\ud800-\\udfff" + t + ms + "\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]";
  12946. /** @type {string} */
  12947. var distStyle = "(?:\\ud83c[\\udde6-\\uddff]){2}";
  12948. /** @type {string} */
  12949. var CredentialScope = "[\\ud800-\\udbff][\\udc00-\\udfff]";
  12950. /** @type {string} */
  12951. var m = "[A-Z\\xc0-\\xd6\\xd8-\\xde]";
  12952. /** @type {string} */
  12953. var d = "(?:" + yr + "|" + s + ")";
  12954. /** @type {string} */
  12955. var f = "(?:" + m + "|" + s + ")";
  12956. /** @type {string} */
  12957. var p = "(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?";
  12958. /** @type {string} */
  12959. var slen1 = "[\\ufe0e\\ufe0f]?" + p + ("(?:\\u200d(?:" + ["[^\\ud800-\\udfff]", distStyle, CredentialScope].join("|") + ")[\\ufe0e\\ufe0f]?" + p + ")*");
  12960. /** @type {string} */
  12961. var a = "(?:" + [overviewId, distStyle, CredentialScope].join("|") + ")" + slen1;
  12962. /** @type {!RegExp} */
  12963. var bindingToken = RegExp([m + "?" + yr + "+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=" + [$mime_type, m, "$"].join("|") + ")", f + "+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=" + [$mime_type, m + d, "$"].join("|") + ")", m + "?" + d + "+(?:['\u2019](?:d|ll|m|re|s|t|ve))?", m + "+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?", "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", ms, a].join("|"), "g");
  12964. /**
  12965. * @param {!Object} str
  12966. * @return {?}
  12967. */
  12968. mixin.exports = function(str) {
  12969. return str.match(bindingToken) || [];
  12970. };
  12971. }, function(mixin, n, __webpack_require__) {
  12972. var b = __webpack_require__(84);
  12973. var isFunction = __webpack_require__(87);
  12974. var prop = __webpack_require__(86);
  12975. var a = __webpack_require__(36);
  12976. /**
  12977. * @param {!Object} k
  12978. * @return {?}
  12979. */
  12980. mixin.exports = function(k) {
  12981. return function(p) {
  12982. p = a(p);
  12983. var e = isFunction(p) ? prop(p) : void 0;
  12984. var target = e ? e[0] : p.charAt(0);
  12985. var keyCode = e ? b(e, 1).join("") : p.slice(1);
  12986. return target[k]() + keyCode;
  12987. };
  12988. };
  12989. }, function(module, n, require) {
  12990. var round = require(171);
  12991. var storeMixin = require(99)(function(accumulator, n, isRounded) {
  12992. return n = n.toLowerCase(), accumulator + (isRounded ? round(n) : n);
  12993. });
  12994. module.exports = storeMixin;
  12995. }, function(mixin, n, saveNotifs) {
  12996. var getFileName = saveNotifs(36);
  12997. var doRealRequest = saveNotifs(100);
  12998. /**
  12999. * @param {!Object} type
  13000. * @return {?}
  13001. */
  13002. mixin.exports = function(type) {
  13003. return doRealRequest(getFileName(type).toLowerCase());
  13004. };
  13005. }, function(module, exp, ctx) {
  13006. (function(context) {
  13007. var ret;
  13008. !function(undefined) {
  13009. /**
  13010. * @return {undefined}
  13011. */
  13012. function init() {
  13013. this._events = {};
  13014. if (this._conf) {
  13015. configure.call(this, this._conf);
  13016. }
  13017. }
  13018. /**
  13019. * @param {!Object} conf
  13020. * @return {undefined}
  13021. */
  13022. function configure(conf) {
  13023. if (conf) {
  13024. /** @type {!Object} */
  13025. this._conf = conf;
  13026. if (conf.delimiter) {
  13027. this.delimiter = conf.delimiter;
  13028. }
  13029. this._maxListeners = conf.maxListeners !== undefined ? conf.maxListeners : defaultMaxListeners;
  13030. if (conf.wildcard) {
  13031. this.wildcard = conf.wildcard;
  13032. }
  13033. if (conf.newListener) {
  13034. this._newListener = conf.newListener;
  13035. }
  13036. if (conf.removeListener) {
  13037. this._removeListener = conf.removeListener;
  13038. }
  13039. if (conf.verboseMemoryLeak) {
  13040. this.verboseMemoryLeak = conf.verboseMemoryLeak;
  13041. }
  13042. if (this.wildcard) {
  13043. this.listenerTree = {};
  13044. }
  13045. } else {
  13046. /** @type {number} */
  13047. this._maxListeners = defaultMaxListeners;
  13048. }
  13049. }
  13050. /**
  13051. * @param {number} count
  13052. * @param {string} eventName
  13053. * @return {undefined}
  13054. */
  13055. function logPossibleMemoryLeak(count, eventName) {
  13056. /** @type {string} */
  13057. var value = "(node) warning: possible EventEmitter memory leak detected. " + count + " listeners added. Use emitter.setMaxListeners() to increase limit.";
  13058. if (this.verboseMemoryLeak && (value = value + (" Event name: " + eventName + ".")), void 0 !== context && context.emitWarning) {
  13059. /** @type {!Error} */
  13060. var e = new Error(value);
  13061. /** @type {string} */
  13062. e.name = "MaxListenersExceededWarning";
  13063. e.emitter = this;
  13064. /** @type {number} */
  13065. e.count = count;
  13066. context.emitWarning(e);
  13067. } else {
  13068. console.error(value);
  13069. if (console.trace) {
  13070. console.trace();
  13071. }
  13072. }
  13073. }
  13074. /**
  13075. * @param {?} conf
  13076. * @return {undefined}
  13077. */
  13078. function EventEmitter(conf) {
  13079. this._events = {};
  13080. /** @type {boolean} */
  13081. this._newListener = false;
  13082. /** @type {boolean} */
  13083. this._removeListener = false;
  13084. /** @type {boolean} */
  13085. this.verboseMemoryLeak = false;
  13086. configure.call(this, conf);
  13087. }
  13088. /**
  13089. * @param {string} handlers
  13090. * @param {number} type
  13091. * @param {!Element} tree
  13092. * @param {number} i
  13093. * @return {?}
  13094. */
  13095. function searchListenerTree(handlers, type, tree, i) {
  13096. if (!tree) {
  13097. return [];
  13098. }
  13099. var name;
  13100. var z;
  13101. var key;
  13102. var xTree;
  13103. var xxTree;
  13104. var attrs;
  13105. var endReached;
  13106. /** @type {!Array} */
  13107. var listeners = [];
  13108. var typeLength = type.length;
  13109. var method = type[i];
  13110. var size = type[i + 1];
  13111. if (i === typeLength && tree._listeners) {
  13112. if ("function" == typeof tree._listeners) {
  13113. return handlers && handlers.push(tree._listeners), [tree];
  13114. }
  13115. /** @type {number} */
  13116. name = 0;
  13117. z = tree._listeners.length;
  13118. for (; name < z; name++) {
  13119. if (handlers) {
  13120. handlers.push(tree._listeners[name]);
  13121. }
  13122. }
  13123. return [tree];
  13124. }
  13125. if ("*" === method || "**" === method || tree[method]) {
  13126. if ("*" === method) {
  13127. for (key in tree) {
  13128. if ("_listeners" !== key && tree.hasOwnProperty(key)) {
  13129. /** @type {!Array<?>} */
  13130. listeners = listeners.concat(searchListenerTree(handlers, type, tree[key], i + 1));
  13131. }
  13132. }
  13133. return listeners;
  13134. }
  13135. if ("**" === method) {
  13136. for (key in(endReached = i + 1 === typeLength || i + 2 === typeLength && "*" === size) && tree._listeners && (listeners = listeners.concat(searchListenerTree(handlers, type, tree, typeLength))), tree) {
  13137. if ("_listeners" !== key && tree.hasOwnProperty(key)) {
  13138. if ("*" === key || "**" === key) {
  13139. if (tree[key]._listeners && !endReached) {
  13140. /** @type {!Array<?>} */
  13141. listeners = listeners.concat(searchListenerTree(handlers, type, tree[key], typeLength));
  13142. }
  13143. /** @type {!Array<?>} */
  13144. listeners = listeners.concat(searchListenerTree(handlers, type, tree[key], i));
  13145. } else {
  13146. /** @type {!Array<?>} */
  13147. listeners = key === size ? listeners.concat(searchListenerTree(handlers, type, tree[key], i + 2)) : listeners.concat(searchListenerTree(handlers, type, tree[key], i));
  13148. }
  13149. }
  13150. }
  13151. return listeners;
  13152. }
  13153. /** @type {!Array<?>} */
  13154. listeners = listeners.concat(searchListenerTree(handlers, type, tree[method], i + 1));
  13155. }
  13156. if ((xTree = tree["*"]) && searchListenerTree(handlers, type, xTree, i + 1), xxTree = tree["**"]) {
  13157. if (i < typeLength) {
  13158. for (key in xxTree._listeners && searchListenerTree(handlers, type, xxTree, typeLength), xxTree) {
  13159. if ("_listeners" !== key && xxTree.hasOwnProperty(key)) {
  13160. if (key === size) {
  13161. searchListenerTree(handlers, type, xxTree[key], i + 2);
  13162. } else {
  13163. if (key === method) {
  13164. searchListenerTree(handlers, type, xxTree[key], i + 1);
  13165. } else {
  13166. (attrs = {})[key] = xxTree[key];
  13167. searchListenerTree(handlers, type, {
  13168. "**" : attrs
  13169. }, i + 1);
  13170. }
  13171. }
  13172. }
  13173. }
  13174. } else {
  13175. if (xxTree._listeners) {
  13176. searchListenerTree(handlers, type, xxTree, typeLength);
  13177. } else {
  13178. if (xxTree["*"] && xxTree["*"]._listeners) {
  13179. searchListenerTree(handlers, type, xxTree["*"], typeLength);
  13180. }
  13181. }
  13182. }
  13183. }
  13184. return listeners;
  13185. }
  13186. /** @type {!Function} */
  13187. var isArray = Array.isArray ? Array.isArray : function(xs) {
  13188. return "[object Array]" === Object.prototype.toString.call(xs);
  13189. };
  13190. /** @type {number} */
  13191. var defaultMaxListeners = 10;
  13192. /** @type {function(?): undefined} */
  13193. EventEmitter.EventEmitter2 = EventEmitter;
  13194. /** @type {string} */
  13195. EventEmitter.prototype.delimiter = ".";
  13196. /**
  13197. * @param {number} n
  13198. * @return {undefined}
  13199. */
  13200. EventEmitter.prototype.setMaxListeners = function(n) {
  13201. if (n !== undefined) {
  13202. /** @type {number} */
  13203. this._maxListeners = n;
  13204. if (!this._conf) {
  13205. this._conf = {};
  13206. }
  13207. /** @type {number} */
  13208. this._conf.maxListeners = n;
  13209. }
  13210. };
  13211. /** @type {string} */
  13212. EventEmitter.prototype.event = "";
  13213. /**
  13214. * @param {string} event
  13215. * @param {!Function} fn
  13216. * @return {?}
  13217. */
  13218. EventEmitter.prototype.once = function(event, fn) {
  13219. return this._once(event, fn, false);
  13220. };
  13221. /**
  13222. * @param {string} event
  13223. * @param {string} fn
  13224. * @return {?}
  13225. */
  13226. EventEmitter.prototype.prependOnceListener = function(event, fn) {
  13227. return this._once(event, fn, true);
  13228. };
  13229. /**
  13230. * @param {string} event
  13231. * @param {string} fn
  13232. * @param {boolean} prepend
  13233. * @return {?}
  13234. */
  13235. EventEmitter.prototype._once = function(event, fn, prepend) {
  13236. return this._many(event, 1, fn, prepend), this;
  13237. };
  13238. /**
  13239. * @param {string} event
  13240. * @param {undefined} ttl
  13241. * @param {string} fn
  13242. * @return {?}
  13243. */
  13244. EventEmitter.prototype.many = function(event, ttl, fn) {
  13245. return this._many(event, ttl, fn, false);
  13246. };
  13247. /**
  13248. * @param {string} event
  13249. * @param {undefined} ttl
  13250. * @param {string} fn
  13251. * @return {?}
  13252. */
  13253. EventEmitter.prototype.prependMany = function(event, ttl, fn) {
  13254. return this._many(event, ttl, fn, true);
  13255. };
  13256. /**
  13257. * @param {string} event
  13258. * @param {number} ttl
  13259. * @param {string} fn
  13260. * @param {boolean} prepend
  13261. * @return {?}
  13262. */
  13263. EventEmitter.prototype._many = function(event, ttl, fn, prepend) {
  13264. /**
  13265. * @return {?}
  13266. */
  13267. function listener() {
  13268. return 0 == --ttl && $sails.off(event, listener), fn.apply(this, arguments);
  13269. }
  13270. var $sails = this;
  13271. if ("function" != typeof fn) {
  13272. throw new Error("many only accepts instances of Function");
  13273. }
  13274. return listener._origin = fn, this._on(event, listener, prepend), $sails;
  13275. };
  13276. /**
  13277. * @return {?}
  13278. */
  13279. EventEmitter.prototype.emit = function() {
  13280. if (!this._events) {
  13281. init.call(this);
  13282. }
  13283. var type = arguments[0];
  13284. if ("newListener" === type && !this._newListener && !this._events.newListener) {
  13285. return false;
  13286. }
  13287. var args;
  13288. var _len1;
  13289. var meth;
  13290. var i;
  13291. var handler;
  13292. /** @type {number} */
  13293. var l = arguments.length;
  13294. if (this._all && this._all.length) {
  13295. if (handler = this._all.slice(), l > 3) {
  13296. /** @type {!Array} */
  13297. args = new Array(l);
  13298. /** @type {number} */
  13299. i = 0;
  13300. for (; i < l; i++) {
  13301. args[i] = arguments[i];
  13302. }
  13303. }
  13304. /** @type {number} */
  13305. meth = 0;
  13306. _len1 = handler.length;
  13307. for (; meth < _len1; meth++) {
  13308. switch(this.event = type, l) {
  13309. case 1:
  13310. handler[meth].call(this, type);
  13311. break;
  13312. case 2:
  13313. handler[meth].call(this, type, arguments[1]);
  13314. break;
  13315. case 3:
  13316. handler[meth].call(this, type, arguments[1], arguments[2]);
  13317. break;
  13318. default:
  13319. handler[meth].apply(this, args);
  13320. }
  13321. }
  13322. }
  13323. if (this.wildcard) {
  13324. /** @type {!Array} */
  13325. handler = [];
  13326. var ns = "string" == typeof type ? type.split(this.delimiter) : type.slice();
  13327. searchListenerTree.call(this, handler, ns, this.listenerTree, 0);
  13328. } else {
  13329. if ("function" == typeof(handler = this._events[type])) {
  13330. switch(this.event = type, l) {
  13331. case 1:
  13332. handler.call(this);
  13333. break;
  13334. case 2:
  13335. handler.call(this, arguments[1]);
  13336. break;
  13337. case 3:
  13338. handler.call(this, arguments[1], arguments[2]);
  13339. break;
  13340. default:
  13341. /** @type {!Array} */
  13342. args = new Array(l - 1);
  13343. /** @type {number} */
  13344. i = 1;
  13345. for (; i < l; i++) {
  13346. args[i - 1] = arguments[i];
  13347. }
  13348. handler.apply(this, args);
  13349. }
  13350. return true;
  13351. }
  13352. if (handler) {
  13353. handler = handler.slice();
  13354. }
  13355. }
  13356. if (handler && handler.length) {
  13357. if (l > 3) {
  13358. /** @type {!Array} */
  13359. args = new Array(l - 1);
  13360. /** @type {number} */
  13361. i = 1;
  13362. for (; i < l; i++) {
  13363. args[i - 1] = arguments[i];
  13364. }
  13365. }
  13366. /** @type {number} */
  13367. meth = 0;
  13368. _len1 = handler.length;
  13369. for (; meth < _len1; meth++) {
  13370. switch(this.event = type, l) {
  13371. case 1:
  13372. handler[meth].call(this);
  13373. break;
  13374. case 2:
  13375. handler[meth].call(this, arguments[1]);
  13376. break;
  13377. case 3:
  13378. handler[meth].call(this, arguments[1], arguments[2]);
  13379. break;
  13380. default:
  13381. handler[meth].apply(this, args);
  13382. }
  13383. }
  13384. return true;
  13385. }
  13386. if (!this._all && "error" === type) {
  13387. throw arguments[1] instanceof Error ? arguments[1] : new Error("Uncaught, unspecified 'error' event.");
  13388. }
  13389. return !!this._all;
  13390. };
  13391. /**
  13392. * @return {?}
  13393. */
  13394. EventEmitter.prototype.emitAsync = function() {
  13395. if (!this._events) {
  13396. init.call(this);
  13397. }
  13398. var type = arguments[0];
  13399. if ("newListener" === type && !this._newListener && !this._events.newListener) {
  13400. return Promise.resolve([false]);
  13401. }
  13402. var args;
  13403. var l;
  13404. var i;
  13405. var index;
  13406. var handler;
  13407. /** @type {!Array} */
  13408. var promises = [];
  13409. /** @type {number} */
  13410. var len = arguments.length;
  13411. if (this._all) {
  13412. if (len > 3) {
  13413. /** @type {!Array} */
  13414. args = new Array(len);
  13415. /** @type {number} */
  13416. index = 1;
  13417. for (; index < len; index++) {
  13418. args[index] = arguments[index];
  13419. }
  13420. }
  13421. /** @type {number} */
  13422. i = 0;
  13423. l = this._all.length;
  13424. for (; i < l; i++) {
  13425. switch(this.event = type, len) {
  13426. case 1:
  13427. promises.push(this._all[i].call(this, type));
  13428. break;
  13429. case 2:
  13430. promises.push(this._all[i].call(this, type, arguments[1]));
  13431. break;
  13432. case 3:
  13433. promises.push(this._all[i].call(this, type, arguments[1], arguments[2]));
  13434. break;
  13435. default:
  13436. promises.push(this._all[i].apply(this, args));
  13437. }
  13438. }
  13439. }
  13440. if (this.wildcard) {
  13441. /** @type {!Array} */
  13442. handler = [];
  13443. var ns = "string" == typeof type ? type.split(this.delimiter) : type.slice();
  13444. searchListenerTree.call(this, handler, ns, this.listenerTree, 0);
  13445. } else {
  13446. handler = this._events[type];
  13447. }
  13448. if ("function" == typeof handler) {
  13449. switch(this.event = type, len) {
  13450. case 1:
  13451. promises.push(handler.call(this));
  13452. break;
  13453. case 2:
  13454. promises.push(handler.call(this, arguments[1]));
  13455. break;
  13456. case 3:
  13457. promises.push(handler.call(this, arguments[1], arguments[2]));
  13458. break;
  13459. default:
  13460. /** @type {!Array} */
  13461. args = new Array(len - 1);
  13462. /** @type {number} */
  13463. index = 1;
  13464. for (; index < len; index++) {
  13465. args[index - 1] = arguments[index];
  13466. }
  13467. promises.push(handler.apply(this, args));
  13468. }
  13469. } else {
  13470. if (handler && handler.length) {
  13471. if (handler = handler.slice(), len > 3) {
  13472. /** @type {!Array} */
  13473. args = new Array(len - 1);
  13474. /** @type {number} */
  13475. index = 1;
  13476. for (; index < len; index++) {
  13477. args[index - 1] = arguments[index];
  13478. }
  13479. }
  13480. /** @type {number} */
  13481. i = 0;
  13482. l = handler.length;
  13483. for (; i < l; i++) {
  13484. switch(this.event = type, len) {
  13485. case 1:
  13486. promises.push(handler[i].call(this));
  13487. break;
  13488. case 2:
  13489. promises.push(handler[i].call(this, arguments[1]));
  13490. break;
  13491. case 3:
  13492. promises.push(handler[i].call(this, arguments[1], arguments[2]));
  13493. break;
  13494. default:
  13495. promises.push(handler[i].apply(this, args));
  13496. }
  13497. }
  13498. } else {
  13499. if (!this._all && "error" === type) {
  13500. return arguments[1] instanceof Error ? Promise.reject(arguments[1]) : Promise.reject("Uncaught, unspecified 'error' event.");
  13501. }
  13502. }
  13503. }
  13504. return Promise.all(promises);
  13505. };
  13506. /**
  13507. * @param {string} event
  13508. * @param {!Function} fn
  13509. * @return {?}
  13510. */
  13511. EventEmitter.prototype.on = function(event, fn) {
  13512. return this._on(event, fn, false);
  13513. };
  13514. /**
  13515. * @param {!Object} event
  13516. * @param {!Function} fn
  13517. * @return {?}
  13518. */
  13519. EventEmitter.prototype.prependListener = function(event, fn) {
  13520. return this._on(event, fn, true);
  13521. };
  13522. /**
  13523. * @param {!Function} fn
  13524. * @return {?}
  13525. */
  13526. EventEmitter.prototype.onAny = function(fn) {
  13527. return this._onAny(fn, false);
  13528. };
  13529. /**
  13530. * @param {!Function} fn
  13531. * @return {?}
  13532. */
  13533. EventEmitter.prototype.prependAny = function(fn) {
  13534. return this._onAny(fn, true);
  13535. };
  13536. /** @type {function(string, !Function): ?} */
  13537. EventEmitter.prototype.addListener = EventEmitter.prototype.on;
  13538. /**
  13539. * @param {!Function} fn
  13540. * @param {string} args
  13541. * @return {?}
  13542. */
  13543. EventEmitter.prototype._onAny = function(fn, args) {
  13544. if ("function" != typeof fn) {
  13545. throw new Error("onAny only accepts instances of Function");
  13546. }
  13547. return this._all || (this._all = []), args ? this._all.unshift(fn) : this._all.push(fn), this;
  13548. };
  13549. /**
  13550. * @param {!Object} type
  13551. * @param {!Function} listener
  13552. * @param {boolean} prepend
  13553. * @return {?}
  13554. */
  13555. EventEmitter.prototype._on = function(type, listener, prepend) {
  13556. if ("function" == typeof type) {
  13557. return this._onAny(type, listener), this;
  13558. }
  13559. if ("function" != typeof listener) {
  13560. throw new Error("on only accepts instances of Function");
  13561. }
  13562. return this._events || init.call(this), this._newListener && this.emit("newListener", type, listener), this.wildcard ? (function(data, listener) {
  13563. /** @type {number} */
  13564. var i = 0;
  13565. var flatPointsLength = (data = "string" == typeof data ? data.split(this.delimiter) : data.slice()).length;
  13566. for (; i + 1 < flatPointsLength; i++) {
  13567. if ("**" === data[i] && "**" === data[i + 1]) {
  13568. return;
  13569. }
  13570. }
  13571. var tree = this.listenerTree;
  13572. var name = data.shift();
  13573. for (; name !== undefined;) {
  13574. if (tree[name] || (tree[name] = {}), tree = tree[name], 0 === data.length) {
  13575. return tree._listeners ? ("function" == typeof tree._listeners && (tree._listeners = [tree._listeners]), tree._listeners.push(listener), !tree._listeners.warned && this._maxListeners > 0 && tree._listeners.length > this._maxListeners && (tree._listeners.warned = true, logPossibleMemoryLeak.call(this, tree._listeners.length, name))) : tree._listeners = listener, true;
  13576. }
  13577. name = data.shift();
  13578. }
  13579. return true;
  13580. }.call(this, type, listener), this) : (this._events[type] ? ("function" == typeof this._events[type] && (this._events[type] = [this._events[type]]), prepend ? this._events[type].unshift(listener) : this._events[type].push(listener), !this._events[type].warned && this._maxListeners > 0 && this._events[type].length > this._maxListeners && (this._events[type].warned = true, logPossibleMemoryLeak.call(this, this._events[type].length, type))) : this._events[type] = listener, this);
  13581. };
  13582. /**
  13583. * @param {string} name
  13584. * @param {!Function} listener
  13585. * @return {?}
  13586. */
  13587. EventEmitter.prototype.off = function(name, listener) {
  13588. if ("function" != typeof listener) {
  13589. throw new Error("removeListener only takes instances of Function");
  13590. }
  13591. var item;
  13592. /** @type {!Array} */
  13593. var leafs = [];
  13594. if (this.wildcard) {
  13595. var ns = "string" == typeof name ? name.split(this.delimiter) : name.slice();
  13596. leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0);
  13597. } else {
  13598. if (!this._events[name]) {
  13599. return this;
  13600. }
  13601. item = this._events[name];
  13602. leafs.push({
  13603. _listeners : item
  13604. });
  13605. }
  13606. /** @type {number} */
  13607. var iLeaf = 0;
  13608. for (; iLeaf < leafs.length; iLeaf++) {
  13609. var leaf = leafs[iLeaf];
  13610. if (item = leaf._listeners, isArray(item)) {
  13611. /** @type {number} */
  13612. var nClauseIdx = -1;
  13613. /** @type {number} */
  13614. var i = 0;
  13615. var itemLen = item.length;
  13616. for (; i < itemLen; i++) {
  13617. if (item[i] === listener || item[i].listener && item[i].listener === listener || item[i]._origin && item[i]._origin === listener) {
  13618. /** @type {number} */
  13619. nClauseIdx = i;
  13620. break;
  13621. }
  13622. }
  13623. if (nClauseIdx < 0) {
  13624. continue;
  13625. }
  13626. return this.wildcard ? leaf._listeners.splice(nClauseIdx, 1) : this._events[name].splice(nClauseIdx, 1), 0 === item.length && (this.wildcard ? delete leaf._listeners : delete this._events[name]), this._removeListener && this.emit("removeListener", name, listener), this;
  13627. }
  13628. if (item === listener || item.listener && item.listener === listener || item._origin && item._origin === listener) {
  13629. if (this.wildcard) {
  13630. delete leaf._listeners;
  13631. } else {
  13632. delete this._events[name];
  13633. }
  13634. if (this._removeListener) {
  13635. this.emit("removeListener", name, listener);
  13636. }
  13637. }
  13638. }
  13639. return function recursivelyGarbageCollect(root) {
  13640. if (root !== undefined) {
  13641. /** @type {!Array<string>} */
  13642. var element = Object.keys(root);
  13643. var property;
  13644. for (property in element) {
  13645. /** @type {string} */
  13646. var key = element[property];
  13647. var value = root[key];
  13648. if (!(value instanceof Function || "object" != typeof value || null === value)) {
  13649. if (Object.keys(value).length > 0) {
  13650. recursivelyGarbageCollect(root[key]);
  13651. }
  13652. if (0 === Object.keys(value).length) {
  13653. delete root[key];
  13654. }
  13655. }
  13656. }
  13657. }
  13658. }(this.listenerTree), this;
  13659. };
  13660. /**
  13661. * @param {number} fn
  13662. * @return {?}
  13663. */
  13664. EventEmitter.prototype.offAny = function(fn) {
  13665. var fns;
  13666. /** @type {number} */
  13667. var i = 0;
  13668. /** @type {number} */
  13669. var l = 0;
  13670. if (fn && this._all && this._all.length > 0) {
  13671. /** @type {number} */
  13672. i = 0;
  13673. l = (fns = this._all).length;
  13674. for (; i < l; i++) {
  13675. if (fn === fns[i]) {
  13676. return fns.splice(i, 1), this._removeListener && this.emit("removeListenerAny", fn), this;
  13677. }
  13678. }
  13679. } else {
  13680. if (fns = this._all, this._removeListener) {
  13681. /** @type {number} */
  13682. i = 0;
  13683. l = fns.length;
  13684. for (; i < l; i++) {
  13685. this.emit("removeListenerAny", fns[i]);
  13686. }
  13687. }
  13688. /** @type {!Array} */
  13689. this._all = [];
  13690. }
  13691. return this;
  13692. };
  13693. /** @type {function(string, !Function): ?} */
  13694. EventEmitter.prototype.removeListener = EventEmitter.prototype.off;
  13695. /**
  13696. * @param {string} type
  13697. * @return {?}
  13698. */
  13699. EventEmitter.prototype.removeAllListeners = function(type) {
  13700. if (type === undefined) {
  13701. return !this._events || init.call(this), this;
  13702. }
  13703. if (this.wildcard) {
  13704. var ns = "string" == typeof type ? type.split(this.delimiter) : type.slice();
  13705. var crossfilterable_layers = searchListenerTree.call(this, null, ns, this.listenerTree, 0);
  13706. /** @type {number} */
  13707. var layer_i = 0;
  13708. for (; layer_i < crossfilterable_layers.length; layer_i++) {
  13709. /** @type {null} */
  13710. crossfilterable_layers[layer_i]._listeners = null;
  13711. }
  13712. } else {
  13713. if (this._events) {
  13714. /** @type {null} */
  13715. this._events[type] = null;
  13716. }
  13717. }
  13718. return this;
  13719. };
  13720. /**
  13721. * @param {string} type
  13722. * @return {?}
  13723. */
  13724. EventEmitter.prototype.listeners = function(type) {
  13725. if (this.wildcard) {
  13726. /** @type {!Array} */
  13727. var result = [];
  13728. var value = "string" == typeof type ? type.split(this.delimiter) : type.slice();
  13729. return searchListenerTree.call(this, result, value, this.listenerTree, 0), result;
  13730. }
  13731. return this._events || init.call(this), this._events[type] || (this._events[type] = []), isArray(this._events[type]) || (this._events[type] = [this._events[type]]), this._events[type];
  13732. };
  13733. /**
  13734. * @return {?}
  13735. */
  13736. EventEmitter.prototype.eventNames = function() {
  13737. return Object.keys(this._events);
  13738. };
  13739. /**
  13740. * @param {string} type
  13741. * @return {?}
  13742. */
  13743. EventEmitter.prototype.listenerCount = function(type) {
  13744. return this.listeners(type).length;
  13745. };
  13746. /**
  13747. * @return {?}
  13748. */
  13749. EventEmitter.prototype.listenersAny = function() {
  13750. return this._all ? this._all : [];
  13751. };
  13752. if (!((ret = function() {
  13753. return EventEmitter;
  13754. }.call(exp, ctx, exp, module)) === undefined)) {
  13755. module.exports = ret;
  13756. }
  13757. }();
  13758. }).call(this, ctx(2));
  13759. }, function(mixin, n, d3_bisect) {
  13760. var realTypeOf = d3_bisect(31);
  13761. var i = d3_bisect(18);
  13762. var index = d3_bisect(30);
  13763. /** @type {string} */
  13764. var TYPE_ARRAY = "[object String]";
  13765. /**
  13766. * @param {!Object} b
  13767. * @return {?}
  13768. */
  13769. mixin.exports = function(b) {
  13770. return "string" == typeof b || !i(b) && index(b) && realTypeOf(b) == TYPE_ARRAY;
  13771. };
  13772. }, function(mixin, n, saveNotifs) {
  13773. var friendlyAttrValue = saveNotifs(175);
  13774. /** @type {number} */
  13775. var INFINITY$2 = 1 / 0;
  13776. /** @type {number} */
  13777. var o = 1.7976931348623157E308;
  13778. /**
  13779. * @param {number} value
  13780. * @return {?}
  13781. */
  13782. mixin.exports = function(value) {
  13783. return value ? (value = friendlyAttrValue(value)) === INFINITY$2 || value === -INFINITY$2 ? (value < 0 ? -1 : 1) * o : value == value ? value : 0 : 0 === value ? value : 0;
  13784. };
  13785. }, function(mixin, n, require) {
  13786. var isObject = require(20);
  13787. var coerce = require(35);
  13788. /** @type {number} */
  13789. var NAN = NaN;
  13790. /** @type {!RegExp} */
  13791. var a = /^\s+|\s+$/g;
  13792. /** @type {!RegExp} */
  13793. var s = /^[-+]0x[0-9a-f]+$/i;
  13794. /** @type {!RegExp} */
  13795. var c = /^0b[01]+$/i;
  13796. /** @type {!RegExp} */
  13797. var trueRE = /^0o[0-7]+$/i;
  13798. /** @type {function(*, (number|undefined)): number} */
  13799. var freeParseInt = parseInt;
  13800. /**
  13801. * @param {?} value
  13802. * @return {?}
  13803. */
  13804. mixin.exports = function(value) {
  13805. if ("number" == typeof value) {
  13806. return value;
  13807. }
  13808. if (coerce(value)) {
  13809. return NAN;
  13810. }
  13811. if (isObject(value)) {
  13812. var other = "function" == typeof value.valueOf ? value.valueOf() : value;
  13813. value = isObject(other) ? other + "" : other;
  13814. }
  13815. if ("string" != typeof value) {
  13816. return 0 === value ? value : +value;
  13817. }
  13818. /** @type {string} */
  13819. value = value.replace(a, "");
  13820. /** @type {boolean} */
  13821. var isBinary = c.test(value);
  13822. return isBinary || trueRE.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : s.test(value) ? NAN : +value;
  13823. };
  13824. }, function(mixin, n, require) {
  13825. var callback = require(177);
  13826. var extend = require(21);
  13827. /**
  13828. * @param {!Object} value
  13829. * @return {?}
  13830. */
  13831. mixin.exports = function(value) {
  13832. return null == value ? [] : callback(value, extend(value));
  13833. };
  13834. }, function(mixin, n, kvFn) {
  13835. var r = kvFn(26);
  13836. /**
  13837. * @param {!Object} e
  13838. * @param {number} n
  13839. * @return {?}
  13840. */
  13841. mixin.exports = function(e, n) {
  13842. return r(n, function(childProp) {
  13843. return e[childProp];
  13844. });
  13845. };
  13846. }, function(module, n, factory) {
  13847. var createStream = factory(49);
  13848. var pdf = factory(40);
  13849. var dir = factory(181);
  13850. var Loader = factory(68);
  13851. var storeMixin = pdf(function(file) {
  13852. return dir(createStream(file, 1, Loader, true));
  13853. });
  13854. module.exports = storeMixin;
  13855. }, function(mixin, n) {
  13856. /**
  13857. * @param {!Object} x
  13858. * @param {number} y
  13859. * @return {?}
  13860. */
  13861. mixin.exports = function(x, y) {
  13862. /** @type {number} */
  13863. var j = -1;
  13864. var n = y.length;
  13865. var i = x.length;
  13866. for (; ++j < n;) {
  13867. x[i + j] = y[j];
  13868. }
  13869. return x;
  13870. };
  13871. }, function(mixin, n, __webpack_require__) {
  13872. var Symbol = __webpack_require__(83);
  13873. var isObject = __webpack_require__(47);
  13874. var isArray = __webpack_require__(18);
  13875. var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : void 0;
  13876. /**
  13877. * @param {!Object} value
  13878. * @return {?}
  13879. */
  13880. mixin.exports = function(value) {
  13881. return isArray(value) || isObject(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
  13882. };
  13883. }, function(mixin, n, load) {
  13884. var format = load(65);
  13885. var data = load(103);
  13886. var durationOrCallback = load(104);
  13887. var a = load(66);
  13888. var getTypeOf = load(182);
  13889. var divide = load(183);
  13890. /** @type {number} */
  13891. var address_count = 200;
  13892. /**
  13893. * @param {!Array} value
  13894. * @param {!Function} n
  13895. * @param {string} o
  13896. * @return {?}
  13897. */
  13898. mixin.exports = function(value, n, o) {
  13899. /** @type {number} */
  13900. var i = -1;
  13901. var d = data;
  13902. var count = value.length;
  13903. /** @type {boolean} */
  13904. var ctrl = true;
  13905. /** @type {!Array} */
  13906. var to = [];
  13907. /** @type {!Array} */
  13908. var from = to;
  13909. if (o) {
  13910. /** @type {boolean} */
  13911. ctrl = false;
  13912. d = durationOrCallback;
  13913. } else {
  13914. if (count >= address_count) {
  13915. var res = n ? null : getTypeOf(value);
  13916. if (res) {
  13917. return divide(res);
  13918. }
  13919. /** @type {boolean} */
  13920. ctrl = false;
  13921. d = a;
  13922. from = new format;
  13923. } else {
  13924. /** @type {!Array} */
  13925. from = n ? [] : to;
  13926. }
  13927. }
  13928. e: for (; ++i < count;) {
  13929. var t = value[i];
  13930. var m = n ? n(t) : t;
  13931. if (t = o || 0 !== t ? t : 0, ctrl && m == m) {
  13932. var i = from.length;
  13933. for (; i--;) {
  13934. if (from[i] === m) {
  13935. continue e;
  13936. }
  13937. }
  13938. if (n) {
  13939. from.push(m);
  13940. }
  13941. to.push(t);
  13942. } else {
  13943. if (!d(from, m, o)) {
  13944. if (from !== to) {
  13945. from.push(m);
  13946. }
  13947. to.push(t);
  13948. }
  13949. }
  13950. }
  13951. return to;
  13952. };
  13953. }, function(mixin, n) {
  13954. /**
  13955. * @return {undefined}
  13956. */
  13957. mixin.exports = function() {
  13958. };
  13959. }, function(mixin, n) {
  13960. /**
  13961. * @return {?}
  13962. */
  13963. mixin.exports = function() {
  13964. return [];
  13965. };
  13966. }, function(module, n, saveNotifs) {
  13967. var assertAnalysis = saveNotifs(96);
  13968. var storeMixin = saveNotifs(39)(function(alphanumeric, n, expected1, i) {
  13969. assertAnalysis(alphanumeric, n, expected1, i);
  13970. });
  13971. module.exports = storeMixin;
  13972. }, function(canCreateDiscussions, exports, moment) {
  13973. (function(extra) {
  13974. /**
  13975. * @param {!Array} v
  13976. * @param {boolean} array
  13977. * @return {?}
  13978. */
  13979. function normalizeArray(v, array) {
  13980. /** @type {number} */
  13981. var r = 0;
  13982. /** @type {number} */
  13983. var i = v.length - 1;
  13984. for (; i >= 0; i--) {
  13985. var vval = v[i];
  13986. if ("." === vval) {
  13987. v.splice(i, 1);
  13988. } else {
  13989. if (".." === vval) {
  13990. v.splice(i, 1);
  13991. r++;
  13992. } else {
  13993. if (r) {
  13994. v.splice(i, 1);
  13995. r--;
  13996. }
  13997. }
  13998. }
  13999. }
  14000. if (array) {
  14001. for (; r--; r) {
  14002. v.unshift("..");
  14003. }
  14004. }
  14005. return v;
  14006. }
  14007. /**
  14008. * @param {!Array} arr
  14009. * @param {!Function} iter
  14010. * @return {?}
  14011. */
  14012. function filter(arr, iter) {
  14013. if (arr.filter) {
  14014. return arr.filter(iter);
  14015. }
  14016. /** @type {!Array} */
  14017. var outArr = [];
  14018. /** @type {number} */
  14019. var i = 0;
  14020. for (; i < arr.length; i++) {
  14021. if (iter(arr[i], i, arr)) {
  14022. outArr.push(arr[i]);
  14023. }
  14024. }
  14025. return outArr;
  14026. }
  14027. /** @type {!RegExp} */
  14028. var testFileRegex = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
  14029. /**
  14030. * @param {?} filename
  14031. * @return {?}
  14032. */
  14033. var splitPath = function(filename) {
  14034. return testFileRegex.exec(filename).slice(1);
  14035. };
  14036. /**
  14037. * @return {?}
  14038. */
  14039. exports.resolve = function() {
  14040. /** @type {string} */
  14041. var resolvedPath = "";
  14042. /** @type {boolean} */
  14043. var resolvedAbsolute = false;
  14044. /** @type {number} */
  14045. var i = arguments.length - 1;
  14046. for (; i >= -1 && !resolvedAbsolute; i--) {
  14047. var path = i >= 0 ? arguments[i] : extra.cwd();
  14048. if ("string" != typeof path) {
  14049. throw new TypeError("Arguments to path.resolve must be strings");
  14050. }
  14051. if (path) {
  14052. /** @type {string} */
  14053. resolvedPath = path + "/" + resolvedPath;
  14054. /** @type {boolean} */
  14055. resolvedAbsolute = "/" === path.charAt(0);
  14056. }
  14057. }
  14058. return resolvedPath = normalizeArray(filter(resolvedPath.split("/"), function(canCreateDiscussions) {
  14059. return !!canCreateDiscussions;
  14060. }), !resolvedAbsolute).join("/"), (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
  14061. };
  14062. /**
  14063. * @param {string} path
  14064. * @return {?}
  14065. */
  14066. exports.normalize = function(path) {
  14067. var isAbsolute = exports.isAbsolute(path);
  14068. /** @type {boolean} */
  14069. var synthetic = "/" === getInfoBoxData(path, -1);
  14070. return (path = normalizeArray(filter(path.split("/"), function(canCreateDiscussions) {
  14071. return !!canCreateDiscussions;
  14072. }), !isAbsolute).join("/")) || isAbsolute || (path = "."), path && synthetic && (path = path + "/"), (isAbsolute ? "/" : "") + path;
  14073. };
  14074. /**
  14075. * @param {string} pathname
  14076. * @return {?}
  14077. */
  14078. exports.isAbsolute = function(pathname) {
  14079. return "/" === pathname.charAt(0);
  14080. };
  14081. /**
  14082. * @return {?}
  14083. */
  14084. exports.join = function() {
  14085. /** @type {!Array<?>} */
  14086. var e = Array.prototype.slice.call(arguments, 0);
  14087. return exports.normalize(filter(e, function(v, n) {
  14088. if ("string" != typeof v) {
  14089. throw new TypeError("Arguments to path.join must be strings");
  14090. }
  14091. return v;
  14092. }).join("/"));
  14093. };
  14094. /**
  14095. * @param {(Array|string)} e
  14096. * @param {(Array|string)} t
  14097. * @return {?}
  14098. */
  14099. exports.relative = function(e, t) {
  14100. /**
  14101. * @param {!Array} s
  14102. * @return {?}
  14103. */
  14104. function trim(s) {
  14105. /** @type {number} */
  14106. var i = 0;
  14107. for (; i < s.length && "" === s[i]; i++) {
  14108. }
  14109. /** @type {number} */
  14110. var k = s.length - 1;
  14111. for (; k >= 0 && "" === s[k]; k--) {
  14112. }
  14113. return i > k ? [] : s.slice(i, k - i + 1);
  14114. }
  14115. e = exports.resolve(e).substr(1);
  14116. t = exports.resolve(t).substr(1);
  14117. var fromParts = trim(e.split("/"));
  14118. var toParts = trim(t.split("/"));
  14119. /** @type {number} */
  14120. var lastTime = Math.min(fromParts.length, toParts.length);
  14121. /** @type {number} */
  14122. var start = lastTime;
  14123. /** @type {number} */
  14124. var i = 0;
  14125. for (; i < lastTime; i++) {
  14126. if (fromParts[i] !== toParts[i]) {
  14127. /** @type {number} */
  14128. start = i;
  14129. break;
  14130. }
  14131. }
  14132. /** @type {!Array} */
  14133. var target = [];
  14134. /** @type {number} */
  14135. i = start;
  14136. for (; i < fromParts.length; i++) {
  14137. target.push("..");
  14138. }
  14139. return (target = target.concat(toParts.slice(start))).join("/");
  14140. };
  14141. /** @type {string} */
  14142. exports.sep = "/";
  14143. /** @type {string} */
  14144. exports.delimiter = ":";
  14145. /**
  14146. * @param {?} path
  14147. * @return {?}
  14148. */
  14149. exports.dirname = function(path) {
  14150. var split = splitPath(path);
  14151. var test = split[0];
  14152. var url = split[1];
  14153. return test || url ? (url && (url = url.substr(0, url.length - 1)), test + url) : ".";
  14154. };
  14155. /**
  14156. * @param {?} path
  14157. * @param {string} ext
  14158. * @return {?}
  14159. */
  14160. exports.basename = function(path, ext) {
  14161. var font = splitPath(path)[2];
  14162. return ext && font.substr(-1 * ext.length) === ext && (font = font.substr(0, font.length - ext.length)), font;
  14163. };
  14164. /**
  14165. * @param {?} path
  14166. * @return {?}
  14167. */
  14168. exports.extname = function(path) {
  14169. return splitPath(path)[3];
  14170. };
  14171. /** @type {function(string, number, ?): ?} */
  14172. var getInfoBoxData = "b" === "ab".substr(-1) ? function(e, n, d) {
  14173. return e.substr(n, d);
  14174. } : function(p, i, t) {
  14175. return i < 0 && (i = p.length + i), p.substr(i, t);
  14176. };
  14177. }).call(this, moment(2));
  14178. }, function(task, n, r) {
  14179. /**
  14180. * @param {!Array} value
  14181. * @return {?}
  14182. */
  14183. function r(value) {
  14184. var container = s(value);
  14185. return r(container);
  14186. }
  14187. /**
  14188. * @param {?} id
  14189. * @return {?}
  14190. */
  14191. function s(id) {
  14192. var pass = answers[id];
  14193. if (!(pass + 1)) {
  14194. /** @type {!Error} */
  14195. var f = new Error("Cannot find module '" + id + "'");
  14196. throw f.code = "MODULE_NOT_FOUND", f;
  14197. }
  14198. return pass;
  14199. }
  14200. var answers = {
  14201. "./actionButton.tmplz" : 187,
  14202. "./actionLink.tmplz" : 188,
  14203. "./checkbox.tmplz" : 189,
  14204. "./coppa.tmplz" : 190,
  14205. "./dateInput.tmplz" : 191,
  14206. "./emailAddress.tmplz" : 192,
  14207. "./errorMessage.tmplz" : 193,
  14208. "./errorPanel.tmplz" : 194,
  14209. "./form.tmplz" : 195,
  14210. "./genderButtons.tmplz" : 196,
  14211. "./hidden.tmplz" : 197,
  14212. "./internationalMobileNumber.tmplz" : 198,
  14213. "./loginContinuityDialog.tmplz" : 199,
  14214. "./passwordCreateInput.tmplz" : 200,
  14215. "./select.tmplz" : 201,
  14216. "./socialLinks.tmplz" : 202,
  14217. "./submitButton.tmplz" : 203,
  14218. "./textInput.tmplz" : 204,
  14219. "./verifyMobileNumber.tmplz" : 205,
  14220. "./viewLink.tmplz" : 206,
  14221. "./viewNavigation.tmplz" : 207
  14222. };
  14223. /**
  14224. * @return {?}
  14225. */
  14226. r.keys = function() {
  14227. return Object.keys(answers);
  14228. };
  14229. /** @type {function(?): ?} */
  14230. r.resolve = s;
  14231. /** @type {function(!Array): ?} */
  14232. task.exports = r;
  14233. /** @type {number} */
  14234. r.id = 186;
  14235. }, function(mixin, n, saveNotifs) {
  14236. saveNotifs(17);
  14237. /**
  14238. * @param {!Object} obj
  14239. * @return {?}
  14240. */
  14241. mixin.exports = function(obj) {
  14242. return '<div id="' + obj.id + '" class="' + obj.classes + ' nike-unite-component">\n <input id="' + obj.inputId + '" type="button" value="' + obj.label + '"/>\n</div>';
  14243. };
  14244. }, function(mixin, n, saveNotifs) {
  14245. saveNotifs(17);
  14246. /**
  14247. * @param {!Object} data
  14248. * @return {?}
  14249. */
  14250. mixin.exports = function(data) {
  14251. return '<div id="' + data.id + '" class="' + data.classes + '">\n ' + data.label + '\n <a id="' + data.linkId + '" href="javascript:void(0);">' + data.linkText + "</a>\n</div>";
  14252. };
  14253. }, function(mixin, n, saveNotifs) {
  14254. saveNotifs(17);
  14255. /**
  14256. * @param {!Object} data
  14257. * @return {?}
  14258. */
  14259. mixin.exports = function(data) {
  14260. return '<div id="' + data.id + '" class="' + data.classes + ' nike-unite-component">\n <div class="shim"></div>\n <div class="error"></div>\n <input id="' + data.inputId + '" type="checkbox" name="' + data.dataField + '" data-componentname="' + data.name + '" ' + data.checked + '/>\n <label for="' + data.inputId + '" class="checkbox">' + data.label + '</label>\n <div class="tip">' + data.tip + "</div>\n</div>";
  14261. };
  14262. }, function(mixin, n, saveNotifs) {
  14263. saveNotifs(17);
  14264. /**
  14265. * @param {!Object} instance
  14266. * @return {?}
  14267. */
  14268. mixin.exports = function(instance) {
  14269. return '<div id="' + instance.id + '" class="' + instance.classes + ' nike-unite-component"></div>';
  14270. };
  14271. }, function(mixin, n, saveNotifs) {
  14272. saveNotifs(17);
  14273. /**
  14274. * @param {!Object} data
  14275. * @return {?}
  14276. */
  14277. mixin.exports = function(data) {
  14278. return '<div id="' + data.id + '" class="' + data.classes + ' nike-unite-component">\n <div class="shim"></div>\n <div class="error"></div>\n <label for="' + data.inputId + '">' + data.label + '</label>\n <input id="' + data.inputId + '" type="date" placeholder="' + data.label + '" value="' + data.value + '" name="' + data.dataField + '" data-componentname="' + data.name + '" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-ddlabel="' + data.ddLabel + '" data-mmlabel="' +
  14279. data.mmLabel + '" data-yyyylabel="' + data.yyyyLabel + '"/>\n <div class="tip">' + data.tip + "</div>\n</div>";
  14280. };
  14281. }, function(mixin, n, saveNotifs) {
  14282. saveNotifs(17);
  14283. /**
  14284. * @param {!Object} data
  14285. * @return {?}
  14286. */
  14287. mixin.exports = function(data) {
  14288. return '<div id="' + data.id + '" class="' + data.classes + ' nike-unite-component">\n <div class="shim"></div>\n <div class="error"></div>\n <label for="' + data.inputId + '">' + data.label + '</label>\n <input id="' + data.inputId + '" type="' + data.keyboardType + '" placeholder="' + data.placeholder + '" value="' + data.value + '" name="' + data.dataField + '" data-componentname="' + data.name + '" ' + data.focus + ' autocomplete="email" autocorrect="off" autocapitalize="off" spellcheck="false" />\n <div class="tip">' +
  14289. data.tip + '</div>\n <div class="duplicate-email" id="' + data.duplicateEmailId + '" style="display:none">' + data.duplicateEmailMessage + "</div>\n</div>";
  14290. };
  14291. }, function(mixin, n, saveNotifs) {
  14292. const filter = saveNotifs(17);
  14293. /**
  14294. * @param {!Object} data
  14295. * @return {?}
  14296. */
  14297. mixin.exports = function(data) {
  14298. return '<div id="' + data.id + '" class="' + data.classes + ' nike-unite-component">\n <ul id=' + data.inputId + ">\n " + filter(data.messages, function(e, n) {
  14299. return "\n <li>" + e.text + "</li>\n ";
  14300. }).join("") + "\n </ul>\n</div>";
  14301. };
  14302. }, function(mixin, n, saveNotifs) {
  14303. const filter = saveNotifs(17);
  14304. /**
  14305. * @param {!Object} options
  14306. * @return {?}
  14307. */
  14308. mixin.exports = function(options) {
  14309. return '<div id="' + options.id + '" class="' + options.classes + ' nike-unite-component">\n <span class="nike-unite-h1-no-image">' + options.title + "</span>\n <ul>\n " + filter(options.messages, function(e, n) {
  14310. return "\n <li>" + e.text + "</li>\n ";
  14311. }).join("") + '\n </ul>\n <div id="' + options.hiddenId + '" class="nike-unite-error-code" style="display: none;">' + options.hiddenCode + " " + options.hiddenResult + '</div>\n <div id="' + options.dismissId + '" class="nike-unite-error-close">\n <input type="button" value="' + options.dismissMessage + '" />\n </div>\n</div>';
  14312. };
  14313. }, function(mixin, n, saveNotifs) {
  14314. const Array = saveNotifs(17);
  14315. /**
  14316. * @param {!Object} str
  14317. * @return {?}
  14318. */
  14319. mixin.exports = function(str) {
  14320. return '<form id="' + str.id + '" class="nike-unite-form" method="post" action="javascript:;" onsubmit="return false;">\n ' + Array(str.hiddenFields, function(canCreateDiscussions, n) {
  14321. return '\n <input type="hidden" name="' + n + '" value="' + canCreateDiscussions + '" data-componentname="' + n + '" />\n ';
  14322. }).join("");
  14323. };
  14324. }, function(mixin, n, saveNotifs) {
  14325. const mix = saveNotifs(17);
  14326. /**
  14327. * @param {!Object} data
  14328. * @return {?}
  14329. */
  14330. mixin.exports = function(data) {
  14331. return '<div id="' + data.id + '" class="' + data.classes + ' nike-unite-component">\n <div class="shim"></div>\n <div class="error"></div>\n <label for="' + data.inputId + '">' + data.label + '</label>\n\n <input type="hidden" id="' + data.inputId + '" value="' + data.value + '" name=' + data.name + ' data-componentname="' + data.dataField + '"/>\n\n <ul data-componentname="' + data.name + '">\n ' + mix(data.options, function(value, n) {
  14332. return '\n <li id="' + value.listItemId + '" class="' + value.cssClass + '">\n <input type="button"/>\n <span>' + value.label + "</span>\n </li>\n ";
  14333. }).join("") + '\n </ul>\n <div class="tip">' + data.tip + "</div>\n</div>";
  14334. };
  14335. }, function(mixin, n, saveNotifs) {
  14336. saveNotifs(17);
  14337. /**
  14338. * @param {!Object} obj
  14339. * @return {?}
  14340. */
  14341. mixin.exports = function(obj) {
  14342. return '<input id="' + obj.inputId + '" type="hidden" name="' + obj.key + '" value="' + obj.value + '" data-componentname="' + obj.name + '" />';
  14343. };
  14344. }, function(mixin, n, saveNotifs) {
  14345. const checkedSubscribe = saveNotifs(17);
  14346. /**
  14347. * @param {!Object} data
  14348. * @return {?}
  14349. */
  14350. mixin.exports = function(data) {
  14351. return '<div id="' + data.id + '" class="' + data.classes + " nike-unite-component " + data.disabled + '">\n <div class="shim"></div>\n <div class="error"></div>\n\n <input type="hidden" class="sanitized-mobile-number" style="display: none;" value="' + data.sanitizedMobileNumberValue + '" name="sanitizedMobileNumber" data-componentname="' + data.name + '"></input>\n\n <label for="' + data.inputId + '">' + data.label + '</label>\n <div class="mobileNumber-div">\n <input id="' + data.inputId +
  14352. '" type="' + data.keyboardType + '" placeholder="' + data.label + '" name="' + data.name + '" data-componentname="phoneNumber" value="' + data.value + '" ' + data.focus + ' autocomplete="tel" autocorrect="off" autocapitalize="off" spellcheck="false" />\n\n <div class="' + data.selectDivClasses + " " + data.disabled + '" id="' + data.selectDivId + '">\n <span id="' + data.spanCodeId + '" class="' + data.spanCodeClasses + '"></span>\n </div>\n\n <select id="' + data.selectId + '" ' +
  14353. data.disabled + ">\n " + checkedSubscribe(data.supportedList, function(options, n) {
  14354. return '\n <option value="' + options.country + '" data-code="+' + options.code + '">' + options.text + " +" + options.code + "</option>\n ";
  14355. }).join("") + '\n </select>\n </div>\n\n <div class="tip">' + data.tip + "</div>\n</div>";
  14356. };
  14357. }, function(mixin, n, saveNotifs) {
  14358. saveNotifs(17);
  14359. /**
  14360. * @param {!Object} instance
  14361. * @return {?}
  14362. */
  14363. mixin.exports = function(instance) {
  14364. return '<div id="' + instance.id + '" class="' + instance.classes + ' nike-unite-component">\n <div class="avatar-container">\n <img class="avatar" src="' + instance.avatarImage + '" alt="" />\n </div>\n <input id="' + instance.continueButtonId + '" type="button" value="' + instance.continueText + '" />\n ' + instance.joinTerms + '\n <a href="javascript:;" class="notMe" id="' + instance.notMeLinkId + '">\n ' + instance.notMeText + '\n </a>\n <div class="error"></div>\n</div>';
  14365. };
  14366. }, function(mixin, n, saveNotifs) {
  14367. saveNotifs(17);
  14368. /**
  14369. * @param {!Object} data
  14370. * @return {?}
  14371. */
  14372. mixin.exports = function(data) {
  14373. return '<div id="' + data.id + '" class="' + data.classes + ' nike-unite-component">\n <div class="shim"></div>\n <div class="error"></div>\n <label for="' + data.inputId + '">' + data.label + '</label>\n <input id="' + data.inputId + '" type="' + data.keyboardType + '" autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="' + data.label + '" value="' + data.value + '" name="' + data.dataField + '" data-componentname="' + data.name + '" maxlength="36" />\n <button id="' +
  14374. data.buttonId + '" type="button" tabindex="-1" class="nike-unite-reveal-button">' + data.buttonLabel + '</button>\n <div class="tip">' + data.tip + '</div>\n <div class="nike-unite-password-complexity">\n <div class="charLength">' + data.labels.charLength + '</div>\n <div class="upperCase">' + data.labels.upperCase + '</div>\n <div class="lowerCase">' + data.labels.lowerCase + '</div>\n <div class="number">' + data.labels.number + "</div>\n </div>\n</div>";
  14375. };
  14376. }, function(mixin, n, saveNotifs) {
  14377. const mix = saveNotifs(17);
  14378. /**
  14379. * @param {!Object} data
  14380. * @return {?}
  14381. */
  14382. mixin.exports = function(data) {
  14383. return '<div id="' + data.id + '" class="' + data.classes + ' nike-unite-component" style="' + data.style + '">\n <div class="shim"></div>\n <div class="error"></div>\n <label for="' + data.selectId + '">' + data.label + '</label>\n <select name="' + data.name + '" data-componentname="' + data.name + '" id="' + data.selectId + '">\n <optgroup label="' + data.label + '">\n ' + mix(data.options, function(options, n) {
  14384. return '\n <option value="' + options.value + '" ' + options.selectedValue + ' class="' + options.cssClass + '">' + options.label + "</option>\n ";
  14385. }).join("") + '\n </optgroup>\n </select>\n <div class="tip">' + data.tip + "</div>\n</div>";
  14386. };
  14387. }, function(mixin, n, saveNotifs) {
  14388. const isPresent = saveNotifs(17);
  14389. /**
  14390. * @param {!Object} options
  14391. * @return {?}
  14392. */
  14393. mixin.exports = function(options) {
  14394. return '<div id="' + options.id + '" class="' + options.classes + ' nike-unite-component">\n <div class="error" style="display: none;"></div>\n ' + isPresent(options.providers, function(data, n) {
  14395. return '\n <a href="javascript:void(0)" id="' + data.inputId + '" class="nike-unite-social-login-' + data.name + '">' + data.linkText + "</a>\n ";
  14396. }).join("") + '\n <span class="conjunction">' + options.conjunction + "</span>\n</div>";
  14397. };
  14398. }, function(mixin, n, saveNotifs) {
  14399. saveNotifs(17);
  14400. /**
  14401. * @param {!Object} obj
  14402. * @return {?}
  14403. */
  14404. mixin.exports = function(obj) {
  14405. return '<div id="' + obj.id + '" class="' + obj.classes + ' nike-unite-component">\n <input id="' + obj.inputId + '" type="button" value="' + obj.label + '"/>\n</div>';
  14406. };
  14407. }, function(mixin, n, saveNotifs) {
  14408. saveNotifs(17);
  14409. /**
  14410. * @param {!Object} data
  14411. * @return {?}
  14412. */
  14413. mixin.exports = function(data) {
  14414. return '<div id="' + data.id + '" class="' + data.classes + ' nike-unite-component">\n <div class="shim"></div>\n <div class="error"></div>\n <label for="' + data.inputId + '">' + data.label + '</label>\n <input id="' + data.inputId + '" type="' + data.keyboardType + '" placeholder="' + data.label + '" value="' + data.value + '" name="' + data.dataField + '" data-componentname="' + data.name + '" ' + data.focus + ' autocomplete="' + data.autoCompleteType + '" autocorrect="off" autocapitalize="off" spellcheck="false" />\n <div class="tip">' +
  14415. data.tip + '</div>\n <div class="help ' + data.hasHelp + '">' + data.help + "</div>\n</div>";
  14416. };
  14417. }, function(mixin, n, saveNotifs) {
  14418. const checkedSubscribe = saveNotifs(17);
  14419. /**
  14420. * @param {!Object} data
  14421. * @return {?}
  14422. */
  14423. mixin.exports = function(data) {
  14424. return '<div id="' + data.componentId + '" class="' + data.classes + '">\n\n <div class="sendCode" id="' + data.sendDivId + '">\n\n <label for="' + data.phoneInputId + '">' + data.sendCodePhoneNumberInputLabel + '</label>\n <div class="mobileNumber-div">\n <div id="' + data.countryCodeDivId + '" class="countryFlag ' + data.disabled + '">\n <span class="code"></span>\n </div>\n\n <select id="' + data.countrySelectId + '" class="country" ' + data.disabled + ">\n\n " +
  14425. checkedSubscribe(data.supportedList, function(options, n) {
  14426. return '\n <option value="' + options.country + '">' + options.text + " +" + options.code + "</option>\n ";
  14427. }).join("") + '\n\n </select>\n\n <input id="' + data.phoneInputId + '"\n class="phoneNumber"\n type="tel"\n placeholder="' + data.sendCodePhoneNumberInputLabel + '"\n data-componentname="phoneNumber"\n value="' + data.phoneValue + '"\n autocomplete="tel"\n autocorrect="off"\n autocapitalize="off"\n spellcheck="false"\n />\n </div>\n\n <input id="' + data.sendButtonId + '" type="button" class="sendCodeButton" value="' +
  14428. data.sendCodeButtonLabel + '" />\n\n <div class="error"></div>\n <div class="tip"></div>\n\n </div>\n\n <div class="verifyCode" id="' + data.verifyDivId + '">\n <label for="' + data.verifyCodeInputId + '">' + data.verifyCodeCodeInputLabel + '</label>\n <input id="' + data.verifyCodeInputId + '"\n class="code"\n type="number"\n value="' + data.verifyCodeValue + '"\n placeholder="' + data.verifyCodeCodeInputLabel + '"\n autocomplete="off"\n autocorrect="off"\n autocapitalize="off"\n spellcheck="false"\n />\n\n <div class="error"></div>\n <div class="tip"></div>\n\n </div>\n\n <div id="' +
  14429. data.sendConfirmationMsgDivId + '" class="sendCodeSubmissionConfirmation" style="display: none;"></div>\n\n</div>';
  14430. };
  14431. }, function(mixin, n, saveNotifs) {
  14432. saveNotifs(17);
  14433. /**
  14434. * @param {!Object} obj
  14435. * @return {?}
  14436. */
  14437. mixin.exports = function(obj) {
  14438. return '<a href="javascript:void(0)" id="' + obj.inputId + '" class="nike-unite-link-' + obj.name + '">' + obj.label + "</a>";
  14439. };
  14440. }, function(mixin, n, saveNotifs) {
  14441. saveNotifs(17);
  14442. /**
  14443. * @param {!Object} options
  14444. * @return {?}
  14445. */
  14446. mixin.exports = function(options) {
  14447. return '<div id="' + options.id + '" class="' + options.classes + ' nike-unite-component">\n <input id="' + options.backId + '" type="button" value="' + options.backLabel + '"/>\n <input id="' + options.nextId + '" type="button" value="' + options.nextLabel + '"/>\n</div>';
  14448. };
  14449. }, function(mixin, n, __webpack_require__) {
  14450. !function() {
  14451. var crypt = __webpack_require__(209);
  14452. var utf8 = __webpack_require__(106).utf8;
  14453. var isArray = __webpack_require__(210);
  14454. var bin = __webpack_require__(106).bin;
  14455. /**
  14456. * @param {!Array} data
  14457. * @param {!Object} options
  14458. * @return {?}
  14459. */
  14460. var md5 = function(data, options) {
  14461. if (data.constructor == String) {
  14462. data = options && "binary" === options.encoding ? bin.stringToBytes(data) : utf8.stringToBytes(data);
  14463. } else {
  14464. if (isArray(data)) {
  14465. /** @type {!Array<?>} */
  14466. data = Array.prototype.slice.call(data, 0);
  14467. } else {
  14468. if (!Array.isArray(data)) {
  14469. data = data.toString();
  14470. }
  14471. }
  14472. }
  14473. var m = crypt.bytesToWords(data);
  14474. /** @type {number} */
  14475. var l = 8 * data.length;
  14476. /** @type {number} */
  14477. var a = 1732584193;
  14478. /** @type {number} */
  14479. var b = -271733879;
  14480. /** @type {number} */
  14481. var c = -1732584194;
  14482. /** @type {number} */
  14483. var d = 271733878;
  14484. /** @type {number} */
  14485. var i = 0;
  14486. for (; i < m.length; i++) {
  14487. /** @type {number} */
  14488. m[i] = 16711935 & (m[i] << 8 | m[i] >>> 24) | 4278255360 & (m[i] << 24 | m[i] >>> 8);
  14489. }
  14490. m[l >>> 5] |= 128 << l % 32;
  14491. /** @type {number} */
  14492. m[14 + (l + 64 >>> 9 << 4)] = l;
  14493. /** @type {function(number, number, number, number, number, number, number): ?} */
  14494. var FF = md5._ff;
  14495. /** @type {function(number, number, number, number, number, number, number): ?} */
  14496. var GG = md5._gg;
  14497. /** @type {function(number, number, number, number, number, number, number): ?} */
  14498. var HH = md5._hh;
  14499. /** @type {function(number, number, number, number, number, number, number): ?} */
  14500. var II = md5._ii;
  14501. /** @type {number} */
  14502. i = 0;
  14503. for (; i < m.length; i = i + 16) {
  14504. /** @type {number} */
  14505. var k = a;
  14506. /** @type {number} */
  14507. var name = b;
  14508. /** @type {number} */
  14509. var modifier = c;
  14510. /** @type {number} */
  14511. var symbol = d;
  14512. b = II(b = II(b = II(b = II(b = HH(b = HH(b = HH(b = HH(b = GG(b = GG(b = GG(b = GG(b = FF(b = FF(b = FF(b = FF(b, c = FF(c, d = FF(d, a = FF(a, b, c, d, m[i + 0], 7, -680876936), b, c, m[i + 1], 12, -389564586), a, b, m[i + 2], 17, 606105819), d, a, m[i + 3], 22, -1044525330), c = FF(c, d = FF(d, a = FF(a, b, c, d, m[i + 4], 7, -176418897), b, c, m[i + 5], 12, 1200080426), a, b, m[i + 6], 17, -1473231341), d, a, m[i + 7], 22, -45705983), c = FF(c, d = FF(d, a = FF(a, b, c, d, m[i + 8], 7,
  14513. 1770035416), b, c, m[i + 9], 12, -1958414417), a, b, m[i + 10], 17, -42063), d, a, m[i + 11], 22, -1990404162), c = FF(c, d = FF(d, a = FF(a, b, c, d, m[i + 12], 7, 1804603682), b, c, m[i + 13], 12, -40341101), a, b, m[i + 14], 17, -1502002290), d, a, m[i + 15], 22, 1236535329), c = GG(c, d = GG(d, a = GG(a, b, c, d, m[i + 1], 5, -165796510), b, c, m[i + 6], 9, -1069501632), a, b, m[i + 11], 14, 643717713), d, a, m[i + 0], 20, -373897302), c = GG(c, d = GG(d, a = GG(a, b, c, d, m[i + 5],
  14514. 5, -701558691), b, c, m[i + 10], 9, 38016083), a, b, m[i + 15], 14, -660478335), d, a, m[i + 4], 20, -405537848), c = GG(c, d = GG(d, a = GG(a, b, c, d, m[i + 9], 5, 568446438), b, c, m[i + 14], 9, -1019803690), a, b, m[i + 3], 14, -187363961), d, a, m[i + 8], 20, 1163531501), c = GG(c, d = GG(d, a = GG(a, b, c, d, m[i + 13], 5, -1444681467), b, c, m[i + 2], 9, -51403784), a, b, m[i + 7], 14, 1735328473), d, a, m[i + 12], 20, -1926607734), c = HH(c, d = HH(d, a = HH(a, b, c, d, m[i + 5],
  14515. 4, -378558), b, c, m[i + 8], 11, -2022574463), a, b, m[i + 11], 16, 1839030562), d, a, m[i + 14], 23, -35309556), c = HH(c, d = HH(d, a = HH(a, b, c, d, m[i + 1], 4, -1530992060), b, c, m[i + 4], 11, 1272893353), a, b, m[i + 7], 16, -155497632), d, a, m[i + 10], 23, -1094730640), c = HH(c, d = HH(d, a = HH(a, b, c, d, m[i + 13], 4, 681279174), b, c, m[i + 0], 11, -358537222), a, b, m[i + 3], 16, -722521979), d, a, m[i + 6], 23, 76029189), c = HH(c, d = HH(d, a = HH(a, b, c, d, m[i + 9], 4,
  14516. -640364487), b, c, m[i + 12], 11, -421815835), a, b, m[i + 15], 16, 530742520), d, a, m[i + 2], 23, -995338651), c = II(c, d = II(d, a = II(a, b, c, d, m[i + 0], 6, -198630844), b, c, m[i + 7], 10, 1126891415), a, b, m[i + 14], 15, -1416354905), d, a, m[i + 5], 21, -57434055), c = II(c, d = II(d, a = II(a, b, c, d, m[i + 12], 6, 1700485571), b, c, m[i + 3], 10, -1894986606), a, b, m[i + 10], 15, -1051523), d, a, m[i + 1], 21, -2054922799), c = II(c, d = II(d, a = II(a, b, c, d, m[i + 8],
  14517. 6, 1873313359), b, c, m[i + 15], 10, -30611744), a, b, m[i + 6], 15, -1560198380), d, a, m[i + 13], 21, 1309151649), c = II(c, d = II(d, a = II(a, b, c, d, m[i + 4], 6, -145523070), b, c, m[i + 11], 10, -1120210379), a, b, m[i + 2], 15, 718787259), d, a, m[i + 9], 21, -343485551);
  14518. /** @type {number} */
  14519. a = a + k >>> 0;
  14520. /** @type {number} */
  14521. b = b + name >>> 0;
  14522. /** @type {number} */
  14523. c = c + modifier >>> 0;
  14524. /** @type {number} */
  14525. d = d + symbol >>> 0;
  14526. }
  14527. return crypt.endian([a, b, c, d]);
  14528. };
  14529. /**
  14530. * @param {number} d
  14531. * @param {number} c
  14532. * @param {number} b
  14533. * @param {number} a
  14534. * @param {number} x
  14535. * @param {number} n
  14536. * @param {number} s
  14537. * @return {?}
  14538. */
  14539. md5._ff = function(d, c, b, a, x, n, s) {
  14540. var r = d + (c & b | ~c & a) + (x >>> 0) + s;
  14541. return (r << n | r >>> 32 - n) + c;
  14542. };
  14543. /**
  14544. * @param {number} t
  14545. * @param {number} b
  14546. * @param {number} d
  14547. * @param {number} a
  14548. * @param {number} x
  14549. * @param {number} s
  14550. * @param {number} c
  14551. * @return {?}
  14552. */
  14553. md5._gg = function(t, b, d, a, x, s, c) {
  14554. var n = t + (b & a | d & ~a) + (x >>> 0) + c;
  14555. return (n << s | n >>> 32 - s) + b;
  14556. };
  14557. /**
  14558. * @param {number} d
  14559. * @param {number} a
  14560. * @param {number} b
  14561. * @param {number} c
  14562. * @param {number} t
  14563. * @param {number} n
  14564. * @param {number} s
  14565. * @return {?}
  14566. */
  14567. md5._hh = function(d, a, b, c, t, n, s) {
  14568. var x = d + (a ^ b ^ c) + (t >>> 0) + s;
  14569. return (x << n | x >>> 32 - n) + a;
  14570. };
  14571. /**
  14572. * @param {number} b
  14573. * @param {number} c
  14574. * @param {number} d
  14575. * @param {number} a
  14576. * @param {number} x
  14577. * @param {number} s
  14578. * @param {number} t
  14579. * @return {?}
  14580. */
  14581. md5._ii = function(b, c, d, a, x, s, t) {
  14582. var n = b + (d ^ (c | ~a)) + (x >>> 0) + t;
  14583. return (n << s | n >>> 32 - s) + c;
  14584. };
  14585. /** @type {number} */
  14586. md5._blocksize = 16;
  14587. /** @type {number} */
  14588. md5._digestsize = 16;
  14589. /**
  14590. * @param {?} message
  14591. * @param {number} options
  14592. * @return {?}
  14593. */
  14594. mixin.exports = function(message, options) {
  14595. if (void 0 === message || null === message) {
  14596. throw new Error("Illegal argument " + message);
  14597. }
  14598. var digestbytes = crypt.wordsToBytes(md5(message, options));
  14599. return options && options.asBytes ? digestbytes : options && options.asString ? bin.bytesToString(digestbytes) : crypt.bytesToHex(digestbytes);
  14600. };
  14601. }();
  14602. }, function(module, n) {
  14603. !function() {
  14604. /** @type {string} */
  14605. var hex_alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  14606. var crypt = {
  14607. rotl : function(x, n) {
  14608. return x << n | x >>> 32 - n;
  14609. },
  14610. rotr : function(n, b) {
  14611. return n << 32 - b | n >>> b;
  14612. },
  14613. endian : function(n) {
  14614. if (n.constructor == Number) {
  14615. return 16711935 & crypt.rotl(n, 8) | 4278255360 & crypt.rotl(n, 24);
  14616. }
  14617. /** @type {number} */
  14618. var i = 0;
  14619. for (; i < n.length; i++) {
  14620. n[i] = crypt.endian(n[i]);
  14621. }
  14622. return n;
  14623. },
  14624. randomBytes : function(n) {
  14625. /** @type {!Array} */
  14626. var buf = [];
  14627. for (; n > 0; n--) {
  14628. buf.push(Math.floor(256 * Math.random()));
  14629. }
  14630. return buf;
  14631. },
  14632. bytesToWords : function(bytes) {
  14633. /** @type {!Array} */
  14634. var words = [];
  14635. /** @type {number} */
  14636. var i = 0;
  14637. /** @type {number} */
  14638. var b = 0;
  14639. for (; i < bytes.length; i++, b = b + 8) {
  14640. words[b >>> 5] |= bytes[i] << 24 - b % 32;
  14641. }
  14642. return words;
  14643. },
  14644. wordsToBytes : function(words) {
  14645. /** @type {!Array} */
  14646. var bytes = [];
  14647. /** @type {number} */
  14648. var i = 0;
  14649. for (; i < 32 * words.length; i = i + 8) {
  14650. bytes.push(words[i >>> 5] >>> 24 - i % 32 & 255);
  14651. }
  14652. return bytes;
  14653. },
  14654. bytesToHex : function(bytes) {
  14655. /** @type {!Array} */
  14656. var outChance = [];
  14657. /** @type {number} */
  14658. var i = 0;
  14659. for (; i < bytes.length; i++) {
  14660. outChance.push((bytes[i] >>> 4).toString(16));
  14661. outChance.push((15 & bytes[i]).toString(16));
  14662. }
  14663. return outChance.join("");
  14664. },
  14665. hexToBytes : function(hexString) {
  14666. /** @type {!Array} */
  14667. var bytes = [];
  14668. /** @type {number} */
  14669. var i = 0;
  14670. for (; i < hexString.length; i = i + 2) {
  14671. bytes.push(parseInt(hexString.substr(i, 2), 16));
  14672. }
  14673. return bytes;
  14674. },
  14675. bytesToBase64 : function(bytes) {
  14676. /** @type {!Array} */
  14677. var outChance = [];
  14678. /** @type {number} */
  14679. var j = 0;
  14680. for (; j < bytes.length; j = j + 3) {
  14681. /** @type {number} */
  14682. var pos = bytes[j] << 16 | bytes[j + 1] << 8 | bytes[j + 2];
  14683. /** @type {number} */
  14684. var lxp = 0;
  14685. for (; lxp < 4; lxp++) {
  14686. if (8 * j + 6 * lxp <= 8 * bytes.length) {
  14687. outChance.push(hex_alphabets.charAt(pos >>> 6 * (3 - lxp) & 63));
  14688. } else {
  14689. outChance.push("=");
  14690. }
  14691. }
  14692. }
  14693. return outChance.join("");
  14694. },
  14695. base64ToBytes : function(base64) {
  14696. base64 = base64.replace(/[^A-Z0-9+\/]/gi, "");
  14697. /** @type {!Array} */
  14698. var bytes = [];
  14699. /** @type {number} */
  14700. var i = 0;
  14701. /** @type {number} */
  14702. var idx = 0;
  14703. for (; i < base64.length; idx = ++i % 4) {
  14704. if (0 != idx) {
  14705. bytes.push((hex_alphabets.indexOf(base64.charAt(i - 1)) & Math.pow(2, -2 * idx + 8) - 1) << 2 * idx | hex_alphabets.indexOf(base64.charAt(i)) >>> 6 - 2 * idx);
  14706. }
  14707. }
  14708. return bytes;
  14709. }
  14710. };
  14711. module.exports = crypt;
  14712. }();
  14713. }, function(mixin, n) {
  14714. /**
  14715. * @param {?} obj
  14716. * @return {?}
  14717. */
  14718. function isBuffer(obj) {
  14719. return !!obj.constructor && "function" == typeof obj.constructor.isBuffer && obj.constructor.isBuffer(obj);
  14720. }
  14721. /**
  14722. * @param {?} obj
  14723. * @return {?}
  14724. */
  14725. mixin.exports = function(obj) {
  14726. return null != obj && (isBuffer(obj) || function(arr) {
  14727. return "function" == typeof arr.readFloatLE && "function" == typeof arr.slice && isBuffer(arr.slice(0, 0));
  14728. }(obj) || !!obj._isBuffer);
  14729. };
  14730. }, function(mixin, n, require) {
  14731. var inspect = require(49);
  14732. var log = require(212);
  14733. var balanced = require(40);
  14734. var drawCorners = require(41);
  14735. var m = balanced(function(params, n) {
  14736. if (null == params) {
  14737. return [];
  14738. }
  14739. var argl = n.length;
  14740. return argl > 1 && drawCorners(params, n[0], n[1]) ? n = [] : argl > 2 && drawCorners(n[0], n[1], n[2]) && (n = [n[0]]), log(params, inspect(n, 1), []);
  14741. });
  14742. mixin.exports = m;
  14743. }, function(mixin, n, $) {
  14744. var callback = $(26);
  14745. var i = $(24);
  14746. var f = $(105);
  14747. var finish = $(213);
  14748. var select = $(107);
  14749. var attributeValue = $(214);
  14750. var el = $(53);
  14751. /**
  14752. * @param {!Object} ast
  14753. * @param {number} value
  14754. * @param {boolean} defaultValue
  14755. * @return {?}
  14756. */
  14757. mixin.exports = function(ast, value, defaultValue) {
  14758. /** @type {number} */
  14759. var index = -1;
  14760. value = callback(value.length ? value : [el], select(i));
  14761. var result = f(ast, function(appid, canCreateDiscussions, i) {
  14762. return {
  14763. criteria : callback(value, function(t) {
  14764. return t(appid);
  14765. }),
  14766. index : ++index,
  14767. value : appid
  14768. };
  14769. });
  14770. return finish(result, function(alternateUnitArrayNode, value) {
  14771. return attributeValue(alternateUnitArrayNode, value, defaultValue);
  14772. });
  14773. };
  14774. }, function(mixin, n) {
  14775. /**
  14776. * @param {!Array} array
  14777. * @param {number} key
  14778. * @return {?}
  14779. */
  14780. mixin.exports = function(array, key) {
  14781. var i = array.length;
  14782. array.sort(key);
  14783. for (; i--;) {
  14784. array[i] = array[i].value;
  14785. }
  14786. return array;
  14787. };
  14788. }, function(mixin, n, Buffer) {
  14789. var sub = Buffer(215);
  14790. /**
  14791. * @param {!Object} o
  14792. * @param {!Object} n
  14793. * @param {string} data
  14794. * @return {?}
  14795. */
  14796. mixin.exports = function(o, n, data) {
  14797. /** @type {number} */
  14798. var i = -1;
  14799. var b = o.criteria;
  14800. var a = n.criteria;
  14801. var length = b.length;
  14802. var goal = data.length;
  14803. for (; ++i < length;) {
  14804. var WBP_EOT = sub(b[i], a[i]);
  14805. if (WBP_EOT) {
  14806. return i >= goal ? WBP_EOT : WBP_EOT * ("desc" == data[i] ? -1 : 1);
  14807. }
  14808. }
  14809. return o.index - n.index;
  14810. };
  14811. }, function(mixin, n, saveNotifs) {
  14812. var encodeURIComponent = saveNotifs(35);
  14813. /**
  14814. * @param {number} obj
  14815. * @param {number} value
  14816. * @return {?}
  14817. */
  14818. mixin.exports = function(obj, value) {
  14819. if (obj !== value) {
  14820. /** @type {boolean} */
  14821. var t = void 0 !== obj;
  14822. /** @type {boolean} */
  14823. var i = null === obj;
  14824. /** @type {boolean} */
  14825. var xy = obj == obj;
  14826. var paramValue = encodeURIComponent(obj);
  14827. /** @type {boolean} */
  14828. var j = void 0 !== value;
  14829. /** @type {boolean} */
  14830. var isTranslucent = null === value;
  14831. /** @type {boolean} */
  14832. var fallback = value == value;
  14833. var f = encodeURIComponent(value);
  14834. if (!isTranslucent && !f && !paramValue && obj > value || paramValue && j && fallback && !isTranslucent && !f || i && j && fallback || !t && fallback || !xy) {
  14835. return 1;
  14836. }
  14837. if (!i && !paramValue && !f && obj < value || f && t && xy && !i && !paramValue || isTranslucent && t && xy || !j && xy || !fallback) {
  14838. return -1;
  14839. }
  14840. }
  14841. return 0;
  14842. };
  14843. }, function(mixin, n, require) {
  14844. var groups = require(57);
  14845. var callback = require(81);
  14846. var toString = require(88);
  14847. var a = require(24);
  14848. var s = require(59);
  14849. var toJsonType = require(18);
  14850. var getType = require(33);
  14851. var isObject = require(54);
  14852. var isArray = require(20);
  14853. var f = require(48);
  14854. /**
  14855. * @param {!Object} obj
  14856. * @param {number} x
  14857. * @param {string} value
  14858. * @return {?}
  14859. */
  14860. mixin.exports = function(obj, x, value) {
  14861. var type = toJsonType(obj);
  14862. var isClan = type || getType(obj) || f(obj);
  14863. if (x = a(x, 4), null == value) {
  14864. var key = obj && obj.constructor;
  14865. value = isClan ? type ? new key : [] : isArray(obj) && isObject(key) ? callback(s(obj)) : {};
  14866. }
  14867. return (isClan ? groups : toString)(obj, function(roots, result, obj) {
  14868. return x(value, roots, result, obj);
  14869. }), value;
  14870. };
  14871. }, function(mixin, n, require) {
  14872. var sliced = require(218);
  14873. var undefined = require(219);
  14874. var value = require(24);
  14875. var defined = require(18);
  14876. var isIterateeCall = require(41);
  14877. /**
  14878. * @param {!Object} string
  14879. * @param {number} pattern
  14880. * @param {boolean} guard
  14881. * @return {?}
  14882. */
  14883. mixin.exports = function(string, pattern, guard) {
  14884. var process = defined(string) ? sliced : undefined;
  14885. return guard && isIterateeCall(string, pattern, guard) && (pattern = void 0), process(string, value(pattern, 3));
  14886. };
  14887. }, function(mixin, n) {
  14888. /**
  14889. * @param {!Object} o
  14890. * @param {number} fn
  14891. * @return {?}
  14892. */
  14893. mixin.exports = function(o, fn) {
  14894. /** @type {number} */
  14895. var i = -1;
  14896. var numPoistiveTicks = null == o ? 0 : o.length;
  14897. for (; ++i < numPoistiveTicks;) {
  14898. if (!fn(o[i], i, o)) {
  14899. return false;
  14900. }
  14901. }
  14902. return true;
  14903. };
  14904. }, function(mixin, n, __webpack_require__) {
  14905. var defineProperty = __webpack_require__(46);
  14906. /**
  14907. * @param {!Object} obj
  14908. * @param {number} err
  14909. * @return {?}
  14910. */
  14911. mixin.exports = function(obj, err) {
  14912. /** @type {boolean} */
  14913. var value = true;
  14914. return defineProperty(obj, function(text, val, s) {
  14915. return value = !!err(text, val, s);
  14916. }), value;
  14917. };
  14918. }, function(module, n, __webpack_require__) {
  14919. var getPrototype = __webpack_require__(42)(Object.keys, Object);
  14920. module.exports = getPrototype;
  14921. }, function(module, n, e) {
  14922. var logger;
  14923. var BinaryBundle;
  14924. !function(factory) {
  14925. if (void 0 === (BinaryBundle = "function" == typeof(logger = factory) ? logger.call(n, e, n, module) : logger) || (module.exports = BinaryBundle), true, module.exports = factory(), !true) {
  14926. var OldCookies = window.Cookies;
  14927. var Simg = window.Cookies = factory();
  14928. /**
  14929. * @return {?}
  14930. */
  14931. Simg.noConflict = function() {
  14932. return window.Cookies = OldCookies, Simg;
  14933. };
  14934. }
  14935. }(function() {
  14936. /**
  14937. * @return {?}
  14938. */
  14939. function extend() {
  14940. /** @type {number} */
  14941. var i = 0;
  14942. var obj = {};
  14943. for (; i < arguments.length; i++) {
  14944. var source = arguments[i];
  14945. var prop;
  14946. for (prop in source) {
  14947. obj[prop] = source[prop];
  14948. }
  14949. }
  14950. return obj;
  14951. }
  14952. return function init(converter) {
  14953. /**
  14954. * @param {string} key
  14955. * @param {!Object} obj
  14956. * @param {!Object} options
  14957. * @return {?}
  14958. */
  14959. function api(key, obj, options) {
  14960. var result;
  14961. if ("undefined" != typeof document) {
  14962. if (arguments.length > 1) {
  14963. if ("number" == typeof(options = extend({
  14964. path : "/"
  14965. }, api.defaults, options)).expires) {
  14966. /** @type {!Date} */
  14967. var d = new Date;
  14968. d.setMilliseconds(d.getMilliseconds() + 864e5 * options.expires);
  14969. /** @type {!Date} */
  14970. options.expires = d;
  14971. }
  14972. options.expires = options.expires ? options.expires.toUTCString() : "";
  14973. try {
  14974. /** @type {string} */
  14975. result = JSON.stringify(obj);
  14976. if (/^[\{\[]/.test(result)) {
  14977. /** @type {string} */
  14978. obj = result;
  14979. }
  14980. } catch (e) {
  14981. }
  14982. obj = converter.write ? converter.write(obj, key) : encodeURIComponent(String(obj)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
  14983. /** @type {string} */
  14984. key = (key = (key = encodeURIComponent(String(key))).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)).replace(/[\(\)]/g, escape);
  14985. /** @type {string} */
  14986. var optionsString = "";
  14987. var opt;
  14988. for (opt in options) {
  14989. if (options[opt]) {
  14990. /** @type {string} */
  14991. optionsString = optionsString + ("; " + opt);
  14992. if (true !== options[opt]) {
  14993. /** @type {string} */
  14994. optionsString = optionsString + ("=" + options[opt]);
  14995. }
  14996. }
  14997. }
  14998. return document.cookie = key + "=" + obj + optionsString;
  14999. }
  15000. if (!key) {
  15001. result = {};
  15002. }
  15003. /** @type {!Array} */
  15004. var row = document.cookie ? document.cookie.split("; ") : [];
  15005. /** @type {!RegExp} */
  15006. var rdecode = /(%[0-9A-Z]{2})+/g;
  15007. /** @type {number} */
  15008. var CR_index = 0;
  15009. for (; CR_index < row.length; CR_index++) {
  15010. var p = row[CR_index].split("=");
  15011. var cookie = p.slice(1).join("=");
  15012. if (!(this.json || '"' !== cookie.charAt(0))) {
  15013. cookie = cookie.slice(1, -1);
  15014. }
  15015. try {
  15016. var name = p[0].replace(rdecode, decodeURIComponent);
  15017. if (cookie = converter.read ? converter.read(cookie, name) : converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent), this.json) {
  15018. try {
  15019. /** @type {*} */
  15020. cookie = JSON.parse(cookie);
  15021. } catch (e) {
  15022. }
  15023. }
  15024. if (key === name) {
  15025. /** @type {*} */
  15026. result = cookie;
  15027. break;
  15028. }
  15029. if (!key) {
  15030. /** @type {*} */
  15031. result[name] = cookie;
  15032. }
  15033. } catch (e) {
  15034. }
  15035. }
  15036. return result;
  15037. }
  15038. }
  15039. return api.set = api, api.get = function(type) {
  15040. return api.call(api, type);
  15041. }, api.getJSON = function() {
  15042. return api.apply({
  15043. json : true
  15044. }, [].slice.call(arguments));
  15045. }, api.defaults = {}, api.remove = function(type, attributes) {
  15046. api(type, "", extend(attributes, {
  15047. expires : -1
  15048. }));
  15049. }, api.withConverter = init, api;
  15050. }(function() {
  15051. });
  15052. });
  15053. }, function(mixin, n, require) {
  15054. var wrap = require(24);
  15055. var createIsSearchQueryChangedFunction = require(25);
  15056. var LocEvent = require(21);
  15057. /**
  15058. * @param {!Object} n
  15059. * @return {?}
  15060. */
  15061. mixin.exports = function(n) {
  15062. return function(e, f, bufferSize) {
  15063. /** @type {!Object} */
  15064. var s = Object(e);
  15065. if (!createIsSearchQueryChangedFunction(e)) {
  15066. var l = wrap(f, 3);
  15067. e = LocEvent(e);
  15068. /**
  15069. * @param {string} c
  15070. * @return {?}
  15071. */
  15072. f = function(c) {
  15073. return l(s[c], c, s);
  15074. };
  15075. }
  15076. var r = n(e, f, bufferSize);
  15077. return r > -1 ? s[l ? e[r] : r] : void 0;
  15078. };
  15079. };
  15080. }, function(mixin, n, require) {
  15081. var add = require(224);
  15082. var h = require(24);
  15083. var parser = require(102);
  15084. /** @type {function(...?): number} */
  15085. var floor = Math.max;
  15086. /**
  15087. * @param {!Object} o
  15088. * @param {number} value
  15089. * @param {string} string
  15090. * @return {?}
  15091. */
  15092. mixin.exports = function(o, value, string) {
  15093. var z = null == o ? 0 : o.length;
  15094. if (!z) {
  15095. return -1;
  15096. }
  15097. var delta = null == string ? 0 : parser(string);
  15098. return delta < 0 && (delta = floor(z + delta, 0)), add(o, h(value, 3), delta);
  15099. };
  15100. }, function(mixin, n) {
  15101. /**
  15102. * @param {!Object} data
  15103. * @param {number} callback
  15104. * @param {number} index
  15105. * @param {boolean} value
  15106. * @return {?}
  15107. */
  15108. mixin.exports = function(data, callback, index, value) {
  15109. var length = data.length;
  15110. var i = index + (value ? 1 : -1);
  15111. for (; value ? i-- : ++i < length;) {
  15112. if (callback(data[i], i, data)) {
  15113. return i;
  15114. }
  15115. }
  15116. return -1;
  15117. };
  15118. }, function(mixin, n, require) {
  15119. var $ = require(226);
  15120. /**
  15121. * @param {!Object} string
  15122. * @param {number} elem
  15123. * @param {boolean} name
  15124. * @return {?}
  15125. */
  15126. mixin.exports = function(string, elem, name) {
  15127. return null == string ? string : $(string, elem, name);
  15128. };
  15129. }, function(mixin, n, require) {
  15130. var setTimeout = require(38);
  15131. var abs = require(34);
  15132. var h = require(64);
  15133. var isNumber = require(20);
  15134. var transform = require(29);
  15135. /**
  15136. * @param {!Object} c
  15137. * @param {number} n
  15138. * @param {string} o
  15139. * @param {string} f
  15140. * @return {?}
  15141. */
  15142. mixin.exports = function(c, n, o, f) {
  15143. if (!isNumber(c)) {
  15144. return c;
  15145. }
  15146. /** @type {number} */
  15147. var i = -1;
  15148. var length = (n = abs(n, c)).length;
  15149. /** @type {number} */
  15150. var endIndex = length - 1;
  15151. /** @type {!Object} */
  15152. var a = c;
  15153. for (; null != a && ++i < length;) {
  15154. var p = transform(n[i]);
  15155. /** @type {string} */
  15156. var v = o;
  15157. if (i != endIndex) {
  15158. var val = a[p];
  15159. if (void 0 === (v = f ? f(val, p, a) : void 0)) {
  15160. v = isNumber(val) ? val : h(n[i + 1]) ? [] : {};
  15161. }
  15162. }
  15163. setTimeout(a, p, v);
  15164. a = a[p];
  15165. }
  15166. return c;
  15167. };
  15168. }, function(mixin, n, require) {
  15169. var r = require(26);
  15170. var i = require(56);
  15171. var equals = require(108);
  15172. var parseJSON = require(34);
  15173. var cb = require(23);
  15174. var d = require(230);
  15175. var balanced = require(231);
  15176. var eq = require(79);
  15177. var m = balanced(function(value, y) {
  15178. var b = {};
  15179. if (null == value) {
  15180. return b;
  15181. }
  15182. /** @type {boolean} */
  15183. var u = false;
  15184. y = r(y, function(url) {
  15185. return url = parseJSON(url, value), u || (u = url.length > 1), url;
  15186. });
  15187. cb(value, eq(value), b);
  15188. if (u) {
  15189. b = i(b, 7, d);
  15190. }
  15191. var p = y.length;
  15192. for (; p--;) {
  15193. equals(b, y[p]);
  15194. }
  15195. return b;
  15196. });
  15197. mixin.exports = m;
  15198. }, function(mixin, n) {
  15199. /**
  15200. * @param {!Object} o
  15201. * @return {?}
  15202. */
  15203. mixin.exports = function(o) {
  15204. var ob = null == o ? 0 : o.length;
  15205. return ob ? o[ob - 1] : void 0;
  15206. };
  15207. }, function(mixin, n, $$) {
  15208. var process = $$(60);
  15209. var value = $$(85);
  15210. /**
  15211. * @param {!Object} val
  15212. * @param {number} data
  15213. * @return {?}
  15214. */
  15215. mixin.exports = function(val, data) {
  15216. return data.length < 2 ? val : process(val, value(data, 0, -1));
  15217. };
  15218. }, function(mixin, n, dselect) {
  15219. var a = dselect(67);
  15220. /**
  15221. * @param {!Object} e
  15222. * @return {?}
  15223. */
  15224. mixin.exports = function(e) {
  15225. return a(e) ? void 0 : e;
  15226. };
  15227. }, function(mixin, n, $) {
  15228. var classes = $(232);
  15229. var i = $(72);
  15230. var callback = $(73);
  15231. /**
  15232. * @param {string} str
  15233. * @return {?}
  15234. */
  15235. mixin.exports = function(str) {
  15236. return callback(i(str, void 0, classes), str + "");
  15237. };
  15238. }, function(mixin, n, require) {
  15239. var getUnusedModules = require(49);
  15240. /**
  15241. * @param {!Object} val
  15242. * @return {?}
  15243. */
  15244. mixin.exports = function(val) {
  15245. return null != val && val.length ? getUnusedModules(val, 1) : [];
  15246. };
  15247. }, function(mixin, n, get) {
  15248. var root = get(234);
  15249. var createAction = get(49);
  15250. var createBracketMap = get(40);
  15251. var b = get(68);
  15252. var m = createBracketMap(function(name, n) {
  15253. return b(name) ? root(name, createAction(n, 1, b, true)) : [];
  15254. });
  15255. mixin.exports = m;
  15256. }, function(mixin, n, __webpack_require__) {
  15257. var Buffer = __webpack_require__(65);
  15258. var after = __webpack_require__(103);
  15259. var Collection = __webpack_require__(104);
  15260. var a = __webpack_require__(26);
  15261. var getPrototypeOf = __webpack_require__(107);
  15262. var append = __webpack_require__(66);
  15263. /** @type {number} */
  15264. var width = 200;
  15265. /**
  15266. * @param {!Array} data
  15267. * @param {?} n
  15268. * @param {string} f
  15269. * @param {string} title
  15270. * @return {?}
  15271. */
  15272. mixin.exports = function(data, n, f, title) {
  15273. /** @type {number} */
  15274. var j = -1;
  15275. var replace = after;
  15276. /** @type {boolean} */
  15277. var isTS = true;
  15278. var ccData = data.length;
  15279. /** @type {!Array} */
  15280. var m = [];
  15281. var x = n.length;
  15282. if (!ccData) {
  15283. return m;
  15284. }
  15285. if (f) {
  15286. n = a(n, getPrototypeOf(f));
  15287. }
  15288. if (title) {
  15289. replace = Collection;
  15290. /** @type {boolean} */
  15291. isTS = false;
  15292. } else {
  15293. if (n.length >= width) {
  15294. replace = append;
  15295. /** @type {boolean} */
  15296. isTS = false;
  15297. n = new Buffer(n);
  15298. }
  15299. }
  15300. e: for (; ++j < ccData;) {
  15301. var i = data[j];
  15302. var type = null == f ? i : f(i);
  15303. if (i = title || 0 !== i ? i : 0, isTS && type == type) {
  15304. var j = x;
  15305. for (; j--;) {
  15306. if (n[j] === type) {
  15307. continue e;
  15308. }
  15309. }
  15310. m.push(i);
  15311. } else {
  15312. if (!replace(n, type, title)) {
  15313. m.push(i);
  15314. }
  15315. }
  15316. }
  15317. return m;
  15318. };
  15319. }, function(module, n, factory) {
  15320. module.exports = factory(236);
  15321. }, function(module, n, saveNotifs) {
  15322. var storeMixin = saveNotifs(237)(saveNotifs(21));
  15323. module.exports = storeMixin;
  15324. }, function(mixin, n, $) {
  15325. var span = $(238);
  15326. var i = $(45);
  15327. var parseColor = $(239);
  15328. var makeMap = $(240);
  15329. /** @type {string} */
  15330. var color = "[object Map]";
  15331. /** @type {string} */
  15332. var map = "[object Set]";
  15333. /**
  15334. * @param {!Object} a
  15335. * @return {?}
  15336. */
  15337. mixin.exports = function(a) {
  15338. return function(value) {
  15339. var type = i(value);
  15340. return type == color ? parseColor(value) : type == map ? makeMap(value) : span(value, a(value));
  15341. };
  15342. };
  15343. }, function(mixin, n, kvFn) {
  15344. var r = kvFn(26);
  15345. /**
  15346. * @param {!Object} e
  15347. * @param {number} n
  15348. * @return {?}
  15349. */
  15350. mixin.exports = function(e, n) {
  15351. return r(n, function(childProp) {
  15352. return [childProp, e[childProp]];
  15353. });
  15354. };
  15355. }, function(mixin, n) {
  15356. /**
  15357. * @return {?}
  15358. */
  15359. mixin.exports = function() {
  15360. return [];
  15361. };
  15362. }, function(mixin, n) {
  15363. /**
  15364. * @return {?}
  15365. */
  15366. mixin.exports = function() {
  15367. return [];
  15368. };
  15369. }, function(mixin, n, require) {
  15370. var isNumber = require(242);
  15371. /**
  15372. * @param {!Object} value
  15373. * @return {?}
  15374. */
  15375. mixin.exports = function(value) {
  15376. return isNumber(value) && value != +value;
  15377. };
  15378. }, function(mixin, n, respTransformer) {
  15379. var checkedSubscribe = respTransformer(31);
  15380. var clickKey = respTransformer(30);
  15381. /** @type {string} */
  15382. var lastKeyDownNode = "[object Number]";
  15383. /**
  15384. * @param {!Object} e
  15385. * @return {?}
  15386. */
  15387. mixin.exports = function(e) {
  15388. return "number" == typeof e || clickKey(e) && checkedSubscribe(e) == lastKeyDownNode;
  15389. };
  15390. }, function(mixin, n, func) {
  15391. var f = func(24);
  15392. var done = func(244);
  15393. /**
  15394. * @param {!Array} object
  15395. * @param {number} a
  15396. * @return {?}
  15397. */
  15398. mixin.exports = function(object, a) {
  15399. /** @type {!Array} */
  15400. var result = [];
  15401. if (!object || !object.length) {
  15402. return result;
  15403. }
  15404. /** @type {number} */
  15405. var i = -1;
  15406. /** @type {!Array} */
  15407. var array = [];
  15408. var length = object.length;
  15409. a = f(a, 3);
  15410. for (; ++i < length;) {
  15411. var prop = object[i];
  15412. if (a(prop, i, object)) {
  15413. result.push(prop);
  15414. array.push(i);
  15415. }
  15416. }
  15417. return done(object, array), result;
  15418. };
  15419. }, function(mixin, n, getName) {
  15420. var dirname = getName(108);
  15421. var column2 = getName(64);
  15422. /** @type {function(this:IArrayLike<T>, *=, *=, ...T): !Array<T>} */
  15423. var splice = Array.prototype.splice;
  15424. /**
  15425. * @param {!Array} data
  15426. * @param {?} params
  15427. * @return {?}
  15428. */
  15429. mixin.exports = function(data, params) {
  15430. var length = data ? params.length : 0;
  15431. /** @type {number} */
  15432. var lastIndex = length - 1;
  15433. for (; length--;) {
  15434. var index = params[length];
  15435. if (length == lastIndex || index !== previous) {
  15436. var previous = index;
  15437. if (column2(index)) {
  15438. splice.call(data, index, 1);
  15439. } else {
  15440. dirname(data, index);
  15441. }
  15442. }
  15443. }
  15444. return data;
  15445. };
  15446. }]]);
Add Comment
Please, Sign In to add comment