Repository: pl12133/react-solitaire Branch: master Commit: a7547a078ef4 Files: 59 Total size: 1.3 MB Directory structure: gitextract_egkjk96b/ ├── .babelrc ├── .eslintrc ├── .gitignore ├── .travis.yml ├── NOTICE.txt ├── README.md ├── index.html ├── lib/ │ └── index.js ├── package.json ├── server.js ├── server.prod.js ├── src/ │ ├── actions/ │ │ ├── cards.js │ │ └── dragdrop.js │ ├── components/ │ │ ├── AceArea/ │ │ │ ├── index.js │ │ │ └── styles/ │ │ │ ├── index.js │ │ │ └── styles.scss │ │ ├── ButtonsPanel/ │ │ │ └── index.js │ │ ├── Card/ │ │ │ ├── index.js │ │ │ └── styles/ │ │ │ ├── index.js │ │ │ └── styles.scss │ │ ├── DealArea/ │ │ │ ├── index.js │ │ │ └── styles/ │ │ │ ├── index.js │ │ │ └── styles.scss │ │ ├── DroppableStack/ │ │ │ ├── index.js │ │ │ └── styles/ │ │ │ ├── index.js │ │ │ └── styles.scss │ │ ├── GameButton/ │ │ │ ├── index.js │ │ │ └── styles/ │ │ │ ├── index.js │ │ │ └── styles.scss │ │ ├── LoadSpinner/ │ │ │ ├── index.js │ │ │ └── styles/ │ │ │ ├── index.js │ │ │ └── styles.scss │ │ ├── LowerArea/ │ │ │ ├── index.js │ │ │ └── styles/ │ │ │ ├── index.js │ │ │ └── styles.scss │ │ └── Table/ │ │ ├── index.js │ │ └── styles/ │ │ ├── index.js │ │ └── styles.scss │ ├── constants/ │ │ └── cardUtils.js │ ├── containers/ │ │ ├── App/ │ │ │ ├── index.js │ │ │ └── styles/ │ │ │ ├── index.js │ │ │ └── styles.scss │ │ └── index.js │ ├── index.js │ ├── reducers/ │ │ ├── cards.js │ │ ├── dragdrop.js │ │ └── index.js │ ├── store/ │ │ └── configureStore.js │ └── tests/ │ ├── .babelrc │ ├── AceArea.spec.js │ ├── Card.spec.js │ ├── DealArea.spec.js │ ├── DroppableStack.spec.js │ ├── Table.spec.js │ ├── boilerplate.js │ ├── compiler.js │ └── index.js └── webpack/ ├── webpack.config.js └── webpack.config.prod.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .babelrc ================================================ { "presets": [ "es2015", "react" ], "plugins": [ "transform-object-rest-spread" ] } ================================================ FILE: .eslintrc ================================================ { "extends": "semistandard", "parser": "babel-eslint", "plugins": [ "react" ], "env": { "browser": true, "mocha": true, "node": true } } ================================================ FILE: .gitignore ================================================ node_modules ================================================ FILE: .travis.yml ================================================ language: node_js node_js: - "5.0.0" script: - npm run lint - npm test ================================================ FILE: NOTICE.txt ================================================ All content Copyright Peter Lenahan 2015, Licensed under Apache 2.0 ================================================ FILE: README.md ================================================ ![build-status](https://travis-ci.org/pl12133/react-solitaire.svg?branch=master) # react-solitaire A game of Solitaire in React React for view, Redux for state, mocha and unexpected-react for testing, Webpack for module bundling, SASS for styles ###### Demo available: [Github Pages](http://pl12133.github.io/react-solitaire/) ## installation Clone git repo: git clone https://github.com/pl12133/react-solitaire/ cd react-solitaire Install: npm install Set HOST and PORT environment variables: export HOST=example.com export PORT=80 Start a local server: npm start Play! ## features ![demo screenshot](http://i.imgur.com/07VQ5DA.png) Mobile friendly interface, card moves are undoable and redoable, tapping a card will automatically move it to the first available stack. ## license All content Copyright Peter Lenahan 2015, Licensed under Apache 2.0 ================================================ FILE: index.html ================================================ React-Redux Solitaire
================================================ FILE: lib/index.js ================================================ !function(I,M){"object"==typeof exports&&"object"==typeof module?module.exports=M():"function"==typeof define&&define.amd?define([],M):"object"==typeof exports?exports["react-solitaire"]=M():I["react-solitaire"]=M()}(this,function(){return function(I){function M(C){if(g[C])return g[C].exports;var N=g[C]={exports:{},id:C,loaded:!1};return I[C].call(N.exports,N,N.exports,M),N.loaded=!0,N.exports}var g={};return M.m=I,M.c=g,M.p="/lib/",M(0)}(function(I){for(var M in I)if(Object.prototype.hasOwnProperty.call(I,M))switch(typeof I[M]){case"function":break;case"object":I[M]=function(M){var g=M.slice(1),C=I[M[0]];return function(I,M,N){C.apply(this,[I,M,N].concat(g))}}(I[M]);break;default:I[M]=I[I[M]]}return I}([function(I,M,g){I.exports=g(1)},function(I,M,g){"use strict";function C(I){return I&&I.__esModule?I:{"default":I}}Object.defineProperty(M,"__esModule",{value:!0}),g(2);var N=g(192),A=C(N),t=g(344),i=C(t),c=g(345),j=g(366),e=C(j),z=g(378),u=C(z),L=(g(477),(0,e["default"])()),D=function(){return A["default"].createElement("div",{style:{height:"100%"}},A["default"].createElement(c.Provider,{store:L},A["default"].createElement(u["default"],null)))},n=document.getElementById("root");n&&i["default"].render(A["default"].createElement(D,null),n),console.log("Runner runner"),M["default"]=D},function(I,M,g){(function(I){"use strict";if(g(3),g(190),I._babelPolyfill)throw new Error("only one instance of babel-polyfill is allowed");I._babelPolyfill=!0}).call(M,function(){return this}())},function(I,M,g){g(4),g(37),g(43),g(45),g(47),g(49),g(51),g(53),g(54),g(55),g(56),g(57),g(58),g(59),g(60),g(61),g(62),g(63),g(64),g(67),g(68),g(69),g(71),g(72),g(73),g(74),g(75),g(76),g(77),g(79),g(80),g(81),g(83),g(84),g(85),g(87),g(88),g(89),g(90),g(91),g(92),g(93),g(94),g(95),g(96),g(97),g(98),g(99),g(100),g(105),g(106),g(110),g(111),g(113),g(114),g(119),g(120),g(123),g(125),g(127),g(129),g(130),g(131),g(133),g(134),g(136),g(137),g(138),g(139),g(146),g(149),g(150),g(152),g(153),g(154),g(155),g(156),g(157),g(158),g(159),g(160),g(161),g(162),g(163),g(165),g(166),g(167),g(168),g(169),g(170),g(172),g(173),g(174),g(175),g(177),g(178),g(180),g(181),g(183),g(184),g(185),g(188),g(189),I.exports=g(8)},function(I,M,g){"use strict";var C,N=g(5),A=g(6),t=g(11),i=g(10),c=g(17),j=g(18),e=g(20),z=g(21),u=g(22),L=g(12),D=g(23),n=g(16),l=g(19),o=g(24),T=g(26),s=g(28),w=g(29),a=g(30),y=g(27),b=g(14)("__proto__"),Z=g(31),m=g(36)(!1),d=Object.prototype,Y=Array.prototype,r=Y.slice,O=Y.join,p=N.setDesc,G=N.getDesc,W=N.setDescs,x={};t||(C=!L(function(){return 7!=p(j("div"),"a",{get:function(){return 7}}).a}),N.setDesc=function(I,M,g){if(C)try{return p(I,M,g)}catch(N){}if("get"in g||"set"in g)throw TypeError("Accessors not supported!");return"value"in g&&(D(I)[M]=g.value),I},N.getDesc=function(I,M){if(C)try{return G(I,M)}catch(g){}return e(I,M)?i(!d.propertyIsEnumerable.call(I,M),I[M]):void 0},N.setDescs=W=function(I,M){D(I);for(var g,C=N.getKeys(M),A=C.length,t=0;A>t;)N.setDesc(I,g=C[t++],M[g]);return I}),A(A.S+A.F*!t,"Object",{getOwnPropertyDescriptor:N.getDesc,defineProperty:N.setDesc,defineProperties:W});var S="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),k=S.concat("length","prototype"),h=S.length,Q=function(){var I,M=j("iframe"),g=h,C=">";for(M.style.display="none",c.appendChild(M),M.src="javascript:",I=M.contentWindow.document,I.open(),I.write("