Advertisement
Guest User

Untitled

a guest
Jan 14th, 2017
575
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 482.45 KB | None | 0 0
  1. define("components/components/imageButtonWithText/imageButtonWithText", ["core", "experiment"], function(a, b) {
  2. "use strict";
  3. return {
  4. displayName: "ImageButtonWithText",
  5. mixins: [a.compMixins.skinBasedComp],
  6. getSkinProperties: function a() {
  7. return {
  8. button: {
  9. className: c.call(this)
  10. },
  11. buttonIcon: {
  12. src: this.props.compData.iconSource
  13. },
  14. buttonLabel: {
  15. children: this.props.compData.label
  16. },
  17. buttonExtraInfo: {
  18. children: this.props.compData.extraInfo
  19. }
  20. }
  21. }
  22. };
  23.  
  24. function c() {
  25. var a = {};
  26. a["direction-" + this.props.compProp.direction] = true;
  27. a["label-empty"] = !this.props.compData.label;
  28. a["extraInfo-empty"] = !b.isOpen("sv_blogSocialCounters") || !this.props.compData.extraInfo;
  29. a["size-" + this.props.compProp.size] = true;
  30. a["type-" + this.props.compData.type] = true;
  31. return this.classSet(a)
  32. }
  33. });
  34. define("components/components/verticalAnchorsMenu/svgShapesData", [], function() {
  35. "use strict";
  36. return {
  37. circle: {
  38. svg: {
  39. width: "12",
  40. height: "12",
  41. viewBox: "0 0 24 24"
  42. },
  43. content: '<circle cx="12" cy="12" r="10"/>'
  44. },
  45. fullCircle: {
  46. svg: {
  47. width: "24",
  48. height: "24",
  49. viewBox: "0 0 48 48"
  50. },
  51. content: '<circle class="external" cx="24" cy="24" r="22" />' + '<circle class="border" cx="24" cy="24" r="10" />' + '<circle class="inner" cx="24" cy="24" r="10" />'
  52. }
  53. }
  54. });
  55. define("components/components/verticalAnchorsMenu/verticalAnchorsMenuItem", ["zepto", "lodash", "react", "utils", "components/components/verticalAnchorsMenu/svgShapesData"], function(a, b, c, d, e) {
  56. "use strict";
  57. var f = d.linkRenderer;
  58. var g = {
  59. item: "item",
  60. line: "line",
  61. link: "link",
  62. symbol: "symbol",
  63. textWrapper: "text-wrapper",
  64. label: "label"
  65. };
  66. return c.createClass({
  67. displayName: "VerticalAnchorsMenuItem",
  68. getInitialState: function() {
  69. this.elementClasses = {};
  70. return {
  71. hovered: null
  72. }
  73. },
  74. updateElementClasses: function() {
  75. var a = this.props.styleId;
  76. b.forEach(g, function(b, c) {
  77. this.elementClasses[c] = a + "_" + b
  78. }, this)
  79. },
  80. handleOnMouseEnter: function() {
  81. if (!this.props.isTablet) {
  82. this.setState({
  83. hovered: true
  84. })
  85. }
  86. },
  87. handleOnMouseLeave: function() {
  88. if (!this.props.isTablet) {
  89. this.setState({
  90. hovered: false
  91. })
  92. }
  93. },
  94. disableClickOnTextWrapper: function(b) {
  95. var c = a(b.target).find("[class=" + this.elementClasses.textWrapper + "]");
  96. if (c && c.css("visibility") === "hidden") {
  97. b.preventDefault();
  98. b.stopPropagation()
  99. }
  100. },
  101. generateAnchorLink: function() {
  102. var a = b.clone(this.props.anchorData);
  103. var c = this.props.siteData;
  104. var d = c.getDataByQuery(c.getPrimaryPageId());
  105. a.type = "AnchorLink";
  106. a.anchorDataId = a;
  107. a.pageId = d;
  108. return f.renderLink(a, c, this.props.rootNavigationInfo)
  109. },
  110. getLabelProps: function() {
  111. return {
  112. className: this.elementClasses.label
  113. }
  114. },
  115. getTextWrapperProps: function() {
  116. return {
  117. className: this.elementClasses.textWrapper,
  118. key: "textWrapper"
  119. }
  120. },
  121. getSvgProps: function() {
  122. var a = e[this.props.svgShapeName];
  123. var c = this.elementClasses.symbol;
  124. var d = b.clone(a.svg);
  125. b.assign(d, {
  126. key: "img-" + c + this.props.svgShapeName,
  127. className: c,
  128. dangerouslySetInnerHTML: {
  129. __html: a.content
  130. }
  131. });
  132. return d
  133. },
  134. getLinkProps: function() {
  135. var a = this.props.skinExports;
  136. var c = {
  137. className: this.elementClasses.link
  138. };
  139. var d = this.props.siteData.browser.ie && this.props.siteData.browser.version <= 10;
  140. if (a.disableClickOnHiddenElement && d) {
  141. c.onClick = this.disableClickOnTextWrapper
  142. }
  143. b.assign(c, this.generateAnchorLink());
  144. return c
  145. },
  146. getItemProps: function(a) {
  147. var c = this.props.styleId;
  148. var e = this.elementClasses.item;
  149. if (this.props.isActive) {
  150. e += " " + c + "_active"
  151. }
  152. if (!this.props.isTablet && this.state.hovered) {
  153. e += " " + c + "_hover"
  154. }
  155. var f = 50;
  156. var g = this.state.hovered ? this.props.hoveredOrSelectedColorBrightness : this.props.colorBrightness;
  157. var h = this.props.backgroundBrightness;
  158. var i = b.isFinite(g) && b.isFinite(h);
  159. var j = Math.abs(g - h) < d.siteConstants.BRIGHTNESS_DIFF_THRESHOLD;
  160. if (i && j) {
  161. if (h >= f) {
  162. e += " " + c + "_dark"
  163. } else {
  164. e += " " + c + "_light"
  165. }
  166. }
  167. return {
  168. key: a,
  169. className: e,
  170. onMouseLeave: this.handleOnMouseLeave
  171. }
  172. },
  173. addMouseEnterEventToSkinExportedClass: function(a) {
  174. var c = this.props.skinExports;
  175. b.some(a, function(a) {
  176. if (a.className && !this.props.isTablet && b.includes(a.className, c.hoverElementClass)) {
  177. a.onMouseEnter = this.handleOnMouseEnter;
  178. return true
  179. }
  180. }, this)
  181. },
  182. render: function() {
  183. this.updateElementClasses();
  184. var a = this.props.anchorData.id;
  185. var b = this.props.anchorData.name;
  186. var d = {
  187. itemProps: this.getItemProps(a),
  188. linkProps: this.getLinkProps(),
  189. svgProps: this.getSvgProps(),
  190. textWrapperProps: this.getTextWrapperProps(),
  191. labelProps: this.getLabelProps()
  192. };
  193. this.addMouseEnterEventToSkinExportedClass(d);
  194. return c.DOM.li(d.itemProps, c.DOM.a(d.linkProps, [c.DOM.svg(d.svgProps), c.DOM.span(d.textWrapperProps, c.DOM.span(d.labelProps, b))]))
  195. }
  196. })
  197. });
  198. define("components/components/verticalAnchorsMenu/verticalAnchorsBaseMenu", ["lodash", "react", "core", "components/components/verticalAnchorsMenu/verticalAnchorsMenuItem"], function(a, b, c, d) {
  199. "use strict";
  200. var e = c.compMixins;
  201. return {
  202. displayName: "VerticalAnchorsBaseMenu",
  203. mixins: [e.skinBasedComp, e.skinInfo],
  204. getDefaultProps: function() {
  205. return {
  206. svgShapeName: "circle"
  207. }
  208. },
  209. getMenuButtons: function(c) {
  210. return a.map(c, function(c) {
  211. var e = this.props.isSelectedFn(c.id);
  212. var f = {
  213. key: c.id,
  214. isTablet: this.props.isTablet,
  215. styleId: this.props.styleId,
  216. svgShapeName: this.props.svgShapeName,
  217. anchorData: c,
  218. isActive: e,
  219. siteData: this.props.siteData,
  220. rootNavigationInfo: this.props.rootNavigationInfo,
  221. skinExports: this.getSkinExports()
  222. };
  223. if (this.props.compProp.autoColor && a.get(this, "props.structure.layout.fixedPosition")) {
  224. var g = a.get(this, "props.overlappingBackgroundElementInfo.brightness");
  225. var h = this.getParams(["symbolAndTextColor", "selectedColor"]);
  226. var i = h.symbolAndTextColor.value;
  227. var j = h.selectedColor.value;
  228. var k = i.values.hsv[2];
  229. var l = j.values.hsv[2];
  230. f.colorBrightness = e ? l : k;
  231. f.hoveredOrSelectedColorBrightness = l;
  232. f.backgroundBrightness = g
  233. }
  234. return b.createElement(d, f)
  235. }, this)
  236. },
  237. addConnectingLinesIfNeeded: function(c) {
  238. if (!this.getSkinExports() || this.getSkinExports().hasConnectingLines !== true) {
  239. return c
  240. }
  241. var d = [];
  242. a.forEach(c, function(a) {
  243. d.push(b.DOM.div({
  244. className: this.props.styleId + "_line"
  245. }));
  246. d.push(a)
  247. }, this);
  248. return a.rest(d)
  249. },
  250. getMenuClasses: function() {
  251. var a = this.props.styleId;
  252. var b = [];
  253. b.push(a + "_orientation-" + this.props.compProp.orientation);
  254. b.push(a + "_text-align-" + this.props.compProp.itemsAlignment);
  255. return b.join(" ")
  256. },
  257. getSkinProperties: function() {
  258. var a = this.getMenuButtons(this.props.menuItems);
  259. a = this.addConnectingLinesIfNeeded(a);
  260. return {
  261. menuContainer: {
  262. className: this.getMenuClasses(),
  263. children: a
  264. }
  265. }
  266. }
  267. }
  268. });
  269. define("components/components/verticalMenu/verticalMenuDomBuilder", ["react", "lodash", "zepto", "utils"], function(a, b, c, d) {
  270. "use strict";
  271.  
  272. function e(a, b) {
  273. var c;
  274. if (a.link && a.link.type === "PageLink" && a.link.pageId.id === b) {
  275. return true
  276. }
  277. for (c = 0; c < a.items.length; c++) {
  278. if (e(a.items[c], b)) {
  279. return true
  280. }
  281. }
  282. return false
  283. }
  284.  
  285. function f(a) {
  286. var b = c(a.target).find("a")[0];
  287. if (b) {
  288. b.click();
  289. return false
  290. }
  291. return true
  292. }
  293.  
  294. function g(a, c, e, f, g, h, i, j, k) {
  295. var l = {};
  296. l[c + "_selected"] = e;
  297. l[c + "_hover"] = d.stringUtils.startsWith(h, g);
  298. l[a] = true;
  299. var m = {
  300. className: d.classNames(l),
  301. style: {
  302. height: f
  303. },
  304. onClick: j ? i.click : i.leave,
  305. id: g,
  306. key: g
  307. };
  308. if (k) {
  309. b.assign(m, {
  310. onMouseEnter: i.enter,
  311. onMouseLeave: i.leave
  312. })
  313. }
  314. return m
  315. }
  316.  
  317. function h(a, b, c, d) {
  318. return {
  319. style: {
  320. marginBottom: d + "px"
  321. },
  322. className: a ? b : b + " " + c + "_emptySubMenu"
  323. }
  324. }
  325.  
  326. function i(a, c, d, e, f, g, h) {
  327. var i = {
  328. className: a + " " + c + "_label level" + f,
  329. style: {
  330. lineHeight: d + "px"
  331. },
  332. onClick: h ? g.click : g.leave
  333. };
  334. if (e) {
  335. b.merge(i, e.render)
  336. }
  337. return i
  338. }
  339.  
  340. function j(a) {
  341. if (b.includes(a.className, "Wrapper")) {
  342. a.onClick = f
  343. }
  344. }
  345. var k = {
  346. getSkin: function(a, b) {
  347. return a[b]
  348. },
  349. buildTemplate: function(a, c) {
  350. var d = a.slice(3, a.length),
  351. e = [];
  352. b.forEach(d, function(a) {
  353. if (b.isArray(a)) {
  354. e.push(this.buildTemplate(a, c))
  355. }
  356. }, this);
  357. return {
  358. tag: a[0].toLowerCase(),
  359. skinPart: a[1],
  360. className: b.map(a[2], function(a) {
  361. return c + a
  362. }),
  363. items: e
  364. }
  365. },
  366. buildDomItem: function(c, d, f, k, l, m, n, o, p, q, r, s) {
  367. var t = a.DOM[d.tag];
  368. var u = [];
  369. var v = {
  370. className: d.className.concat(k.link ? "" : l + "_noLink").join(" ")
  371. };
  372. var w = p + f.indexOf(k) + "_";
  373. var x = b.filter(k.items, {
  374. isVisible: true
  375. }).length > 0;
  376. switch (d.tag) {
  377. case "a":
  378. u.push(k.label);
  379. v = i(v.className, l, n.line, k.link, o, r, x);
  380. break;
  381. case "ul":
  382. b.forEach(k.items, function(a) {
  383. if (a.isVisible) {
  384. u.push(this.buildDomItem(c, c, k.items, a, l, m, n, o + 1, w, q, r, s))
  385. }
  386. }, this);
  387. v = h(x, v.className, l, n.separator);
  388. break;
  389. case "li":
  390. b.forEach(d.items, function(a) {
  391. u.push(this.buildDomItem(c, a, f, k, l, m, n, o, p, q, r, s))
  392. }, this);
  393. v = g(v.className, l, e(k, m), n.item, w, q, r, x, s);
  394. break;
  395. default:
  396. b.forEach(d.items, function(a) {
  397. u.push(this.buildDomItem(c, a, f, k, l, m, n, o, p, q, r, s))
  398. }, this);
  399. break
  400. }
  401. j(v);
  402. if (d.tag === "ul") {
  403. return t(v, u)
  404. }
  405. return t.apply(null, [v].concat(u))
  406. },
  407. buildDOMFromTemplate: function(c, d, e, f, g, h, i, j) {
  408. var k = c.items[0];
  409. var l = b(d).filter("isVisible").map(function(a) {
  410. return this.buildDomItem(k, k, d, a, e, f, g, 0, "root", h, i, j)
  411. }, this).value();
  412. return a.DOM.ul({
  413. className: e + "menuContainer"
  414. }, l)
  415. }
  416. };
  417. return k
  418. });
  419. define("components/components/verticalMenu/verticalMenuItem", ["skins", "components/components/verticalMenu/verticalMenuDomBuilder"], function(a, b) {
  420. "use strict";
  421. var c = {
  422. displayName: "MenuItem",
  423. render: function() {
  424. var c = b.getSkin(a.skins, this.props.skin),
  425. d = b.buildTemplate(c.react[0], this.props.classPrefix);
  426. return b.buildDOMFromTemplate(d, this.props.data, this.props.classPrefix, this.props.currentUrlPageId, this.props.heights, this.props.hoverId, this.props.callbacks, this.props.isDesktop, this.props.isIE)
  427. }
  428. };
  429. return c
  430. });
  431. define("components/components/verticalMenu/verticalMenu", ["zepto", "lodash", "react", "core", "utils", "components/components/verticalMenu/verticalMenuItem", "reactDOM"], function(a, b, c, d, e, f, g) {
  432. "use strict";
  433. var h = d.compMixins;
  434. var i = c.createFactory(c.createClass(f));
  435.  
  436. function j() {
  437. return window.innerHeight || window.document.documentElement.clientHeight || window.document.body.clientHeight
  438. }
  439.  
  440. function k(a) {
  441. var b = j(),
  442. c = Math.floor(b / 2);
  443. return c > a ? "down" : "up"
  444. }
  445.  
  446. function l(b) {
  447. var c = o(b.target);
  448. var d = c.id;
  449. var e = a(c).find("ul")[0].children.length > 0;
  450. var f = d === this.state.hoverId;
  451. if (e) {
  452. if (f) {
  453. this.setState({
  454. hoverId: null
  455. })
  456. } else {
  457. this.setState({
  458. hoverId: d
  459. });
  460. b.preventDefault()
  461. }
  462. } else {
  463. this.setState({
  464. hoverId: null
  465. })
  466. }
  467. }
  468.  
  469. function m(a) {
  470. var b = o(a.target).id;
  471. if (b !== this.state.hoverId) {
  472. this.setState({
  473. hoverId: b
  474. })
  475. }
  476. }
  477.  
  478. function n() {
  479. this.setState({
  480. hoverId: null
  481. })
  482. }
  483.  
  484. function o(a) {
  485. while (a.tagName !== "LI") {
  486. a = a.parentElement
  487. }
  488. return a
  489. }
  490. return {
  491. displayName: "VerticalMenu",
  492. mixins: [h.skinBasedComp, h.skinInfo],
  493. getInitialState: function() {
  494. return {
  495. $subMenuOpenSide: "subMenuOpenSide-" + this.props.compProp.subMenuOpenSide,
  496. $subMenuOpenDirection: "subMenuOpenDir-up",
  497. $itemsAlignment: "items-align-" + this.props.compProp.itemsAlignment,
  498. $subItemsAlignment: "subItems-align-" + this.props.compProp.itemsAlignment,
  499. hoverId: null
  500. }
  501. },
  502. componentWillReceiveProps: function(a) {
  503. if (a.compProp.itemsAlignment !== this.props.compProp.itemsAlignment) {
  504. this.setState({
  505. $itemsAlignment: "items-align-" + a.compProp.itemsAlignment,
  506. $subItemsAlignment: "subItems-align-" + a.compProp.itemsAlignment
  507. })
  508. }
  509. if (a.compProp.subMenuOpenSide !== this.props.compProp.subMenuOpenSide) {
  510. this.setState({
  511. $subMenuOpenSide: "subMenuOpenSide-" + a.compProp.subMenuOpenSide
  512. })
  513. }
  514. },
  515. updateDirection: function() {
  516. var a = this.props.siteData.measureMap && this.props.siteData.measureMap.absoluteTop[this.props.id] || this.props.style.top;
  517. var b = "subMenuOpenDir-" + k(a - window.pageYOffset);
  518. if (b !== this.state.$subMenuOpenDirection) {
  519. this.setState({
  520. $subMenuOpenDirection: b
  521. })
  522. }
  523. },
  524. updateDOMDataAttributes: function() {
  525. var a = g.findDOMNode(this);
  526. var b = this.getParamValues();
  527. this.lastParams = b;
  528. this.updateDirection();
  529. a.setAttribute("data-param-border", b.border);
  530. a.setAttribute("data-param-separator", b.separator);
  531. a.setAttribute("data-param-padding", b.padding)
  532. },
  533. componentDidMount: function() {
  534. this.updateDOMDataAttributes()
  535. },
  536. componentDidUpdate: function() {
  537. if (!b.isEqual(this.getParamValues(), this.lastParams)) {
  538. this.updateDOMDataAttributes()
  539. }
  540. },
  541. getParamValues: function() {
  542. var a = this.getParamFromDefaultSkin("separatorHeight") || this.getParamFromDefaultSkin("sepw");
  543. var b = this.getParamFromDefaultSkin("textSpacing");
  544. var c = this.getParamFromDefaultSkin("brw");
  545. return {
  546. separator: a ? parseInt(a.value, 10) : 0,
  547. border: c ? parseInt(c.value, 10) : 0,
  548. padding: b ? parseInt(b.value, 10) : 0
  549. }
  550. },
  551. getSkinProperties: function() {
  552. var a = this.getParamValues();
  553. var b = this.getSkinExports();
  554. var c = e.menuUtils.getSiteMenuWithRender(this.props.siteData, false, this.props.rootNavigationInfo);
  555. var d = e.verticalMenuCalculations.getVisibleItemsCount(c);
  556. var f = e.verticalMenuCalculations.getItemHeight(this.props.style.height, a.separator, d, b);
  557. return {
  558. "": {
  559. onMouseEnter: this.updateDirection
  560. },
  561. menuContainer: {
  562. parentConst: i,
  563. data: c,
  564. skin: this.props.skin,
  565. classPrefix: this.props.styleId,
  566. currentUrlPageId: this.props.currentUrlPageId,
  567. heights: {
  568. separator: b && b.separatorNotIncludedInLineHeight ? 0 : a.separator,
  569. line: e.verticalMenuCalculations.getLineHeight(f, a.separator, a.border, b),
  570. item: f
  571. },
  572. callbacks: {
  573. click: l.bind(this),
  574. enter: m.bind(this),
  575. leave: n.bind(this)
  576. },
  577. hoverId: this.state.hoverId,
  578. isDesktop: !(this.props.siteData.mobile.isMobileDevice() || this.props.siteData.mobile.isTabletDevice()),
  579. isIE: !!this.props.siteData.getBrowser().ie
  580. }
  581. }
  582. }
  583. }
  584. });
  585. define("components/bi/events.json", [], function() {
  586. return {
  587. FORM_SUBMIT: {
  588. eventId: 100,
  589. adapter: "ugc-viewer",
  590. params: {
  591. c1: "componentId",
  592. c2: "componentType"
  593. }
  594. },
  595. FORM_SUBMIT_SUCCESS: {
  596. eventId: 367,
  597. adapter: "ugc-viewer",
  598. params: {
  599. component_id: "componentId",
  600. component_type: "componentType"
  601. }
  602. },
  603. TIME_IN_FOLD: {
  604. eventId: 354,
  605. adapter: "ugc-viewer",
  606. wixSiteSampleRatio: 1,
  607. params: {
  608. active_fold: "activeFold",
  609. total_folds: "totalFolds",
  610. time_in_fold: "timeInFold"
  611. }
  612. },
  613. MOBILE_APP_BANNER_SHOWN: {
  614. eventId: 404,
  615. adapter: "app-builder",
  616. src: 62,
  617. params: {
  618. metaSiteId: "metaSiteId",
  619. type: "type"
  620. }
  621. },
  622. MOBILE_APP_BANNER_GET_CLICKED: {
  623. eventId: 405,
  624. adapter: "app-builder",
  625. src: 62,
  626. params: {
  627. metaSiteId: "metaSiteId",
  628. link: "link"
  629. }
  630. },
  631. MOBILE_APP_BANNER_CLOSE_CLICKED: {
  632. eventId: 406,
  633. adapter: "app-builder",
  634. src: 62,
  635. params: {
  636. metaSiteId: "metaSiteId"
  637. }
  638. },
  639. MOBILE_ACTION_BAR_TOGGLE: {
  640. eventId: 370,
  641. adapter: "ugc-viewer",
  642. params: {
  643. site_id: "site_id",
  644. status: "status"
  645. }
  646. },
  647. MOBILE_ACTION_BAR_USAGE: {
  648. eventId: 371,
  649. adapter: "ugc-viewer",
  650. params: {
  651. site_id: "site_id",
  652. button_name: "button_name"
  653. }
  654. },
  655. ZOOM_IN_EXPAND_MODE: {
  656. eventId: 375,
  657. adapter: "ugc-viewer",
  658. params: {
  659. site_id: "site_id",
  660. zoomType: "zoomType"
  661. }
  662. },
  663. ENTER_EXPAND_MODE: {
  664. eventId: 376,
  665. adapter: "ugc-viewer",
  666. params: {
  667. site_id: "site_id"
  668. }
  669. }
  670. }
  671. });
  672. define("components/bi/events", ["components/bi/events.json", "utils"], function(a, b) {
  673. "use strict";
  674. b.logger.register("components", "event", a);
  675. return a
  676. });
  677. define("components/components/verticalAnchorsMenu/verticalAnchorsMenu", ["zepto", "lodash", "react", "utils", "santaProps", "components/components/verticalAnchorsMenu/verticalAnchorsBaseMenu", "components/components/verticalMenu/verticalMenu", "components/bi/events"], function(a, b, c, d, e, f, g, h) {
  678. "use strict";
  679. var i = [3, 6, 10];
  680. var j = [];
  681. var k = d.scrollAnchors;
  682. var l = c.createClass(f);
  683. var m = c.createClass(g);
  684.  
  685. function n(a) {
  686. if (b.includes(a, "verticalanchorsmenu")) {
  687. return l
  688. } else if (b.includes(a, "verticalmenu")) {
  689. return m
  690. }
  691. return c.DOM.div(null, ["AnchorMenuSkin Not Found"])
  692. }
  693.  
  694. function o(a) {
  695. return b.includes(a, "VerticalAnchorsMenuLinkedNoTextSkin")
  696. }
  697.  
  698. function p(a, b) {
  699. var c = null;
  700. if (a.hiddenAnchorIds && b) {
  701. c = a.hiddenAnchorIds[b]
  702. }
  703. return c
  704. }
  705.  
  706. function q(a, c, d) {
  707. if (d) {
  708. b.forEach(j, function(a) {
  709. clearTimeout(a)
  710. });
  711. j = b.map(i, function(a) {
  712. return setTimeout(function() {
  713. c.reportBI(h.TIME_IN_FOLD, {
  714. activeFold: d.index,
  715. totalFolds: d.total,
  716. timeInFold: a
  717. })
  718. }, a * 1e3)
  719. })
  720. }
  721. }
  722. return {
  723. displayName: "VerticalAnchorsMenu",
  724. propTypes: b.assign({}, e.santaTypesUtils.getSantaTypesByDefinition(f), e.santaTypesUtils.getSantaTypesByDefinition(g)),
  725. getInitialState: function() {
  726. var a = {
  727. isTablet: this.props.siteData.isTabletDevice(),
  728. activeAnchorId: null
  729. };
  730. if (this.props.compProp.autoColor) {
  731. a.overlappingElementInfo = null
  732. }
  733. return a
  734. },
  735. componentDidMount: function() {
  736. var a = window && window.pageYOffset;
  737. var b = this.props.siteAPI.getSiteAspect("dynamicColorElements");
  738. b.registerObserver(this.handleDynamicColorElementUpdate);
  739. this.updateOverlappingElement(a);
  740. this.props.siteAPI.getSiteAspect("windowScrollEvent").registerToScroll(this);
  741. this.updateActiveAnchor(a)
  742. },
  743. componentWillUnmount: function() {
  744. this.props.siteAPI.getSiteAspect("windowScrollEvent").unregisterToScroll(this);
  745. var a = this.props.siteAPI.getSiteAspect("dynamicColorElements");
  746. a.unregisterObserver(this.handleDynamicColorElementUpdate)
  747. },
  748. componentDidUpdate: function() {
  749. var b = a(window).scrollTop();
  750. this.updateActiveAnchor(b);
  751. this.updateOverlappingElement(b)
  752. },
  753. componentDidLayout: function() {
  754. var b = a(window).scrollTop();
  755. this.updateActiveAnchor(b);
  756. this.updateOverlappingElement(b)
  757. },
  758. onScroll: function(a) {
  759. var b = a && a.y || 0;
  760. this.updateActiveAnchor(b);
  761. this.updateOverlappingElement(b)
  762. },
  763. updateActiveAnchor: function(a) {
  764. var b = this.props.siteData.getPrimaryPageId();
  765. var c = p(this.props.compData, b);
  766. var d = k.getActiveAnchor(this.props.siteData, a, c);
  767. var e = d ? d.activeAnchorComp.id : null;
  768. if (this.state.activeAnchorId !== e) {
  769. q(this.props.siteData, this.props.siteAPI, d);
  770. this.setState({
  771. activeAnchorId: e
  772. })
  773. }
  774. },
  775. handleDynamicColorElementUpdate: function(a) {
  776. if (this.props.compProp.autoColor) {
  777. var c = b.get(this.state.overlappingElementInfo, "id");
  778. var d = b.find(a, {
  779. id: c
  780. });
  781. if (d) {
  782. this.setState({
  783. overlappingElementInfo: d
  784. })
  785. }
  786. }
  787. },
  788. getOverlappingDynamicElementInfo: function(a) {
  789. var c = this.props.siteData.measureMap;
  790. if (!c) {
  791. return null
  792. }
  793. var d = a + c.absoluteTop[this.props.id];
  794. var e = c.height[this.props.id];
  795. var f = c.absoluteLeft[this.props.id] + this.props.siteData.getSiteX();
  796. var g = c.width[this.props.id];
  797. var h = this.props.siteAPI.getSiteAspect("dynamicColorElements");
  798. var i = b.reject(h.getInformation(), function(a) {
  799. return !a.top || a.alpha < .1
  800. });
  801. var j = b(i).filter(function(a) {
  802. var b = a.top - e / 2;
  803. var c = a.top + a.height - e / 2;
  804. return d >= b && d <= c && f + g / 2 <= a.left + a.width && f >= a.left
  805. }).sortBy(function(a) {
  806. return a.width * a.height
  807. }).first();
  808. return j
  809. },
  810. updateOverlappingElement: function(a) {
  811. if (this.props.compProp.autoColor) {
  812. var b = this.getOverlappingDynamicElementInfo(a);
  813. var c = this.state.overlappingElementInfo;
  814. if ((c && c.id) !== (b && b.id)) {
  815. this.setState({
  816. overlappingElementInfo: b
  817. })
  818. }
  819. }
  820. },
  821. getMenuItems: function() {
  822. var a = this.props.siteData.getPrimaryPageId();
  823. var c = this.props.compData.pageTopLabel;
  824. var d = k.getPageAnchors(this.props.siteData, a, c);
  825. var e = p(this.props.compData, a);
  826. var f = b.filter(d, function(a) {
  827. return !b.includes(e, a.compId)
  828. });
  829. if (b.size(f) === 0) {
  830. f.push(d[0])
  831. }
  832. return f
  833. },
  834. isSelected: function(a) {
  835. return this.state.activeAnchorId === a
  836. },
  837. render: function() {
  838. var a = b.assign({}, this.props, {
  839. isSelectedFn: this.isSelected,
  840. menuItems: this.getMenuItems(),
  841. svgShapeName: o(this.props.skin) ? "fullCircle" : "circle",
  842. isTablet: this.state.isTablet
  843. });
  844. if (this.props.compProp.autoColor && b.get(this, "props.structure.layout.fixedPosition")) {
  845. a.overlappingBackgroundElementInfo = this.state.overlappingElementInfo
  846. }
  847. var d = n(a.skin);
  848. return c.createElement(d, a)
  849. }
  850. }
  851. });
  852. define("components/components/imageZoom/imageZoom", ["core", "utils", "lodash", "components/bi/events.json"], function(a, b, c, d) {
  853. "use strict";
  854.  
  855. function e(a) {
  856. return a.isMobileDevice() && !a.isMobileView() || a.isTabletDevice()
  857. }
  858. return {
  859. displayName: "ImageZoom",
  860. mixins: [a.compMixins.mediaZoomWrapperMixin],
  861. fireEnterExpandModeEvent: function() {
  862. this.props.siteAPI.reportBI(d.ENTER_EXPAND_MODE, {
  863. site_id: this.props.siteData.rendererModel.siteInfo.siteId
  864. })
  865. },
  866. componentWillMount: function() {
  867. this.fireEnterExpandModeEvent()
  868. },
  869. getInitialState: function() {
  870. var a = this.props.siteData;
  871. if (e(a)) {
  872. this.enableInnerScrolling = true
  873. }
  874. return {}
  875. },
  876. getPrevAndNextState: function() {
  877. var a, b;
  878. var d = this.props.pageItemAdditionalData;
  879. var e = {
  880. next: null,
  881. prev: null
  882. };
  883. if (d) {
  884. a = c.map(d.items, "id");
  885. if (a.length > 1) {
  886. b = a.indexOf(this.props.compData.id);
  887. e.next = a[(b + 1) % a.length];
  888. e.prev = a[(b - 1 + a.length) % a.length]
  889. }
  890. }
  891. return e
  892. },
  893. isDataChanged: function(a, b) {
  894. return a.compData !== b.compData
  895. },
  896. getChildComp: function(a, d) {
  897. var f = this.props.siteData;
  898. var g = f.isMobileView();
  899. var h;
  900. if (e(f)) {
  901. h = b.mediaZoomCalculations.getNonOptimizedViewDimensions
  902. } else {
  903. h = g ? b.mediaZoomCalculations.getMobileViewDimensions : b.mediaZoomCalculations.getDesktopViewDimensions
  904. }
  905. var i = g ? "wysiwyg.components.MobileImageZoomDisplayer" : "wysiwyg.components.ImageZoomDisplayer";
  906. var j = {
  907. zoomDimensions: h(this.props.compData, f, f.measureMap, d.width, d.height),
  908. quality: {
  909. quality: 90
  910. }
  911. };
  912. c.assign(j, a);
  913. return this.createChildComponent(this.props.compData, i, "imageItem", j)
  914. },
  915. getBoxDimensions: function() {
  916. return this.props.siteData.measureMap && this.props.siteData.measureMap.custom[this.props.id + this.props.compData.id] || null
  917. },
  918. actualNavigateToItem: function(a) {
  919. if (b.nonPageItemZoom.getZoomedImageData() === undefined) {
  920. var d = c.clone(this.props.rootNavigationInfo);
  921. d.pageItemId = a;
  922. this.props.siteAPI.navigateToPage(d)
  923. } else if (a) {
  924. b.nonPageItemZoom.zoom(b.nonPageItemZoom.getImageDataFromGalleryByQuery(a))
  925. } else {
  926. b.nonPageItemZoom.unzoom()
  927. }
  928. },
  929. getChildZoomComponentType: function() {
  930. if (this.props.siteData.isMobileView()) {
  931. return "wysiwyg.viewer.components.MobileMediaZoom"
  932. }
  933. return "wysiwyg.viewer.components.MediaZoom"
  934. }
  935. }
  936. });
  937. define("components/components/mobileMediaZoom/mobileMediaZoom", ["lodash", "core"], function(a, b) {
  938. "use strict";
  939. var c = b.compMixins;
  940. return {
  941. displayName: "MobileMediaZoom",
  942. mixins: [c.skinBasedComp],
  943. getInitialState: function() {
  944. var b = this.props.getPrevAndNextStateFunc();
  945. a.assign(b, {
  946. $viewerType: this.props.siteData.isMobileDevice() ? "mobile" : "tablet",
  947. $buttonState: ""
  948. });
  949. if (this.props.enableInnerScrolling) {
  950. b.$scrollState = "scrollEnabled"
  951. }
  952. return b
  953. },
  954. componentWillReceiveProps: function(a) {
  955. if (!this.props.siteData.renderFlags.isZoomAllowed) {
  956. setTimeout(this.closeMediaZoom, 0);
  957. return
  958. }
  959. if (this.props.isDataChangedFunc(this.props, a)) {
  960. this.setState(this.props.getPrevAndNextStateFunc())
  961. }
  962. },
  963. createOverlay: function(a) {
  964. return b.componentUtils.fullScreenOverlay.createOverlay(a, {
  965. siteWidth: this.props.siteData.getSiteWidth(),
  966. isMobileDevice: this.props.siteData.isMobileDevice(),
  967. siteScrollingBlocker: this.props.siteAPI.getSiteAspect("siteScrollingBlocker"),
  968. forceBackground: this.props.siteAPI.forceBackground,
  969. disableForcedBackground: this.props.siteAPI.disableForcedBackground
  970. })
  971. },
  972. getSkinProperties: function() {
  973. var a = this.props.getChildCompFunc({
  974. key: this.props.compData.id,
  975. hideMediaZoomButtons: this.hideButtons,
  976. showMediaZoomButtons: this.showButtons
  977. }, {
  978. width: 0,
  979. height: 0
  980. });
  981. var b = !this.state.next;
  982. var c = {
  983. "": {
  984. onSwipeLeft: this.clickOnNextButton,
  985. onSwipeRight: this.clickOnPreviousButton
  986. },
  987. itemsContainer: {
  988. children: a
  989. },
  990. xButton: {
  991. onClick: this.closeMediaZoom,
  992. style: {}
  993. },
  994. buttonPrev: {
  995. onClick: this.clickOnPreviousButton,
  996. style: {}
  997. },
  998. buttonNext: {
  999. onClick: this.clickOnNextButton,
  1000. style: {}
  1001. }
  1002. };
  1003. c = this.props.enableInnerScrolling ? c : this.createOverlay(c);
  1004. if (b || this.props.enableInnerScrolling) {
  1005. c.buttonNext.style.display = "none";
  1006. c.buttonPrev.style.display = "none"
  1007. }
  1008. return c
  1009. },
  1010. clickOnNextButton: function(a) {
  1011. this.showButtons();
  1012. this.props.actualNavigateToItemFunc(this.state.next);
  1013. if (a) {
  1014. if (a.preventDefault) {
  1015. a.preventDefault()
  1016. }
  1017. if (a.stopPropagation) {
  1018. a.stopPropagation()
  1019. }
  1020. }
  1021. },
  1022. closeMediaZoom: function() {
  1023. if (this.props.closeFunction) {
  1024. this.props.closeFunction()
  1025. } else {
  1026. this.props.siteAPI.navigateToPage({
  1027. pageId: this.props.rootNavigationInfo.pageId
  1028. })
  1029. }
  1030. },
  1031. clickOnPreviousButton: function(a) {
  1032. this.showButtons();
  1033. this.props.actualNavigateToItemFunc(this.state.prev);
  1034. if (a) {
  1035. if (a.preventDefault) {
  1036. a.preventDefault()
  1037. }
  1038. if (a.stopPropagation) {
  1039. a.stopPropagation()
  1040. }
  1041. }
  1042. },
  1043. hideButtons: function() {
  1044. this.setState({
  1045. $buttonState: "hideButtons"
  1046. })
  1047. },
  1048. showButtons: function() {
  1049. this.setState({
  1050. $buttonState: ""
  1051. })
  1052. },
  1053. componentDidMount: function() {
  1054. this.props.siteAPI.enterFullScreenMode({
  1055. scrollable: this.props.enableInnerScrolling
  1056. })
  1057. },
  1058. componentWillUnmount: function() {
  1059. this.props.siteAPI.exitFullScreenMode()
  1060. }
  1061. }
  1062. });
  1063. define("components/components/mobileImageZoomDisplayer/mobileImageZoomDisplayer", ["lodash", "core", "utils", "imageClientApi"], function(a, b, c, d) {
  1064. "use strict";
  1065. var e = b.compMixins;
  1066. var f = c.linkRenderer;
  1067. var g = {
  1068. goToLinkText: "Go to link"
  1069. };
  1070. var h = {
  1071. displayName: "MobileImageZoomDisplayer",
  1072. mixins: [e.skinBasedComp],
  1073. getInitialState: function() {
  1074. return {
  1075. $panelState: this.hasTitleOrDescription() ? "" : "hidePanel",
  1076. $descriptionState: ""
  1077. }
  1078. },
  1079. getSkinProperties: function() {
  1080. var a = this.props.compData;
  1081. var b = this.props.compProp;
  1082. var c = this.props.siteData;
  1083. var e = this.props.zoomDimensions;
  1084. var h = {
  1085. title: {
  1086. children: a.title
  1087. },
  1088. description: {
  1089. children: a.description,
  1090. style: {
  1091. height: "auto"
  1092. }
  1093. },
  1094. ellipsis: {
  1095. style: {
  1096. display: "none"
  1097. }
  1098. },
  1099. image: this.createChildComponent(a, "core.components.Image", "image", {
  1100. key: a.id,
  1101. id: this.props.id + "image",
  1102. ref: "image",
  1103. imageData: a,
  1104. quality: this.props.quality,
  1105. containerWidth: e.imageContainerWidth,
  1106. containerHeight: e.imageContainerHeight,
  1107. displayMode: d.fittingTypes.LEGACY_FULL,
  1108. onClick: this.togglePanel,
  1109. effectName: this.props.compProp.effectName,
  1110. usePreloader: true
  1111. })
  1112. };
  1113. if (a.description) {
  1114. h.description.onSwipeUp = this.expandDescription;
  1115. h.description.onSwipeDown = this.collapseDescription;
  1116. h.title.onClick = this.toggleDescription;
  1117. h.description.onClick = this.toggleDescription
  1118. } else {
  1119. h.description.style = {
  1120. display: "none"
  1121. }
  1122. }
  1123. if (a.link) {
  1124. h.link = f.renderLink(a.link, c, this.props.rootNavigationInfo);
  1125. h.link.children = b && b.goToLinkText ? b.goToLinkText : g.goToLinkText
  1126. } else {
  1127. h.link = {
  1128. style: {
  1129. display: "none"
  1130. }
  1131. }
  1132. }
  1133. return h
  1134. },
  1135. togglePanel: function() {
  1136. if (this.isPanelHidden()) {
  1137. this.props.showMediaZoomButtons();
  1138. if (this.hasTitleOrDescription()) {
  1139. this.showPanel()
  1140. }
  1141. } else {
  1142. this.props.hideMediaZoomButtons();
  1143. this.hidePanel()
  1144. }
  1145. },
  1146. toggleDescription: function() {
  1147. if (this.isDescriptionExpanded()) {
  1148. this.collapseDescription()
  1149. } else {
  1150. this.expandDescription()
  1151. }
  1152. },
  1153. hasTitleOrDescription: function() {
  1154. return this.props.compData.title || this.props.compData.description
  1155. },
  1156. isPanelHidden: function() {
  1157. return this.state.$panelState === "hidePanel"
  1158. },
  1159. showPanel: function() {
  1160. this.setState({
  1161. $panelState: ""
  1162. })
  1163. },
  1164. hidePanel: function() {
  1165. this.setState({
  1166. $panelState: "hidePanel"
  1167. })
  1168. },
  1169. isDescriptionExpanded: function() {
  1170. return this.state.$descriptionState === "expandedDescription"
  1171. },
  1172. expandDescription: function() {
  1173. this.props.hideMediaZoomButtons();
  1174. this.setState({
  1175. $descriptionState: "expandedDescription"
  1176. })
  1177. },
  1178. collapseDescription: function() {
  1179. this.props.showMediaZoomButtons();
  1180. this.setState({
  1181. $descriptionState: ""
  1182. })
  1183. }
  1184. };
  1185. return h
  1186. });
  1187. define("components/components/pageGroup/pageGroup", ["lodash", "core", "reactDOM", "experiment"], function(a, b, c, d) {
  1188. "use strict";
  1189. var e = b.compMixins;
  1190. var f = {
  1191. outIn: "OutIn",
  1192. crossfade: "CrossFade",
  1193. shrinkfade: "CrossFade",
  1194. swipeHorizontal: "SlideHorizontal",
  1195. swipeHorizontalFullScreen: "SlideHorizontal",
  1196. swipeVertical: "SlideVertical",
  1197. swipeVerticalFullScreen: "SlideVertical",
  1198. none: "NoTransition"
  1199. };
  1200.  
  1201. function g(a, b) {
  1202. function c(a, b) {
  1203. switch (a) {
  1204. case "SlideHorizontal":
  1205. return {
  1206. siteWidth: b.getSiteWidth(),
  1207. width: b.measureMap.width.screen,
  1208. ease: "Cubic.easeOut"
  1209. };
  1210. case "SlideVertical":
  1211. var c = Math.max(b.measureMap.height.screen, b.measureMap.height.masterPage || b.measureMap.height.SITE_PAGES);
  1212. return {
  1213. screenHeight: b.measureMap.height.screen,
  1214. height: c,
  1215. reverse: true,
  1216. ease: "Cubic.easeInOut"
  1217. };
  1218. case "OutIn":
  1219. return {
  1220. sourceEase: "Strong.easeOut",
  1221. destEase: "Strong.easeIn"
  1222. };
  1223. case "CrossFade":
  1224. return {
  1225. sourceEase: "Sine.easeInOut",
  1226. destEase: "Quad.easeInOut"
  1227. };
  1228. default:
  1229. return {}
  1230. }
  1231. }
  1232. return c.bind(this, a, b)
  1233. }
  1234.  
  1235. function h(a, b, e) {
  1236. if (!a.refs[b]) {
  1237. a.refs[e].updateVisibility()
  1238. } else if (a.props.currentUrlPageId !== b) {
  1239. a.refs[b].forceUpdate(function() {
  1240. a.refs[e].updateVisibility();
  1241. if (d.isOpen("sv_platform1")) {
  1242. c.findDOMNode(a.refs[b]).style.visibility = "hidden"
  1243. }
  1244. })
  1245. }
  1246. }
  1247. var i = {
  1248. displayName: "PageGroup",
  1249. mixins: [e.skinBasedComp, e.animationsMixin],
  1250. getInitialState: function() {
  1251. this.actionsAspect = this.props.siteAPI.getSiteAspect("actionsAspect");
  1252. return {
  1253. prevPages: []
  1254. }
  1255. },
  1256. componentWillReceiveProps: function(b) {
  1257. var c, d, e;
  1258. var i = this.props.currentUrlPageId;
  1259. var j = b.currentUrlPageId;
  1260. var k = this;
  1261. var l = f[b.rootNavigationInfo.transition || this.props.compProp.transition] || f.none;
  1262. var m = this.props.siteData.getPrefetchPages();
  1263. if (i !== j) {
  1264. if (!a.includes(this.state.prevPages, i)) {
  1265. this.setState({
  1266. prevPages: a.union(this.state.prevPages.concat([i]), m)
  1267. })
  1268. } else {
  1269. this.refs[i].clearAnimationsQueue(true);
  1270. if (!a.isEqual(a.intersection(this.state.prevPages, m), m)) {
  1271. this.setState({
  1272. prevPages: a.union(this.state.prevPages, m)
  1273. })
  1274. }
  1275. }
  1276. c = this.getAnimationProperties(l).defaultDuration || 0;
  1277. e = g(l, this.props.siteData);
  1278. d = {
  1279. onComplete: function() {
  1280. h(k, i, j);
  1281. k.actionsAspect.handlePageTransitionComplete(i, j)
  1282. }
  1283. };
  1284. this.actionsAspect.registerNextPageTransition(this, i, j, l, c, 0, e, d)
  1285. } else {
  1286. var n = a(this.state.prevPages).filter(function(a) {
  1287. return this.props.siteData.pagesData[a]
  1288. }, this).union(m).value();
  1289. this.setState({
  1290. prevPages: n
  1291. })
  1292. }
  1293. },
  1294. createPage: function(a) {
  1295. var b = this.state.prevPages.length === 0;
  1296. return this.props.createPage(a, b)
  1297. },
  1298. getSkinProperties: function() {
  1299. var b = this.props.siteData.pagesData;
  1300. var c = a.includes(this.state.prevPages, this.props.currentUrlPageId) ? this.state.prevPages : this.state.prevPages.concat(this.props.currentUrlPageId);
  1301. c = a.reject(c, function(a) {
  1302. return !b[a]
  1303. });
  1304. return {
  1305. "": {
  1306. children: a.map(c, this.createPage)
  1307. }
  1308. }
  1309. }
  1310. };
  1311. return i
  1312. });
  1313. define("components/components/deadComponent/deadComponent", ["core"], function(a) {
  1314. "use strict";
  1315. var b = a.compMixins;
  1316. return {
  1317. displayName: "DeadComponent",
  1318. mixins: [b.skinBasedComp],
  1319. getSkinProperties: function() {
  1320. return {
  1321. title: {},
  1322. desc: {},
  1323. desc2: {}
  1324. }
  1325. }
  1326. }
  1327. });
  1328. define("components/components/erasableTextInput/erasableTextInput", ["lodash", "textCommon"], function(a, b) {
  1329. "use strict";
  1330.  
  1331. function c(a) {
  1332. return {
  1333. $erase: a.compData.value ? "showButton" : "hideButton"
  1334. }
  1335. }
  1336. return {
  1337. displayName: "ErasableTextInput",
  1338. mixins: [b.baseTextInput],
  1339. behaviors: b.baseTextInput.BASE_TEXT_BEHAVIORS,
  1340. getInitialState: function() {
  1341. return c(this.props)
  1342. },
  1343. componentWillReceiveProps: function(a) {
  1344. this.setState(c(a))
  1345. },
  1346. getSkinProperties: function() {
  1347. return a.merge(this.getBaseTextInputSkinProperties(), {
  1348. erase: {
  1349. children: "x",
  1350. onClick: this.props.onErase
  1351. }
  1352. })
  1353. }
  1354. }
  1355. });
  1356. define("components/components/galleries/tpaGallery", ["lodash", "core", "utils", "tpa", "color", "experiment", "coreUtils"], function(a, b, c, d, e, f, g) {
  1357. "use strict";
  1358. var h = c.linkRenderer,
  1359. i = b.compMixins,
  1360. j = d.tpaMixins,
  1361. k = {
  1362. ExternalLink: "WEBSITE",
  1363. EmailLink: "EMAIL",
  1364. PageLink: "PAGE",
  1365. DocumentLink: "DOCUMENT",
  1366. AnchorLink: "ANCHOR",
  1367. DynamicPageLink: "DYNAMIC_PAGE_LINK"
  1368. };
  1369.  
  1370. function l(a) {
  1371. var b = a.split(",");
  1372. return e({
  1373. r: b[0],
  1374. g: b[1],
  1375. b: b[2]
  1376. }).hexString()
  1377. }
  1378.  
  1379. function m(b, d, e) {
  1380. var f, g, h = {};
  1381. a.forEach(d, function(i, j) {
  1382. f = c.colorParser.getColorValue(b.getGeneralTheme(), e[d[j]]);
  1383. h[j] = a.includes(f, ",") ? l(f) : f;
  1384. g = e["alpha-" + d[j]];
  1385. if (!a.isUndefined(g)) {
  1386. h["alpha" + c.stringUtils.capitalize(j)] = g
  1387. }
  1388. });
  1389. return h
  1390. }
  1391.  
  1392. function n(b, c, d) {
  1393. if (b.link) {
  1394. return a.merge({}, b, h.renderLink(b.link, c, d), {
  1395. linkType: k[b.link.type]
  1396. })
  1397. }
  1398. return b
  1399. }
  1400.  
  1401. function o(b, c, d) {
  1402. return a.map(b, function(a) {
  1403. return n(a, c, d)
  1404. })
  1405. }
  1406.  
  1407. function p(a, b, c, d) {
  1408. var e = g.urlUtils.joinURL(a, "/galleries/" + (d ? "src/" : "target/"));
  1409. var f = e + b + "/" + b + ".html";
  1410. return c(f, ["compId", "deviceType", "locale", "viewMode"])
  1411. }
  1412.  
  1413. function q(b, c, d, e, g, h) {
  1414. return {
  1415. params: {
  1416. props: a.merge({}, b, m(d, e, g)),
  1417. quality: d.getGlobalImageQuality(),
  1418. marketingLandingPage: f.isOpen("sv_marketingLandingPage"),
  1419. items: o(c, d, h),
  1420. mainPageId: d.getMainPageId()
  1421. },
  1422. eventType: "SETTINGS_UPDATED",
  1423. intent: "addEventListener"
  1424. }
  1425. }
  1426.  
  1427. function r(b) {
  1428. return a.map(b, function(b) {
  1429. return a.omit(b, "quality")
  1430. })
  1431. }
  1432. return {
  1433. mixins: [i.skinBasedComp, j.tpaUrlBuilder, j.tpaCompApi, i.skinInfo],
  1434. messageSent: false,
  1435. isAlive: false,
  1436. componentInIframeReady: false,
  1437. processImageClick: function(b) {
  1438. var d = b.args[0],
  1439. e = this.props.compData.items[d],
  1440. f = this.props.compData.id,
  1441. g = h.renderImageZoomLink(this.props.siteData, this.props.rootNavigationInfo, e, f);
  1442. if (this.props.rootNavigationInfo.pageItemId === e.id) {
  1443. return
  1444. }
  1445. var i = h.getLinkUrlFromLinkProps(g);
  1446. var j = a.defaults({
  1447. pageItemAdditionalData: g["data-page-item-context"]
  1448. }, c.wixUrlParser.parseUrl(this.props.siteData, i));
  1449. this.props.siteAPI.navigateToPage(j)
  1450. },
  1451. getInitialState: function() {
  1452. this.currStyle = this.props.siteData.getAllTheme()[this.props.structure.styleId];
  1453. this.lastRenderedStyleData = {};
  1454. return {
  1455. height: this.props.style.height
  1456. }
  1457. },
  1458. setAppIsAlive: function() {
  1459. this.isAlive = true;
  1460. this.askToSendIframeMessage(this.props.compProp, this.props.compData)
  1461. },
  1462. setComponentInIframeReady: function() {
  1463. this.messageSent = false;
  1464. this.componentInIframeReady = true;
  1465. this.askToSendIframeMessage(this.props.compProp, this.props.compData)
  1466. },
  1467. askToSendIframeMessage: function(a, b, c, d) {
  1468. if (this.debounceIframe && this.shouldDebounceIframe && this.shouldDebounceIframe(a, b, c)) {
  1469. this.debounceIframe(a, b, c, d)
  1470. } else {
  1471. this.sendIframeMessage(a, b, c, d)
  1472. }
  1473. },
  1474. sendIframeMessage: function(a, b, c, d) {
  1475. var e;
  1476. if (this.isAlive && this.componentInIframeReady && !this.messageSent) {
  1477. var f = this.getOverrideParams ? this.getOverrideParams(a) : a;
  1478. var g = this.getStyleData(c, d);
  1479. e = q(f, b.items, this.props.siteData, this.getStyleProps(), g, this.props.rootNavigationInfo);
  1480. if (this.patchMessageProps) {
  1481. this.patchMessageProps(e.params.props, c)
  1482. }
  1483. this.props.siteAPI.getSiteAspect("tpaPostMessageAspect").sendPostMessage(this, e);
  1484. this.lastRenderedStyleData = g;
  1485. this.messageSent = true
  1486. }
  1487. },
  1488. shouldRenderIframe: function(b) {
  1489. var c = o(b.compData.items, b.siteData, b.rootNavigationInfo);
  1490. var d = r(c);
  1491. var e = r(this.props.compData.items);
  1492. var f = this.props.siteData.getGlobalImageQuality();
  1493. var g = a.every(this.props.compData.items, function(b) {
  1494. return !a.isEqual(b.quality, f) && !(a.isEmpty(b.quality) && a.isEmpty(f))
  1495. }, this);
  1496. var h = !a.isEqual(b.compProp, this.props.compProp) || !a.isEqual(e, d) || g || !a.isEqual(this.getStyleData(b.structure.styleId), this.lastRenderedStyleData);
  1497. return h;
  1498. },
  1499. componentWillReceiveProps: function(b) {
  1500. var c = b.siteData.getAllTheme()[b.structure.styleId];
  1501. if (!a.isEqual(this.currStyle, c)) {
  1502. this.currStyle = c;
  1503. this.messageSent = false
  1504. }
  1505. if (this.shouldRenderIframe(b)) {
  1506. this.messageSent = false
  1507. }
  1508. if (!a.isEqual(b.style.height, this.props.style.height)) {
  1509. this.setState({
  1510. height: b.style.height
  1511. })
  1512. }
  1513. this.askToSendIframeMessage(b.compProp, b.compData, b.structure.styleId, b);
  1514. if (this.isPlayingAllowed !== this.props.siteData.renderFlags.isPlayingAllowed) {
  1515. this.isPlayingAllowed = this.props.siteData.renderFlags.isPlayingAllowed;
  1516. this.sendEditModeMessage(this.isPlayingAllowed ? "site" : "editor")
  1517. }
  1518. },
  1519. sendEditModeMessage: function(a) {
  1520. if (!this.isAlive || !this.componentInIframeReady) {
  1521. return
  1522. }
  1523. var b = {
  1524. params: {
  1525. editMode: a
  1526. },
  1527. eventType: "EDIT_MODE_CHANGE",
  1528. intent: "addEventListener"
  1529. };
  1530. this.props.siteAPI.getSiteAspect("tpaPostMessageAspect").sendPostMessage(this, b)
  1531. },
  1532. getSkinProperties: function() {
  1533. return {
  1534. "": {
  1535. style: {
  1536. height: this.state.height || 0,
  1537. minWidth: 10,
  1538. minHeight: 10
  1539. }
  1540. },
  1541. iframe: {
  1542. style: {
  1543. height: this.state.height,
  1544. width: this.props.style.width
  1545. },
  1546. className: "tpa-gallery-" + this.getGalleryType(),
  1547. src: p(this.props.siteData.santaBase, this.getGalleryType(), this.buildUrl, this.props.siteData.isDebugMode())
  1548. }
  1549. }
  1550. }
  1551. }
  1552. });
  1553. define("components/components/galleries/masonry", ["lodash", "components/components/galleries/tpaGallery"], function(a, b) {
  1554. "use strict";
  1555. var c = {
  1556. textColor: "#000",
  1557. descriptionColor: "#000",
  1558. textBackgroundColor: "#fff",
  1559. backgroundMouseoverColor: "#000",
  1560. alphaBackgroundMouseoverColor: .4
  1561. };
  1562. return {
  1563. displayName: "MasonryGallery",
  1564. mixins: [b],
  1565. getGalleryType: function() {
  1566. return "Masonry"
  1567. },
  1568. getStyleProps: function() {
  1569. return {
  1570. textColor: "color1",
  1571. descriptionColor: "color2",
  1572. textBackgroundColor: "color3",
  1573. backgroundMouseoverColor: "color4",
  1574. textButtonColor: "color5"
  1575. }
  1576. },
  1577. patchMessageProps: function(b, d) {
  1578. var e = this.getStyleData(d);
  1579. if (!e.version || parseInt(e.version, 10) === 1) {
  1580. a.assign(b, c)
  1581. }
  1582. }
  1583. }
  1584. });
  1585. define("components/components/galleries/accordion", ["components/components/galleries/tpaGallery"], function(a) {
  1586. "use strict";
  1587. return {
  1588. displayName: "AccordionGallery",
  1589. mixins: [a],
  1590. getGalleryType: function() {
  1591. return "Accordion"
  1592. },
  1593. getStyleProps: function() {
  1594. return {
  1595. textColor: "color1",
  1596. descriptionColor: "color2",
  1597. textBackgroundColor: "color3",
  1598. borderColor: "color4"
  1599. }
  1600. }
  1601. }
  1602. });
  1603. define("components/components/galleries/impress", ["components/components/galleries/tpaGallery"], function(a) {
  1604. "use strict";
  1605. return {
  1606. displayName: "ImpressGallery",
  1607. mixins: [a],
  1608. getGalleryType: function() {
  1609. return "Impress"
  1610. },
  1611. getStyleProps: function() {
  1612. return {
  1613. bcgColor1: "color1",
  1614. bcgColor2: "color2",
  1615. bcgColor3: "color3",
  1616. bcgColor4: "color4",
  1617. bcgColor5: "color5",
  1618. textColor: "color6",
  1619. descriptionColor: "color7",
  1620. textBackgroundColor: "color8"
  1621. }
  1622. }
  1623. }
  1624. });
  1625. define("components/components/galleries/freestyle", ["components/components/galleries/tpaGallery"], function(a) {
  1626. "use strict";
  1627. return {
  1628. displayName: "FreestyleGallery",
  1629. mixins: [a],
  1630. getGalleryType: function() {
  1631. return "Freestyle"
  1632. },
  1633. getStyleProps: function() {
  1634. return {
  1635. borderColor: "color1"
  1636. }
  1637. }
  1638. }
  1639. });
  1640. define("components/components/touchMediaZoom/touchMediaZoomUtils", [], function() {
  1641. "use strict";
  1642.  
  1643. function a(a) {
  1644. return {
  1645. leftPart_leftMargin: b(a, 0),
  1646. leftPart_begin: c(a, 0),
  1647. leftPart_rightMargin: d(a, 0),
  1648. centerPart_leftMargin: b(a, 1),
  1649. centerPart_begin: c(a, 1),
  1650. centerPart_rightMargin: d(a, 1),
  1651. rightPart_leftMargin: b(a, 2),
  1652. rightPart_begin: c(a, 2),
  1653. rightPart_rightMargin: d(a, 2),
  1654. fullWidth: c(a, 3)
  1655. }
  1656. }
  1657.  
  1658. function b(a, b) {
  1659. return b * (1 + a)
  1660. }
  1661.  
  1662. function c(a, b) {
  1663. return b * (1 + a) + a
  1664. }
  1665.  
  1666. function d(a, b) {
  1667. return b * (1 + a) + 2 * a
  1668. }
  1669.  
  1670. function e(a, b, c) {
  1671. return Math.min(Math.max(a, b), c)
  1672. }
  1673.  
  1674. function f(a) {
  1675. var b = Math.min(a.viewport.width / a.imageDimensions.width, 1);
  1676. var c = Math.min(a.viewport.height / a.imageDimensions.height, 1);
  1677. var d = Math.min(b, c);
  1678. return {
  1679. width: Math.round(a.imageDimensions.width * d),
  1680. height: Math.round(a.imageDimensions.height * d)
  1681. }
  1682. }
  1683. return {
  1684. createStageData: a,
  1685. clamp: e,
  1686. calcImageSize: f
  1687. }
  1688. });
  1689. define("components/components/touchMediaZoom/touchMediaZoomSlideshow", ["lodash", "utils", "core", "components/components/touchMediaZoom/touchMediaZoomUtils", "imageClientApi", "experiment", "components/bi/events.json"], function(a, b, c, d, e, f, g) {
  1690. "use strict";
  1691. var h = c.compMixins,
  1692. i = b.linkRenderer,
  1693. j = b.nonPageItemZoom,
  1694. k = .2,
  1695. l = 29,
  1696. m = .25;
  1697. return {
  1698. displayName: "TouchMediaZoomSlideshow",
  1699. mixins: [h.skinBasedComp],
  1700. nonReactState: {
  1701. currentSlideIndex: 0,
  1702. swipeOffset: 0,
  1703. isZoomed: false
  1704. },
  1705. getSwipeOffset: function() {
  1706. return this.nonReactState.swipeOffset
  1707. },
  1708. setSwipeOffset: function(a) {
  1709. this.nonReactState.swipeOffset = a;
  1710. var b = this.generateTransformString(a);
  1711. this.refs.swipeStage.style.transform = b;
  1712. this.refs.swipeStage.style.webkitTransform = b
  1713. },
  1714. generateTransformString: function(a) {
  1715. return "translate3d(" + -1 * a * this.stagePercentFactor + "%, 0, 0)"
  1716. },
  1717. getCurrentSlideIndex: function() {
  1718. return this.nonReactState.currentSlideIndex
  1719. },
  1720. setCurrentSlideIndex: function(a) {
  1721. this.nonReactState.currentSlideIndex = a
  1722. },
  1723. getIsZoomed: function() {
  1724. return this.nonReactState.isZoomed
  1725. },
  1726. setIsZoomed: function(a) {
  1727. this.nonReactState.isZoomed = a
  1728. },
  1729. getStagePercentFactor: function() {
  1730. return 100 / this.stageData.fullWidth
  1731. },
  1732. getItems: function() {
  1733. return a.get(this.props, "pageItemAdditionalData.items", [this.props.compData])
  1734. },
  1735. enterZoomMode: function() {
  1736. this.isZoomed = true;
  1737. this.refs.xButton.classList.add(this.classSet({
  1738. "force-hide": true
  1739. }));
  1740. if (f.isOpen("sv_expandModeBi")) {
  1741. this.fireZoomInExpandModeEvent("pinch")
  1742. }
  1743. },
  1744. exitZoomMode: function() {
  1745. this.isZoomed = false;
  1746. this.refs.xButton.classList.remove(this.classSet({
  1747. "force-hide": true
  1748. }))
  1749. },
  1750. onTouchMove: function(a) {
  1751. if (a.touches.length === 1 && !this.isZoomed) {
  1752. a.preventDefault();
  1753. return
  1754. }
  1755. if (a.touches.length === 1 || this.isZoomed) {
  1756. return
  1757. }
  1758. this.enterZoomMode()
  1759. },
  1760. onTouchEnd: function() {
  1761. if (!this.isZoomed) {
  1762. return
  1763. }
  1764. this._touchEndTimeoutHandle = window.setTimeout(function() {
  1765. if (!this.props.siteData.mobile.isZoomedIn()) {
  1766. this.exitZoomMode()
  1767. }
  1768. }.bind(this), 300)
  1769. },
  1770. fireEnterExpandModeEvent: function() {
  1771. this.props.siteAPI.reportBI(g.ENTER_EXPAND_MODE, {
  1772. site_id: this.props.siteData.rendererModel.siteInfo.siteId
  1773. })
  1774. },
  1775. fireZoomInExpandModeEvent: function(a) {
  1776. this.props.siteAPI.reportBI(g.ZOOM_IN_EXPAND_MODE, {
  1777. site_id: this.props.siteData.rendererModel.siteInfo.siteId,
  1778. zoomType: a
  1779. })
  1780. },
  1781. componentWillMount: function() {
  1782. this.fireEnterExpandModeEvent();
  1783. this.props.siteAPI.getSiteAspect("siteScrollingBlocker").enterMediaZoomMode(this);
  1784. var a = this.props.siteAPI.getSiteAspect("windowKeyboardEvent");
  1785. a.registerToArrowLeftKey(this);
  1786. a.registerToArrowRightKey(this);
  1787. Object.defineProperty(this, "swipeOffset", {
  1788. get: this.getSwipeOffset,
  1789. set: this.setSwipeOffset
  1790. });
  1791. Object.defineProperty(this, "currentSlideIndex", {
  1792. get: this.getCurrentSlideIndex,
  1793. set: this.setCurrentSlideIndex
  1794. });
  1795. Object.defineProperty(this, "isZoomed", {
  1796. get: this.getIsZoomed,
  1797. set: this.setIsZoomed
  1798. });
  1799. Object.defineProperty(this, "stagePercentFactor", {
  1800. get: this.getStagePercentFactor
  1801. });
  1802. this.stageData = d.createStageData(k);
  1803. this.resetNonReactState();
  1804. this.preloadImages(this.currentSlideIndex);
  1805. this.setState({
  1806. showInfo: true,
  1807. isZoomed: false
  1808. })
  1809. },
  1810. componentDidMount: function() {
  1811. this.setSwipeOffset(this.swipeOffset);
  1812. this.refs.swipeStage.addEventListener("transitionend", this.onSwipeEnd);
  1813. if (!this.props.siteData.isMobileDevice()) {
  1814. return
  1815. }
  1816. var a = this;
  1817. require(["hammer"], function(b) {
  1818. a.setupTouchHandlers(b)
  1819. });
  1820. this.refs[""].addEventListener("touchend", this.onTouchEnd);
  1821. this.refs[""].addEventListener("touchcancel", this.onTouchEnd);
  1822. this.refs[""].addEventListener("touchmove", this.onTouchMove)
  1823. },
  1824. componentWillUnmount: function() {
  1825. this.props.siteAPI.getSiteAspect("siteScrollingBlocker").exitMediaZoomMode(this);
  1826. window.clearTimeout(this._touchEndTimeoutHandle)
  1827. },
  1828. setupTouchHandlers: function(b) {
  1829. this.hammertime = new b.Manager(this.refs[""], {
  1830. cssProps: {
  1831. touchCallout: "default"
  1832. },
  1833. touchAction: "auto"
  1834. });
  1835. this.hammertime.add(new b.Pan({
  1836. event: "pan",
  1837. direction: b.DIRECTION_HORIZONTAL
  1838. }));
  1839. this.hammertime.add(new b.Pan({
  1840. event: "panstart",
  1841. direction: b.DIRECTION_HORIZONTAL
  1842. }));
  1843. this.hammertime.add(new b.Pan({
  1844. event: "panend",
  1845. direction: b.DIRECTION_HORIZONTAL
  1846. }));
  1847. this.hammertime.on("panstart pan panend", this.onSwipe);
  1848. if (f.isOpen("sv_expandModeBi")) {
  1849. this.hammertime.add(new b.Tap({
  1850. event: "doubletap",
  1851. taps: 2,
  1852. threshold: 30,
  1853. posThreshold: 30
  1854. }));
  1855. this.hammertime.on("doubletap", a.partial(this.fireZoomInExpandModeEvent, "doubleTap"))
  1856. }
  1857. },
  1858. componentWillUpdate: function() {
  1859. if (this.props.siteData.isMobileDevice()) {
  1860. this.setSwipeOffset(this.stageData.centerPart_begin)
  1861. }
  1862. },
  1863. componentWillReceiveProps: function() {
  1864. if (!this.props.siteData.renderFlags.isZoomAllowed) {
  1865. setTimeout(this.closeMediaZoom, 0);
  1866. return
  1867. }
  1868. },
  1869. resetNonReactState: function(b) {
  1870. var c = b || this.props.compData;
  1871. var d = a.findIndex(this.getItems(), {
  1872. id: c.id
  1873. });
  1874. var e = this.props.siteData.mobile.isZoomed();
  1875. this.nonReactState = {
  1876. currentSlideIndex: d,
  1877. swipeOffset: this.stageData.centerPart_begin,
  1878. isZoomed: e
  1879. }
  1880. },
  1881. onSwipe: function a(b) {
  1882. if (this.isZoomed) {
  1883. return
  1884. }
  1885. if (b.center.x - b.deltaX < l) {
  1886. return
  1887. }
  1888. switch (b.type) {
  1889. case "panstart":
  1890. break;
  1891. case "pan":
  1892. this.swipeOffset = d.clamp(this.stageData.centerPart_begin - b.deltaX / window.innerWidth, this.currentSlideIndex > 0 ? this.stageData.leftPart_leftMargin : this.stageData.centerPart_leftMargin, this.currentSlideIndex < this.getItems().length - 1 ? this.stageData.rightPart_rightMargin : this.stageData.centerPart_rightMargin);
  1893. break;
  1894. case "panend":
  1895. this.startTransition();
  1896. break;
  1897. default:
  1898. throw "unsupported event type: " + b.type
  1899. }
  1900. },
  1901. calcTransitionTarget: function() {
  1902. if (this.swipeOffset < this.stageData.centerPart_leftMargin) {
  1903. return {
  1904. offset: this.stageData.leftPart_begin,
  1905. index: this.currentSlideIndex - 1
  1906. }
  1907. }
  1908. if (this.swipeOffset > this.stageData.centerPart_rightMargin) {
  1909. return {
  1910. offset: this.stageData.rightPart_begin,
  1911. index: this.currentSlideIndex + 1
  1912. }
  1913. }
  1914. return {
  1915. offset: this.stageData.centerPart_begin,
  1916. index: this.currentSlideIndex
  1917. }
  1918. },
  1919. startTransition: function(a) {
  1920. var b = a || this.calcTransitionTarget();
  1921. this.refs.swipeStage.classList.add(this.props.styleId + "_animate");
  1922. this.swipeOffset = b.offset;
  1923. this.currentSlideIndex = b.index;
  1924. this.preloadImages(this.currentSlideIndex)
  1925. },
  1926. onSwipeEnd: function a() {
  1927. this.refs.swipeStage.classList.remove(this.props.styleId + "_animate");
  1928. this.swipeOffset = this.stageData.centerPart_begin;
  1929. this.navigateToSlide(this.currentSlideIndex);
  1930. this.setState({})
  1931. },
  1932. navigateToSlide: function(b) {
  1933. var c = this.getItems()[b].id;
  1934. var d = a.clone(this.props.rootNavigationInfo);
  1935. d.pageItemId = c;
  1936. this.props.siteAPI.updateUrlIfNeeded(d)
  1937. },
  1938. closeMediaZoom: function() {
  1939. if (j.getZoomedImageData()) {
  1940. j.unzoom()
  1941. } else {
  1942. this.props.siteAPI.navigateToPage({
  1943. pageId: this.props.rootNavigationInfo.pageId
  1944. })
  1945. }
  1946. },
  1947. onXButton: function(a) {
  1948. this.closeMediaZoom();
  1949. a.preventDefault()
  1950. },
  1951. onArrowLeftKey: function() {
  1952. if (this.currentSlideIndex > 0) {
  1953. this.startTransition({
  1954. offset: this.stageData.leftPart_begin,
  1955. index: this.currentSlideIndex - 1
  1956. })
  1957. }
  1958. },
  1959. onArrowRightKey: function() {
  1960. if (this.currentSlideIndex < this.getItems().length - 1) {
  1961. this.startTransition({
  1962. offset: this.stageData.rightPart_begin,
  1963. index: this.currentSlideIndex + 1
  1964. })
  1965. }
  1966. },
  1967. toggleInfoPanel: function(a) {
  1968. if (a.target === this.refs.stage_CENTER.refs.link) {
  1969. return
  1970. }
  1971. this.setState({
  1972. showInfo: !this.isManipulated() && !this.state.showInfo
  1973. })
  1974. },
  1975. getGotoLink: function(b) {
  1976. var c = b.link;
  1977. if (!c) {
  1978. return
  1979. }
  1980. var d = i.renderLink(c, this.props.siteData, this.props.rootNavigationInfo);
  1981. d.children = a.get(this.props, "compProps.goToLinkText", "Go to link");
  1982. return d
  1983. },
  1984. preloadImages: function(a) {
  1985. for (var b = a - 10; b < a + 10; b++) {
  1986. this.preloadImage(b, m)
  1987. }
  1988. for (var c = a - 3; c < a + 3; c++) {
  1989. this.preloadImage(c)
  1990. }
  1991. },
  1992. preloadImage: function(a, b) {
  1993. if (a < 0 || a >= this.getItems().length) {
  1994. return
  1995. }
  1996. var c = this.getItems()[a];
  1997. var d = this.getImageData(c, b);
  1998. (new window.Image).src = d.uri
  1999. },
  2000. getStageParts: function() {
  2001. return a.filter([{
  2002. id: "LEFT",
  2003. imageIndex: this.currentSlideIndex - 1,
  2004. offset: this.stageData.leftPart_leftMargin
  2005. }, {
  2006. id: "CENTER",
  2007. imageIndex: this.currentSlideIndex,
  2008. offset: this.stageData.centerPart_leftMargin
  2009. }, {
  2010. id: "RIGHT",
  2011. imageIndex: this.currentSlideIndex + 1,
  2012. offset: this.stageData.rightPart_leftMargin
  2013. }], function(a) {
  2014. return a.imageIndex >= 0 && a.imageIndex < this.getItems().length
  2015. }, this)
  2016. },
  2017. isManipulated: function() {
  2018. var a = this.props.siteData.isMobileDevice() && this.props.siteData.mobile.isLandscape();
  2019. return a || this.state.isZoomed
  2020. },
  2021. getImageData: function(c, f) {
  2022. var g = e.fittingTypes.SCALE_TO_FIT;
  2023. var h = {
  2024. id: c.uri,
  2025. width: c.width,
  2026. height: c.height
  2027. };
  2028. var i = this.props.siteData.mobile.getDevicePixelRatio();
  2029. var j = this.props.siteData.screenSize;
  2030. var k = d.calcImageSize({
  2031. imageDimensions: a.pick(c, ["width", "height"]),
  2032. viewport: {
  2033. width: j.width,
  2034. height: j.height
  2035. }
  2036. });
  2037. var l = {
  2038. width: Math.round(k.width * (f || 1)),
  2039. height: Math.round(k.height * (f || 1))
  2040. };
  2041. var m = {
  2042. width: l.width,
  2043. height: l.height,
  2044. alignment: e.alignTypes.CENTER,
  2045. htmlTag: "img",
  2046. pixelAspectRatio: i
  2047. };
  2048. var n = a.defaults({
  2049. quality: 85
  2050. }, c.quality || {});
  2051. var o = this.props.siteData.browser;
  2052. var p = e.getData(g, h, m, n, o);
  2053. a.assign(p.css.img, k, {
  2054. objectFix: "internal"
  2055. });
  2056. a.assign(p, {
  2057. uri: b.urlUtils.joinURL(this.props.siteData.getStaticMediaUrl(), p.uri)
  2058. });
  2059. return p
  2060. },
  2061. buildStageChildren: function() {
  2062. var b = [];
  2063. a.forEach(this.getStageParts(), function(a) {
  2064. var c = a.offset * this.stagePercentFactor;
  2065. var d = "stage_" + a.id;
  2066. var e = this.getItems()[a.imageIndex];
  2067. var f = this.getImageData(e, m);
  2068. var g = this.getImageData(e);
  2069. var h = this.createChildComponent(e, "wysiwyg.viewer.components.TouchMediaZoomItem", "image", {
  2070. key: this.props.id + "_item" + a.imageIndex,
  2071. id: d,
  2072. ref: d,
  2073. imageData: g,
  2074. imageFastData: f,
  2075. title: e.title,
  2076. description: e.description,
  2077. link: this.getGotoLink(e),
  2078. screenWidth: this.props.siteData.screenSize.width,
  2079. itemWidth: this.props.siteData.screenSize.width * (1 + 2 * k),
  2080. showInfo: this.state.showInfo && !this.isManipulated(),
  2081. itemLeft: c
  2082. });
  2083. b.push(h)
  2084. }, this);
  2085. return b
  2086. },
  2087. getSkinProperties: function() {
  2088. return {
  2089. "": {
  2090. onClick: this.toggleInfoPanel
  2091. },
  2092. swipeStage: {
  2093. style: {
  2094. width: 100 * this.stageData.fullWidth + "%"
  2095. },
  2096. children: this.buildStageChildren()
  2097. },
  2098. xButton: {
  2099. onClick: this.onXButton,
  2100. className: this.classSet({
  2101. hidden: this.isManipulated()
  2102. })
  2103. }
  2104. }
  2105. }
  2106. }
  2107. });
  2108. define("components/components/touchMediaZoom/touchMediaZoomItem", ["lodash", "react", "core"], function(a, b, c) {
  2109. "use strict";
  2110. return {
  2111. displayName: "TouchMediaZoomItem",
  2112. mixins: [c.compMixins.skinBasedComp],
  2113. propTypes: {
  2114. itemWidth: b.PropTypes.number.isRequired,
  2115. itemLeft: b.PropTypes.number.isRequired,
  2116. screenWidth: b.PropTypes.number.isRequired,
  2117. imageData: b.PropTypes.object.isRequired,
  2118. imageFastData: b.PropTypes.object.isRequired,
  2119. title: b.PropTypes.string,
  2120. description: b.PropTypes.string,
  2121. link: b.PropTypes.object,
  2122. showInfo: b.PropTypes.bool.isRequired
  2123. },
  2124. getTitle: function() {
  2125. return {
  2126. className: this.classSet({
  2127. hidden: !this.props.title
  2128. }),
  2129. children: this.props.title
  2130. }
  2131. },
  2132. getDescription: function() {
  2133. return {
  2134. className: this.classSet({
  2135. hidden: !this.props.description
  2136. }),
  2137. children: this.props.description
  2138. }
  2139. },
  2140. getLink: function() {
  2141. return a.assign({}, this.props.link, {
  2142. className: this.classSet({
  2143. hidden: !this.props.link
  2144. })
  2145. })
  2146. },
  2147. hasInfo: function() {
  2148. return this.props.title || this.props.description || this.props.link
  2149. },
  2150. isImageFullWidth: function() {
  2151. return this.props.screenWidth <= this.props.imageFastData.css.img.width
  2152. },
  2153. getSkinProperties: function() {
  2154. var a = b.createElement("img", {
  2155. src: this.props.imageFastData.uri,
  2156. style: this.props.imageFastData.css.img,
  2157. className: this.classSet({
  2158. fast: true
  2159. })
  2160. });
  2161. var c = b.createElement("img", {
  2162. src: this.props.imageData.uri,
  2163. style: this.props.imageData.css.img,
  2164. className: this.classSet({
  2165. heavy: true
  2166. })
  2167. });
  2168. return {
  2169. "": {
  2170. className: this.classSet({
  2171. parallax: this.isImageFullWidth()
  2172. }),
  2173. style: {
  2174. width: this.props.itemWidth + "px",
  2175. left: this.props.itemLeft + "%"
  2176. }
  2177. },
  2178. imageContainer: {
  2179. style: {
  2180. width: this.props.screenWidth + "px"
  2181. },
  2182. children: [a, c]
  2183. },
  2184. info: {
  2185. className: this.classSet({
  2186. hidden: !this.props.showInfo || !this.hasInfo()
  2187. }),
  2188. style: {
  2189. width: this.props.screenWidth + "px"
  2190. }
  2191. },
  2192. description: this.getDescription(),
  2193. title: this.getTitle(),
  2194. link: this.getLink()
  2195. }
  2196. }
  2197. }
  2198. });
  2199. define("components/components/galleries/collage", ["components/components/galleries/tpaGallery"], function(a) {
  2200. "use strict";
  2201. return {
  2202. displayName: "CollageGallery",
  2203. mixins: [a],
  2204. getGalleryType: function() {
  2205. return "Collage"
  2206. },
  2207. getStyleProps: function() {
  2208. return {
  2209. textColor: "color1",
  2210. descriptionColor: "color2",
  2211. backgroundMouseoverColor: "color3"
  2212. }
  2213. },
  2214. getOverrideParams: function(a) {
  2215. if (a.maxImageSize > a.numOfCells) {
  2216. a.maxImageSize = a.numOfCells
  2217. }
  2218. if (a.minImageSize > a.maxImageSize) {
  2219. a.minImageSize = a.maxImageSize
  2220. } else if (a.maxImageSize < a.minImageSize) {
  2221. a.maxImageSize = a.minImageSize
  2222. }
  2223. return a
  2224. }
  2225. }
  2226. });
  2227. define("components/components/galleries/honeycomb", ["lodash", "components/components/galleries/tpaGallery"], function(a, b) {
  2228. "use strict";
  2229. return {
  2230. displayName: "HoneycombGallery",
  2231. mixins: [b],
  2232. getGalleryType: function() {
  2233. return "Honeycomb"
  2234. },
  2235. debounceIframe: a.debounce(function(a, b, c) {
  2236. this.sendIframeMessage(a, b, c)
  2237. }, 400),
  2238. shouldDebounceIframe: function(a) {
  2239. return a.numOfColumns !== this.props.compProp.numOfColumns
  2240. },
  2241. getStyleProps: function() {
  2242. return {
  2243. textColor: "color1",
  2244. descriptionColor: "color2",
  2245. textBackgroundColor: "color3",
  2246. backgroundMouseoverColor: "color4",
  2247. holesColor: "color5"
  2248. }
  2249. }
  2250. }
  2251. });
  2252. define("components/components/galleries/stripShowcase", ["components/components/galleries/tpaGallery"], function(a) {
  2253. "use strict";
  2254. return {
  2255. displayName: "StripShowcaseGallery",
  2256. mixins: [a],
  2257. getGalleryType: function() {
  2258. return "StripShowcase"
  2259. },
  2260. getStyleProps: function() {
  2261. return {}
  2262. }
  2263. }
  2264. });
  2265. define("components/components/galleries/stripSlideshow", ["components/components/galleries/tpaGallery"], function(a) {
  2266. "use strict";
  2267. return {
  2268. displayName: "StripSlideshowGallery",
  2269. mixins: [a],
  2270. getGalleryType: function() {
  2271. return "StripSlideshow"
  2272. },
  2273. getStyleProps: function() {
  2274. return {
  2275. titleColor: "color1",
  2276. descriptionColor: "color2",
  2277. backgroundColor: "color3"
  2278. }
  2279. }
  2280. }
  2281. });
  2282. define("components/components/galleries/thumbnails", ["components/components/galleries/tpaGallery"], function(a) {
  2283. "use strict";
  2284. return {
  2285. displayName: "ThumbnailsGallery",
  2286. mixins: [a],
  2287. getGalleryType: function() {
  2288. return "Thumbnails"
  2289. },
  2290. getStyleProps: function() {
  2291. return {
  2292. textColor: "color1",
  2293. descriptionColor: "color2",
  2294. textBackgroundColor: "color3"
  2295. }
  2296. }
  2297. }
  2298. });
  2299. define("components/components/galleries/tpa3DGallery", ["components/components/galleries/tpaGallery"], function(a) {
  2300. "use strict";
  2301. return {
  2302. displayName: "TPA3DGallery",
  2303. mixins: [a],
  2304. getGalleryType: function() {
  2305. return "Slicebox"
  2306. },
  2307. getStyleProps: function() {
  2308. return {}
  2309. }
  2310. }
  2311. });
  2312. define("components/components/galleries/tpa3DCarousel", ["components/components/galleries/tpaGallery"], function(a) {
  2313. "use strict";
  2314. return {
  2315. displayName: "TPA3DCarouselGallery",
  2316. mixins: [a],
  2317. getGalleryType: function() {
  2318. return "Carousel"
  2319. },
  2320. getStyleProps: function() {
  2321. return {}
  2322. }
  2323. }
  2324. });
  2325. define("components/components/infoTip/infoTipUtils", ["zepto"], function(a) {
  2326. "use strict";
  2327.  
  2328. function b(a) {
  2329. return a.offset()
  2330. }
  2331.  
  2332. function c(a, b) {
  2333. return {
  2334. top: a.top - b.height,
  2335. left: a.left - b.width / 2,
  2336. right: "auto"
  2337. }
  2338. }
  2339.  
  2340. function d(b, c, d, e) {
  2341. var f = a(window.document.body).scrollTop(),
  2342. g = b - f < 0,
  2343. h;
  2344. if (g) {
  2345. h = c.top + e.height;
  2346. if (h > d + f + e.height) {
  2347. if (c.top < 0) {
  2348. h = c.top
  2349. } else {
  2350. h = f
  2351. }
  2352. }
  2353. return h > 0 ? h : 0
  2354. }
  2355. return b
  2356. }
  2357.  
  2358. function e(a, b, c, d) {
  2359. if (b > d) {
  2360. return "auto"
  2361. }
  2362. return a < 0 ? c.left : a
  2363. }
  2364.  
  2365. function f(a, b, c) {
  2366. return a > c ? b.left + b.width : a
  2367. }
  2368.  
  2369. function g(a, b, c) {
  2370. var g = window.innerWidth,
  2371. h = window.innerHeight;
  2372. return {
  2373. top: d(a.top, b, h, c),
  2374. left: e(a.left, a.right, b),
  2375. right: f(a.right, b, g)
  2376. }
  2377. }
  2378.  
  2379. function h(a, b) {
  2380. var c = 0,
  2381. d = 0,
  2382. e, f = b.offsetParent();
  2383. if (f) {
  2384. e = f.offset();
  2385. c = e.top;
  2386. d = e.left
  2387. }
  2388. return {
  2389. top: a.top - c,
  2390. left: a.left - d,
  2391. right: a.right === "auto" ? a.right : a.right + d
  2392. }
  2393. }
  2394.  
  2395. function i(d, e) {
  2396. var f, i, j;
  2397. d = a(d);
  2398. e = a(e);
  2399. j = {
  2400. width: e.width(),
  2401. height: e.height()
  2402. };
  2403. f = b(d);
  2404. i = c(f, j);
  2405. i = g(i, f, j);
  2406. i = h(i, e);
  2407. return i
  2408. }
  2409. return {
  2410. getPosition: i
  2411. }
  2412. });
  2413. define("components/components/infoTip/infoTip", ["lodash", "utils", "core", "components/components/infoTip/infoTipUtils", "reactDOM"], function(a, b, c, d, e) {
  2414. "use strict";
  2415. var f = c.compMixins;
  2416. var g = b.style.assignStyle;
  2417. var h = 150,
  2418. i = 500,
  2419. j = 3e3;
  2420.  
  2421. function k() {
  2422. n.call(this)
  2423. }
  2424.  
  2425. function l() {
  2426. this.setTimeoutNamed("closeTipByTimeout", k.bind(this), j)
  2427. }
  2428.  
  2429. function m(a, b) {
  2430. o.call(this, e.findDOMNode(b.source))
  2431. }
  2432.  
  2433. function n() {
  2434. this.clearTimeoutNamed("openTip");
  2435. this.setState({
  2436. $hidden: "hidden",
  2437. runTimer: true
  2438. })
  2439. }
  2440.  
  2441. function o(a) {
  2442. this.setState({
  2443. $hidden: "",
  2444. isShown: true,
  2445. caller: a
  2446. });
  2447. l.call(this)
  2448. }
  2449.  
  2450. function p() {
  2451. var b, c;
  2452. if (this.state.isShown) {
  2453. b = e.findDOMNode(this);
  2454. c = d.getPosition(this.state.caller, b);
  2455. g(b, a.pick(c, ["top", "left", "right"]))
  2456. }
  2457. }
  2458.  
  2459. function q(b) {
  2460. return b && a.isEmpty(b.description)
  2461. }
  2462. return {
  2463. displayName: "InfoTip",
  2464. mixins: [f.skinBasedComp, f.timeoutsMixin],
  2465. onMouseEnter: function() {
  2466. this._isMouseInside = true
  2467. },
  2468. onMouseLeave: function() {
  2469. this._isMouseInside = false;
  2470. n.call(this)
  2471. },
  2472. showToolTip: function(a, b) {
  2473. if (q(b.source.props.compData)) {
  2474. return
  2475. }
  2476. this.clearTimeoutNamed("hideTipByClose");
  2477. this.setTimeoutNamed("openTip", function() {
  2478. m.call(this, a, b)
  2479. }.bind(this), i)
  2480. },
  2481. closeToolTip: function() {
  2482. this.setTimeoutNamed("hideTipByClose", function() {
  2483. if (!this._isMouseInside) {
  2484. n.call(this)
  2485. }
  2486. }.bind(this), h)
  2487. },
  2488. getSkinProperties: function() {
  2489. return {
  2490. content: {
  2491. children: [this.props.compData.content]
  2492. }
  2493. }
  2494. },
  2495. componentDidUpdate: function() {
  2496. p.call(this)
  2497. },
  2498. getInitialState: function() {
  2499. return {
  2500. $hidden: "hidden",
  2501. isMouseInside: false
  2502. }
  2503. }
  2504. }
  2505. });
  2506. define("components/components/singleAudioPlayer/singleAudioPlayer", ["core", "react", "lodash", "reactDOM"], function(a, b, c, d) {
  2507. "use strict";
  2508. var e = a.compMixins;
  2509. var f = function(a) {
  2510. return a === 0 ? 0 : Math.ceil(a / 20)
  2511. };
  2512. var g = function(a) {
  2513. return a * 20
  2514. };
  2515. var h = function(a) {
  2516. var b = a / 1e3,
  2517. c = Math.floor(b / 60),
  2518. d = Math.floor(b % 60),
  2519. e = c < 10 ? "0" + c : c,
  2520. f = d < 10 ? "0" + d : d,
  2521. g = e + ":" + f;
  2522. return g
  2523. };
  2524. var i = function(a, b, c) {
  2525. var d = (a.nativeEvent.offsetX ? a.nativeEvent.offsetX : a.nativeEvent.layerX) / b,
  2526. e = Math.ceil(d * c);
  2527. return e
  2528. };
  2529. var j = function(a, b) {
  2530. if (b === "unmuted") {
  2531. a.muteAudio()
  2532. } else {
  2533. a.unmuteAudio()
  2534. }
  2535. };
  2536. return {
  2537. displayName: "SingleAudioPlayer",
  2538. mixins: [e.skinBasedComp, e.skinInfo, e.audioMixin],
  2539. getInitialState: function() {
  2540. this.audioVolume = this.props.compProp.volume;
  2541. this.autoPlay = this.props.compProp.autoplay;
  2542. return {
  2543. $playerState: "waiting",
  2544. $device: this.getDeviceState(),
  2545. $isduration: "duration",
  2546. $isMuted: "unmuted",
  2547. trackDuration: "00:00",
  2548. trackPositionLabel: "00:00",
  2549. progressPosition: 0,
  2550. volumeBars: f(this.props.compProp.volume),
  2551. dragging: false,
  2552. $heightChanged: false
  2553. }
  2554. },
  2555. finishedPlayingAudio: function() {
  2556. this.isAudioPlaying = false;
  2557. if (this.props.compProp.loop) {
  2558. this.initiatePlay()
  2559. } else {
  2560. this.setState({
  2561. $playerState: "repeat"
  2562. })
  2563. }
  2564. },
  2565. whileLoadingHandler: function(a) {
  2566. var b = h(a);
  2567. this.setState({
  2568. trackDuration: b
  2569. })
  2570. },
  2571. whilePlayingHandler: function(a) {
  2572. var b = h(a),
  2573. c = a / this.getAudioDuration() * 100;
  2574. this.setState({
  2575. trackPositionLabel: b,
  2576. progressPosition: c
  2577. })
  2578. },
  2579. getProgressBarWidth: function() {
  2580. return d.findDOMNode(this.refs.progressbar).offsetWidth
  2581. },
  2582. resetTrackPosition: function() {
  2583. this.setState({
  2584. trackPositionLabel: "00:00",
  2585. progressPosition: 0
  2586. })
  2587. },
  2588. movingProgressbarHandle: function(a) {
  2589. var b = this.getProgressBarWidth(),
  2590. c = this.getSkinExports("barSpaceLeft").barSpaceLeft,
  2591. d = this.getSkinExports("barSpaceRight").barSpaceRight,
  2592. e = this.props.style.width,
  2593. f = a.pageX,
  2594. g = this.getAudioDuration(),
  2595. j = f < c || f > e - d,
  2596. k = i(a, b, g);
  2597. if (j) {
  2598. return
  2599. }
  2600. this.setState({
  2601. trackPositionLabel: h(k),
  2602. progressPosition: k / g * 100
  2603. });
  2604. this.seekAudio(k)
  2605. },
  2606. stoppedMovingProgressbarHandle: function(a) {
  2607. var b = this.getProgressBarWidth();
  2608. var c = this.getAudioDuration();
  2609. var d = i(a, b, c);
  2610. this.setState({
  2611. trackPositionLabel: h(d),
  2612. progressPosition: d / c * 100
  2613. });
  2614. this.seekAudio(d)
  2615. },
  2616. callSeek: function(a) {
  2617. var b = this.getProgressBarWidth();
  2618. var c = this.getAudioDuration();
  2619. var d = i(a, b, c);
  2620. this.seekAudio(d)
  2621. },
  2622. buildVolumeScale: function() {
  2623. var a = 5,
  2624. d = this.props.styleId,
  2625. e = this.state.volumeBars;
  2626. return c.times(a, function(a) {
  2627. return b.DOM.li({
  2628. className: a < e ? d + "_on" : d + "_off",
  2629. onClick: this.setNonPersistentVolume,
  2630. "data-index": a + 1
  2631. }, b.DOM.div({
  2632. className: d + "_colorBlock"
  2633. }), b.DOM.div({
  2634. className: d + "_colorBlank"
  2635. }))
  2636. }, this)
  2637. },
  2638. callToggleMute: function() {
  2639. j(this, this.state.$isMuted);
  2640. if (this.state.$isMuted === "unmuted") {
  2641. this.setState({
  2642. $isMuted: "muted"
  2643. })
  2644. } else {
  2645. this.setState({
  2646. $isMuted: "unmuted"
  2647. })
  2648. }
  2649. },
  2650. getTargetIndex: function(a) {
  2651. return a.getAttribute("data-index")
  2652. },
  2653. setNonPersistentVolume: function(a) {
  2654. var b = this.getTargetIndex(a.currentTarget);
  2655. this.setState({
  2656. volumeBars: b
  2657. });
  2658. this.setVolume(g(b))
  2659. },
  2660. updateComponentHeight: function(a) {
  2661. return this.getSkinExports(a + "Height")[a + "Height"]
  2662. },
  2663. getSkinProperties: function() {
  2664. this.autoPlay = this.props.compProp.autoplay;
  2665. this.updateAudioObject();
  2666. return {
  2667. "": {
  2668. style: {
  2669. height: this.updateComponentHeight(this.getDeviceState())
  2670. }
  2671. },
  2672. sep: {
  2673. children: " - "
  2674. },
  2675. sep2: {
  2676. children: " / "
  2677. },
  2678. artistLabel: {
  2679. children: this.props.compData.artist
  2680. },
  2681. trackLabel: {
  2682. children: this.props.compData.track
  2683. },
  2684. playBtn: {
  2685. onClick: this.initiatePlay
  2686. },
  2687. pauseBtn: {
  2688. onClick: this.initiatePause
  2689. },
  2690. repeatBtn: {
  2691. onClick: this.initiatePlay
  2692. },
  2693. bar: {
  2694. onClick: this.callSeek
  2695. },
  2696. slider: {
  2697. onClick: this.callSeek,
  2698. style: {
  2699. width: this.state.progressPosition + "%"
  2700. }
  2701. },
  2702. handle: {
  2703. onDrag: this.movingProgressbarHandle,
  2704. onDragEnd: this.stoppedMovingProgressbarHandle,
  2705. style: {
  2706. cursor: "pointer",
  2707. left: this.state.progressPosition + "%"
  2708. },
  2709. draggable: true
  2710. },
  2711. volumeBtn: {
  2712. onClick: this.callToggleMute
  2713. },
  2714. volumeScale: {
  2715. children: this.buildVolumeScale()
  2716. },
  2717. trackDuration: {
  2718. children: this.state.trackDuration
  2719. },
  2720. trackPosition: {
  2721. children: this.state.trackPositionLabel
  2722. }
  2723. }
  2724. }
  2725. }
  2726. });
  2727. define("components/components/siteBackground/siteBackground", ["lodash", "core", "utils", "backgroundCommon", "experiment"], function(a, b, c, d, e) {
  2728. "use strict";
  2729. var f = "100%";
  2730. var g = "100%";
  2731. var h = 0;
  2732. var i = "120%";
  2733. var j = 0;
  2734. var k = c.balataConsts;
  2735.  
  2736. function l(b, c) {
  2737. var d = b.scrollType;
  2738. var e = a.get(b, ["mediaRef", "type"]);
  2739. var f = e === "Image" || e === "WixVideo";
  2740. if (!c.browserFlags().fixedSiteBackground || c.isMobileView() || !f) {
  2741. d = "scroll"
  2742. }
  2743. return d
  2744. }
  2745.  
  2746. function m(a, b) {
  2747. var c = b;
  2748. if (a.isMobileView() || a.mobile.isAndroidOldBrowser()) {
  2749. c = "scroll"
  2750. } else if (!a.browserFlags().fixedSiteBackground) {
  2751. c = ""
  2752. }
  2753. return c
  2754. }
  2755.  
  2756. function n(a, b) {
  2757. var c = "absolute";
  2758. if (!a.isMobileDevice() && b === "fixed" || b === "parallax") {
  2759. c = "fixed"
  2760. }
  2761. return c
  2762. }
  2763.  
  2764. function o(a, b, d) {
  2765. var e = m(a, l(b, a));
  2766. var h = n(a, e);
  2767. var i = {
  2768. top: 0,
  2769. height: g,
  2770. width: f,
  2771. backgroundColor: c.colorParser.getColor(a.getColorsMap(), b.color),
  2772. display: d ? "none" : "",
  2773. position: h
  2774. };
  2775. return i
  2776. }
  2777.  
  2778. function p(a) {
  2779. var b = g;
  2780. if (a === "parallax") {
  2781. b = i
  2782. }
  2783. return b
  2784. }
  2785.  
  2786. function q(a) {
  2787. var b = h;
  2788. if (a === "parallax") {
  2789. b = j
  2790. }
  2791. return b
  2792. }
  2793.  
  2794. function r(b, c, d, e) {
  2795. var g = a.isPlainObject(c.mediaRef) ? c.mediaRef : b.getDataByQuery(c.mediaRef, e);
  2796. var h = {
  2797. position: "absolute",
  2798. top: q(l(c, b)),
  2799. height: p(l(c, b)),
  2800. width: f,
  2801. opacity: g && g.opacity
  2802. };
  2803. return h
  2804. }
  2805.  
  2806. function s() {
  2807. return [{
  2808. action: "bgScrub",
  2809. name: "SiteBackgroundParallax",
  2810. duration: 1,
  2811. delay: 0
  2812. }]
  2813. }
  2814.  
  2815. function t(b, c, d, e, f) {
  2816. var g = c.mediaRef || {};
  2817. var h = e.mediaRef || {};
  2818. var i = !c.mediaRef && !e.mediaRef;
  2819. var j = i || g.type === h.type;
  2820. var k = g.type === "WixVideo" && j;
  2821. var l = ["mediaRef", "imageOverlay"];
  2822. var m = ["type", "alignType", "fittingType", "scrollType", "colorOverlay", "colorOverlayOpacity", "color", "videoId", "uri", "opacity"];
  2823. if (k) {
  2824. m = a.without(m, "color")
  2825. } else if (i) {
  2826. m = ["color"]
  2827. }
  2828. return j && u(b, c, d, e, f, l, m)
  2829. }
  2830.  
  2831. function u(b, c, d, e, f, g, h) {
  2832. var i = a.every(h, function(a) {
  2833. return (c && c[a]) === (e && e[a])
  2834. });
  2835. i = i && a.every(g, function(a) {
  2836. return c ? u(b, c[a], d, e[a], f, g, h) : true
  2837. });
  2838. return i
  2839. }
  2840.  
  2841. function v(b, c, d) {
  2842. var e = this.getBgData(b);
  2843. var f = e.mediaRef;
  2844. if (f && f.type === "WixVideo") {
  2845. var g = a.cloneDeep(e);
  2846. g.id = c;
  2847. return d(g, "wysiwyg.viewer.components.videoBackground", c, {
  2848. compData: f,
  2849. structureComponentId: "siteBackground"
  2850. })
  2851. }
  2852. return null
  2853. }
  2854.  
  2855. function w(a, b, d) {
  2856. var e = b.colorOverlay ? c.colorParser.getColor(a.getColorsMap(), b.colorOverlay, b.colorOverlayOpacity) : null;
  2857. var h = x(a, b.imageOverlay);
  2858. var i = m(a, l(b, a));
  2859. return {
  2860. position: "absolute",
  2861. top: 0,
  2862. width: f,
  2863. height: g,
  2864. backgroundImage: h,
  2865. backgroundColor: e,
  2866. backgroundAttachment: d ? "" : i
  2867. }
  2868. }
  2869.  
  2870. function x(a, b) {
  2871. if (!b) {
  2872. return null
  2873. }
  2874. return "url(" + c.urlUtils.joinURL(a.getStaticMediaUrl(), b.uri) + ")"
  2875. }
  2876. return {
  2877. displayName: "SiteBackground",
  2878. mixins: [b.compMixins.skinBasedComp, b.compMixins.animationsMixin, d.mixins.backgroundDetectionMixin],
  2879. isCurrentBgVideo: false,
  2880. currentId: null,
  2881. previousScroll: null,
  2882. getInitialState: function() {
  2883. this.actionsAspect = this.props.siteAPI.getSiteAspect("actionsAspect");
  2884. this.currentId = this.props.currentUrlPageId;
  2885. this.size = {};
  2886. return {
  2887. visibleBgPageId: this.props.currentUrlPageId,
  2888. previousVisibleBgPageId: "",
  2889. resetAttachment: false,
  2890. hidePrevious: false
  2891. }
  2892. },
  2893. getBgData: function(b) {
  2894. b = b || this.state.visibleBgPageId;
  2895. var c = this.props.siteData.getDataByQuery(b, b);
  2896. if (e.isOpen("sv_platform1")) {
  2897. c = this.props.siteAPI.getRuntimeDal().getCompData(b) || this.props.siteData.getDataByQuery(b, b)
  2898. }
  2899. if (a.isEmpty(c)) {
  2900. return {}
  2901. }
  2902. var d = this.props.siteData.isMobileView() ? "mobile" : "desktop";
  2903. return c.pageBackgrounds[d].ref || {}
  2904. },
  2905. callforBackgroundChange: function(a) {
  2906. var b = {
  2907. onComplete: function() {
  2908. if (a !== this.state.visibleBgPageId) {
  2909. if (this.refs.previousVideo && this.refs.previousVideo.kill) {
  2910. this.refs.previousVideo.kill()
  2911. }
  2912. this.setState({
  2913. hidePrevious: true,
  2914. previousVisibleBgPageId: "",
  2915. resetAttachment: false
  2916. })
  2917. }
  2918. }.bind(this)
  2919. };
  2920. this.actionsAspect.registerNextBGPageTransition(this, "previous", "current", b);
  2921. this.setState({
  2922. visibleBgPageId: this.currentId,
  2923. previousVisibleBgPageId: a,
  2924. resetAttachment: true,
  2925. hidePrevious: false
  2926. })
  2927. },
  2928. componentWillReceiveProps: function(a) {
  2929. var b = this.state.visibleBgPageId;
  2930. this.currentId = a.currentUrlPageId;
  2931. if (this.currentId !== b) {
  2932. var c = this.getBgData(b);
  2933. var d = this.getBgData(this.currentId);
  2934. if (!t(this.props.siteData, d, this.currentId, c, b)) {
  2935. this.callforBackgroundChange(b)
  2936. } else {
  2937. if (this.refs.previousVideo && this.refs.previousVideo.kill) {
  2938. this.refs.previousVideo.kill()
  2939. }
  2940. this.setState({
  2941. previousVisibleBgPageId: ""
  2942. })
  2943. }
  2944. }
  2945. },
  2946. isVideo: function() {
  2947. return this.isCurrentBgVideo
  2948. },
  2949. handleParallaxBehavior: function(a) {
  2950. var b = l(a, this.props.siteData);
  2951. var c = this.previousScroll === "parallax" || b === "parallax";
  2952. if (c) {
  2953. this.previousScroll = b;
  2954. if (b === "parallax") {
  2955. this.actionsAspect.registerBehaviors("currentImage", "siteBackground", s())
  2956. } else {
  2957. this.actionsAspect.unRegisterBehaviors("currentImage", s())
  2958. }
  2959. }
  2960. },
  2961. getClasses: function() {
  2962. var a = "";
  2963. return a
  2964. },
  2965. getSkinProperties: function() {
  2966. var a = this.state.visibleBgPageId;
  2967. var b = this.state.previousVisibleBgPageId;
  2968. var c = this.state.resetAttachment;
  2969. var d = null;
  2970. var e = !this.props.siteData.isTouchDevice();
  2971. var f, g;
  2972. if (b) {
  2973. d = this.getBgData(b);
  2974. if (e) {
  2975. f = v.call(this, b, "previousVideo", this.createChildComponent)
  2976. }
  2977. }
  2978. var h = this.getBgData(a);
  2979. if (e) {
  2980. g = v.call(this, this.currentId, "currentVideo", this.createChildComponent)
  2981. }
  2982. this.isCurrentBgVideo = !!g;
  2983. this.handleParallaxBehavior(h);
  2984. var i = this.props.id;
  2985. var j = {
  2986. "": {
  2987. id: i,
  2988. className: this.getClasses()
  2989. },
  2990. current: {
  2991. key: a,
  2992. id: i + "_current_" + a,
  2993. style: o(this.props.siteData, h, false)
  2994. },
  2995. currentImage: {
  2996. key: "background_currentImage_" + l(h, this.props.siteData),
  2997. id: i + "_currentImage_" + a,
  2998. style: r(this.props.siteData, h, c, a),
  2999. "data-type": k.BG_IMAGE
  3000. },
  3001. currentVideo: g,
  3002. currentOverlay: {
  3003. id: i + "_currentOverlay_" + a,
  3004. style: w(this.props.siteData, h, c, a)
  3005. },
  3006. previous: {
  3007. key: b || "noPrev",
  3008. id: i + "_previous_" + b,
  3009. style: d ? o(this.props.siteData, d, this.state.hidePrevious) : {}
  3010. },
  3011. previousImage: {
  3012. id: i + "_previousImage_" + b,
  3013. style: d ? r(this.props.siteData, d, c, b) : {}
  3014. },
  3015. previousVideo: f,
  3016. previousOverlay: {
  3017. id: i + "_previousOverlay_" + b,
  3018. style: d ? w(this.props.siteData, d, c, b) : {}
  3019. }
  3020. };
  3021. return j
  3022. }
  3023. }
  3024. });
  3025. define("components/components/videoBackground/videoBackground", ["lodash", "core", "utils", "backgroundCommon"], function(a, b, c, d) {
  3026. "use strict";
  3027.  
  3028. function e(b, d, e) {
  3029. var f = {};
  3030. if (!d) {
  3031. return f
  3032. }
  3033. a.forEach(d.formats, function(a) {
  3034. f[a] = c.urlUtils.joinURL(e.getStaticVideoUrl(), b.videoId, d.quality, a, "file." + a)
  3035. });
  3036. return f
  3037. }
  3038.  
  3039. function f(a) {
  3040. return {
  3041. loop: a.loop ? "loop" : "",
  3042. muted: a.mute ? "muted" : "",
  3043. preload: a.preload || "auto"
  3044. }
  3045. }
  3046. return {
  3047. displayName: "VideoBackground",
  3048. mixins: [b.compMixins.skinBasedComp, d.mixins.bgVideoMixin],
  3049. componentWillReceiveProps: function(a) {
  3050. if (a.refInParent === "previousVideo") {
  3051. this.videoBackgroundAspect.unregisterVideo(this.props.refInParent)
  3052. }
  3053. },
  3054. getDefaultSkinName: function() {
  3055. return "wysiwyg.viewer.skins.videoBackgroundSkin"
  3056. },
  3057. getSkinProperties: function() {
  3058. var a;
  3059. var b = {};
  3060. var c = {};
  3061. var d;
  3062. if (this.state.active) {
  3063. a = this.getVideoData();
  3064. d = this.state.videoQuality;
  3065. b = e(a, d, this.props.siteData);
  3066. c = f(a)
  3067. }
  3068. var g = {
  3069. "": {
  3070. "data-quality": d && d.quality,
  3071. style: {
  3072. position: "relative",
  3073. top: 0,
  3074. left: 0
  3075. }
  3076. },
  3077. video: {
  3078. loop: c.loop,
  3079. autoPlay: c.autoplay,
  3080. muted: c.muted,
  3081. preload: c.preload,
  3082. width: "100%",
  3083. height: "100%",
  3084. style: {
  3085. visibility: "hidden"
  3086. }
  3087. },
  3088. mp4: {
  3089. src: b.mp4 || "",
  3090. type: "video/mp4"
  3091. },
  3092. webm: {
  3093. src: b.webm || "",
  3094. type: "video/webm"
  3095. }
  3096. };
  3097. return g
  3098. }
  3099. }
  3100. });
  3101. define("components/components/inputWithValidation/inputWithValidation", ["core", "lodash", "react", "santaProps"], function(a, b, c, d) {
  3102. "use strict";
  3103. var e = a.compMixins;
  3104.  
  3105. function f() {
  3106. var a = this.props.validators || [];
  3107. var c = this.state.value;
  3108. var d = "";
  3109. b.forEach(a, function(a) {
  3110. if (d) {
  3111. return false
  3112. }
  3113. d = a(c)
  3114. });
  3115. this.setState({
  3116. error: d
  3117. });
  3118. this.hasError = !!d;
  3119. return d
  3120. }
  3121.  
  3122. function g(a, b) {
  3123. var c;
  3124. if (this.state.error) {
  3125. c = {
  3126. className: a,
  3127. children: this.state.error
  3128. }
  3129. } else if (this.props.asyncErrorMessage) {
  3130. c = {
  3131. className: a,
  3132. children: this.props.asyncErrorMessage
  3133. }
  3134. } else {
  3135. c = b
  3136. }
  3137. return c
  3138. }
  3139. return {
  3140. displayName: "InputWithValidation",
  3141. mixins: [e.skinBasedComp],
  3142. propTypes: {
  3143. isMobileView: d.Types.isMobileView.isRequired,
  3144. validators: c.PropTypes.array,
  3145. asyncErrorMessage: c.PropTypes.string,
  3146. defaultValue: c.PropTypes.string,
  3147. styleId: c.PropTypes.string,
  3148. onChange: c.PropTypes.func,
  3149. lazyValidation: c.PropTypes.bool,
  3150. label: c.PropTypes.string,
  3151. placeholder: c.PropTypes.string,
  3152. noPlaceHolder: c.PropTypes.bool,
  3153. type: c.PropTypes.string
  3154. },
  3155. statics: {
  3156. useSantaTypes: true
  3157. },
  3158. getInitialState: function() {
  3159. return {
  3160. value: this.props.defaultValue || "",
  3161. error: false
  3162. }
  3163. },
  3164. onChange: function(a) {
  3165. a.persist();
  3166. this.setState({
  3167. value: a.target.value
  3168. });
  3169. if (this.props.onChange) {
  3170. this.props.onChange(a)
  3171. }
  3172. this.debouncedOnChange(a);
  3173. if (this.props.lazyValidation) {
  3174. this.setState({
  3175. error: false
  3176. })
  3177. }
  3178. },
  3179. debouncedOnChange: b.debounce(function() {
  3180. if (!this.props.lazyValidation) {
  3181. this.validate()
  3182. }
  3183. }, 200),
  3184. getValue: function() {
  3185. return this.state.value
  3186. },
  3187. getSkinProperties: function() {
  3188. var a = this.props.styleId + "_error";
  3189. var c = a;
  3190. var d = this.state.error || this.props.asyncErrorMessage ? a : "";
  3191. var e = this.props.styleId + "_new";
  3192. c += " " + e;
  3193. d += " " + e;
  3194. var f = {
  3195. onFocus: this.onFocus,
  3196. onBlur: this.onBlur
  3197. };
  3198. var h = {
  3199. className: e
  3200. };
  3201. if (this.props.isMobileView) {
  3202. d += " " + this.props.styleId + "_mobile";
  3203. c += " " + this.props.styleId + "_mobile"
  3204. }
  3205. return {
  3206. label: this.props.label ? {
  3207. children: this.props.label
  3208. } : {},
  3209. input: b.merge({
  3210. className: d,
  3211. value: this.state.value,
  3212. placeholder: this.state.noPlaceHolder ? "" : this.props.placeholder,
  3213. onChange: this.onChange,
  3214. type: this.props.type || "text"
  3215. }, f),
  3216. errorMessage: g.bind(this)(c, h)
  3217. }
  3218. },
  3219. isValid: function() {
  3220. return !this.hasError
  3221. },
  3222. validate: function() {
  3223. return !f.apply(this)
  3224. },
  3225. onFocus: function() {
  3226. this.setState({
  3227. noPlaceHolder: true
  3228. })
  3229. },
  3230. onBlur: function() {
  3231. this.setState({
  3232. noPlaceHolder: false
  3233. })
  3234. }
  3235. }
  3236. });
  3237. define("components/components/flashComponent/flashComponent", ["lodash", "reactDOM", "core", "utils", "imageClientApi", "swfobject"], function(a, b, c, d, e) {
  3238. "use strict";
  3239. var f = c.compMixins;
  3240. var g = d.linkRenderer;
  3241.  
  3242. function h(a, b, c, d) {
  3243. var e = !!a.link;
  3244. var f = e ? g.renderLink(a.link, b, d) : {};
  3245. f.style = {
  3246. textAlign: c.align
  3247. };
  3248. return f
  3249. }
  3250.  
  3251. function i(a, b, c, f, g) {
  3252. var h = {
  3253. width: b,
  3254. height: c
  3255. };
  3256. var i = {
  3257. width: f,
  3258. height: g
  3259. };
  3260. if (a === "fit") {
  3261. return d.imageUtils.getContainerSize(h, i, e.fittingTypes.LEGACY_FIT_WIDTH)
  3262. } else if (a === "stretch") {
  3263. return d.imageUtils.getContainerSize(h, i, e.fittingTypes.STRETCH)
  3264. }
  3265. return {
  3266. width: f,
  3267. height: g
  3268. }
  3269. }
  3270.  
  3271. function j(a, b) {
  3272. return this.createChildComponent(a, "core.components.Image", "noFlashImg", {
  3273. id: this.props.id + "noFlashImg",
  3274. ref: "noFlashImg",
  3275. imageData: a,
  3276. containerWidth: b.width,
  3277. containerHeight: b.height,
  3278. displayMode: e.fittingTypes.LEGACY_FULL,
  3279. usePreloader: true
  3280. })
  3281. }
  3282.  
  3283. function k() {
  3284. window.swfobject.embedSWF(m(this.props.compData, this.props.siteData), this.props.id + "flashContainer", "100%", "100%", "10.0.0", "playerProductInstall.swf", null, n(), o(), l.bind(this));
  3285. this.embeddedUri = this.props.compData.uri
  3286. }
  3287.  
  3288. function l(a) {
  3289. if (a.success) {
  3290. b.findDOMNode(this.refs.noFlashImgContainer).style.display = "none"
  3291. }
  3292. }
  3293.  
  3294. function m(a, b) {
  3295. if (a.uri) {
  3296. return b.serviceTopology.staticMediaUrl + "/" + a.uri
  3297. }
  3298. return ""
  3299. }
  3300.  
  3301. function n() {
  3302. return {
  3303. quality: "high",
  3304. bgcolor: "#FAFAFA",
  3305. allowscriptaccess: "never",
  3306. allowfullscreen: "true",
  3307. wMode: "transparent",
  3308. scale: "exactFit",
  3309. flashVars: "",
  3310. play: "true",
  3311. autoplay: "true"
  3312. }
  3313. }
  3314.  
  3315. function o() {
  3316. return {
  3317. align: "middle"
  3318. }
  3319. }
  3320. return {
  3321. displayName: "FlashComponent",
  3322. mixins: [f.skinBasedComp],
  3323. getInitialState: function() {
  3324. this.embeddedUri = null;
  3325. var a = !!this.props.compData.link;
  3326. return {
  3327. $linkableComponent: a ? "link" : "noLink"
  3328. }
  3329. },
  3330. componentDidMount: function() {
  3331. k.call(this)
  3332. },
  3333. componentDidUpdate: function() {
  3334. if (this.props.compData.uri !== this.embeddedUri) {
  3335. k.call(this)
  3336. }
  3337. },
  3338. getSkinProperties: function() {
  3339. var a = this.props.compData.placeHolderImage;
  3340. var b = this.props.compProp.displayMode;
  3341. var c = this.props.compData.uri ? this.props.compData.width : a.width;
  3342. var d = this.props.compData.uri ? this.props.compData.height : a.height;
  3343. var e = i(b, this.props.style.width, this.props.style.height, c, d);
  3344. return {
  3345. "": {
  3346. style: {
  3347. width: e.width,
  3348. height: e.height
  3349. }
  3350. },
  3351. link: h(this.props.compData, this.props.siteData, this.props.compProp, this.props.rootNavigationInfo),
  3352. noFlashImg: j.call(this, a, e)
  3353. }
  3354. }
  3355. }
  3356. });
  3357. define("components/components/wixAppsImageButton/wixAppsImageButton", ["core", "react"], function(a, b) {
  3358. "use strict";
  3359. var c = a.compMixins;
  3360. var d = {
  3361. Default: 0,
  3362. Hover: 1,
  3363. Click: 2
  3364. };
  3365. return {
  3366. displayName: "ImageButton",
  3367. mixins: [c.skinBasedComp],
  3368. getInitialState: function() {
  3369. return {
  3370. currentPositionX: this.props.compProp.startPositionX,
  3371. currentPositionY: this.props.compProp.startPositionY
  3372. }
  3373. },
  3374. setSpriteState: function(a) {
  3375. var b = this.props.compProp;
  3376. var c = this.props.compData;
  3377. switch (b.spriteDirection) {
  3378. case "none":
  3379. break;
  3380. case "horizontal":
  3381. this.setState({
  3382. currentPositionX: b.startPositionX - a * c.width
  3383. });
  3384. break;
  3385. default:
  3386. this.setState({
  3387. currentPositionY: b.startPositionY - a * c.height
  3388. });
  3389. break
  3390. }
  3391. },
  3392. onMouseOver: function() {
  3393. this.setSpriteState(d.Hover);
  3394. if (this.props.onMouseOver) {
  3395. this.props.onMouseOver()
  3396. }
  3397. },
  3398. onMouseDown: function() {
  3399. this.setSpriteState(d.Click)
  3400. },
  3401. onMouseUp: function() {
  3402. this.setSpriteState(d.Hover)
  3403. },
  3404. onMouseOut: function() {
  3405. this.setSpriteState(d.Default);
  3406. if (this.props.onMouseOut) {
  3407. this.props.onMouseOut()
  3408. }
  3409. },
  3410. getSpriteProperties: function(a) {
  3411. var c = {
  3412. backgroundImage: "url(" + a.url + ")",
  3413. backgroundRepeat: "no-repeat",
  3414. backgroundPosition: this.state.currentPositionX + "px " + this.state.currentPositionY + "px",
  3415. width: a.width,
  3416. height: a.height,
  3417. display: "inline-block"
  3418. };
  3419. return {
  3420. "": {
  3421. style: {
  3422. width: a.width,
  3423. height: a.height
  3424. },
  3425. children: b.DOM.span({
  3426. style: c
  3427. }),
  3428. onMouseOver: this.onMouseOver,
  3429. onMouseOut: this.onMouseOut,
  3430. onMouseDown: this.onMouseDown,
  3431. onMouseUp: this.onMouseUp
  3432. }
  3433. }
  3434. },
  3435. getImageProperties: function(a) {
  3436. return {
  3437. "": {
  3438. style: {
  3439. width: a.width,
  3440. height: a.height
  3441. },
  3442. children: b.DOM.img({
  3443. src: a.url,
  3444. width: a.width,
  3445. height: a.height,
  3446. title: a.title
  3447. }),
  3448. onMouseOver: this.props.onMouseOver,
  3449. onMouseOut: this.props.onMouseOut
  3450. }
  3451. }
  3452. },
  3453. getSkinProperties: function() {
  3454. var a = this.props.compData;
  3455. return this.props.compProp.isSprite ? this.getSpriteProperties(a) : this.getImageProperties(a)
  3456. }
  3457. }
  3458. });
  3459. define("components/components/messageView/messageView", ["core"], function(a) {
  3460. "use strict";
  3461. var b = a.compMixins;
  3462.  
  3463. function c() {
  3464. var a = {
  3465. label: "OK",
  3466. id: "ok"
  3467. };
  3468. var b = {
  3469. align: "center"
  3470. };
  3471. var c = "okButton";
  3472. return this.createChildComponent(a, "wysiwyg.viewer.components.SiteButton", c, {
  3473. skinPart: c,
  3474. compProp: b,
  3475. onClick: this.props.compProp.onCloseCallback
  3476. })
  3477. }
  3478. return {
  3479. displayName: "MessageView",
  3480. mixins: [b.skinBasedComp],
  3481. getSkinProperties: function() {
  3482. return {
  3483. "": {
  3484. style: {
  3485. display: "block",
  3486. position: "absolute"
  3487. }
  3488. },
  3489. blockingLayer: {},
  3490. dialog: {},
  3491. title: {
  3492. children: this.props.compProp.title
  3493. },
  3494. description: {
  3495. dangerouslySetInnerHTML: {
  3496. __html: this.props.compProp.description || ""
  3497. }
  3498. },
  3499. okButton: c.call(this)
  3500. }
  3501. }
  3502. }
  3503. });
  3504. define("components/components/bgImageStrip/bgImageStrip", ["core", "utils"], function(a, b) {
  3505. "use strict";
  3506. return {
  3507. displayName: "BgImageStrip",
  3508. mixins: [a.compMixins.skinBasedComp],
  3509. getSkinProperties: function() {
  3510. return {
  3511. bg: {
  3512. style: {},
  3513. "data-type": b.balataConsts.BG_IMAGE
  3514. }
  3515. }
  3516. }
  3517. }
  3518. });
  3519. define("components/components/container/page", ["lodash", "balataCommon", "containerCommon"], function(a, b, c) {
  3520. "use strict";
  3521. var d = c.mixins.containerMixin;
  3522.  
  3523. function e(a) {
  3524. return a.props.siteData.isMobileView()
  3525. }
  3526.  
  3527. function f(a) {
  3528. return a.props.siteData.isMobileDevice()
  3529. }
  3530.  
  3531. function g(a) {
  3532. return e(a) ? "mobile" : "desktop"
  3533. }
  3534.  
  3535. function h(a) {
  3536. return a.props.compProp[g(a)].popup
  3537. }
  3538.  
  3539. function i(b) {
  3540. return a.get(b.props.compData, ["pageBackgrounds", g(b), "ref"])
  3541. }
  3542.  
  3543. function j(a) {
  3544. a.props.siteAPI.closePopupPage()
  3545. }
  3546.  
  3547. function k(c, d, e) {
  3548. var f = {
  3549. onClick: e ? a.partial(j, c) : a.noop,
  3550. style: {
  3551. position: "fixed",
  3552. pointerEvents: "auto"
  3553. },
  3554. compDesign: {
  3555. background: d
  3556. }
  3557. };
  3558. return b.mubalat.createChildBalata(c, f)
  3559. }
  3560.  
  3561. function l(a) {
  3562. var b = h(a);
  3563. return k(a, i(a), b.closeOnOverlayClick)
  3564. }
  3565. return {
  3566. displayName: "WixPage",
  3567. mixins: [d],
  3568. getSkinProperties: function() {
  3569. var a = {
  3570. inlineContent: {
  3571. children: this.props.children
  3572. }
  3573. };
  3574. if (this.props.compData.isPopup) {
  3575. a[""] = {
  3576. style: {
  3577. position: "relative"
  3578. }
  3579. };
  3580. a.bg = l(this);
  3581. a.inlineContent.style = {
  3582. pointerEvents: "none"
  3583. }
  3584. }
  3585. return a
  3586. },
  3587. componentDidMount: function() {
  3588. if (this.props.compData.isPopup && e(this) && f(this)) {
  3589. this.props.siteAPI.getSiteAspect("siteScrollingBlocker").setSiteScrollingBlocked(this, true)
  3590. }
  3591. },
  3592. componentWillUnmount: function() {
  3593. if (this.props.compData.isPopup && e(this) && f(this)) {
  3594. this.props.siteAPI.getSiteAspect("siteScrollingBlocker").setSiteScrollingBlocked(this, false)
  3595. }
  3596. }
  3597. }
  3598. });
  3599. define("components/components/container/popupContainer", ["core", "balataCommon"], function(a, b) {
  3600. "use strict";
  3601. var c = a.compMixins;
  3602. return {
  3603. displayName: "PopupContainer",
  3604. mixins: [c.skinBasedComp],
  3605. forceRedrawOnAnimationEnded: true,
  3606. getDefaultSkinName: function() {
  3607. return "wysiwyg.viewer.skins.stripContainer.DefaultStripContainer"
  3608. },
  3609. getBackground: function() {
  3610. return b.mubalat.createChildBalata(this, {
  3611. compData: {
  3612. id: this.props.compDesign.id
  3613. }
  3614. })
  3615. },
  3616. componentWillMount: function() {
  3617. var a = this.props.siteAPI.getSiteAspect("windowKeyboardEvent");
  3618. if (a) {
  3619. a.registerToEscapeKey(this)
  3620. }
  3621. },
  3622. componentWillUnmount: function() {
  3623. var a = this.props.siteAPI.getSiteAspect("windowKeyboardEvent");
  3624. if (a) {
  3625. a.unRegisterKeys(this)
  3626. }
  3627. this.forceRedrawOnAnimationEnded = false
  3628. },
  3629. onEscapeKey: function() {
  3630. this.props.siteAPI.closePopupPage()
  3631. },
  3632. getSkinProperties: function() {
  3633. return {
  3634. "": {
  3635. style: {
  3636. pointerEvents: "auto"
  3637. }
  3638. },
  3639. background: this.getBackground(),
  3640. inlineContent: {
  3641. children: this.props.children
  3642. }
  3643. }
  3644. }
  3645. }
  3646. });
  3647. define("components/components/container/stripContainer", ["core", "balataCommon", "backgroundCommon"], function(a, b, c) {
  3648. "use strict";
  3649. var d = a.compMixins;
  3650. return {
  3651. displayName: "StripContainer",
  3652. mixins: [d.skinBasedComp, c.mixins.backgroundDetectionMixin],
  3653. getDefaultSkinName: function() {
  3654. return "wysiwyg.viewer.skins.stripContainer.DefaultStripContainer"
  3655. },
  3656. getBackground: function() {
  3657. return b.mubalat.createChildBalata(this)
  3658. },
  3659. getSkinProperties: function() {
  3660. return {
  3661. "": {
  3662. onClick: this.props.onClick
  3663. },
  3664. background: this.getBackground(),
  3665. inlineContent: {
  3666. children: this.props.children
  3667. }
  3668. }
  3669. }
  3670. }
  3671. });
  3672. define("components/components/container/stripColumnsContainer", ["react", "lodash", "core", "balataCommon", "backgroundCommon"], function(a, b, c, d, e) {
  3673. "use strict";
  3674. var f = c.compMixins;
  3675.  
  3676. function g() {
  3677. var c = b.sum(a.Children.map(this.props.children, function(a) {
  3678. return a.props.structure.layout.width
  3679. }));
  3680. var d = a.Children.map(this.props.children, function(a) {
  3681. return Math.round(a.props.structure.layout.width / c * 100) / 100
  3682. });
  3683. var e = b.sum(d);
  3684. d[0] += 1 - e;
  3685. return d
  3686. }
  3687.  
  3688. function h() {
  3689. var b = this.props.compProp.rowMargin;
  3690. var c = a.Children.map(this.props.children, function(c) {
  3691. var d = {
  3692. position: "absolute",
  3693. top: b,
  3694. height: c.props.style.height,
  3695. left: 0,
  3696. width: 320
  3697. };
  3698. b += d.height + this.props.compProp.columnsMargin;
  3699. var e = {
  3700. position: "absolute",
  3701. overflow: "hidden",
  3702. width: 320,
  3703. left: 0,
  3704. top: 0,
  3705. bottom: 0
  3706. };
  3707. c = a.cloneElement(c, {
  3708. rootStyle: d,
  3709. bgStyle: e
  3710. });
  3711. return c
  3712. }, this);
  3713. var e = b - this.props.compProp.columnsMargin + this.props.compProp.rowMargin;
  3714. return {
  3715. "": {
  3716. style: {
  3717. height: e
  3718. }
  3719. },
  3720. background: d.mubalat.createChildBalata(this),
  3721. inlineContent: {
  3722. children: c
  3723. }
  3724. }
  3725. }
  3726. return {
  3727. displayName: "StripColumnsContainer",
  3728. mixins: [f.skinBasedComp, e.mixins.backgroundDetectionMixin],
  3729. componentDidLayout: function() {
  3730. var a = this.getScrollBarWidth();
  3731. var b = this.getScreenWidth();
  3732. var c = this.lastScrollBarWidth !== a;
  3733. var d = this.lastScreenWidth !== b;
  3734. var e = this.props.siteData.isMobileView();
  3735. if (!e && (c || d)) {
  3736. this.lastScrollBarWidth = a;
  3737. this.lastScreenWidth = b;
  3738. this.registerReLayout();
  3739. this.forceUpdate()
  3740. }
  3741. },
  3742. getDefaultSkinName: function() {
  3743. return "wysiwyg.viewer.skins.stripContainer.DefaultStripContainer"
  3744. },
  3745. getDesktopBackground: function(a, b) {
  3746. return d.mubalat.createChildBalata(this, {
  3747. style: {
  3748. top: 0,
  3749. bottom: 0,
  3750. left: "calc(" + parseInt(b / 2, 10) + "px - (" + a + " / 2))",
  3751. right: "calc(" + parseInt(b / 2, 10) + "px + (" + a + " / 2))",
  3752. width: "calc(" + a + ")"
  3753. }
  3754. })
  3755. },
  3756. getScrollBarWidth: function() {
  3757. var a = this.props.siteData;
  3758. var c = a.measureMap;
  3759. var d = a.browser.firefox;
  3760. return d ? 0 : b.get(c, "innerWidth.screen", 0) - b.get(c, "clientWidth", 0)
  3761. },
  3762. getPageWidth: function() {
  3763. return this.props.siteData.getSiteWidth()
  3764. },
  3765. getScreenWidth: function() {
  3766. return this.props.siteData.getScreenWidth()
  3767. },
  3768. getSkinProperties: function() {
  3769. if (this.props.siteData.isMobileView()) {
  3770. return h.call(this)
  3771. }
  3772. var c = this.getPageWidth();
  3773. var d = this.getScreenWidth();
  3774. this.lastScreenWidth = d;
  3775. var e = g.call(this);
  3776. var f = e.length;
  3777. var i = this.props.compProp;
  3778. var j = c - i.columnsMargin * (f - 1) - i.frameMargin * 2;
  3779. var k = b.map(e, function(a) {
  3780. return Math.floor(j * a)
  3781. });
  3782. var l = b.reduce(e, function(a, b) {
  3783. a.push(a[a.length - 1] + b);
  3784. return a
  3785. }, [0]);
  3786. var m, n, o;
  3787. var p = this.getScrollBarWidth();
  3788. this.lastScrollBarWidth = p;
  3789. var q = d && d <= c;
  3790. if (i.fullWidth && !q) {
  3791. n = "(100vw - " + p + "px - " + i.siteMargin * 2 + "px)";
  3792. m = "(100vw - " + p + "px - " + (i.columnsMargin * (f - 1) + (i.siteMargin + i.frameMargin) * 2) + "px)";
  3793. o = "(" + c + "px - " + n + ") / 2 + " + i.frameMargin + "px + "
  3794. } else {
  3795. n = c + "px";
  3796. m = "(" + (c - (i.columnsMargin * (f - 1) + i.frameMargin * 2)) + "px)";
  3797. o = i.frameMargin + "px + "
  3798. }
  3799. var r = a.Children.map(this.props.children, function(b, c) {
  3800. var d = e[c];
  3801. var f = b.props.compProp.alignment / 100;
  3802. var g = {
  3803. position: "absolute",
  3804. left: "calc(" + m + " * " + (l[c] + d * f) + " + " + o + (c * i.columnsMargin - k[c] * f) + "px)",
  3805. width: k[c],
  3806. top: i.rowMargin,
  3807. height: b.props.style.height
  3808. };
  3809. var h = {
  3810. position: "absolute",
  3811. width: "calc(" + m + " * " + d + " + 1px)",
  3812. left: "calc((" + m + " * " + d + " - " + k[c] + "px) * " + -f + " - 1px)",
  3813. top: 0,
  3814. bottom: 0
  3815. };
  3816. var j = {
  3817. position: "absolute",
  3818. width: k[c],
  3819. top: 0,
  3820. bottom: 0,
  3821. left: "calc((100% - " + k[c] + "px) * " + f + ")"
  3822. };
  3823. b = a.cloneElement(b, {
  3824. rootStyle: g,
  3825. bgStyle: h,
  3826. inlineStyle: j
  3827. });
  3828. return b
  3829. }, this);
  3830. var s = {
  3831. background: this.getDesktopBackground(n, c),
  3832. inlineContent: {
  3833. children: r
  3834. }
  3835. };
  3836. s[""] = {};
  3837. return s
  3838. }
  3839. }
  3840. });
  3841. define("components/components/colorOption/colorOption", ["core", "lodash"], function(a, b) {
  3842. "use strict";
  3843. var c = a.compMixins;
  3844. return {
  3845. displayName: "ColorOption",
  3846. mixins: [c.optionInput],
  3847. getSkinProperties: function() {
  3848. var a = {
  3849. "": {
  3850. style: {
  3851. backgroundColor: this.props.compData.text
  3852. }
  3853. },
  3854. tooltip: this.createInfoTipChildComponent()
  3855. };
  3856. if (!this.props.compData.disabled) {
  3857. a[""] = b.merge(a[""], {
  3858. onClick: this.props.onClick,
  3859. onMouseEnter: this.onMouseEnter,
  3860. onMouseLeave: this.onMouseLeave
  3861. })
  3862. }
  3863. return a
  3864. }
  3865. }
  3866. });
  3867. define("components/components/mobileColorOption/mobileColorOption", ["core"], function(a) {
  3868. "use strict";
  3869. var b = a.compMixins;
  3870. return {
  3871. displayName: "MobileColorOption",
  3872. mixins: [b.optionInput],
  3873. getSkinProperties: function() {
  3874. var a = {
  3875. "": {
  3876. style: {
  3877. backgroundColor: this.props.compData.text
  3878. }
  3879. }
  3880. };
  3881. if (!this.props.compData.disabled) {
  3882. a[""].onClick = this.props.onClick;
  3883. a[""].style.cursor = "pointer"
  3884. }
  3885. return a
  3886. }
  3887. }
  3888. });
  3889. define("components/components/dropDownMenu/dropDownMenu", ["lodash", "reactDOM", "utils", "core", "zepto"], function(a, b, c, d, e) {
  3890. "use strict";
  3891. var f = d.compMixins;
  3892. var g = c.menuUtils;
  3893.  
  3894. function h(a) {
  3895. return !isNaN(parseFloat(a)) && isFinite(a)
  3896. }
  3897.  
  3898. function i(b) {
  3899. return a.filter(b, "isVisible")
  3900. }
  3901.  
  3902. function j(a, b, d) {
  3903. return a ? "100%" : c.style.unitize(b - d.menuBorderY - d.labelPad - d.ribbonExtra - d.ribbonEls - d.menuBtnBorder)
  3904. }
  3905.  
  3906. function k(b, c, d) {
  3907. var e = a.cloneDeep(b);
  3908. if (!c || !c.custom[d]) {
  3909. return e
  3910. }
  3911. var f = c.custom[d].isMoreShown;
  3912. var g = c.custom[d].realWidths;
  3913. if (!f) {
  3914. return e
  3915. }
  3916. var h = g.indexOf(0);
  3917. e = e.splice(h);
  3918. return e
  3919. }
  3920.  
  3921. function l(b, c, d, e, f, g, h, i, j, k) {
  3922. var l = d.concat("__more__");
  3923. var n = c.custom[b];
  3924. var o = n.realWidths;
  3925. var p = n.menuItemContainerExtraPixels;
  3926. var q = c.width[b];
  3927. var r = a.findIndex(l, function(a) {
  3928. return a === e
  3929. });
  3930. if (r >= 0 && o) {
  3931. var s = Math.abs(k.getSiteX());
  3932. var t = s + c.absoluteLeft[b];
  3933. var u = t + q;
  3934. var v = m(p, h, j, q, f, i, t, u, c.clientWidth);
  3935. return {
  3936. left: v.moreContainerLeft,
  3937. right: v.moreContainerRight,
  3938. bottom: n.needToOpenMenuUp ? g + "px" : "auto"
  3939. }
  3940. }
  3941. }
  3942.  
  3943. function m(a, c, d, e, f, g, h, i, j) {
  3944. var k = "0px";
  3945. var l = "auto";
  3946. var m = b.findDOMNode(g);
  3947. var n = g.refs.hitArea ? b.findDOMNode(g.refs.hitArea) : null;
  3948. var o = m.offsetLeft + (n ? n.offsetLeft : 0);
  3949. var p = n && n.offsetWidth || m.offsetWidth;
  3950. if (c === "left") {
  3951. if (f === "left") {
  3952. k = 0
  3953. } else {
  3954. k = o + a.left + "px"
  3955. }
  3956. } else if (c === "right") {
  3957. if (f === "right") {
  3958. l = 0
  3959. } else {
  3960. l = e - o - p - a.right + "px"
  3961. }
  3962. k = "auto"
  3963. } else if (f === "left") {
  3964. k = o + (p + a.left - d) / 2 + "px"
  3965. } else if (f === "right") {
  3966. k = "auto";
  3967. l = (p + a.right - (d + a.width)) / 2 + "px"
  3968. } else {
  3969. k = a.left + o + (p - (d + a.width)) / 2 + "px"
  3970. }
  3971. if (k !== "auto") {
  3972. var q = h + parseInt(k, 10);
  3973. k = q < 0 ? 0 : k
  3974. }
  3975. if (l !== "auto") {
  3976. var r = i - parseInt(l, 10);
  3977. l = r > j ? 0 : l
  3978. }
  3979. return {
  3980. moreContainerLeft: k,
  3981. moreContainerRight: l
  3982. }
  3983. }
  3984.  
  3985. function n(a, b) {
  3986. if (a.childElementCount > 0) {
  3987. var c = e(a.firstChild).find("p");
  3988. if (c) {
  3989. var d = parseInt(window.getComputedStyle(c[0]).lineHeight, 10);
  3990. return d + 15 + b.menuBorderY + b.labelPad + b.menuBtnBorder
  3991. }
  3992. }
  3993. return 0
  3994. }
  3995.  
  3996. function o(a, b, c, d, e, f) {
  3997. if (f === a.length - 1) {
  3998. if (a.length === 1) {
  3999. return "dropLonely"
  4000. }
  4001. if (b) {
  4002. return "bottom"
  4003. }
  4004. if (!c && d !== "right") {
  4005. return "center"
  4006. }
  4007. return e ? "left" : "right"
  4008. }
  4009. if (f === 0) {
  4010. if (b) {
  4011. return "top"
  4012. }
  4013. if (!c && d !== "left") {
  4014. return "center"
  4015. }
  4016. return e ? "right" : "left"
  4017. }
  4018. return b ? "dropCenter" : "center"
  4019. }
  4020.  
  4021. function p(b, d, e) {
  4022. var f = b.getCurrentUrlPageId();
  4023. var h = b.getCurrentPopupId();
  4024. var i = a.some(d, "link.pageId.id", h);
  4025. var j;
  4026. var k = {
  4027. AnchorLink: function(b) {
  4028. return (a.has(b.anchorDataId, "id") ? b.anchorDataId.id : b.anchorDataId) === j
  4029. },
  4030. PageLink: function(a) {
  4031. if (!j) {
  4032. if (a.pageId.isPopup) {
  4033. return a.pageId.id === h
  4034. } else if (!i) {
  4035. return a.pageId.id === f
  4036. }
  4037. }
  4038. return false
  4039. }
  4040. };
  4041. if (g.shouldHighlightAnchorInPage(b)) {
  4042. j = c.menuUtils.getActiveAnchorInPage(e, d, b)
  4043. }
  4044. return function(a) {
  4045. var b = a && k[a.type];
  4046. return b ? b(a) : false
  4047. }
  4048. }
  4049.  
  4050. function q(b, c, d, e, f, g, h) {
  4051. return a.map(c, function(a, i) {
  4052. var j = a.link;
  4053. var k = p(g, c, b);
  4054. return {
  4055. isContainer: Boolean(d),
  4056. isSelected: k(j),
  4057. positionInList: o(c, d, e, f, h, i)
  4058. }
  4059. })
  4060. }
  4061. return {
  4062. displayName: "DropDownMenu",
  4063. mixins: [f.skinBasedComp, f.timeoutsMixin, f.skinInfo],
  4064. getInitialState: function() {
  4065. this.shouldChildrenUpdate = false;
  4066. return {
  4067. hover: null,
  4068. hoverListPosition: null,
  4069. activeAnchor: null,
  4070. $dropAlign: this.props.compProp.alignButtons,
  4071. $mobile: this.props.siteData.isMobileDevice() || this.props.siteData.isMobileView() || this.props.siteData.isTabletDevice() ? "mobile" : "notMobile"
  4072. }
  4073. },
  4074. componentDidMount: function() {
  4075. if (g.shouldHighlightAnchorInPage(this.props.siteData)) {
  4076. var a = this.props.siteAPI;
  4077. a.getSiteAspect("anchorChangeEvent").registerToAnchorChange(this)
  4078. }
  4079. },
  4080. componentDidUpdate: function() {
  4081. var a = b.findDOMNode(this.refs.moreContainer);
  4082. var c = g.nonHiddenPageIdsFromMainMenu(this.props.siteData);
  4083. var d = c.indexOf(this.state.hover);
  4084. var f = this.props.siteData.measureMap;
  4085. if (h(this.state.hover) || this.state.hover === "__more__") {
  4086. if (!f || !f.custom[this.props.id]) {
  4087. return
  4088. }
  4089. var i = f.custom[this.props.id].realWidths;
  4090. if (!i) {
  4091. return
  4092. }
  4093. var j = e(a);
  4094. var k = j.children();
  4095. var m = k.find("p");
  4096. m.css({
  4097. "line-height": "100%"
  4098. });
  4099. k.css({
  4100. "min-width": "0px"
  4101. });
  4102. var o = this.refs[this.state.hover];
  4103. var p = o.refs.hitArea ? b.findDOMNode(o.refs.hitArea) : null;
  4104. var q = p ? p.offsetLeft : 0;
  4105. var r;
  4106. if (d !== -1) {
  4107. r = i[d]
  4108. } else {
  4109. r = i[i.length - 1]
  4110. }
  4111. r -= q;
  4112. var s = Math.max(a.offsetWidth, r);
  4113. var t = l(this.props.id, f, c, this.state.hover, this.state.hoverListPosition, this.props.style.height, this.props.compProp.alignButtons, o, s, this.props.siteData);
  4114. var u = n(a, this.getParamsFromSkins());
  4115. j.css({
  4116. left: t.left,
  4117. right: t.right
  4118. });
  4119. j.parent().css({
  4120. left: t.left,
  4121. right: t.right,
  4122. bottom: t.bottom
  4123. });
  4124. k.css({
  4125. "min-width": s + "px"
  4126. });
  4127. m.css({
  4128. "line-height": u + "px"
  4129. })
  4130. }
  4131. },
  4132. componentWillUnmount: function() {
  4133. if (g.shouldHighlightAnchorInPage(this.props.siteData)) {
  4134. this.props.siteAPI.getSiteAspect("anchorChangeEvent").unregisterToAnchorChange(this)
  4135. }
  4136. },
  4137. convertItemsToChildren: function(b, c, d, e, f) {
  4138. var g = i(b);
  4139. c = c || {};
  4140. c.style = c.style || {};
  4141. var h = q(this.props.siteAPI, g, e, this.props.compProp.stretchButtonsToMenuWidth, this.props.compProp.alignButtons, this.props.siteData, this.props.compProp.rtl);
  4142. return a.map(g, function(b, g) {
  4143. var i = (e ? this.state.hover : "") + (c.prefix || "") + g;
  4144. return this.createChildComponent(b, "core.components.MenuButton", "repeaterButton", a.merge({
  4145. isContainer: h[g].isContainer,
  4146. isSelected: h[g].isSelected,
  4147. positionInList: h[g].positionInList,
  4148. id: this.props.id + i,
  4149. ref: i,
  4150. key: b.id,
  4151. refInParent: i,
  4152. lineHeight: j(d, this.props.style.height, f),
  4153. mouseEnterHandler: this.mouseEnterHandler,
  4154. mouseLeaveHandler: this.mouseLeaveHandler,
  4155. isDropDownButton: e,
  4156. onMouseClick: this.onMouseClick,
  4157. menuBtnPageId: b.link && b.link.type === "PageLink" && b.link.pageId ? b.link.pageId.id : ""
  4158. }, c))
  4159. }, this)
  4160. },
  4161. onMouseClick: function(a, b, c) {
  4162. var d = i(g.getSiteMenuWithRender(this.props.siteData, false, this.props.rootNavigationInfo));
  4163. if (!c) {
  4164. var e = [];
  4165. if (b !== "__more__") {
  4166. var f = d[b].items;
  4167. e = i(f)
  4168. }
  4169. var h = e.length > 0 || b === "__more__";
  4170. var j = this.state.hover;
  4171. if (!this.dropDownOpen && h) {
  4172. this.mouseEnterHandler(b);
  4173. a.preventDefault();
  4174. a.stopPropagation()
  4175. } else if (this.dropDownOpen && !this.isDropdownOwner(b, j) && h) {
  4176. this.mouseLeaveHandler();
  4177. a.preventDefault();
  4178. a.stopPropagation();
  4179. this.mouseEnterHandler(b)
  4180. } else if (this.dropDownOpen) {
  4181. this.mouseLeaveHandler()
  4182. }
  4183. } else {
  4184. this.mouseLeaveHandler()
  4185. }
  4186. },
  4187. onAnchorChange: function(a) {
  4188. if (a !== this.state.activeAnchor) {
  4189. this.setState({
  4190. activeAnchor: a
  4191. })
  4192. }
  4193. },
  4194. isDropdownOwner: function(a, b) {
  4195. return a === b
  4196. },
  4197. createMoreButton: function(a, b) {
  4198. var c = "__more__";
  4199. var d = b ? "left" : "right";
  4200. var e = this.props.compProp.alignButtons;
  4201. var f = this.props.compProp.stretchButtonsToMenuWidth;
  4202. if (!f && e !== "right") {
  4203. d = "center"
  4204. }
  4205. return this.createChildComponent({
  4206. id: c,
  4207. label: this.props.compProp.moreButtonLabel
  4208. }, "core.components.MenuButton", "repeaterButton", {
  4209. isSelected: false,
  4210. positionInList: d,
  4211. id: this.props.id + c,
  4212. ref: c,
  4213. key: c,
  4214. lineHeight: j(false, this.props.style.height, a),
  4215. mouseEnterHandler: this.mouseEnterHandler,
  4216. mouseLeaveHandler: this.mouseLeaveHandler,
  4217. onMouseClick: this.onMouseClick,
  4218. isDropDownButton: false,
  4219. menuBtnPageId: "",
  4220. display: "inline-block"
  4221. })
  4222. },
  4223. mouseEnterHandler: function(a, b) {
  4224. this.hovering = true;
  4225. this.lastHovered = this.getCurrentTime();
  4226. var d = a.replace(this.props.id, "");
  4227. var e = g.nonHiddenPageIdsFromMainMenu(this.props.siteData).concat("__more__");
  4228. var f = e.indexOf(d);
  4229. if (f !== -1 && (h(d) || c.stringUtils.startsWith(a, "__")) && a !== this.state.hover) {
  4230. if (this.state.hover) {
  4231. this.refs[this.state.hover].setIdleState()
  4232. }
  4233. this.registerReLayout();
  4234. this.setState({
  4235. hover: a,
  4236. hoverListPosition: b
  4237. })
  4238. }
  4239. },
  4240. getCurrentTime: function() {
  4241. return Date.now()
  4242. },
  4243. mouseLeaveHandler: function() {
  4244. this.hovering = false;
  4245. this.lastHovered = this.getCurrentTime();
  4246. if (!this.dropDownOpen && this.state.hover) {
  4247. this.refs[this.state.hover].setIdleState()
  4248. }
  4249. this.setTimeout(function() {
  4250. var a = this.getCurrentTime() - this.lastHovered;
  4251. if (!this.hovering && this.state.hover && a >= 1e3) {
  4252. this.refs[this.state.hover].setIdleState();
  4253. this.dropDownOpen = false;
  4254. this.setState({
  4255. hover: null,
  4256. hoverListPosition: null
  4257. })
  4258. }
  4259. }.bind(this), 1e3)
  4260. },
  4261. getParamsFromSkins: function() {
  4262. return {
  4263. menuBorderY: this.getSumParamValue("menuTotalBordersY", this.props.skin),
  4264. menuBtnBorder: this.getSumParamValue("menuButtonBorders", this.getSkinExports().repeaterButton.skin),
  4265. ribbonEls: this.getParamFromDefaultSkin("ribbonEls").value ? parseInt(this.getParamFromDefaultSkin("ribbonEls").value, 10) : 0,
  4266. labelPad: this.getFromExports("labelPad"),
  4267. ribbonExtra: this.getFromExports("ribbonExtra") ? Math.abs(parseInt(this.getFromExports("ribbonExtra"), 10)) : 0
  4268. }
  4269. },
  4270. getSkinProperties: function() {
  4271. var a = i(g.getSiteMenuWithRender(this.props.siteData, false, this.props.rootNavigationInfo));
  4272. var b = this.getParamsFromSkins();
  4273. var c = this.convertItemsToChildren(a, {
  4274. display: "inherit"
  4275. }, null, null, b);
  4276. var d = [];
  4277. var e = "hidden";
  4278. c.push(this.createMoreButton(b, this.props.compProp.rtl));
  4279. if (this.props.compProp.rtl) {
  4280. c.reverse()
  4281. }
  4282. if (h(this.state.hover) || this.state.hover === "__more__") {
  4283. var f = this.props.siteData.measureMap;
  4284. d = this.convertItemsToChildren(h(this.state.hover) ? a[this.state.hover].items : k(a, f, this.props.id), {
  4285. style: {
  4286. width: "100%"
  4287. },
  4288. display: "block",
  4289. prefix: "_",
  4290. subMenu: true
  4291. }, true, true, b);
  4292. if (d.length > 0) {
  4293. e = "inherit";
  4294. this.dropDownOpen = true
  4295. }
  4296. }
  4297. return {
  4298. "": {
  4299. id: this.props.id,
  4300. key: this.props.refInParent,
  4301. ref: this.props.refInParent,
  4302. "data-menuborder-y": b.menuBorderY,
  4303. "data-menubtn-border": b.menuBtnBorder,
  4304. "data-ribbon-els": b.ribbonEls,
  4305. "data-label-pad": b.labelPad,
  4306. "data-ribbon-extra": b.ribbonExtra
  4307. },
  4308. itemsContainer: {
  4309. children: c,
  4310. style: {
  4311. height: this.props.style.height - b.menuBorderY - b.ribbonExtra - b.ribbonEls,
  4312. display: "inline-block",
  4313. textAlign: this.props.compProp.alignButtons,
  4314. overflow: "visible"
  4315. }
  4316. },
  4317. back: {
  4318. style: {
  4319. height: this.props.style.height - b.menuBorderY - b.labelPad
  4320. }
  4321. },
  4322. moreContainer: {
  4323. children: d,
  4324. "data-hover": this.state.hover,
  4325. style: {
  4326. visibility: e
  4327. }
  4328. },
  4329. dropWrapper: {
  4330. style: {
  4331. visibility: e
  4332. },
  4333. "data-drophposition": this.state.hover ? this.state.hoverListPosition : "",
  4334. "data-dropalign": this.props.compProp.alignButtons
  4335. }
  4336. }
  4337. }
  4338. }
  4339. });
  4340. define("components/components/facebookShare/facebookShare", ["lodash", "react", "core", "socialCommon"], function(a, b, c, d) {
  4341. "use strict";
  4342. var e = c.compMixins;
  4343. return {
  4344. displayName: "FacebookShare",
  4345. mixins: [e.skinBasedComp, d.socialCompMixin],
  4346. getUrlToBeShared: function() {
  4347. var a = this.props.compData.urlChoice.toLowerCase() === "site";
  4348. var b = this.getSocialUrl(a);
  4349. return encodeURIComponent(b)
  4350. },
  4351. getFacebookSharer: function() {
  4352. return "http://www.facebook.com/sharer.php?u="
  4353. },
  4354. openSharePopup: function() {
  4355. var a = "wix_share_to_facebook";
  4356. var b = "width = 635, height = 346, scrollbars = no, status = no, toolbar = no, menubar = no, location = no";
  4357. this.props.siteAPI.openPopup(this.getFacebookSharer() + this.getUrlToBeShared(), a, b)
  4358. },
  4359. getSkinProperties: function() {
  4360. var a = this.props.siteData.measureMap;
  4361. return {
  4362. "": {
  4363. style: {
  4364. height: a && a.height[this.props.id] ? a.height[this.props.id] : this.props.style.height,
  4365. width: a && a.width[this.props.id] ? a.width[this.props.id] : this.props.style.width
  4366. }
  4367. },
  4368. facebookShareButton: {
  4369. parentConst: b.DOM.a,
  4370. onClick: this.openSharePopup
  4371. },
  4372. label: {
  4373. children: [this.props.compData.label]
  4374. },
  4375. shareButton: {},
  4376. icon: {}
  4377. }
  4378. }
  4379. }
  4380. });
  4381. define("components/components/ebayItemsBySeller/ebayItemsBySeller", ["react", "reactDOM", "core", "utils"], function(a, b, c, d) {
  4382. "use strict";
  4383. var e = c.compMixins;
  4384. var f = d.urlUtils;
  4385. var g = {
  4386. Australia: "15",
  4387. Austria: "16",
  4388. Belgium_Dutch: "123",
  4389. Belgium_French: "23",
  4390. Canada: "2",
  4391. CanadaFrench: "210",
  4392. China: "223",
  4393. eBayMotors: "100",
  4394. France: "71",
  4395. Germany: "77",
  4396. HongKong: "201",
  4397. India: "203",
  4398. Ireland: "205",
  4399. Italy: "101",
  4400. Malaysia: "207",
  4401. Netherlands: "146",
  4402. Philippines: "211",
  4403. Poland: "212",
  4404. Singapore: "216",
  4405. Spain: "186",
  4406. Sweden: "218",
  4407. Switzerland: "193",
  4408. Taiwan: "196",
  4409. UK: "3",
  4410. US: "0"
  4411. };
  4412. var h = {
  4413. EKServer: "",
  4414. ai: "aj|kvpqvqlvxwkl",
  4415. cid: "0",
  4416. eksize: "1",
  4417. encode: "UTF-8",
  4418. endcolor: "FF0000",
  4419. endtime: "y",
  4420. fbgcolor: "FFFFFF",
  4421. fs: "0",
  4422. hdrsrch: "n",
  4423. img: "y",
  4424. logo: "6",
  4425. numbid: "n",
  4426. paypal: "n",
  4427. popup: "y",
  4428. prvd: "9",
  4429. r0: "3",
  4430. shipcost: "y",
  4431. sort: "MetaEndSort",
  4432. sortby: "endtime",
  4433. sortdir: "asc",
  4434. srchdesc: "n",
  4435. title: "",
  4436. tlecolor: "FFFFFF",
  4437. tlefs: "0",
  4438. tlfcolor: "000000",
  4439. toolid: "10004",
  4440. track: "5335838312"
  4441. };
  4442. return {
  4443. displayName: "EbayItemsBySeller",
  4444. mixins: [e.skinBasedComp, e.skinInfo],
  4445. getScriptUrl: function() {
  4446. var a = "http://lapi.ebay.com/ws/eBayISAPI.dll",
  4447. b = this._prepareOptions();
  4448. return a + "?" + f.toQueryString(h) + "&" + f.toQueryString(b)
  4449. },
  4450. getSkinProperties: function() {
  4451. var b, c = this.props.structure.layout,
  4452. d = this.props.siteData.getBrowser().ie,
  4453. e;
  4454. if (!d) {
  4455. e = 'data:text/html,<html><body style="margin:0px;"><div><script src="' + this.getScriptUrl() + '"></script></div></body></html>'
  4456. }
  4457. if (this.props.compData.sellerId) {
  4458. b = a.DOM.iframe({
  4459. src: d ? "" : encodeURI(e),
  4460. style: {
  4461. width: c.width,
  4462. height: c.height
  4463. }
  4464. })
  4465. }
  4466. return {
  4467. iFrameHolder: {
  4468. children: this.props.compData.sellerId ? [b] : []
  4469. }
  4470. }
  4471. },
  4472. getInitialState: function() {
  4473. return {
  4474. $contentState: this.props.compData.sellerId ? "hasContent" : "noContent"
  4475. }
  4476. },
  4477. componentDidMount: function() {
  4478. if (!this.props.compData.sellerId) {
  4479. return
  4480. }
  4481. var a = this.props.siteData.getBrowser();
  4482. if (a.ie) {
  4483. var c = b.findDOMNode(this).querySelector("iframe"),
  4484. d;
  4485. if (parseInt(a.version, 10) === 10) {
  4486. c.src = "javascript:(function () {" + "document.open();document.domain='" + encodeURIComponent(window.document.domain) + "';document.close()" + "})();"
  4487. }
  4488. d = c.contentWindow.document;
  4489. d.write('<html><body style="margin:0px;"><div><script type="text/javascript" src="' + this.getScriptUrl() + '"></script></div></body></html>')
  4490. }
  4491. },
  4492. _prepareOptions: function() {
  4493. var a = this.props.structure.layout;
  4494. var b = Math.floor((a.height - 100) / 70);
  4495. var c = this.props.compData.sellerId;
  4496. return {
  4497. width: a.width,
  4498. hdrimage: this.props.compProp.headerImage,
  4499. fntcolor: this.getParamFromDefaultSkin("fontColor").value.hexString().replace("#", ""),
  4500. bdrcolor: this.getParamFromDefaultSkin("borderColor").value.hexString().replace("#", ""),
  4501. hdrcolor: this.getParamFromDefaultSkin("headerColor").value.hexString().replace("#", ""),
  4502. tbgcolor: this.getParamFromDefaultSkin("backgroundColor").value.hexString().replace("#", ""),
  4503. lnkcolor: this.getParamFromDefaultSkin("linkColor").value.hexString().replace("#", ""),
  4504. num: b,
  4505. si: c,
  4506. sid: c,
  4507. siteid: g[this.props.compData.registrationSite] || 0
  4508. }
  4509. }
  4510. }
  4511. });
  4512. define("components/components/icon/icon", ["lodash", "core", "react"], function(a, b, c) {
  4513. "use strict";
  4514. var d = b.compMixins;
  4515. return {
  4516. displayName: "Icon",
  4517. mixins: [d.skinBasedComp],
  4518. getInitialState: function() {
  4519. return {
  4520. isIconClicked: false
  4521. }
  4522. },
  4523. onClick: function() {
  4524. this.setState({
  4525. isIconClicked: !this.state.isIconClicked
  4526. })
  4527. },
  4528. getSkinProperties: function() {
  4529. var b = this.props.compData;
  4530. var d = {
  4531. img: {
  4532. parentConst: c.DOM.img,
  4533. src: b.url,
  4534. title: b.title,
  4535. width: b.width,
  4536. height: b.height,
  4537. onClick: this.onClick
  4538. }
  4539. };
  4540. d[""] = {
  4541. style: a.merge(this.props.style, {
  4542. width: b.width,
  4543. height: b.height
  4544. })
  4545. };
  4546. return d
  4547. }
  4548. }
  4549. });
  4550. define("components/components/flickrBadgeWidget/flickrBadgeWidget", ["core", "utils"], function(a, b) {
  4551. "use strict";
  4552. var c = a.compMixins,
  4553. d = b.urlUtils;
  4554. return {
  4555. displayName: "FlickrBadgeWidget",
  4556. mixins: [c.skinBasedComp],
  4557. getInitialState: function() {
  4558. return {
  4559. width: this.props.style.width,
  4560. height: this.props.style.height
  4561. }
  4562. },
  4563. componentDidMount: function() {
  4564. window.addEventListener("message", this.processMessage)
  4565. },
  4566. componentWillUnmount: function() {
  4567. window.removeEventListener("message", this.processMessage)
  4568. },
  4569. processMessage: function(a) {
  4570. if (a.data && a.data.compId === this.props.id) {
  4571. this.registerReLayout();
  4572. this.setState(a.data.size)
  4573. }
  4574. },
  4575. getFlickSrc: function() {
  4576. var a = this.props.compData,
  4577. c = {
  4578. imageCount: a.imageCount,
  4579. whichImages: a.whichImages,
  4580. imageSize: a.imageSize,
  4581. layoutOrientation: a.layoutOrientation,
  4582. userId: a.userId,
  4583. tag: a.tag,
  4584. origin: b.urlUtils.origin(),
  4585. compId: this.props.id
  4586. };
  4587. return this.props.siteData.santaBase + "/static/external/flickrBadgeWidget.html?" + d.toQueryString(c)
  4588. },
  4589. getSkinProperties: function() {
  4590. return {
  4591. "": {
  4592. style: {
  4593. width: this.state.width,
  4594. height: this.state.height
  4595. }
  4596. },
  4597. iframe: {
  4598. src: this.getFlickSrc(),
  4599. height: this.state.height,
  4600. width: this.state.width
  4601. },
  4602. overlayClick: {
  4603. href: "http://www.flickr.com/photos/" + this.props.compData.userId + "/",
  4604. target: "_blank"
  4605. }
  4606. }
  4607. }
  4608. }
  4609. });
  4610. define("components/components/mediaZoom/svgShapesData", [], function() {
  4611. "use strict";
  4612. return {
  4613. buttonClose: {
  4614. svg: {
  4615. viewBox: "0 0 180 180",
  4616. className: "svgButtonClose"
  4617. },
  4618. content: '<path d="M5 5 L175 175 M175 5 L5 175"/>'
  4619. },
  4620. buttonPrevious: {
  4621. svg: {
  4622. viewBox: "0 0 180 310",
  4623. className: "svgNavButton"
  4624. },
  4625. content: '<path d="M170 10 L10 161 M10 150 L170 300"/>'
  4626. },
  4627. buttonNext: {
  4628. svg: {
  4629. viewBox: "0 0 180 310",
  4630. className: "svgNavButton"
  4631. },
  4632. content: '<path d="M10 10 L170 161 M170 150 L10 300"/>'
  4633. }
  4634. }
  4635. });
  4636. define("components/components/mediaZoom/mediaZoom", ["zepto", "react", "lodash", "core", "components/components/mediaZoom/svgShapesData", "reactDOM", "experiment"], function(a, b, c, d, e, f, g) {
  4637. "use strict";
  4638. var h = d.compMixins;
  4639. var i = {
  4640. width: 240,
  4641. height: 60
  4642. };
  4643. var j = {
  4644. width: 0,
  4645. height: 0
  4646. };
  4647.  
  4648. function k(a) {
  4649. return a && !a.target.href
  4650. }
  4651. return {
  4652. displayName: "MediaZoom",
  4653. mixins: [h.skinBasedComp, h.animationsMixin, h.skinInfo, d.compMixins.galleryImageExpandedActionMixin],
  4654. getSvg: function(a) {
  4655. var d = e[a];
  4656. var f = c.clone(d.svg);
  4657. var g = this.props.styleId + "_";
  4658. c.assign(f, {
  4659. className: g + d.svg.className,
  4660. dangerouslySetInnerHTML: {
  4661. __html: d.content
  4662. }
  4663. });
  4664. return b.DOM.svg(f)
  4665. },
  4666. getInitialState: function() {
  4667. this.isAnimating = false;
  4668. this.shouldUpdateSizeOnLayout = true;
  4669. var a = "desktop";
  4670. if (this.props.siteData.isMobileDevice()) {
  4671. a = "mobile"
  4672. } else if (this.props.siteData.isTabletDevice()) {
  4673. a = "tablet"
  4674. }
  4675. return c.assign({
  4676. $buttonsState: "showButtons",
  4677. $device: a
  4678. }, this.props.getPrevAndNextStateFunc())
  4679. },
  4680. componentWillReceiveProps: function(a) {
  4681. if (!this.props.siteData.renderFlags.isZoomAllowed) {
  4682. setTimeout(this.closeMediaZoom, 0);
  4683. return
  4684. }
  4685. var b = this.props.isDataChangedFunc(this.props, a);
  4686. this.shouldUpdateSizeOnLayout = b;
  4687. if (b) {
  4688. this.setState(this.props.getPrevAndNextStateFunc())
  4689. }
  4690. },
  4691. getSkinProperties: function() {
  4692. var a = !!this.state.next;
  4693. var b = a ? {} : {
  4694. display: "none"
  4695. };
  4696. var c = this.props.siteData.isMobileDevice() || this.props.siteData.isTabletDevice() ? j : i;
  4697. var d = this.props.getChildCompFunc({
  4698. toggleButtons: this.toggleButtons,
  4699. goToNextItem: this.clickOnNextButton,
  4700. goToPrevItem: this.clickOnPreviousButton
  4701. }, c);
  4702. var e = {
  4703. "": {
  4704. "data-width-spacer": c.width,
  4705. "data-height-spacer": c.height
  4706. },
  4707. blockingLayer: {
  4708. onClick: this.onBlockingLayerClick
  4709. },
  4710. xButton: {
  4711. onClick: this.closeMediaZoom,
  4712. children: [this.getSvg("buttonClose")]
  4713. },
  4714. dialogBox: {
  4715. onClick: this.handleDialogBoxClick
  4716. },
  4717. itemsContainer: {
  4718. children: d
  4719. },
  4720. buttonPrev: {
  4721. onClick: this.clickOnPreviousButton,
  4722. style: b,
  4723. children: [this.getSvg("buttonPrevious")]
  4724. },
  4725. buttonNext: {
  4726. onClick: this.clickOnNextButton,
  4727. style: b,
  4728. children: [this.getSvg("buttonNext")]
  4729. }
  4730. };
  4731. if (this.props.siteData.isMobileDevice() || this.props.siteData.isTabletDevice()) {
  4732. e.blockingLayer.onSwipeLeft = this.clickOnNextButton;
  4733. e.blockingLayer.onSwipeRight = this.clickOnPreviousButton
  4734. }
  4735. return e
  4736. },
  4737. onBlockingLayerClick: function(a) {
  4738. if (k(a)) {
  4739. this.closeMediaZoom();
  4740. a.preventDefault();
  4741. a.stopPropagation()
  4742. }
  4743. },
  4744. componentDidLayout: function() {
  4745. var b = this.props.getBoxDimensionsFunc();
  4746. var c = {
  4747. width: b.dialogBoxWidth,
  4748. height: b.dialogBoxHeight,
  4749. "margin-top": b.marginTop,
  4750. "margin-left": b.marginLeft,
  4751. padding: b.padding
  4752. };
  4753. var d = {
  4754. width: b.dialogBoxWidth,
  4755. height: b.dialogBoxHeight,
  4756. marginTop: b.marginTop,
  4757. marginLeft: b.marginLeft,
  4758. padding: b.padding
  4759. };
  4760. if (!this.shouldUpdateSizeOnLayout) {
  4761. a(f.findDOMNode(this.refs.dialogBox)).css(c);
  4762. return
  4763. }
  4764. this.shouldUpdateSizeOnLayout = false;
  4765. var e = this;
  4766. var g = this.sequence();
  4767. g.add("dialogBox", "BaseDimensions", .5, 0, {
  4768. to: d
  4769. }).add("itemsContainer", "FadeIn", .5, 0).onCompleteAll(function() {
  4770. e.unBlockNavigation();
  4771. e.handleImageExpandedAction()
  4772. }).execute()
  4773. },
  4774. clickOnNextButton: function(a) {
  4775. this.navigateToOtherPageWithAnimations(this.state.next);
  4776. if (a) {
  4777. a.preventDefault();
  4778. a.stopPropagation()
  4779. }
  4780. },
  4781. clickOnPreviousButton: function(a) {
  4782. this.navigateToOtherPageWithAnimations(this.state.prev);
  4783. if (a) {
  4784. a.preventDefault();
  4785. a.stopPropagation()
  4786. }
  4787. },
  4788. navigateToOtherPageWithAnimations: function(a) {
  4789. if (this.isNavigationBlocked()) {
  4790. return
  4791. }
  4792. var b = this;
  4793. this.blockNavigation();
  4794. this.animate("itemsContainer", "FadeOut", .5, 0, null, {
  4795. onComplete: function() {
  4796. b.props.actualNavigateToItemFunc(a)
  4797. }
  4798. })
  4799. },
  4800. closeMediaZoom: function() {
  4801. if (this.props.closeFunction) {
  4802. this.props.closeFunction()
  4803. } else {
  4804. if (g.isOpen("sv_dpages")) {
  4805. var a = c.omit(this.props.rootNavigationInfo, ["imageZoom", "pageItemId", "title"]);
  4806. this.props.siteAPI.navigateToPage(a);
  4807. return
  4808. }
  4809. this.props.siteAPI.navigateToPage({
  4810. pageId: this.props.rootNavigationInfo.pageId
  4811. })
  4812. }
  4813. },
  4814. handleDialogBoxClick: function(a) {
  4815. if (k(a)) {
  4816. a.preventDefault();
  4817. a.stopPropagation();
  4818. this.props.siteAPI.passClickEvent(a)
  4819. }
  4820. },
  4821. unBlockNavigation: function() {
  4822. this.isAnimating = false
  4823. },
  4824. blockNavigation: function() {
  4825. this.isAnimating = true
  4826. },
  4827. isNavigationBlocked: function() {
  4828. return this.isAnimating
  4829. },
  4830. componentDidMount: function() {
  4831. this.props.siteAPI.enterFullScreenMode()
  4832. },
  4833. componentWillUnmount: function() {
  4834. this.props.siteAPI.exitFullScreenMode()
  4835. },
  4836. toggleButtons: function(a) {
  4837. var b = this.state.$buttonsState === "showButtons" ? "hideButtons" : "showButtons";
  4838. this.setState({
  4839. $buttonsState: b
  4840. });
  4841. if (a) {
  4842. a.preventDefault();
  4843. a.stopPropagation()
  4844. }
  4845. }
  4846. }
  4847. });
  4848. define("components/components/imageZoomDisplayer/imageZoomDisplayer", ["lodash", "core", "utils", "imageClientApi"], function(a, b, c, d) {
  4849. "use strict";
  4850. var e = b.compMixins;
  4851. var f = c.linkRenderer;
  4852. var g = {
  4853. goToLinkText: "Go to link"
  4854. };
  4855.  
  4856. function h(a, b, c, e) {
  4857. var f = {
  4858. id: this.props.id + "image",
  4859. ref: "image",
  4860. key: a.id,
  4861. imageData: a,
  4862. quality: e,
  4863. containerWidth: b.imageContainerWidth,
  4864. containerHeight: b.imageContainerHeight,
  4865. displayMode: d.fittingTypes.LEGACY_FULL,
  4866. onClick: this.props.goToNextItem,
  4867. effectName: this.props.compProp.effectName,
  4868. usePreloader: true
  4869. };
  4870. if (c) {
  4871. f.onClick = this.props.toggleButtons;
  4872. f.onTap = this.props.toggleButtons
  4873. }
  4874. return this.createChildComponent(a, "core.components.Image", "image", f)
  4875. }
  4876. return {
  4877. displayName: "ImageZoomDisplayer",
  4878. mixins: [e.skinBasedComp],
  4879. getInitialState: function() {
  4880. var a = "desktop";
  4881. if (this.props.siteData.isMobileDevice()) {
  4882. a = "mobile"
  4883. } else if (this.props.siteData.isTabletDevice()) {
  4884. a = "tablet"
  4885. }
  4886. return {
  4887. $device: a
  4888. }
  4889. },
  4890. getSkinProperties: function() {
  4891. var a = this.props.compData;
  4892. var b = this.props.compProp;
  4893. var c = this.props.siteData;
  4894. var d = this.props.zoomDimensions;
  4895. var e = this.props.quality;
  4896. var i = {
  4897. title: {
  4898. children: a.title
  4899. },
  4900. description: {
  4901. children: a.description
  4902. },
  4903. image: h.call(this, a, d, c.isMobileDevice() || c.isTabletDevice(), e)
  4904. };
  4905. if (a.link) {
  4906. i.link = f.renderLink(a.link, c, this.props.rootNavigationInfo);
  4907. i.link.children = b && b.goToLinkText ? b.goToLinkText : g.goToLinkText
  4908. }
  4909. return i
  4910. }
  4911. }
  4912. });
  4913. define("components/components/menuButton/menuButton", ["lodash", "react", "utils", "core", "reactDOM"], function(a, b, c, d, e) {
  4914. "use strict";
  4915. var f = d.compMixins;
  4916.  
  4917. function g(a) {
  4918. a = a && a.trim();
  4919. return a || " "
  4920. }
  4921. return {
  4922. displayName: "MenuButton",
  4923. mixins: [f.skinBasedComp, f.skinInfo],
  4924. getInitialState: function() {
  4925. return {
  4926. $container: this.props.isContainer ? "drop" : "menu",
  4927. $selected: this.props.isSelected ? "selected" : "",
  4928. $state: "idle",
  4929. $type: this.props.compData.link ? "link" : "header",
  4930. $mobile: this.props.siteData.isMobileDevice() || this.props.siteData.isMobileView() || this.props.siteData.isTabletDevice() ? "mobile" : "notMobile"
  4931. }
  4932. },
  4933. componentWillReceiveProps: function(a) {
  4934. this.setState({
  4935. $selected: a.isSelected ? "selected" : ""
  4936. })
  4937. },
  4938. getSkinProperties: function() {
  4939. var d = this.props.compData;
  4940. var e = this.props.compProp.alignText;
  4941. var f = {
  4942. parentConst: b.DOM.a,
  4943. style: a.merge(this.props.style || {}, {
  4944. display: this.props.display,
  4945. position: "relative",
  4946. boxSizing: "border-box",
  4947. color: "grey"
  4948. }),
  4949. onClick: this.onMouseClick,
  4950. "data-listposition": this.props.positionInList
  4951. };
  4952. if (this.state.$mobile !== "mobile") {
  4953. a.assign(f, {
  4954. onMouseEnter: this.onMouseEnter,
  4955. onMouseLeave: this.onMouseLeave
  4956. })
  4957. }
  4958. if (d.link) {
  4959. a.merge(f, d.link.render)
  4960. }
  4961. return {
  4962. "": f,
  4963. bg: {
  4964. style: {
  4965. textAlign: e
  4966. }
  4967. },
  4968. label: {
  4969. children: g(d.label),
  4970. dir: this.props.dir,
  4971. style: {
  4972. lineHeight: c.style.unitize(this.props.lineHeight),
  4973. textAlign: e
  4974. }
  4975. }
  4976. }
  4977. },
  4978. onMouseEnter: function() {
  4979. if (this.props.compData.link || this.props.refInParent === "__more__") {
  4980. this.setState({
  4981. $state: "over"
  4982. })
  4983. }
  4984. var a = e.findDOMNode(this);
  4985. this.props.mouseEnterHandler(this.props.refInParent, a.getAttribute("data-listposition"))
  4986. },
  4987. onMouseLeave: function() {
  4988. if (this.props.isDropDownButton) {
  4989. this.setIdleState()
  4990. }
  4991. this.props.mouseLeaveHandler(this.props.refInParent)
  4992. },
  4993. onMouseClick: function(a) {
  4994. if (this.state.$mobile !== "notMobile") {
  4995. this.props.onMouseClick(a, this.props.refInParent, this.props.isDropDownButton)
  4996. }
  4997. },
  4998. setIdleState: function() {
  4999. this.setState({
  5000. $state: "idle"
  5001. })
  5002. }
  5003. }
  5004. });
  5005. define("components/components/numericStepper/numericStepper", ["lodash", "core", "reactDOM"], function(a, b, c) {
  5006. "use strict";
  5007. var d = b.compMixins;
  5008. var e = 0;
  5009. var f = 999;
  5010.  
  5011. function g(a, b, d) {
  5012. if (this.state.currentValue) {
  5013. var e = parseInt(this.state.currentValue, 10) + a;
  5014. var f = c.findDOMNode(this.refs.inputNumberInput);
  5015. b.target = f;
  5016. i.call(this, b, d, this.state.currentValue, String(e))
  5017. }
  5018. }
  5019.  
  5020. function h(a, b, c) {
  5021. c = c || a.target.value;
  5022. if (c) {
  5023. i.call(this, a, b, this.state.currentValue, c)
  5024. } else {
  5025. this.setState({
  5026. currentValue: c,
  5027. previousValue: this.state.currentValue
  5028. })
  5029. }
  5030. }
  5031.  
  5032. function i(a, b, c, d) {
  5033. var e = Number(d);
  5034. var f = Number(c);
  5035. var g = e < this.state.minValue;
  5036. var h = e > this.state.maxValue;
  5037. if (d === "" || isNaN(e)) {
  5038. e = f;
  5039. return
  5040. } else if (g) {
  5041. e = this.state.minValue
  5042. } else if (h) {
  5043. if (this.props.onInputChangedFailed) {
  5044. a.type = "inputChangedFailed";
  5045. a.payload = {
  5046. oldValue: f,
  5047. invalidValue: e,
  5048. maxValue: this.state.maxValue,
  5049. minValue: this.state.minValue
  5050. };
  5051. this.props.onInputChangedFailed(a, b);
  5052. e = this.state.maxValue
  5053. }
  5054. }
  5055. d = String(e);
  5056. if (this.props.onInputChange && e !== f) {
  5057. a.type = "inputChanged";
  5058. a.payload = d;
  5059. this.props.onInputChange(a, b)
  5060. }
  5061. this.setState({
  5062. currentValue: d,
  5063. previousValue: String(f)
  5064. })
  5065. }
  5066.  
  5067. function j(a) {
  5068. return a.key !== "space" && (!a.shiftKey || a.keyCode >= 35 && a.keyCode <= 40) && (a.key.length !== 1 || a.ctrlKey || a.metaKey || a.shiftKey || a.keyCode >= 48 && a.keyCode <= 57 || a.keyCode >= 96 && a.keyCode <= 105)
  5069. }
  5070.  
  5071. function k(a, b) {
  5072. i.call(this, a, b, this.state.previousValue, this.state.currentValue)
  5073. }
  5074. return {
  5075. displayName: "NumericStepper",
  5076. mixins: [d.skinBasedComp],
  5077. getInitialState: function() {
  5078. return this.getState(this.props)
  5079. },
  5080. getState: function(b) {
  5081. return {
  5082. $validation: b.compProp.message ? "invalid" : "valid",
  5083. currentValue: this.props.compData.value,
  5084. previousValue: this.props.compData.value,
  5085. minValue: a.isUndefined(this.props.compProp.minValue) ? e : Number(this.props.compProp.minValue),
  5086. maxValue: a.isUndefined(this.props.compProp.maxValue) ? f : Number(this.props.compProp.maxValue)
  5087. }
  5088. },
  5089. componentWillReceiveProps: function(a) {
  5090. this.setState(this.getState(a))
  5091. },
  5092. getSkinProperties: function() {
  5093. return {
  5094. inputNumberInput: {
  5095. value: this.state.currentValue,
  5096. onChange: h.bind(this),
  5097. onKeyDown: j.bind(this),
  5098. onBlur: k.bind(this)
  5099. },
  5100. plus: {
  5101. onClick: g.bind(this, 1)
  5102. },
  5103. minus: {
  5104. onClick: g.bind(this, -1)
  5105. }
  5106. }
  5107. }
  5108. }
  5109. });
  5110. define("components/components/optionsListInput/optionsListInput", ["lodash", "core", "react"], function(a, b, c) {
  5111. "use strict";
  5112. var d = b.compMixins;
  5113.  
  5114. function e(a, b, c) {
  5115. if (this.props.onSelectionChange) {
  5116. b.type = "selectionChanged";
  5117. b.payload = a;
  5118. this.props.onSelectionChange(b, c)
  5119. }
  5120. }
  5121. return {
  5122. displayName: "OptionsListInput",
  5123. mixins: [d.skinBasedComp],
  5124. propType: {
  5125. itemClassName: c.PropTypes.string.isRequired,
  5126. itemSkin: c.PropTypes.string.isRequired,
  5127. selectedItem: c.PropTypes.object,
  5128. valid: c.PropTypes.boolean,
  5129. onSelectionChange: c.PropTypes.function
  5130. },
  5131. getInitialState: function() {
  5132. return this.getCssState(this.props)
  5133. },
  5134. getCssState: function(a) {
  5135. return {
  5136. $validity: a.valid === false ? "invalid" : "valid"
  5137. }
  5138. },
  5139. componentWillReceiveProps: function(a) {
  5140. if (a.valid !== this.props.valid) {
  5141. this.setState(this.getCssState(a))
  5142. }
  5143. },
  5144. getSkinProperties: function() {
  5145. var b = a.map(this.props.compData.options, function(a, b) {
  5146. var c = {
  5147. selected: this.props.selectedItem === a,
  5148. onClick: e.bind(this, a),
  5149. id: this.props.id + b,
  5150. ref: b
  5151. };
  5152. return this.createChildComponent(a, this.props.itemClassName, {
  5153. skin: this.props.itemSkin,
  5154. styleId: this.props.loadedStyles[this.props.itemSkin]
  5155. }, c)
  5156. }, this);
  5157. return {
  5158. "": {
  5159. children: b
  5160. }
  5161. }
  5162. }
  5163. }
  5164. });
  5165. define("components/components/selectOptionsList/selectOptionsList", ["lodash", "core", "react"], function(a, b, c) {
  5166. "use strict";
  5167. var d = b.compMixins;
  5168.  
  5169. function e(a, b, c) {
  5170. if (this.props.onSelectionChange) {
  5171. b.type = "selectionChanged";
  5172. b.payload = a;
  5173. this.props.onSelectionChange(b, c)
  5174. }
  5175. }
  5176. return {
  5177. displayName: "SelectOptionsList",
  5178. mixins: [d.skinBasedComp, d.timeoutsMixin],
  5179. propType: {
  5180. itemClassName: c.PropTypes.string.isRequired,
  5181. itemSkin: c.PropTypes.string.isRequired,
  5182. selectedItem: c.PropTypes.object,
  5183. valid: c.PropTypes.boolean,
  5184. onSelectionChange: c.PropTypes.function
  5185. },
  5186. getInitialState: function() {
  5187. return {
  5188. $validity: this.props.valid === false ? "invalid" : "valid",
  5189. $tooltip: this.props.selectedItem && this.props.selectedItem.description ? "displayed" : "hidden"
  5190. }
  5191. },
  5192. componentWillMount: function() {
  5193. if (this.state.$tooltip === "displayed") {
  5194. var a = this;
  5195. this.setTimeout(function() {
  5196. a.setState({
  5197. $tooltip: "hidden"
  5198. })
  5199. }, 1500)
  5200. }
  5201. },
  5202. componentWillReceiveProps: function(a) {
  5203. var b = this.props;
  5204. var c = {
  5205. $validity: a.valid === false ? "invalid" : "valid"
  5206. };
  5207. if (!b.selectedItem || b.selectedItem && a.selectedItem && b.selectedItem.description !== a.selectedItem.description) {
  5208. c.$tooltip = a.selectedItem && a.selectedItem.description ? "displayed" : "hidden"
  5209. }
  5210. this.setState(c);
  5211. if (this.props.selectedItem !== a.selectedItem && c.$tooltip === "displayed") {
  5212. var d = this;
  5213. this.setTimeout(function() {
  5214. d.setState({
  5215. $tooltip: "hidden"
  5216. })
  5217. }, 1500)
  5218. }
  5219. },
  5220. getSkinProperties: function() {
  5221. var b = a.map(this.props.compData.options, function(a, b) {
  5222. var c = {
  5223. selected: this.props.selectedItem === a,
  5224. onClick: e.bind(this, a),
  5225. ref: b
  5226. };
  5227. return this.createChildComponent(a, this.props.itemClassName, {
  5228. skin: this.props.itemSkin,
  5229. styleId: this.props.loadedStyles[this.props.itemSkin]
  5230. }, c)
  5231. }, this);
  5232. var c = {
  5233. itemsContainer: {
  5234. children: b
  5235. }
  5236. };
  5237. if (this.props.selectedItem) {
  5238. c.tooltip = {
  5239. children: [this.props.selectedItem.description]
  5240. }
  5241. }
  5242. return c
  5243. }
  5244. }
  5245. });
  5246. define("components/components/dialogs/translations/dialogMixinTranslations", [], {
  5247. de: {
  5248. SMResetPass_Reset_Succ: "Sie haben Ihr Passwort erfolgreich zurückgesetzt.",
  5249. SMForm_Password: "Passwort",
  5250. SMLogin_Remember_Me: "Angemeldet bleiben",
  5251. PasswordLogin_Password: "Passwort",
  5252. SMForm_Error_Password_Blank: "Passwort kann nicht leer sein.",
  5253. SMRegister_Login: "Anmelden",
  5254. SMForm_Error_19999: "Unbekannter Nutzer",
  5255. SMForm_Error_19958: "Ihre Anfrage auf Mitgliedschaft wartet auf Bestätigung vom Betreiber der Website.",
  5256. SMResetPass_Retype_Password: "Erneut eingeben:",
  5257. SMForm_Error_Password_Length: "Passwortlänge muss zwischen {0} und {1} sein.",
  5258. SMContainer_OK: "OK",
  5259. SMResetPassMail_Back_Login: "Zurück zur Anmeldung",
  5260. dialogMixinTranslations_forgot_password_mobile: "Passwort vergessen?",
  5261. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Ihr Passwort wurde geändert.",
  5262. dialogMixinTranslations_login_google: "Mit Google+ anmelden",
  5263. SMForm_Error_19995: "Diese E-Mail-Adresse existiert bereits.",
  5264. SMResetPassMail_confirmation_title: "Bitte prüfen Sie Ihren Posteingang.",
  5265. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Passwort erneut eingeben",
  5266. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Neues Passwort eingeben",
  5267. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Bitte geben Sie das Passwort unten ein",
  5268. SMLogin_OR: "Oder",
  5269. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Bitte überprüfen Sie Ihren Posteingang",
  5270. SMRegister_sign_up: "Registrieren",
  5271. dialogMixinTranslations_signup_facebook: "Mit Facebook registrieren",
  5272. SMForm_Error_Email_Blank: "E-Mail-Adresse kann nicht leer sein.",
  5273. PasswordLogin_Header: "Geben Sie ein Passwort ein, um diese Seite zu sehen.",
  5274. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Bitte geben Sie das Passwort unten ein.",
  5275. SMForm_Error_Non_Ascii_Chars: "Passwort darf nur ASCII-Zeichen beinhalten.",
  5276. SMForm_Email: "E-Mail-Adresse",
  5277. dialogMixinTranslations_Log_In: "Anmelden",
  5278. PasswordLogin_Wrong_Password: "Bitte geben Sie das richtige Passwort ein.",
  5279. dialogMixinTranslations_login_facebook: "Mit Facebook anmelden",
  5280. SMLogin_Forgot_Password: "Passwort vergessen?",
  5281. dialogMixinTranslations_signup_switch_email: "Mit E-Mail-Adresse registrieren",
  5282. dialogMixinTranslations_forgot_password_mobile_new: "Vergessen?",
  5283. PasswordLogin_Error_General: "Serverfehler – Anmeldung nicht möglich",
  5284. dialogMixinTranslations_Password_Reset_TooShort: "Das Passwort muss 4-15 Zeichen beinhalten.",
  5285. SMContainer_Show_Confirm: "Diese Seite ist mit der Mitgliederanmeldung geschützt. Ihre Besucher können diese Seite erst sehen, wenn diese angemeldet sind.",
  5286. dialogMixinTranslations_Log_In_Title: "Anmelden",
  5287. SMContainer_Show_Confirm2: "Gehen Sie zum Bereich „Kontakte“ in Ihrem Konto und klicken Sie auf „Website Mitglieder“, um Mitglieder zu verwalten.",
  5288. dialogMixinTranslations_switch_to_signup: "Sie haben kein Konto?",
  5289. SMContain_Cancel: "Abbrechen",
  5290. SMLogin_Login: "Anmelden",
  5291. SMApply_Success1: "Vielen Dank! Ihre Anfrage zur Mitgliederanmeldung wurde versandt und wartet auf Bestätigung.",
  5292. SMForm_Error_19976: "Falsche E-Mail-Adresse oder Passwort.",
  5293. dialogMixinTranslations_signup_google: "Mit Google+ anmelden",
  5294. SMApply_Success2: "Der Administrator der Website wird Sie per E-Mail informieren ( {0} ), sobald Ihre Anfrage bestätigt wurde. ",
  5295. SMForm_Error_18880: "Email address must be provided",
  5296. dialogMixinTranslations_login_switch_email: "Mit E-Mail-Adresse anmelden",
  5297. SMForm_Error_Email_Invalid: "Ungültige E-Mail-Adresse",
  5298. SMProfile_Update_Details: "Angaben aktualisieren",
  5299. SMResetPass_Continue: "Fortfahren",
  5300. dialogMixinTranslations_forgot_password: "Passwort vergessen?",
  5301. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Wir haben Ihnen einen Link per E-Mail geschickt, mit dem Sie Ihr Passwort zurücksetzen können.",
  5302. SMForm_Error_Password_Retype: "Passwörter stimmen nicht überein.",
  5303. SMForm_Error_19972: "Ungültiges Token",
  5304. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Passwort zurücksetzen",
  5305. SMResetPass_Reset_Fail: "Passwort konnte nicht geändert werden. Probieren Sie es später nochmal.",
  5306. SMRegister_Already_Have_User: "Ich bin bereits Mitglied",
  5307. SMResetPassMail_confirmation_msg: "Wir haben Ihnen eine E-Mail mit einem Link geschickt, mit dem Sie Ihr Passwort zurücksetzen können.",
  5308. SMRegister_GO: "OK",
  5309. SMResetPass_New_Password: "Neues Passwort eingeben",
  5310. SMResetPassMail_title: "Passwort zurücksetzen",
  5311. SMContainer_Need_Log_In: "Sie müssen angemeldet sein, um diese Seite zu sehen.",
  5312. SMResetPass_Message: "Bitte füllen Sie beide Felder unten aus, um ein neues Passwort festzulegen. ",
  5313. SMForm_Error_19988: "Validierungsfehler",
  5314. SMForm_Error_General_Err: "Serverfehler. Versuchen Sie es später nochmal.",
  5315. SMForm_Retype_Password: "Passwort erneut eingeben",
  5316. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Passwort zurücksetzen",
  5317. PasswordLogin_AdministratorLogin: "Administrator-Anmeldung",
  5318. SMProfile_Update: "Aktualisieren",
  5319. SMResetPassMail_Enter_Email: "Bitte geben Sie Ihre E-Mail-Adresse ein.",
  5320. SMForm_Error_19980: "Vom Betreiber der Website geblockt",
  5321. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Gästebereich",
  5322. PasswordLogin_Cancel: "Abbrechen",
  5323. PasswordLogin_Submit: "OK",
  5324. SMForm_Error_19984: "Ungültige Sitzung"
  5325. },
  5326. en: {
  5327. PasswordLogin_AdministratorLogin: "Administrator Login",
  5328. SMContainer_Show_Confirm: "This page is protected with a member login. Your users will be able to see this page once they are logged in.",
  5329. SMRegister_sign_up: "Sign up",
  5330. SMLogin_OR: "Or",
  5331. SMForm_Error_19972: "Invalid token",
  5332. SMLogin_Login: "Login",
  5333. SMForm_Error_19976: "Wrong email or password",
  5334. PasswordLogin_Submit: "OK",
  5335. SMLogin_Remember_Me: "Remember Me",
  5336. SMResetPassMail_Enter_Email: "Please enter your email address",
  5337. SMForm_Password: "Password",
  5338. SMContainer_OK: "OK",
  5339. SMResetPass_Reset_Fail: "Password could not have been changed. Try again later.",
  5340. PasswordLogin_Cancel: "Cancel",
  5341. SMResetPass_Message: "To set your new password, please enter it in both fields below. ",
  5342. SMResetPass_New_Password: "Enter a new password",
  5343. SMResetPass_Retype_Password: "Type again:",
  5344. SMForm_Error_19980: "Blocked by site owner",
  5345. SMResetPassMail_confirmation_title: "Please check your email",
  5346. SMForm_Error_19984: "Invalid Session",
  5347. PasswordLogin_Wrong_Password: "Please enter the correct password",
  5348. SMResetPass_Reset_Succ: "You’ve successfully reset your password.",
  5349. SMForm_Error_19988: "Validation Error",
  5350. SMForm_Error_Non_Ascii_Chars: "Password must contain only ASCII characters",
  5351. PasswordLogin_Header: "Enter password to view this page",
  5352. SMRegister_GO: "GO",
  5353. PasswordLogin_Password: "Password",
  5354. SMResetPassMail_confirmation_msg: "We’ve sent you an email with a link that will allow you to reset your password",
  5355. PasswordLogin_Error_General: "Server error - Unable to log in",
  5356. SMResetPass_Continue: "Continue",
  5357. SMLogin_Forgot_Password: "Forgot your password?",
  5358. SMForm_Error_Password_Blank: "Password cannot be blank",
  5359. SMForm_Error_Email_Invalid: "Email is invalid",
  5360. SMForm_Error_19958: "Your member request is waiting approval from the site owner",
  5361. SMForm_Error_19995: "Email is already taken",
  5362. SMProfile_Update: "Update",
  5363. SMProfile_Update_Details: "Update your details",
  5364. SMForm_Email: "Email",
  5365. SMForm_Error_Password_Length: "Password length must be between {0} and {1}",
  5366. SMContain_Cancel: "Cancel",
  5367. SMContainer_Show_Confirm2: "To manage your site's members, go to your Contacts from the Dashboard and click Site Members",
  5368. SMContainer_Need_Log_In: "To view this page, you need to be logged in.",
  5369. SMForm_Error_19999: "Unknown user",
  5370. SMRegister_Already_Have_User: "I'm already a user",
  5371. SMForm_Error_Email_Blank: "Email cannot be blank",
  5372. SMForm_Error_General_Err: "Server error. Try again later.",
  5373. SMForm_Error_Password_Retype: "Passwords are not the same",
  5374. SMApply_Success2: "The site administrator will notify you via email ({0}) once your request has been approved",
  5375. SMApply_Success1: "Success! Your member login request has been sent and is awaiting approval.",
  5376. SMForm_Retype_Password: "Retype password",
  5377. SMResetPassMail_title: "Reset Password",
  5378. SMRegister_Login: "Login",
  5379. SMResetPassMail_Back_Login: "Back to Login",
  5380. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Guest Area",
  5381. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Please enter the password below.",
  5382. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Please Check Your Email",
  5383. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "We’ve emailed you a link to reset your password.",
  5384. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Reset Password",
  5385. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Enter your new password below",
  5386. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Enter a new password",
  5387. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Re-type password",
  5388. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Reset Password",
  5389. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Your password has been changed.",
  5390. dialogMixinTranslations_Log_In: "log in",
  5391. dialogMixinTranslations_Log_In_Title: "Log in",
  5392. dialogMixinTranslations_Password_Reset_TooShort: "Password must be 4-15 characters",
  5393. dialogMixinTranslations_forgot_password: "Forgot password?",
  5394. dialogMixinTranslations_switch_to_signup: "Don't have an account?",
  5395. dialogMixinTranslations_forgot_password_mobile: "Forgot password?",
  5396. dialogMixinTranslations_forgot_password_mobile_new: "forgot?",
  5397. dialogMixinTranslations_login_google: "Log in with Google+",
  5398. dialogMixinTranslations_login_facebook: "Log in with Facebook",
  5399. dialogMixinTranslations_signup_google: "Sign up with Google+",
  5400. dialogMixinTranslations_signup_facebook: "Sign up with Facebook",
  5401. dialogMixinTranslations_login_switch_email: "Log in with Email",
  5402. dialogMixinTranslations_signup_switch_email: "Sign up with Email",
  5403. SMForm_Error_18880: "Email address must be provided"
  5404. },
  5405. es: {
  5406. SMResetPass_Reset_Succ: "¡Has restablecido tu contraseña exitosamente!",
  5407. SMForm_Password: "Clave",
  5408. SMLogin_Remember_Me: "Recuérdame",
  5409. PasswordLogin_Password: "Clave",
  5410. SMForm_Error_Password_Blank: "El campo de la clave no puede estar en blanco",
  5411. SMRegister_Login: "Inicia Sesión",
  5412. SMForm_Error_19999: "Usuario desconocido",
  5413. SMForm_Error_19958: "La solicitud de miembro está a la espera de la aprobación por parte del dueño del sitio.",
  5414. SMResetPass_Retype_Password: "Escríbela de nuevo:",
  5415. SMForm_Error_Password_Length: "La longitud de la clave debe ser entre {0} y {1}",
  5416. SMContainer_OK: "OK",
  5417. SMResetPassMail_Back_Login: "Volver a Iniciar Sesión",
  5418. dialogMixinTranslations_forgot_password_mobile: "¿Has olvidado la contraseña?",
  5419. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Tu contraseña ha cambiado.",
  5420. dialogMixinTranslations_login_google: "Iniciar sesión con Google+",
  5421. SMForm_Error_19995: "Este email ya está siendo usado",
  5422. SMResetPassMail_confirmation_title: "Por favor revisa tu correo",
  5423. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Vuelve a escribir tu contraseña",
  5424. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Escribe una nueva clave",
  5425. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Escribe tu nueva contraseña a continuación.",
  5426. SMLogin_OR: "O",
  5427. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Por favor revisa tu correo",
  5428. SMRegister_sign_up: "Regístrate",
  5429. dialogMixinTranslations_signup_facebook: "Registrar con Facebook",
  5430. SMForm_Error_Email_Blank: "El campo del email no puede estar en blanco",
  5431. PasswordLogin_Header: "Escribe la clave para ver esta página",
  5432. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Por favor ingresa la contraseña a continuación.",
  5433. SMForm_Error_Non_Ascii_Chars: "La clave debe contener sólo caracteres ASCII",
  5434. SMForm_Email: "Email",
  5435. dialogMixinTranslations_Log_In: "Inicia sesión",
  5436. PasswordLogin_Wrong_Password: "Por favor introduce la clave correcta",
  5437. dialogMixinTranslations_login_facebook: "Iniciar sesión con Facebook",
  5438. SMLogin_Forgot_Password: "¿Has olvidado tu clave?",
  5439. dialogMixinTranslations_signup_switch_email: "Registrar con un email",
  5440. dialogMixinTranslations_forgot_password_mobile_new: "¿olvidaste?",
  5441. PasswordLogin_Error_General: "Error del servidor - No es posible iniciar sesión",
  5442. dialogMixinTranslations_Password_Reset_TooShort: "Tu contraseña debe tener entre 4 y 15 caracteres",
  5443. SMContainer_Show_Confirm: "Esta página está protegida con un login de miembro. Tus usuarios podrán ver esta página una vez hayan iniciado sesión.",
  5444. dialogMixinTranslations_Log_In_Title: "Inicia sesión",
  5445. SMContainer_Show_Confirm2: "Para administrar los miembros de tu página web, dirígete a tus Contactos desde el panel de Control y haz clic en Miembros del sitio.",
  5446. dialogMixinTranslations_switch_to_signup: "¿No tienes todavía una cuenta?",
  5447. SMContain_Cancel: "Cancelar",
  5448. SMLogin_Login: "Inicia sesión",
  5449. SMApply_Success1: "¡Enhorabuena! Tu solicitud de login de miembros fue enviada y su aprobación está pendiente.",
  5450. SMForm_Error_19976: "Email o clave incorrecto/a",
  5451. dialogMixinTranslations_signup_google: "Registrar con Google+",
  5452. SMApply_Success2: "El administrador de la página web te notificará a través de un email ({0}) una vez que tu solicitud sea aprobada. ",
  5453. SMForm_Error_18880: "Email address must be provided",
  5454. dialogMixinTranslations_login_switch_email: "Iniciar sesión con tu email",
  5455. SMForm_Error_Email_Invalid: "Email inválido",
  5456. SMProfile_Update_Details: "Update your details",
  5457. SMResetPass_Continue: "Continuar",
  5458. dialogMixinTranslations_forgot_password: "¿Has olvidado la contraseña?",
  5459. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Te hemos enviado un email con un enlace para restablecer tu contraseña.",
  5460. SMForm_Error_Password_Retype: "Las claves no son las mismas",
  5461. SMForm_Error_19972: "Token inválido",
  5462. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Restablecer Clave",
  5463. SMResetPass_Reset_Fail: "La clave no se pudo cambiar. Inténtalo de nuevo más tarde.",
  5464. SMRegister_Already_Have_User: "Ya tengo un usuario",
  5465. SMResetPassMail_confirmation_msg: "Te hemos enviado un email con un enlace que te permitirá restablecer tu contraseña.",
  5466. SMRegister_GO: "ENTRAR",
  5467. SMResetPass_New_Password: "Escribe una nueva clave",
  5468. SMResetPassMail_title: "Restablecer Clave",
  5469. SMContainer_Need_Log_In: "Para ver esta página, tienes que iniciar sesión.",
  5470. SMResetPass_Message: "Para configurar tu nueva clave, por favor rellena ambos campos a continuación. ",
  5471. SMForm_Error_19988: "Error de Validación",
  5472. SMForm_Error_General_Err: "Error del servidor. inténtalo de nuevo más tarde.",
  5473. SMForm_Retype_Password: "Escribe de nuevo la clave",
  5474. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Restablecer Clave",
  5475. PasswordLogin_AdministratorLogin: "Administrator Login",
  5476. SMProfile_Update: "Update",
  5477. SMResetPassMail_Enter_Email: "Por favor escribe tu dirección de correo",
  5478. SMForm_Error_19980: "Bloqueado por el dueño del sitio",
  5479. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Solo para invitados",
  5480. PasswordLogin_Cancel: "Cancel",
  5481. PasswordLogin_Submit: "OK",
  5482. SMForm_Error_19984: "Sesión Inválida"
  5483. },
  5484. fr: {
  5485. SMResetPass_Reset_Succ: "Vous avez réinitialisé votre mot de passe avec succès",
  5486. SMForm_Password: "Mot de passe",
  5487. SMLogin_Remember_Me: "Se Souvenir de Moi",
  5488. PasswordLogin_Password: "Mot de passe",
  5489. SMForm_Error_Password_Blank: "Veuillez saisir le mot de passe",
  5490. SMRegister_Login: "Connexion",
  5491. SMForm_Error_19999: "Utilisateur inconnu",
  5492. SMForm_Error_19958: "Votre demande est en attente d'approbation du propriétaire du site",
  5493. SMResetPass_Retype_Password: "Confirmez le mot de passe :",
  5494. SMForm_Error_Password_Length: "La longueur du mot de passe doit être entre {0} et {1}",
  5495. SMContainer_OK: "OK",
  5496. SMResetPassMail_Back_Login: "Retour à Connexion",
  5497. dialogMixinTranslations_forgot_password_mobile: "Mot de passe oublié ?",
  5498. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Votre mot de passe a été modifié.",
  5499. dialogMixinTranslations_login_google: "Se connecter avec Google+",
  5500. SMForm_Error_19995: "Cet email est déjà utilisé",
  5501. SMResetPassMail_confirmation_title: "Veuillez consulter votre boîte e-mail",
  5502. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Ressaisissez votre mot de passe ",
  5503. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Saisissez un nouveau mot de passe",
  5504. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Saisissez votre nouveau mot de passe ci-dessous",
  5505. SMLogin_OR: "Ou",
  5506. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Veuillez vérifier dans votre boîte e-mail",
  5507. SMRegister_sign_up: "Inscription",
  5508. dialogMixinTranslations_signup_facebook: "Se connecter avec Facebook",
  5509. SMForm_Error_Email_Blank: "Veuillez saisir l'e-mail",
  5510. PasswordLogin_Header: "Veuillez saisir un mot de passe afin d'accéder à cette page",
  5511. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Veuillez saisir le mot de passe ci-dessous.",
  5512. SMForm_Error_Non_Ascii_Chars: "Le mot de passe doit contenir uniquement des caractères ASCII",
  5513. SMForm_Email: "Email",
  5514. dialogMixinTranslations_Log_In: "Connexion",
  5515. PasswordLogin_Wrong_Password: "Veuillez saisir le mot de passe correct",
  5516. dialogMixinTranslations_login_facebook: "Se connecter avec Facebook",
  5517. SMLogin_Forgot_Password: "Mot de passe oublié ?",
  5518. dialogMixinTranslations_signup_switch_email: "Se connecter avec votre e-mail",
  5519. dialogMixinTranslations_forgot_password_mobile_new: "oublié ?",
  5520. PasswordLogin_Error_General: "Erreur serveur - Impossible de se connecter",
  5521. dialogMixinTranslations_Password_Reset_TooShort: "Le mot de passe doit comprendre entre 4 et 15 caractères",
  5522. SMContainer_Show_Confirm: "Cette page est protégée par une connexion membre. Vos utilisateurs verront cette page une fois qu'ils seront connectés.",
  5523. dialogMixinTranslations_Log_In_Title: "Connexion",
  5524. SMContainer_Show_Confirm2: "Pour gérer vos membres de site, allez à vos Contacts depuis le tableau de bord et cliquez sur Membres du site",
  5525. dialogMixinTranslations_switch_to_signup: "Vous n'avez pas de compte ?",
  5526. SMContain_Cancel: "Annulation",
  5527. SMLogin_Login: "Connexion",
  5528. SMApply_Success1: "Bravo ! Votre demande de connexion membre a été envoyée et est actuellement en attente d'approbation.",
  5529. SMForm_Error_19976: "L' email ou le mot de passe est incorrect",
  5530. dialogMixinTranslations_signup_google: "Se connecter avec Google+",
  5531. SMApply_Success2: "L'administrateur du site vous informera par email ({0}) lorsque votre demande aura été approuvée. ",
  5532. SMForm_Error_18880: "Email address must be provided",
  5533. dialogMixinTranslations_login_switch_email: "Se connecter avec votre e-mail",
  5534. SMForm_Error_Email_Invalid: "Email invalide",
  5535. SMProfile_Update_Details: "Update your details",
  5536. SMResetPass_Continue: "Continuer",
  5537. dialogMixinTranslations_forgot_password: "Mot de passe oublié ?",
  5538. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Nous vous avons envoyé un lien pour réinitialiser votre mot de passe.",
  5539. SMForm_Error_Password_Retype: "Les mots de passe ne sont pas identiques",
  5540. SMForm_Error_19972: "Token invalide",
  5541. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Réinitialiser Mot de Passe",
  5542. SMResetPass_Reset_Fail: "Votre mot de passe n'a pas pu être modifié. Veuillez réessayer ultérieurement.",
  5543. SMRegister_Already_Have_User: "J'ai déjà un nom d'utilisateur",
  5544. SMResetPassMail_confirmation_msg: "Un email avec un lien pour réinitialiser votre mot de passe vous a été envoyé",
  5545. SMRegister_GO: "OK",
  5546. SMResetPass_New_Password: "Saisissez un nouveau mot de passe",
  5547. SMResetPassMail_title: "Réinitialiser Mot de Passe",
  5548. SMContainer_Need_Log_In: "Pour voir cette page, vous devez être connecté",
  5549. SMResetPass_Message: "Pour définir votre nouveau mot de passe, veuillez le saisir dans les champs ci-dessous. ",
  5550. SMForm_Error_19988: "Erreur Validation",
  5551. SMForm_Error_General_Err: "Erreur de serveur. Veuillez réessayer plus tard.",
  5552. SMForm_Retype_Password: "Confirmez mot de passe",
  5553. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Réinitialiser Mot de Passe",
  5554. PasswordLogin_AdministratorLogin: "Administrator Login",
  5555. SMProfile_Update: "Update",
  5556. SMResetPassMail_Enter_Email: "Veuillez saisir votre adresse email",
  5557. SMForm_Error_19980: "Bloqué par le propriètaire du site",
  5558. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Espace visiteur",
  5559. PasswordLogin_Cancel: "Cancel",
  5560. PasswordLogin_Submit: "OK",
  5561. SMForm_Error_19984: "Session Invalide"
  5562. },
  5563. it: {
  5564. SMResetPass_Reset_Succ: "Hai ripristinato con successo la tua password.",
  5565. SMForm_Password: "Password",
  5566. SMLogin_Remember_Me: "Ricordami",
  5567. PasswordLogin_Password: "Password",
  5568. SMForm_Error_Password_Blank: "Il campo Password non può essere lasciato in bianco",
  5569. SMRegister_Login: "Login",
  5570. SMForm_Error_19999: "Utente sconosciuto",
  5571. SMForm_Error_19958: "La tua richiesta membro è in attesa di approvazione da parte per proprietario del sito",
  5572. SMResetPass_Retype_Password: "Digita nuovamente:",
  5573. SMForm_Error_Password_Length: "La lunghezza della password dev'essere compresa tra {0} e {1}",
  5574. SMContainer_OK: "OK",
  5575. SMResetPassMail_Back_Login: "Torna al Login",
  5576. dialogMixinTranslations_forgot_password_mobile: "Hai dimenticato la password?",
  5577. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "La tua password è cambiata.",
  5578. dialogMixinTranslations_login_google: "Accedi con Google+",
  5579. SMForm_Error_19995: "L'Email è già in utilizzo",
  5580. SMResetPassMail_confirmation_title: "Ti preghiamo di controllare la tua email",
  5581. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Inserisci di nuovo la tua password",
  5582. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Inserisci una nuova password",
  5583. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Inserisci la tua password qui sotto",
  5584. SMLogin_OR: "Oppure",
  5585. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Controlla la tua Mail",
  5586. SMRegister_sign_up: "Iscriviti",
  5587. dialogMixinTranslations_signup_facebook: "Iscriviti con Facebook",
  5588. SMForm_Error_Email_Blank: "Il campo Email non può essere lasciato in bianco",
  5589. PasswordLogin_Header: "Inserisci la password per visualizzare questa pagina",
  5590. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Inserisci la password qui sotto.",
  5591. SMForm_Error_Non_Ascii_Chars: "La password deve contenere solo caratteri ASCII",
  5592. SMForm_Email: "Email",
  5593. dialogMixinTranslations_Log_In: "Accedi",
  5594. PasswordLogin_Wrong_Password: "Ti preghiamo di inserire la password corretta",
  5595. dialogMixinTranslations_login_facebook: "Accedi con Facebook",
  5596. SMLogin_Forgot_Password: "Hai dimenticato la tua password?",
  5597. dialogMixinTranslations_signup_switch_email: "Iscriviti con la tua email",
  5598. dialogMixinTranslations_forgot_password_mobile_new: "dimenticata?",
  5599. PasswordLogin_Error_General: "Errore del server - Non è possibile effettuare l'accesso",
  5600. dialogMixinTranslations_Password_Reset_TooShort: "La password deve contenere dai 4 ai 15 caratteri",
  5601. SMContainer_Show_Confirm: "Questa pagina è protetta da un login membri. I tuoi utenti saranno in grado di vedere questa pagina una volta che avranno effettuato l'accesso.",
  5602. dialogMixinTranslations_Log_In_Title: "Accedi",
  5603. SMContainer_Show_Confirm2: "Per gestire i membri del tuo sito, vai su Contatti dal Pannello di Controllo e clicca Membri del Sito",
  5604. dialogMixinTranslations_switch_to_signup: "Non possiedi un account?",
  5605. SMContain_Cancel: "Cancella",
  5606. SMLogin_Login: "Login",
  5607. SMApply_Success1: "Successo! La tua richiesta di login membro è stata inviata ed è in attesa di approvazione.",
  5608. SMForm_Error_19976: "Email o password non corretta",
  5609. dialogMixinTranslations_signup_google: "Iscriviti con Google+",
  5610. SMApply_Success2: "L'amministratore del sito ti notificherà via email( {0} ) una volta che la tua richiesta è stata accettata ",
  5611. SMForm_Error_18880: "Email address must be provided",
  5612. dialogMixinTranslations_login_switch_email: "Accedi con la tua email",
  5613. SMForm_Error_Email_Invalid: "L'Email non è valida",
  5614. SMProfile_Update_Details: "Update your details",
  5615. SMResetPass_Continue: "Continua",
  5616. dialogMixinTranslations_forgot_password: "Hai dimenticato la password?",
  5617. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Ti abbiamo inviato una mail con il link per reimpostare la tua password.",
  5618. SMForm_Error_Password_Retype: "Le password non sono uguali",
  5619. SMForm_Error_19972: "Token non valido",
  5620. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Ripristina Password",
  5621. SMResetPass_Reset_Fail: "Non è stato possibile modificare la password. Prova nuovamente più tardi.",
  5622. SMRegister_Already_Have_User: "Sono un utente esistente",
  5623. SMResetPassMail_confirmation_msg: "Ti abbiamo inviato un'email con un link che ti permetterà di ripristinare la tua password",
  5624. SMRegister_GO: "VAI",
  5625. SMResetPass_New_Password: "Inserisci una nuova password",
  5626. SMResetPassMail_title: "Ripristina Password",
  5627. SMContainer_Need_Log_In: "Per visualizzare questa pagina, devi aver fatto il login.",
  5628. SMResetPass_Message: "Per impostare la tua nuova password, inseriscila per cortesia in entrambi i campi qui sotto. ",
  5629. SMForm_Error_19988: "Errore di Convalida",
  5630. SMForm_Error_General_Err: "Errore del server. Prova nuovamente più tardi.",
  5631. SMForm_Retype_Password: "Digita nuovamente la password",
  5632. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Ripristina Password",
  5633. PasswordLogin_AdministratorLogin: "Administrator Login",
  5634. SMProfile_Update: "Update",
  5635. SMResetPassMail_Enter_Email: "Ti preghiamo di inserire il tuo indirizzo email",
  5636. SMForm_Error_19980: "Bloccato dal proprietario del sito",
  5637. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Area Ospiti",
  5638. PasswordLogin_Cancel: "Cancel",
  5639. PasswordLogin_Submit: "OK",
  5640. SMForm_Error_19984: "Sessione non valida"
  5641. },
  5642. ja: {
  5643. SMResetPass_Reset_Succ: "パスワードがリセットされました!",
  5644. SMForm_Password: "パスワード",
  5645. SMLogin_Remember_Me: "ログインを保存する",
  5646. PasswordLogin_Password: "パスワード",
  5647. SMForm_Error_Password_Blank: "パスワードは必須項目です",
  5648. SMRegister_Login: "ログイン",
  5649. SMForm_Error_19999: "不明なユーザー",
  5650. SMForm_Error_19958: "会員登録はサイト管理者の承認待ちです",
  5651. SMResetPass_Retype_Password: "もう一度入力してください",
  5652. SMForm_Error_Password_Length: "{0}〜{1}文字以内のパスワードを入力してください",
  5653. SMContainer_OK: "OK",
  5654. SMResetPassMail_Back_Login: "ログインに戻る",
  5655. dialogMixinTranslations_forgot_password_mobile: "パスワードがわからない?",
  5656. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "パスワードが更新されました",
  5657. dialogMixinTranslations_login_google: "Google+ でログイン",
  5658. SMForm_Error_19995: "このメールアドレスはすでに登録されています",
  5659. SMResetPassMail_confirmation_title: "新着メールをご確認ください",
  5660. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "パスワードを再入力",
  5661. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "新しいパスワードを入力してください",
  5662. dialogMixinTranslations_RESET_PASSWORD_TEXT: "新しいパスワードを入力",
  5663. SMLogin_OR: "/",
  5664. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "メールをご確認ください",
  5665. SMRegister_sign_up: "新規登録",
  5666. dialogMixinTranslations_signup_facebook: "Facebook で登録",
  5667. SMForm_Error_Email_Blank: "メールアドレスは必須項目です",
  5668. PasswordLogin_Header: "このページを開くためには、パスワードを入力する必要があります。",
  5669. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "パスワードを入力してください。",
  5670. SMForm_Error_Non_Ascii_Chars: "パスワードにはASCII(アスキー)文字のみ使用してください",
  5671. SMForm_Email: "メールアドレス",
  5672. dialogMixinTranslations_Log_In: "ログイン",
  5673. PasswordLogin_Wrong_Password: "正しいパスワードを入力してください",
  5674. dialogMixinTranslations_login_facebook: "Facebook でログイン",
  5675. SMLogin_Forgot_Password: "パスワードがわからない?",
  5676. dialogMixinTranslations_signup_switch_email: "メールで登録",
  5677. dialogMixinTranslations_forgot_password_mobile_new: "お忘れですか?",
  5678. PasswordLogin_Error_General: "サーバーエラー:ログインできませんでした",
  5679. dialogMixinTranslations_Password_Reset_TooShort: "4-15文字のパスワードを入力してください",
  5680. SMContainer_Show_Confirm: "このページは会員専用ページです。アクセスには会員ログインが必要です。",
  5681. dialogMixinTranslations_Log_In_Title: "ログイン",
  5682. SMContainer_Show_Confirm2: "サイト会員を管理するには、マイサイトから「コンタクト」をクリックし「サイト会員」を選択してください。",
  5683. dialogMixinTranslations_switch_to_signup: "アカウントを持っていない?",
  5684. SMContain_Cancel: "キャンセル",
  5685. SMLogin_Login: "ログイン",
  5686. SMApply_Success1: "会員登録の申請を送信しました。",
  5687. SMForm_Error_19976: "メールアドレスまたはパスワードが有効ではありません",
  5688. dialogMixinTranslations_signup_google: "Google+ で登録",
  5689. SMApply_Success2: "会員登録の承認後、サイト管理者から「{0}」に通知メールが送信されます。 ",
  5690. SMForm_Error_18880: "Email address must be provided",
  5691. dialogMixinTranslations_login_switch_email: "メールでログイン",
  5692. SMForm_Error_Email_Invalid: "メールアドレスが有効ではありません",
  5693. SMProfile_Update_Details: "詳細を更新してください",
  5694. SMResetPass_Continue: "続行",
  5695. dialogMixinTranslations_forgot_password: "パスワードがわからない?",
  5696. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "パスワード再設定用のリンクをお送りしました。",
  5697. SMForm_Error_Password_Retype: "パスワードが一致しません",
  5698. SMForm_Error_19972: "トークンが有効ではありません",
  5699. dialogMixinTranslations_RESET_PASSWORD_TITLE: "パスワードをリセット",
  5700. SMResetPass_Reset_Fail: "パスワードを変更できませんでした。もう一度お試しください。",
  5701. SMRegister_Already_Have_User: "登録済みの方はこちら",
  5702. SMResetPassMail_confirmation_msg: "メールのリンクをクリックしてパスワードをリセットしてください。",
  5703. SMRegister_GO: "GO",
  5704. SMResetPass_New_Password: "新しいパスワードを入力してください",
  5705. SMResetPassMail_title: "パスワードをリセット",
  5706. SMContainer_Need_Log_In: "ページにアクセスするには、ログインする必要があります",
  5707. SMResetPass_Message: "こちらに新しいパスワードを入力してください。 ",
  5708. SMForm_Error_19988: "認証エラー",
  5709. SMForm_Error_General_Err: "サーバーエラーが発生しました。もう一度お試しください",
  5710. SMForm_Retype_Password: "もう一度入力してください",
  5711. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "パスワードをリセット",
  5712. PasswordLogin_AdministratorLogin: "管理者ログイン",
  5713. SMProfile_Update: "更新",
  5714. SMResetPassMail_Enter_Email: "メールアドレスを入力してください",
  5715. SMForm_Error_19980: "サイト管理者からブロックされています",
  5716. dialogMixinTranslations_GUEST_LOGIN_TITLE: "ゲストエリア",
  5717. PasswordLogin_Cancel: "キャンセル",
  5718. PasswordLogin_Submit: "OK",
  5719. SMForm_Error_19984: "無効なセッションです"
  5720. },
  5721. ko: {
  5722. SMResetPass_Reset_Succ: "비밀번호가 성공적으로 변경되었습니다.",
  5723. SMForm_Password: "비밀번호",
  5724. SMLogin_Remember_Me: "내 계정 기억하기",
  5725. PasswordLogin_Password: "비밀번호",
  5726. SMForm_Error_Password_Blank: "비밀번호는 필수 입력사항입니다.",
  5727. SMRegister_Login: "로그인",
  5728. SMForm_Error_19999: "알 수 없는 사용자입니다.",
  5729. SMForm_Error_19958: "사이트 소유자의 회원요청 승인을 기다리고 있습니다.",
  5730. SMResetPass_Retype_Password: "비밀번호 확인",
  5731. SMForm_Error_Password_Length: "비밀번호는 {0}자 이상 {1}자 이하로 작성하세요.",
  5732. SMContainer_OK: "확인",
  5733. SMResetPassMail_Back_Login: "로그인으로 돌아가기",
  5734. dialogMixinTranslations_forgot_password_mobile: "비밀번호 찾기",
  5735. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "비밀번호 재설정 완료!",
  5736. dialogMixinTranslations_login_google: "Google+ 로그인",
  5737. SMForm_Error_19995: "이미 존재하는 이메일입니다.",
  5738. SMResetPassMail_confirmation_title: "이메일을 확인해 주세요.",
  5739. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "비밀번호 확인",
  5740. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "새로운 비밀번호",
  5741. dialogMixinTranslations_RESET_PASSWORD_TEXT: "비밀번호를 아래에 입력하세요.",
  5742. SMLogin_OR: "또는",
  5743. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "이메일을 확인하세요!",
  5744. SMRegister_sign_up: "가입하기",
  5745. dialogMixinTranslations_signup_facebook: "Facebook으로 가입",
  5746. SMForm_Error_Email_Blank: "이메일은 필수 입력사항입니다.",
  5747. PasswordLogin_Header: "비밀번호를 입력하세요.",
  5748. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "비밀번호를 입력하세요.",
  5749. SMForm_Error_Non_Ascii_Chars: "비밀번호는 반드시 ASCII 문자를 포함해야합니다.",
  5750. SMForm_Email: "이메일",
  5751. dialogMixinTranslations_Log_In: "로그인하세요.",
  5752. PasswordLogin_Wrong_Password: "올바른 비밀번호를 입력하세요.",
  5753. dialogMixinTranslations_login_facebook: "Facebook 로그인",
  5754. SMLogin_Forgot_Password: "비밀번호 찾기",
  5755. dialogMixinTranslations_signup_switch_email: "이메일로 가입",
  5756. dialogMixinTranslations_forgot_password_mobile_new: "비밀번호 찾기",
  5757. PasswordLogin_Error_General: "로그인 실패 - 서버 오류",
  5758. dialogMixinTranslations_Password_Reset_TooShort: "비밀번호는 4-15자로 작성하세요.",
  5759. SMContainer_Show_Confirm: "회원 로그인 기능으로 보호되어 있는 페이지입니다. 방문자들은 로그인 후에 이 페이지에 접속할 수 있습니다.",
  5760. dialogMixinTranslations_Log_In_Title: "로그인",
  5761. SMContainer_Show_Confirm2: '사이트 회원을 관리하려면 대시보드에서 "연락처 관리"페이지로 이동해 "사이트 회원" 탭을 클릭하세요.',
  5762. dialogMixinTranslations_switch_to_signup: " ",
  5763. SMContain_Cancel: "취소",
  5764. SMLogin_Login: "로그인",
  5765. SMApply_Success1: "성공적으로 회원가입 요청이 이루어졌습니다! 현재 회원가입 승인을 기다리고 있습니다.",
  5766. SMForm_Error_19976: "잘못된 이메일 또는 비밀번호입니다.",
  5767. dialogMixinTranslations_signup_google: "Google+로 가입",
  5768. SMApply_Success2: "회원가입이 승인되면 이메일로 알려드립니다.",
  5769. SMForm_Error_18880: "이메일 주소를 입력하세요!",
  5770. dialogMixinTranslations_login_switch_email: "이메일로 로그인",
  5771. SMForm_Error_Email_Invalid: "유효하지 않은 이메일 주소입니다.",
  5772. SMProfile_Update_Details: "내 세부정보를 업데이트하세요.",
  5773. SMResetPass_Continue: "계속",
  5774. dialogMixinTranslations_forgot_password: "비밀번호 찾기",
  5775. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "비밀번호 재설정 링크를 이메일로 발송했습니다.",
  5776. SMForm_Error_Password_Retype: "비밀번호를 다시 입력해 주세요.",
  5777. SMForm_Error_19972: "유효하지 않은 토큰입니다.",
  5778. dialogMixinTranslations_RESET_PASSWORD_TITLE: "비밀번호 재설정",
  5779. SMResetPass_Reset_Fail: "비밀번호를 변경할 수 없습니다. 잠시후에 다시 시도하세요.",
  5780. SMRegister_Already_Have_User: "회원인 경우",
  5781. SMResetPassMail_confirmation_msg: "비밀번호 재설정 링크가 이메일로 발송되었습니다.",
  5782. SMRegister_GO: "확인",
  5783. SMResetPass_New_Password: "새로운 비밀번호",
  5784. SMResetPassMail_title: "비밀번호 재설정",
  5785. SMContainer_Need_Log_In: "이 페이지를 보려면 로그인하세요.",
  5786. SMResetPass_Message: "새 비밀번호를 설정하려면 다음을 입력해 주세요. ",
  5787. SMForm_Error_19988: "유효성 검사 오류",
  5788. SMForm_Error_General_Err: "서버 오류입니다. 잠시 후 다시 시도하세요.",
  5789. SMForm_Retype_Password: "비밀번호 확인",
  5790. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "비밀번호 재설정",
  5791. PasswordLogin_AdministratorLogin: "관리자 로그인",
  5792. SMProfile_Update: "업데이트",
  5793. SMResetPassMail_Enter_Email: "이메일 주소를 입력하세요.",
  5794. SMForm_Error_19980: "사이트 소유자에 의해 차단되었습니다.",
  5795. dialogMixinTranslations_GUEST_LOGIN_TITLE: "비공개 페이지",
  5796. PasswordLogin_Cancel: "취소",
  5797. PasswordLogin_Submit: "확인",
  5798. SMForm_Error_19984: "유효하지 않은 세션입니다."
  5799. },
  5800. pl: {
  5801. SMResetPass_Reset_Succ: "Zresetowanie hasła powiodło się.",
  5802. SMForm_Password: "Hasło",
  5803. SMLogin_Remember_Me: "Zapamietaj mnie",
  5804. PasswordLogin_Password: "Hasło",
  5805. SMForm_Error_Password_Blank: 'Pole "Hasło" nie możne być puste.',
  5806. SMRegister_Login: "Zaloguj się",
  5807. SMForm_Error_19999: "Nierozpoznany użytkownik",
  5808. SMForm_Error_19958: "Twoja prośba o login do witryny czeka na zatwierdzenie przez właściciela witryny.",
  5809. SMResetPass_Retype_Password: "Wpisz ponownie:",
  5810. SMForm_Error_Password_Length: "Długość hasła musi wynosić pomiędzy {0} a {1}",
  5811. SMContainer_OK: "OK",
  5812. SMResetPassMail_Back_Login: "Powrót do Loginu",
  5813. dialogMixinTranslations_forgot_password_mobile: "Zapomniałeś hasła?",
  5814. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Hasło zostało zmienione.",
  5815. dialogMixinTranslations_login_google: "Zaloguj się z Google+",
  5816. SMForm_Error_19995: "Email już istnieje",
  5817. SMResetPassMail_confirmation_title: "Sprawdź swój email",
  5818. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Powtórz hasło",
  5819. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Wpisz nowe hasło",
  5820. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Wpisz nowe hasło poniżej",
  5821. SMLogin_OR: "Lub",
  5822. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Sprawdź Swój Email",
  5823. SMRegister_sign_up: "Zarejestruj sie",
  5824. dialogMixinTranslations_signup_facebook: "Zarejestruj się z Facebook",
  5825. SMForm_Error_Email_Blank: 'Pole "Email" nie możne być puste.',
  5826. PasswordLogin_Header: "Wpisz hasło, aby zobaczyć tę stronę.",
  5827. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Wpisz hasło poniżej.",
  5828. SMForm_Error_Non_Ascii_Chars: "Hasło możne zawierać tylko znaki ASCII",
  5829. SMForm_Email: "Email",
  5830. dialogMixinTranslations_Log_In: "Zaloguj się",
  5831. PasswordLogin_Wrong_Password: "Wpisz poprawne hasło",
  5832. dialogMixinTranslations_login_facebook: "Zaloguj się z Facebook",
  5833. SMLogin_Forgot_Password: "Zapomniałeś hasła?",
  5834. dialogMixinTranslations_signup_switch_email: "Zarejestruj się przez Email",
  5835. dialogMixinTranslations_forgot_password_mobile_new: "Zapomniałeś?",
  5836. PasswordLogin_Error_General: "Błąd serwera - nie można się zalogować",
  5837. dialogMixinTranslations_Password_Reset_TooShort: "Hasło musi mieć 4-15 znaków",
  5838. SMContainer_Show_Confirm: "Ta strona jest zabezpieczona loginem witryny. Twoi użytkownicy zobaczą treść tej strony po zalogowaniu.",
  5839. dialogMixinTranslations_Log_In_Title: "Zaloguj się",
  5840. SMContainer_Show_Confirm2: "Aby zarządzać członkami witryny, idź do Kontaktów w Panelu i kliknij Członkowie Witryny",
  5841. dialogMixinTranslations_switch_to_signup: "Nie masz konta?",
  5842. SMContain_Cancel: "Anuluj",
  5843. SMLogin_Login: "Login",
  5844. SMApply_Success1: "Gratulujemy! Twoja prośba o członkostwo została wysłana i czeka na zatwierdzenie.",
  5845. SMForm_Error_19976: "Niepoprawny email lub hasło",
  5846. dialogMixinTranslations_signup_google: "Zarejestruj się z Google+",
  5847. SMApply_Success2: "Administrator powiadomi Cię w emailu,( {0} ) gdy twoja prośba zostanie zatwierdzona. ",
  5848. SMForm_Error_18880: "Email address must be provided",
  5849. dialogMixinTranslations_login_switch_email: "Zaloguj się przez Email",
  5850. SMForm_Error_Email_Invalid: "Nieprawidłowy Email",
  5851. SMProfile_Update_Details: "Zaktualizuj swoje dane",
  5852. SMResetPass_Continue: "Kontynuuj",
  5853. dialogMixinTranslations_forgot_password: "Zapomniałeś hasła?",
  5854. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Wysłaliśmy email z linkiem, który umożliwi ci zresetowanie hasła.",
  5855. SMForm_Error_Password_Retype: "Hasła nie są takie same",
  5856. SMForm_Error_19972: "Błędny token",
  5857. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Zresetuj Hasło",
  5858. SMResetPass_Reset_Fail: "Hasło nie mogło zostać zmienione. Spróbuj ponownie później.",
  5859. SMRegister_Already_Have_User: "Jestem już użytkownikiem",
  5860. SMResetPassMail_confirmation_msg: "Wysłaliśmy email z linkiem, który umożliwi Ci zresetowanie hasła.",
  5861. SMRegister_GO: "START",
  5862. SMResetPass_New_Password: "Wpisz nowe hasło",
  5863. SMResetPassMail_title: "Zresetuj Hasło",
  5864. SMContainer_Need_Log_In: "Musisz być zalogowany, aby zobaczyć tę stronę.",
  5865. SMResetPass_Message: "Aby skonfigurować nowe hasło, wpisz je w obydwu polach poniżej. ",
  5866. SMForm_Error_19988: "Błąd walidacji",
  5867. SMForm_Error_General_Err: "Błąd serwera. Spróbuj ponownie później.",
  5868. SMForm_Retype_Password: "Powtórz hasło",
  5869. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Zresetuj Hasło",
  5870. PasswordLogin_AdministratorLogin: "Login Administratora",
  5871. SMProfile_Update: "Aktualizuj",
  5872. SMResetPassMail_Enter_Email: "Wpisz swój adres email",
  5873. SMForm_Error_19980: "Zablokowane przez właściciela witryny",
  5874. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Strefa Gości",
  5875. PasswordLogin_Cancel: "Anuluj",
  5876. PasswordLogin_Submit: "OK",
  5877. SMForm_Error_19984: "Błędna Sesja"
  5878. },
  5879. ru: {
  5880. SMResetPass_Reset_Succ: "Вы успешно сменили пароль.",
  5881. SMForm_Password: "Пароль",
  5882. SMLogin_Remember_Me: "Запомнить меня",
  5883. PasswordLogin_Password: "Пароль",
  5884. SMForm_Error_Password_Blank: "Недопустимый пароль",
  5885. SMRegister_Login: "Войти",
  5886. SMForm_Error_19999: "Неизвестный пользователь",
  5887. SMForm_Error_19958: "Ваша регистрация ждет подтверждения владельца сайта",
  5888. SMResetPass_Retype_Password: "Повторите пароль:",
  5889. SMForm_Error_Password_Length: "Длина пароля должна быть от {0} до {1} знаков",
  5890. SMContainer_OK: "OK",
  5891. SMResetPassMail_Back_Login: "Назад",
  5892. dialogMixinTranslations_forgot_password_mobile: "Не помню пароль",
  5893. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Пароль успешно изменен.",
  5894. dialogMixinTranslations_login_google: "Войти через Google+",
  5895. SMForm_Error_19995: "Email уже зарегистрирован",
  5896. SMResetPassMail_confirmation_title: "Пожалуйста, проверьте ваш email",
  5897. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Повторите пароль",
  5898. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Новый пароль",
  5899. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Укажите новый пароль:",
  5900. SMLogin_OR: "или",
  5901. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Пожалуйста, проверьте ваш email",
  5902. SMRegister_sign_up: "Регистрация",
  5903. dialogMixinTranslations_signup_facebook: "Войти через Facebook",
  5904. SMForm_Error_Email_Blank: "Недопустимый еmail",
  5905. PasswordLogin_Header: "Для доступа к странице введите пароль",
  5906. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Пожалуйста, укажите пароль:",
  5907. SMForm_Error_Non_Ascii_Chars: "Пароль может содержать только символы ASCII",
  5908. SMForm_Email: "Email",
  5909. dialogMixinTranslations_Log_In: "Войти",
  5910. PasswordLogin_Wrong_Password: "Пожалуйста, введите правильный пароль",
  5911. dialogMixinTranslations_login_facebook: "Войти через Facebook",
  5912. SMLogin_Forgot_Password: "Забыли пароль?",
  5913. dialogMixinTranslations_signup_switch_email: "Войти через почту",
  5914. dialogMixinTranslations_forgot_password_mobile_new: "Не помню",
  5915. PasswordLogin_Error_General: "Ошибка сервера: вход не удался",
  5916. dialogMixinTranslations_Password_Reset_TooShort: "Пароль должен состоять из 4–15 знаков",
  5917. SMContainer_Show_Confirm: "Эта страница доступна только зарегистрированным пользователям. Посетители увидят ее, только указав email и пароль.",
  5918. dialogMixinTranslations_Log_In_Title: "Вход",
  5919. SMContainer_Show_Confirm2: "Чтобы управлять контактами пользователей сайта: Wix Home > Контакты > Пользователи",
  5920. dialogMixinTranslations_switch_to_signup: "У вас нет аккаунта?",
  5921. SMContain_Cancel: "Отменить",
  5922. SMLogin_Login: "Войти",
  5923. SMApply_Success1: "Отлично! Ваш запрос регистрации отправлен на подтверждение.",
  5924. SMForm_Error_19976: "Неверный email или пароль",
  5925. dialogMixinTranslations_signup_google: "Войти через Google+",
  5926. SMApply_Success2: "Как только ваш запрос будет подтвержден, администратор сайта отправит вам письмо на {0} ",
  5927. SMForm_Error_18880: "Email address must be provided",
  5928. dialogMixinTranslations_login_switch_email: "Войти через почту",
  5929. SMForm_Error_Email_Invalid: "Недопустимый еmail",
  5930. SMProfile_Update_Details: "Обновите ваши данные",
  5931. SMResetPass_Continue: "Продолжить",
  5932. dialogMixinTranslations_forgot_password: "Не помню пароль",
  5933. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Отправили вам ссылку для смены пароля.",
  5934. SMForm_Error_Password_Retype: "Пароли не совпадают",
  5935. SMForm_Error_19972: "Неверный токен",
  5936. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Смена пароля",
  5937. SMResetPass_Reset_Fail: "Не получилось сменить пароль. Попробуйте позже.",
  5938. SMRegister_Already_Have_User: "У меня уже есть аккаунт.",
  5939. SMResetPassMail_confirmation_msg: "Мы отправили вам ссылку для смены пароля.",
  5940. SMRegister_GO: "ОК",
  5941. SMResetPass_New_Password: "Новый пароль",
  5942. SMResetPassMail_title: "Смена пароля",
  5943. SMContainer_Need_Log_In: "Для доступа к странице введите пароль.",
  5944. SMResetPass_Message: "Введите ваш новый пароль ниже. ",
  5945. SMForm_Error_19988: "Ошибка валидации",
  5946. SMForm_Error_General_Err: "Ошибка сервера. Пожалуйста, попробуйте позже.",
  5947. SMForm_Retype_Password: "Повторите пароль",
  5948. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Сменить пароль",
  5949. PasswordLogin_AdministratorLogin: "Логин администратора",
  5950. SMProfile_Update: "Обновить",
  5951. SMResetPassMail_Enter_Email: "Пожалуйста, введите ваш email",
  5952. SMForm_Error_19980: "Заблокирован владельцем сайта",
  5953. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Зона для гостей",
  5954. PasswordLogin_Cancel: "Отменить",
  5955. PasswordLogin_Submit: "OK",
  5956. SMForm_Error_19984: "Неверная сессия"
  5957. },
  5958. nl: {
  5959. SMResetPass_Reset_Succ: "U hebt uw wachtwoord opnieuw ingesteld.",
  5960. SMForm_Password: "Wachtwoord",
  5961. SMLogin_Remember_Me: "Onthouden",
  5962. PasswordLogin_Password: "Wachtwoord",
  5963. SMForm_Error_Password_Blank: "Wachtwoord mag niet leeg worden gelaten",
  5964. SMRegister_Login: "Inloggen",
  5965. SMForm_Error_19999: "Onbekende gebruiker",
  5966. SMForm_Error_19958: "Uw verzoek om ledentoegang wacht op goedkeuring door de eigenaar van de website",
  5967. SMResetPass_Retype_Password: "Typ het opnieuw:",
  5968. SMForm_Error_Password_Length: "Het wachtwoord moet tussen de {0} en {1} tekens lang zijn",
  5969. SMContainer_OK: "OK",
  5970. SMResetPassMail_Back_Login: "Terug naar inloggen",
  5971. dialogMixinTranslations_forgot_password_mobile: "Wachtwoord vergeten?",
  5972. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Uw wachtwoord is gewijzigd.",
  5973. dialogMixinTranslations_login_google: "Inloggen met Google+",
  5974. SMForm_Error_19995: "E-mailadres is al in gebruik",
  5975. SMResetPassMail_confirmation_title: "Controleer uw e-mailberichten",
  5976. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Vul het wachtwoord opnieuw in",
  5977. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Vul een nieuw wachtwoord in",
  5978. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Vul hieronder het nieuwe wachtwoord in",
  5979. SMLogin_OR: "Of",
  5980. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Controleer uw e-mailberichten",
  5981. SMRegister_sign_up: "Aanmelden",
  5982. dialogMixinTranslations_signup_facebook: "Aanmelden met Facebook",
  5983. SMForm_Error_Email_Blank: "E-mailadres mag niet leeg worden gelaten",
  5984. PasswordLogin_Header: "Vul uw wachtwoord in om deze pagina weer te geven",
  5985. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Vul hieronder uw wachtwoord in.",
  5986. SMForm_Error_Non_Ascii_Chars: "Het wachtwoord mag alleen uit ASCII-tekens bestaan",
  5987. SMForm_Email: "E-mailadres",
  5988. dialogMixinTranslations_Log_In: "Inloggen",
  5989. PasswordLogin_Wrong_Password: "Vul het juiste wachtwoord in",
  5990. dialogMixinTranslations_login_facebook: "Inloggen met Facebook",
  5991. SMLogin_Forgot_Password: "Wachtwoord vergeten?",
  5992. dialogMixinTranslations_signup_switch_email: "Aanmelden met e-mail",
  5993. dialogMixinTranslations_forgot_password_mobile_new: "vergeten?",
  5994. PasswordLogin_Error_General: "Serverfout - inloggen mislukt",
  5995. dialogMixinTranslations_Password_Reset_TooShort: "Het wachtwoord moet tussen 4 en 15 tekens lang zijn",
  5996. SMContainer_Show_Confirm: "Voor deze pagina is inloggen vereist. Uw gebruikers kunnen deze pagina zien als ze zijn ingelogd.",
  5997. dialogMixinTranslations_Log_In_Title: "Inloggen",
  5998. SMContainer_Show_Confirm2: "Om uw siteleden te beheren gaat u op uw dashboard naar uw contacten en klikt u op Siteleden",
  5999. dialogMixinTranslations_switch_to_signup: "Hebt u geen account?",
  6000. SMContain_Cancel: "Annuleren",
  6001. SMLogin_Login: "Inloggen",
  6002. SMApply_Success1: "Uw verzoek om toegang is verzonden en wacht op goedkeuring.",
  6003. SMForm_Error_19976: "Verkeerd e-mailadres of wachtwoord",
  6004. dialogMixinTranslations_signup_google: "Aanmelden met Google+",
  6005. SMApply_Success2: "De administrator van de website zal u een e-mailbericht ( {0} ) sturen zodra uw verzoek is goedgekeurd ",
  6006. SMForm_Error_18880: "Email address must be provided",
  6007. dialogMixinTranslations_login_switch_email: "Inloggen met e-mail",
  6008. SMForm_Error_Email_Invalid: "Ongeldig e-mailadres",
  6009. SMProfile_Update_Details: "Werk uw gegevens bij",
  6010. SMResetPass_Continue: "Doorgaan",
  6011. dialogMixinTranslations_forgot_password: "Wachtwoord vergeten?",
  6012. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "We hebben u een e-mailbericht gestuurd met een link waarmee u uw wachtwoord opnieuw kunt instellen.",
  6013. SMForm_Error_Password_Retype: "De wachtwoorden komen niet overeen",
  6014. SMForm_Error_19972: "Ongeldige token",
  6015. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Stel het wachtwoord opnieuw in",
  6016. SMResetPass_Reset_Fail: "Het wachtwoord kon niet worden gewijzigd. Probeer het later opnieuw.",
  6017. SMRegister_Already_Have_User: "Ik ben al een gebruiker",
  6018. SMResetPassMail_confirmation_msg: "We hebben u een e-mailbericht gestuurd met een link waarmee u uw wachtwoord opnieuw kunt instellen",
  6019. SMRegister_GO: "VERDER",
  6020. SMResetPass_New_Password: "Vul een nieuw wachtwoord in",
  6021. SMResetPassMail_title: "Stel het wachtwoord opnieuw in",
  6022. SMContainer_Need_Log_In: "U moet ingelogd zijn om deze pagina te kunnen zien.",
  6023. SMResetPass_Message: "Om een nieuw wachtwoord in te stellen moet u het in beide velden hieronder invullen. ",
  6024. SMForm_Error_19988: "Validatiefout",
  6025. SMForm_Error_General_Err: "Serverfout. Probeer het later opnieuw.",
  6026. SMForm_Retype_Password: "Typ het wachtwoord opnieuw",
  6027. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Stel het wachtwoord opnieuw in",
  6028. PasswordLogin_AdministratorLogin: "Inloggen als administrator",
  6029. SMProfile_Update: "Bijwerken",
  6030. SMResetPassMail_Enter_Email: "Vul uw e-mailadres in",
  6031. SMForm_Error_19980: "Geblokkeerd door de eigenaar van de website",
  6032. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Ledentoegang",
  6033. PasswordLogin_Cancel: "Annuleren",
  6034. PasswordLogin_Submit: "OK",
  6035. SMForm_Error_19984: "Ongeldige sessie"
  6036. },
  6037. tr: {
  6038. SMResetPass_Reset_Succ: "Şifrenizi yeniden ayarlama başarılı.",
  6039. SMForm_Password: "Şifre",
  6040. SMLogin_Remember_Me: "Beni hatırla",
  6041. PasswordLogin_Password: "Şifre",
  6042. SMForm_Error_Password_Blank: "Şifre bos olamaz",
  6043. SMRegister_Login: "Giriş",
  6044. SMForm_Error_19999: "Bilinmeyen kullanıcı",
  6045. SMForm_Error_19958: "Üyelik talebiniz site sahibinden onay bekliyor",
  6046. SMResetPass_Retype_Password: "Yeniden girin:",
  6047. SMForm_Error_Password_Length: "Şifre uzunlugu {0} ile {1} arasında olmalıdır",
  6048. SMContainer_OK: "TAMAM",
  6049. SMResetPassMail_Back_Login: "Giriş'e Dön",
  6050. dialogMixinTranslations_forgot_password_mobile: "Sifrenizi unuttunuz mu?",
  6051. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Şifreniz değiştirildi.",
  6052. dialogMixinTranslations_login_google: "Google+ ile giriş yapın",
  6053. SMForm_Error_19995: "Bu e-posta kullanımda bile",
  6054. SMResetPassMail_confirmation_title: "Lütfen e-postanızı kontrol edin",
  6055. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Şifrenizi tekrar girin",
  6056. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Yeni bir şifre girin",
  6057. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Yeni şifrenizi aşağıya girin",
  6058. SMLogin_OR: "Veya",
  6059. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Lütfen E-Postanızı Kontrol Edin",
  6060. SMRegister_sign_up: "Kaydol",
  6061. dialogMixinTranslations_signup_facebook: "Facebook ile hesabınızı oluşturun",
  6062. SMForm_Error_Email_Blank: "E-posta boş olamaz",
  6063. PasswordLogin_Header: "Bu sayfayi görüntülemek için şifreyi girin",
  6064. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Lütfen aşağıya şifrenizi girin.",
  6065. SMForm_Error_Non_Ascii_Chars: "Sifre sadece ASCII karakterleri içermelidir",
  6066. SMForm_Email: "E-posta",
  6067. dialogMixinTranslations_Log_In: "Giriş",
  6068. PasswordLogin_Wrong_Password: "Lütfen doğru şifreyi girin",
  6069. dialogMixinTranslations_login_facebook: "Facebook ile giriş yapın",
  6070. SMLogin_Forgot_Password: "Sifrenizi unuttunuz mu?",
  6071. dialogMixinTranslations_signup_switch_email: "E-Postanızla hesabınızı oluşturun",
  6072. dialogMixinTranslations_forgot_password_mobile_new: "Unuttunuz mu?",
  6073. PasswordLogin_Error_General: "Sunucu hatası - -Oturum açılamıyor",
  6074. dialogMixinTranslations_Password_Reset_TooShort: "Şifreniz 4-15 karakter uzunluğunda olmalıdır",
  6075. SMContainer_Show_Confirm: "Bu sayfa üye girişiyle korunmaktadır. Kullanıcılarınız giriş yaptıktan sonra bu sayfayı görebilecekler.",
  6076. dialogMixinTranslations_Log_In_Title: "Giriş",
  6077. SMContainer_Show_Confirm2: "Sitenizin üyelerini yönetmek için lütfen yönetim panonuzda Kişiler'e gidin ve Site Üyeleri'ne tıklayın.",
  6078. dialogMixinTranslations_switch_to_signup: "Bir hesabınız yok mu? ",
  6079. SMContain_Cancel: "İptal",
  6080. SMLogin_Login: "Giriş",
  6081. SMApply_Success1: "Başarılı! Üye girişi talebiniz gönderildi ve onay bekliyor.",
  6082. SMForm_Error_19976: "Yanlış e-posta veya şifre",
  6083. dialogMixinTranslations_signup_google: "Google+ ile hesabınızı oluşturun",
  6084. SMApply_Success2: "Talebiniz onaylandığında site yöneticisi size e-posta( {0} ) yoluyla bildirecektir ",
  6085. SMForm_Error_18880: "Email address must be provided",
  6086. dialogMixinTranslations_login_switch_email: "E-Postanızla giriş yapın",
  6087. SMForm_Error_Email_Invalid: "E-posta geçersiz",
  6088. SMProfile_Update_Details: "Bilgilerinizi güncelleyin",
  6089. SMResetPass_Continue: "Devam",
  6090. dialogMixinTranslations_forgot_password: "Sifrenizi unuttunuz mu?",
  6091. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Sifrenizi yenilemeniz için size bir e-posta gönderdik.",
  6092. SMForm_Error_Password_Retype: "Şifreler aynı degil",
  6093. SMForm_Error_19972: "Geçersiz jeton",
  6094. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Şifreyi Sıfırla",
  6095. SMResetPass_Reset_Fail: "Şifre değiştirilemedi. Daha sonra tekrar deneyin.",
  6096. SMRegister_Already_Have_User: "Zaten bir kullanıcıyım",
  6097. SMResetPassMail_confirmation_msg: "Size şifrenizi sıfırlamanızı sağlayacak bir bağlantı içeren bir e-posta gönderdik.",
  6098. SMRegister_GO: "GIT",
  6099. SMResetPass_New_Password: "Yeni bir şifre girin",
  6100. SMResetPassMail_title: "Şifreyi Sıfırla",
  6101. SMContainer_Need_Log_In: "Bu sayfayı görüntülemek için giriş yapmanız gerekir.",
  6102. SMResetPass_Message: "Yeni şifrenizi belirlemek için lütfen aşağıdaki iki alana da girin. ",
  6103. SMForm_Error_19988: "Doğrulama Hatası",
  6104. SMForm_Error_General_Err: "Sunucu hatası. Daha sonra yeniden deneyin.",
  6105. SMForm_Retype_Password: "Şifreyi yeniden yazın",
  6106. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Şifreyi Sıfırla",
  6107. PasswordLogin_AdministratorLogin: "Yönetici Girişi",
  6108. SMProfile_Update: "Güncelle",
  6109. SMResetPassMail_Enter_Email: "Lütfen e-posta adresinizi girin",
  6110. SMForm_Error_19980: "Site sahibi tarafindan bloke edildi",
  6111. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Misafir Alanı",
  6112. PasswordLogin_Cancel: "İptal",
  6113. PasswordLogin_Submit: "Tamam",
  6114. SMForm_Error_19984: "Geçersiz Oturum"
  6115. },
  6116. sv: {
  6117. SMResetPass_Reset_Succ: "Du har återställt ditt lösenord.",
  6118. SMForm_Password: "Lösenord",
  6119. SMLogin_Remember_Me: "Kom ihåg mig",
  6120. PasswordLogin_Password: "Lösenord",
  6121. SMForm_Error_Password_Blank: "Lösenord kan inte vara tomt",
  6122. SMRegister_Login: "Logga in",
  6123. SMForm_Error_19999: "Okänd användare",
  6124. SMForm_Error_19958: "Din medlemsbegäran väntar på godkännande från sidans ägare",
  6125. SMResetPass_Retype_Password: "Skriv in igen:",
  6126. SMForm_Error_Password_Length: "Lösenordets längd måste vara mellan {0} och {1}",
  6127. SMContainer_OK: "OK",
  6128. SMResetPassMail_Back_Login: "Tillbaka till inloggning",
  6129. dialogMixinTranslations_forgot_password_mobile: "Glömt ditt lösenord?",
  6130. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Ditt lösenord har ändrats.",
  6131. dialogMixinTranslations_login_google: "Logga in med Google+",
  6132. SMForm_Error_19995: "E-posten är upptagen",
  6133. SMResetPassMail_confirmation_title: "Kontrollera din e-post",
  6134. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Skriv in lösenord igen",
  6135. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Ange ett nytt lösenord",
  6136. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Skriv in ditt nya lösenord nedan",
  6137. SMLogin_OR: "Eller",
  6138. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Vänligen kontrollera din e-post",
  6139. SMRegister_sign_up: "Registrera dig",
  6140. dialogMixinTranslations_signup_facebook: "Registrera dig med Facebook",
  6141. SMForm_Error_Email_Blank: "E-post kan inte vara tom",
  6142. PasswordLogin_Header: "Skriv in lösenord för att visa sidan",
  6143. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Vänligen skriv in lösenord nedan.",
  6144. SMForm_Error_Non_Ascii_Chars: "Lösenord får endast innehålla ASCII-tecken",
  6145. SMForm_Email: "E-post",
  6146. dialogMixinTranslations_Log_In: "logga in",
  6147. PasswordLogin_Wrong_Password: "Ange rätt lösenord",
  6148. dialogMixinTranslations_login_facebook: "Logga in med Facebook",
  6149. SMLogin_Forgot_Password: "Glömt ditt lösenord?",
  6150. dialogMixinTranslations_signup_switch_email: "Registrera dig med e-post",
  6151. dialogMixinTranslations_forgot_password_mobile_new: "glömt?",
  6152. PasswordLogin_Error_General: "Serverfel – kunde inte logga in",
  6153. dialogMixinTranslations_Password_Reset_TooShort: "Lösenord måste vara 4-15 tecken",
  6154. SMContainer_Show_Confirm: "Denna sida skyddas med en medlemsinloggning. Dina besökare kan se den här sidan när de har loggat in.",
  6155. dialogMixinTranslations_Log_In_Title: "Logga in",
  6156. SMContainer_Show_Confirm2: "För att hantera dina sidas medlemmar, gå till dina Kontakter från din Översikt och klicka på Sidmedlemmar",
  6157. dialogMixinTranslations_switch_to_signup: "Har du inget konto?",
  6158. SMContain_Cancel: "Avbryt",
  6159. SMLogin_Login: "Logga in",
  6160. SMApply_Success1: "Klart! Din begäran om medlemsinloggning har skickats och väntar på godkännande.",
  6161. SMForm_Error_19976: "Fel e-post eller lösenord",
  6162. dialogMixinTranslations_signup_google: "Registrera dig med Google+",
  6163. SMApply_Success2: "Sidans administratör meddelar dig via e-post ({0}) så fort din begäran har godkänts ",
  6164. SMForm_Error_18880: "Email address must be provided",
  6165. dialogMixinTranslations_login_switch_email: "Logga in med e-post",
  6166. SMForm_Error_Email_Invalid: "Ogiltig e-post",
  6167. SMProfile_Update_Details: "Uppdatera dina uppgifter",
  6168. SMResetPass_Continue: "Fortsätt",
  6169. dialogMixinTranslations_forgot_password: "Glömt ditt lösenord?",
  6170. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Vi har skickat ett mejl med en länk som gör att du kan återställa ditt lösenord.",
  6171. SMForm_Error_Password_Retype: "Lösenordet matchar inte varandra",
  6172. SMForm_Error_19972: "Ogiltig token",
  6173. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Återställ lösenord",
  6174. SMResetPass_Reset_Fail: "Lösenordet kunde inte ändras. Försök igen senare.",
  6175. SMRegister_Already_Have_User: "Jag är redan en användare",
  6176. SMResetPassMail_confirmation_msg: "Vi har skickat ett mejl med en länk som gör att du kan återställa ditt lösenord",
  6177. SMRegister_GO: "KÖR",
  6178. SMResetPass_New_Password: "Ange ett nytt lösenord",
  6179. SMResetPassMail_title: "Återställ lösenord",
  6180. SMContainer_Need_Log_In: "Du måste vara inloggad för att visa den här sidan.",
  6181. SMResetPass_Message: "Ange ett nytt lösenord genom att skriva in det i båda fälten nedan. ",
  6182. SMForm_Error_19988: "Valideringsfel",
  6183. SMForm_Error_General_Err: "Serverfel. försök igen senare.",
  6184. SMForm_Retype_Password: "Skriv in lösenord igen",
  6185. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Återställ lösenord",
  6186. PasswordLogin_AdministratorLogin: "Adminstratörsinloggning",
  6187. SMProfile_Update: "Uppdatera",
  6188. SMResetPassMail_Enter_Email: "Skriv in din e-postadress",
  6189. SMForm_Error_19980: "Blockerad av sidans ägare",
  6190. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Gästområde",
  6191. PasswordLogin_Cancel: "Avbryt",
  6192. PasswordLogin_Submit: "OK",
  6193. SMForm_Error_19984: "Ogiltig session"
  6194. },
  6195. pt: {
  6196. SMResetPass_Reset_Succ: "Você redefiniu sua senha com sucesso.",
  6197. SMForm_Password: "Senha",
  6198. SMLogin_Remember_Me: "Lembre-se de mim",
  6199. PasswordLogin_Password: "Senha",
  6200. SMForm_Error_Password_Blank: "O campo da senha não pode estar vazio",
  6201. SMRegister_Login: "Login",
  6202. SMForm_Error_19999: "Usuário desconhecido",
  6203. SMForm_Error_19958: "Seu pedido de login está aguardando a aprovação do proprietário do site",
  6204. SMResetPass_Retype_Password: "Digite novamente:",
  6205. SMForm_Error_Password_Length: "Senha deve ter entre {0} e {1} caracteres",
  6206. SMContainer_OK: "OK",
  6207. SMResetPassMail_Back_Login: "Voltar para Login",
  6208. dialogMixinTranslations_forgot_password_mobile: "Esqueceu sua senha?",
  6209. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Sua senha foi alterada.",
  6210. dialogMixinTranslations_login_google: "Login com Google+",
  6211. SMForm_Error_19995: "E-mail já está sendo usado",
  6212. SMResetPassMail_confirmation_title: "Por favor, verifique seu email",
  6213. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Digite sua senha novamente",
  6214. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Insira uma nova senha",
  6215. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Insira sua nova senha abaixo",
  6216. SMLogin_OR: "Ou",
  6217. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Por favor, verifique seu email.",
  6218. SMRegister_sign_up: "Registre-se",
  6219. dialogMixinTranslations_signup_facebook: "Registre-se com Facebook",
  6220. SMForm_Error_Email_Blank: "Campo E-mail não pode estar vazio",
  6221. PasswordLogin_Header: "Insira a senha para ver esta página",
  6222. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Por favor, insira a senha abaixo.",
  6223. SMForm_Error_Non_Ascii_Chars: "A senha deve conter apenas caracteres ASCII",
  6224. SMForm_Email: "E-mail",
  6225. dialogMixinTranslations_Log_In: "Login",
  6226. PasswordLogin_Wrong_Password: "Por favor, insira a senha correta",
  6227. dialogMixinTranslations_login_facebook: "Login com Facebook",
  6228. SMLogin_Forgot_Password: "Esqueceu sua senha?",
  6229. dialogMixinTranslations_signup_switch_email: "Registre-se com email",
  6230. dialogMixinTranslations_forgot_password_mobile_new: "esqueceu?",
  6231. PasswordLogin_Error_General: "Erro de servidor - Não foi possível fazer login",
  6232. dialogMixinTranslations_Password_Reset_TooShort: "A senha deve ter entre 4 e 15 caracteres",
  6233. SMContainer_Show_Confirm: "Esta página está protegida com login de membros. Seus usuários poderão ver esta página depois de fazerem login.",
  6234. dialogMixinTranslations_Log_In_Title: "Login",
  6235. SMContainer_Show_Confirm2: "Para gerenciar os membros do seu site, vá em seus Contatos a partir do Painel de Controle e clique em 'Membros do site'",
  6236. dialogMixinTranslations_switch_to_signup: "Ainda não tem uma conta?",
  6237. SMContain_Cancel: "Cancelar",
  6238. SMLogin_Login: "Login",
  6239. SMApply_Success1: "Seu pedido de login foi enviado com sucesso e aguarda aprovação.",
  6240. SMForm_Error_19976: "E-mail ou senha incorreta",
  6241. dialogMixinTranslations_signup_google: "Registre-se com Google+",
  6242. SMApply_Success2: "O administrador do site irá enviar-lhe uma notificação via email( {0} ) assim que o pedido for aprovado ",
  6243. SMForm_Error_18880: "Email address must be provided",
  6244. dialogMixinTranslations_login_switch_email: "Login com email",
  6245. SMForm_Error_Email_Invalid: "Email inválido",
  6246. SMProfile_Update_Details: "Update your details",
  6247. SMResetPass_Continue: "Continuar",
  6248. dialogMixinTranslations_forgot_password: "Esqueceu sua senha?",
  6249. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Enviamos um email com o link para redefinir sua senha. ",
  6250. SMForm_Error_Password_Retype: "Senhas não correspondem",
  6251. SMForm_Error_19972: "Token Inválido",
  6252. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Redefinir Senha",
  6253. SMResetPass_Reset_Fail: "Não foi possível alterar a senha. Tente novamente mais tarde.",
  6254. SMRegister_Already_Have_User: "Já sou usuário",
  6255. SMResetPassMail_confirmation_msg: "Enviamos um e-mail com um link que lhe permitirá redefinir sua senha",
  6256. SMRegister_GO: "OK",
  6257. SMResetPass_New_Password: "Insira uma nova senha",
  6258. SMResetPassMail_title: "Redefinir Senha",
  6259. SMContainer_Need_Log_In: "Para ver esta página, você precisa fazer login.",
  6260. SMResetPass_Message: "Para definir sua nova senha, por favor, digite-a nos dois campos abaixo: ",
  6261. SMForm_Error_19988: "Erro de Validação",
  6262. SMForm_Error_General_Err: "Erro de servidor. tente novamente mais tarde.",
  6263. SMForm_Retype_Password: "Digite sua senha novamente",
  6264. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Redefinir Senha",
  6265. PasswordLogin_AdministratorLogin: "Login de administrador",
  6266. SMProfile_Update: "Update",
  6267. SMResetPassMail_Enter_Email: "Por favor, insira seu endereço de e-mail",
  6268. SMForm_Error_19980: "Bloqueado pelo proprietário do site",
  6269. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Área de convidados",
  6270. PasswordLogin_Cancel: "Cancelar",
  6271. PasswordLogin_Submit: "OK",
  6272. SMForm_Error_19984: "Sessão Inválida"
  6273. },
  6274. no: {
  6275. SMResetPass_Reset_Succ: "Du har nå tilbakestillt passordet.",
  6276. SMForm_Password: "Passord",
  6277. SMLogin_Remember_Me: "Husk meg",
  6278. PasswordLogin_Password: "Passord",
  6279. SMForm_Error_Password_Blank: "Passordet kan ikke stå tomt",
  6280. SMRegister_Login: "Logg inn",
  6281. SMForm_Error_19999: "Ukjent bruker",
  6282. SMForm_Error_19958: "Din medlemsforespørsel venter godkjenning fra nettstedets eier",
  6283. SMResetPass_Retype_Password: "Skriv på nytt:",
  6284. SMForm_Error_Password_Length: "Passordets lengde må være mellom {0} og {1}",
  6285. SMContainer_OK: "OK",
  6286. SMResetPassMail_Back_Login: "Tilbake til innlogging",
  6287. dialogMixinTranslations_forgot_password_mobile: "Glemt passordet?",
  6288. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Passordet ditt har blitt endret.",
  6289. dialogMixinTranslations_login_google: "Logg inn med Google+",
  6290. SMForm_Error_19995: "E-post er allerede tatt",
  6291. SMResetPassMail_confirmation_title: "Vennligst sjekk e-posten din",
  6292. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Skriv inn passord på nytt",
  6293. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Skriv inn et nytt passord",
  6294. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Skriv inn ditt nye passord nedenfor",
  6295. SMLogin_OR: "Eller",
  6296. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Vennligst sjekk e-posten din",
  6297. SMRegister_sign_up: "Registrer deg",
  6298. dialogMixinTranslations_signup_facebook: "Registrer deg med Facebook",
  6299. SMForm_Error_Email_Blank: "E-post kan ikke stå tomt",
  6300. PasswordLogin_Header: "Skriv inn passord for å se denne siden",
  6301. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Vennligst oppgi passord nedenfor.",
  6302. SMForm_Error_Non_Ascii_Chars: "Passordet må kun inneholde ASCII-tegn",
  6303. SMForm_Email: "E-post",
  6304. dialogMixinTranslations_Log_In: "Logg inn",
  6305. PasswordLogin_Wrong_Password: "Vennligst oppgi riktig passord",
  6306. dialogMixinTranslations_login_facebook: "Logg inn med Facebook",
  6307. SMLogin_Forgot_Password: "Glemt passordet?",
  6308. dialogMixinTranslations_signup_switch_email: "Registrer deg med e-post",
  6309. dialogMixinTranslations_forgot_password_mobile_new: "glemt?",
  6310. PasswordLogin_Error_General: "Serverfeil - kan ikke logge på",
  6311. dialogMixinTranslations_Password_Reset_TooShort: "Passordet bestå av 4-15 tegn",
  6312. SMContainer_Show_Confirm: "Denne siden er beskyttet med et medlems pålogging. Brukerne vil kunne se denne siden når de er innlogget.",
  6313. dialogMixinTranslations_Log_In_Title: "Logg inn",
  6314. SMContainer_Show_Confirm2: "For å administrere nettstedets medlemmer, gå til dine kontakter fra dashbordet og klikk nettstedmedlemmer",
  6315. dialogMixinTranslations_switch_to_signup: "Har du ikke en konto?",
  6316. SMContain_Cancel: "Avbryt",
  6317. SMLogin_Login: "Logg inn",
  6318. SMApply_Success1: "Supert! Din forespørsel om medlemsinnlogging er sendt og venter på godkjenning.",
  6319. SMForm_Error_19976: "Feil e-post eller passord",
  6320. dialogMixinTranslations_signup_google: "Registrer deg med Google+",
  6321. SMApply_Success2: "Nettstedets administrator vil varsle deg via e-post( {0} ) med en gang forespørselen din har blitt godkjent ",
  6322. SMForm_Error_18880: "Email address must be provided",
  6323. dialogMixinTranslations_login_switch_email: "Logg inn med e-post",
  6324. SMForm_Error_Email_Invalid: "E-post er ugyldig",
  6325. SMProfile_Update_Details: "Oppdater informasjon",
  6326. SMResetPass_Continue: "Fortsett",
  6327. dialogMixinTranslations_forgot_password: "Glemt passordet?",
  6328. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Vi har sendt deg en link for å tilbakestille passordet ditt.",
  6329. SMForm_Error_Password_Retype: "Passordene er ikke de samme",
  6330. SMForm_Error_19972: "Ugyldig symbol",
  6331. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Nullstill passord",
  6332. SMResetPass_Reset_Fail: "Passord kunne ikke endres. Prøv igjen senere.",
  6333. SMRegister_Already_Have_User: "Jeg er allerede en bruker",
  6334. SMResetPassMail_confirmation_msg: "Vi har sendt deg en e-post med en link som vil tillate deg å nullstille passordet ditt",
  6335. SMRegister_GO: "OK",
  6336. SMResetPass_New_Password: "Skriv inn et nytt passord",
  6337. SMResetPassMail_title: "Nullstill passord",
  6338. SMContainer_Need_Log_In: "For å se denne siden, må du være logget inn.",
  6339. SMResetPass_Message: "Hvis du vil angi det nye passordet, vennligst skriv det i begge felt. ",
  6340. SMForm_Error_19988: "Valideringsfeil",
  6341. SMForm_Error_General_Err: "Serverfeil. Prøv igjen senere.",
  6342. SMForm_Retype_Password: "Skriv inn passord på nytt",
  6343. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Nullstill passord",
  6344. PasswordLogin_AdministratorLogin: "Administrator Logg inn",
  6345. SMProfile_Update: "Oppdater",
  6346. SMResetPassMail_Enter_Email: "Fyll inn din e-postadresse",
  6347. SMForm_Error_19980: "Blokkert av nettstedets eier",
  6348. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Gjesteområde",
  6349. PasswordLogin_Cancel: "Avbryt",
  6350. PasswordLogin_Submit: "OK",
  6351. SMForm_Error_19984: "Ugyldig økt"
  6352. },
  6353. da: {
  6354. SMResetPass_Reset_Succ: "Du har med succes nulstillet din adgangskode.",
  6355. SMForm_Password: "Adgangskode",
  6356. SMLogin_Remember_Me: "Husk mig",
  6357. PasswordLogin_Password: "Adgangskode",
  6358. SMForm_Error_Password_Blank: "Adgangskode må ikke være tomt",
  6359. SMRegister_Login: "Log ind",
  6360. SMForm_Error_19999: "Ukendt bruger",
  6361. SMForm_Error_19958: "Din medlems anmodning afventer godkendelse fra hjemmesidens ejer.",
  6362. SMResetPass_Retype_Password: "Indtast igen:",
  6363. SMForm_Error_Password_Length: "Adgangskoden skal være mellem {0} og {1}",
  6364. SMContainer_OK: "OK",
  6365. SMResetPassMail_Back_Login: "Tilbage til log ind",
  6366. dialogMixinTranslations_forgot_password_mobile: "Har du glemt din adgangskode?",
  6367. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Din adgangskode er blevet ændret.",
  6368. dialogMixinTranslations_login_google: "Log ind med Google+",
  6369. SMForm_Error_19995: "E-mail er allerede taget",
  6370. SMResetPassMail_confirmation_title: "Tjek venligst dine e-mails",
  6371. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Indtast adgangskode igen",
  6372. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Indtast en ny adgangskode",
  6373. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Indtast din nye adgangskode hernede",
  6374. SMLogin_OR: "eller",
  6375. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Kontroller venligst din e-mail",
  6376. SMRegister_sign_up: "Tilmeld dig",
  6377. dialogMixinTranslations_signup_facebook: "Tilmeld dig med Facebook",
  6378. SMForm_Error_Email_Blank: "E-mail feltet må ikke være tomt",
  6379. PasswordLogin_Header: "Indtast adgangskode for at se denne side",
  6380. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Indtast venligst adgangskoden hernede.",
  6381. SMForm_Error_Non_Ascii_Chars: "Adgangskode må kun indeholde ASCII-tegn",
  6382. SMForm_Email: "E-mail",
  6383. dialogMixinTranslations_Log_In: "log ind",
  6384. PasswordLogin_Wrong_Password: "Venligst indtast den korrekte adgangskode",
  6385. dialogMixinTranslations_login_facebook: "Log ind med Facebook",
  6386. SMLogin_Forgot_Password: "Har du glemt din adgangskode?",
  6387. dialogMixinTranslations_signup_switch_email: "Tilmeld dig med e-mail",
  6388. dialogMixinTranslations_forgot_password_mobile_new: "glemt?",
  6389. PasswordLogin_Error_General: "Serverfejl - kan ikke logge ind",
  6390. dialogMixinTranslations_Password_Reset_TooShort: "Adgangskoden skal være mellem 4 - 15 tegn",
  6391. SMContainer_Show_Confirm: "Denne side er beskyttet med et login til medlemmer. Dine brugere vil kunne se denne side, når de er logget ind.",
  6392. dialogMixinTranslations_Log_In_Title: "Log ind",
  6393. SMContainer_Show_Confirm2: "Gå til dine kontakter fra din hjemmesides oversigt, og klik på Hjemmesidemedlemmer for at administrere dem.",
  6394. dialogMixinTranslations_switch_to_signup: "Har du ingen konto?",
  6395. SMContain_Cancel: "Annuller",
  6396. SMLogin_Login: "Log ind",
  6397. SMApply_Success1: "Succes! Din anmodning om medlemslogin er sendt og afventer godkendelse.",
  6398. SMForm_Error_19976: "Forkert e-mail eller adgangskode",
  6399. dialogMixinTranslations_signup_google: "Tilmeld dig med Google+",
  6400. SMApply_Success2: "Hjemmesideadministratoren vil give dig besked via e-mail( {0} ) når din anmodning er blevet godkendt.",
  6401. SMForm_Error_18880: "Email address must be provided",
  6402. dialogMixinTranslations_login_switch_email: "Log ind med e-mail",
  6403. SMForm_Error_Email_Invalid: "E-mail er ugyldig",
  6404. SMProfile_Update_Details: "Opdater venligst dine detaljer",
  6405. SMResetPass_Continue: "Næste",
  6406. dialogMixinTranslations_forgot_password: "Har du glemt din adgangskode?",
  6407. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Vi har sendt en link til dig via e-mail for at nulstille adgangskoden.",
  6408. SMForm_Error_Password_Retype: "Adgangskoderne er ikke ens",
  6409. SMForm_Error_19972: "ugyldig kode",
  6410. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Nulstil adgangskode",
  6411. SMResetPass_Reset_Fail: "Adgangskoden kunne ikke ændres. Prøv igen senere.",
  6412. SMRegister_Already_Have_User: "Jeg er allerede bruger",
  6413. SMResetPassMail_confirmation_msg: "Vi har sendt dig en e-mail med et link, som giver dig mulighed for at nulstille din adgangskode",
  6414. SMRegister_GO: "START",
  6415. SMResetPass_New_Password: "Indtast en ny adgangskode",
  6416. SMResetPassMail_title: "Nulstil adgangskode",
  6417. SMContainer_Need_Log_In: "For at se denne side skal du logge ind.",
  6418. SMResetPass_Message: "For at angive din nye adgangskode, venligst indtast det i begge felter herunder. ",
  6419. SMForm_Error_19988: "Valideringsfejl",
  6420. SMForm_Error_General_Err: "Serverfejl. Prøv igen senere.",
  6421. SMForm_Retype_Password: "Gentag adgangskode",
  6422. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Nulstil adgangskode",
  6423. PasswordLogin_AdministratorLogin: "Administratorlogin",
  6424. SMProfile_Update: "Opdater",
  6425. SMResetPassMail_Enter_Email: "Venligst indtast din e-mailadresse",
  6426. SMForm_Error_19980: "Blokeret af hjemmesideejer",
  6427. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Gæsteområde",
  6428. PasswordLogin_Cancel: "Annuller",
  6429. PasswordLogin_Submit: "OK",
  6430. SMForm_Error_19984: "Ugyldig session"
  6431. },
  6432. hi: {
  6433. SMResetPass_Reset_Succ: "You’ve successfully reset your password.",
  6434. SMForm_Password: "Password",
  6435. SMLogin_Remember_Me: "Remember Me",
  6436. PasswordLogin_Password: "Password",
  6437. SMForm_Error_Password_Blank: "Password cannot be blank",
  6438. SMRegister_Login: "Login",
  6439. SMForm_Error_19999: "Unknown user",
  6440. SMForm_Error_19958: "Your member request is waiting approval from the site owner",
  6441. SMResetPass_Retype_Password: "पुनः टाइप करें:",
  6442. SMForm_Error_Password_Length: "Password length must be between {0} and {1}",
  6443. SMContainer_OK: "OK",
  6444. SMResetPassMail_Back_Login: "Back to Login",
  6445. dialogMixinTranslations_forgot_password_mobile: "पासवर्ड भूल गए?",
  6446. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Your password has been changed.",
  6447. dialogMixinTranslations_login_google: "Log in with Google+",
  6448. SMForm_Error_19995: "Email is already taken",
  6449. SMResetPassMail_confirmation_title: "कृपया अपनी ई-मेल देखें",
  6450. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Re-type password",
  6451. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Enter a new password",
  6452. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Enter your new password below",
  6453. SMLogin_OR: "Or",
  6454. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Please Check Your Email",
  6455. SMRegister_sign_up: "Sign up",
  6456. dialogMixinTranslations_signup_facebook: "Sign up with Facebook",
  6457. SMForm_Error_Email_Blank: "Email cannot be blank",
  6458. PasswordLogin_Header: "Enter password to view this page",
  6459. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "This area is for members only.\nPlease enter the password below.",
  6460. SMForm_Error_Non_Ascii_Chars: "Password must contain only ASCII characters",
  6461. SMForm_Email: "Email",
  6462. dialogMixinTranslations_Log_In: "लॉग इन करें",
  6463. PasswordLogin_Wrong_Password: "Please enter the correct password",
  6464. dialogMixinTranslations_login_facebook: "Log in with Facebook",
  6465. SMLogin_Forgot_Password: "Forgot your password?",
  6466. dialogMixinTranslations_signup_switch_email: "Sign up with Email",
  6467. dialogMixinTranslations_forgot_password_mobile_new: "भूल गए?",
  6468. PasswordLogin_Error_General: "Server error - Unable to log in",
  6469. dialogMixinTranslations_Password_Reset_TooShort: "Password must be 4-15 characters",
  6470. SMContainer_Show_Confirm: "This page is protected with a member login. Your users will be able to see this page once they are logged in.",
  6471. dialogMixinTranslations_Log_In_Title: "लॉग इन करें",
  6472. SMContainer_Show_Confirm2: "To manage your site's members, go to your Contacts from the Dashboard and click Site Members",
  6473. dialogMixinTranslations_switch_to_signup: "एक अकाउंट नहीं है?",
  6474. SMContain_Cancel: "Cancel",
  6475. SMLogin_Login: "Login",
  6476. SMApply_Success1: "Success! Your member login request has been sent and is awaiting approval.",
  6477. SMForm_Error_19976: "Wrong email or password",
  6478. dialogMixinTranslations_signup_google: "Sign up with Google+",
  6479. SMApply_Success2: "The site administrator will notify you via email( {0} ) once your request has been approved ",
  6480. SMForm_Error_18880: "Email address must be provided",
  6481. dialogMixinTranslations_login_switch_email: "Log in with Email",
  6482. SMForm_Error_Email_Invalid: "Email is invalid",
  6483. SMProfile_Update_Details: "Update your details",
  6484. SMResetPass_Continue: "Continue",
  6485. dialogMixinTranslations_forgot_password: "पासवर्ड भूल गए?",
  6486. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "We’ve emailed you a link to reset your password.",
  6487. SMForm_Error_Password_Retype: "Passwords are not the same",
  6488. SMForm_Error_19972: "Invalid token",
  6489. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Reset Password",
  6490. SMResetPass_Reset_Fail: "Password could not have been changed. Try again later.",
  6491. SMRegister_Already_Have_User: "I'm already a user",
  6492. SMResetPassMail_confirmation_msg: "हमने आपको ई-मेल से एक लिंक भेजी है जिसके द्वारा आप अपना पासवर्ड दुबारा सेट कर सकेंगे",
  6493. SMRegister_GO: "GO",
  6494. SMResetPass_New_Password: "नया पासवर्ड प्रविष्ट करें",
  6495. SMResetPassMail_title: "पासवर्ड दुबारा सेट करें",
  6496. SMContainer_Need_Log_In: "To view this page, you need to be logged in.",
  6497. SMResetPass_Message: "अपना नया पासवर्ड सेट करने के लिए, कृपया उसे नीचे दिए गए दोनों स्थानों में प्रविष्ट करें। ",
  6498. SMForm_Error_19988: "Validation Error",
  6499. SMForm_Error_General_Err: "Server error. try again later.",
  6500. SMForm_Retype_Password: "Retype password",
  6501. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Reset Password",
  6502. PasswordLogin_AdministratorLogin: "Administrator Login",
  6503. SMProfile_Update: "Update",
  6504. SMResetPassMail_Enter_Email: "Please enter your email address",
  6505. SMForm_Error_19980: "Blocked by site owner",
  6506. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Your Password, Please.",
  6507. PasswordLogin_Cancel: "Cancel",
  6508. PasswordLogin_Submit: "OK",
  6509. SMForm_Error_19984: "Invalid Session"
  6510. },
  6511. zh: {
  6512. SMResetPass_Reset_Succ: "You’ve successfully reset your password.",
  6513. SMForm_Password: "Password",
  6514. SMLogin_Remember_Me: "Remember Me",
  6515. PasswordLogin_Password: "Password",
  6516. SMForm_Error_Password_Blank: "Password cannot be blank",
  6517. SMRegister_Login: "Login",
  6518. SMForm_Error_19999: "Unknown user",
  6519. SMForm_Error_19958: "Your member request is waiting approval from the site owner",
  6520. SMResetPass_Retype_Password: "再次键入:",
  6521. SMForm_Error_Password_Length: "Password length must be between {0} and {1}",
  6522. SMContainer_OK: "OK",
  6523. SMResetPassMail_Back_Login: "Back to Login",
  6524. dialogMixinTranslations_forgot_password_mobile: "Forgot your password?",
  6525. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Your password has been changed.",
  6526. dialogMixinTranslations_login_google: "Log in with Google+",
  6527. SMForm_Error_19995: "Email is already taken",
  6528. SMResetPassMail_confirmation_title: "请查看您的电子邮件",
  6529. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Re-type password",
  6530. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Enter a new password",
  6531. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Enter your new password below",
  6532. SMLogin_OR: "Or",
  6533. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Please Check Your Email",
  6534. SMRegister_sign_up: "Sign up",
  6535. dialogMixinTranslations_signup_facebook: "Sign up with Facebook",
  6536. SMForm_Error_Email_Blank: "Email cannot be blank",
  6537. PasswordLogin_Header: "Enter password to view this page",
  6538. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "This area is for members only.\nPlease enter the password below.",
  6539. SMForm_Error_Non_Ascii_Chars: "Password must contain only ASCII characters",
  6540. SMForm_Email: "Email",
  6541. dialogMixinTranslations_Log_In: "log in",
  6542. PasswordLogin_Wrong_Password: "Please enter the correct password",
  6543. dialogMixinTranslations_login_facebook: "Log in with Facebook",
  6544. SMLogin_Forgot_Password: "Forgot your password?",
  6545. dialogMixinTranslations_signup_switch_email: "Sign up with Email",
  6546. dialogMixinTranslations_forgot_password_mobile_new: "forgot?",
  6547. PasswordLogin_Error_General: "Server error - Unable to log in",
  6548. dialogMixinTranslations_Password_Reset_TooShort: "Password must be 4-15 characters",
  6549. SMContainer_Show_Confirm: "This page is protected with a member login. Your users will be able to see this page once they are logged in.",
  6550. dialogMixinTranslations_Log_In_Title: "Log in",
  6551. SMContainer_Show_Confirm2: "To manage your site's members, go to your Contacts from the Dashboard and click Site Members",
  6552. dialogMixinTranslations_switch_to_signup: "Don&#39;t have an account?",
  6553. SMContain_Cancel: "Cancel",
  6554. SMLogin_Login: "Login",
  6555. SMApply_Success1: "Success! Your member login request has been sent and is awaiting approval.",
  6556. SMForm_Error_19976: "Wrong email or password",
  6557. dialogMixinTranslations_signup_google: "Sign up with Google+",
  6558. SMApply_Success2: "The site administrator will notify you via email( {0} ) once your request has been approved ",
  6559. SMForm_Error_18880: "Email address must be provided",
  6560. dialogMixinTranslations_login_switch_email: "Log in with Email",
  6561. SMForm_Error_Email_Invalid: "Email is invalid",
  6562. SMProfile_Update_Details: "Update your details",
  6563. SMResetPass_Continue: "Continue",
  6564. dialogMixinTranslations_forgot_password: "Forgot password?",
  6565. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "We’ve emailed you a link to reset your password.",
  6566. SMForm_Error_Password_Retype: "Passwords are not the same",
  6567. SMForm_Error_19972: "Invalid token",
  6568. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Reset Password",
  6569. SMResetPass_Reset_Fail: "Password could not have been changed. Try again later.",
  6570. SMRegister_Already_Have_User: "I'm already a user",
  6571. SMResetPassMail_confirmation_msg: "我们已向您发送一封包含链接的电子邮件,供您重置密码。",
  6572. SMRegister_GO: "GO",
  6573. SMResetPass_New_Password: "输入新密码",
  6574. SMResetPassMail_title: "重置密码",
  6575. SMContainer_Need_Log_In: "To view this page, you need to be logged in.",
  6576. SMResetPass_Message: "要设置您的新密码,请在下方两个字段内输入新密码。 ",
  6577. SMForm_Error_19988: "Validation Error",
  6578. SMForm_Error_General_Err: "Server error. try again later.",
  6579. SMForm_Retype_Password: "Retype password",
  6580. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Reset Password",
  6581. PasswordLogin_AdministratorLogin: "Administrator Login",
  6582. SMProfile_Update: "Update",
  6583. SMResetPassMail_Enter_Email: "Please enter your email address",
  6584. SMForm_Error_19980: "Blocked by site owner",
  6585. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Your Password, Please.",
  6586. PasswordLogin_Cancel: "Cancel",
  6587. PasswordLogin_Submit: "OK",
  6588. SMForm_Error_19984: "Invalid Session"
  6589. },
  6590. cs: {
  6591. SMResetPass_Reset_Succ: "Úspěšně jste obnovili své heslo.",
  6592. SMForm_Password: "Heslo",
  6593. SMLogin_Remember_Me: "Zapamatovat si mě",
  6594. PasswordLogin_Password: "Heslo",
  6595. SMForm_Error_Password_Blank: "Heslo nemůže být prázdné",
  6596. SMRegister_Login: "Přihlásit se",
  6597. SMForm_Error_19999: "Neznámý uživatel ",
  6598. SMForm_Error_19958: "Váš požadavek čeká na schválení vlastníkem webu",
  6599. SMResetPass_Retype_Password: "Zadejte heslo znovu:",
  6600. SMForm_Error_Password_Length: "Délka hesla musí být mezí {0} a {1}",
  6601. SMContainer_OK: "OK",
  6602. SMResetPassMail_Back_Login: "Zpátky k přihlášení ",
  6603. dialogMixinTranslations_forgot_password_mobile: "Zapomněli jste heslo?",
  6604. dialogMixinTranslations_RESET_PASSWORD_SUCESS_TITLE: "Vaše heslo bylo změněno.",
  6605. dialogMixinTranslations_login_google: "Přihlásit se přes Google+",
  6606. SMForm_Error_19995: "E-mail je již obsazen",
  6607. SMResetPassMail_confirmation_title: "Zkontrolujte si prosím e-mail",
  6608. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE: "Potvrďte heslo",
  6609. dialogMixinTranslations_RESET_PASSWORD_NEWFIELD: "Zadejte nové heslo",
  6610. dialogMixinTranslations_RESET_PASSWORD_TEXT: "Zadejte nové heslo níže",
  6611. SMLogin_OR: "Nebo",
  6612. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TITLE: "Zkontrolujte si prosím e-mail",
  6613. SMRegister_sign_up: "Přihlásit se",
  6614. dialogMixinTranslations_signup_facebook: "Registrovat se přes Facebook",
  6615. SMForm_Error_Email_Blank: "E-mail nemůže být prázdný",
  6616. PasswordLogin_Header: "Zadejte heslo k zobrazení této stránky",
  6617. dialogMixinTranslations_GUEST_LOGIN_SUBTITLE: "Zadejte prosím heslo níže.",
  6618. SMForm_Error_Non_Ascii_Chars: "Heslo musí obsahovat pouze ASCII znaky",
  6619. SMForm_Email: "E-mail",
  6620. dialogMixinTranslations_Log_In: "Přihlásit se",
  6621. PasswordLogin_Wrong_Password: "Zadejte prosím správné heslo",
  6622. dialogMixinTranslations_login_facebook: "Přihlásit se přes Facebook",
  6623. SMLogin_Forgot_Password: "Zapomněli jste heslo?",
  6624. dialogMixinTranslations_signup_switch_email: "Registrovat se pomocí e-mailu",
  6625. dialogMixinTranslations_forgot_password_mobile_new: "zapomněli jste?",
  6626. PasswordLogin_Error_General: "Chyba serveru - Nelze se přihlásit ",
  6627. dialogMixinTranslations_Password_Reset_TooShort: "Heslo musí obsahovat 4–15 znaků",
  6628. SMContainer_Show_Confirm: "Tato stránka je zabezpečená přihlášením uživatele. Vaši uživatelé budou mít možnost vidět tuto stránku, jakmile se přihlásí.",
  6629. dialogMixinTranslations_Log_In_Title: "Přihlásit se",
  6630. SMContainer_Show_Confirm2: "Chcete-li spravovat členy vašeho webu, přejděte z Ovládacího panelu do Seznamu kontaktů a klikněte na Členové webu",
  6631. dialogMixinTranslations_switch_to_signup: "Nemáte účet?",
  6632. SMContain_Cancel: "Zrušit",
  6633. SMLogin_Login: "Přihlásit se",
  6634. SMApply_Success1: "Povedlo se! Váš požadavek přihlásit se jako uživatel byl odeslán a čeká na schválení.",
  6635. SMForm_Error_19976: "Nesprávný e-mail nebo heslo",
  6636. dialogMixinTranslations_signup_google: "Registrovat se přes Google+",
  6637. SMApply_Success2: "Správce webu vás bude informovat prostřednictvím emailu({0}), jakmile bude vaše žádost schválena",
  6638. SMForm_Error_18880: "Musíte poskytnout e-mailovou adresu",
  6639. dialogMixinTranslations_login_switch_email: "Přihlásit se pomocí e-mailu",
  6640. SMForm_Error_Email_Invalid: "Email je neplatný",
  6641. SMProfile_Update_Details: "Aktualizujte své údaje",
  6642. SMResetPass_Continue: "Pokračovat",
  6643. dialogMixinTranslations_forgot_password: "Zapomněli jste heslo?",
  6644. dialogMixinTranslations_RESET_PASSWORD_CHECKEMAIL_TEXT: "Na váš e-mail jsme zaslali odkaz pro obnovení hesla.",
  6645. SMForm_Error_Password_Retype: "Hesla nejsou stejná",
  6646. SMForm_Error_19972: "Neplatný poukaz",
  6647. dialogMixinTranslations_RESET_PASSWORD_TITLE: "Obnovit heslo",
  6648. SMResetPass_Reset_Fail: "Heslo nemohlo být změněno. Zkuste to znovu později.",
  6649. SMRegister_Already_Have_User: "Již mám účet",
  6650. SMResetPassMail_confirmation_msg: "Zaslali jsme vám e-mail s odkazem, který Vám umožní obnovit heslo.",
  6651. SMRegister_GO: "POKRAČOVAT",
  6652. SMResetPass_New_Password: "Zadejte nové heslo",
  6653. SMResetPassMail_title: "Obnovit heslo",
  6654. SMContainer_Need_Log_In: "Pro zobrazení této stránky musíte být přihlášeni.",
  6655. SMResetPass_Message: "Chcete-li nastavit nové heslo, zadejte ho prosím níže do obou polí. ",
  6656. SMForm_Error_19988: "Chyba ověření",
  6657. SMForm_Error_General_Err: "Chyba serveru. Zkuste to znovu později.",
  6658. SMForm_Retype_Password: "Heslo znovu",
  6659. dialogMixinTranslations_RESET_PASSWORD_BUTTON: "Obnovit heslo",
  6660. PasswordLogin_AdministratorLogin: "Přihlášení správce",
  6661. SMProfile_Update: "Aktualizovat",
  6662. SMResetPassMail_Enter_Email: "Zadejte prosím vaši e-mailovou adresu",
  6663. SMForm_Error_19980: "Blokováno vlastníkem webu",
  6664. dialogMixinTranslations_GUEST_LOGIN_TITLE: "Sekce pro hosty",
  6665. PasswordLogin_Cancel: "Zrušit",
  6666. PasswordLogin_Submit: "OK",
  6667. SMForm_Error_19984: "Neplatná relace"
  6668. }
  6669. });
  6670. define("components/components/dialogs/dialogMixin", ["react", "lodash", "santaProps", "utils", "core", "components/components/dialogs/translations/dialogMixinTranslations", "reactDOM", "components/components/inputWithValidation/inputWithValidation", "siteButton"], function(a, b, c, d, e, f, g, h, i) {
  6671. "use strict";
  6672. var j = 1;
  6673. return {
  6674. PASS_MIN_LEN: 4,
  6675. PASS_MAX_LEN: 15,
  6676. propTypes: b.assign({
  6677. smSettings: c.Types.SiteMembersSantaTypes.smSettings.isRequired,
  6678. isMobileView: c.Types.isMobileView.isRequired,
  6679. isSiteMembersDialogsOpenAllowed: c.Types.SiteMembersSantaTypes.isSiteMembersDialogsOpenAllowed,
  6680. isPremiumUser: c.Types.isPremiumUser.isRequired,
  6681. siteMembersUrl: c.Types.SiteMembersSantaTypes.siteMembersUrl.isRequired,
  6682. metaSiteId: c.Types.RendererModel.metaSiteId.isRequired,
  6683. biVisitorId: c.Types.biVisitorId,
  6684. windowKeyboardEvent: c.Types.SiteAspects.windowKeyboardEvent,
  6685. exitFullScreenMode: c.Types.exitFullScreenMode,
  6686. enterFullScreenMode: c.Types.enterFullScreenMode,
  6687. styleId: c.Types.Component.styleId,
  6688. notClosable: a.PropTypes.bool,
  6689. onCloseDialogCallback: a.PropTypes.func,
  6690. onSubmitCallback: a.PropTypes.func,
  6691. language: a.PropTypes.string
  6692. }, c.santaTypesUtils.getSantaTypesByDefinition(h), c.santaTypesUtils.getSantaTypesByDefinition(i)),
  6693. mixins: [e.compMixins.animationsMixin],
  6694. getInitialState: function() {
  6695. var a = this.props.isMobileView ? "mobile" : "desktop";
  6696. this.canOpenSiteMembersDialogs = this.props.isSiteMembersDialogsOpenAllowed;
  6697. return {
  6698. showComponent: true,
  6699. errMsg: "",
  6700. oAuthErrMsg: "",
  6701. $view: a,
  6702. $canBeClosed: !this.props.notClosable ? "canBeClosed" : "",
  6703. socialLoginEnabled: this.isSocialLogin(),
  6704. socialLoginIframeReady: false
  6705. }
  6706. },
  6707. componentWillMount: function() {
  6708. if (!this.props.notClosable && this.props.windowKeyboardEvent) {
  6709. this.props.windowKeyboardEvent.registerToEscapeKey(this)
  6710. }
  6711. },
  6712. componentWillReceiveProps: function(a) {
  6713. if (this.canOpenSiteMembersDialogs && this.canOpenSiteMembersDialogs !== a.isSiteMembersDialogsOpenAllowed) {
  6714. this.closeDialog()
  6715. }
  6716. },
  6717. componentWillUnmount: function() {
  6718. if (this.props.windowKeyboardEvent) {
  6719. this.props.windowKeyboardEvent.unRegisterKeys(this)
  6720. }
  6721. this.props.exitFullScreenMode()
  6722. },
  6723. onEscapeKey: function() {
  6724. var a = true;
  6725. this.closeDialog(a)
  6726. },
  6727. componentDidMount: function() {
  6728. this.animate("dialog", "FadeIn", .5, 0);
  6729. this.props.enterFullScreenMode()
  6730. },
  6731. onClickCloseButton: function() {
  6732. var a = true;
  6733. this.closeDialog(a)
  6734. },
  6735. closeDialog: function(a) {
  6736. if (this.props.onCloseDialogCallback) {
  6737. this.props.onCloseDialogCallback(this, false, a)
  6738. } else {
  6739. this.performCloseDialog()
  6740. }
  6741. },
  6742. performCloseDialog: function(a) {
  6743. this.animate("dialog", "FadeOut", .5, 0, null, {
  6744. onComplete: function() {
  6745. if (a) {
  6746. a()
  6747. }
  6748. }
  6749. })
  6750. },
  6751. submit: function() {
  6752. if (this.shouldBlockSubmit && this.shouldBlockSubmit()) {
  6753. this.blockSubmit(g.findDOMNode(this.refs.submitButton));
  6754. return
  6755. }
  6756. var a = true;
  6757. if (this.validateBeforeSubmit) {
  6758. a = this.validateBeforeSubmit()
  6759. }
  6760. if (a) {
  6761. if (this.props.onSubmitCallback) {
  6762. this.props.onSubmitCallback(this.getDataToSubmit(), this)
  6763. } else {
  6764. d.log.error("dialogMixin: this.props.onSubmitCallback is not defined")
  6765. }
  6766. }
  6767. },
  6768. submitOnEnterKeyPress: function(a) {
  6769. if (a.key === "Enter") {
  6770. this.submit()
  6771. }
  6772. },
  6773. getErrorMessage: function() {
  6774. return this.state.errMsg
  6775. },
  6776. _toErrorKey: function(a) {
  6777. var c = "SMForm_Error_";
  6778. var d = b.startsWith(a, c) ? a : c + a;
  6779. if (b.includes(d, "-")) {
  6780. d = d.replace("-", "")
  6781. }
  6782. return d
  6783. },
  6784. setErrorMessageByCode: function(a) {
  6785. if (a) {
  6786. this.setErrorMessage(this._toErrorKey(a))
  6787. } else {
  6788. this.setState({
  6789. errMsg: ""
  6790. })
  6791. }
  6792. },
  6793. setOuathErrorMessageByCode: function(a) {
  6794. this.setState({
  6795. oAuthErrMsg: a ? this.getText(this.props.language, this._toErrorKey(a)) : ""
  6796. })
  6797. },
  6798. setErrorMessage: function(a) {
  6799. var b = this.getText(this.props.language, a);
  6800. this.setState({
  6801. errMsg: b
  6802. })
  6803. },
  6804. shouldDialogBeClosed: function() {
  6805. return !this.state.showComponent
  6806. },
  6807. getCloseDialogSkinProperties: function() {
  6808. return {
  6809. "": {
  6810. style: {
  6811. display: "none"
  6812. }
  6813. }
  6814. }
  6815. },
  6816. getMobileSocialLoginClass: function() {
  6817. return this.state.socialLoginEnabled ? "socialLoginMode" : "emailLoginMode"
  6818. },
  6819. _isAsciiOnlyInput: function(a) {
  6820. var b = a.length;
  6821. var c = this.PASS_MAX_LEN;
  6822. for (var d = 0; d < b && d < c; d++) {
  6823. if (a.charCodeAt(d) > 127) {
  6824. return false
  6825. }
  6826. }
  6827. return true
  6828. },
  6829. _getEmailValidator: function(a) {
  6830. return function(b) {
  6831. if (b.length === 0) {
  6832. return this.getText(a, "SMForm_Error_Email_Blank")
  6833. }
  6834. if (!d.validationUtils.isValidEmail(b)) {
  6835. return this.getText(a, "SMForm_Error_Email_Invalid")
  6836. }
  6837. return false
  6838. }.bind(this)
  6839. },
  6840. _getPasswordValidator: function(a) {
  6841. return function(b) {
  6842. if (b.length === 0) {
  6843. return this.getText(a, "SMForm_Error_Password_Blank")
  6844. }
  6845. if (b.length < this.PASS_MIN_LEN || b.length > this.PASS_MAX_LEN) {
  6846. return this.getText(a, "SMForm_Error_Password_Length").replace("{0}", this.PASS_MIN_LEN).replace("{1}", this.PASS_MAX_LEN)
  6847. }
  6848. if (!this._isAsciiOnlyInput(b)) {
  6849. return this.getText(a, "SMForm_Error_Non_Ascii_Chars")
  6850. }
  6851. return false
  6852. }.bind(this)
  6853. },
  6854. _onInputChange: function() {
  6855. this.setErrorMessageByCode("")
  6856. },
  6857. createEmailInput: function(a, b) {
  6858. var c = a.language;
  6859. var d = this.getText(c, a.inputTitleKey);
  6860. var e = this._getEmailValidator(c);
  6861. var f = {
  6862. refId: a.refId,
  6863. inputTitleText: d,
  6864. validators: [e],
  6865. defaultValue: a.defaultValue || ""
  6866. };
  6867. return this.createInputWithValidation(f, b)
  6868. },
  6869. createPasswordInput: function(a, b) {
  6870. var c = a.language;
  6871. var d = this.getText(c, a.inputTitleKey);
  6872. var e = a.overrideValidators || [this._getPasswordValidator(c)];
  6873. var f = {
  6874. refId: a.refId,
  6875. inputTitleText: d,
  6876. validators: e,
  6877. type: "password",
  6878. defaultValue: a.defaultValue
  6879. };
  6880. return this.createInputWithValidation(f, b)
  6881. },
  6882. createInputWithValidation: function(a, c) {
  6883. a.validators = a.validators || [];
  6884. c = c || {};
  6885. var d = {
  6886. lazyValidation: true,
  6887. validators: a.validators,
  6888. label: a.inputTitleText,
  6889. ref: a.refId,
  6890. defaultValue: a.defaultValue,
  6891. type: a.type,
  6892. onChange: this._onInputChange
  6893. };
  6894. b.merge(d, c);
  6895. return this.createChildComponent({
  6896. id: "inputWithValidation" + j++
  6897. }, "wysiwyg.components.viewer.inputs.InputWithValidation", "inputWithValidation", d)
  6898. },
  6899. getText: function(a, c, d) {
  6900. a = f[a] ? a : "en";
  6901. c = f[a][c] ? c : "SMForm_Error_General_Err";
  6902. var e = f[a][c];
  6903. if (d) {
  6904. b.forEach(d, function(a, b) {
  6905. e = e.replace("{" + b + "}", a)
  6906. })
  6907. }
  6908. return e
  6909. },
  6910. createXButton: function() {
  6911. return {
  6912. onClick: this.onClickCloseButton,
  6913. className: this.props.isPremiumUser ? "" : this.props.styleId + "free"
  6914. }
  6915. },
  6916. createContent: function() {
  6917. return {
  6918. className: this.getErrorMessage() ? this.props.styleId + "_validationError" : "",
  6919. onKeyPress: this.submitOnEnterKeyPress
  6920. }
  6921. },
  6922. createSubmitButton: function(a, b) {
  6923. var c = {
  6924. label: b || "GO",
  6925. id: "ok"
  6926. };
  6927. var d = {
  6928. align: "center"
  6929. };
  6930. var e = a;
  6931. return this.createChildComponent(c, "wysiwyg.viewer.components.SiteButton", e, {
  6932. skinPart: e,
  6933. styleId: this.props.loadedStyles.b1,
  6934. compProp: d,
  6935. style: {
  6936. position: "relative",
  6937. height: "100%",
  6938. width: "100%"
  6939. },
  6940. structure: {
  6941. layout: {
  6942. scale: .5
  6943. }
  6944. }
  6945. })
  6946. },
  6947. _onTokenReceived: function(a) {
  6948. if (a.token && typeof b.isFunction(this.props.onTokenMessage)) {
  6949. this.props.onTokenMessage(a.token, a.vendor, this.refs[this.socialHolderRef].contentWindow, this)
  6950. }
  6951. },
  6952. _onSocialLoginIframeLoaded: function() {
  6953. this.setState({
  6954. socialLoginIframeReady: true
  6955. })
  6956. },
  6957. onSocialLoginIframeMessage: function(a) {
  6958. switch (a.type) {
  6959. case "page-ready":
  6960. this._onSocialLoginIframeLoaded();
  6961. break;
  6962. case "auth-token":
  6963. this._onTokenReceived(a);
  6964. break
  6965. }
  6966. },
  6967. getSocialLoginSkinParts: function(a, b, c) {
  6968. var d = this.state.socialLoginIframeReady ? this.props.styleId + "_hide" : "";
  6969. var e = this.props.smSettings.socialLoginGoogleEnabled ? this.props.styleId + "_google" : "";
  6970. var f = this.props.smSettings.socialLoginFacebookEnabled ? this.props.styleId + "_facebook" : "";
  6971. return {
  6972. socialHolder: this._getSocialLoginIframeProps({
  6973. mode: a,
  6974. lang: b,
  6975. vendors: [{
  6976. id: "google",
  6977. enabled: this.props.smSettings.socialLoginGoogleEnabled
  6978. }, {
  6979. id: "facebook",
  6980. enabled: this.props.smSettings.socialLoginFacebookEnabled
  6981. }]
  6982. }),
  6983. dummySocialButtons: {
  6984. className: (d + " " + e + " " + f).trim()
  6985. },
  6986. googleButton: {
  6987. children: this.getText(b, c.google)
  6988. },
  6989. facebookButton: {
  6990. children: this.getText(b, c.facebook)
  6991. },
  6992. switchToEmailLink: {
  6993. children: this.getText(b, c.switchEmail),
  6994. onClick: this.toggleSocialLoginDisplayState
  6995. },
  6996. switchToSocialLink: {
  6997. className: (this.props.isPremiumUser ? "" : this.props.styleId + "free") + " " + (this.props.styleId + "_" + (this.isSocialLogin ? this.getMobileSocialLoginClass() : "")),
  6998. onClick: this.toggleSocialLoginDisplayState
  6999. },
  7000. socialLoginErrorMsg: {
  7001. className: this.props.styleId + (this.state.oAuthErrMsg ? "_enabled" : ""),
  7002. children: this.state.oAuthErrMsg
  7003. }
  7004. }
  7005. },
  7006. isSocialLogin: function() {
  7007. return !!(this.props.smSettings.socialLoginGoogleEnabled || this.props.smSettings.socialLoginFacebookEnabled)
  7008. },
  7009. toggleSocialLoginDisplayState: function() {
  7010. this.setState({
  7011. socialLoginEnabled: !this.state.socialLoginEnabled
  7012. })
  7013. },
  7014. _getSocialLoginIframeProps: function(a) {
  7015. return {
  7016. src: this._buildIframeSrc(a),
  7017. frameBorder: "0",
  7018. scrolling: "no",
  7019. allowTransparency: "true"
  7020. }
  7021. },
  7022. _buildIframeSrc: function(a) {
  7023. return b.template("${baseUrl}/view/social/frame/${msid}?mode=${mode}&lang=${lang}&vendors=${vendors}&visitorId=${visitorId}")({
  7024. baseUrl: this.props.siteMembersUrl.replace(/^(https|http):/i, ""),
  7025. msid: this.props.metaSiteId,
  7026. mode: a.mode,
  7027. lang: a.lang,
  7028. vendors: a.vendors.reduce(function(a, b) {
  7029. return b.enabled ? a.push(b.id) && a : a
  7030. }, []).join(","),
  7031. visitorId: this.props.biVisitorId
  7032. })
  7033. }
  7034. }
  7035. });
  7036. define("components/components/dialogs/notificationDialog/notificationDialog", ["lodash", "core", "components/components/dialogs/dialogMixin", "react", "santaProps"], function(a, b, c, d, e) {
  7037. "use strict";
  7038. return {
  7039. displayName: "NotificationDialog",
  7040. mixins: [b.compMixins.skinBasedComp, c],
  7041. propTypes: {
  7042. title: d.PropTypes.string,
  7043. description: d.PropTypes.string,
  7044. buttonText: d.PropTypes.string,
  7045. language: d.PropTypes.string,
  7046. styleId: e.Types.Component.styleId,
  7047. onButtonClick: d.PropTypes.func
  7048. },
  7049. statics: {
  7050. useSantaTypes: true
  7051. },
  7052. getSkinProperties: function() {
  7053. if (this.shouldDialogBeClosed()) {
  7054. return this.getCloseDialogSkinProperties()
  7055. }
  7056. var b = a.isUndefined(this.props.title) ? "=title missing=" : this.props.title;
  7057. var c = a.isUndefined(this.props.description) ? "=description missing=" : this.props.description;
  7058. var d = function(a) {
  7059. return this.props.buttonText || this.getText(this.props.language, a)
  7060. }.bind(this);
  7061. return {
  7062. blockingLayer: {},
  7063. dialogTitle: {
  7064. children: b
  7065. },
  7066. dialogDescription: {
  7067. children: c,
  7068. className: this.props.description ? "" : this.props.styleId + "_noDialogDescription"
  7069. },
  7070. okButton: {
  7071. children: this.createSubmitButton("okButton", d("SMRegister_GO")),
  7072. onClick: this.props.onButtonClick || this.closeDialog
  7073. },
  7074. xButton: this.createXButton()
  7075. }
  7076. }
  7077. }
  7078. });
  7079. define("components/components/dialogs/creditsDialog/creditsDialog", ["lodash", "core", "components/components/dialogs/dialogMixin", "reactDOM", "santaProps"], function(a, b, c, d, e) {
  7080. "use strict";
  7081. return {
  7082. displayName: "CreditsDialog",
  7083. mixins: [b.compMixins.skinBasedComp, c],
  7084. componentDidMount: function() {
  7085. d.findDOMNode(this.refs.iframe).contentWindow.focus()
  7086. },
  7087. propTypes: {
  7088. santaBase: e.Types.santaBase.isRequired
  7089. },
  7090. statics: {
  7091. useSantaTypes: true
  7092. },
  7093. getSkinProperties: function() {
  7094. if (this.shouldDialogBeClosed()) {
  7095. return this.getCloseDialogSkinProperties()
  7096. }
  7097. return {
  7098. blockingLayer: {
  7099. onClick: this.closeDialog
  7100. },
  7101. iframe: {
  7102. src: this.props.santaBase + "/static/external/credits/snake/snake.html"
  7103. }
  7104. }
  7105. }
  7106. }
  7107. });
  7108. define("components/components/dialogs/enterPasswordDialog/enterPasswordDialog", ["react", "core", "components/components/dialogs/dialogMixin", "lodash"], function(a, b, c, d) {
  7109. "use strict";
  7110. return {
  7111. displayName: "EnterPasswordDialog",
  7112. mixins: [b.compMixins.skinBasedComp, c],
  7113. propTypes: {
  7114. digestedPassword: a.PropTypes.string,
  7115. language: a.PropTypes.string,
  7116. notClosable: a.PropTypes.bool
  7117. },
  7118. statics: {
  7119. useSantaTypes: true
  7120. },
  7121. passwordInputRef: "passwordInput",
  7122. validateBeforeSubmit: function() {
  7123. return this.refs[this.passwordInputRef].validate()
  7124. },
  7125. getDataToSubmit: function() {
  7126. return this.props.digestedPassword ? {} : {
  7127. password: this.refs[this.passwordInputRef].getValue()
  7128. }
  7129. },
  7130. getSkinProperties: function() {
  7131. var a = this.getText(this.props.language, "SMRegister_GO");
  7132. var b = this.getErrorMessage();
  7133. var c = {
  7134. blockingLayer: {},
  7135. errMsg: {
  7136. children: b
  7137. },
  7138. content: this.createContent(),
  7139. subtitle: {
  7140. children: this.getText(this.props.language, "dialogMixinTranslations_GUEST_LOGIN_SUBTITLE")
  7141. },
  7142. title: {
  7143. children: this.getText(this.props.language, "dialogMixinTranslations_GUEST_LOGIN_TITLE")
  7144. },
  7145. okButton: {
  7146. children: this.createSubmitButton("okButton", a),
  7147. onClick: this.submit
  7148. },
  7149. password: {
  7150. children: this._createPasswordField({
  7151. placeholder: this.getText(this.props.language, "PasswordLogin_Password")
  7152. })
  7153. }
  7154. };
  7155. if (!this.props.notClosable) {
  7156. var e = {
  7157. blockingLayer: {},
  7158. xButton: this.createXButton()
  7159. };
  7160. d.merge(c, e)
  7161. }
  7162. return c
  7163. },
  7164. _validatePassword: function(a) {
  7165. if (!a) {
  7166. return this.getText(this.props.language, "SMForm_Error_Password_Blank")
  7167. }
  7168. return false
  7169. },
  7170. _createPasswordField: function(a) {
  7171. var b = {
  7172. refId: this.passwordInputRef,
  7173. inputTitleKey: "PasswordLogin_Password",
  7174. language: this.props.language,
  7175. overrideValidators: [this._validatePassword]
  7176. };
  7177. return this.createPasswordInput(b, a)
  7178. }
  7179. }
  7180. });
  7181. define("components/components/dialogs/siteMemberDialogs/signUpDialog/signUpDialog", ["lodash", "core", "components/components/dialogs/dialogMixin", "react", "santaProps"], function(a, b, c, d, e) {
  7182. "use strict";
  7183. return {
  7184. displayName: "SignUpDialog",
  7185. mixins: [b.compMixins.skinBasedComp, b.compMixins.postMessageCompMixin, c],
  7186. propTypes: {
  7187. language: d.PropTypes.string,
  7188. styleId: e.Types.Component.styleId,
  7189. onSwitchDialogLinkClick: d.PropTypes.func
  7190. },
  7191. statics: {
  7192. useSantaTypes: true
  7193. },
  7194. passwordInputRef: "passwordInput",
  7195. retypePasswordInputRef: "retypePasswordInput",
  7196. emailInputRef: "emailInput",
  7197. socialHolderRef: "socialHolder",
  7198. validateBeforeSubmit: function() {
  7199. this.refs[this.emailInputRef].validate();
  7200. this.refs[this.passwordInputRef].validate();
  7201. this.refs[this.retypePasswordInputRef].validate();
  7202. if (!this.refs[this.emailInputRef].isValid() || !this.refs[this.passwordInputRef].isValid() || !this.refs[this.retypePasswordInputRef].isValid()) {
  7203. return false
  7204. }
  7205. if (this.refs[this.passwordInputRef].getValue() !== this.refs[this.retypePasswordInputRef].getValue()) {
  7206. this.setErrorMessageByCode("SMForm_Error_Password_Retype");
  7207. return false
  7208. }
  7209. return true
  7210. },
  7211. getDataToSubmit: function() {
  7212. return {
  7213. email: this.refs[this.emailInputRef].getValue(),
  7214. password: this.refs[this.passwordInputRef].getValue()
  7215. }
  7216. },
  7217. getSkinProperties: function() {
  7218. if (this.shouldDialogBeClosed()) {
  7219. return this.getCloseDialogSkinProperties()
  7220. }
  7221. var b = this.isSocialLogin();
  7222. var c = this.props.language;
  7223. var d = this.getText(c, "SMRegister_Already_Have_User") + ",";
  7224. var e = this.getText(c, "SMRegister_sign_up");
  7225. var f = this.getText(c, "SMRegister_GO");
  7226. var g = this.getText(c, "dialogMixinTranslations_Log_In");
  7227. var h = this.getErrorMessage();
  7228. var i = {
  7229. blockingLayer: {},
  7230. note: {
  7231. children: d
  7232. },
  7233. switchDialogLink: {
  7234. children: g,
  7235. onClick: this.props.onSwitchDialogLinkClick
  7236. },
  7237. title: {
  7238. children: e
  7239. },
  7240. errMsg: {
  7241. children: h
  7242. },
  7243. content: this.createContent(),
  7244. okButton: {
  7245. children: this.createSubmitButton("okButton", f),
  7246. onClick: this.submit
  7247. },
  7248. email: {
  7249. children: this._createEmailField({
  7250. placeholder: this.getText(c, "SMForm_Email")
  7251. })
  7252. },
  7253. password: {
  7254. children: this._createPasswordField({
  7255. placeholder: this.getText(c, "PasswordLogin_Password")
  7256. })
  7257. },
  7258. retypePassword: {
  7259. children: this._createRetypePasswordField({
  7260. placeholder: this.getText(c, "SMForm_Retype_Password")
  7261. })
  7262. },
  7263. contentWrapper: {
  7264. className: this.props.styleId + "_" + (b ? "horizontal" : "vertical") + " " + this.props.styleId + "_" + (b ? this.getMobileSocialLoginClass() : "")
  7265. }
  7266. };
  7267. a.assign(i, b ? this.getSocialLoginSkinParts("signup", c, {
  7268. google: "dialogMixinTranslations_signup_google",
  7269. facebook: "dialogMixinTranslations_signup_facebook",
  7270. switchEmail: "dialogMixinTranslations_signup_switch_email"
  7271. }) : {});
  7272. if (!this.props.notClosable) {
  7273. var j = {
  7274. blockingLayer: {},
  7275. xButton: this.createXButton()
  7276. };
  7277. a.merge(i, j)
  7278. }
  7279. return i
  7280. },
  7281. _createEmailField: function(a) {
  7282. var b = {
  7283. refId: this.emailInputRef,
  7284. inputTitleKey: "SMForm_Email",
  7285. language: this.props.language
  7286. };
  7287. return this.createEmailInput(b, a)
  7288. },
  7289. _createPasswordField: function(a) {
  7290. var b = {
  7291. refId: this.passwordInputRef,
  7292. inputTitleKey: "SMForm_Password",
  7293. language: this.props.language
  7294. };
  7295. return this.createPasswordInput(b, a)
  7296. },
  7297. _createRetypePasswordField: function(a) {
  7298. var b = {
  7299. refId: this.retypePasswordInputRef,
  7300. inputTitleKey: "SMForm_Retype_Password",
  7301. language: this.props.language
  7302. };
  7303. return this.createPasswordInput(b, a)
  7304. },
  7305. componentDidMount: function() {
  7306. this.setPostMessageHandler("wix-social-login", this.onSocialLoginIframeMessage)
  7307. }
  7308. }
  7309. });
  7310. define("components/components/dialogs/siteMemberDialogs/memberLoginDialog/memberLoginDialog", ["lodash", "core", "components/components/dialogs/dialogMixin", "react", "reactDOM", "santaProps"], function(a, b, c, d, e, f) {
  7311. "use strict";
  7312. return {
  7313. displayName: "MemberLoginDialog",
  7314. mixins: [b.compMixins.skinBasedComp, b.compMixins.postMessageCompMixin, c],
  7315. propTypes: {
  7316. isMobileView: f.Types.isMobileView.isRequired,
  7317. notClosable: d.PropTypes.bool,
  7318. language: d.PropTypes.string,
  7319. styleId: f.Types.Component.styleId,
  7320. onSwitchDialogLinkClick: d.PropTypes.func,
  7321. onForgetYourPasswordClick: d.PropTypes.func,
  7322. defaultEmail: d.PropTypes.string
  7323. },
  7324. statics: {
  7325. useSantaTypes: true
  7326. },
  7327. passwordInputRef: "passwordInput",
  7328. emailInputRef: "emailInput",
  7329. socialHolderRef: "socialHolder",
  7330. validateBeforeSubmit: function() {
  7331. this.refs[this.emailInputRef].validate();
  7332. this.refs[this.passwordInputRef].validate();
  7333. return this.refs[this.emailInputRef].isValid() && this.refs[this.passwordInputRef].isValid()
  7334. },
  7335. getDataToSubmit: function() {
  7336. return {
  7337. email: this.refs[this.emailInputRef].getValue(),
  7338. password: this.refs[this.passwordInputRef].getValue(),
  7339. rememberMe: e.findDOMNode(this.refs.rememberMeCheckbox).checked
  7340. }
  7341. },
  7342. getSkinProperties: function() {
  7343. if (this.shouldDialogBeClosed()) {
  7344. return this.getCloseDialogSkinProperties()
  7345. }
  7346. var b = this.isSocialLogin();
  7347. var c = this.props.language;
  7348. var d = this.getText(c, "dialogMixinTranslations_Log_In_Title");
  7349. var e = this.getText(c, "SMRegister_GO");
  7350. var f = this.getText(c, "SMRegister_sign_up");
  7351. var g = this.getText(c, "SMLogin_Remember_Me");
  7352. var h = this.getText(c, this.props.isMobileView ? "dialogMixinTranslations_forgot_password_mobile" : "dialogMixinTranslations_forgot_password");
  7353. var i = this.getText(c, "dialogMixinTranslations_switch_to_signup") + " ";
  7354. var j = this.getErrorMessage();
  7355. var k = {
  7356. blockingLayer: {},
  7357. switchDialogLink: {
  7358. children: f,
  7359. onClick: this.props.onSwitchDialogLinkClick
  7360. },
  7361. title: {
  7362. children: d
  7363. },
  7364. content: this.createContent(),
  7365. rememberMeCheckboxLabel: {
  7366. children: g
  7367. },
  7368. forgotYourPasswordLink: {
  7369. children: h,
  7370. onClick: this._onForgotYourPasswordClick
  7371. },
  7372. switchToSignUpText: {
  7373. children: i
  7374. },
  7375. password: {
  7376. children: this._createPasswordField({
  7377. placeholder: this.getText(c, "PasswordLogin_Password"),
  7378. asyncErrorMessage: j
  7379. })
  7380. },
  7381. email: {
  7382. children: this._createEmailField({
  7383. placeholder: this.getText(c, "SMForm_Email")
  7384. })
  7385. },
  7386. okButton: {
  7387. children: this.createSubmitButton("okButton", e),
  7388. onClick: this.submit
  7389. },
  7390. forgotYourPasswordLinkMobile: {
  7391. children: h,
  7392. onClick: this._onForgotYourPasswordClick
  7393. },
  7394. contentWrapper: {
  7395. className: this.props.styleId + "_" + (b ? "horizontal" : "vertical") + " " + this.props.styleId + "_" + (b ? this.getMobileSocialLoginClass() : "")
  7396. }
  7397. };
  7398. a.assign(k, b ? this.getSocialLoginSkinParts("login", c, {
  7399. google: "dialogMixinTranslations_login_google",
  7400. facebook: "dialogMixinTranslations_login_facebook",
  7401. switchEmail: "dialogMixinTranslations_login_switch_email"
  7402. }) : {});
  7403. if (!this.props.notClosable) {
  7404. var l = {
  7405. blockingLayer: {},
  7406. xButton: this.createXButton()
  7407. };
  7408. a.merge(k, l)
  7409. }
  7410. return k
  7411. },
  7412. _onForgotYourPasswordClick: function() {
  7413. this.props.onForgetYourPasswordClick()
  7414. },
  7415. _createEmailField: function(a) {
  7416. var b = {
  7417. refId: this.emailInputRef,
  7418. inputTitleKey: "SMForm_Email",
  7419. language: this.props.language,
  7420. defaultValue: this.props.defaultEmail
  7421. };
  7422. return this.createEmailInput(b, a)
  7423. },
  7424. _createPasswordField: function(a) {
  7425. var b = {
  7426. refId: this.passwordInputRef,
  7427. inputTitleKey: "SMForm_Password",
  7428. language: this.props.language
  7429. };
  7430. return this.createPasswordInput(b, a)
  7431. },
  7432. componentDidMount: function() {
  7433. this.setPostMessageHandler("wix-social-login", this.onSocialLoginIframeMessage)
  7434. }
  7435. }
  7436. });
  7437. define("components/components/dialogs/siteMemberDialogs/requestPasswordResetDialog/requestPasswordResetDialog", ["lodash", "core", "components/components/dialogs/dialogMixin", "react"], function(a, b, c, d) {
  7438. "use strict";
  7439. return {
  7440. displayName: "RequestPasswordResetDialog",
  7441. mixins: [b.compMixins.skinBasedComp, c],
  7442. emailInputRef: "emailInput",
  7443. propTypes: {
  7444. notClosable: d.PropTypes.bool,
  7445. language: d.PropTypes.string,
  7446. defaultEmail: d.PropTypes.string
  7447. },
  7448. statics: {
  7449. useSantaTypes: true
  7450. },
  7451. validateBeforeSubmit: function() {
  7452. this.refs[this.emailInputRef].validate();
  7453. return this.refs[this.emailInputRef].isValid()
  7454. },
  7455. getDataToSubmit: function() {
  7456. return {
  7457. email: this.refs[this.emailInputRef].getValue()
  7458. }
  7459. },
  7460. getSkinProperties: function() {
  7461. if (this.shouldDialogBeClosed()) {
  7462. return this.getCloseDialogSkinProperties()
  7463. }
  7464. var b = this.props.language;
  7465. var c = this.getText(b, "SMResetPassMail_title");
  7466. var d = this.getText(b, "SMRegister_GO");
  7467. var e = this.getText(b, "SMResetPassMail_Enter_Email");
  7468. var f = this.getErrorMessage();
  7469. var g = {
  7470. blockingLayer: {},
  7471. title: {
  7472. children: c
  7473. },
  7474. errMsg: {
  7475. children: f
  7476. },
  7477. content: this.createContent(),
  7478. okButton: {
  7479. children: this.createSubmitButton("okButton", d),
  7480. onClick: this.submit
  7481. },
  7482. subtitle: {
  7483. children: e
  7484. },
  7485. email: {
  7486. children: this._createEmailInput({
  7487. placeholder: this.getText(b, "SMForm_Email")
  7488. })
  7489. }
  7490. };
  7491. if (!this.props.notClosable) {
  7492. var h = {
  7493. blockingLayer: {},
  7494. xButton: this.createXButton()
  7495. };
  7496. a.merge(g, h)
  7497. }
  7498. return g
  7499. },
  7500. _createEmailInput: function(a) {
  7501. var b = {
  7502. refId: this.emailInputRef,
  7503. inputTitleKey: "SMResetPassMail_Enter_Email",
  7504. language: this.props.language,
  7505. defaultValue: this.props.defaultEmail
  7506. };
  7507. return this.createEmailInput(b, a)
  7508. }
  7509. }
  7510. });
  7511. define("components/components/dialogs/siteMemberDialogs/resetPasswordDialog/resetPasswordDialog", ["lodash", "core", "components/components/dialogs/dialogMixin", "santaProps", "react"], function(a, b, c, d, e) {
  7512. "use strict";
  7513. return {
  7514. displayName: "ResetPasswordDialog",
  7515. mixins: [b.compMixins.skinBasedComp, c],
  7516. propTypes: {
  7517. forgotPasswordToken: d.Types.SiteMembersSantaTypes.forgotPasswordToken,
  7518. language: e.PropTypes.string
  7519. },
  7520. statics: {
  7521. useSantaTypes: true
  7522. },
  7523. passwordInputRef: "passwordInput",
  7524. retypePasswordInputRef: "retypePasswordInput",
  7525. validateBeforeSubmit: function() {
  7526. this.refs[this.passwordInputRef].validate();
  7527. this.refs[this.retypePasswordInputRef].validate();
  7528. if (!this.refs[this.passwordInputRef].isValid() || !this.refs[this.retypePasswordInputRef].isValid()) {
  7529. return false
  7530. }
  7531. if (this.refs[this.passwordInputRef].getValue() !== this.refs[this.retypePasswordInputRef].getValue()) {
  7532. this.setErrorMessage("SMForm_Error_Password_Retype");
  7533. return false
  7534. }
  7535. return true
  7536. },
  7537. getDefaultProps: function() {
  7538. return {
  7539. shouldNotClose: true
  7540. }
  7541. },
  7542. getDataToSubmit: function() {
  7543. return {
  7544. forgotPasswordToken: this.props.forgotPasswordToken,
  7545. newPassword: this.refs[this.passwordInputRef].getValue()
  7546. }
  7547. },
  7548. getSkinProperties: function() {
  7549. var a = this.props.language;
  7550. var b = this.getText(a, "SMResetPassMail_title");
  7551. var c = this.getText(a, "dialogMixinTranslations_RESET_PASSWORD_TEXT");
  7552. var d = this.getText(a, "SMRegister_GO");
  7553. var e = this.getText(a, "SMResetPass_New_Password");
  7554. var f = this.getText(a, "dialogMixinTranslations_RESET_PASSWORD_NEWFIELD_RETYPE");
  7555. var g = this.getErrorMessage();
  7556. return {
  7557. blockingLayer: {},
  7558. title: {
  7559. children: b
  7560. },
  7561. errMsg: {
  7562. children: g
  7563. },
  7564. content: this.createContent(),
  7565. okButton: {
  7566. children: this.createSubmitButton("okButton", d),
  7567. onClick: this.submit
  7568. },
  7569. subtitle: {
  7570. children: c
  7571. },
  7572. password: {
  7573. children: this._createPasswordField({
  7574. placeholder: e
  7575. })
  7576. },
  7577. retypePassword: {
  7578. children: this._createRetypePasswordField({
  7579. placeholder: f
  7580. })
  7581. }
  7582. }
  7583. },
  7584. _createPasswordField: function(a) {
  7585. var b = {
  7586. refId: this.passwordInputRef,
  7587. inputTitleKey: "SMResetPass_New_Password",
  7588. language: this.props.language
  7589. };
  7590. return this.createPasswordInput(b, a)
  7591. },
  7592. _createRetypePasswordField: function(a) {
  7593. var b = {
  7594. refId: this.retypePasswordInputRef,
  7595. inputTitleKey: "SMResetPass_Retype_Password",
  7596. language: this.props.language
  7597. };
  7598. return this.createPasswordInput(b, a)
  7599. }
  7600. }
  7601. });
  7602. define("components/components/itunesButton/itunesButton", ["lodash", "react", "core", "utils"], function(a, b, c, d) {
  7603. "use strict";
  7604. var e = "{{langCode}}";
  7605. var f = "iTunesBtn_" + e + ".svg";
  7606. var g = "/static/images/itunesButton/";
  7607. var h = ["da", "de", "en", "es", "fr", "it", "jp", "ko", "nl", "no", "pl", "pt", "ru", "sv", "tr"];
  7608.  
  7609. function i(a, c) {
  7610. var d = {
  7611. parentConst: b.DOM.a,
  7612. target: a.openIn
  7613. };
  7614. if (c.downloadUrl) {
  7615. d.href = c.downloadUrl
  7616. }
  7617. return d
  7618. }
  7619.  
  7620. function j(a, b) {
  7621. if (a === "userLang") {
  7622. return d.wixUserApi.getLanguage(b.requestModel.cookie, b.currentUrl)
  7623. }
  7624. return a
  7625. }
  7626.  
  7627. function k(b, c) {
  7628. var d = l(c);
  7629. var f = j(b.language, c);
  7630. if (!a.includes(h, f)) {
  7631. f = "en"
  7632. }
  7633. return d.replace(e, f.toUpperCase())
  7634. }
  7635.  
  7636. function l(a) {
  7637. var b = a.santaBase + g;
  7638. return b + f
  7639. }
  7640. return {
  7641. displayName: "ItunesButton",
  7642. mixins: [c.compMixins.skinBasedComp],
  7643. getSkinProperties: function() {
  7644. return {
  7645. downloadButton: i(this.props.compProp, this.props.compData),
  7646. itunesImg: {
  7647. src: k(this.props.compProp, this.props.siteData)
  7648. }
  7649. }
  7650. }
  7651. }
  7652. });
  7653. define("components/components/toggle/toggle", ["core"], function(a) {
  7654. "use strict";
  7655. var b = a.compMixins;
  7656. return {
  7657. displayName: "Toggle",
  7658. mixins: [b.skinBasedComp],
  7659. getInitialState: function() {
  7660. return this.getCssState(this.props)
  7661. },
  7662. componentWillReceiveProps: function(a) {
  7663. this.setState(this.getCssState(a))
  7664. },
  7665. getCssState: function(a) {
  7666. return {
  7667. $default: a.initialState || "off"
  7668. }
  7669. },
  7670. getSkinProperties: function() {
  7671. var a = this.props.children[0];
  7672. var b = this.props.children[1];
  7673. return {
  7674. on: {
  7675. children: this.props.initialState === "on" ? [a] : []
  7676. },
  7677. off: {
  7678. children: this.props.initialState === "off" ? [b] : []
  7679. }
  7680. }
  7681. }
  7682. }
  7683. });
  7684. define("components/components/skypeCallButton/skypeCallButton", ["core", "react"], function(a, b) {
  7685. "use strict";
  7686. var c = a.compMixins;
  7687. var d = {
  7688. call: {
  7689. small: {
  7690. width: 38,
  7691. height: 16
  7692. },
  7693. medium: {
  7694. width: 56,
  7695. height: 24
  7696. },
  7697. large: {
  7698. width: 73,
  7699. height: 32
  7700. }
  7701. },
  7702. chat: {
  7703. small: {
  7704. width: 45,
  7705. height: 16
  7706. },
  7707. medium: {
  7708. width: 65,
  7709. height: 24
  7710. },
  7711. large: {
  7712. width: 86,
  7713. height: 32
  7714. }
  7715. }
  7716. };
  7717. return {
  7718. displayName: "SkypeCallButton",
  7719. mixins: [c.skinBasedComp],
  7720. getInitialState: function() {
  7721. var a = this.props.compData,
  7722. b = this.props.compProp;
  7723. return {
  7724. $buttontype: a.buttonType,
  7725. $imagesize: b.imageSize,
  7726. $imagecolor: b.imageColor
  7727. }
  7728. },
  7729. componentWillReceiveProps: function(a) {
  7730. var b = a.compData;
  7731. var c = a.compProp;
  7732. this.setState({
  7733. $buttontype: b.buttonType,
  7734. $imagesize: c.imageSize,
  7735. $imagecolor: c.imageColor
  7736. })
  7737. },
  7738. getSkinProperties: function() {
  7739. var a = this.props.compData,
  7740. c = this.props.compProp,
  7741. e = d[a.buttonType][c.imageSize];
  7742. var f = {
  7743. "": {
  7744. style: {
  7745. width: e.width,
  7746. height: e.height
  7747. }
  7748. },
  7749. placeholder: {
  7750. parentConst: b.DOM.div,
  7751. style: {
  7752. display: "block",
  7753. width: e.width,
  7754. height: e.height
  7755. }
  7756. }
  7757. };
  7758. if (a.skypeName) {
  7759. f.skypeLink = {
  7760. href: "skype:" + a.skypeName + "?" + a.buttonType
  7761. }
  7762. }
  7763. return f
  7764. }
  7765. }
  7766. });
  7767. define("components/components/sliderGallery/sliderGallery", ["core", "skins", "lodash", "reactDOM", "galleriesCommon"], function(a, b, c, d, e) {
  7768. "use strict";
  7769. var f = a.compMixins;
  7770. var g = e.utils.galleriesHelperFunctions;
  7771. var h = e.utils.matrixScalingCalculations;
  7772.  
  7773. function i(a, b, c) {
  7774. var d = this.state.currentIndex;
  7775. if (d !== a) {
  7776. if (this.props.onImageSelected) {
  7777. b.type = "imageSelected";
  7778. b.payload = {
  7779. itemIndex: a,
  7780. imageData: this.props.compData.items[a]
  7781. };
  7782. this.props.onImageSelected(b, c)
  7783. }
  7784. this.setState({
  7785. currentIndex: a
  7786. })
  7787. }
  7788. }
  7789. var j = 60;
  7790.  
  7791. function k(a, b) {
  7792. var d = b.props.selectedItemIndex || 0;
  7793. var e = c.get(a, ["currentIndex"], d);
  7794. return {
  7795. currentIndex: e
  7796. }
  7797. }
  7798. return {
  7799. displayName: "SliderGallery",
  7800. statics: {
  7801. behaviors: {
  7802. nextSlide: {
  7803. methodName: "next"
  7804. },
  7805. prevSlide: {
  7806. methodName: "prev"
  7807. }
  7808. }
  7809. },
  7810. mixins: [f.skinBasedComp, f.skinInfo, f.animationsMixin, f.timeoutsMixin, f.compStateMixin(k)],
  7811. _currentOffset: null,
  7812. _motion: false,
  7813. _firstChild: null,
  7814. getInitialState: function() {
  7815. var a = this.props.siteAPI.getSiteAspect("windowTouchEvents");
  7816. a.registerToWindowTouchEvent("touchStart", this);
  7817. return c.assign(k(null, {
  7818. props: this.props.compProp
  7819. }), {
  7820. $mobile: this.props.siteData.isMobileDevice() || this.props.siteData.isTabletDevice() ? "mobile" : "notMobile",
  7821. $displayDevice: this.props.siteData.isMobileView() ? "mobileView" : "desktopView"
  7822. })
  7823. },
  7824. componentWillUnmount: function() {
  7825. this.props.siteAPI.getSiteAspect("windowTouchEvents").unregisterFromWindowTouchEvent("touchStart", this)
  7826. },
  7827. getSkinProperties: function() {
  7828. this.gap = c.isNumber(this.props.compProp.margin) ? this.props.compProp.margin : 20;
  7829. this.contentOverflow = false;
  7830. var a = b.skins[this.props.skin];
  7831. var d = a.exports && a.exports.bottomGap || 0;
  7832. var e = Math.abs(this.getFromExports("itemContainerAdditionalHeight"));
  7833. var f = this.populate(d, e);
  7834. var h = Math.abs(this.getFromExports("itemContainerTotalOffset"));
  7835. var i = this.props.style.width - h;
  7836. if (this.itemsHolderWidth > i) {
  7837. this.contentOverflow = true;
  7838. f = this.populate(d, e)
  7839. }
  7840. return {
  7841. imageItem: {},
  7842. images: {
  7843. children: f,
  7844. "data-gallery-id": this.props.id
  7845. },
  7846. swipeLeftHitArea: {
  7847. onMouseEnter: this.prev,
  7848. onMouseLeave: this._stopMovement,
  7849. onTouchStart: this.prev,
  7850. "data-gallery-id": this.props.id
  7851. },
  7852. swipeRightHitArea: {
  7853. onMouseEnter: this.next,
  7854. onMouseLeave: this._stopMovement,
  7855. onTouchStart: this.next,
  7856. "data-gallery-id": this.props.id
  7857. },
  7858. "": {
  7859. onSwipeLeft: this.next,
  7860. onSwipeRight: this.prev,
  7861. "data-height-diff": g.getSkinHeightDiff(this.props.skin),
  7862. "data-width-diff": g.getSkinWidthDiff(this.props.skin),
  7863. "data-bottom-gap": d,
  7864. "data-additional-height": e
  7865. }
  7866. }
  7867. },
  7868. getChildrenData: function() {
  7869. var a = this.props.compData.items;
  7870. return this.props.compProp.loop && this.contentOverflow ? a.concat(a) : a
  7871. },
  7872. populate: function(a, d) {
  7873. var e;
  7874. var f = this.props.compProp;
  7875. var j = this.props.compData;
  7876. this.itemsHolderWidth = 0;
  7877. var k = this.getChildrenData();
  7878. e = k.map(function(e, k) {
  7879. var l = e;
  7880. var m = this.getSkinExports().imageItem.skin;
  7881. var n = this.getParams(["topPadding", "imgHeightDiff"], m);
  7882. var o = g.getDisplayerHeightDiff(b.skins[m], n, this.state.$displayDevice);
  7883. var p = g.getDisplayerWidthDiff(b.skins[m], this.state.$displayDevice);
  7884. var q = Math.floor(this.props.style.height + d);
  7885. var r = this.props.compData.items.length;
  7886. var s = h.getSizeAfterScaling({
  7887. itemHeight: q,
  7888. itemWidth: Math.floor(q * (this.props.compProp.aspectRatio || 1)),
  7889. displayerData: l,
  7890. imageMode: this.props.compProp.imageMode,
  7891. heightDiff: o,
  7892. widthDiff: p,
  7893. bottomGap: a
  7894. });
  7895. this.itemsHolderWidth = this.itemsHolderWidth + s.imageWrapperSize.imageWrapperWidth + this.gap;
  7896. return this.createChildComponent(l, "wysiwyg.viewer.components.Displayer", "imageItem", {
  7897. rootId: this.props.rootId,
  7898. currentUrlPageId: this.props.currentUrlPageId,
  7899. rootNavigationInfo: this.props.rootNavigationInfo,
  7900. galleryDataId: j.id,
  7901. imageWrapperSize: s.imageWrapperSize,
  7902. style: {
  7903. display: "inline-block",
  7904. margin: "0 " + (c.isNumber(f.margin) ? f.margin : 20) + "px 0 0",
  7905. height: s.displayerSize.height,
  7906. width: s.displayerSize.width
  7907. },
  7908. isSelected: this.state.currentIndex === k,
  7909. onClick: i.bind(this, k),
  7910. displayerDataQuery: e,
  7911. galleryId: this.props.id,
  7912. heightDiff: o,
  7913. widthDiff: p,
  7914. bottomGap: a,
  7915. imageIndex: k % r,
  7916. key: this.props.id + k,
  7917. ref: this.props.id + k,
  7918. id: this.props.id + k
  7919. })
  7920. }, this);
  7921. return e
  7922. },
  7923. prev: function() {
  7924. this._move(true)
  7925. },
  7926. next: function() {
  7927. this._move(false)
  7928. },
  7929. _move: function(a) {
  7930. var b = this.props.compProp.maxSpeed || .05;
  7931. this.slide(a, b, this.props.compProp.loop)
  7932. },
  7933. _stopMovement: function() {
  7934. if (this._sequenceId) {
  7935. this.easeStopSequence(this._sequenceId, 1);
  7936. this._sequenceId = null
  7937. }
  7938. },
  7939. slide: function(a, b, c) {
  7940. if (!this.contentOverflow) {
  7941. return
  7942. }
  7943. var e = this.props.siteData.measureMap;
  7944. var f = e.width[this.props.id + "images"] - (this.props.compProp.margin || 0);
  7945. var g = e.width[this.props.id + "itemsContainer"];
  7946. var h = d.findDOMNode(this.refs.images).offsetLeft;
  7947. var i = c ? -f / 2 : g - f;
  7948. this._stopMovement();
  7949. var k = this.sequence();
  7950. var l = Math.abs(i) / (b * j);
  7951. var m = l * (a ? Math.abs(h / i) : 1 - Math.abs(h / i));
  7952. k.add("images", "BasePosition", m, 0, {
  7953. from: {
  7954. left: h
  7955. },
  7956. to: {
  7957. left: a ? 0 : i
  7958. },
  7959. ease: "Linear.easeNone"
  7960. });
  7961. if (c) {
  7962. k.add("images", "BasePosition", l, 0, {
  7963. from: {
  7964. left: a ? i : 0
  7965. },
  7966. to: {
  7967. left: a ? 0 : i
  7968. },
  7969. repeat: c ? -1 : 0,
  7970. immediateRender: false,
  7971. ease: "Linear.easeNone"
  7972. })
  7973. }
  7974. k.onCompleteAll(function() {
  7975. this.handleAction("imageChanged")
  7976. }.bind(this));
  7977. this._sequenceId = k.execute({
  7978. paused: true
  7979. });
  7980. this.easeStartSequence(this._sequenceId, 1);
  7981. if (this.state.$mobile === "mobile") {
  7982. this.clearTimeoutNamed(this.props.id);
  7983. this._nextStopTimeout = this.setTimeoutNamed(this.props.id, function() {
  7984. this._stopMovement()
  7985. }.bind(this), 2e3)
  7986. }
  7987. },
  7988. onWindowTouchStart: function(a) {
  7989. var b = a.target.getAttribute("data-gallery-id") || a.target.parentNode.getAttribute("data-gallery-id");
  7990. if (b !== this.props.id) {
  7991. this._stopMovement()
  7992. }
  7993. }
  7994. }
  7995. });
  7996. define("components/components/slideShowGallery/slideShowGallery", ["core", "skins", "lodash", "utils", "galleriesCommon"], function(a, b, c, d, e) {
  7997. "use strict";
  7998. var f = a.compMixins;
  7999. var g = e.utils.matrixScalingCalculations;
  8000. var h = e.utils.galleriesHelperFunctions;
  8001. var i = d.galleriesCommonLayout;
  8002.  
  8003. function j(a, b) {
  8004. return l(a + 1, b)
  8005. }
  8006.  
  8007. function k(a, b) {
  8008. return l(a - 1, b)
  8009. }
  8010.  
  8011. function l(a, b) {
  8012. return (a % b + b) % b
  8013. }
  8014.  
  8015. function m(a, b) {
  8016. return String(a + 1) + "/" + String(b)
  8017. }
  8018.  
  8019. function n(a, b, c) {
  8020. if (b === "flexibleHeight") {
  8021. return a.displayerSize.height
  8022. }
  8023. return c
  8024. }
  8025.  
  8026. function o(a) {
  8027. return {
  8028. currentIndex: c.get(a, "currentIndex", 0)
  8029. }
  8030. }
  8031. return {
  8032. displayName: "SlideShowGallery",
  8033. mixins: [f.skinBasedComp, e.mixins.galleryAutoPlayMixin, f.animationsMixin, f.timeoutsMixin, f.skinInfo, f.compStateMixin(o)],
  8034. statics: {
  8035. behaviors: {
  8036. nextSlide: {
  8037. methodName: "next"
  8038. },
  8039. prevSlide: {
  8040. methodName: "prev"
  8041. }
  8042. }
  8043. },
  8044. getInitialState: function() {
  8045. this.shouldResetGalleryToOriginalState = this.props.siteData.renderFlags.shouldResetGalleryToOriginalState;
  8046. var a = this.props.siteAPI.getSiteAspect("windowTouchEvents");
  8047. a.registerToWindowTouchEvent("touchStart", this);
  8048. this.isAnimating = false;
  8049. this.getButtonsState = this.getButtonsState || c.noop;
  8050. return c.assign(o(), {
  8051. $mobile: this.props.siteData.isMobileDevice() || this.props.siteData.isTabletDevice() ? "mobile" : "notMobile",
  8052. $displayDevice: this.props.siteData.isMobileView() ? "mobileView" : "desktopView",
  8053. displayerPanelState: "notShowPanel",
  8054. $touchRollOverSupport: "touchRollOut",
  8055. $animationInProcess: null
  8056. }, this.getButtonsState())
  8057. },
  8058. componentDidMount: function() {
  8059. this.updateAutoplayState()
  8060. },
  8061. componentWillReceiveProps: function(a) {
  8062. var b = false;
  8063. var d = {
  8064. $mobile: a.siteData.isMobileDevice() || a.siteData.isTabletDevice() ? "mobile" : "notMobile",
  8065. $displayDevice: a.siteData.isMobileView() ? "mobileView" : "desktopView"
  8066. };
  8067. if (this.props.compProp.autoplay !== a.compProp.autoplay) {
  8068. var e = a.compProp.autoplay && !this.props.siteAPI.isZoomOpened() && this.props.siteData.renderFlags.isPlayingAllowed ? "autoplayOn" : "autoplayOff";
  8069. b = true;
  8070. d.shouldAutoPlay = a.compProp.autoplay;
  8071. d.$slideshow = e
  8072. }
  8073. c.assign(d, this.getButtonsState());
  8074. this.setState(d, function() {
  8075. if (b) {
  8076. this.updateAutoplayState();
  8077. this.handleAction(d.$slideshow)
  8078. }
  8079. }.bind(this));
  8080. if (this.shouldResetGalleryToOriginalState !== a.siteData.renderFlags.shouldResetGalleryToOriginalState) {
  8081. if (this.shouldResetGalleryToOriginalState && this.props.compProp.imageMode === "flexibleHeight" && this.resetGalleryState) {
  8082. this.resetGalleryState()
  8083. }
  8084. this.shouldResetGalleryToOriginalState = a.siteData.renderFlags.shouldResetGalleryToOriginalState
  8085. }
  8086. },
  8087. componentWillUnmount: function() {
  8088. this.props.siteAPI.getSiteAspect("windowTouchEvents").unregisterFromWindowTouchEvent("touchStart", this)
  8089. },
  8090. getSkinProperties: function() {
  8091. var a = this.props.compData;
  8092. var b, d, e;
  8093. var f = a.items && a.items.length > 0;
  8094. if (f) {
  8095. b = a.items[this.state.currentIndex];
  8096. d = this.getDisplayerSizeAfterScaling(b);
  8097. e = n(d, this.props.compProp.imageMode, this.props.style.height)
  8098. }
  8099. var g = f ? this.hideShowPanel : c.noop;
  8100. var j = {
  8101. itemsContainer: {
  8102. children: f ? this.generateNextPagesIfNeeded().concat([this.createDisplayer(b, this.state.currentIndex)]) : [],
  8103. style: {
  8104. height: "100%"
  8105. },
  8106. "data-gallery-id": this.props.id
  8107. },
  8108. buttonPrev: {
  8109. onClick: this.prev,
  8110. style: {
  8111. visibility: !this.props.compProp.isHidden && f && this.props.compProp.showNavigation ? "visible" : "hidden"
  8112. },
  8113. "data-gallery-id": this.props.id
  8114. },
  8115. buttonNext: {
  8116. onClick: this.next,
  8117. style: {
  8118. visibility: !this.props.compProp.isHidden && f && this.props.compProp.showNavigation ? "visible" : "hidden"
  8119. },
  8120. "data-gallery-id": this.props.id
  8121. },
  8122. counter: {
  8123. children: m(this.state.currentIndex, this.props.compData.items.length),
  8124. style: {
  8125. visibility: !this.props.compProp.isHidden && this.props.compProp.showCounter ? "visible" : "hidden"
  8126. },
  8127. "data-gallery-id": this.props.id
  8128. },
  8129. border: {
  8130. style: {
  8131. height: e
  8132. },
  8133. "data-gallery-id": this.props.id
  8134. },
  8135. autoplay: {
  8136. onClick: this.toggleAutoPlay,
  8137. style: {
  8138. cursor: "pointer",
  8139. visibility: this.shouldShowAutoPlay() ? "visible" : "hidden"
  8140. },
  8141. "data-gallery-id": this.props.id
  8142. },
  8143. "": {
  8144. style: {
  8145. height: e,
  8146. overflow: "hidden"
  8147. },
  8148. onMouseEnter: g,
  8149. onMouseLeave: g,
  8150. onMouseMove: g,
  8151. onTouchStart: this.onComponentTouchStart,
  8152. "data-gallery-id": this.props.id,
  8153. "data-height-diff": h.getSkinHeightDiff(this.props.skin),
  8154. "data-width-diff": h.getSkinWidthDiff(this.props.skin),
  8155. "data-text-alignment": this.props.compProp.alignText
  8156. }
  8157. };
  8158. if (this.props.compProp.imageMode === "flexibleHeight") {
  8159. i.updateSkinPropsForFlexibleHeightGallery(j, e)
  8160. }
  8161. return j
  8162. },
  8163. onComponentTouchStart: function(a) {
  8164. this.hideShowPanel(a);
  8165. if (this.state.$touchRollOverSupport === "touchRollOut") {
  8166. this.setState({
  8167. $touchRollOverSupport: "touchRollOver"
  8168. })
  8169. }
  8170. },
  8171. onWindowTouchStart: function(a) {
  8172. if (this.state.$touchRollOverSupport === "touchRollOver" && a.target.getAttribute("data-gallery-id") !== this.props.id) {
  8173. this.hideShowPanel({
  8174. type: "mouseleave",
  8175. target: a.target
  8176. });
  8177. this.setState({
  8178. $touchRollOverSupport: "touchRollOut"
  8179. })
  8180. }
  8181. },
  8182. hideShowPanel: function(a, b, c) {
  8183. var d = a.type === "mouseleave" ? "notShowPanel" : "showPanel";
  8184. var e = this.props.compData.items[this.state.currentIndex];
  8185. var f = this.props.id + e.id + this.state.currentIndex;
  8186. if (this.refs[f].getPanelState() !== d) {
  8187. this.refs[f].setPanelState(d)
  8188. }
  8189. if (!c && d !== this.state.displayerPanelState) {
  8190. this.setState({
  8191. displayerPanelState: d
  8192. })
  8193. }
  8194. },
  8195. prev: function(a) {
  8196. var b = this.props.compProp.reverse;
  8197. this.moveSlide(!b, a)
  8198. },
  8199. next: function(a) {
  8200. var b = this.props.compProp.reverse;
  8201. this.moveSlide(b, a)
  8202. },
  8203. moveSlide: function(a, b) {
  8204. if (this.isAnimating) {
  8205. return false
  8206. }
  8207. var c = a ? k(this.state.currentIndex, this.props.compData.items.length) : j(this.state.currentIndex, this.props.compData.items.length);
  8208. if (this.state.currentIndex === c) {
  8209. return false
  8210. }
  8211. this.hideShowPanel({
  8212. type: "mouseleave",
  8213. target: {
  8214. id: ""
  8215. }
  8216. }, {}, true);
  8217. var d = this.props.compData.items[c].id;
  8218. var e = this.props.compData.items[this.state.currentIndex].id;
  8219. var f = this.props.id + d + c;
  8220. var g = this.props.id + e + this.state.currentIndex;
  8221. this.refs[f].setTransitionPhase("transIn");
  8222. this.refs[g].setTransitionPhase("transOut");
  8223. var h = {
  8224. swipeVertical: "SlideVertical",
  8225. swipeHorizontal: "SlideHorizontal",
  8226. crossfade: "CrossFade",
  8227. outIn: "OutIn",
  8228. none: "NoTransition"
  8229. };
  8230. var i = this.props.compProp.transition === "none" ? 0 : this.props.compProp.transDuration;
  8231. this.setState({
  8232. $animationInProcess: "animationInProcess"
  8233. });
  8234. var l = this.sequence();
  8235. if (this.props.compProp.imageMode === "flexibleHeight") {
  8236. var m = this.getDisplayerSizeAfterScaling(d);
  8237. l.add("", "BaseDimensions", this.props.compProp.transDuration, 0, {
  8238. to: {
  8239. height: m.displayerSize.height
  8240. }
  8241. })
  8242. }
  8243. l.add("itemsContainer", "BaseDimensions", 0, 0, {
  8244. to: {
  8245. zIndex: 0
  8246. }
  8247. }, 0).add({
  8248. sourceRefs: g,
  8249. destRefs: f
  8250. }, h[this.props.compProp.transition], i, 0, {
  8251. reverse: a
  8252. }, 0).add("itemsContainer", "BaseDimensions", 0, 0, {
  8253. to: {
  8254. clearProps: "zIndex",
  8255. immediateRender: false
  8256. }
  8257. }).onStartAll(function() {
  8258. this.isAnimating = true
  8259. }.bind(this)).onCompleteAll(function() {
  8260. this.animationCompleteCallback(c, b)
  8261. }.bind(this)).execute()
  8262. },
  8263. animationCompleteCallback: function(a, b) {
  8264. this.isAnimating = false;
  8265. this.registerReLayout();
  8266. this.setState({
  8267. currentIndex: a,
  8268. $animationInProcess: null
  8269. }, function() {
  8270. this.updateAutoplayState();
  8271. this.handleAction("imageChanged");
  8272. if (c.isFunction(b)) {
  8273. b()
  8274. }
  8275. }.bind(this))
  8276. },
  8277. getDisplayerSizeAfterScaling: function(a) {
  8278. return g.getSizeAfterScaling({
  8279. itemHeight: this.props.style.height - h.getSkinHeightDiff(this.props.skin),
  8280. itemWidth: this.props.style.width - h.getSkinWidthDiff(this.props.skin),
  8281. displayerData: a,
  8282. imageMode: this.props.compProp.imageMode,
  8283. heightDiff: this.getDisplayerHeightDiff(),
  8284. widthDiff: this.getDisplayerWidthDiff(),
  8285. bottomGap: this.getBottomGap()
  8286. })
  8287. },
  8288. generateNextPagesIfNeeded: function() {
  8289. var a;
  8290. var b;
  8291. var c = [];
  8292. var d = j(this.state.currentIndex, this.props.compData.items.length);
  8293. if (d !== this.state.currentIndex) {
  8294. a = this.props.compData.items[d]
  8295. }
  8296. var e = k(this.state.currentIndex, this.props.compData.items.length);
  8297. if (e !== this.state.currentIndex && e !== d) {
  8298. b = this.props.compData.items[e]
  8299. }
  8300. var f = {
  8301. visibility: "hidden",
  8302. opacity: 0
  8303. };
  8304. if (a) {
  8305. c.push(this.createDisplayer(a, d, f))
  8306. }
  8307. if (b) {
  8308. c.push(this.createDisplayer(b, e, f))
  8309. }
  8310. return c
  8311. },
  8312. createDisplayer: function(a, b, d) {
  8313. var e = this.getDisplayerSizeAfterScaling(a);
  8314. return this.createChildComponent(a, "wysiwyg.viewer.components.Displayer", "imageItem", {
  8315. key: this.state.currentIndex + a.id,
  8316. ref: this.props.id + a.id + b,
  8317. id: this.props.id + a.id + b,
  8318. currentUrlPageId: this.props.currentUrlPageId,
  8319. galleryDataId: this.props.compData.id,
  8320. galleryId: this.props.id,
  8321. imageWrapperSize: e.imageWrapperSize,
  8322. showPanelState: d ? "notShowPanel" : this.state.displayerPanelState,
  8323. heightDiff: this.getDisplayerHeightDiff(),
  8324. widthDiff: this.getDisplayerWidthDiff(),
  8325. bottomGap: this.getBottomGap(),
  8326. imageIndex: b,
  8327. style: c.merge({
  8328. width: e.displayerSize.width,
  8329. height: e.displayerSize.height,
  8330. position: "absolute",
  8331. left: 0,
  8332. top: 0
  8333. }, d)
  8334. })
  8335. },
  8336. getDisplayerHeightDiff: function() {
  8337. var a = this.getSkinExports().imageItem.skin;
  8338. var c = this.getParams(["topPadding", "imgHeightDiff"], a);
  8339. return h.getDisplayerHeightDiff(b.skins[a], c, this.state.$displayDevice)
  8340. },
  8341. getDisplayerWidthDiff: function() {
  8342. var a = this.getSkinExports().imageItem.skin;
  8343. return h.getDisplayerWidthDiff(b.skins[a], this.state.$displayDevice)
  8344. },
  8345. getBottomGap: function() {
  8346. var a = b.skins[this.props.skin];
  8347. return a.exports && a.exports.bottomGap || 0
  8348. }
  8349. }
  8350. });
  8351. define("components/components/textOption/textOption", ["core"], function(a) {
  8352. "use strict";
  8353. var b = a.compMixins;
  8354. return {
  8355. displayName: "TextOption",
  8356. mixins: [b.optionInput],
  8357. getSkinProperties: function() {
  8358. var a = {
  8359. size: {
  8360. children: this.props.compData.text
  8361. },
  8362. tooltip: this.createInfoTipChildComponent()
  8363. };
  8364. if (!this.props.compData.disabled) {
  8365. a[""] = {
  8366. onClick: this.props.onClick,
  8367. onMouseEnter: this.onMouseEnter,
  8368. onMouseLeave: this.onMouseLeave
  8369. }
  8370. }
  8371. return a
  8372. }
  8373. }
  8374. });
  8375. define("components/components/mobileTextOption/mobileTextOption", ["core"], function(a) {
  8376. "use strict";
  8377. var b = a.compMixins;
  8378. return {
  8379. displayName: "MobileTextOption",
  8380. mixins: [b.optionInput],
  8381. getSkinProperties: function() {
  8382. var a = {
  8383. size: {
  8384. children: this.props.compData.text
  8385. },
  8386. tooltip: {
  8387. children: [this.props.compData.description]
  8388. }
  8389. };
  8390. if (!this.props.compData.disabled) {
  8391. a[""] = {
  8392. onClick: this.props.onClick,
  8393. style: {
  8394. cursor: "pointer"
  8395. }
  8396. }
  8397. }
  8398. return a
  8399. }
  8400. }
  8401. });
  8402. define("components/components/vKShareButton/vKShareButton", ["react", "lodash", "core", "utils", "socialCommon"], function(a, b, c, d, e) {
  8403. "use strict";
  8404. var f = c.compMixins;
  8405. var g = {
  8406. Button: {
  8407. w: 100,
  8408. h: 21
  8409. },
  8410. ButtonWithoutCounter: {
  8411. w: 64,
  8412. h: 21
  8413. },
  8414. Link: {
  8415. w: 50,
  8416. h: 21
  8417. },
  8418. LinkWithoutIcon: {
  8419. w: 30,
  8420. h: 21
  8421. },
  8422. Icon: {
  8423. w: 36,
  8424. h: 36
  8425. }
  8426. };
  8427. var h = g.Button;
  8428. var i = function(a, b) {
  8429. var c = a.compData;
  8430. var e = {
  8431. id: a.id,
  8432. url: b,
  8433. style: c.style,
  8434. text: c.text || "Share"
  8435. };
  8436. return a.siteData.santaBase + "/static/external/VKShare.html?" + d.urlUtils.toQueryString(e)
  8437. };
  8438. var j = function(a, b) {
  8439. var c = g[b] || h;
  8440. return {
  8441. width: a || c.w,
  8442. height: c.h
  8443. }
  8444. };
  8445.  
  8446. function k(a, c, d) {
  8447. return {
  8448. allowTransparency: "true",
  8449. key: "VKShareButton-" + a.currentUrlPageId,
  8450. frameBorder: "0",
  8451. src: i(a, d),
  8452. scrolling: "no",
  8453. style: b.clone(c)
  8454. }
  8455. }
  8456. return {
  8457. displayName: "VKShareButton",
  8458. mixins: [f.skinBasedComp, e.socialCompMixin],
  8459. onVKPostMessage: function(a) {
  8460. this.setState({
  8461. widthFromVK: a.width
  8462. })
  8463. },
  8464. getInitialState: function() {
  8465. return {}
  8466. },
  8467. componentDidMount: function() {
  8468. this.props.siteAPI.getSiteAspect("vkPostMessage").registerToPostMessage(this)
  8469. },
  8470. componentWillUnmount: function() {
  8471. this.props.siteAPI.getSiteAspect("vkPostMessage").unRegisterToPostMessage(this)
  8472. },
  8473. getSkinProperties: function() {
  8474. var b = j(this.state.widthFromVK, this.props.compData.style);
  8475. var c = this.getSocialUrl();
  8476. var d = k(this.props, b, c);
  8477. return {
  8478. "": {
  8479. style: b
  8480. },
  8481. iframe: a.DOM.iframe(d)
  8482. }
  8483. }
  8484. }
  8485. });
  8486. define("components/components/wGooglePlusOne/wGooglePlusOne", ["lodash", "react", "core", "reactDOM"], function(a, b, c, d) {
  8487. "use strict";
  8488. var e = c.compMixins;
  8489.  
  8490. function f(a) {
  8491. var b = a.compProp.size + "_" + a.compProp.annotation;
  8492. switch (b) {
  8493. case "small_bubble":
  8494. return {
  8495. width: 70,
  8496. height: 15
  8497. };
  8498. case "small_none":
  8499. return {
  8500. width: 24,
  8501. height: 15
  8502. };
  8503. case "small_inline":
  8504. return {
  8505. width: 250,
  8506. height: 15
  8507. };
  8508. case "medium_bubble":
  8509. return {
  8510. width: 90,
  8511. height: 20
  8512. };
  8513. case "medium_none":
  8514. return {
  8515. width: 32,
  8516. height: 20
  8517. };
  8518. case "medium_inline":
  8519. return {
  8520. width: 250,
  8521. height: 20
  8522. };
  8523. case "standard_bubble":
  8524. return {
  8525. width: 106,
  8526. height: 24
  8527. };
  8528. case "standard_none":
  8529. return {
  8530. width: 38,
  8531. height: 24
  8532. };
  8533. case "standard_inline":
  8534. return {
  8535. width: 250,
  8536. height: 24
  8537. };
  8538. case "tall_bubble":
  8539. return {
  8540. width: 50,
  8541. height: 60
  8542. };
  8543. case "tall_none":
  8544. return {
  8545. width: 50,
  8546. height: 20
  8547. };
  8548. case "tall_inline":
  8549. return {
  8550. width: 250,
  8551. height: 20
  8552. };
  8553. default:
  8554. return {
  8555. width: 50,
  8556. height: 60
  8557. }
  8558. }
  8559. }
  8560. return {
  8561. displayName: "WGooglePlusOne",
  8562. mixins: [e.skinBasedComp],
  8563. componentWillMount: function() {
  8564. var a = this.loader = this.props.siteAPI.getSiteAspect("externalScriptLoader");
  8565. a.loadScript("GOOGLE", this.renderTag, {
  8566. cookie: this.props.siteData.requestModel.cookie,
  8567. currentUrl: this.props.siteData.currentUrl
  8568. })
  8569. },
  8570. componentDidMount: function() {
  8571. if (window.gapi) {
  8572. this.renderTag()
  8573. }
  8574. },
  8575. componentDidUpdate: function(b) {
  8576. var c = ["annotation", "size"];
  8577. if (!a.isEqual(a.pick(this.props.compProp, c), a.pick(b.compProp, c))) {
  8578. this.renderTag()
  8579. }
  8580. },
  8581. renderTag: function() {
  8582. var b = this.refs.googlePlus || this.refs[""];
  8583. var c = f(this.props);
  8584. if (a.get(window, "gapi.plusone")) {
  8585. window.gapi.plusone.render(d.findDOMNode(b), {
  8586. size: this.props.compProp.size,
  8587. annotation: this.props.compProp.annotation,
  8588. width: c.width
  8589. })
  8590. }
  8591. },
  8592. componentWillUnmount: function() {
  8593. this.loader.unsubscribe("GOOGLE", this.renderTag)
  8594. },
  8595. getSkinProperties: function() {
  8596. return {
  8597. googlePlus: {
  8598. children: b.DOM.div({
  8599. className: "g-plusone"
  8600. }),
  8601. ref: "googlePlus"
  8602. },
  8603. "": {
  8604. style: f(this.props)
  8605. }
  8606. }
  8607. }
  8608. }
  8609. });
  8610. define("components/bi/errors.json", [], function() {
  8611. return {
  8612. FORM_SUBMIT_FAILURE: {
  8613. errorCode: 101027,
  8614. severity: "error",
  8615. params: {
  8616. p1: "componentId",
  8617. p2: "componentType",
  8618. p3: "errorDesc",
  8619. p4: "response"
  8620. }
  8621. },
  8622. FORM_SUBMIT_FINAL_FALLBACK: {
  8623. errorCode: 101028,
  8624. severity: "fatal",
  8625. params: {
  8626. p1: "componentId",
  8627. p2: "componentType",
  8628. p3: "errorDesc",
  8629. p4: "response"
  8630. }
  8631. },
  8632. FORM_SUBMIT_INVALID_EMAIL: {
  8633. errorCode: 101029,
  8634. severity: "error",
  8635. params: {
  8636. p1: "email"
  8637. }
  8638. },
  8639. MEDIA_RICH_TEXT_WRONG_COMP_DATA: {
  8640. errorCode: 32e3,
  8641. severity: "fatal",
  8642. params: {
  8643. p1: "wixCompJson",
  8644. p2: "errorDesc",
  8645. p3: "errorStack"
  8646. }
  8647. },
  8648. MEDIA_RICH_TEXT_UNSUPPORTED_COMPONENT: {
  8649. errorCode: 32001,
  8650. severity: "fatal",
  8651. params: {
  8652. p1: "wixCompJson"
  8653. }
  8654. },
  8655. MEDIA_RICH_MISSING_COMPONENT_PLACEHOLDER: {
  8656. errorCode: 32002,
  8657. severity: "fatal",
  8658. params: {
  8659. p1: "dataQuery"
  8660. }
  8661. },
  8662. IMAGE_FILTER_NOT_VALID: {
  8663. errorName: "image_filter_not_valid",
  8664. errorCode: 556,
  8665. severity: "error",
  8666. params: {
  8667. p1: "filterName"
  8668. }
  8669. }
  8670. }
  8671. });
  8672. define("components/bi/errors", ["components/bi/errors.json", "lodash", "utils"], function(a, b, c) {
  8673. "use strict";
  8674. b.forEach(a, function(a, b) {
  8675. a.errorName = b
  8676. });
  8677. c.logger.register("components", "error", a);
  8678. return a
  8679. });
  8680. define("components/components/mediaRichText/galleryHelpers/galleryHelpers", ["lodash", "utils"], function(a, b) {
  8681. "use strict";
  8682. var c = "wysiwyg.viewer.components.MatrixGallery",
  8683. d = "wysiwyg.viewer.skins.gallerymatrix.BlogMatrixGallery",
  8684. e = "wysiwyg.viewer.components.SlideShowGallery",
  8685. f = "skins.viewer.gallery.BlogSlideShow",
  8686. g = [c, e],
  8687. h = .75;
  8688.  
  8689. function i(b) {
  8690. return a.includes(g, b)
  8691. }
  8692.  
  8693. function j(a) {
  8694. return a === c
  8695. }
  8696.  
  8697. function k(a) {
  8698. return a === e
  8699. }
  8700.  
  8701. function l(a, b) {
  8702. var c = 0;
  8703. if (j(b.componentType)) {
  8704. var d = 26,
  8705. e = b.cols,
  8706. f = b.rows,
  8707. g = b.margin * 2,
  8708. i = Math.round((a - (e - 1) * g) / e),
  8709. l = h * i;
  8710. c = Math.round(l * f) + (f - 1) * g + d
  8711. } else if (k(b.componentType)) {
  8712. c = Math.round(h * a)
  8713. }
  8714. return c
  8715. }
  8716.  
  8717. function m(a, b) {
  8718. var c = a.width;
  8719. return {
  8720. width: c,
  8721. height: l(c, b),
  8722. position: "relative"
  8723. }
  8724. }
  8725.  
  8726. function n(a) {
  8727. var c = {};
  8728. if (j(a.componentType)) {
  8729. c = {
  8730. skin: d,
  8731. compProp: {
  8732. type: "MatrixGalleryProperties",
  8733. metaData: {
  8734. schemaVersion: "1.0"
  8735. },
  8736. expandEnabled: true,
  8737. imageMode: a.fixedSize ? "clipImage" : "flexibleWidthFixed",
  8738. numCols: a.cols,
  8739. maxRows: a.rows,
  8740. incRows: 2,
  8741. margin: a.margin * 2,
  8742. alignText: "left"
  8743. }
  8744. }
  8745. } else if (k(a.componentType)) {
  8746. c = {
  8747. skin: f,
  8748. compProp: {
  8749. autoplay: a.autoplay,
  8750. autoplayInterval: a.autoplayInterval,
  8751. bidirectional: false,
  8752. expandEnabled: true,
  8753. imageMode: "flexibleWidthFixed",
  8754. metaData: {
  8755. schemaVersion: "1.0"
  8756. },
  8757. reverse: false,
  8758. showAutoplay: true,
  8759. showCounter: true,
  8760. showExpand: false,
  8761. showNavigation: true,
  8762. showSocial: false,
  8763. transDuration: 1,
  8764. transition: "swipeHorizontal",
  8765. type: "SlideShowGalleryProperties"
  8766. }
  8767. }
  8768. } else {
  8769. b.log.error("Unknown gallery type: " + a.componentType)
  8770. }
  8771. return c
  8772. }
  8773.  
  8774. function o(b, c, e, g) {
  8775. var h = b.componentType;
  8776. var i = a.assign({
  8777. dataQuery: b.dataQuery,
  8778. propertyQuery: b.dataQuery,
  8779. componentType: b.componentType,
  8780. type: "Component",
  8781. style: m(e, b),
  8782. compData: {
  8783. type: "ImageList",
  8784. items: a.map(b.imageList, function(b) {
  8785. var d = a.get(c, b.dataQuery);
  8786. return a.assign({}, b, d, {
  8787. type: "Image",
  8788. id: b.id + b.uri,
  8789. isRef: false,
  8790. metaData: {
  8791. isHidden: false,
  8792. isPreset: true,
  8793. schemaVersion: "1.0"
  8794. }
  8795. })
  8796. }),
  8797. metaData: {
  8798. isPreset: true,
  8799. schemaVersion: "1.0",
  8800. isHidden: false
  8801. }
  8802. }
  8803. }, n(b));
  8804. if (k(h)) {
  8805. i.styleId = g[f]
  8806. }
  8807. if (j(h)) {
  8808. i.styleId = g[d]
  8809. }
  8810. return i
  8811. }
  8812. return {
  8813. buildGalleryJsonFromCkData: o,
  8814. isGalleryComponent: i
  8815. }
  8816. });
  8817. define("components/components/mediaRichText/mediaRichText", ["lodash", "utils", "reactDOM", "reactDOMServer", "santaProps", "textCommon", "components/bi/errors", "components/components/mediaRichText/galleryHelpers/galleryHelpers"], function(a, b, c, d, e, f, g, h) {
  8818. "use strict";
  8819. var i = b.htmlParser;
  8820. var j = f.textComponentsUtils;
  8821. var k = {
  8822. wline: "div"
  8823. };
  8824.  
  8825. function l(b, c) {
  8826. return !a.has(k, b) && a.findWhere(c, {
  8827. name: "wix-comp"
  8828. })
  8829. }
  8830.  
  8831. function m(a) {
  8832. return k[a] || a
  8833. }
  8834.  
  8835. function n() {
  8836. var a = this.props.siteData.measureMap;
  8837. if (a) {
  8838. this._lastMeasuredWidth = a.width[this.props.id]
  8839. }
  8840. return this._lastMeasuredWidth
  8841. }
  8842.  
  8843. function o(a, b) {
  8844. var c = JSON.parse(a.replace(/&quot;/g, '"'));
  8845. c.url = b;
  8846. return c
  8847. }
  8848.  
  8849. function p(a, b) {
  8850. try {
  8851. return o(a, b)
  8852. } catch (b) {
  8853. this.props.siteAPI.reportBI(g.MEDIA_RICH_TEXT_WRONG_COMP_DATA, {
  8854. wixCompJson: a,
  8855. errorDesc: b.message,
  8856. errorStack: b.stack
  8857. });
  8858. return undefined
  8859. }
  8860. }
  8861.  
  8862. function q(a) {
  8863. return "innerContainer_" + a.replace("#", "")
  8864. }
  8865.  
  8866. function r(a) {
  8867. return "innerComp_" + a.replace("#", "")
  8868. }
  8869.  
  8870. function s(a, b) {
  8871. var c = a.style;
  8872. c.marginTop = "10px";
  8873. c.marginBottom = "10px";
  8874. c.marginLeft = b.marginLeft;
  8875. c.marginRight = b.marginRight;
  8876. c.position = "static"
  8877. }
  8878.  
  8879. function t(a, b) {
  8880. var c = b.style;
  8881. if (a.floatValue) {
  8882. c.float = a.floatValue;
  8883. c.display = "";
  8884. c.clear = ""
  8885. } else {
  8886. c.display = a.display;
  8887. c.clear = "both";
  8888. c.float = ""
  8889. }
  8890. }
  8891.  
  8892. function u(b, c) {
  8893. if (a.has(b, "post-cover-photo")) {
  8894. c.addItemProp = true
  8895. }
  8896. }
  8897.  
  8898. function v(a, b) {
  8899. a.compProp = {
  8900. showControls: "temp_show",
  8901. enablejsapi: 1
  8902. };
  8903. u(b, a);
  8904. return a
  8905. }
  8906.  
  8907. function w(b, c, d) {
  8908. c.compProp = {
  8909. displayMode: "fitWidthStrict"
  8910. };
  8911. var e = a.get(c, "structure.linkDataQuery");
  8912. if (e) {
  8913. var f = e.slice(1);
  8914. c.compData.link = a.find(b, {
  8915. id: f
  8916. })
  8917. }
  8918. u(d, c);
  8919. return c
  8920. }
  8921.  
  8922. function x(b) {
  8923. b.compData.items = a.map(b.compData.items, function(c) {
  8924. return a.assign({
  8925. galleryData: b.compData
  8926. }, c)
  8927. })
  8928. }
  8929. return {
  8930. displayName: "MediaRichText",
  8931. mixins: [f.textCompMixin],
  8932. allowIframes: true,
  8933. convertCompDataTextToHTML: function(c) {
  8934. this.innerComponents = {};
  8935. this.componentDataQueryList = a.clone(c.compData.componentDataList || []);
  8936. this._compData = c.compData;
  8937. this._componentHtml = j.convertDataQueryLinksIntoHtmlAnchors(this._componentHtml, c.compData.linkList, a.partialRight(b.linkRenderer.renderLink, c.siteData, c.rootNavigationInfo));
  8938. this._componentHtml = this._convertComponentsPlaceHoldersToRenderedComponents(this._componentHtml);
  8939. this._componentHtml = j.mobileTextTransformIfNeeded(this._componentHtml, {
  8940. brightness: a.get(c, "compProp.brightness"),
  8941. isMobileView: c.siteData.isMobileView(),
  8942. scale: a.get(c, "structure.layout.scale"),
  8943. fontGetter: c.siteData.getFont.bind(c.siteData),
  8944. colorGetter: c.siteData.getColor.bind(c.siteData)
  8945. })
  8946. },
  8947. _addToCompDataListIfMissing: function(b) {
  8948. if (!a.includes(this.componentDataQueryList, b)) {
  8949. this.componentDataQueryList.push(b)
  8950. }
  8951. },
  8952. _convertComponentsPlaceHoldersToRenderedComponents: function(b) {
  8953. var c = [];
  8954. i(b, {
  8955. start: function(b, d, e, f) {
  8956. if (l(b, d)) {
  8957. var g = a.reduce(d, function(a, b) {
  8958. a[b.name] = b.value;
  8959. return a
  8960. }, {});
  8961. var h = p.call(this, g["wix-comp"], g.src);
  8962. if (h) {
  8963. this._handleInnerComps(h, c, f)
  8964. }
  8965. } else {
  8966. f = f.replace("<" + b, "<" + m(b));
  8967. c.push(f)
  8968. }
  8969. }.bind(this),
  8970. chars: function(a) {
  8971. c.push(a)
  8972. },
  8973. end: function(a) {
  8974. c.push("</" + m(a) + ">")
  8975. }
  8976. });
  8977. return c.join("")
  8978. },
  8979. _validateAndFixGalleryCompData: function(b, c) {
  8980. var d = a.clone(b);
  8981. var e = h.buildGalleryJsonFromCkData(c, this._compData.innerCompsData, b.style, this.props.loadedStyles);
  8982. e.id = r(e.dataQuery);
  8983. a.assign(d, e);
  8984. x(d);
  8985. return d
  8986. },
  8987. _createInnerComponentProperties: function(a) {
  8988. var b = this._createInnerComponentBasicProperties(a, a.defaultWidth);
  8989. if (a.componentType === "wysiwyg.viewer.components.WPhoto") {
  8990. return w(this._compData.linkList, b, a)
  8991. } else if (a.componentType === "wysiwyg.viewer.components.Video") {
  8992. return v(b, a)
  8993. } else if (h.isGalleryComponent(a.componentType)) {
  8994. return this._validateAndFixGalleryCompData(b, a)
  8995. }
  8996. this.props.siteAPI.reportBI(g.MEDIA_RICH_TEXT_UNSUPPORTED_COMPONENT, {
  8997. wixCompJson: a
  8998. });
  8999. return b
  9000. },
  9001. _getTextCompWidth: function() {
  9002. return n.call(this) || this.props.style.width || 20
  9003. },
  9004. _createInnerComponentBasicProperties: function(b, c) {
  9005. var d = this._getTextCompWidth();
  9006. var f = e.componentPropsBuilder.getCompProps(b, this.props.siteAPI, null, this.props.loadedStyles);
  9007. f.compData = f.compData || a.get(this._compData.innerCompsData, b.dataQuery);
  9008. f.usePreloader = false;
  9009. delete f.ref;
  9010. s(f, b);
  9011. t(b, f);
  9012. this._calcInnerCompWidthAndHeight(c, b, d, f);
  9013. return f
  9014. },
  9015. _calcInnerCompWidthAndHeight: function(b, c, d, e) {
  9016. var f = d,
  9017. g = e.compData && e.compData.width,
  9018. h = c.width;
  9019. if (a.isNumber(h)) {
  9020. f = this._getWidthMultiplier(c) * d
  9021. } else if (a.isNumber(g)) {
  9022. f = Math.min(g, d)
  9023. }
  9024. e.style.width = f;
  9025. if (c.dimsRatio) {
  9026. e.style.height = e.style.width * c.dimsRatio
  9027. } else if (c.componentType === "wysiwyg.viewer.components.Video") {
  9028. e.style.height = e.style.width * .5625
  9029. }
  9030. },
  9031. _getWidthMultiplier: function(a) {
  9032. return this.props.siteData.isMobileView() ? .99 : a.width
  9033. },
  9034. _replaceWixCompPlaceholdersWithLiveReactElements: function() {
  9035. var b = c.findDOMNode(this);
  9036. a.forEach(this.componentDataQueryList, function(a) {
  9037. var d = r(a);
  9038. if (this.innerComponents[d]) {
  9039. var e = q(a),
  9040. f = this.innerComponents[d].class,
  9041. h = this.innerComponents[d].props;
  9042. c.render(f(h), b.querySelector("#" + e))
  9043. } else {
  9044. this.props.siteAPI.reportBI(g.MEDIA_RICH_MISSING_COMPONENT_PLACEHOLDER, {
  9045. dataQuery: a
  9046. })
  9047. }
  9048. }, this)
  9049. },
  9050. componentDidUpdate: function() {
  9051. this._replaceWixCompPlaceholdersWithLiveReactElements()
  9052. },
  9053. componentDidMount: function() {
  9054. this._replaceWixCompPlaceholdersWithLiveReactElements()
  9055. },
  9056. _handleInnerComps: function(a, b, c) {
  9057. if (a.componentType === "htmlComp") {
  9058. this._handleHtmlComp(a, b, c)
  9059. } else {
  9060. this._handleInnerMediaComp(a, b, c)
  9061. }
  9062. },
  9063. _handleInnerMediaComp: function(a, c) {
  9064. var e = r(a.dataQuery);
  9065. var f = q(a.dataQuery);
  9066. var g = this._createInnerComponentProperties(a);
  9067. var h = b.compFactory.getCompClass(a.componentType);
  9068. this.innerComponents[e] = {
  9069. props: g,
  9070. class: h
  9071. };
  9072. this._addToCompDataListIfMissing(a.dataQuery);
  9073. this.toggleRenderToString(true);
  9074. c.push("<div id='" + f + "'>" + d.renderToString(h(g)) + "</div>");
  9075. this.toggleRenderToString(false)
  9076. },
  9077. _handleHtmlComp: function(a, b, c) {
  9078. var d = this.props.siteData.serviceTopology.staticHTMLComponentUrl;
  9079. var e = "//0.htmlcomponentservice.com/";
  9080. var f;
  9081.  
  9082. function g(a) {
  9083. return a.replace(/^(https?:)?\/\//, "")
  9084. }
  9085. if (a.type === "website") {
  9086. f = "//" + g(a.websiteUrl)
  9087. } else {
  9088. var h = a.urlStatus === "temp" ? e : d;
  9089. f = h + a.relativeUrl
  9090. }
  9091. var i = "";
  9092. if (a.align === "center") {
  9093. i = "display: block; clear: both; margin: 0 auto;"
  9094. } else {
  9095. i = "float:" + a.align + ";"
  9096. }
  9097. c = c.replace(/src=(".*?")/, 'src="' + f + '"' + ' style="' + i + '" sandbox="allow-scripts allow-same-origin allow-popups" ');
  9098. c = c.replace(/wix-comp=(".*?")/, "");
  9099. if (this.props.siteData.isMobileView() && a.dimsRatio) {
  9100. c = c.replace(/width=(".*?")/, 'width="99%"');
  9101. if (a.dimsRatio > 1) {
  9102. var j = this._getTextCompWidth() ? parseInt(this._getTextCompWidth(), 10) : 1;
  9103. var k = .99 * j * a.dimsRatio;
  9104. c = c.replace(/height=(".*?")/, 'height="' + k + 'px"')
  9105. }
  9106. } else {
  9107. c = c.replace(/width=(".*?")/, 'width="' + a.width + '"')
  9108. }
  9109. b.push(c)
  9110. }
  9111. }
  9112. });
  9113. define("components/components/youTubeSubscribeButton/youTubeSubscribeButton", ["lodash", "react", "core"], function(a, b, c) {
  9114. "use strict";
  9115. var d = c.compMixins;
  9116. var e = {
  9117. defaultLayoutWidth: 145,
  9118. defaultLayoutHeight: 33,
  9119. fullLayoutWidth: 212,
  9120. fullLayoutHeight: 55,
  9121. fullLayoutHeightIE: 67,
  9122. toolTipExtraSpace: 60,
  9123. toolTipWidthExtraSpaceDefault: 150,
  9124. toolTipWidthExtraSpaceFull: 150
  9125. };
  9126.  
  9127. function f(a, b, c) {
  9128. var d = g(a, b, c);
  9129. return {
  9130. height: d.height + e.toolTipExtraSpace,
  9131. width: d.width + (c === "default" ? e.toolTipWidthExtraSpaceDefault : e.toolTipWidthExtraSpaceFull)
  9132. }
  9133. }
  9134.  
  9135. function g(a, b, c) {
  9136. if (c === "default") {
  9137. if (a < e.defaultLayoutHeight) {
  9138. a = e.defaultLayoutHeight
  9139. }
  9140. if (b < e.defaultLayoutWidth) {
  9141. b = e.defaultLayoutWidth
  9142. }
  9143. } else {
  9144. if (a < e.fullLayoutHeight) {
  9145. a = e.fullLayoutHeight
  9146. }
  9147. if (b < e.fullLayoutWidth) {
  9148. b = e.fullLayoutWidth
  9149. }
  9150. }
  9151. return {
  9152. width: b,
  9153. height: a
  9154. }
  9155. }
  9156. return {
  9157. displayName: "YouTubeSubscribeButton",
  9158. mixins: [d.skinBasedComp],
  9159. getInitialState: function() {
  9160. var a;
  9161. if (this.props.siteData.browser.ie) {
  9162. e.fullLayoutHeight = e.fullLayoutHeightIE
  9163. }
  9164. if (this.props.compProp.layout === "default") {
  9165. a = this.props.siteData.browser.ie ? "defaultIE" : "default"
  9166. } else {
  9167. a = this.props.siteData.browser.ie ? "fullIE" : "full"
  9168. }
  9169. return {
  9170. $layout: a,
  9171. $hoverMode: "nonHover",
  9172. iframeWrapperSizes: g(this.props.style.height, this.props.style.width, this.props.compProp.layout)
  9173. }
  9174. },
  9175. getIFrameSrc: function() {
  9176. var a = this.props.siteData.santaBase + "/static/external/youtubeSubscribeButton.html?";
  9177. var b = [];
  9178. b.push("channel=" + this.props.compData.youtubeChannelId);
  9179. b.push("layout=" + this.props.compProp.layout);
  9180. b.push("theme=" + this.props.compProp.theme);
  9181. return a + b.join("&")
  9182. },
  9183. onMouseOut: function() {
  9184. this.setState({
  9185. iframeWrapperSizes: g(this.props.style.height, this.props.style.width, this.props.compProp.layout),
  9186. $hoverMode: "nonHover"
  9187. })
  9188. },
  9189. onMouseEnter: function() {
  9190. this.setState({
  9191. iframeWrapperSizes: f(this.props.style.height, this.props.style.width, this.props.compProp.layout),
  9192. $hoverMode: "hoverMode"
  9193. })
  9194. },
  9195. componentWillReceiveProps: function(a) {
  9196. this.setState({
  9197. iframeWrapperSizes: f(a.style.height, a.style.width, a.compProp.layout)
  9198. })
  9199. },
  9200. getSkinProperties: function() {
  9201. var a = g(this.props.style.height, this.props.style.width, this.props.compProp.layout);
  9202. var c = {
  9203. src: this.getIFrameSrc(),
  9204. allowFullScreen: true,
  9205. frameBorder: "0",
  9206. width: "100%",
  9207. height: "100%",
  9208. onMouseOut: this.onMouseOut,
  9209. onMouseEnter: this.onMouseEnter
  9210. };
  9211. return {
  9212. "": {
  9213. style: {
  9214. height: a.height,
  9215. width: a.width
  9216. }
  9217. },
  9218. hitWidth: {
  9219. style: {
  9220. left: a.width
  9221. }
  9222. },
  9223. youtubeIframe: {
  9224. addChildren: [b.DOM.iframe(c)],
  9225. style: {
  9226. width: this.state.iframeWrapperSizes.width,
  9227. height: this.state.iframeWrapperSizes.height
  9228. }
  9229. }
  9230. }
  9231. }
  9232. }
  9233. });
  9234. define("components/components/wixads/wixAdsDesktop", ["lodash", "utils", "core"], function(a, b, c) {
  9235. "use strict";
  9236. var d = b.htmlParser;
  9237.  
  9238. function e(b) {
  9239. var c = b;
  9240. var d = ["smallMusa", "smallLogo", "face", "cap", "spacer", "emphasis", "adFooterBox", "siteBanner", "bigMusa", "txt", "shd", "wrapper", "logoDot"];
  9241. a.forEach(d, function(a) {
  9242. c = c.split(a).join("wixAds_" + a)
  9243. });
  9244. return c || ""
  9245. }
  9246.  
  9247. function f(b, c, d, e) {
  9248. var f = a.map(d, function(a) {
  9249. return a.name + "='" + a.escaped + "'"
  9250. }).join(" ");
  9251. b.push("<" + c + " " + f + (e ? "/" : "") + ">")
  9252. }
  9253.  
  9254. function g(a, b) {
  9255. a.push("</" + b + ">")
  9256. }
  9257.  
  9258. function h(a, b) {
  9259. a.push(b)
  9260. }
  9261.  
  9262. function i(a) {
  9263. var b = [];
  9264. d(a, {
  9265. start: f.bind(null, b),
  9266. end: g.bind(null, b),
  9267. chars: h.bind(null, b)
  9268. });
  9269. return b.join("")
  9270. }
  9271.  
  9272. function j() {
  9273. return this.props.siteData.isFacebookSite() && this.props.siteData.rendererModel.premiumFeatures.length > 0
  9274. }
  9275. return {
  9276. displayName: "WixAdsDesktop",
  9277. mixins: [c.compMixins.skinBasedComp],
  9278. getInitialState: function() {
  9279. this.onAdClick = this.onPreviewAdClick || this.onViewerAdClick;
  9280. return {
  9281. $viewerState: "desktop",
  9282. $appType: this.props.siteData.isFacebookSite() ? "facebook" : ""
  9283. }
  9284. },
  9285. getSkinProperties: function() {
  9286. return {
  9287. desktopWADTop: {
  9288. onClick: this.onAdClick,
  9289. style: {
  9290. visibility: this.props.siteAPI.isZoomOpened() || j.call(this) ? "hidden" : "visible"
  9291. }
  9292. },
  9293. desktopWADTopLabel: {
  9294. dangerouslySetInnerHTML: {
  9295. __html: e(i(this.props.adData.topLabel))
  9296. }
  9297. },
  9298. desktopWADTopContent: {
  9299. dangerouslySetInnerHTML: {
  9300. __html: e(i(this.props.adData.topContent))
  9301. }
  9302. },
  9303. desktopWADBottom: {
  9304. onClick: this.onAdClick,
  9305. style: {
  9306. visibility: this.props.siteAPI.isZoomOpened() || j.call(this) ? "hidden" : "visible",
  9307. display: "block !important"
  9308. }
  9309. },
  9310. desktopWADBottomContent: {
  9311. className: this.classSet({
  9312. nativeAndroid: this.props.siteData.mobile.isAndroidOldBrowser()
  9313. }),
  9314. dangerouslySetInnerHTML: {
  9315. __html: e(i(this.props.adData.footerLabel))
  9316. }
  9317. }
  9318. }
  9319. },
  9320. onViewerAdClick: function() {
  9321. this.props.siteAPI.openPopup(this.props.adData.adUrl, "_blank")
  9322. }
  9323. }
  9324. });
  9325. define("components/components/wixads/wixAdsMobile", ["lodash", "utils", "core"], function(a, b, c) {
  9326. "use strict";
  9327. return {
  9328. displayName: "WixAdsMobile",
  9329. mixins: [c.compMixins.skinBasedComp],
  9330. getInitialState: function() {
  9331. this._onClickHandler = this.onClickOverridenHandler || this.onAdClick;
  9332. return {
  9333. $viewerState: "mobile"
  9334. }
  9335. },
  9336. shouldShowMobileWixAds: function() {
  9337. var c = this.props.siteData;
  9338. var d = a(c.currentUrl.query).keys().find(function(a) {
  9339. return a.toLowerCase() === "showmobileview"
  9340. });
  9341. var e = b.stringUtils.isTrue(c.currentUrl.query[d]);
  9342. var f = this.props.siteData.renderFlags.isWixAdsAllowed;
  9343. var g = this.props.siteAPI.isZoomOpened();
  9344. var h = c.isMobileDevice() ? c.mobile.isPortrait() : true;
  9345. var i = c.isPremiumUser();
  9346. var j = !i && f && h && !g;
  9347. return e || j
  9348. },
  9349. getSkinProperties: function() {
  9350. var a = this.shouldShowMobileWixAds();
  9351. var b = {
  9352. display: a ? "block" : "none"
  9353. };
  9354. return {
  9355. "": {
  9356. style: {
  9357. height: a ? 30 : 0
  9358. }
  9359. },
  9360. mobileAd: {
  9361. onClick: this._onClickHandler,
  9362. style: b
  9363. },
  9364. mobileAdLink: {},
  9365. mobileAdImg: {
  9366. style: {
  9367. height: a ? 30 : 0
  9368. },
  9369. src: this.props.siteData.serviceTopology.staticMediaUrl + "/" + this.props.adData.footerLabel
  9370. }
  9371. }
  9372. },
  9373. onAdClick: function() {
  9374. window.location.href = this.props.adData.adUrl
  9375. }
  9376. }
  9377. });
  9378. define("components/components/mobileActionsMenu/mobileActionsMenuItem", ["react", "utils"], function(a, b) {
  9379. "use strict";
  9380. var c = a.createClass({
  9381. displayName: "MobileActionsMenuItem",
  9382. render: function() {
  9383. var c = {};
  9384. c[this.props.styleId + "_selected"] = this.props.isSelected;
  9385. c[this.props.styleId + "_subItem"] = this.props.level > 1;
  9386. c[this.props.styleId + "_hasChildren"] = this.props.hasChildren;
  9387. var d = "#";
  9388. if (this.props.target === "page") {
  9389. d = this.props.href
  9390. } else if (this.props.target === null) {
  9391. d = ""
  9392. }
  9393. return a.DOM.li({
  9394. onClick: this.onItemClick
  9395. }, a.DOM.a({
  9396. href: d,
  9397. "data-anchor": this.props["data-anchor"],
  9398. className: b.classNames(c)
  9399. }, this.props.level > 1 ? "> " + this.props.label : this.props.label))
  9400. },
  9401. onItemClick: function() {
  9402. if (this.props.target === "window") {
  9403. this.props.siteAPI.openPopup(this.props.href)
  9404. } else if (this.props.target === "page") {
  9405. this.props.closeMenu()
  9406. }
  9407. }
  9408. });
  9409. return c
  9410. });
  9411. define("components/components/mobileActionsMenu/mobileActionsMenu", ["lodash", "react", "core", "utils", "components/bi/events.json", "components/components/mobileActionsMenu/mobileActionsMenuItem"], function(a, b, c, d, e, f) {
  9412. "use strict";
  9413.  
  9414. function g(b, c, d, e, f, g) {
  9415. function i(a, b) {
  9416. return h(b, c, a, e, f, d, g)
  9417. }
  9418. return a(b).filter("isVisibleMobile").reduce(function(b, c) {
  9419. var d = a(c.items).filter("isVisibleMobile").map(i.bind(null, 2)).value();
  9420. return b.concat([i(1, c)]).concat(d)
  9421. }, [])
  9422. }
  9423.  
  9424. function h(c, d, e, g, h, i, j) {
  9425. var k = c.link ? c.link.render.href : null;
  9426. var l = c.label;
  9427. var m = k ? "page" : null;
  9428. return b.createElement(f, {
  9429. label: l,
  9430. href: k,
  9431. target: m,
  9432. "data-anchor": a.get(c, "link.render.data-anchor"),
  9433. closeMenu: j,
  9434. level: e,
  9435. hasChildren: c.items && c.items.length > 0,
  9436. isSelected: "#" + d === c.link ? c.link.pageId : false,
  9437. siteAPI: g,
  9438. siteData: h,
  9439. styleId: i
  9440. })
  9441. }
  9442.  
  9443. function i(b, c, d, e) {
  9444. return a.map(b, function(a) {
  9445. return j(a.id, a.url, d, e, c)
  9446. })
  9447. }
  9448.  
  9449. function j(a, c, d, e, g) {
  9450. return b.createElement(f, {
  9451. label: k(a),
  9452. href: c,
  9453. target: "window",
  9454. siteAPI: d,
  9455. siteData: e,
  9456. styleId: g
  9457. })
  9458. }
  9459.  
  9460. function k(a) {
  9461. var b = {
  9462. facebook: "Facebook",
  9463. twitter: "Twitter",
  9464. pinterest: "Pinterest",
  9465. google_plus: "Google+",
  9466. tumblr: "Tumblr",
  9467. blogger: "Blogger",
  9468. linkedin: "LinkedIn",
  9469. youtube: "YouTube",
  9470. vimeo: "Vimeo",
  9471. flickr: "Flickr",
  9472. "": ""
  9473. };
  9474. return b[a] || a
  9475. }
  9476. return {
  9477. displayName: "MobileActionsMenu",
  9478. mixins: [c.compMixins.skinBasedComp],
  9479. getInitialState: function() {
  9480. return {
  9481. $display: "closed",
  9482. $theme: this.props.userColorScheme || "dark",
  9483. $list: "nolist",
  9484. zoom: 1
  9485. }
  9486. },
  9487. componentDidLayout: function() {
  9488. a.delay(function() {
  9489. var a = this.props.siteData.mobile.getInvertedZoomRatio();
  9490. this.setState({
  9491. zoom: a
  9492. })
  9493. }.bind(this), 1e3)
  9494. },
  9495. getSkinProperties: function() {
  9496. var a = {};
  9497. var c = this.props.siteData.rendererModel.siteMetaData;
  9498. var e = c.quickActions;
  9499. var f = d.menuUtils.getSiteMenuWithRender(this.props.siteData, false, this.props.rootNavigationInfo);
  9500. var h = e.socialLinks;
  9501. var j = this.state.$list === "pages" ? g(f, this.props.currentUrlPageId, this.props.styleId, this.props.siteAPI, this.props.siteData, this.onListCloseClick) : [];
  9502. var k = this.state.$list === "social" ? i(h, this.props.styleId, this.props.siteAPI, this.props.siteData) : [];
  9503. var l = [];
  9504. if (e.configuration.navigationMenuEnabled) {
  9505. l.push(b.DOM.li({
  9506. className: this.props.styleId + "_navigation",
  9507. onClick: this.onMenuItemClick.bind(this, "pages")
  9508. }, b.DOM.a()))
  9509. }
  9510. if (e.configuration.phoneEnabled) {
  9511. l.push(b.DOM.li({
  9512. className: this.props.styleId + "_phone",
  9513. onClick: this.onMenuItemClick.bind(this, "phone")
  9514. }, b.DOM.a()))
  9515. }
  9516. if (e.configuration.emailEnabled) {
  9517. l.push(b.DOM.li({
  9518. className: this.props.styleId + "_email",
  9519. onClick: this.onMenuItemClick.bind(this, "email")
  9520. }, b.DOM.a()))
  9521. }
  9522. if (e.configuration.addressEnabled) {
  9523. l.push(b.DOM.li({
  9524. className: this.props.styleId + "_address",
  9525. onClick: this.onMenuItemClick.bind(this, "address")
  9526. }, b.DOM.a()))
  9527. }
  9528. if (e.configuration.socialLinksEnabled) {
  9529. l.push(b.DOM.li({
  9530. className: this.props.styleId + "_socialLinks",
  9531. onClick: this.onMenuItemClick.bind(this, "social")
  9532. }, b.DOM.a()))
  9533. }
  9534. if (l.length === 0) {
  9535. a.display = "none"
  9536. }
  9537. a.zoom = this.state.zoom;
  9538. return {
  9539. "": {
  9540. style: a
  9541. },
  9542. wrapper: {
  9543. onSwipeUp: this.onTouchSwipeUp,
  9544. onSwipeDown: this.onTouchSwipeDown,
  9545. style: {
  9546. className: "mobile-actions-menu-wrapper"
  9547. }
  9548. },
  9549. knobContainer: {},
  9550. knob: {
  9551. onClick: this.onKnobClick
  9552. },
  9553. menuContainer: {
  9554. children: b.DOM.ul({
  9555. children: l
  9556. }),
  9557. style: {}
  9558. },
  9559. lists: {},
  9560. listTitle: {
  9561. children: this.state.$list === "pages" ? "Pages" : "See me on..."
  9562. },
  9563. pagesList: {
  9564. children: b.DOM.ul({
  9565. children: j
  9566. })
  9567. },
  9568. socialList: {
  9569. children: b.DOM.ul({
  9570. children: k
  9571. })
  9572. },
  9573. closeBtn: {
  9574. onClick: this.onListCloseClick,
  9575. onTouchEnd: this.onListCloseClick
  9576. }
  9577. }
  9578. },
  9579. componentWillReceiveProps: function(a) {
  9580. if (this.props.currentUrlPageId !== a.currentUrlPageId) {
  9581. this.setState({
  9582. $list: "nolist"
  9583. })
  9584. }
  9585. },
  9586. onKnobClick: function(a) {
  9587. a.preventDefault();
  9588. a.stopPropagation();
  9589. this.props.siteAPI.reportBI(e.MOBILE_ACTION_BAR_TOGGLE, {
  9590. site_id: this.props.siteData.rendererModel.siteInfo.siteId,
  9591. status: this.state.$display !== "opened"
  9592. });
  9593. this.setState({
  9594. $display: this.state.$display === "opened" ? "closed" : "opened"
  9595. })
  9596. },
  9597. onTouchSwipeUp: function(a) {
  9598. a.preventDefault();
  9599. a.stopPropagation();
  9600. if (this.state.$display !== "opened") {
  9601. this.setState({
  9602. $display: "opened"
  9603. })
  9604. }
  9605. },
  9606. onTouchSwipeDown: function(a) {
  9607. a.preventDefault();
  9608. a.stopPropagation();
  9609. if (this.state.$display !== "closed") {
  9610. this.setState({
  9611. $display: "closed"
  9612. })
  9613. }
  9614. },
  9615. onMenuItemClick: function(a, b) {
  9616. b.preventDefault();
  9617. b.stopPropagation();
  9618. this.props.siteAPI.reportBI(e.MOBILE_ACTION_BAR_USAGE, {
  9619. site_id: this.props.siteData.rendererModel.siteInfo.siteId,
  9620. button_name: a
  9621. });
  9622. var c = this.props.siteData.rendererModel.siteMetaData;
  9623. switch (a) {
  9624. case "pages":
  9625. this.setState({
  9626. $list: "pages"
  9627. });
  9628. break;
  9629. case "address":
  9630. window.location.href = "http://maps.apple.com/?q=" + c.contactInfo.address;
  9631. break;
  9632. case "phone":
  9633. window.location.href = "tel:" + c.contactInfo.phone;
  9634. break;
  9635. case "email":
  9636. window.location.href = "mailto:" + c.contactInfo.email;
  9637. break;
  9638. case "social":
  9639. this.setState({
  9640. $list: "social"
  9641. });
  9642. break;
  9643. default:
  9644. break
  9645. }
  9646. },
  9647. onListCloseClick: function() {
  9648. this.setState({
  9649. $list: "nolist"
  9650. });
  9651. return false
  9652. }
  9653. }
  9654. });
  9655. define("components/components/wTwitterTweet/wTwitterTweet", ["lodash", "core", "utils", "socialCommon"], function(a, b, c, d) {
  9656. "use strict";
  9657. var e = b.compMixins;
  9658. var f = c.urlUtils;
  9659. return {
  9660. displayName: "WTwitterTweet",
  9661. mixins: [e.skinBasedComp, d.twitterComponentMixin, d.socialCompMixin],
  9662. getIFrameSrc: function() {
  9663. var a = {
  9664. href: "https://twitter.com/share",
  9665. lang: this.getLanguage(),
  9666. url: this.getSocialUrl(this.props.rootId === "masterPage"),
  9667. text: this.props.compData.defaultText,
  9668. related: this.props.compData.accountToFollow,
  9669. compId: this.props.id,
  9670. origin: c.urlUtils.origin(),
  9671. widgetType: "TWEET"
  9672. };
  9673. if (this.props.siteData.isMobileView()) {
  9674. a.size = "l"
  9675. }
  9676. return this.props.siteData.santaBase + "/static/external/twitter.html?" + f.toQueryString(a)
  9677. }
  9678. }
  9679. });
  9680. define("components/components/exitMobileModeButton/exitMobileModeButton", ["lodash", "core", "utils", "buttonCommon"], function(a, b, c, d) {
  9681. "use strict";
  9682. var e = c.linkRenderer;
  9683.  
  9684. function f(a, b, c) {
  9685. var d = {
  9686. type: "SwitchMobileViewMode",
  9687. dataMobile: false
  9688. };
  9689. var f = e.renderLink(d, a, c);
  9690. f.style = {
  9691. textAlign: b.align
  9692. };
  9693. return f
  9694. }
  9695. return {
  9696. displayName: "ExitMobileModeButton",
  9697. mixins: [b.compMixins.skinBasedComp, d.buttonMixin],
  9698. getSkinProperties: function() {
  9699. var a = this.props.compData;
  9700. var b = this.props.compProp;
  9701. var c = this.props.siteData;
  9702. var d = this.props.rootNavigationInfo;
  9703. var e = {
  9704. link: f.call(this, c, b, d),
  9705. label: {
  9706. children: [a.label],
  9707. style: this.getLabelStyle(this.props)
  9708. }
  9709. };
  9710. this.resetMinHeightIfNeeded(e);
  9711. return e
  9712. }
  9713. }
  9714. });
  9715. define("components/components/table/table", ["lodash", "core", "react"], function(a, b, c) {
  9716. "use strict";
  9717. var d = b.compMixins;
  9718.  
  9719. function e() {
  9720. var b = a.times(this.props.compProp.numOfRows, function(b) {
  9721. var d = a.times(this.props.compProp.numOfColumns, function(a) {
  9722. var d = this.props.getBodyCell(a, b);
  9723. var e = "cell_" + b + "_" + a;
  9724. var f = {
  9725. style: this.props.compData.columnsStyle[a],
  9726. ref: e,
  9727. key: d && d.props.key || e
  9728. };
  9729. return c.DOM.td(f, d)
  9730. }, this);
  9731. return c.DOM.tr({
  9732. key: "row_" + b,
  9733. ref: "row_" + b
  9734. }, d)
  9735. }, this);
  9736. var d = c.DOM.tr({
  9737. key: "row_spacer",
  9738. ref: "row_spacer",
  9739. className: this.classSet({
  9740. spacer: true
  9741. })
  9742. }, c.DOM.td({
  9743. colSpan: "100%"
  9744. }));
  9745. b.push(d);
  9746. return b
  9747. }
  9748.  
  9749. function f(b) {
  9750. var d = b ? "header" : "footer";
  9751. var e = b ? this.props.getHeaderCell : this.props.getFooterCell;
  9752. return a.times(this.props.compProp.numOfColumns, function(a) {
  9753. var b = e(a);
  9754. var f = d + "_cell_" + a;
  9755. var g = {
  9756. ref: f,
  9757. key: b && b.props.key || f
  9758. };
  9759. return c.DOM.td(g, b)
  9760. })
  9761. }
  9762. return {
  9763. displayName: "Table",
  9764. mixins: [d.skinBasedComp],
  9765. propType: {
  9766. getBodyCell: c.PropTypes.func.isRequired,
  9767. getHeaderCell: c.PropTypes.func.isRequired,
  9768. getFooterCell: c.PropTypes.func.isRequired
  9769. },
  9770. getSkinProperties: function() {
  9771. var a = {
  9772. tableBody: {
  9773. children: e.call(this)
  9774. }
  9775. };
  9776. if (this.props.compProp.minHeight) {
  9777. a[""] = {
  9778. style: {
  9779. minHeight: this.props.compProp.minHeight,
  9780. width: "100%"
  9781. }
  9782. };
  9783. a.table = {
  9784. style: {
  9785. height: this.props.compProp.minHeight
  9786. }
  9787. }
  9788. }
  9789. if (this.props.compProp.header) {
  9790. a.tableHeader = {
  9791. children: c.DOM.tr({
  9792. key: "row_header"
  9793. }, f.call(this, true))
  9794. }
  9795. }
  9796. if (this.props.compProp.footer) {
  9797. a.tableFooter = {
  9798. children: c.DOM.tr({
  9799. key: "row_footer"
  9800. }, f.call(this, false))
  9801. }
  9802. }
  9803. return a
  9804. }
  9805. }
  9806. });
  9807. define("components/components/disqusComments/translations/disqusComments", [], {
  9808. de: {
  9809. disqusComments_notDisqusIdMessage: "Um mit Disqus zu starten, gehen Sie zu den Einstellungen."
  9810. },
  9811. en: {
  9812. disqusComments_notDisqusIdMessage: "To get started with Disqus head to the Settings panel."
  9813. },
  9814. es: {
  9815. disqusComments_notDisqusIdMessage: "Para comenzar con Disqus, dirígete al panel de opciones."
  9816. },
  9817. fr: {
  9818. disqusComments_notDisqusIdMessage: "Pour commencer à utiliser Disqus, dirigez-vous vers le panneau de propriété."
  9819. },
  9820. it: {
  9821. disqusComments_notDisqusIdMessage: "Per iniziare a usare Disqus, dirigiti al riquadro Impostazioni."
  9822. },
  9823. ja: {
  9824. disqusComments_notDisqusIdMessage: "アカウントを接続して Disqus をご利用ください。"
  9825. },
  9826. ko: {
  9827. disqusComments_notDisqusIdMessage: "Disqus를 시작하려면 설정창으로 이동하세요."
  9828. },
  9829. pl: {
  9830. disqusComments_notDisqusIdMessage: "Aby rozpocząć korzystanie z Disqus przejdź do panelu Ustawień."
  9831. },
  9832. ru: {
  9833. disqusComments_notDisqusIdMessage: "Для работы с Disqus зайдите в панель настроек."
  9834. },
  9835. nl: {
  9836. disqusComments_notDisqusIdMessage: "Ga naar de Instellingen om aan de slag te gaan met Disqus."
  9837. },
  9838. tr: {
  9839. disqusComments_notDisqusIdMessage: "Disqus kullanmaya başlamak için Ayarlar paneline gidin."
  9840. },
  9841. sv: {
  9842. disqusComments_notDisqusIdMessage: "För att börja använda Disqus gå till inställningar."
  9843. },
  9844. pt: {
  9845. disqusComments_notDisqusIdMessage: "Para começar com o Disqus, vá no painel de configurações."
  9846. },
  9847. no: {
  9848. disqusComments_notDisqusIdMessage: "For å komme i gang med Disqus gå til innstillingerpanelet."
  9849. },
  9850. da: {
  9851. disqusComments_notDisqusIdMessage: "For at komme i gang med Diqus, gå til panelet indstillinger."
  9852. },
  9853. hi: {
  9854. disqusComments_notDisqusIdMessage: "To get started with Disqus head to the Settings panel."
  9855. },
  9856. zh: {
  9857. disqusComments_notDisqusIdMessage: "To get started with Disqus head to the Settings panel."
  9858. },
  9859. cs: {
  9860. disqusComments_notDisqusIdMessage: "Abyste mohli začít používat Disqus, přejděte na panel Nastavení."
  9861. }
  9862. });
  9863. define("components/components/disqusComments/disqusComments", ["core", "utils", "lodash", "components/components/disqusComments/translations/disqusComments"], function(a, b, c, d) {
  9864. "use strict";
  9865. var e = a.compMixins,
  9866. f = b.urlUtils,
  9867. g = "wixdemo123";
  9868. return {
  9869. displayName: "DisqusComments",
  9870. mixins: [e.skinBasedComp, e.postMessageCompMixin, e.uniquePageIdMixin],
  9871. getDisqusInstanceId: function() {
  9872. return this.getDisqusId && this.getDisqusId() || this.getUniquePageId()
  9873. },
  9874. getIframeSrc: function() {
  9875. var a = this.props.siteData;
  9876. var b = a.getCurrentUrlPageId();
  9877. var c = a.getDataByQuery(b, a.MASTER_PAGE_ID);
  9878. var d = this.getDisqusInstanceId(),
  9879. e = {
  9880. disqusId: this.props.compData.disqusId ? this.props.compData.disqusId : g,
  9881. pageUrl: a.currentUrl.full,
  9882. pageTitle: c.title,
  9883. compId: this.props.id,
  9884. disqusInstanceId: d
  9885. };
  9886. return this.props.siteData.santaBase + "/static/external/disqusComments.html?" + f.toQueryString(e)
  9887. },
  9888. getSkinProperties: function() {
  9889. var a = !!this.props.compData.disqusId;
  9890. return {
  9891. "": {
  9892. style: {
  9893. height: this.state.$disqusCommentsDesiredHeight ? this.state.$disqusCommentsDesiredHeight : ""
  9894. }
  9895. },
  9896. disqusCommentsHolder: {
  9897. src: this.getIframeSrc(),
  9898. style: {
  9899. height: this.state.$disqusCommentsDesiredHeight ? this.state.$disqusCommentsDesiredHeight : ""
  9900. }
  9901. },
  9902. disqusCommentsPreviewOverlay: {
  9903. style: {
  9904. display: "none"
  9905. }
  9906. },
  9907. noDisqusIdMessage: {
  9908. style: {
  9909. display: !a ? "" : "none"
  9910. },
  9911. children: this.getTranslation("disqusComments_notDisqusIdMessage")
  9912. }
  9913. }
  9914. },
  9915. componentWillReceiveProps: function(a) {
  9916. this.setState({
  9917. $disqusId: a.compData.disqusId
  9918. })
  9919. },
  9920. getTranslation: function(a) {
  9921. return this.translatedKeys[a] || a
  9922. },
  9923. getInitialState: function() {
  9924. var a = this.props.siteData;
  9925. var c = b.wixUserApi.getLanguage(a.requestModel.cookie, a.currentUrl).toLowerCase() || "en";
  9926. this.translatedKeys = d[c] || {};
  9927. return {
  9928. $disqusId: this.props.compData.disqusId,
  9929. $disqusCommentsDesiredHeight: 200
  9930. }
  9931. },
  9932. onDisqusCommentsHolderMsg: function(a) {
  9933. this.prevHeight = this.state.$disqusCommentsDesiredHeight;
  9934. this.setState({
  9935. $disqusCommentsDesiredHeight: a.height
  9936. });
  9937. if (this.prevHeight !== a.height) {
  9938. this.registerReLayout()
  9939. }
  9940. },
  9941. componentDidMount: function() {
  9942. this.setPostMessageHandler(this.props.id, this.onDisqusCommentsHolderMsg)
  9943. }
  9944. }
  9945. });
  9946. define("components/components/boxSlideShow/common/boxSlideShowAutoPlay", [], function() {
  9947. "use strict";
  9948. return {
  9949. canAutoPlay: function(a) {
  9950. return this.getSlidesFromChildren(this.props.children).length > 1 && a && this.props.siteData.renderFlags.isPlayingAllowed && !this.props.siteAPI.isZoomOpened();
  9951. },
  9952. toggleAutoPlay: function() {
  9953. this.setState({
  9954. autoPlay: !this.state.autoPlay
  9955. }, this.updateAutoPlayState)
  9956. },
  9957. updateAutoPlayState: function() {
  9958. this.clearTimeoutNamed(this.props.id);
  9959. if (this.state.autoPlay) {
  9960. this.setTimeoutNamed(this.props.id, this.autoplayCallback, this.getAutoplayInterval())
  9961. }
  9962. },
  9963. autoplayCallback: function() {
  9964. if (this.props.siteAPI.isZoomOpened()) {
  9965. return
  9966. }
  9967. this.clickMoveToNextSlide();
  9968. this.updateAutoPlayState()
  9969. },
  9970. getAutoplayInterval: function() {
  9971. var a = this.props.compProp.autoPlayInterval;
  9972. return Math.floor(a * 1e3)
  9973. },
  9974. componentDidMount: function() {
  9975. this.updateAutoPlayState()
  9976. }
  9977. }
  9978. });
  9979. define("components/components/boxSlideShow/common/slideNavigationMixin", ["react", "lodash", "core", "components/components/boxSlideShow/common/boxSlideShowAutoPlay"], function(a, b, c, d) {
  9980. "use strict";
  9981. var e = c.compMixins;
  9982. var f = {
  9983. center: "center",
  9984. left: "flex-start",
  9985. right: "flex-end"
  9986. };
  9987. var g = c.componentUtils.boxSlideShowCommon;
  9988.  
  9989. function h(a, b) {
  9990. var c = a.selectedButtonSizeRatio || 1;
  9991. return Math.floor(b * c)
  9992. }
  9993.  
  9994. function i(a, c) {
  9995. if (!a) {
  9996. return {
  9997. currentIndex: 0,
  9998. autoPlay: c.props.autoPlay || false
  9999. }
  10000. }
  10001. return b.pick(a, ["currentIndex", "autoPlay"])
  10002. }
  10003. return {
  10004. mixins: [e.skinBasedComp, e.timeoutsMixin, d, e.animationsMixin, e.compStateMixin(i)],
  10005. getInitialState: function() {
  10006. this.reverse = false;
  10007. this.isDirectionLeftToRight = this.props.compProp.direction === "LTR";
  10008. return b.assign(i(null, {
  10009. props: this.props.compProp
  10010. }), {
  10011. isInTransition: false,
  10012. autoPlay: this.canAutoPlay(this.props.compProp.autoPlay)
  10013. })
  10014. },
  10015. setCurrentSlideAndRegisterRelayout: function(a, b, c) {
  10016. if (this.state.isInTransition && !b) {
  10017. return
  10018. }
  10019. this.registerReLayout();
  10020. this.setState({
  10021. currentIndex: a,
  10022. isInTransition: c
  10023. });
  10024. this.handleAction("change")
  10025. },
  10026. componentWillReceiveProps: function(a) {
  10027. if (this.props.compProp.direction !== a.compProp.direction) {
  10028. this.isDirectionLeftToRight = a.compProp.direction === "LTR"
  10029. }
  10030. if (!a.children) {
  10031. return
  10032. }
  10033. var c = this.getSlidesFromChildren(this.props.children).length;
  10034. var d = this.getSlidesFromChildren(a.children).length;
  10035. if (d < c) {
  10036. var e = b.pluck(a.children, "ref");
  10037. var f = b.pluck(this.props.children, "ref");
  10038. var g = f[this.state.currentIndex];
  10039. var h = b.difference(f, e);
  10040. var i = b.indexOf(f, h[0]);
  10041. var j = this.state.currentIndex > 0 ? this.state.currentIndex - 1 : 0;
  10042. if (b.includes(e, g)) {
  10043. j = e.indexOf(g)
  10044. } else if (j >= d) {
  10045. j = d - 1
  10046. }
  10047. var k = this.state.currentIndex >= d;
  10048. if (this.state.currentIndex !== j) {
  10049. var l = this.state.currentIndex === i;
  10050. this.setCurrentSlideAndRegisterRelayout(j, k, l)
  10051. }
  10052. }
  10053. var m = this.canAutoPlay(a.compProp.autoPlay);
  10054. if (m !== this.state.autoPlay) {
  10055. this.setState({
  10056. autoPlay: m
  10057. }, this.updateAutoPlayState);
  10058. this.handleAction(m ? "autoplayOn" : "autoplayOff")
  10059. }
  10060. },
  10061. createDotsNavigationButtons: function() {
  10062. var c = this.getSlidesFromChildren(this.props.children);
  10063. var d = this.getSkinExports();
  10064. var e = [];
  10065. b.forEach(c, function(b, c) {
  10066. var f = this.state.currentIndex === c;
  10067. var g = f ? h(d, this.props.compProp.navigationDotsSize) : this.props.compProp.navigationDotsSize;
  10068. var i = {
  10069. className: this.classSet({
  10070. "navigation-dot": true,
  10071. selected: f
  10072. }),
  10073. style: {
  10074. width: g,
  10075. height: g,
  10076. marginRight: this.props.compProp.navigationDotsGap / 2,
  10077. marginLeft: this.props.compProp.navigationDotsGap / 2
  10078. }
  10079. };
  10080. e.push(a.DOM.div({
  10081. className: this.classSet({
  10082. "navigation-dot-wrapper": true
  10083. }),
  10084. onClick: this.moveToSlide.bind(this, c),
  10085. children: a.DOM.ul(i)
  10086. }))
  10087. }, this);
  10088. return e
  10089. },
  10090. getDotsNavigationWrapperStyle: function() {
  10091. var a = this.getSkinExports();
  10092. var b = h(a, this.props.compProp.navigationDotsSize);
  10093. return {
  10094. bottom: this.props.compProp.navigationDotsMargin - .5 * b,
  10095. justifyContent: this.getDotsAlignment(),
  10096. WebkitJustifyContent: this.getDotsAlignment()
  10097. }
  10098. },
  10099. moveNextSlide: function(a) {
  10100. if (this.state.isInTransition) {
  10101. return
  10102. }
  10103. if (a) {
  10104. var b = this.props.siteAPI.getSiteAspect("SlideShowComponentAspect");
  10105. b.registerOnSlideChangeComplete(a)
  10106. }
  10107. this.reverse = false;
  10108. var c = g.getNextSlideIndex(this.getSlidesFromChildren(this.props.children), this.state.currentIndex);
  10109. this.setCurrentSlideAndRegisterRelayout(c, false, true)
  10110. },
  10111. movePreviousSlide: function(a) {
  10112. if (this.state.isInTransition) {
  10113. return
  10114. }
  10115. if (a) {
  10116. var b = this.props.siteAPI.getSiteAspect("SlideShowComponentAspect");
  10117. b.registerOnSlideChangeComplete(a)
  10118. }
  10119. this.reverse = true;
  10120. var c = g.getPrevSlideIndex(this.getSlidesFromChildren(this.props.children), this.state.currentIndex);
  10121. this.setCurrentSlideAndRegisterRelayout(c, false, true)
  10122. },
  10123. isSlideDirectionReversed: function(a) {
  10124. var b = this.state.currentIndex;
  10125. if (a > b) {
  10126. return b === 0 && a === this.getSlidesFromChildren(this.props.children).length - 1
  10127. }
  10128. return !(a === 0 && b === this.getSlidesFromChildren(this.props.children).length - 1)
  10129. },
  10130. moveToSlide: function(a, c) {
  10131. if (a === this.state.currentIndex || this.state.isInTransition) {
  10132. return
  10133. }
  10134. if (c && b.isFunction(c)) {
  10135. var d = this.props.siteAPI.getSiteAspect("SlideShowComponentAspect");
  10136. d.registerOnSlideChangeComplete(c)
  10137. }
  10138. var e = this.getSlidesFromChildren(this.props.children);
  10139. if (b.isNumber(a) && a >= 0 && a < e.length) {
  10140. this.reverse = this.isSlideDirectionReversed(a);
  10141. this.setCurrentSlideAndRegisterRelayout(a, false, true)
  10142. }
  10143. },
  10144. getSlidesFromChildren: function(a) {
  10145. return g.getSlidesFromChildrenByProps(a)
  10146. },
  10147. getShownOnAllSlidesFromChildren: function(a) {
  10148. return g.getShownOnAllSlidesFromChildrenByProps(a)
  10149. },
  10150. onMouseEnter: function() {
  10151. if (this.state.autoPlay && this.props.compProp.pauseAutoPlayOnMouseOver) {
  10152. this.setState({
  10153. autoPlay: false
  10154. }, this.updateAutoPlayState)
  10155. }
  10156. },
  10157. onMouseLeave: function() {
  10158. if (this.props.compProp.pauseAutoPlayOnMouseOver) {
  10159. this.setState({
  10160. autoPlay: this.canAutoPlay(this.props.compProp.autoPlay)
  10161. }, this.updateAutoPlayState)
  10162. }
  10163. },
  10164. getTransitionDuration: function() {
  10165. return this.props.compProp.transition === "NoTransition" ? 0 : this.props.compProp.transDuration
  10166. },
  10167. transitionCallback: function() {
  10168. this.setState({
  10169. isInTransition: false
  10170. });
  10171. var a = this.props.siteAPI.getSiteAspect("SlideShowComponentAspect");
  10172. a.reportSlideChange(this.props.id)
  10173. },
  10174. getArrowButtonStyle: function(a) {
  10175. var c = this.props.compProp;
  10176. var d = this.getSkinExports();
  10177. var e = d.arrowWidthToHeightRatio || 1;
  10178. var f = c.navigationButtonSize / e;
  10179. var g = c.navigationButtonMargin - .5 * f;
  10180. var h = a ? {
  10181. left: g
  10182. } : {
  10183. right: g
  10184. };
  10185. return b.assign(h, {
  10186. width: f
  10187. })
  10188. },
  10189. getNavigationArrowsStyle: function() {
  10190. var a = this.getSkinExports();
  10191. var b = a.arrowWidthToSizeRatio || 1;
  10192. return {
  10193. top: "calc(50% - " + this.props.compProp.navigationButtonSize * b + "px)"
  10194. }
  10195. },
  10196. getDotsAlignment: function() {
  10197. return f[this.props.compProp.navigationDotsAlignment]
  10198. },
  10199. clickMoveToNextSlide: function() {
  10200. this.moveNextSlide()
  10201. },
  10202. clickMoveToPreviousSlide: function() {
  10203. this.movePreviousSlide()
  10204. }
  10205. }
  10206. });
  10207. define("components/components/boxSlideShow/boxSlideShow/boxSlideShow", ["react", "lodash", "core", "components/components/boxSlideShow/common/slideNavigationMixin"], function(a, b, c, d) {
  10208. "use strict";
  10209. var e = a.createFactory(c.wixTransitionGroup);
  10210. return {
  10211. displayName: "boxSlideShow",
  10212. mixins: [d],
  10213. statics: {
  10214. behaviors: {
  10215. nextSlide: {
  10216. methodName: "moveNextSlide",
  10217. params: []
  10218. },
  10219. prevSlide: {
  10220. methodName: "movePreviousSlide",
  10221. params: []
  10222. },
  10223. moveToSlide: {
  10224. methodName: "moveToSlide",
  10225. params: ["slide"]
  10226. }
  10227. }
  10228. },
  10229. getSkinProperties: function() {
  10230. return {
  10231. "": {
  10232. "data-shouldhideoverflowcontent": this.props.compProp.shouldHideOverflowContent,
  10233. onSwipeLeft: this.clickMoveToNextSlide,
  10234. onSwipeRight: this.clickMoveToPreviousSlide
  10235. },
  10236. inlineContent: {
  10237. parentConst: e,
  10238. siteAPI: this.props.siteAPI,
  10239. siteData: this.props.siteData,
  10240. transition: this.props.compProp.transition,
  10241. transitionDuration: this.getTransitionDuration(),
  10242. transitionCallback: this.transitionCallback,
  10243. reverse: this.isDirectionLeftToRight ? !this.reverse : this.reverse,
  10244. children: [a.cloneElement(this.getSlidesFromChildren(this.props.children)[this.state.currentIndex], {
  10245. onMouseEnter: this.onMouseEnter,
  10246. onMouseLeave: this.onMouseLeave,
  10247. flexibleBoxHeight: this.props.compProp.flexibleBoxHeight,
  10248. shouldHideOverflowContent: this.props.compProp.shouldHideOverflowContent,
  10249. skin: this.getSkinExports().slide.skin,
  10250. styleId: this.props.styleId + "slide",
  10251. parentId: this.props.id,
  10252. minHeight: this.props.structure.layout.height
  10253. })]
  10254. },
  10255. shownOnAllSlides: {
  10256. children: this.getShownOnAllSlidesFromChildren(this.props.children)
  10257. },
  10258. navigationArrows: {
  10259. "data-show-navigation-arrows": this.props.compProp.showNavigationButton,
  10260. style: this.getNavigationArrowsStyle()
  10261. },
  10262. dotsMenuWrapper: {
  10263. "data-show-navigation-dots": this.props.compProp.showNavigationDots,
  10264. children: this.createDotsNavigationButtons(),
  10265. style: this.getDotsNavigationWrapperStyle()
  10266. },
  10267. prevButton: {
  10268. onClick: this.clickMoveToPreviousSlide,
  10269. style: this.getArrowButtonStyle(true)
  10270. },
  10271. nextButton: {
  10272. onClick: this.clickMoveToNextSlide,
  10273. style: this.getArrowButtonStyle(false)
  10274. }
  10275. }
  10276. }
  10277. }
  10278. });
  10279. define("components/components/boxSlideShowSlide/boxSlideShowSlide", ["lodash", "balataCommon", "containerCommon"], function(a, b, c) {
  10280. "use strict";
  10281. var d = c.mixins.containerMixin;
  10282. return {
  10283. displayName: "boxSlideShowSlide",
  10284. mixins: [d],
  10285. getSkinProperties: function() {
  10286. var a = {
  10287. "": {
  10288. "data-shouldhideoverflowcontent": this.props.shouldHideOverflowContent && !this.props.flexibleBoxHeight,
  10289. onMouseEnter: this.props.onMouseEnter,
  10290. onMouseLeave: this.props.onMouseLeave,
  10291. "data-flexibleboxheight": this.props.flexibleBoxHeight,
  10292. "data-parent-id": this.props.parentId,
  10293. "data-min-height": this.props.minHeight
  10294. },
  10295. inlineContent: {
  10296. children: this.props.children
  10297. }
  10298. };
  10299. a.background = b.mubalat.createChildBalata(this);
  10300. return a
  10301. }
  10302. }
  10303. });
  10304. define("components/components/boxSlideShow/stripSlideShow/stripSlideShow", ["react", "lodash", "core", "components/components/boxSlideShow/common/slideNavigationMixin"], function(a, b, c, d) {
  10305. "use strict";
  10306. var e = a.createFactory(c.wixTransitionGroup);
  10307. return {
  10308. displayName: "stripSlideShow",
  10309. mixins: [d],
  10310. statics: {
  10311. behaviors: {
  10312. nextSlide: {
  10313. methodName: "moveNextSlide",
  10314. params: []
  10315. },
  10316. prevSlide: {
  10317. methodName: "movePreviousSlide",
  10318. params: []
  10319. },
  10320. moveToSlide: {
  10321. methodName: "moveToSlide",
  10322. params: ["slide"]
  10323. }
  10324. }
  10325. },
  10326. getTransitionParams: function() {
  10327. return {
  10328. width: this.props.siteData.getScreenWidth()
  10329. }
  10330. },
  10331. getSkinProperties: function() {
  10332. return {
  10333. "": {
  10334. onSwipeLeft: this.clickMoveToNextSlide,
  10335. onSwipeRight: this.clickMoveToPreviousSlide
  10336. },
  10337. inlineContentParent: {
  10338. style: {
  10339. overflow: this.props.compProp.shouldHideOverflowContent ? "hidden" : "visible"
  10340. }
  10341. },
  10342. inlineContent: {
  10343. parentConst: e,
  10344. siteAPI: this.props.siteAPI,
  10345. siteData: this.props.siteData,
  10346. transition: this.props.compProp.transition,
  10347. transitionDuration: this.getTransitionDuration(),
  10348. transitionCallback: this.transitionCallback,
  10349. reverse: this.isDirectionLeftToRight ? !this.reverse : this.reverse,
  10350. getTransitionParams: this.getTransitionParams,
  10351. children: [a.cloneElement(this.getSlidesFromChildren(this.props.children)[this.state.currentIndex], {
  10352. onMouseEnter: this.onMouseEnter,
  10353. onMouseLeave: this.onMouseLeave,
  10354. flexibleBoxHeight: this.props.compProp.flexibleBoxHeight,
  10355. shouldHideOverflowContent: this.props.compProp.shouldHideOverflowContent,
  10356. parentId: this.props.id,
  10357. minHeight: this.props.structure.layout.height
  10358. })]
  10359. },
  10360. shownOnAllSlides: {
  10361. children: this.getShownOnAllSlidesFromChildren(this.props.children)
  10362. },
  10363. navigationArrows: {
  10364. "data-show-navigation-arrows": this.props.compProp.showNavigationButton,
  10365. "data-navigation-button-margin": this.props.compProp.navigationButtonMargin,
  10366. style: this.getNavigationArrowsStyle()
  10367. },
  10368. dotsMenuWrapper: {
  10369. "data-show-navigation-dots": this.props.compProp.showNavigationDots,
  10370. children: this.createDotsNavigationButtons(),
  10371. style: this.getDotsNavigationWrapperStyle()
  10372. },
  10373. prevButton: {
  10374. onClick: this.clickMoveToPreviousSlide,
  10375. style: this.getArrowButtonStyle(true)
  10376. },
  10377. nextButton: {
  10378. onClick: this.clickMoveToNextSlide,
  10379. style: this.getArrowButtonStyle(false)
  10380. }
  10381. }
  10382. }
  10383. }
  10384. });
  10385. define("components/components/boxSlideShowSlide/stripSlideShowSlide", ["lodash", "balataCommon", "containerCommon"], function(a, b, c) {
  10386. "use strict";
  10387. var d = c.mixins.containerMixin;
  10388. return {
  10389. displayName: "stripSlideShowSlide",
  10390. mixins: [d],
  10391. getBackground: function() {
  10392. return b.mubalat.createChildBalata(this)
  10393. },
  10394. getSkinProperties: function() {
  10395. return {
  10396. "": {
  10397. onMouseEnter: this.props.onMouseEnter,
  10398. onMouseLeave: this.props.onMouseLeave,
  10399. "data-flexibleboxheight": this.props.flexibleBoxHeight,
  10400. "data-parent-id": this.props.parentId,
  10401. "data-min-height": this.props.minHeight
  10402. },
  10403. background: this.getBackground(),
  10404. inlineContent: {
  10405. children: this.props.children
  10406. },
  10407. inlineContentParent: {
  10408. style: {
  10409. overflowX: this.props.shouldHideOverflowContent ? "hidden" : "visible",
  10410. overflowY: this.props.shouldHideOverflowContent && !this.props.flexibleBoxHeight ? "hidden" : "visible"
  10411. }
  10412. }
  10413. }
  10414. }
  10415. }
  10416. });
  10417. define("components/components/mobileAppBanner/mobileAppBanner", ["lodash", "react", "core", "utils", "components/bi/events"], function(a, b, c, d, e) {
  10418. "use strict";
  10419. var f = d.logger;
  10420. return {
  10421. displayName: "MobileAppBanner",
  10422. mixins: [c.compMixins.skinBasedComp],
  10423. propTypes: {
  10424. siteData: b.PropTypes.object.isRequired,
  10425. bannerModel: b.PropTypes.object.isRequired,
  10426. appDownloadUrl: b.PropTypes.string.isRequired,
  10427. closeBanner: b.PropTypes.func.isRequired
  10428. },
  10429. componentDidMount: function() {
  10430. var a = this.props.siteData;
  10431. f.reportBI(a, e.MOBILE_APP_BANNER_SHOWN, {
  10432. metaSiteId: a.getMetaSiteId(),
  10433. type: "MobileAppBannerBasicSkin"
  10434. })
  10435. },
  10436. getSkinProperties: function() {
  10437. var a = {
  10438. "": {
  10439. id: this.props.id,
  10440. key: this.props.key,
  10441. ref: this.props.id
  10442. },
  10443. container: {
  10444. "data-device": this.getDevice(this.props.siteData)
  10445. },
  10446. close: {
  10447. onClick: this.closeBannerClicked
  10448. },
  10449. appname: {
  10450. children: [this.props.bannerModel.appName]
  10451. },
  10452. getlink: {
  10453. href: this.props.appDownloadUrl,
  10454. onClick: this.getAppClicked
  10455. },
  10456. iconbody: {
  10457. style: {
  10458. backgroundImage: "url(" + this.props.bannerModel.iconUrl + ")"
  10459. }
  10460. }
  10461. };
  10462. return a
  10463. },
  10464. getAppClicked: function() {
  10465. var a = this.props.siteData;
  10466. f.reportBI(a, e.MOBILE_APP_BANNER_GET_CLICKED, {
  10467. metaSiteId: a.getMetaSiteId(),
  10468. link: this.props.appDownloadUrl
  10469. })
  10470. },
  10471. closeBannerClicked: function() {
  10472. var a = this.props.siteData;
  10473. this.props.closeBanner();
  10474. f.reportBI(a, e.MOBILE_APP_BANNER_CLOSE_CLICKED, {
  10475. metaSiteId: a.getMetaSiteId()
  10476. })
  10477. },
  10478. getDevice: function(a) {
  10479. if (a.mobile.isAppleMobileDevice()) {
  10480. return "apple"
  10481. }
  10482. if (a.mobile.isAndroidMobileDevice()) {
  10483. return "android"
  10484. }
  10485. return "other"
  10486. }
  10487. }
  10488. });
  10489. define("components/components/checkbox/checkbox", ["lodash", "core", "santaProps"], function(a, b, c) {
  10490. "use strict";
  10491. var d = function(b) {
  10492. return {
  10493. valid: a.get(b, "valid", true)
  10494. }
  10495. };
  10496. return {
  10497. displayName: "Checkbox",
  10498. propTypes: {
  10499. compData: c.Types.Component.compData.isRequired,
  10500. compProp: c.Types.Component.compProp.isRequired
  10501. },
  10502. mixins: [b.compMixins.skinBasedComp, b.compMixins.runTimeCompData, b.compMixins.compStateMixin(d), b.compMixins.inputFocusMixin],
  10503. statics: {
  10504. useSantaTypes: true,
  10505. behaviors: a.assign({
  10506. change: {
  10507. methodName: "validate"
  10508. }
  10509. }, b.compMixins.inputFocusMixin.INPUT_FOCUS_BEHAVIORS)
  10510. },
  10511. focus: function() {
  10512. this.refs.input.focus()
  10513. },
  10514. blur: function() {
  10515. this.refs.input.blur()
  10516. },
  10517. validate: function() {
  10518. var a = this.props.compProp.required ? this.refs.input.checked : true;
  10519. this.setState({
  10520. valid: a
  10521. });
  10522. this.handleAction("validate")
  10523. },
  10524. getInitialState: function() {
  10525. return a.assign(d(), {
  10526. checked: false,
  10527. valid: true
  10528. })
  10529. },
  10530. componentWillMount: function() {
  10531. this.setState({
  10532. checked: this.props.compData.checked,
  10533. valid: this.props.compProp.required ? this.props.compData.checked : true
  10534. })
  10535. },
  10536. componentWillReceiveProps: function(a) {
  10537. var b = {
  10538. checked: a.compData.checked
  10539. };
  10540. if (a.renderFlags.componentViewMode === "editor") {
  10541. b.valid = true
  10542. }
  10543. this.setState(b)
  10544. },
  10545. onChange: function() {
  10546. if (this.props.compProp.readOnly || this.props.compProp.isDisabled) {
  10547. return
  10548. }
  10549. var a = {
  10550. checked: !this.state.checked
  10551. };
  10552. this.setState(a);
  10553. this.updateData(a);
  10554. this.handleAction("change", a);
  10555. this.validate()
  10556. },
  10557. onFocus: function() {
  10558. this.handleAction("focus")
  10559. },
  10560. onBlur: function() {
  10561. this.handleAction("blur")
  10562. },
  10563. getSkinProperties: function() {
  10564. return {
  10565. "": {
  10566. "data-error": !this.state.valid,
  10567. "data-disabled": !!this.props.compProp.isDisabled
  10568. },
  10569. container: {
  10570. tabIndex: 0,
  10571. onFocus: this.onFocus,
  10572. onBlur: this.onBlur
  10573. },
  10574. input: {
  10575. disabled: !!this.props.compProp.isDisabled,
  10576. required: this.props.compProp.required,
  10577. checked: this.state.checked,
  10578. onChange: this.onChange,
  10579. value: this.props.compData.value
  10580. }
  10581. }
  10582. }
  10583. }
  10584. });
  10585. define("components/components/controller/controller", ["core"], function(a) {
  10586. "use strict";
  10587. var b = a.compMixins;
  10588. return {
  10589. displayName: "Controller",
  10590. mixins: [b.skinBasedComp],
  10591. statics: {
  10592. useSantaTypes: true
  10593. },
  10594. getSkinProperties: function() {
  10595. return {}
  10596. }
  10597. }
  10598. });
  10599. define("components/components/grid/core/enums", [], function() {
  10600. "use strict";
  10601. return {
  10602. FieldType: Object.freeze({
  10603. STRING: "string",
  10604. DATE: "date",
  10605. NUMBER: "number",
  10606. IMAGE: "image",
  10607. BOOLEAN: "bool",
  10608. RICH_TEXT: "richText"
  10609. }),
  10610. SortDirection: Object.freeze({
  10611. ASC: "asc",
  10612. DESC: "desc",
  10613. NONE: "none"
  10614. }),
  10615. UserSelectionType: Object.freeze({
  10616. NONE: "none",
  10617. CELL: "cell",
  10618. ROW: "row"
  10619. }),
  10620. DataSourceType: Object.freeze({
  10621. DYNAMIC: "dynamic",
  10622. STATIC: "static"
  10623. }),
  10624. PaginationType: Object.freeze({
  10625. PAGES: "pagination",
  10626. SCROLL: "virtual",
  10627. NONE: "normal"
  10628. }),
  10629. HorizontalAlignment: Object.freeze({
  10630. LEFT: "left",
  10631. CENTER: "center",
  10632. RIGHT: "right"
  10633. }),
  10634. filtering: {
  10635. NumericOperator: Object.freeze({
  10636. EQUALS: "EQUALS",
  10637. NOT_EQUALS: "NOT_EQUALS",
  10638. LESS_THAN: "LESS_THAN",
  10639. LESS_OR_EQUALS: "LESS_OR_EQUALS",
  10640. GREATER_THAN: "GREATER_THAN",
  10641. GREATER_OR_EQUALS: "GREATER_OR_EQUALS"
  10642. }),
  10643. StringOperator: Object.freeze({
  10644. EQUALS: "EQUALS",
  10645. NOT_EQUALS: "NOT_EQUALS",
  10646. CONTAINS: "CONTAINS",
  10647. STARTS_WITH: "STARTS_WITH",
  10648. ENDS_WITH: "ENDS_WITH"
  10649. }),
  10650. DateOperator: Object.freeze({
  10651. LAST_X_DAYS: "LAST_X_DAYS",
  10652. LAST_X_WEEKS: "LAST_X_WEEKS",
  10653. LAST_X_MONTHS: "LAST_X_MONTHS"
  10654. })
  10655. },
  10656. ColumnLayout: Object.freeze({
  10657. EQUAL: "equal",
  10658. FIT_CONTENT: "fitContent",
  10659. MANUAL: "manual"
  10660. })
  10661. }
  10662. });
  10663. define("components/components/grid/helpers/filtering", ["lodash", "components/components/grid/core/enums"], function(a, b) {
  10664. "use strict";
  10665. var c = b.FieldType;
  10666. var d = b.filtering.NumericOperator;
  10667. var e = b.filtering.StringOperator;
  10668. var f = b.filtering.DateOperator;
  10669. var g = {};
  10670. var h = function(a, b) {
  10671. return b === a
  10672. };
  10673. var i = function(a, b) {
  10674. return b !== a
  10675. };
  10676. g.NumericOperatorFuncs = {};
  10677. g.NumericOperatorFuncs[d.EQUALS] = h;
  10678. g.NumericOperatorFuncs[d.NOT_EQUALS] = i;
  10679. g.NumericOperatorFuncs[d.LESS_THAN] = function(a, b) {
  10680. return b < a
  10681. };
  10682. g.NumericOperatorFuncs[d.LESS_OR_EQUALS] = function(a, b) {
  10683. return b <= a
  10684. };
  10685. g.NumericOperatorFuncs[d.GREATER_THAN] = function(a, b) {
  10686. return b > a
  10687. };
  10688. g.NumericOperatorFuncs[d.GREATER_OR_EQUALS] = function(a, b) {
  10689. return b >= a
  10690. };
  10691. g.StringOperatorFuncs = {};
  10692. g.StringOperatorFuncs[e.EQUALS] = h;
  10693. g.StringOperatorFuncs[e.NOT_EQUALS] = i;
  10694. g.StringOperatorFuncs[e.CONTAINS] = function(b, c) {
  10695. return a.includes(c, b)
  10696. };
  10697. g.StringOperatorFuncs[e.STARTS_WITH] = function(b, c) {
  10698. return a.startsWith(c, b)
  10699. };
  10700. g.StringOperatorFuncs[e.ENDS_WITH] = function(b, c) {
  10701. return a.endsWith(c, b)
  10702. };
  10703. var j = 864e5;
  10704. var k = 7;
  10705. var l = 12;
  10706. g.DateOperatorFuncs = {};
  10707. g.DateOperatorFuncs[f.LAST_X_DAYS] = function(a, b) {
  10708. return new Date(b).getTime() > Date.now() - a * j
  10709. };
  10710. g.DateOperatorFuncs[f.LAST_X_WEEKS] = function(a, b) {
  10711. return new Date(b).getTime() > Date.now() - a * j * k
  10712. };
  10713. g.DateOperatorFuncs[f.LAST_X_MONTHS] = function(a, b) {
  10714. var c = new Date;
  10715. var d = new Date(b);
  10716. return d.getYear() * l + d.getMonth() > c.getMonth() + c.getYear() * l - a
  10717. };
  10718. g.OperatorFuncs = {};
  10719. g.OperatorFuncs[c.NUMBER] = g.NumericOperatorFuncs;
  10720. g.OperatorFuncs[c.STRING] = g.StringOperatorFuncs;
  10721. g.OperatorFuncs[c.DATE] = g.DateOperatorFuncs;
  10722. g.buildFilter = function(b) {
  10723. return function(c) {
  10724. return a.every(b, function(a, b) {
  10725. return g.OperatorFuncs[a.type][a.operator](a.value, c[b])
  10726. })
  10727. }
  10728. };
  10729. return g
  10730. });
  10731. define("components/components/grid/wrappers/dataSource", ["lodash", "components/components/grid/core/enums", "components/components/grid/helpers/filtering"], function(a, b, c) {
  10732. "use strict";
  10733.  
  10734. function d(b, d) {
  10735. return a.every(b.compProp.filter, function(e, f) {
  10736. var g = a.find(b.compProp.columns, {
  10737. id: f
  10738. });
  10739. if (a.isUndefined(g)) {
  10740. return true
  10741. }
  10742. var h = a.get(d, g.dataPath);
  10743. return c.OperatorFuncs[e.type][e.operator](e.value, h)
  10744. })
  10745. }
  10746.  
  10747. function e(c, e, f, g) {
  10748. var h = -1;
  10749. var i;
  10750. if (g === b.DataSourceType.DYNAMIC) {
  10751. i = a.partial(f.dynamic(c, e.dataFetchContext))
  10752. } else {
  10753. i = a.partial(f.static(c, a.partial(d, c)))
  10754. }
  10755. return {
  10756. rowCount: h,
  10757. getRows: i
  10758. }
  10759. }
  10760. return e
  10761. });
  10762. define("components/components/grid/core/state", ["lodash", "components/components/grid/helpers/filtering"], function(a, b) {
  10763. "use strict";
  10764.  
  10765. function c(b, c) {
  10766. var d = b;
  10767. if (!a.isUndefined(c)) {
  10768. d = a.filter(b, c)
  10769. }
  10770. return {
  10771. rows: d,
  10772. rowsCount: d.length
  10773. }
  10774. }
  10775.  
  10776. function d() {
  10777. return {
  10778. dataFetchContext: null,
  10779. dataFetchHandler: null,
  10780. uiState: null,
  10781. agGridApi: null,
  10782. currentPage: null
  10783. }
  10784. }
  10785. d.setGrid = function(a, b, c, e) {
  10786. d.destroyGrid(a);
  10787. new b.Grid(e, c);
  10788. a.agGridApi = c.api;
  10789. return a
  10790. };
  10791. d.destroyGrid = function(a) {
  10792. if (a.agGridApi !== null) {
  10793. a.agGridApi.destroy();
  10794. a.agGridApi = null
  10795. }
  10796. return a
  10797. };
  10798. d.setDataSource = function(a, b) {
  10799. a.agGridApi.setDatasource(b);
  10800. return a
  10801. };
  10802. d.setRowData = function(a, d, e) {
  10803. var f = b.buildFilter(e);
  10804. var g = c(d, f);
  10805. a.agGridApi.setRowData(g.rows);
  10806. return a
  10807. };
  10808. d.updateUsingApi = function(b, c) {
  10809. a.forEach(c, function(a, c) {
  10810. b.agGridApi[c].apply(b.agGridApi, a)
  10811. });
  10812. return b
  10813. };
  10814. d.setDataFetchHandler = function(a, b) {
  10815. a.dataFetchHandler = b;
  10816. return a
  10817. };
  10818. d.handleFetchedData = function(b, d) {
  10819. if (b.dataFetchHandler !== null) {
  10820. var e = a.clone(d);
  10821. var f = b.dataFetchHandler;
  10822. if (a.has(f, "startRow")) {
  10823. e = c(d.rows, f.filter);
  10824. e.rows = a.slice(e.rows, f.startRow, f.endRow)
  10825. }
  10826. f.successCallback(e.rows, e.rowsCount);
  10827. b.dataFetchHandler = null
  10828. }
  10829. return b
  10830. };
  10831. d.updateUIState = function(a, b, c) {
  10832. if (a.uiState === null) {
  10833. a.uiState = {}
  10834. }
  10835. a.uiState[c] = b;
  10836. return a
  10837. };
  10838. d.restoreUIState = function(a, b) {
  10839. return d.updateUsingApi(a, b)
  10840. };
  10841. d.saveCurrentPage = function(a) {
  10842. a.currentPage = a.agGridApi.paginationController.currentPage;
  10843. return a
  10844. };
  10845. d.restoreCurrentPage = function(a) {
  10846. a.agGridApi.paginationController.currentPage = a.currentPage;
  10847. a.agGridApi.paginationController.loadPage();
  10848. return a
  10849. };
  10850. return d
  10851. });
  10852. define("components/components/grid/wrappers/gridOptions", ["components/components/grid/core/enums"], function(a) {
  10853. "use strict";
  10854. var b = a.UserSelectionType;
  10855.  
  10856. function c(b, d, e) {
  10857. var f = e.dataFetchContext !== null;
  10858. var g = {
  10859. rowBuffer: 0,
  10860. rowHeight: b.rowHeight,
  10861. paginationOverflowSize: 0,
  10862. paginationPageSize: b.pagination.rowsPerPage,
  10863. enableSorting: false,
  10864. enableFilter: false,
  10865. suppressMovableColumns: true,
  10866. rowSelection: c.getRowSelection(b),
  10867. suppressCellSelection: c.isCellSelectionSuppressed(b),
  10868. enableServerSideSorting: f,
  10869. enableServerSideFilter: f,
  10870. onSortChanged: d.onSortChanged,
  10871. onFilterChanged: d.onUoUFiltersChanged,
  10872. onCellValueChanged: d.onCellEdit,
  10873. onRowSelected: d.onRowSelect,
  10874. onCellFocused: d.onCellSelect
  10875. };
  10876. if (b.pagination.type !== a.PaginationType.NONE) {
  10877. g.rowModelType = b.pagination.type
  10878. }
  10879. return g
  10880. }
  10881. c.isCellSelectionSuppressed = function(a) {
  10882. return a.userSelectionType !== b.CELL
  10883. };
  10884. c.getRowSelection = function(a) {
  10885. if (a.userSelectionType === b.ROW) {
  10886. return "single"
  10887. }
  10888. return undefined
  10889. };
  10890. return c
  10891. });
  10892. define("components/components/grid/helpers/either", ["lodash"], function(a) {
  10893. "use strict";
  10894. var b = {
  10895. Left: function(a) {
  10896. return {
  10897. left: a
  10898. }
  10899. },
  10900. Right: function(a) {
  10901. return {
  10902. right: a
  10903. }
  10904. },
  10905. isRight: a.partialRight(a.has, "right"),
  10906. get: a.partialRight(a.get, "right"),
  10907. getOrElse: function(a, c) {
  10908. if (b.isRight(a)) {
  10909. return b.get(a)
  10910. }
  10911. return c
  10912. }
  10913. };
  10914. return b
  10915. });
  10916. define("components/components/grid/wrappers/newValueHandler", ["lodash", "components/components/grid/helpers/either", "components/components/grid/core/enums"], function(a, b, c) {
  10917. "use strict";
  10918. var d = c.FieldType;
  10919. var e = b.Left;
  10920. var f = b.Right;
  10921. var g = {
  10922. validatorByFieldType: {}
  10923. };
  10924. g.validatorByFieldType[d.DATE] = function(b) {
  10925. if (a.isNaN(Date.parse(b))) {
  10926. return e(null)
  10927. }
  10928. return f(new Date(b))
  10929. };
  10930. g.validatorByFieldType[d.NUMBER] = function(b) {
  10931. var c = Number(b);
  10932. if (a.isNaN(c)) {
  10933. return e(null)
  10934. }
  10935. return f(c)
  10936. };
  10937. g.getNextValue = function(c, d, e) {
  10938. var f = d;
  10939. if (a.has(g.validatorByFieldType, c)) {
  10940. f = b.getOrElse(g.validatorByFieldType[c](d), e)
  10941. }
  10942. return f
  10943. };
  10944. g.update = function(b, c) {
  10945. var d = g.getNextValue(b.type, c.newValue, c.oldValue);
  10946. a.set(c.data, b.dataPath, d)
  10947. };
  10948. return g
  10949. });
  10950. define("components/components/grid/wrappers/dateFilter", ["lodash", "components/components/grid/core/enums"], function(a, b) {
  10951. "use strict";
  10952. var c = b.filtering;
  10953. var d = c.DateOperator;
  10954. var e = c.DateOperatorFuncs;
  10955.  
  10956. function f() {}
  10957. f.prototype.init = function(b) {
  10958. this.eGui = window.document.createElement("div");
  10959. this.eGui.innerHTML = '<div><select class="date-filter-select ag-filter-select">' + a.map(d, function(a, b) {
  10960. return '<option value="' + b + '">' + a + "</option>"
  10961. }).join("") + "</select></div>" + '<div><input type="number" class="date-filter-amount ag-filter-filter" min="0" placeholder="Filter..." /></div>';
  10962. this.select = this.eGui.querySelector(".date-filter-select");
  10963. this.input = this.eGui.querySelector(".date-filter-amount");
  10964. this.select.addEventListener("change", b.filterChangedCallback);
  10965. this.input.addEventListener("change", b.filterChangedCallback)
  10966. };
  10967. f.prototype.getGui = function() {
  10968. return this.eGui
  10969. };
  10970. f.prototype.doesFilterPass = function(b) {
  10971. var c = Number(this.input.value) || 0;
  10972. var d = this.select.value;
  10973. if (!a.isUndefined(e[d])) {
  10974. return e[d](c, b.data.date)
  10975. }
  10976. return true
  10977. };
  10978. f.prototype.isFilterActive = function() {
  10979. return this.select.value !== d.NONE
  10980. };
  10981. f.prototype.getApi = function() {
  10982. return {
  10983. getModel: a.bind(function() {
  10984. return {
  10985. type: b.FieldType.DATE,
  10986. operator: this.select.value,
  10987. value: Number(this.input.value)
  10988. }
  10989. }, this),
  10990. setModel: a.bind(function(c) {
  10991. if (a.isUndefined(c)) {
  10992. c = {
  10993. type: b.FieldType.DATE,
  10994. operator: d.NONE,
  10995. value: ""
  10996. }
  10997. }
  10998. this.select.value = c.operator;
  10999. this.input.value = c.value
  11000. }, this)
  11001. }
  11002. };
  11003. return f
  11004. });
  11005. define("components/components/grid/wrappers/cellRenderers", ["lodash", "utils", "components/components/grid/core/enums"], function(a, b, c) {
  11006. "use strict";
  11007. var d = b.linkRenderer;
  11008. var e = b.dateTimeUtils;
  11009. var f = c.FieldType;
  11010. var g = {
  11011. byFieldType: {}
  11012. };
  11013.  
  11014. function h(a, b, c, d) {
  11015. var e = /^image:\/\//;
  11016. if (e.test(b)) {
  11017. var f = /^image:\/\/([^\/]*)\/([^\/]*)\/([^\/]*)\/([^\/]*)/;
  11018. var g = b.match(f);
  11019. var h = g[1];
  11020. var i = g[2];
  11021. var j = a(i) + "/" + h + "/fit/w_" + c + ",h_" + d + "/" + i;
  11022. return j
  11023. }
  11024. return b
  11025. }
  11026.  
  11027. function i(b, c) {
  11028. if (a.isUndefined(c.value.data)) {
  11029. return ""
  11030. }
  11031. return b(c)
  11032. }
  11033.  
  11034. function j(a) {
  11035. var b = a && a.outerHTML ? a.outerHTML : a;
  11036. var c = window.document.createElement("div");
  11037. c.className = "ag-cell-text";
  11038. c.innerHTML = b;
  11039. return c
  11040. }
  11041. g.linkRenderer = function(b, c, e) {
  11042. return function(f) {
  11043. var g = window.document.createElement("a");
  11044. var h = b(f);
  11045. g.innerHTML = h && h.outerHTML ? h.outerHTML : h;
  11046. var i = d.renderLink(f.value.link, c, e);
  11047. a.assign(g, i);
  11048. return g
  11049. }
  11050. };
  11051. g.valueRenderer = function(b) {
  11052. return j(a.get(b, "value.data"))
  11053. };
  11054. g.byFieldType[f.DATE] = function(a) {
  11055. var b = a.compProp.dateFormat;
  11056. return function(a) {
  11057. var c = new Date(a.value.data);
  11058. var d = e.dateFormat(c, b);
  11059. return j(d)
  11060. }
  11061. };
  11062. g.byFieldType[f.IMAGE] = function(a) {
  11063. var b = a.getMediaFullStaticUrl;
  11064. return function(a) {
  11065. var c = a.column.actualWidth;
  11066. var d = a.node.rowHeight;
  11067. var e = h(b, a.value.data, c, d);
  11068. return '<img class="ag-cell-image" src="' + e + '">'
  11069. }
  11070. };
  11071. g.byFieldType[f.BOOLEAN] = a.partial(a.identity, function(a) {
  11072. return j(a.value.data ? "Yes" : "No")
  11073. });
  11074. g.byFieldType[f.RICH_TEXT] = a.partial(a.identity, function(a) {
  11075. return '<div class="ag-cell-richtext">' + a.value.data + "</div>"
  11076. });
  11077. g.get = function(b, c) {
  11078. var d;
  11079. if (a.has(g.byFieldType, b)) {
  11080. d = g.byFieldType[b](c)
  11081. } else {
  11082. d = g.valueRenderer
  11083. }
  11084. return a.wrap(d, i)
  11085. };
  11086. return g
  11087. });
  11088. define("components/components/grid/wrappers/columnDefinition", ["lodash", "experiment", "components/components/grid/core/enums", "components/components/grid/wrappers/newValueHandler", "components/components/grid/wrappers/dateFilter", "components/components/grid/wrappers/cellRenderers"], function(a, b, c, d, e, f) {
  11089. "use strict";
  11090. var g = "structure.layout.width";
  11091. var h = c.FieldType;
  11092. var i = c.HorizontalAlignment;
  11093.  
  11094. function j(c, e) {
  11095. var f = e.type;
  11096. var g = j.byFieldType[f];
  11097. var h = a.assign({
  11098. colId: e.id,
  11099. field: e.id,
  11100. headerName: e.label,
  11101. width: j.getColumnWidth(c, e),
  11102. hide: !e.visible,
  11103. valueGetter: j.getValueGetter(e),
  11104. newValueHandler: a.partial(d.update, e),
  11105. cellRenderer: j.getCellRenderer(c, e),
  11106. editable: j.getEditable(c.compProp, g),
  11107. cellStyle: j.getCellStyle(c.compProp)
  11108. }, g);
  11109. if (!b.isOpen("se_gridUoUEdit")) {
  11110. a.assign(h, {
  11111. editable: false
  11112. })
  11113. }
  11114. return h
  11115. }
  11116. j.getValueGetter = function(b) {
  11117. return function(c) {
  11118. return {
  11119. data: a.get(c.data, b.dataPath),
  11120. link: a.get(c.data, b.linkPath + "_linkObj"),
  11121. toString: function() {
  11122. return this.data.toString()
  11123. }
  11124. }
  11125. }
  11126. };
  11127. j.getEditable = function(b, c) {
  11128. return b.allowUserEditing && !a.isUndefined(c) && c.editable
  11129. };
  11130. j.getCellRenderer = function(b, c) {
  11131. var d = c.type;
  11132. var e = f.get(d, b);
  11133. if (a.isUndefined(c.linkPath)) {
  11134. return e
  11135. }
  11136. return f.linkRenderer(e, b.linkRenderInfo, b.rootNavigationInfo)
  11137. };
  11138. j.getColumnWidth = function(b, d) {
  11139. switch (b.compProp.columnLayout) {
  11140. case c.ColumnLayout.EQUAL:
  11141. if (b.compProp.columns.length === 0) {
  11142. return 0
  11143. }
  11144. return a.get(b, g) / b.compProp.columns.length;
  11145. default:
  11146. return d.width
  11147. }
  11148. };
  11149. j.getCellStyle = function(a) {
  11150. if (a.horizontalAlignment === i.CENTER) {
  11151. return function() {
  11152. return {
  11153. paddingLeft: "0"
  11154. }
  11155. }
  11156. }
  11157. return function() {
  11158. return {
  11159. paddingLeft: a.cellPadding + "px"
  11160. }
  11161. }
  11162. };
  11163. j.byFieldType = {};
  11164. j.byFieldType[h.STRING] = {
  11165. filter: "text",
  11166. editable: true
  11167. };
  11168. j.byFieldType[h.NUMBER] = {
  11169. filter: "number",
  11170. editable: true
  11171. };
  11172.  
  11173. function k(a, b) {
  11174. return new Date(a) - new Date(b)
  11175. }
  11176. j.byFieldType[h.DATE] = {
  11177. filter: e,
  11178. comparator: k,
  11179. editable: true
  11180. };
  11181. return j
  11182. });
  11183. define("components/components/grid/apiCallMaps/selectionCallMap", ["lodash", "components/components/grid/core/enums"], function(a, b) {
  11184. "use strict";
  11185.  
  11186. function c(c) {
  11187. if (a.has(c, "columnId")) {
  11188. return b.UserSelectionType.CELL
  11189. }
  11190. return b.UserSelectionType.ROWS
  11191. }
  11192.  
  11193. function d(a, b) {
  11194. if (b.id === a) {
  11195. b.setSelected(true, true)
  11196. }
  11197. }
  11198.  
  11199. function e(b) {
  11200. return {
  11201. forEachNode: [a.partial(d, b)]
  11202. }
  11203. }
  11204.  
  11205. function f(a, b, c) {
  11206. var d = a % b;
  11207. var e = c.id % b;
  11208. var f = c.id - e <= a && c.id - e + b > a;
  11209. if (c.childIndex === d && f) {
  11210. c.setSelected(true, true)
  11211. }
  11212. }
  11213.  
  11214. function g(b, c) {
  11215. return {
  11216. forEachNodeAfterFilterAndSort: [a.partial(f, b, c.rowsPerPage)]
  11217. }
  11218. }
  11219. var h = {};
  11220. h[b.PaginationType.NONE] = g;
  11221. h[b.PaginationType.PAGES] = g;
  11222. h[b.PaginationType.SCROLL] = e;
  11223.  
  11224. function i(a) {
  11225. return {
  11226. setFocusedCell: [a.rowIndex, a.columnId]
  11227. }
  11228. }
  11229.  
  11230. function j(a, d) {
  11231. if (c(a) === b.UserSelectionType.CELL) {
  11232. return i(a)
  11233. }
  11234. return h[d.type](a.rowIndex, d)
  11235. }
  11236. return j
  11237. });
  11238. define("components/components/grid/apiCallMaps/updateApiCallMap", ["lodash", "components/components/grid/wrappers/columnDefinition", "components/components/grid/apiCallMaps/selectionCallMap"], function(a, b, c) {
  11239. "use strict";
  11240.  
  11241. function d(c, d) {
  11242. return a.map(c, a.partial(b, d))
  11243. }
  11244.  
  11245. function e(a, b) {
  11246. return a ? b.compProp.headerHeight : 0
  11247. }
  11248.  
  11249. function f(b, c) {
  11250. return a.reduce(f.propertyUpdateOrder, function(d, e) {
  11251. if (a.has(b, e)) {
  11252. a.assign(d, f.propertyToCall[e](b[e], c))
  11253. }
  11254. return d
  11255. }, {})
  11256. }
  11257. f.invoke = function(a) {
  11258. return function(b) {
  11259. var c = {};
  11260. c[a] = [b];
  11261. return c
  11262. }
  11263. };
  11264. f.propertyUpdateOrder = ["columns", "headerHeight", "sorting", "userSelection", "showHeader"];
  11265. f.propertyToCall = {
  11266. columns: a.flow(d, f.invoke("setColumnDefs")),
  11267. headerHeight: f.invoke("setHeaderHeight"),
  11268. showHeader: a.flow(e, f.invoke("setHeaderHeight")),
  11269. sorting: f.invoke("setSortModel"),
  11270. userSelection: function(a, b) {
  11271. return c(a, b.compProp.pagination)
  11272. }
  11273. };
  11274. return f
  11275. });
  11276. define("components/components/grid/apiCallMaps/uiStateApiCallMap", ["lodash", "components/components/grid/apiCallMaps/selectionCallMap", "components/components/grid/core/enums"], function(a, b) {
  11277. "use strict";
  11278.  
  11279. function c(b, d) {
  11280. var e = c.callByProperty(d);
  11281. return a.reduce(b, function(b, c, d) {
  11282. return a.assign(b, e[d](c))
  11283. }, {})
  11284. }
  11285. c.callByProperty = function(a) {
  11286. return {
  11287. userFilter: function(a) {
  11288. return {
  11289. setFilterModel: [a]
  11290. }
  11291. },
  11292. userSelection: function(c) {
  11293. b(c, a.pagination)
  11294. }
  11295. }
  11296. };
  11297. c.uiProperties = ["userFilter", "userSelection"];
  11298. c.getUIStateProps = function(b) {
  11299. return a.pick(b, c.uiProperties)
  11300. };
  11301. return c
  11302. });
  11303. define("components/components/grid/core/actions", ["lodash", "components/components/grid/wrappers/dataSource", "components/components/grid/core/state", "components/components/grid/wrappers/gridOptions", "components/components/grid/apiCallMaps/updateApiCallMap", "components/components/grid/apiCallMaps/uiStateApiCallMap", "components/components/grid/core/enums"], function(a, b, c, d, e, f, g) {
  11304. "use strict";
  11305. var h = g.UserSelectionType;
  11306. return {
  11307. INIT: c,
  11308. CREATE_GRID: function(a, b, e, f) {
  11309. return function(g) {
  11310. var h = d(b, e, g);
  11311. return c.setGrid(g, a, h, f)
  11312. }
  11313. },
  11314. UPDATE_GRID_USING_API: a.flow(e, a.curryRight(c.updateUsingApi)),
  11315. DESTROY_GRID: c.destroyGrid,
  11316. SET_DATA_FETCH_HANDLER: a.curryRight(c.setDataFetchHandler),
  11317. HANDLE_FETCHED_DATA: a.curryRight(c.handleFetchedData),
  11318. SET_DATA: function(a, d, e) {
  11319. return function(f) {
  11320. if (a.compProp.pagination.type === g.PaginationType.NONE) {
  11321. return c.setRowData(f, a.compData.rows, a.compProp.filter)
  11322. }
  11323. var h = b(a, f, d, e);
  11324. return c.setDataSource(f, h)
  11325. }
  11326. },
  11327. UPDATE_UI_STATE: function(b) {
  11328. return a.partial(a.reduce, b, c.updateUIState)
  11329. },
  11330. RESTORE_UI_STATE: function(a) {
  11331. return function(b) {
  11332. var d = f(b.uiState, a);
  11333. return c.restoreUIState(b, d)
  11334. }
  11335. },
  11336. SAVE_CURRENT_PAGE: c.saveCurrentPage,
  11337. RESTORE_CURRENT_PAGE: c.restoreCurrentPage,
  11338. CLEAR_SELECTION: function(a) {
  11339. return function(b) {
  11340. if (a === h.CELL) {
  11341. return c.updateUsingApi(b, {
  11342. setFocusedCell: [-1, -1]
  11343. })
  11344. } else if (a === h.ROW) {
  11345. return c.updateUsingApi(b, {
  11346. deselectAll: []
  11347. })
  11348. }
  11349. return c.updateUsingApi(b, {
  11350. setFocusedCell: [-1, -1],
  11351. deselectAll: []
  11352. })
  11353. }
  11354. }
  11355. }
  11356. });
  11357. define("components/components/grid/core/propsInspector", ["lodash", "components/components/grid/apiCallMaps/updateApiCallMap", "components/components/grid/apiCallMaps/uiStateApiCallMap", "components/components/grid/core/enums"], function(a, b, c, d) {
  11358. "use strict";
  11359.  
  11360. function e(a) {
  11361. return a.compProp.columnLayout === d.ColumnLayout.EQUAL
  11362. }
  11363.  
  11364. function f(b, c) {
  11365. var d = a(c.compProp).pick(f.agGridAffectingProps).reduce(function(c, d, e) {
  11366. if (!a.isEqual(d, b.compProp[e])) {
  11367. c[e] = d
  11368. }
  11369. return c
  11370. }, {});
  11371. d = a.reduce(f.propChangeTests, function(b, d) {
  11372. if (d.test(c)) {
  11373. var e = {};
  11374. e[d.mappedProp] = c.compProp[d.mappedProp];
  11375. a.assign(b, e)
  11376. }
  11377. return b
  11378. }, d);
  11379. return {
  11380. props: d,
  11381. dataChanged: b.compData.revision !== c.compData.revision
  11382. }
  11383. }
  11384. f.propChangeTests = [{
  11385. test: e,
  11386. mappedProp: "columns"
  11387. }];
  11388. f.agGridAffectingProps = ["allowUserEditing", "allowUserFiltering", "allowUserSorting", "cellPadding", "columnLayout", "columns", "dataSource", "dateFormat", "headerHeight", "heightLayout", "horizontalAlignment", "linkTarget", "pagination", "rowHeight", "showHeader", "userFilter", "userSelection", "userSelectionType"];
  11389. f.apiProperties = b.propertyUpdateOrder;
  11390. f.hasOnlyApiProps = function(b) {
  11391. return a(b.props).keys().difference(f.apiProperties).isEmpty()
  11392. };
  11393. f.didDataSourceChange = function(b) {
  11394. return a.has(b.props, "dataSource") || a.has(b.props, "pagination")
  11395. };
  11396. f.didDataChange = function(a) {
  11397. return a.dataChanged
  11398. };
  11399. f.didUIPropsChange = function(b) {
  11400. return !a(b.props).keys().intersection(c.uiProperties).isEmpty()
  11401. };
  11402. f.isEmpty = function(b) {
  11403. return a.isEmpty(b.props) && !b.dataChanged
  11404. };
  11405. f.hasPagesPagination = function(a) {
  11406. return a.compProp.pagination.type === d.PaginationType.PAGES
  11407. };
  11408. return f
  11409. });
  11410. define("components/components/grid/helpers/filterModelConverter", ["lodash", "components/components/grid/core/enums"], function(a, b) {
  11411. "use strict";
  11412. var c = b.FieldType;
  11413. var d = b.filtering.NumericOperator;
  11414. var e = b.filtering.StringOperator;
  11415. var f = {
  11416. convert: function(b, c) {
  11417. return a.mapValues(b, function(b, d) {
  11418. var e = a.find(c, {
  11419. id: d
  11420. });
  11421. var g = e.type;
  11422. if (a.has(f.operatorMap, g)) {
  11423. return {
  11424. type: g,
  11425. operator: f.operatorMap[g][b.type],
  11426. value: b.filter
  11427. }
  11428. }
  11429. return b
  11430. })
  11431. }
  11432. };
  11433. f.operatorMap = {};
  11434. f.operatorMap[c.NUMBER] = {
  11435. 1: d.EQUALS,
  11436. 2: d.NOT_EQUALS,
  11437. 3: d.LESS_THAN,
  11438. 4: d.LESS_OR_EQUALS,
  11439. 5: d.GREATER_THAN,
  11440. 6: d.GREATER_OR_EQUALS
  11441. };
  11442. f.operatorMap[c.STRING] = {
  11443. 1: e.CONTAINS,
  11444. 2: e.EQUALS,
  11445. 3: e.NOT_EQUALS,
  11446. 4: e.STARTS_WITH,
  11447. 5: e.ENDS_WITH
  11448. };
  11449. return f
  11450. });
  11451. define("components/components/grid/helpers/rowHelpers", ["lodash"], function(a) {
  11452. "use strict";
  11453. var b = {
  11454. createRow: function(b, c, d, e) {
  11455. var f = {};
  11456. a.forEach(b, function(b) {
  11457. var g = a.get(c, b.dataPath);
  11458. if (e && b.id === d) {
  11459. g = e
  11460. }
  11461. a.set(f, b.dataPath, g)
  11462. });
  11463. return f
  11464. },
  11465. getRowIndex: function(b, c) {
  11466. return a.findIndex(b.compData.rows, c)
  11467. }
  11468. };
  11469. return b
  11470. });
  11471. define("components/components/grid/helpers/boolSet", ["lodash"], function(a) {
  11472. "use strict";
  11473. var b = a.flow(a.partialRight(a.chunk, 2), a.partialRight(a.filter, a.last), a.partialRight(a.map, a.first));
  11474. return b
  11475. });
  11476. define("components/components/grid/core/grid", ["lodash", "experiment", "components/components/grid/core/actions", "components/components/grid/core/propsInspector", "components/components/grid/helpers/filterModelConverter", "components/components/grid/helpers/rowHelpers", "components/components/grid/core/enums", "components/components/grid/helpers/boolSet"], function(a, b, c, d, e, f, g, h) {
  11477. "use strict";
  11478. var i = g.UserSelectionType;
  11479.  
  11480. function j(a) {
  11481. return {
  11482. loadAgGridModule: null,
  11483. state: null,
  11484. foreign: a
  11485. }
  11486. }
  11487. j.mutateState = function(b, c) {
  11488. b.state = a.reduce(c, function(a, b) {
  11489. return b(a)
  11490. }, b.state)
  11491. };
  11492. j.ensureAgGridModule = function(a) {
  11493. if (j.loadAgGridModule !== null) {
  11494. j.loadAgGridModule.then(a)
  11495. }
  11496. };
  11497. j.init = function(a, b, d) {
  11498. j.ensureAgGridModule(function(e) {
  11499. j.mutateState(a, [c.INIT, c.CREATE_GRID(e, b.compProp, j.bindGridEventHandlers(a, b), d), c.UPDATE_GRID_USING_API(b.compProp, b), c.SET_DATA(b, j.bindRowGetters(a), false)])
  11500. })
  11501. };
  11502. j.update = function(a, b, e, f) {
  11503. j.ensureAgGridModule(function(g) {
  11504. var i = d(b, e);
  11505. if (!d.isEmpty(i)) {
  11506. var k = d.hasOnlyApiProps(i);
  11507. var l = d.hasPagesPagination(b) && d.hasPagesPagination(e);
  11508. var m = d.didDataSourceChange(i);
  11509. var n = d.didDataChange(i);
  11510. var o = d.didUIPropsChange(i);
  11511. var p = k ? i.props : e.compProp;
  11512. var q = h([c.SAVE_CURRENT_PAGE, !k && l, c.CREATE_GRID(g, e.compProp, j.bindGridEventHandlers(a, e), f), !k, c.UPDATE_GRID_USING_API(p, e), true, c.SET_DATA(e, j.bindRowGetters(a), e.compProp.dataSource.type), m || !k, c.HANDLE_FETCHED_DATA({
  11513. rows: e.compData.rows,
  11514. rowsCount: e.compData.rowsCount
  11515. }), !m && n, c.RESTORE_CURRENT_PAGE, !k && l, c.UPDATE_UI_STATE(i.props), o, c.RESTORE_UI_STATE(e.compProp), !o]);
  11516. j.mutateState(a, q)
  11517. }
  11518. })
  11519. };
  11520. j.destroy = function(a) {
  11521. j.mutateState(a, [c.DESTROY_GRID])
  11522. };
  11523. var k = {
  11524. EDITOR: "editor",
  11525. PREVIEW: "preview"
  11526. };
  11527. j.handleViewModeChange = function(a, b, d) {
  11528. if (d === k.EDITOR) {
  11529. j.mutateState(a, [c.SET_DATA(b, j.bindRowGetters(a), false), c.CLEAR_SELECTION()])
  11530. }
  11531. };
  11532. j.bindRowGetters = function(a) {
  11533. return {
  11534. static: function(b, d) {
  11535. return function(e) {
  11536. j.mutateState(a, [c.SET_DATA_FETCH_HANDLER({
  11537. successCallback: e.successCallback,
  11538. startRow: e.startRow,
  11539. endRow: e.endRow,
  11540. filter: d
  11541. }), c.HANDLE_FETCHED_DATA({
  11542. rows: b.compData.rows
  11543. })])
  11544. }
  11545. },
  11546. dynamic: function(b) {
  11547. return function(d) {
  11548. j.mutateState(a, [c.SET_DATA_FETCH_HANDLER({
  11549. successCallback: d.successCallback
  11550. })]);
  11551. var f = e.convert(d.filterModel, b.compProp.columns);
  11552. var g = {
  11553. name: "fetchData",
  11554. id: b.id,
  11555. startRow: d.startRow,
  11556. endRow: d.endRow,
  11557. sorting: d.sortModel,
  11558. filter: f
  11559. };
  11560. a.foreign.handleAction("fetchData", g)
  11561. }
  11562. }
  11563. }
  11564. };
  11565. j.bindGridEventHandlers = function(b, d) {
  11566. return {
  11567. onSortChanged: function() {
  11568. if (b.state !== null) {
  11569. var a = b.state.agGridApi.getSortModel();
  11570. b.foreign.updateProps({
  11571. sorting: a
  11572. })
  11573. }
  11574. },
  11575. onUoUFiltersChanged: function() {
  11576. var a = b.state.agGridApi.getFilterModel();
  11577. j.mutateState(b, [c.UPDATE_UI_STATE({
  11578. userFilter: a
  11579. })])
  11580. },
  11581. onRowSelect: function(a) {
  11582. if (!a.node.selected) {
  11583. return
  11584. }
  11585. var d = a.node.childIndex || a.node.id;
  11586. var e = {
  11587. rowIndex: d,
  11588. rowData: JSON.stringify(a.node.data)
  11589. };
  11590. b.foreign.updateProps({
  11591. userSelection: e
  11592. });
  11593. j.mutateState(b, [c.UPDATE_UI_STATE({
  11594. userSelection: e
  11595. }), c.CLEAR_SELECTION(i.CELL)]);
  11596. b.foreign.handleAction("rowSelect", e)
  11597. },
  11598. onCellSelect: function(a) {
  11599. if (!a.column) {
  11600. return
  11601. }
  11602. var d = this.api.getRenderedNodes()[a.rowIndex];
  11603. var e = d.data[a.column.colId];
  11604. var f = {
  11605. rowIndex: a.rowIndex,
  11606. columnId: a.column.colId,
  11607. cellData: JSON.stringify(e)
  11608. };
  11609. j.mutateState(b, [c.UPDATE_UI_STATE({
  11610. userSelection: f
  11611. }), c.CLEAR_SELECTION(i.ROW)]);
  11612. b.foreign.handleAction("cellSelect", f)
  11613. },
  11614. onCellEdit: function(c) {
  11615. var e = f.createRow(d.compProp.columns, c.data, c.colDef.colId, c.oldValue);
  11616. var g = f.createRow(d.compProp.columns, c.data, c.colDef.colId, c.newValue);
  11617. var h = f.getRowIndex(d, e);
  11618. var i = a.map(d.compData.rows, function(a, b) {
  11619. if (b === h) {
  11620. return g
  11621. }
  11622. return a
  11623. });
  11624. b.foreign.updateData({
  11625. rows: i
  11626. });
  11627. b.foreign.handleAction("cellEdit", {
  11628. cellData: c.newValue,
  11629. rowIndex: h,
  11630. columnId: c.colDef.colId
  11631. })
  11632. }
  11633. }
  11634. };
  11635. if (b.isOpen("sv_grid")) {
  11636. j.loadAgGridModule = new Promise(a.partial(require, ["ag-grid"]))
  11637. }
  11638. return j
  11639. });
  11640. define("components/components/grid/gridComponent", ["lodash", "core", "santaProps", "components/components/grid/core/grid", "components/components/grid/core/enums"], function(a, b, c, d, e) {
  11641. "use strict";
  11642. var f = "ag-fresh";
  11643. var g = 540;
  11644. return {
  11645. displayName: "Grid",
  11646. mixins: [b.compMixins.skinBasedComp, b.compMixins.runTimeCompData],
  11647. propTypes: {
  11648. compData: c.Types.Component.compData.isRequired,
  11649. compProp: c.Types.Component.compProp.isRequired,
  11650. linkRenderInfo: c.Types.Link.linkRenderInfo,
  11651. getMediaFullStaticUrl: c.Types.ServiceTopology.getMediaFullStaticUrl
  11652. },
  11653. statics: {
  11654. useSantaTypes: true
  11655. },
  11656. getClasses: function() {
  11657. var a = {};
  11658. a[f] = true;
  11659. a["hide-pagination-panel"] = this.props.compData.rows.length === 0;
  11660. a["align-text-left"] = this.props.compProp.horizontalAlignment === e.HorizontalAlignment.LEFT;
  11661. a["align-text-right"] = this.props.compProp.horizontalAlignment === e.HorizontalAlignment.RIGHT;
  11662. a["align-text-center"] = this.props.compProp.horizontalAlignment === e.HorizontalAlignment.CENTER;
  11663. a["disable-horizontal-scroll"] = this.props.compProp.columnLayout === e.ColumnLayout.EQUAL;
  11664. a["break-pagination-rows"] = this.props.style.width < g;
  11665. a["select-rows"] = this.props.compProp.userSelectionType === e.UserSelectionType.ROW;
  11666. a["select-cells"] = this.props.compProp.userSelectionType === e.UserSelectionType.CELL;
  11667. return a
  11668. },
  11669. transformNextProps: function(b, c) {
  11670. if (a.isFunction(this.transformPropsWithPreviewDummyData)) {
  11671. return this.transformPropsWithPreviewDummyData(b, c)
  11672. }
  11673. return c
  11674. },
  11675. componentDidMount: function() {
  11676. this.grid = d(this);
  11677. this.componentViewMode = this.props.renderFlags.componentViewMode;
  11678. d.init(this.grid, this.props, this.refs.grid)
  11679. },
  11680. componentWillReceiveProps: function(a) {
  11681. var b = this.transformNextProps(this.props, a);
  11682. if (b.renderFlags.componentViewMode !== this.componentViewMode) {
  11683. this.componentViewMode = b.renderFlags.componentViewMode;
  11684. d.handleViewModeChange(this.grid, b, this.componentViewMode)
  11685. }
  11686. d.update(this.grid, this.props, b, this.refs.grid, this.componentViewMode)
  11687. },
  11688. getSkinProperties: function() {
  11689. var b = this.getClasses();
  11690. var c = {
  11691. "": {
  11692. className: a.reduce(b, function(a, b, c) {
  11693. if (b) {
  11694. a += " " + c
  11695. }
  11696. return a
  11697. }, "")
  11698. }
  11699. };
  11700. return c
  11701. },
  11702. componentWillUnmount: function() {
  11703. d.destroy(this.grid)
  11704. }
  11705. }
  11706. });
  11707. define("components/core/svgShapeStylesCollector", ["lodash", "core"], function(a, b) {
  11708. "use strict";
  11709.  
  11710. function c(b, c, d, e) {
  11711. var f = a.get(b, "styleItem.id") || a.get(b, "structure.styleId");
  11712. if (f) {
  11713. e[f] = f
  11714. }
  11715. var g = a.get(b.structure, ["modes", "overrides"]);
  11716. a.forEach(g, function(a) {
  11717. var b = a.styleId;
  11718. if (b && c[b]) {
  11719. e[b] = b
  11720. }
  11721. })
  11722. }
  11723. b.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.svgshape.SvgShape", c);
  11724. b.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.PopupCloseIconButton", c)
  11725. });
  11726. define("components/core/mediaRichTextStylesCollector", ["lodash", "skins", "core"], function(a, b, c) {
  11727. "use strict";
  11728. var d = b.skins;
  11729. c.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.MediaRichText", function(b, c, e, f) {
  11730. var g = /(<img[^>]*wix-comp="([^"]+)"[^>]*>)/g;
  11731. var h;
  11732. while (h = g.exec(b.dataItem.text)) {
  11733. var i = JSON.parse(h[2].replace(/&quot;/g, '"'));
  11734. var j = "";
  11735. if (i.skin && d[i.skin]) {
  11736. j = i.skin
  11737. }
  11738. if (j && !f[j]) {
  11739. f[j] = "s" + a.size(f)
  11740. }
  11741. }
  11742. })
  11743. });
  11744. define("components/core/dialogsStylesCollector", ["lodash", "core"], function(a, b) {
  11745. "use strict";
  11746.  
  11747. function c(b, c, d, e) {
  11748. e.b1 = e.b1 || "s" + a.size(e)
  11749. }
  11750. b.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.dialogs.EnterPasswordDialog", c);
  11751. b.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.dialogs.NotificationDialog", c);
  11752. b.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.dialogs.siteMemberDialogs.MemberLoginDialog", c);
  11753. b.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.dialogs.siteMemberDialogs.RequestPasswordResetDialog", c);
  11754. b.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.dialogs.siteMemberDialogs.ResetPasswordDialog", c);
  11755. b.styleCollector.registerClassBasedStyleCollector("wysiwyg.viewer.components.dialogs.siteMemberDialogs.SignUpDialog", c)
  11756. });
  11757. define("components/core/appControllerStyleCollector", ["lodash", "core"], function(a, b) {
  11758. "use strict";
  11759. var c = "platform.components.skins.controllerIconAndNameSkin";
  11760.  
  11761. function d(b, d, e, f) {
  11762. f[c] = f[c] || "s" + a.size(f)
  11763. }
  11764. b.styleCollector.registerClassBasedStyleCollector("platform.components.AppController", d)
  11765. });
  11766. define("components/behaviors/compBehaviorHandler", ["lodash"], function(a) {
  11767. "use strict";
  11768.  
  11769. function b(b, c, d) {
  11770. var e = c.getSiteAspect("behaviorsAspect");
  11771. a.forEach(b, function(a) {
  11772. e.registerBehavior(a, d.callback)
  11773. });
  11774. c.forceUpdate()
  11775. }
  11776. return {
  11777. handle: b
  11778. }
  11779. });
  11780. define("components/behaviors/compBehaviorsRegistrar", ["core", "components/behaviors/compBehaviorHandler"], function(a, b) {
  11781. "use strict";
  11782. a.behaviorHandlersFactory.registerHandler("comp", b)
  11783. });
  11784. define("components/behaviors/animationBehaviorHandler", ["lodash", "animations", "core"], function(a, b, c) {
  11785. "use strict";
  11786.  
  11787. function d(a, b) {
  11788. c.animationsService.hideElementsByAnimationType(b, [a])
  11789. }
  11790.  
  11791. function e(a, b) {
  11792. c.animationsService.revertHideElementsByAnimations(b, [a])
  11793. }
  11794.  
  11795. function f(d, e, f) {
  11796. var g = f.group || f.action;
  11797. var h = e.getRuntimeDal();
  11798. d = a(d).filter(function(a) {
  11799. var b = h.getCompProps(a.targetId) || {};
  11800. return !b.isHidden && !b.isCollapsed
  11801. }).map(function(c) {
  11802. return a.omit(a.defaultsDeep({}, c, a.find(b.viewerDefaults, {
  11803. name: c.name
  11804. })), "action")
  11805. }).value();
  11806. if (e.getSiteData().isMobileView()) {
  11807. a.defer(function() {
  11808. a.get(f, "callback", a.noop)()
  11809. });
  11810. return
  11811. }
  11812. c.animationsService.playAnimations(e, g, d, true, f.callback || a.noop)
  11813. }
  11814.  
  11815. function g(a, b) {
  11816. return !(b.getSiteData().isMobileDevice() || b.getSiteData().isMobileView())
  11817. }
  11818. return {
  11819. handle: f,
  11820. handlePreCondition: d,
  11821. cancelPreCondition: e,
  11822. isEnabled: g
  11823. }
  11824. });
  11825. define("components/behaviors/animationBehaviorsRegistrar", ["core", "components/behaviors/animationBehaviorHandler"], function(a, b) {
  11826. "use strict";
  11827. a.behaviorHandlersFactory.registerHandler("animation", b)
  11828. });
  11829. define("components", ["fileUploader", "wixSkinOnly", "pinItPinWidget", "siteButton", "popupCloseTextButton", "image", "zoomedImage", "wPhoto", "clipArt", "displayer", "matrixGallery", "wRichText", "paginatedGridGallery", "container", "radioButton", "radioGroup", "headerContainer", "footerContainer", "screenWidthContainer", "documentMedia", "adminLoginButton", "backgroundCommon", "balataCommon", "datePicker", "contactForm", "subscribeForm", "textArea", "video", "loginButton", "googleMap", "mediaContainer", "soundCloudWidget", "paypalButton", "imageButton", "linkBar", "comboBoxInput", "spotifyPlayer", "spotifyFollow", "twitterFeed", "backToTopButton", "svgShape", "facebookLike", "facebookComments", "facebookLikeBox", "rssButton", "textInput", "tinyMenu", "groupContainer", "pinterestPinIt", "pinterestFollow", "wTwitterFollow", "audioPlayer", "column", "htmlComponent", "components/components/imageButtonWithText/imageButtonWithText", "components/components/verticalAnchorsMenu/verticalAnchorsMenu", "components/components/verticalAnchorsMenu/verticalAnchorsMenuItem", "components/components/imageZoom/imageZoom", "components/components/mobileMediaZoom/mobileMediaZoom", "components/components/mobileImageZoomDisplayer/mobileImageZoomDisplayer", "components/components/pageGroup/pageGroup", "components/components/deadComponent/deadComponent", "components/components/erasableTextInput/erasableTextInput", "components/components/galleries/masonry", "components/components/galleries/accordion", "components/components/galleries/impress", "components/components/galleries/freestyle", "components/components/touchMediaZoom/touchMediaZoomSlideshow", "components/components/touchMediaZoom/touchMediaZoomItem", "components/components/galleries/collage", "components/components/galleries/honeycomb", "components/components/galleries/stripShowcase", "components/components/galleries/stripSlideshow", "components/components/galleries/thumbnails", "components/components/galleries/tpa3DGallery", "components/components/galleries/tpa3DCarousel", "components/components/infoTip/infoTip", "components/components/singleAudioPlayer/singleAudioPlayer", "components/components/siteBackground/siteBackground", "components/components/videoBackground/videoBackground", "components/components/inputWithValidation/inputWithValidation", "components/components/flashComponent/flashComponent", "components/components/wixAppsImageButton/wixAppsImageButton", "components/components/messageView/messageView", "components/components/verticalMenu/verticalMenu", "components/components/bgImageStrip/bgImageStrip", "components/components/container/page", "components/components/container/popupContainer", "components/components/container/stripContainer", "components/components/container/stripColumnsContainer", "components/components/colorOption/colorOption", "components/components/mobileColorOption/mobileColorOption", "components/components/dropDownMenu/dropDownMenu", "components/components/facebookShare/facebookShare", "components/components/ebayItemsBySeller/ebayItemsBySeller", "components/components/icon/icon", "components/components/flickrBadgeWidget/flickrBadgeWidget", "components/components/mediaZoom/mediaZoom", "components/components/imageZoomDisplayer/imageZoomDisplayer", "components/components/menuButton/menuButton", "components/components/numericStepper/numericStepper", "components/components/optionsListInput/optionsListInput", "components/components/selectOptionsList/selectOptionsList", "components/components/dialogs/notificationDialog/notificationDialog", "components/components/dialogs/creditsDialog/creditsDialog", "components/components/dialogs/enterPasswordDialog/enterPasswordDialog", "components/components/dialogs/siteMemberDialogs/signUpDialog/signUpDialog", "components/components/dialogs/siteMemberDialogs/memberLoginDialog/memberLoginDialog", "components/components/dialogs/siteMemberDialogs/requestPasswordResetDialog/requestPasswordResetDialog", "components/components/dialogs/siteMemberDialogs/resetPasswordDialog/resetPasswordDialog", "components/components/itunesButton/itunesButton", "components/components/toggle/toggle", "components/components/skypeCallButton/skypeCallButton", "components/components/sliderGallery/sliderGallery", "components/components/slideShowGallery/slideShowGallery", "components/components/textOption/textOption", "components/components/mobileTextOption/mobileTextOption", "components/components/vKShareButton/vKShareButton", "components/components/wGooglePlusOne/wGooglePlusOne", "components/components/mediaRichText/mediaRichText", "components/components/youTubeSubscribeButton/youTubeSubscribeButton", "components/components/wixads/wixAdsDesktop", "components/components/wixads/wixAdsMobile", "components/components/mobileActionsMenu/mobileActionsMenu", "components/components/wTwitterTweet/wTwitterTweet", "components/components/exitMobileModeButton/exitMobileModeButton", "components/components/table/table", "components/components/disqusComments/disqusComments", "components/components/boxSlideShow/boxSlideShow/boxSlideShow", "components/components/boxSlideShowSlide/boxSlideShowSlide", "components/components/boxSlideShow/stripSlideShow/stripSlideShow", "components/components/boxSlideShowSlide/stripSlideShowSlide", "components/components/mobileAppBanner/mobileAppBanner", "components/components/checkbox/checkbox", "components/components/controller/controller", "components/components/grid/gridComponent", "core", "experiment", "components/core/svgShapeStylesCollector", "components/core/mediaRichTextStylesCollector", "components/core/dialogsStylesCollector", "components/core/appControllerStyleCollector", "components/behaviors/compBehaviorsRegistrar", "components/behaviors/animationBehaviorsRegistrar"], function(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, _, aa, ba, ca, da, ea, fa, ga, ha, ia, ja, ka, la, ma, na, oa, pa, qa, ra, sa, ta, ua, va, wa, xa, ya, za, Aa, Ba, Ca, Da, Ea, Fa, Ga, Ha, Ia, Ja, Ka, La, Ma, Na, Oa, Pa, Qa, Ra, Sa, Ta, Ua, Va, Wa, Xa, Ya, Za, $a, _a, ab, bb, cb, db, eb, fb, gb, hb, ib, jb, kb, lb, mb, nb, ob, pb, qb, rb, sb, tb, ub, vb, wb, xb, yb, zb, Ab, Bb, Cb, Db) {
  11830. "use strict";
  11831. var Eb = Cb.compRegistrar.register("wysiwyg.common.components.verticalanchorsmenu.viewer.VerticalAnchorsMenu", ba).register("wysiwyg.common.components.verticalanchorsmenu.viewer.VerticalAnchorsMenuItem", ca).register("wysiwyg.components.imageZoom", da).register("wysiwyg.common.components.backtotopbutton.viewer.BackToTopButton", N).register("wysiwyg.common.components.subscribeform.viewer.SubscribeForm", z).register("wysiwyg.viewer.components.FiveGridLine", b).register("wysiwyg.viewer.components.MobileMediaZoom", ea).register("wysiwyg.components.MobileImageZoomDisplayer", fa).register("wysiwyg.viewer.components.VerticalLine", b).register("wysiwyg.common.components.anchor.viewer.Anchor", b).register("wysiwyg.viewer.components.PageGroup", ga).register("wysiwyg.viewer.components.DeadComponent", ha).register("wysiwyg.viewer.components.WFacebookLike", P).register("wysiwyg.viewer.components.WFacebookComment", Q).register("wysiwyg.viewer.components.inputs.ErasableTextInput", ia).register("tpa.viewer.components.Masonry", ja).register("tpa.viewer.components.Accordion", ka).register("tpa.viewer.components.Impress", la).register("tpa.viewer.components.Freestyle", ma).register("wysiwyg.viewer.components.TouchMediaZoomSlideshow", na).register("wysiwyg.viewer.components.TouchMediaZoomItem", oa).register("tpa.viewer.components.Collage", pa).register("tpa.viewer.components.Honeycomb", qa).register("tpa.viewer.components.StripShowcase", ra).register("tpa.viewer.components.StripSlideshow", sa).register("tpa.viewer.components.Thumbnails", ta).register("wysiwyg.viewer.components.tpapps.TPA3DGallery", ua).register("wysiwyg.viewer.components.tpapps.TPA3DCarousel", va).register("wysiwyg.viewer.components.TwitterFeed", M).register("wysiwyg.common.components.InfoTip", wa).register("core.components.Image", f).register("core.components.ZoomedImage", g).register("wysiwyg.common.components.singleaudioplayer.viewer.SingleAudioPlayer", xa).register("wysiwyg.viewer.components.AudioPlayer", Z).register("wysiwyg.viewer.components.SiteBackground", ya).register("wysiwyg.viewer.components.videoBackground", za).register("wysiwyg.components.viewer.inputs.InputWithValidation", Aa).register("wysiwyg.viewer.components.FlashComponent", Ba).register("wixapps.integration.components.ImageButton", Ca).register("wysiwyg.viewer.components.AdminLoginButton", u).register("wysiwyg.viewer.components.MessageView", Da).register("wysiwyg.common.components.verticalmenu.viewer.VerticalMenu", Ea).register("wysiwyg.common.components.imagebutton.viewer.ImageButton", H).register("wysiwyg.common.components.rssbutton.viewer.RSSButton", S).register("wysiwyg.viewer.components.BgImageStrip", Fa).register("wysiwyg.viewer.components.ContactForm", y).register("wixapps.integration.components.Area", n).register("wysiwyg.viewer.components.VerticalRepeater", n).register("wysiwyg.viewer.components.WSiteStructure", n).register("mobile.core.components.Container", n).register("wysiwyg.viewer.components.Group", V).register("wixapps.integration.components.AppPage", n).register("wysiwyg.viewer.components.HeaderContainer", q).register("wysiwyg.viewer.components.FooterContainer", r).register("wysiwyg.viewer.components.PagesContainer", s).register("wysiwyg.viewer.components.ScreenWidthContainer", s).register("wysiwyg.viewer.components.StripContainer", Ia).register("wysiwyg.viewer.components.StripColumnsContainer", Ja).register("wysiwyg.viewer.components.Column", $).register("wysiwyg.viewer.components.inputs.ColorOption", Ka).register("ecommerce.integration.components.MobileColorOption", La).register("wysiwyg.viewer.components.ClipArt", i).register("wysiwyg.viewer.components.Displayer", j).register("wysiwyg.viewer.components.menus.DropDownMenu", Ma).register("wysiwyg.common.components.facebooklikebox.viewer.FacebookLikeBox", R).register("wysiwyg.viewer.components.FacebookShare", Na).register("wysiwyg.viewer.components.GoogleMap", D).register("wysiwyg.viewer.components.EbayItemsBySeller", Oa).register("wysiwyg.viewer.components.HtmlComponent", _).register("wixapps.integration.components.Icon", Pa).register("wysiwyg.viewer.components.LinkBar", I.linkBar).register("wysiwyg.viewer.components.LinkBarItem", I.linkBarItem).register("wysiwyg.viewer.components.MatrixGallery", k).register("wysiwyg.viewer.components.FlickrBadgeWidget", Qa).register("wysiwyg.viewer.components.PaginatedGridGallery", m).register("wysiwyg.viewer.components.MediaZoom", Ra).register("wysiwyg.components.ImageZoomDisplayer", Sa).register("core.components.MenuButton", Ta).register("wysiwyg.common.components.NumericStepper", Ua).register("wysiwyg.common.components.inputs.OptionsListInput", Va).register("wysiwyg.common.components.inputs.SelectOptionsList", Wa).register("wysiwyg.common.components.pinitpinwidget.viewer.PinItPinWidget", c).register("wysiwyg.common.components.pinterestpinit.viewer.PinterestPinIt", W).register("wysiwyg.viewer.components.PayPalButton", G).register("wysiwyg.viewer.components.SiteButton", d).register("wysiwyg.viewer.components.LoginButton", C).register("wysiwyg.viewer.components.dialogs.NotificationDialog", Xa).register("wysiwyg.viewer.components.dialogs.CreditsDialog", Ya).register("wysiwyg.viewer.components.dialogs.EnterPasswordDialog", Za).register("wysiwyg.viewer.components.dialogs.siteMemberDialogs.SignUpDialog", $a).register("wysiwyg.viewer.components.dialogs.siteMemberDialogs.MemberLoginDialog", _a).register("wysiwyg.viewer.components.dialogs.siteMemberDialogs.RequestPasswordResetDialog", ab).register("wysiwyg.viewer.components.dialogs.siteMemberDialogs.ResetPasswordDialog", bb).register("wysiwyg.viewer.components.ItunesButton", cb).register("wixapps.integration.components.Toggle", db).register("wysiwyg.common.components.skypecallbutton.viewer.SkypeCallButton", eb).register("wysiwyg.viewer.components.SliderGallery", fb).register("wysiwyg.viewer.components.SlideShowGallery", gb).register("wysiwyg.viewer.components.svgshape.SvgShape", O.svgShape).register("wysiwyg.viewer.components.inputs.TextInput", T).register("wixapps.integration.components.inputs.TextArea", A).register("wysiwyg.viewer.components.inputs.TextAreaInput", A).register("wysiwyg.viewer.components.mobile.TinyMenu", U).register("wysiwyg.viewer.components.inputs.TextOption", hb).register("ecommerce.integration.components.MobileTextOption", ib).register("wysiwyg.viewer.components.Video", B).register("wysiwyg.viewer.components.VKShareButton", jb).register("wysiwyg.viewer.components.WGooglePlusOne", kb).register("wysiwyg.viewer.components.WPhoto", h).register("wysiwyg.viewer.components.documentmedia.DocumentMedia", t).register("wysiwyg.viewer.components.WRichText", l).register("wysiwyg.viewer.components.MediaRichText", lb).register("wysiwyg.viewer.components.WTwitterFollow", Y).register("wysiwyg.common.components.youtubesubscribebutton.viewer.YouTubeSubscribeButton", mb).register("wysiwyg.viewer.components.WixAdsDesktop", nb).register("wysiwyg.viewer.components.WixAdsMobile", ob).register("wysiwyg.viewer.components.MobileActionsMenu", pb).register("wysiwyg.common.components.spotifyfollow.viewer.SpotifyFollow", L).register("wysiwyg.common.components.spotifyplayer.viewer.SpotifyPlayer", K).register("wysiwyg.viewer.components.PinterestFollow", X).register("wysiwyg.viewer.components.SoundCloudWidget", F).register("wysiwyg.viewer.components.WTwitterTweet", qb).register("wysiwyg.viewer.components.inputs.ComboBoxInput", J).register("wysiwyg.common.components.exitmobilemode.viewer.ExitMobileMode", rb).register("wysiwyg.viewer.components.Table", sb).register("wysiwyg.common.components.disquscomments.viewer.DisqusComments", tb).register("wysiwyg.viewer.components.background.bgMedia", v.components.bgMedia).register("wysiwyg.viewer.components.background.bgImage", v.components.bgImage).register("wysiwyg.viewer.components.background.bgVideo", v.components.bgVideo).register("wysiwyg.viewer.components.background.bgOverlay", v.components.bgOverlay).register("wysiwyg.viewer.components.BoxSlideShow", ub).register("wysiwyg.viewer.components.BoxSlideShowSlide", vb).register("wysiwyg.viewer.components.StripContainerSlideShow", wb).register("wysiwyg.viewer.components.StripContainerSlideShowSlide", xb).register("wysiwyg.viewer.components.MobileAppBanner", yb).register("wysiwyg.viewer.components.HoverBox", E).register("wysiwyg.viewer.components.inputs.Checkbox", zb).register("wysiwyg.viewer.components.inputs.RadioButton", o).register("wysiwyg.viewer.components.inputs.DatePicker", x.datePicker).register("wysiwyg.viewer.components.Calendar", x.calendar).register("wysiwyg.viewer.components.Month", x.month).register("wysiwyg.viewer.components.Day", x.day).register("wysiwyg.viewer.components.inputs.RadioGroup", p).register("platform.components.AppController", Ab).register("wysiwyg.viewer.components.ImageButtonWithText", aa).register("wysiwyg.viewer.components.background.Balata", w.balata).register("wysiwyg.viewer.components.PopupCloseTextButton", e).register("wysiwyg.viewer.components.PopupCloseIconButton", O.popupCloseIconButton).register("mobile.core.components.Page", Ga).register("wysiwyg.viewer.components.PopupContainer", Ha);
  11832. if (Db.isOpen("sv_grid")) {
  11833. Eb.register("wysiwyg.viewer.components.Grid", Bb)
  11834. }
  11835. if (Db.isOpen("sv_fileUploader")) {
  11836. Eb.register("wysiwyg.viewer.components.inputs.FileUploader", a.fileUploader);
  11837. Eb.register("wysiwyg.viewer.components.inputs.uploadName", a.uploadName)
  11838. }
  11839. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement