├── .gitignore
├── .eslintignore
├── src
├── images
│ ├── next.png
│ ├── play.png
│ ├── delete.png
│ ├── online.png
│ ├── pause.png
│ ├── online-s.png
│ ├── playing-s.png
│ └── playing.png
├── pages
│ ├── online
│ │ ├── list
│ │ │ ├── index.wxss
│ │ │ ├── index.wxml
│ │ │ └── index.js
│ │ ├── search
│ │ │ ├── index.wxss
│ │ │ ├── index.wxml
│ │ │ └── index.js
│ │ └── index
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ └── index.xml
│ ├── common
│ │ ├── tab.wxml
│ │ └── list.wxml
│ └── local
│ │ ├── play.wxml
│ │ ├── play.wxss
│ │ └── play.js
├── utils
│ ├── wechat-weapp-redux
│ │ ├── index.js
│ │ ├── Provider.js
│ │ ├── shallowEqual.js
│ │ ├── warning.js
│ │ ├── wrapActionCreators.js
│ │ └── connect.js
│ ├── random-color.js
│ ├── store.js
│ ├── util.js
│ └── api.js
├── app.js
├── actions.js
├── app.json
├── app.less
└── reducers.js
├── dist
├── images
│ ├── next.png
│ ├── pause.png
│ ├── play.png
│ ├── delete.png
│ ├── online-s.png
│ ├── online.png
│ ├── playing.png
│ └── playing-s.png
├── pages
│ ├── online
│ │ ├── list
│ │ │ ├── index.wxss
│ │ │ └── index.wxml
│ │ ├── search
│ │ │ ├── index.wxss
│ │ │ ├── index.wxml
│ │ │ └── index.js
│ │ └── index
│ │ │ ├── index.wxml
│ │ │ ├── index.wxss
│ │ │ └── index.js
│ ├── common
│ │ ├── tab.wxml
│ │ └── list.wxml
│ └── local
│ │ ├── play.wxml
│ │ └── play.wxss
├── npm
│ ├── core-js
│ │ └── library
│ │ │ ├── modules
│ │ │ ├── es6.object.to-string.js
│ │ │ ├── _iterators.js
│ │ │ ├── _library.js
│ │ │ ├── _wks-ext.js
│ │ │ ├── _object-pie.js
│ │ │ ├── _redefine.js
│ │ │ ├── _object-gops.js
│ │ │ ├── _add-to-unscopables.js
│ │ │ ├── es7.symbol.observable.js
│ │ │ ├── es7.symbol.async-iterator.js
│ │ │ ├── _iter-step.js
│ │ │ ├── _cof.js
│ │ │ ├── _core.js
│ │ │ ├── _is-object.js
│ │ │ ├── _has.js
│ │ │ ├── _fails.js
│ │ │ ├── _a-function.js
│ │ │ ├── _html.js
│ │ │ ├── _to-object.js
│ │ │ ├── _is-array.js
│ │ │ ├── _an-object.js
│ │ │ ├── _uid.js
│ │ │ ├── _defined.js
│ │ │ ├── _enum-bug-keys.js
│ │ │ ├── _to-integer.js
│ │ │ ├── es6.object.create.js
│ │ │ ├── _shared-key.js
│ │ │ ├── es6.object.assign.js
│ │ │ ├── es6.object.set-prototype-of.js
│ │ │ ├── _descriptors.js
│ │ │ ├── _ie8-dom-define.js
│ │ │ ├── _property-desc.js
│ │ │ ├── _to-iobject.js
│ │ │ ├── _to-length.js
│ │ │ ├── es6.object.define-property.js
│ │ │ ├── _an-instance.js
│ │ │ ├── _iobject.js
│ │ │ ├── _redefine-all.js
│ │ │ ├── _object-keys.js
│ │ │ ├── _to-index.js
│ │ │ ├── es6.object.keys.js
│ │ │ ├── _shared.js
│ │ │ ├── _create-property.js
│ │ │ ├── _set-to-string-tag.js
│ │ │ ├── _is-array-iter.js
│ │ │ ├── _hide.js
│ │ │ ├── _object-gopn.js
│ │ │ ├── es6.object.get-prototype-of.js
│ │ │ ├── _keyof.js
│ │ │ ├── core.get-iterator-method.js
│ │ │ ├── _dom-create.js
│ │ │ ├── _global.js
│ │ │ ├── _species-constructor.js
│ │ │ ├── _object-sap.js
│ │ │ ├── _iter-call.js
│ │ │ ├── _object-dps.js
│ │ │ ├── _wks.js
│ │ │ ├── _enum-keys.js
│ │ │ ├── _wks-define.js
│ │ │ ├── _object-gpo.js
│ │ │ ├── _set-species.js
│ │ │ ├── _iter-create.js
│ │ │ ├── _ctx.js
│ │ │ ├── es6.string.iterator.js
│ │ │ ├── _object-keys-internal.js
│ │ │ ├── _iter-detect.js
│ │ │ ├── _object-dp.js
│ │ │ ├── _string-at.js
│ │ │ ├── _object-gopd.js
│ │ │ ├── _to-primitive.js
│ │ │ ├── web.dom.iterable.js
│ │ │ ├── _object-gopn-ext.js
│ │ │ ├── _invoke.js
│ │ │ ├── _classof.js
│ │ │ ├── _array-includes.js
│ │ │ ├── _set-proto.js
│ │ │ ├── es6.array.iterator.js
│ │ │ ├── _object-assign.js
│ │ │ ├── _for-of.js
│ │ │ ├── _object-create.js
│ │ │ ├── _meta.js
│ │ │ ├── es6.array.from.js
│ │ │ ├── _microtask.js
│ │ │ ├── _export.js
│ │ │ ├── _task.js
│ │ │ └── _iter-define.js
│ │ │ └── fn
│ │ │ ├── object
│ │ │ ├── keys.js
│ │ │ ├── assign.js
│ │ │ ├── get-prototype-of.js
│ │ │ ├── set-prototype-of.js
│ │ │ ├── create.js
│ │ │ └── define-property.js
│ │ │ ├── array
│ │ │ └── from.js
│ │ │ ├── symbol
│ │ │ ├── iterator.js
│ │ │ └── index.js
│ │ │ └── promise.js
│ ├── symbol-observable
│ │ ├── index.js
│ │ └── lib
│ │ │ ├── ponyfill.js
│ │ │ └── index.js
│ ├── babel-runtime
│ │ ├── regenerator
│ │ │ └── index.js
│ │ ├── core-js
│ │ │ ├── promise.js
│ │ │ ├── symbol.js
│ │ │ ├── array
│ │ │ │ └── from.js
│ │ │ ├── object
│ │ │ │ ├── keys.js
│ │ │ │ ├── assign.js
│ │ │ │ ├── create.js
│ │ │ │ ├── define-property.js
│ │ │ │ ├── get-prototype-of.js
│ │ │ │ └── set-prototype-of.js
│ │ │ └── symbol
│ │ │ │ └── iterator.js
│ │ └── helpers
│ │ │ ├── classCallCheck.js
│ │ │ ├── toConsumableArray.js
│ │ │ ├── possibleConstructorReturn.js
│ │ │ ├── extends.js
│ │ │ ├── createClass.js
│ │ │ ├── asyncToGenerator.js
│ │ │ ├── typeof.js
│ │ │ └── inherits.js
│ ├── lodash
│ │ ├── _Symbol.js
│ │ ├── _getPrototype.js
│ │ ├── _freeGlobal.js
│ │ ├── _root.js
│ │ ├── _overArg.js
│ │ ├── _objectToString.js
│ │ ├── isObjectLike.js
│ │ ├── _baseGetTag.js
│ │ ├── _getRawTag.js
│ │ └── isPlainObject.js
│ ├── labrador
│ │ ├── global.js
│ │ ├── index.js
│ │ ├── prop-types.js
│ │ └── list.js
│ ├── redux-async-await
│ │ └── lib
│ │ │ └── index.js
│ ├── redux-thunk
│ │ └── lib
│ │ │ └── index.js
│ ├── flux-standard-action
│ │ └── lib
│ │ │ └── index.js
│ ├── redux
│ │ └── lib
│ │ │ ├── utils
│ │ │ └── warning.js
│ │ │ ├── compose.js
│ │ │ ├── index.js
│ │ │ ├── bindActionCreators.js
│ │ │ └── applyMiddleware.js
│ ├── redux-logger
│ │ └── lib
│ │ │ ├── helpers.js
│ │ │ ├── defaults.js
│ │ │ ├── diff.js
│ │ │ ├── index.js
│ │ │ └── core.js
│ ├── redux-create-reducer-curry
│ │ └── lib
│ │ │ └── index.js
│ ├── redux-promise
│ │ └── lib
│ │ │ └── index.js
│ ├── regenerator-runtime
│ │ └── runtime-module.js
│ ├── lodash._basefor
│ │ └── index.js
│ ├── lodash.isplainobject
│ │ └── index.js
│ └── lodash.keysin
│ │ └── index.js
├── utils
│ ├── random-color.js
│ ├── wechat-weapp-redux
│ │ ├── index.js
│ │ ├── warning.js
│ │ ├── Provider.js
│ │ ├── shallowEqual.js
│ │ ├── wrapActionCreators.js
│ │ └── connect.js
│ ├── util.js
│ ├── store.js
│ └── api.js
├── app.json
├── app.wxss
├── app.js
├── actions.js
└── reducers.js
├── screenshot
├── 20161001135104.png
├── 20161001135205.png
├── 20161001135243.png
└── 20161001135348.png
├── .babelrc
├── .editorconfig
├── .eslintrc
├── README.md
└── package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | dist/*
2 |
--------------------------------------------------------------------------------
/src/images/next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/src/images/next.png
--------------------------------------------------------------------------------
/src/images/play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/src/images/play.png
--------------------------------------------------------------------------------
/dist/images/next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/dist/images/next.png
--------------------------------------------------------------------------------
/dist/images/pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/dist/images/pause.png
--------------------------------------------------------------------------------
/dist/images/play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/dist/images/play.png
--------------------------------------------------------------------------------
/src/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/src/images/delete.png
--------------------------------------------------------------------------------
/src/images/online.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/src/images/online.png
--------------------------------------------------------------------------------
/src/images/pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/src/images/pause.png
--------------------------------------------------------------------------------
/dist/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/dist/images/delete.png
--------------------------------------------------------------------------------
/dist/images/online-s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/dist/images/online-s.png
--------------------------------------------------------------------------------
/dist/images/online.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/dist/images/online.png
--------------------------------------------------------------------------------
/dist/images/playing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/dist/images/playing.png
--------------------------------------------------------------------------------
/src/images/online-s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/src/images/online-s.png
--------------------------------------------------------------------------------
/src/images/playing-s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/src/images/playing-s.png
--------------------------------------------------------------------------------
/src/images/playing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/src/images/playing.png
--------------------------------------------------------------------------------
/dist/images/playing-s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/dist/images/playing-s.png
--------------------------------------------------------------------------------
/screenshot/20161001135104.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/screenshot/20161001135104.png
--------------------------------------------------------------------------------
/screenshot/20161001135205.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/screenshot/20161001135205.png
--------------------------------------------------------------------------------
/screenshot/20161001135243.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/screenshot/20161001135243.png
--------------------------------------------------------------------------------
/screenshot/20161001135348.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/eyasliu/wechat-app-music/HEAD/screenshot/20161001135348.png
--------------------------------------------------------------------------------
/dist/pages/online/list/index.wxss:
--------------------------------------------------------------------------------
1 | .board image{
2 | width: 100%;
3 | height: 300px;
4 | border-bottom: 1px solid #eee;
5 | }
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/pages/online/list/index.wxss:
--------------------------------------------------------------------------------
1 | .board image{
2 | width: 100%;
3 | height: 300px;
4 | border-bottom: 1px solid #eee;
5 | }
6 |
7 |
8 |
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.object.to-string.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_iterators.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = {};
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_library.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = true;
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_wks-ext.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | exports.f = require('./_wks.js');
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-pie.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | exports.f = {}.propertyIsEnumerable;
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_redefine.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = require('./_hide.js');
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/symbol-observable/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = require('./lib/index.js');
4 |
5 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-gops.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | exports.f = Object.getOwnPropertySymbols;
4 | })(module,require);
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015","stage-0"],
3 | "plugins": ["transform-export-extensions","syntax-export-extensions","transform-runtime"],
4 | "ignore":["node_modules/**/*.js"]
5 | }
6 |
--------------------------------------------------------------------------------
/src/utils/wechat-weapp-redux/index.js:
--------------------------------------------------------------------------------
1 | import Provider from './Provider.js'
2 | import connect from './connect.js'
3 |
4 | module.exports = {
5 | Provider: Provider,
6 | connect: connect
7 | }
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_add-to-unscopables.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = function(){ /* empty */ };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es7.symbol.observable.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('./_wks-define.js')('observable');
4 | })(module,require);
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | end_of_line = lf
5 | charset = utf-8
6 | trim_trailing_whitespace = false
7 | insert_final_newline = true
8 | indent_style = space
9 | indent_size = 2
10 |
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es7.symbol.async-iterator.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('./_wks-define.js')('asyncIterator');
4 | })(module,require);
--------------------------------------------------------------------------------
/src/utils/random-color.js:
--------------------------------------------------------------------------------
1 | function random() {
2 | return parseInt(Math.random() * 256);
3 | }
4 |
5 | export default function randomColor() {
6 | return `rgb(${random()},${random()},${random()})`
7 | }
8 |
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/regenerator/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = require('../../regenerator-runtime/runtime-module.js');
4 |
5 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_iter-step.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = function(done, value){
4 | return {value: value, done: !!done};
5 | };
6 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/promise.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../core-js/library/fn/promise.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/symbol.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../core-js/library/fn/symbol/index.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/array/from.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../../core-js/library/fn/array/from.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/object/keys.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../../core-js/library/fn/object/keys.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/object/assign.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../../core-js/library/fn/object/assign.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/object/create.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../../core-js/library/fn/object/create.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/object/keys.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.object.keys.js');
4 | module.exports = require('../../modules/_core.js').Object.keys;
5 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/symbol/iterator.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../../core-js/library/fn/symbol/iterator.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/object/assign.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.object.assign.js');
4 | module.exports = require('../../modules/_core.js').Object.assign;
5 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_cof.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var toString = {}.toString;
4 |
5 | module.exports = function(it){
6 | return toString.call(it).slice(8, -1);
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_core.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var core = module.exports = {version: '2.4.0'};
4 | if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
5 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_is-object.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = function(it){
4 | return typeof it === 'object' ? it !== null : typeof it === 'function';
5 | };
6 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_has.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var hasOwnProperty = {}.hasOwnProperty;
4 | module.exports = function(it, key){
5 | return hasOwnProperty.call(it, key);
6 | };
7 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/object/define-property.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../../core-js/library/fn/object/define-property.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/object/get-prototype-of.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../../core-js/library/fn/object/get-prototype-of.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/core-js/object/set-prototype-of.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = { "default": require('../../../core-js/library/fn/object/set-prototype-of.js'), __esModule: true };
4 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_fails.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = function(exec){
4 | try {
5 | return !!exec();
6 | } catch(e){
7 | return true;
8 | }
9 | };
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_a-function.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = function(it){
4 | if(typeof it != 'function')throw TypeError(it + ' is not a function!');
5 | return it;
6 | };
7 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_html.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | module.exports = require('./_global.js').document && document.documentElement;
5 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash/_Symbol.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var root = require('./_root.js');
4 |
5 | /** Built-in value references. */
6 | var Symbol = root.Symbol;
7 |
8 | module.exports = Symbol;
9 |
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/object/get-prototype-of.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.object.get-prototype-of.js');
4 | module.exports = require('../../modules/_core.js').Object.getPrototypeOf;
5 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/object/set-prototype-of.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.object.set-prototype-of.js');
4 | module.exports = require('../../modules/_core.js').Object.setPrototypeOf;
5 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_to-object.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 7.1.13 ToObject(argument)
4 | var defined = require('./_defined.js');
5 | module.exports = function(it){
6 | return Object(defined(it));
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/array/from.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.string.iterator.js');
4 | require('../../modules/es6.array.from.js');
5 | module.exports = require('../../modules/_core.js').Array.from;
6 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_is-array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 7.2.2 IsArray(argument)
4 | var cof = require('./_cof.js');
5 | module.exports = Array.isArray || function isArray(arg){
6 | return cof(arg) == 'Array';
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_an-object.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var isObject = require('./_is-object.js');
4 | module.exports = function(it){
5 | if(!isObject(it))throw TypeError(it + ' is not an object!');
6 | return it;
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_uid.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var id = 0
4 | , px = Math.random();
5 | module.exports = function(key){
6 | return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/symbol/iterator.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.string.iterator.js');
4 | require('../../modules/web.dom.iterable.js');
5 | module.exports = require('../../modules/_wks-ext.js').f('iterator');
6 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_defined.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 7.2.1 RequireObjectCoercible(argument)
4 | module.exports = function(it){
5 | if(it == undefined)throw TypeError("Can't call method on " + it);
6 | return it;
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/src/pages/common/tab.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.label}}
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_enum-bug-keys.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // IE 8- don't enum bug keys
4 | module.exports = (
5 | 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
6 | ).split(',');
7 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_to-integer.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 7.1.4 ToInteger
4 | var ceil = Math.ceil
5 | , floor = Math.floor;
6 | module.exports = function(it){
7 | return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
8 | };
9 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.object.create.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var $export = require('./_export.js')
4 | // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
5 | $export($export.S, 'Object', {create: require('./_object-create.js')});
6 | })(module,require);
--------------------------------------------------------------------------------
/dist/pages/common/tab.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.label}}
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/dist/pages/online/search/index.wxss:
--------------------------------------------------------------------------------
1 | .search-area{
2 | background: #f4f4f4;
3 | padding: 1rem 0.5rem;
4 | }
5 |
6 | .search-area input{
7 | background: #fff;
8 | border-radius: 3px;
9 | height: 2rem;
10 | line-height: 2rem;
11 | margin-bottom: 0.5rem;
12 | padding-left: 0.5rem;
13 | font-size: 0.8rem;
14 | }
--------------------------------------------------------------------------------
/src/pages/online/search/index.wxss:
--------------------------------------------------------------------------------
1 | .search-area{
2 | background: #f4f4f4;
3 | padding: 1rem 0.5rem;
4 | }
5 |
6 | .search-area input{
7 | background: #fff;
8 | border-radius: 3px;
9 | height: 2rem;
10 | line-height: 2rem;
11 | margin-bottom: 0.5rem;
12 | padding-left: 0.5rem;
13 | font-size: 0.8rem;
14 | }
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_shared-key.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var shared = require('./_shared.js')('keys')
4 | , uid = require('./_uid.js');
5 | module.exports = function(key){
6 | return shared[key] || (shared[key] = uid(key));
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.object.assign.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.3.1 Object.assign(target, source)
4 | var $export = require('./_export.js');
5 |
6 | $export($export.S + $export.F, 'Object', {assign: require('./_object-assign.js')});
7 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.object.set-prototype-of.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.3.19 Object.setPrototypeOf(O, proto)
4 | var $export = require('./_export.js');
5 | $export($export.S, 'Object', {setPrototypeOf: require('./_set-proto.js').set});
6 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash/_getPrototype.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var overArg = require('./_overArg.js');
4 |
5 | /** Built-in value references. */
6 | var getPrototype = overArg(Object.getPrototypeOf, Object);
7 |
8 | module.exports = getPrototype;
9 |
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/object/create.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.object.create.js');
4 | var $Object = require('../../modules/_core.js').Object;
5 | module.exports = function create(P, D){
6 | return $Object.create(P, D);
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_descriptors.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // Thank's IE8 for his funny defineProperty
4 | module.exports = !require('./_fails.js')(function(){
5 | return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
6 | });
7 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_ie8-dom-define.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = !require('./_descriptors.js') && !require('./_fails.js')(function(){
4 | return Object.defineProperty(require('./_dom-create.js')('div'), 'a', {get: function(){ return 7; }}).a != 7;
5 | });
6 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_property-desc.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = function(bitmap, value){
4 | return {
5 | enumerable : !(bitmap & 1),
6 | configurable: !(bitmap & 2),
7 | writable : !(bitmap & 4),
8 | value : value
9 | };
10 | };
11 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash/_freeGlobal.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../labrador/global.js');
4 | /** Detect free variable `global` from Node.js. */
5 | var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
6 |
7 | module.exports = freeGlobal;
8 |
9 | })(module,require);
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "airbnb",
3 | "env": {
4 | "node": true
5 | },
6 | "globals":{
7 | },
8 | "parser": "babel-eslint",
9 | "rules": {
10 | "prefer-const": 0,
11 | "prefer-template": 0,
12 | "no-param-reassign": 0,
13 | "comma-dangle": [1, "never"],
14 | "spaced-comment": [0, "always"],
15 | "func-names": 0
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/promise.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../modules/es6.object.to-string.js');
4 | require('../modules/es6.string.iterator.js');
5 | require('../modules/web.dom.iterable.js');
6 | require('../modules/es6.promise.js');
7 | module.exports = require('../modules/_core.js').Promise;
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/object/define-property.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.object.define-property.js');
4 | var $Object = require('../../modules/_core.js').Object;
5 | module.exports = function defineProperty(it, key, desc){
6 | return $Object.defineProperty(it, key, desc);
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_to-iobject.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // to indexed object, toObject with fallback for non-array-like ES3 strings
4 | var IObject = require('./_iobject.js')
5 | , defined = require('./_defined.js');
6 | module.exports = function(it){
7 | return IObject(defined(it));
8 | };
9 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_to-length.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 7.1.15 ToLength
4 | var toInteger = require('./_to-integer.js')
5 | , min = Math.min;
6 | module.exports = function(it){
7 | return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
8 | };
9 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.object.define-property.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var $export = require('./_export.js');
4 | // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
5 | $export($export.S + $export.F * !require('./_descriptors.js'), 'Object', {defineProperty: require('./_object-dp.js').f});
6 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/helpers/classCallCheck.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 |
7 | exports.default = function (instance, Constructor) {
8 | if (!(instance instanceof Constructor)) {
9 | throw new TypeError("Cannot call a class as a function");
10 | }
11 | };
12 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_an-instance.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | module.exports = function(it, Constructor, name, forbiddenField){
4 | if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
5 | throw TypeError(name + ': incorrect invocation!');
6 | } return it;
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_iobject.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // fallback for non-array-like ES3 and non-enumerable old V8 strings
4 | var cof = require('./_cof.js');
5 | module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
6 | return cof(it) == 'String' ? it.split('') : Object(it);
7 | };
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_redefine-all.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var hide = require('./_hide.js');
4 | module.exports = function(target, src, safe){
5 | for(var key in src){
6 | if(safe && target[key])target[key] = src[key];
7 | else hide(target, key, src[key]);
8 | } return target;
9 | };
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/fn/symbol/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | require('../../modules/es6.symbol.js');
4 | require('../../modules/es6.object.to-string.js');
5 | require('../../modules/es7.symbol.async-iterator.js');
6 | require('../../modules/es7.symbol.observable.js');
7 | module.exports = require('../../modules/_core.js').Symbol;
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-keys.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.2.14 / 15.2.3.14 Object.keys(O)
4 | var $keys = require('./_object-keys-internal.js')
5 | , enumBugKeys = require('./_enum-bug-keys.js');
6 |
7 | module.exports = Object.keys || function keys(O){
8 | return $keys(O, enumBugKeys);
9 | };
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_to-index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var toInteger = require('./_to-integer.js')
4 | , max = Math.max
5 | , min = Math.min;
6 | module.exports = function(index, length){
7 | index = toInteger(index);
8 | return index < 0 ? max(index + length, 0) : min(index, length);
9 | };
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.object.keys.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.2.14 Object.keys(O)
4 | var toObject = require('./_to-object.js')
5 | , $keys = require('./_object-keys.js');
6 |
7 | require('./_object-sap.js')('keys', function(){
8 | return function keys(it){
9 | return $keys(toObject(it));
10 | };
11 | });
12 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_shared.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | var global = require('./_global.js')
5 | , SHARED = '__core-js_shared__'
6 | , store = global[SHARED] || (global[SHARED] = {});
7 | module.exports = function(key){
8 | return store[key] || (store[key] = {});
9 | };
10 | })(module,require);
--------------------------------------------------------------------------------
/src/utils/store.js:
--------------------------------------------------------------------------------
1 | import {createStore, applyMiddleware, compose} from 'redux'
2 | import thunk from 'redux-thunk'
3 | import asyncAwait from 'redux-async-await'
4 | import logger from 'redux-logger'
5 |
6 | const middlewares = [
7 | asyncAwait,
8 | thunk,
9 | logger(),
10 | ]
11 | export default function createStoreWithMiddleware(...args){
12 | return applyMiddleware(
13 | ...middlewares
14 | )(createStore)(...args)
15 | }
--------------------------------------------------------------------------------
/src/pages/online/index/index.js:
--------------------------------------------------------------------------------
1 | import wx from 'labrador';
2 |
3 | class Index extends wx.Component {
4 | app = getApp()
5 | //事件处理函数
6 | onReady(){
7 | wx.app.dispatch({
8 | type: 'TAB_ACTIVE',
9 | active: 'rank'
10 | })
11 | wx.setNavigationBarTitle({title: "在线音乐"})
12 | }
13 | }
14 | export default wx.app.connect(
15 | state => ({
16 | ranks: state.rank.items,
17 | tab: state.tab
18 | })
19 | )(Index)
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_create-property.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var $defineProperty = require('./_object-dp.js')
4 | , createDesc = require('./_property-desc.js');
5 |
6 | module.exports = function(object, index, value){
7 | if(index in object)$defineProperty.f(object, index, createDesc(0, value));
8 | else object[index] = value;
9 | };
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_set-to-string-tag.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var def = require('./_object-dp.js').f
4 | , has = require('./_has.js')
5 | , TAG = require('./_wks.js')('toStringTag');
6 |
7 | module.exports = function(it, tag, stat){
8 | if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
9 | };
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/random-color.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | Object.defineProperty(exports, "__esModule", {
6 | value: true
7 | });
8 | exports.default = randomColor;
9 | function random() {
10 | return parseInt(Math.random() * 256);
11 | }
12 |
13 | function randomColor() {
14 | return "rgb(" + random() + "," + random() + "," + random() + ")";
15 | }
16 | })(module,require);
--------------------------------------------------------------------------------
/src/pages/local/play.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.title}}
7 | {{item.author}}
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/dist/pages/local/play.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.title}}
7 | {{item.author}}
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_is-array-iter.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // check on default Array iterator
4 | var Iterators = require('./_iterators.js')
5 | , ITERATOR = require('./_wks.js')('iterator')
6 | , ArrayProto = Array.prototype;
7 |
8 | module.exports = function(it){
9 | return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
10 | };
11 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_hide.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var dP = require('./_object-dp.js')
4 | , createDesc = require('./_property-desc.js');
5 | module.exports = require('./_descriptors.js') ? function(object, key, value){
6 | return dP.f(object, key, createDesc(1, value));
7 | } : function(object, key, value){
8 | object[key] = value;
9 | return object;
10 | };
11 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-gopn.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
4 | var $keys = require('./_object-keys-internal.js')
5 | , hiddenKeys = require('./_enum-bug-keys.js').concat('length', 'prototype');
6 |
7 | exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
8 | return $keys(O, hiddenKeys);
9 | };
10 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.object.get-prototype-of.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.2.9 Object.getPrototypeOf(O)
4 | var toObject = require('./_to-object.js')
5 | , $getPrototypeOf = require('./_object-gpo.js');
6 |
7 | require('./_object-sap.js')('getPrototypeOf', function(){
8 | return function getPrototypeOf(it){
9 | return $getPrototypeOf(toObject(it));
10 | };
11 | });
12 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_keyof.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var getKeys = require('./_object-keys.js')
4 | , toIObject = require('./_to-iobject.js');
5 | module.exports = function(object, el){
6 | var O = toIObject(object)
7 | , keys = getKeys(O)
8 | , length = keys.length
9 | , index = 0
10 | , key;
11 | while(length > index)if(O[key = keys[index++]] === el)return key;
12 | };
13 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/core.get-iterator-method.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var classof = require('./_classof.js')
4 | , ITERATOR = require('./_wks.js')('iterator')
5 | , Iterators = require('./_iterators.js');
6 | module.exports = require('./_core.js').getIteratorMethod = function(it){
7 | if(it != undefined)return it[ITERATOR]
8 | || it['@@iterator']
9 | || Iterators[classof(it)];
10 | };
11 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/labrador/global.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * @copyright Maichong Software Ltd. 2016 http://maichong.it
5 | * @date 2016-09-26
6 | * @author Liang
7 | */
8 |
9 | module.exports = {
10 | Array: Array,
11 | Date: Date,
12 | Error: Error,
13 | Function: Function,
14 | Math: Math,
15 | Object: Object,
16 | RegExp: RegExp,
17 | String: String,
18 | TypeError: TypeError
19 | };
20 |
21 | })(module,require);
--------------------------------------------------------------------------------
/src/pages/local/play.wxss:
--------------------------------------------------------------------------------
1 | .playing{
2 |
3 | }
4 | .thumbnail image{
5 | height: 300px;
6 | width: 100%;
7 | }
8 | .title{
9 | text-align: center;
10 | font-size: 1.3rem;
11 | margin-top: 20rpx;
12 | margin-bottom: 20rpx;
13 | }
14 | .author{
15 | text-align: center;
16 | color: #555;
17 | }
18 | .action{
19 | text-align: center;
20 | margin-top: 1rem;
21 |
22 | }
23 | .action image{
24 | width: 200rpx;
25 | height: 200rpx;
26 | }
27 | .action view{
28 | display: inline-block;
29 | margin: 0 15rpx;
30 | }
--------------------------------------------------------------------------------
/dist/npm/lodash/_root.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../labrador/global.js');
4 | var freeGlobal = require('./_freeGlobal.js');
5 |
6 | /** Detect free variable `self`. */
7 | var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
8 |
9 | /** Used as a reference to the global object. */
10 | var root = freeGlobal || freeSelf || Function('return this')();
11 |
12 | module.exports = root;
13 |
14 | })(module,require);
--------------------------------------------------------------------------------
/dist/pages/local/play.wxss:
--------------------------------------------------------------------------------
1 | .playing{
2 |
3 | }
4 | .thumbnail image{
5 | height: 300px;
6 | width: 100%;
7 | }
8 | .title{
9 | text-align: center;
10 | font-size: 1.3rem;
11 | margin-top: 20rpx;
12 | margin-bottom: 20rpx;
13 | }
14 | .author{
15 | text-align: center;
16 | color: #555;
17 | }
18 | .action{
19 | text-align: center;
20 | margin-top: 1rem;
21 |
22 | }
23 | .action image{
24 | width: 200rpx;
25 | height: 200rpx;
26 | }
27 | .action view{
28 | display: inline-block;
29 | margin: 0 15rpx;
30 | }
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_dom-create.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | var isObject = require('./_is-object.js')
5 | , document = require('./_global.js').document
6 | // in old IE typeof document.createElement is 'object'
7 | , is = isObject(document) && isObject(document.createElement);
8 | module.exports = function(it){
9 | return is ? document.createElement(it) : {};
10 | };
11 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_global.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
5 | var global = module.exports = typeof window != 'undefined' && window.Math == Math
6 | ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
7 | if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
8 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_species-constructor.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 7.3.20 SpeciesConstructor(O, defaultConstructor)
4 | var anObject = require('./_an-object.js')
5 | , aFunction = require('./_a-function.js')
6 | , SPECIES = require('./_wks.js')('species');
7 | module.exports = function(O, D){
8 | var C = anObject(O).constructor, S;
9 | return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
10 | };
11 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-sap.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // most Object methods by ES6 should accept primitives
4 | var $export = require('./_export.js')
5 | , core = require('./_core.js')
6 | , fails = require('./_fails.js');
7 | module.exports = function(KEY, exec){
8 | var fn = (core.Object || {})[KEY] || Object[KEY]
9 | , exp = {};
10 | exp[KEY] = exec(fn);
11 | $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
12 | };
13 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/wechat-weapp-redux/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | var _Provider = require('./Provider.js');
5 |
6 | var _Provider2 = _interopRequireDefault(_Provider);
7 |
8 | var _connect = require('./connect.js');
9 |
10 | var _connect2 = _interopRequireDefault(_connect);
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | module.exports = {
15 | Provider: _Provider2.default,
16 | connect: _connect2.default
17 | };
18 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash/_overArg.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * Creates a unary function that invokes `func` with its argument transformed.
5 | *
6 | * @private
7 | * @param {Function} func The function to wrap.
8 | * @param {Function} transform The argument transform.
9 | * @returns {Function} Returns the new function.
10 | */
11 | function overArg(func, transform) {
12 | return function(arg) {
13 | return func(transform(arg));
14 | };
15 | }
16 |
17 | module.exports = overArg;
18 |
19 | })(module,require);
--------------------------------------------------------------------------------
/src/utils/util.js:
--------------------------------------------------------------------------------
1 | var api = require('./api.js');
2 | var playSong = id => {
3 | return new Promise((resolve, reject) => {
4 | api.getDetail(id).then(data => {
5 | var file = data.bitrate
6 | var item = data.songinfo
7 | wx.playBackgroundAudio({
8 | dataUrl: file.file_link,
9 | title: item.title,
10 | coverImgUrl: item.pic_big,
11 | success: (res) => {
12 | resolve({file, item}, res)
13 | },
14 | fail: reject
15 | })
16 | })
17 | })
18 | }
19 |
20 | module.exports = {
21 | playSong
22 | }
23 |
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_iter-call.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // call something on iterator step with safe closing on error
4 | var anObject = require('./_an-object.js');
5 | module.exports = function(iterator, fn, value, entries){
6 | try {
7 | return entries ? fn(anObject(value)[0], value[1]) : fn(value);
8 | // 7.4.6 IteratorClose(iterator, completion)
9 | } catch(e){
10 | var ret = iterator['return'];
11 | if(ret !== undefined)anObject(ret.call(iterator));
12 | throw e;
13 | }
14 | };
15 | })(module,require);
--------------------------------------------------------------------------------
/dist/pages/online/index/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.text}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/pages/online/index/index.less:
--------------------------------------------------------------------------------
1 | /**index.wxss**/
2 | .rank-list{
3 | width: 100%;
4 | /*padding: 0.5rem;*/
5 | }
6 | .rank-item{
7 | width: 100%;
8 | text-align: left;
9 | height: 3rem;
10 | line-height: 3rem;
11 | border-bottom: 1px solid #eee;
12 | position: relative;
13 | }
14 | .rank-item .text{
15 | padding-left: 1rem;
16 | }
17 | .rank-item .arrow{
18 | width: 10px;
19 | height: 10px;
20 | border-top: 2px solid #999;
21 | border-right: 2px solid #999;
22 | /*float: right;*/
23 | position: absolute;
24 | right: 20px;
25 | transform: rotate(45deg);
26 | top: 20px;
27 | }
--------------------------------------------------------------------------------
/src/utils/wechat-weapp-redux/Provider.js:
--------------------------------------------------------------------------------
1 | import warning from './warning.js'
2 |
3 | function checkStoreShape(store) {
4 | const missingMethods = ['subscribe', 'dispatch', 'getState'].filter(m => !store.hasOwnProperty(m));
5 |
6 | if(missingMethods.length > 0) {
7 | warning(
8 | 'Store似乎不是一个合法的Redux Store对象: ' +
9 | '缺少这些方法: ' + missingMethods.join(', ') + '。'
10 | )
11 | }
12 | }
13 |
14 | function Provider(store) {
15 | checkStoreShape(store)
16 | return function(App) {
17 | App.prototype.store = store
18 | return App
19 | }
20 | }
21 |
22 | module.exports = Provider
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-dps.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var dP = require('./_object-dp.js')
4 | , anObject = require('./_an-object.js')
5 | , getKeys = require('./_object-keys.js');
6 |
7 | module.exports = require('./_descriptors.js') ? Object.defineProperties : function defineProperties(O, Properties){
8 | anObject(O);
9 | var keys = getKeys(Properties)
10 | , length = keys.length
11 | , i = 0
12 | , P;
13 | while(length > i)dP.f(O, P = keys[i++], Properties[P]);
14 | return O;
15 | };
16 | })(module,require);
--------------------------------------------------------------------------------
/src/pages/online/index/index.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.text}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_wks.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | var store = require('./_shared.js')('wks')
5 | , uid = require('./_uid.js')
6 | , Symbol = require('./_global.js').Symbol
7 | , USE_SYMBOL = typeof Symbol == 'function';
8 |
9 | var $exports = module.exports = function(name){
10 | return store[name] || (store[name] =
11 | USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
12 | };
13 |
14 | $exports.store = store;
15 | })(module,require);
--------------------------------------------------------------------------------
/dist/pages/online/index/index.wxss:
--------------------------------------------------------------------------------
1 | /**index.wxss**/
2 | .rank-list {
3 | width: 100%;
4 | /*padding: 0.5rem;*/
5 | }
6 | .rank-item {
7 | width: 100%;
8 | text-align: left;
9 | height: 3rem;
10 | line-height: 3rem;
11 | border-bottom: 1px solid #eee;
12 | position: relative;
13 | }
14 | .rank-item .text {
15 | padding-left: 1rem;
16 | }
17 | .rank-item .arrow {
18 | width: 10px;
19 | height: 10px;
20 | border-top: 2px solid #999;
21 | border-right: 2px solid #999;
22 | /*float: right;*/
23 | position: absolute;
24 | right: 20px;
25 | transform: rotate(45deg);
26 | top: 20px;
27 | }
28 |
--------------------------------------------------------------------------------
/src/utils/wechat-weapp-redux/shallowEqual.js:
--------------------------------------------------------------------------------
1 | function shallowEqual(objA, objB) {
2 | if (objA === objB) {
3 | return true
4 | }
5 |
6 | const keysA = Object.keys(objA)
7 | const keysB = Object.keys(objB)
8 |
9 | if (keysA.length !== keysB.length) {
10 | return false
11 | }
12 |
13 | // Test for A's keys different from B.
14 | const hasOwn = Object.prototype.hasOwnProperty
15 | for (let i = 0; i < keysA.length; i++) {
16 | if (!hasOwn.call(objB, keysA[i]) ||
17 | objA[keysA[i]] !== objB[keysA[i]]) {
18 | return false
19 | }
20 | }
21 |
22 | return true
23 | }
24 |
25 | module.exports = shallowEqual
--------------------------------------------------------------------------------
/dist/npm/symbol-observable/lib/ponyfill.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 | exports['default'] = symbolObservablePonyfill;
8 | function symbolObservablePonyfill(root) {
9 | var result;
10 | var _Symbol = root.Symbol;
11 |
12 | if (typeof _Symbol === 'function') {
13 | if (_Symbol.observable) {
14 | result = _Symbol.observable;
15 | } else {
16 | result = _Symbol('observable');
17 | _Symbol.observable = result;
18 | }
19 | } else {
20 | result = '@@observable';
21 | }
22 |
23 | return result;
24 | };
25 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_enum-keys.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // all enumerable object keys, includes symbols
4 | var getKeys = require('./_object-keys.js')
5 | , gOPS = require('./_object-gops.js')
6 | , pIE = require('./_object-pie.js');
7 | module.exports = function(it){
8 | var result = getKeys(it)
9 | , getSymbols = gOPS.f;
10 | if(getSymbols){
11 | var symbols = getSymbols(it)
12 | , isEnum = pIE.f
13 | , i = 0
14 | , key;
15 | while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
16 | } return result;
17 | };
18 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_wks-define.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | var global = require('./_global.js')
5 | , core = require('./_core.js')
6 | , LIBRARY = require('./_library.js')
7 | , wksExt = require('./_wks-ext.js')
8 | , defineProperty = require('./_object-dp.js').f;
9 | module.exports = function(name){
10 | var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
11 | if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
12 | };
13 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-gpo.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
4 | var has = require('./_has.js')
5 | , toObject = require('./_to-object.js')
6 | , IE_PROTO = require('./_shared-key.js')('IE_PROTO')
7 | , ObjectProto = Object.prototype;
8 |
9 | module.exports = Object.getPrototypeOf || function(O){
10 | O = toObject(O);
11 | if(has(O, IE_PROTO))return O[IE_PROTO];
12 | if(typeof O.constructor == 'function' && O instanceof O.constructor){
13 | return O.constructor.prototype;
14 | } return O instanceof Object ? ObjectProto : null;
15 | };
16 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/helpers/toConsumableArray.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 |
7 | var _from = require('../core-js/array/from.js');
8 |
9 | var _from2 = _interopRequireDefault(_from);
10 |
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12 |
13 | exports.default = function (arr) {
14 | if (Array.isArray(arr)) {
15 | for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
16 | arr2[i] = arr[i];
17 | }
18 |
19 | return arr2;
20 | } else {
21 | return (0, _from2.default)(arr);
22 | }
23 | };
24 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_set-species.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | var global = require('./_global.js')
5 | , core = require('./_core.js')
6 | , dP = require('./_object-dp.js')
7 | , DESCRIPTORS = require('./_descriptors.js')
8 | , SPECIES = require('./_wks.js')('species');
9 |
10 | module.exports = function(KEY){
11 | var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
12 | if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
13 | configurable: true,
14 | get: function(){ return this; }
15 | });
16 | };
17 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_iter-create.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var create = require('./_object-create.js')
4 | , descriptor = require('./_property-desc.js')
5 | , setToStringTag = require('./_set-to-string-tag.js')
6 | , IteratorPrototype = {};
7 |
8 | // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
9 | require('./_hide.js')(IteratorPrototype, require('./_wks.js')('iterator'), function(){ return this; });
10 |
11 | module.exports = function(Constructor, NAME, next){
12 | Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
13 | setToStringTag(Constructor, NAME + ' Iterator');
14 | };
15 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_ctx.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // optional / simple context binding
4 | var aFunction = require('./_a-function.js');
5 | module.exports = function(fn, that, length){
6 | aFunction(fn);
7 | if(that === undefined)return fn;
8 | switch(length){
9 | case 1: return function(a){
10 | return fn.call(that, a);
11 | };
12 | case 2: return function(a, b){
13 | return fn.call(that, a, b);
14 | };
15 | case 3: return function(a, b, c){
16 | return fn.call(that, a, b, c);
17 | };
18 | }
19 | return function(/* ...args */){
20 | return fn.apply(that, arguments);
21 | };
22 | };
23 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.string.iterator.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var $at = require('./_string-at.js')(true);
4 |
5 | // 21.1.3.27 String.prototype[@@iterator]()
6 | require('./_iter-define.js')(String, 'String', function(iterated){
7 | this._t = String(iterated); // target
8 | this._i = 0; // next index
9 | // 21.1.5.2.1 %StringIteratorPrototype%.next()
10 | }, function(){
11 | var O = this._t
12 | , index = this._i
13 | , point;
14 | if(index >= O.length)return {value: undefined, done: true};
15 | point = $at(O, index);
16 | this._i += point.length;
17 | return {value: point, done: false};
18 | });
19 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux-async-await/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 | /**
8 | * 处理 promise 的 redux 中间件
9 | * 可处理 es7 的 async/await 语法
10 | * 可处理 原生 promise action
11 | */
12 |
13 | function isPromise(val) {
14 | return val && typeof val.then === 'function';
15 | }
16 |
17 | exports.default = function (_ref) {
18 | var dispatch = _ref.dispatch;
19 | return function (next) {
20 | return function (action) {
21 | return isPromise(action) ? action.then(function (res) {
22 | return dispatch(res);
23 | }) : next(action);
24 | };
25 | };
26 | };
27 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux-thunk/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | exports.__esModule = true;
5 | function createThunkMiddleware(extraArgument) {
6 | return function (_ref) {
7 | var dispatch = _ref.dispatch;
8 | var getState = _ref.getState;
9 | return function (next) {
10 | return function (action) {
11 | if (typeof action === 'function') {
12 | return action(dispatch, getState, extraArgument);
13 | }
14 |
15 | return next(action);
16 | };
17 | };
18 | };
19 | }
20 |
21 | var thunk = createThunkMiddleware();
22 | thunk.withExtraArgument = createThunkMiddleware;
23 |
24 | exports['default'] = thunk;
25 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/helpers/possibleConstructorReturn.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 |
7 | var _typeof2 = require('./typeof.js');
8 |
9 | var _typeof3 = _interopRequireDefault(_typeof2);
10 |
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12 |
13 | exports.default = function (self, call) {
14 | if (!self) {
15 | throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16 | }
17 |
18 | return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
19 | };
20 | })(module,require);
--------------------------------------------------------------------------------
/src/pages/online/list/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 加载中...
23 |
24 |
--------------------------------------------------------------------------------
/dist/pages/online/list/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 加载中...
23 |
24 |
--------------------------------------------------------------------------------
/src/utils/wechat-weapp-redux/warning.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Prints a warning in the console if it exists.
3 | *
4 | * @param {String} message The warning message.
5 | * @returns {void}
6 | */
7 | function warning(message) {
8 | /* eslint-disable no-console */
9 | if (typeof console !== 'undefined' && typeof console.error === 'function') {
10 | console.error(message)
11 | }
12 | /* eslint-enable no-console */
13 | try {
14 | // This error was thrown as a convenience so that if you enable
15 | // "break on all exceptions" in your console,
16 | // it would pause the execution at this line.
17 | throw new Error(message)
18 | /* eslint-disable no-empty */
19 | } catch (e) {}
20 | /* eslint-enable no-empty */
21 | }
22 |
23 | module.exports = warning
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-keys-internal.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var has = require('./_has.js')
4 | , toIObject = require('./_to-iobject.js')
5 | , arrayIndexOf = require('./_array-includes.js')(false)
6 | , IE_PROTO = require('./_shared-key.js')('IE_PROTO');
7 |
8 | module.exports = function(object, names){
9 | var O = toIObject(object)
10 | , i = 0
11 | , result = []
12 | , key;
13 | for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
14 | // Don't enum bug & hidden keys
15 | while(names.length > i)if(has(O, key = names[i++])){
16 | ~arrayIndexOf(result, key) || result.push(key);
17 | }
18 | return result;
19 | };
20 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/helpers/extends.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 |
7 | var _assign = require('../core-js/object/assign.js');
8 |
9 | var _assign2 = _interopRequireDefault(_assign);
10 |
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12 |
13 | exports.default = _assign2.default || function (target) {
14 | for (var i = 1; i < arguments.length; i++) {
15 | var source = arguments[i];
16 |
17 | for (var key in source) {
18 | if (Object.prototype.hasOwnProperty.call(source, key)) {
19 | target[key] = source[key];
20 | }
21 | }
22 | }
23 |
24 | return target;
25 | };
26 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash/_objectToString.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /** Used for built-in method references. */
4 | var objectProto = Object.prototype;
5 |
6 | /**
7 | * Used to resolve the
8 | * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
9 | * of values.
10 | */
11 | var nativeObjectToString = objectProto.toString;
12 |
13 | /**
14 | * Converts `value` to a string using `Object.prototype.toString`.
15 | *
16 | * @private
17 | * @param {*} value The value to convert.
18 | * @returns {string} Returns the converted string.
19 | */
20 | function objectToString(value) {
21 | return nativeObjectToString.call(value);
22 | }
23 |
24 | module.exports = objectToString;
25 |
26 | })(module,require);
--------------------------------------------------------------------------------
/src/app.js:
--------------------------------------------------------------------------------
1 | import wx from 'labrador';
2 | import { sleep } from './utils/util';
3 | import createStore from './utils/store'
4 | import reducers from './reducers'
5 | import connect from './utils/wechat-weapp-redux/connect'
6 | import Provider from './utils/wechat-weapp-redux/Provider'
7 | const store = createStore(reducers)
8 | export default class {
9 | constructor(){
10 | // 音乐播放状态
11 | const setSongStatus = isPlaying => () => {
12 | wx.setStorage({
13 | key: 'isPlaying',
14 | data: isPlaying
15 | })
16 | }
17 | wx.onBackgroundAudioPause(setSongStatus(false))
18 | wx.onBackgroundAudioStop(setSongStatus(false))
19 | wx.onBackgroundAudioPlay(setSongStatus(true))
20 | }
21 | store = store
22 | dispatch = store.dispatch
23 | connect = connect
24 | }
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_iter-detect.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var ITERATOR = require('./_wks.js')('iterator')
4 | , SAFE_CLOSING = false;
5 |
6 | try {
7 | var riter = [7][ITERATOR]();
8 | riter['return'] = function(){ SAFE_CLOSING = true; };
9 | Array.from(riter, function(){ throw 2; });
10 | } catch(e){ /* empty */ }
11 |
12 | module.exports = function(exec, skipClosing){
13 | if(!skipClosing && !SAFE_CLOSING)return false;
14 | var safe = false;
15 | try {
16 | var arr = [7]
17 | , iter = arr[ITERATOR]();
18 | iter.next = function(){ return {done: safe = true}; };
19 | arr[ITERATOR] = function(){ return iter; };
20 | exec(arr);
21 | } catch(e){ /* empty */ }
22 | return safe;
23 | };
24 | })(module,require);
--------------------------------------------------------------------------------
/src/actions.js:
--------------------------------------------------------------------------------
1 | import api from './utils/api.js';
2 |
3 | export async function getRankList(type, paged){
4 | // return api.getOnline(type, paged).then(data => ({
5 | // type: paged > 1 ? 'LIST_APPEND' : 'RANK_UPDATE',
6 | // payload: {
7 | // board: data.billboard,
8 | // list: data.song_list
9 | // }
10 | // }))
11 | const {song_list: songlist, billboard: board} = await api.getOnline(type, paged)
12 | return {
13 | type: paged > 1 ? 'LIST_APPEND' : 'RANK_UPDATE',
14 | data: {board, songlist}
15 | }
16 | }
17 |
18 | export async function searchList(keyword){
19 | const {song: songlist} = await api.search(keyword)
20 | return {
21 | type: 'SEARCH',
22 | songlist
23 | }
24 | }
25 |
26 | export function playing(data){
27 | return {
28 | type: "UPDATE_PLAY",
29 | ...data
30 | }
31 | }
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-dp.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var anObject = require('./_an-object.js')
4 | , IE8_DOM_DEFINE = require('./_ie8-dom-define.js')
5 | , toPrimitive = require('./_to-primitive.js')
6 | , dP = Object.defineProperty;
7 |
8 | exports.f = require('./_descriptors.js') ? Object.defineProperty : function defineProperty(O, P, Attributes){
9 | anObject(O);
10 | P = toPrimitive(P, true);
11 | anObject(Attributes);
12 | if(IE8_DOM_DEFINE)try {
13 | return dP(O, P, Attributes);
14 | } catch(e){ /* empty */ }
15 | if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
16 | if('value' in Attributes)O[P] = Attributes.value;
17 | return O;
18 | };
19 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_string-at.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var toInteger = require('./_to-integer.js')
4 | , defined = require('./_defined.js');
5 | // true -> String#at
6 | // false -> String#codePointAt
7 | module.exports = function(TO_STRING){
8 | return function(that, pos){
9 | var s = String(defined(that))
10 | , i = toInteger(pos)
11 | , l = s.length
12 | , a, b;
13 | if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
14 | a = s.charCodeAt(i);
15 | return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
16 | ? TO_STRING ? s.charAt(i) : a
17 | : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
18 | };
19 | };
20 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-gopd.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var pIE = require('./_object-pie.js')
4 | , createDesc = require('./_property-desc.js')
5 | , toIObject = require('./_to-iobject.js')
6 | , toPrimitive = require('./_to-primitive.js')
7 | , has = require('./_has.js')
8 | , IE8_DOM_DEFINE = require('./_ie8-dom-define.js')
9 | , gOPD = Object.getOwnPropertyDescriptor;
10 |
11 | exports.f = require('./_descriptors.js') ? gOPD : function getOwnPropertyDescriptor(O, P){
12 | O = toIObject(O);
13 | P = toPrimitive(P, true);
14 | if(IE8_DOM_DEFINE)try {
15 | return gOPD(O, P);
16 | } catch(e){ /* empty */ }
17 | if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
18 | };
19 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_to-primitive.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 7.1.1 ToPrimitive(input [, PreferredType])
4 | var isObject = require('./_is-object.js');
5 | // instead of the ES6 spec version, we didn't implement @@toPrimitive case
6 | // and the second argument - flag - preferred type is a string
7 | module.exports = function(it, S){
8 | if(!isObject(it))return it;
9 | var fn, val;
10 | if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
11 | if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
12 | if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
13 | throw TypeError("Can't convert object to primitive value");
14 | };
15 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/web.dom.iterable.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | require('./es6.array.iterator.js');
5 | var global = require('./_global.js')
6 | , hide = require('./_hide.js')
7 | , Iterators = require('./_iterators.js')
8 | , TO_STRING_TAG = require('./_wks.js')('toStringTag');
9 |
10 | for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
11 | var NAME = collections[i]
12 | , Collection = global[NAME]
13 | , proto = Collection && Collection.prototype;
14 | if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
15 | Iterators[NAME] = Iterators.Array;
16 | }
17 | })(module,require);
--------------------------------------------------------------------------------
/src/pages/online/search/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | {{toast.text}}
23 |
24 |
25 |
--------------------------------------------------------------------------------
/dist/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "pages":[
3 | "pages/online/index/index",
4 | "pages/online/list/index",
5 | "pages/online/search/index",
6 | "pages/local/play"
7 | ],
8 | "window":{
9 | "backgroundTextStyle":"light",
10 | "navigationBarBackgroundColor": "#fff",
11 | "navigationBarTitleText": "音乐播放器",
12 | "navigationBarTextStyle":"black"
13 | },
14 | "tabBar": {
15 | "borderStyle": "white",
16 | "list": [{
17 | "pagePath": "pages/online/index/index",
18 | "text": "在线音乐",
19 | "iconPath":"images/online.png",
20 | "selectedIconPath":"images/online-s.png"
21 | }, {
22 | "pagePath": "pages/local/play",
23 | "text": "正在播放",
24 | "iconPath":"images/playing.png",
25 | "selectedIconPath":"images/playing-s.png"
26 | }]
27 | },
28 | "debug": false
29 | }
30 |
--------------------------------------------------------------------------------
/dist/pages/online/search/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | {{toast.text}}
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "pages":[
3 | "pages/online/index/index",
4 | "pages/online/list/index",
5 | "pages/online/search/index",
6 | "pages/local/play"
7 | ],
8 | "window":{
9 | "backgroundTextStyle":"light",
10 | "navigationBarBackgroundColor": "#fff",
11 | "navigationBarTitleText": "音乐播放器",
12 | "navigationBarTextStyle":"black"
13 | },
14 | "tabBar": {
15 | "borderStyle": "white",
16 | "list": [{
17 | "pagePath": "pages/online/index/index",
18 | "text": "在线音乐",
19 | "iconPath":"images/online.png",
20 | "selectedIconPath":"images/online-s.png"
21 | }, {
22 | "pagePath": "pages/local/play",
23 | "text": "正在播放",
24 | "iconPath":"images/playing.png",
25 | "selectedIconPath":"images/playing-s.png"
26 | }]
27 | },
28 | "debug": false
29 | }
30 |
--------------------------------------------------------------------------------
/dist/npm/lodash/isObjectLike.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * Checks if `value` is object-like. A value is object-like if it's not `null`
5 | * and has a `typeof` result of "object".
6 | *
7 | * @static
8 | * @memberOf _
9 | * @since 4.0.0
10 | * @category Lang
11 | * @param {*} value The value to check.
12 | * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
13 | * @example
14 | *
15 | * _.isObjectLike({});
16 | * // => true
17 | *
18 | * _.isObjectLike([1, 2, 3]);
19 | * // => true
20 | *
21 | * _.isObjectLike(_.noop);
22 | * // => false
23 | *
24 | * _.isObjectLike(null);
25 | * // => false
26 | */
27 | function isObjectLike(value) {
28 | return value != null && typeof value == 'object';
29 | }
30 |
31 | module.exports = isObjectLike;
32 |
33 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/wechat-weapp-redux/warning.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | /**
5 | * Prints a warning in the console if it exists.
6 | *
7 | * @param {String} message The warning message.
8 | * @returns {void}
9 | */
10 | function warning(message) {
11 | /* eslint-disable no-console */
12 | if (typeof console !== 'undefined' && typeof console.error === 'function') {
13 | console.error(message);
14 | }
15 | /* eslint-enable no-console */
16 | try {
17 | // This error was thrown as a convenience so that if you enable
18 | // "break on all exceptions" in your console,
19 | // it would pause the execution at this line.
20 | throw new Error(message);
21 | /* eslint-disable no-empty */
22 | } catch (e) {}
23 | /* eslint-enable no-empty */
24 | }
25 |
26 | module.exports = warning;
27 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-gopn-ext.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
5 | var toIObject = require('./_to-iobject.js')
6 | , gOPN = require('./_object-gopn.js').f
7 | , toString = {}.toString;
8 |
9 | var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
10 | ? Object.getOwnPropertyNames(window) : [];
11 |
12 | var getWindowNames = function(it){
13 | try {
14 | return gOPN(it);
15 | } catch(e){
16 | return windowNames.slice();
17 | }
18 | };
19 |
20 | module.exports.f = function getOwnPropertyNames(it){
21 | return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
22 | };
23 |
24 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_invoke.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // fast apply, http://jsperf.lnkit.com/fast-apply/5
4 | module.exports = function(fn, args, that){
5 | var un = that === undefined;
6 | switch(args.length){
7 | case 0: return un ? fn()
8 | : fn.call(that);
9 | case 1: return un ? fn(args[0])
10 | : fn.call(that, args[0]);
11 | case 2: return un ? fn(args[0], args[1])
12 | : fn.call(that, args[0], args[1]);
13 | case 3: return un ? fn(args[0], args[1], args[2])
14 | : fn.call(that, args[0], args[1], args[2]);
15 | case 4: return un ? fn(args[0], args[1], args[2], args[3])
16 | : fn.call(that, args[0], args[1], args[2], args[3]);
17 | } return fn.apply(that, args);
18 | };
19 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/flux-standard-action/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | exports.__esModule = true;
5 | exports.isFSA = isFSA;
6 | exports.isError = isError;
7 |
8 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
9 |
10 | var _lodashIsplainobject = require('../../lodash.isplainobject/index.js');
11 |
12 | var _lodashIsplainobject2 = _interopRequireDefault(_lodashIsplainobject);
13 |
14 | var validKeys = ['type', 'payload', 'error', 'meta'];
15 |
16 | function isValidKey(key) {
17 | return validKeys.indexOf(key) > -1;
18 | }
19 |
20 | function isFSA(action) {
21 | return _lodashIsplainobject2['default'](action) && typeof action.type !== 'undefined' && Object.keys(action).every(isValidKey);
22 | }
23 |
24 | function isError(action) {
25 | return action.error === true;
26 | }
27 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux/lib/utils/warning.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | exports.__esModule = true;
5 | exports['default'] = warning;
6 | /**
7 | * Prints a warning in the console if it exists.
8 | *
9 | * @param {String} message The warning message.
10 | * @returns {void}
11 | */
12 | function warning(message) {
13 | /* eslint-disable no-console */
14 | if (typeof console !== 'undefined' && typeof console.error === 'function') {
15 | console.error(message);
16 | }
17 | /* eslint-enable no-console */
18 | try {
19 | // This error was thrown as a convenience so that if you enable
20 | // "break on all exceptions" in your console,
21 | // it would pause the execution at this line.
22 | throw new Error(message);
23 | /* eslint-disable no-empty */
24 | } catch (e) {}
25 | /* eslint-enable no-empty */
26 | }
27 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/wechat-weapp-redux/Provider.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | var _warning = require('./warning.js');
5 |
6 | var _warning2 = _interopRequireDefault(_warning);
7 |
8 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9 |
10 | function checkStoreShape(store) {
11 | var missingMethods = ['subscribe', 'dispatch', 'getState'].filter(function (m) {
12 | return !store.hasOwnProperty(m);
13 | });
14 |
15 | if (missingMethods.length > 0) {
16 | (0, _warning2.default)('Store似乎不是一个合法的Redux Store对象: ' + '缺少这些方法: ' + missingMethods.join(', ') + '。');
17 | }
18 | }
19 |
20 | function Provider(store) {
21 | checkStoreShape(store);
22 | return function (App) {
23 | App.prototype.store = store;
24 | return App;
25 | };
26 | }
27 |
28 | module.exports = Provider;
29 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_classof.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // getting tag from 19.1.3.6 Object.prototype.toString()
4 | var cof = require('./_cof.js')
5 | , TAG = require('./_wks.js')('toStringTag')
6 | // ES3 wrong here
7 | , ARG = cof(function(){ return arguments; }()) == 'Arguments';
8 |
9 | // fallback for IE11 Script Access Denied error
10 | var tryGet = function(it, key){
11 | try {
12 | return it[key];
13 | } catch(e){ /* empty */ }
14 | };
15 |
16 | module.exports = function(it){
17 | var O, T, B;
18 | return it === undefined ? 'Undefined' : it === null ? 'Null'
19 | // @@toStringTag case
20 | : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
21 | // builtinTag case
22 | : ARG ? cof(O)
23 | // ES3 arguments fallback
24 | : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
25 | };
26 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux-logger/lib/helpers.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | Object.defineProperty(exports, "__esModule", {
6 | value: true
7 | });
8 | var repeat = exports.repeat = function repeat(str, times) {
9 | return new Array(times + 1).join(str);
10 | };
11 |
12 | var pad = exports.pad = function pad(num, maxLength) {
13 | return repeat("0", maxLength - num.toString().length) + num;
14 | };
15 |
16 | var formatTime = exports.formatTime = function formatTime(time) {
17 | return pad(time.getHours(), 2) + ":" + pad(time.getMinutes(), 2) + ":" + pad(time.getSeconds(), 2) + "." + pad(time.getMilliseconds(), 3);
18 | };
19 |
20 | // Use performance API if it's available in order to get better precision
21 | var timer = exports.timer = typeof performance !== "undefined" && performance !== null && typeof performance.now === "function" ? performance : Date;
22 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/symbol-observable/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../labrador/global.js');
4 |
5 | Object.defineProperty(exports, "__esModule", {
6 | value: true
7 | });
8 |
9 | var _ponyfill = require('./ponyfill.js');
10 |
11 | var _ponyfill2 = _interopRequireDefault(_ponyfill);
12 |
13 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
14 |
15 | var root; /* global window */
16 |
17 |
18 | if (typeof self !== 'undefined') {
19 | root = self;
20 | } else if (typeof window !== 'undefined') {
21 | root = window;
22 | } else if (typeof global !== 'undefined') {
23 | root = global;
24 | } else if (typeof module !== 'undefined') {
25 | root = module;
26 | } else {
27 | root = Function('return this')();
28 | }
29 |
30 | var result = (0, _ponyfill2['default'])(root);
31 | exports['default'] = result;
32 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/util.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | var _promise = require('../npm/babel-runtime/core-js/promise.js');
5 |
6 | var _promise2 = _interopRequireDefault(_promise);
7 |
8 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9 |
10 | var api = require('./api.js');
11 | var playSong = function playSong(id) {
12 | return new _promise2.default(function (resolve, reject) {
13 | api.getDetail(id).then(function (data) {
14 | var file = data.bitrate;
15 | var item = data.songinfo;
16 | wx.playBackgroundAudio({
17 | dataUrl: file.file_link,
18 | title: item.title,
19 | coverImgUrl: item.pic_big,
20 | success: function success(res) {
21 | resolve({ file: file, item: item }, res);
22 | },
23 | fail: reject
24 | });
25 | });
26 | });
27 | };
28 |
29 | module.exports = {
30 | playSong: playSong
31 | };
32 | })(module,require);
--------------------------------------------------------------------------------
/src/pages/online/list/index.js:
--------------------------------------------------------------------------------
1 | import wx from 'labrador';
2 | import {getRankList} from '../../../actions';
3 |
4 | class List extends wx.Component{
5 | app = getApp()
6 | data = {
7 | paged: 1,
8 | loading: false
9 | }
10 | onReady(){
11 | wx.setNavigationBarTitle({title: "在线音乐"})
12 | }
13 | loading(text) {
14 | this.setData({loading: text})
15 | }
16 | async onLoad(option) {
17 | this.loading(true);
18 | const data = await wx.app.dispatch(getRankList(option.type, 1))
19 |
20 | this.setData({
21 | type: option.type,
22 | paged: 1,
23 | loading: false
24 | })
25 | }
26 | async nextpage(e){
27 | var paged = this.data.paged + 1;
28 | this.loading(true)
29 | await wx.app.dispatch(getRankList(this.data.type, paged))
30 | this.setData({
31 | paged: paged,
32 | loading: false
33 | })
34 | }
35 | }
36 | export default wx.app.connect(
37 | state => ({
38 | ...state.rank,
39 | tab: state.tab
40 | })
41 | )(List)
--------------------------------------------------------------------------------
/dist/npm/redux-create-reducer-curry/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | Object.defineProperty(exports, "__esModule", {
6 | value: true
7 | });
8 | exports.default = createReducer;
9 | /**
10 | * 创建高效率,安全,可读性好的redux reducer
11 | * @param {obj} initState 初始state
12 | * @param {obj} actions 操作
13 | * @return {reducer} redux可使用的reducer
14 | */
15 | function createReducer() {
16 | var initState = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
17 |
18 | return function () {
19 | var actions = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
20 | return function () {
21 | var state = arguments.length <= 0 || arguments[0] === undefined ? initState : arguments[0];
22 | var action = arguments[1];
23 | return actions.hasOwnProperty(action.type) ? actions[action.type].apply(undefined, [state, action]) : state;
24 | };
25 | };
26 | }
27 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/wechat-weapp-redux/shallowEqual.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | var _keys = require('../../npm/babel-runtime/core-js/object/keys.js');
6 |
7 | var _keys2 = _interopRequireDefault(_keys);
8 |
9 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10 |
11 | function shallowEqual(objA, objB) {
12 | if (objA === objB) {
13 | return true;
14 | }
15 |
16 | var keysA = (0, _keys2.default)(objA);
17 | var keysB = (0, _keys2.default)(objB);
18 |
19 | if (keysA.length !== keysB.length) {
20 | return false;
21 | }
22 |
23 | // Test for A's keys different from B.
24 | var hasOwn = Object.prototype.hasOwnProperty;
25 | for (var i = 0; i < keysA.length; i++) {
26 | if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
27 | return false;
28 | }
29 | }
30 |
31 | return true;
32 | }
33 |
34 | module.exports = shallowEqual;
35 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_array-includes.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // false -> Array#indexOf
4 | // true -> Array#includes
5 | var toIObject = require('./_to-iobject.js')
6 | , toLength = require('./_to-length.js')
7 | , toIndex = require('./_to-index.js');
8 | module.exports = function(IS_INCLUDES){
9 | return function($this, el, fromIndex){
10 | var O = toIObject($this)
11 | , length = toLength(O.length)
12 | , index = toIndex(fromIndex, length)
13 | , value;
14 | // Array#includes uses SameValueZero equality algorithm
15 | if(IS_INCLUDES && el != el)while(length > index){
16 | value = O[index++];
17 | if(value != value)return true;
18 | // Array#toIndex ignores holes, Array#includes - not
19 | } else for(;length > index; index++)if(IS_INCLUDES || index in O){
20 | if(O[index] === el)return IS_INCLUDES || index || 0;
21 | } return !IS_INCLUDES && -1;
22 | };
23 | };
24 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash/_baseGetTag.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var Symbol = require('./_Symbol.js'),
4 | getRawTag = require('./_getRawTag.js'),
5 | objectToString = require('./_objectToString.js');
6 |
7 | /** `Object#toString` result references. */
8 | var nullTag = '[object Null]',
9 | undefinedTag = '[object Undefined]';
10 |
11 | /** Built-in value references. */
12 | var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
13 |
14 | /**
15 | * The base implementation of `getTag` without fallbacks for buggy environments.
16 | *
17 | * @private
18 | * @param {*} value The value to query.
19 | * @returns {string} Returns the `toStringTag`.
20 | */
21 | function baseGetTag(value) {
22 | if (value == null) {
23 | return value === undefined ? undefinedTag : nullTag;
24 | }
25 | value = Object(value);
26 | return (symToStringTag && symToStringTag in value)
27 | ? getRawTag(value)
28 | : objectToString(value);
29 | }
30 |
31 | module.exports = baseGetTag;
32 |
33 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/store.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 | exports.default = createStoreWithMiddleware;
8 |
9 | var _redux = require('../npm/redux/lib/index.js');
10 |
11 | var _reduxThunk = require('../npm/redux-thunk/lib/index.js');
12 |
13 | var _reduxThunk2 = _interopRequireDefault(_reduxThunk);
14 |
15 | var _reduxAsyncAwait = require('../npm/redux-async-await/lib/index.js');
16 |
17 | var _reduxAsyncAwait2 = _interopRequireDefault(_reduxAsyncAwait);
18 |
19 | var _reduxLogger = require('../npm/redux-logger/lib/index.js');
20 |
21 | var _reduxLogger2 = _interopRequireDefault(_reduxLogger);
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24 |
25 | var middlewares = [_reduxAsyncAwait2.default, _reduxThunk2.default, (0, _reduxLogger2.default)()];
26 | function createStoreWithMiddleware() {
27 | return _redux.applyMiddleware.apply(undefined, middlewares)(_redux.createStore).apply(undefined, arguments);
28 | }
29 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_set-proto.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // Works with __proto__ only. Old v8 can't work with null proto objects.
4 | /* eslint-disable no-proto */
5 | var isObject = require('./_is-object.js')
6 | , anObject = require('./_an-object.js');
7 | var check = function(O, proto){
8 | anObject(O);
9 | if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
10 | };
11 | module.exports = {
12 | set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
13 | function(test, buggy, set){
14 | try {
15 | set = require('./_ctx.js')(Function.call, require('./_object-gopd.js').f(Object.prototype, '__proto__').set, 2);
16 | set(test, []);
17 | buggy = !(test instanceof Array);
18 | } catch(e){ buggy = true; }
19 | return function setPrototypeOf(O, proto){
20 | check(O, proto);
21 | if(buggy)O.__proto__ = proto;
22 | else set(O, proto);
23 | return O;
24 | };
25 | }({}, false) : undefined),
26 | check: check
27 | };
28 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/helpers/createClass.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 |
7 | var _defineProperty = require('../core-js/object/define-property.js');
8 |
9 | var _defineProperty2 = _interopRequireDefault(_defineProperty);
10 |
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12 |
13 | exports.default = function () {
14 | function defineProperties(target, props) {
15 | for (var i = 0; i < props.length; i++) {
16 | var descriptor = props[i];
17 | descriptor.enumerable = descriptor.enumerable || false;
18 | descriptor.configurable = true;
19 | if ("value" in descriptor) descriptor.writable = true;
20 | (0, _defineProperty2.default)(target, descriptor.key, descriptor);
21 | }
22 | }
23 |
24 | return function (Constructor, protoProps, staticProps) {
25 | if (protoProps) defineProperties(Constructor.prototype, protoProps);
26 | if (staticProps) defineProperties(Constructor, staticProps);
27 | return Constructor;
28 | };
29 | }();
30 | })(module,require);
--------------------------------------------------------------------------------
/dist/pages/common/list.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.title}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {{item.title}}
15 | {{item.author}} - {{item.style}}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | {{item.songname}}
25 | {{item.artistname}}
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/pages/common/list.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.title}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {{item.title}}
15 | {{item.author}} - {{item.style}}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | {{item.songname}}
25 | {{item.artistname}}
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/pages/online/search/index.js:
--------------------------------------------------------------------------------
1 | import wx from 'labrador';
2 | import {searchList} from '../../../actions'
3 |
4 | //index.js
5 | //获取应用实例
6 | class Search extends wx.Component{
7 | app = getApp()
8 |
9 | showToast(text, type = 'success'){
10 | this.setData({
11 | toast: {
12 | text, type
13 | }
14 | })
15 | setTimeout(() => {
16 | this.setData({
17 | toast: ''
18 | })
19 | }, 3000);
20 | }
21 | inputing(e){
22 | this.setData({
23 | search: Object.assign(this.data.search, {value: e.detail.value})
24 | })
25 | }
26 | bindSearch(e){
27 | var keyword = this.data.search.value
28 | if(!keyword) {
29 | this.showToast('请输入关键字', 'warn')
30 | return;
31 | }
32 | wx.app.dispatch(searchList(keyword))
33 | }
34 | onReady(){
35 | wx.setNavigationBarTitle({title: "在线搜索"})
36 | wx.app.dispatch({
37 | type: 'TAB_ACTIVE',
38 | active: 'search'
39 | })
40 | }
41 | }
42 |
43 | export default wx.app.connect(
44 | state => ({
45 | list: state.search.list,
46 | tab: state.tab,
47 | search: {
48 | value: ""
49 | },
50 | isEnd: false
51 | })
52 | )(Search)
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/helpers/asyncToGenerator.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 |
7 | var _promise = require('../core-js/promise.js');
8 |
9 | var _promise2 = _interopRequireDefault(_promise);
10 |
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12 |
13 | exports.default = function (fn) {
14 | return function () {
15 | var gen = fn.apply(this, arguments);
16 | return new _promise2.default(function (resolve, reject) {
17 | function step(key, arg) {
18 | try {
19 | var info = gen[key](arg);
20 | var value = info.value;
21 | } catch (error) {
22 | reject(error);
23 | return;
24 | }
25 |
26 | if (info.done) {
27 | resolve(value);
28 | } else {
29 | return _promise2.default.resolve(value).then(function (value) {
30 | step("next", value);
31 | }, function (err) {
32 | step("throw", err);
33 | });
34 | }
35 | }
36 |
37 | return step("next");
38 | });
39 | };
40 | };
41 | })(module,require);
--------------------------------------------------------------------------------
/src/app.less:
--------------------------------------------------------------------------------
1 | /**app.wxss**/
2 | .container {
3 | min-height: 100%;
4 | font-family: 'microsoft yahei';
5 | }
6 | scroll-view.container{
7 | height: 100vh;
8 | }
9 | .tab{
10 | width: 100%;
11 | border-bottom: 1px solid #eee;
12 | text-align: center;
13 | line-height: 2rem;
14 | }
15 | .tab view{
16 | display: inline-block;
17 | width: 372rpx;
18 | }
19 | .tab view.active{
20 | color: #3eb94e;
21 | border-bottom: 2px solid #3eb94e;
22 | }
23 |
24 | /* song list item */
25 | .songlist{
26 |
27 | width: 100%;
28 | overflow-x: hidden;
29 | overflow-y: visible;
30 | font-size: 0.8rem;
31 | }
32 | .songitem, .songitem-mini{
33 | height: 3rem;
34 | line-height: 1.5rem;
35 | display: flex;
36 | border-bottom: 1px solid #eee;
37 | padding: 10rpx 0;
38 | width: 100%;
39 | }
40 | .songitem:active, .songitem-mini:active{
41 | background: #eee;
42 | }
43 |
44 | .song-play{
45 | width: 10%;
46 | text-align: center;
47 | vertical-align: middle;
48 | }
49 | .song-play image{
50 | line-height: 3rem;
51 | width: 50rpx;
52 | height: 50rpx;
53 | padding-top: 13px;
54 | }
55 | .song-detail{
56 | white-space: nowrap;
57 | width: 90%;
58 | }
59 | .song-title{
60 | font-size: 1rem;
61 | }
62 | .song-subtitle{
63 | color: #555;
64 | }
--------------------------------------------------------------------------------
/dist/app.wxss:
--------------------------------------------------------------------------------
1 | /**app.wxss**/
2 | .container {
3 | min-height: 100%;
4 | font-family: 'microsoft yahei';
5 | }
6 | scroll-view.container {
7 | height: 100vh;
8 | }
9 | .tab {
10 | width: 100%;
11 | border-bottom: 1px solid #eee;
12 | text-align: center;
13 | line-height: 2rem;
14 | }
15 | .tab view {
16 | display: inline-block;
17 | width: 372rpx;
18 | }
19 | .tab view.active {
20 | color: #3eb94e;
21 | border-bottom: 2px solid #3eb94e;
22 | }
23 | /* song list item */
24 | .songlist {
25 | width: 100%;
26 | overflow-x: hidden;
27 | overflow-y: visible;
28 | font-size: 0.8rem;
29 | }
30 | .songitem,
31 | .songitem-mini {
32 | height: 3rem;
33 | line-height: 1.5rem;
34 | display: flex;
35 | border-bottom: 1px solid #eee;
36 | padding: 10rpx 0;
37 | width: 100%;
38 | }
39 | .songitem:active,
40 | .songitem-mini:active {
41 | background: #eee;
42 | }
43 | .song-play {
44 | width: 10%;
45 | text-align: center;
46 | vertical-align: middle;
47 | }
48 | .song-play image {
49 | line-height: 3rem;
50 | width: 50rpx;
51 | height: 50rpx;
52 | padding-top: 13px;
53 | }
54 | .song-detail {
55 | white-space: nowrap;
56 | width: 90%;
57 | }
58 | .song-title {
59 | font-size: 1rem;
60 | }
61 | .song-subtitle {
62 | color: #555;
63 | }
64 |
--------------------------------------------------------------------------------
/dist/npm/redux-logger/lib/defaults.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | Object.defineProperty(exports, "__esModule", {
6 | value: true
7 | });
8 | exports.default = {
9 | level: "log",
10 | logger: console,
11 | logErrors: true,
12 | collapsed: undefined,
13 | predicate: undefined,
14 | duration: false,
15 | timestamp: true,
16 | stateTransformer: function stateTransformer(state) {
17 | return state;
18 | },
19 | actionTransformer: function actionTransformer(action) {
20 | return action;
21 | },
22 | errorTransformer: function errorTransformer(error) {
23 | return error;
24 | },
25 | colors: {
26 | title: function title() {
27 | return "inherit";
28 | },
29 | prevState: function prevState() {
30 | return "#9E9E9E";
31 | },
32 | action: function action() {
33 | return "#03A9F4";
34 | },
35 | nextState: function nextState() {
36 | return "#4CAF50";
37 | },
38 | error: function error() {
39 | return "#F20404";
40 | }
41 | },
42 | diff: false,
43 | diffPredicate: undefined,
44 |
45 | // Deprecated options
46 | transformer: undefined
47 | };
48 | module.exports = exports['default'];
49 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/helpers/typeof.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 |
7 | var _iterator = require('../core-js/symbol/iterator.js');
8 |
9 | var _iterator2 = _interopRequireDefault(_iterator);
10 |
11 | var _symbol = require('../core-js/symbol.js');
12 |
13 | var _symbol2 = _interopRequireDefault(_symbol);
14 |
15 | var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; };
16 |
17 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18 |
19 | exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
20 | return typeof obj === "undefined" ? "undefined" : _typeof(obj);
21 | } : function (obj) {
22 | return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
23 | };
24 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux/lib/compose.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 | exports["default"] = compose;
7 | /**
8 | * Composes single-argument functions from right to left. The rightmost
9 | * function can take multiple arguments as it provides the signature for
10 | * the resulting composite function.
11 | *
12 | * @param {...Function} funcs The functions to compose.
13 | * @returns {Function} A function obtained by composing the argument functions
14 | * from right to left. For example, compose(f, g, h) is identical to doing
15 | * (...args) => f(g(h(...args))).
16 | */
17 |
18 | function compose() {
19 | for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
20 | funcs[_key] = arguments[_key];
21 | }
22 |
23 | if (funcs.length === 0) {
24 | return function (arg) {
25 | return arg;
26 | };
27 | }
28 |
29 | if (funcs.length === 1) {
30 | return funcs[0];
31 | }
32 |
33 | var last = funcs[funcs.length - 1];
34 | var rest = funcs.slice(0, -1);
35 | return function () {
36 | return rest.reduceRight(function (composed, f) {
37 | return f(composed);
38 | }, last.apply(undefined, arguments));
39 | };
40 | }
41 | })(module,require);
--------------------------------------------------------------------------------
/src/utils/wechat-weapp-redux/wrapActionCreators.js:
--------------------------------------------------------------------------------
1 | function bindActionCreator(actionCreator, dispatch) {
2 | return function () {
3 | return dispatch(actionCreator.apply(undefined, arguments));
4 | };
5 | }
6 |
7 | function bindActionCreators(actionCreators, dispatch) {
8 | if (typeof actionCreators === 'function') {
9 | return bindActionCreator(actionCreators, dispatch);
10 | }
11 |
12 | if (typeof actionCreators !== 'object' || actionCreators === null) {
13 | throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');
14 | }
15 |
16 | var keys = Object.keys(actionCreators);
17 | var boundActionCreators = {};
18 | for (var i = 0; i < keys.length; i++) {
19 | var key = keys[i];
20 | var actionCreator = actionCreators[key];
21 | if (typeof actionCreator === 'function') {
22 | boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
23 | }
24 | }
25 | return boundActionCreators;
26 | }
27 |
28 | function wrapActionCreators(actionCreators) {
29 | return dispatch => bindActionCreators(actionCreators, dispatch)
30 | }
31 |
32 | module.exports = wrapActionCreators
--------------------------------------------------------------------------------
/dist/npm/redux-promise/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | exports.__esModule = true;
5 |
6 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
7 |
8 | exports['default'] = promiseMiddleware;
9 |
10 | var _fluxStandardAction = require('../../flux-standard-action/lib/index.js');
11 |
12 | function isPromise(val) {
13 | return val && typeof val.then === 'function';
14 | }
15 |
16 | function promiseMiddleware(_ref) {
17 | var dispatch = _ref.dispatch;
18 |
19 | return function (next) {
20 | return function (action) {
21 | if (!_fluxStandardAction.isFSA(action)) {
22 | return isPromise(action) ? action.then(dispatch) : next(action);
23 | }
24 |
25 | return isPromise(action.payload) ? action.payload.then(function (result) {
26 | return dispatch(_extends({}, action, { payload: result }));
27 | }, function (error) {
28 | return dispatch(_extends({}, action, { payload: error, error: true }));
29 | }) : next(action);
30 | };
31 | };
32 | }
33 |
34 | module.exports = exports['default'];
35 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/regenerator-runtime/runtime-module.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../labrador/global.js');
4 | // This method of obtaining a reference to the global object needs to be
5 | // kept identical to the way it is obtained in runtime.js
6 | var g =
7 | typeof global === "object" ? global :
8 | typeof window === "object" ? window :
9 | typeof self === "object" ? self : this;
10 |
11 | // Use `getOwnPropertyNames` because not all browsers support calling
12 | // `hasOwnProperty` on the global `self` object in a worker. See #183.
13 | var hadRuntime = g.regeneratorRuntime &&
14 | Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0;
15 |
16 | // Save the old regeneratorRuntime in case it needs to be restored later.
17 | var oldRuntime = hadRuntime && g.regeneratorRuntime;
18 |
19 | // Force reevalutation of runtime.js.
20 | g.regeneratorRuntime = undefined;
21 |
22 | module.exports = require('./runtime.js');
23 |
24 | if (hadRuntime) {
25 | // Restore the original runtime.
26 | g.regeneratorRuntime = oldRuntime;
27 | } else {
28 | // Remove the global property added by runtime.js.
29 | try {
30 | delete g.regeneratorRuntime;
31 | } catch(e) {
32 | g.regeneratorRuntime = undefined;
33 | }
34 | }
35 |
36 | })(module,require);
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 微信小程序: 音乐播放器
2 |
3 | - 歌曲资源来源于 [baidu音乐](http://music.baidu.com/)
4 |
5 | # 说明
6 |
7 | 本项目使用 es2017 编码方式开发,感谢 [labrador](https://segmentfault.com/a/1190000007109050) 。
8 |
9 | - dist 项目编译后代码,在IDE新建项目时必须选择该文件夹预览
10 | - src 项目源代码目录,在里面可使用 es2017 语法
11 |
12 | # 截图
13 |
14 | 榜单列表
15 |
16 | 
17 |
18 | 歌曲列表
19 |
20 | 
21 |
22 | 搜索页
23 |
24 | 
25 |
26 | 播放页
27 |
28 | 
29 |
30 |
31 | # 安装方法
32 |
33 | - 克隆本项目
34 | - 进入目录安装依赖包
35 | - 启动服务
36 |
37 | ```shell
38 | git clone https://github.com/eyasliu/wechat-app-music.git
39 | cd wechat-app-music
40 | npm install
41 | npm start
42 | ```
43 |
44 | ### 命令说明
45 |
46 | ```shell
47 | // 开发阶段,监听src目录下文件变动情况,即使编译并复制到dist文件夹
48 | npm start
49 | ```
50 |
51 | ```shell
52 | // 打包编译项目
53 | npm run build
54 | ```
55 |
56 |
57 | # 贡献代码
58 |
59 | 如果您想继续为本项目贡献代码,请按以下指示
60 |
61 | 1. 请先阅读文章 [使用Labrador 0.3构建ES6/ES7标准模块化微信小程序](https://segmentfault.com/a/1190000007109050?_ea=1242495)
62 | 2. 克隆本项目并安装依赖
63 | 3. `npm start` 启动开发监听服务
64 | 4. 在小程序IDE新建项目,**此时目录必须选择 dist 文件夹**
65 | 4. 修改 src 文件夹下代码,无论何时都不要直接编辑dist目录文件
66 |
67 | ## TODO
68 |
69 | - 集成redux管理数据状态
70 | - 集成 [野狗实时后端云](https://www.wilddog.com/)
71 | - 收藏列表,移出收藏
72 | - 切换上一曲/下一曲
73 |
74 |
--------------------------------------------------------------------------------
/src/pages/local/play.js:
--------------------------------------------------------------------------------
1 | import wx from 'labrador';
2 | // import api from '../../utils/api';
3 | import util from '../../utils/util';
4 | import {playing} from '../../actions'
5 | const {dispatch} = wx.app
6 | class Play extends wx.Component{
7 | // data = {
8 | // file: {},
9 | // item: {},
10 | // isPlaying: false
11 | // }
12 | async updateSong(songid){
13 | if(songid){
14 | const data = await util.playSong(songid)
15 |
16 | dispatch(playing({
17 | isPlaying: true,
18 | ...data
19 | }))
20 |
21 | await wx.setStorage({key: 'playing', data: data})
22 | } else {
23 | const res = await wx.getStorage({key: 'playing'})
24 | dispatch(playing(res.data))
25 | }
26 |
27 | const res = await wx.getStorage({key: 'isPlaying'})
28 | dispatch(playing({
29 | isPlaying: !!res.data
30 | }))
31 | }
32 | onLoad(option){
33 | this.updateSong(option.songid)
34 | }
35 | onShow(){
36 | this.updateSong()
37 | }
38 | async playToggle(e){
39 | if(this.data.isPlaying){
40 | wx.stopBackgroundAudio()
41 | dispatch(playing({
42 | isPlaying: false
43 | }))
44 | } else {
45 | await util.playSong(this.data.item.song_id)
46 | dispatch(playing({
47 | isPlaying: true
48 | }))
49 | }
50 | }
51 | }
52 | export default wx.app.connect(
53 | state => ({
54 | ...state.playing,
55 | })
56 | )(Play)
--------------------------------------------------------------------------------
/dist/npm/babel-runtime/helpers/inherits.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | "use strict";
4 |
5 | exports.__esModule = true;
6 |
7 | var _setPrototypeOf = require('../core-js/object/set-prototype-of.js');
8 |
9 | var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);
10 |
11 | var _create = require('../core-js/object/create.js');
12 |
13 | var _create2 = _interopRequireDefault(_create);
14 |
15 | var _typeof2 = require('./typeof.js');
16 |
17 | var _typeof3 = _interopRequireDefault(_typeof2);
18 |
19 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20 |
21 | exports.default = function (subClass, superClass) {
22 | if (typeof superClass !== "function" && superClass !== null) {
23 | throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
24 | }
25 |
26 | subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
27 | constructor: {
28 | value: subClass,
29 | enumerable: false,
30 | writable: true,
31 | configurable: true
32 | }
33 | });
34 | if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
35 | };
36 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.array.iterator.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var addToUnscopables = require('./_add-to-unscopables.js')
4 | , step = require('./_iter-step.js')
5 | , Iterators = require('./_iterators.js')
6 | , toIObject = require('./_to-iobject.js');
7 |
8 | // 22.1.3.4 Array.prototype.entries()
9 | // 22.1.3.13 Array.prototype.keys()
10 | // 22.1.3.29 Array.prototype.values()
11 | // 22.1.3.30 Array.prototype[@@iterator]()
12 | module.exports = require('./_iter-define.js')(Array, 'Array', function(iterated, kind){
13 | this._t = toIObject(iterated); // target
14 | this._i = 0; // next index
15 | this._k = kind; // kind
16 | // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
17 | }, function(){
18 | var O = this._t
19 | , kind = this._k
20 | , index = this._i++;
21 | if(!O || index >= O.length){
22 | this._t = undefined;
23 | return step(1);
24 | }
25 | if(kind == 'keys' )return step(0, index);
26 | if(kind == 'values')return step(0, O[index]);
27 | return step(0, [index, O[index]]);
28 | }, 'values');
29 |
30 | // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
31 | Iterators.Arguments = Iterators.Array;
32 |
33 | addToUnscopables('keys');
34 | addToUnscopables('values');
35 | addToUnscopables('entries');
36 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-assign.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.2.1 Object.assign(target, source, ...)
4 | var getKeys = require('./_object-keys.js')
5 | , gOPS = require('./_object-gops.js')
6 | , pIE = require('./_object-pie.js')
7 | , toObject = require('./_to-object.js')
8 | , IObject = require('./_iobject.js')
9 | , $assign = Object.assign;
10 |
11 | // should work with symbols and should have deterministic property order (V8 bug)
12 | module.exports = !$assign || require('./_fails.js')(function(){
13 | var A = {}
14 | , B = {}
15 | , S = Symbol()
16 | , K = 'abcdefghijklmnopqrst';
17 | A[S] = 7;
18 | K.split('').forEach(function(k){ B[k] = k; });
19 | return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
20 | }) ? function assign(target, source){ // eslint-disable-line no-unused-vars
21 | var T = toObject(target)
22 | , aLen = arguments.length
23 | , index = 1
24 | , getSymbols = gOPS.f
25 | , isEnum = pIE.f;
26 | while(aLen > index){
27 | var S = IObject(arguments[index++])
28 | , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
29 | , length = keys.length
30 | , j = 0
31 | , key;
32 | while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
33 | } return T;
34 | } : $assign;
35 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_for-of.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var ctx = require('./_ctx.js')
4 | , call = require('./_iter-call.js')
5 | , isArrayIter = require('./_is-array-iter.js')
6 | , anObject = require('./_an-object.js')
7 | , toLength = require('./_to-length.js')
8 | , getIterFn = require('./core.get-iterator-method.js')
9 | , BREAK = {}
10 | , RETURN = {};
11 | var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){
12 | var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
13 | , f = ctx(fn, that, entries ? 2 : 1)
14 | , index = 0
15 | , length, step, iterator, result;
16 | if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
17 | // fast case for arrays with default iterator
18 | if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
19 | result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
20 | if(result === BREAK || result === RETURN)return result;
21 | } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
22 | result = call(iterator, f, step.value, entries);
23 | if(result === BREAK || result === RETURN)return result;
24 | }
25 | };
26 | exports.BREAK = BREAK;
27 | exports.RETURN = RETURN;
28 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash/_getRawTag.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var Symbol = require('./_Symbol.js');
4 |
5 | /** Used for built-in method references. */
6 | var objectProto = Object.prototype;
7 |
8 | /** Used to check objects for own properties. */
9 | var hasOwnProperty = objectProto.hasOwnProperty;
10 |
11 | /**
12 | * Used to resolve the
13 | * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
14 | * of values.
15 | */
16 | var nativeObjectToString = objectProto.toString;
17 |
18 | /** Built-in value references. */
19 | var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
20 |
21 | /**
22 | * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
23 | *
24 | * @private
25 | * @param {*} value The value to query.
26 | * @returns {string} Returns the raw `toStringTag`.
27 | */
28 | function getRawTag(value) {
29 | var isOwn = hasOwnProperty.call(value, symToStringTag),
30 | tag = value[symToStringTag];
31 |
32 | try {
33 | value[symToStringTag] = undefined;
34 | var unmasked = true;
35 | } catch (e) {}
36 |
37 | var result = nativeObjectToString.call(value);
38 | if (unmasked) {
39 | if (isOwn) {
40 | value[symToStringTag] = tag;
41 | } else {
42 | delete value[symToStringTag];
43 | }
44 | }
45 | return result;
46 | }
47 |
48 | module.exports = getRawTag;
49 |
50 | })(module,require);
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wechat-app-music",
3 | "version": "1.0.0",
4 | "description": "- 歌曲资源来源于 [baidu音乐](http://music.baidu.com/)",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "start": "labrador watch",
9 | "build": "labrador build"
10 | },
11 | "repository": {
12 | "type": "git",
13 | "url": "git+https://github.com/eyasliu/wechat-app-music.git"
14 | },
15 | "author": "",
16 | "license": "ISC",
17 | "bugs": {
18 | "url": "https://github.com/eyasliu/wechat-app-music/issues"
19 | },
20 | "homepage": "https://github.com/eyasliu/wechat-app-music#readme",
21 | "dependencies": {
22 | "babel-core": "^6.17.0",
23 | "babel-eslint": "^7.0.0",
24 | "babel-plugin-syntax-export-extensions": "^6.13.0",
25 | "babel-plugin-transform-export-extensions": "^6.8.0",
26 | "babel-plugin-transform-runtime": "^6.15.0",
27 | "babel-preset-es2015": "^6.16.0",
28 | "babel-preset-stage-0": "^6.16.0",
29 | "babel-runtime": "^6.11.6",
30 | "core-js": "^2.4.1",
31 | "eslint": "^3.7.1",
32 | "eslint-config-airbnb": "^12.0.0",
33 | "eslint-plugin-import": "^2.0.0",
34 | "eslint-plugin-jsx-a11y": "^2.2.3",
35 | "eslint-plugin-react": "^6.4.0",
36 | "labrador": "^0.5.5",
37 | "labrador-cli": "^0.5.8",
38 | "less": "^2.7.1",
39 | "redux": "^3.6.0",
40 | "redux-async-await": "^1.0.1",
41 | "redux-create-reducer-curry": "^1.0.0",
42 | "redux-logger": "^2.7.0",
43 | "redux-promise": "^0.5.3",
44 | "redux-thunk": "^2.1.0",
45 | "regenerator-runtime": "^0.9.5"
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/utils/api.js:
--------------------------------------------------------------------------------
1 | var baseUrl = "http://tingapi.ting.baidu.com/v1/restserver/ting"
2 |
3 | var apiMethod = {
4 | search: 'baidu.ting.search.catalogSug',
5 | detail: 'baidu.ting.song.play',
6 | lrc: 'baidu.ting.song.lry',
7 | recommand: 'baidu.ting.song.getRecommandSongList',
8 | download: 'baidu.ting.song.downWeb',
9 | list: 'baidu.ting.billboard.billList'
10 | }
11 |
12 | var query = option => ({
13 | formate: 'json'
14 | })
15 |
16 | var hackImg = url => 'http://www.beihaiw.com/pic.php?url=' + url
17 |
18 | var request = data => new Promise((resolve, reject) => {
19 | wx.request({
20 | url: baseUrl,
21 | data: data,
22 | success: (res) => {
23 | resolve(res.data);
24 | },
25 | fail: err => {
26 | reject(err)
27 | }
28 | })
29 | })
30 |
31 | var search = (keyword) => request({
32 | method: apiMethod['search'],
33 | query: keyword
34 | })
35 |
36 |
37 | // type = 1-新歌榜,2-热歌榜,11-摇滚榜,12-爵士,16-流行,21-欧美金曲榜,22-经典老歌榜,23-情歌对唱榜,24-影视金曲榜,25-网络歌曲榜
38 | var getOnline = (type, paged) => {
39 | var limit = 12;
40 | return request({
41 | method: apiMethod['list'],
42 | type: type,
43 | offset: limit * (paged - 1),
44 | size: limit
45 | }).then(data => {
46 | data.billboard.pic_s210 = hackImg(data.billboard.pic_s210)
47 | data.billboard.pic_s260 = hackImg(data.billboard.pic_s260)
48 | data.billboard.pic_s444 = hackImg(data.billboard.pic_s444)
49 | data.billboard.pic_s640 = hackImg(data.billboard.pic_s640)
50 | data.song_list.forEach(item => {
51 | item.pic_big = hackImg(item.pic_big);
52 | item.pic_small = hackImg(item.pic_small);
53 | })
54 | return data;
55 | })
56 | }
57 |
58 | var getDetail = id => request({
59 | method: apiMethod['detail'],
60 | songid: id
61 | })
62 |
63 | module.exports = {
64 | getOnline,
65 | getDetail,
66 | search,
67 | request,
68 | apiMethod
69 | }
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_object-create.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
4 | var anObject = require('./_an-object.js')
5 | , dPs = require('./_object-dps.js')
6 | , enumBugKeys = require('./_enum-bug-keys.js')
7 | , IE_PROTO = require('./_shared-key.js')('IE_PROTO')
8 | , Empty = function(){ /* empty */ }
9 | , PROTOTYPE = 'prototype';
10 |
11 | // Create object with fake `null` prototype: use iframe Object with cleared prototype
12 | var createDict = function(){
13 | // Thrash, waste and sodomy: IE GC bug
14 | var iframe = require('./_dom-create.js')('iframe')
15 | , i = enumBugKeys.length
16 | , lt = '<'
17 | , gt = '>'
18 | , iframeDocument;
19 | iframe.style.display = 'none';
20 | require('./_html.js').appendChild(iframe);
21 | iframe.src = 'javascript:'; // eslint-disable-line no-script-url
22 | // createDict = iframe.contentWindow.Object;
23 | // html.removeChild(iframe);
24 | iframeDocument = iframe.contentWindow.document;
25 | iframeDocument.open();
26 | iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
27 | iframeDocument.close();
28 | createDict = iframeDocument.F;
29 | while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
30 | return createDict();
31 | };
32 |
33 | module.exports = Object.create || function create(O, Properties){
34 | var result;
35 | if(O !== null){
36 | Empty[PROTOTYPE] = anObject(O);
37 | result = new Empty;
38 | Empty[PROTOTYPE] = null;
39 | // add "__proto__" for Object.getPrototypeOf polyfill
40 | result[IE_PROTO] = O;
41 | } else result = createDict();
42 | return Properties === undefined ? result : dPs(result, Properties);
43 | };
44 |
45 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash._basefor/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * lodash 3.0.3 (Custom Build)
5 | * Build: `lodash modularize exports="npm" -o ./`
6 | * Copyright 2012-2016 The Dojo Foundation
7 | * Based on Underscore.js 1.8.3
8 | * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
9 | * Available under MIT license
10 | */
11 |
12 | /**
13 | * The base implementation of `baseForIn` and `baseForOwn` which iterates
14 | * over `object` properties returned by `keysFunc` invoking `iteratee` for
15 | * each property. Iteratee functions may exit iteration early by explicitly
16 | * returning `false`.
17 | *
18 | * @private
19 | * @param {Object} object The object to iterate over.
20 | * @param {Function} iteratee The function invoked per iteration.
21 | * @param {Function} keysFunc The function to get the keys of `object`.
22 | * @returns {Object} Returns `object`.
23 | */
24 | var baseFor = createBaseFor();
25 |
26 | /**
27 | * Creates a base function for methods like `_.forIn`.
28 | *
29 | * @private
30 | * @param {boolean} [fromRight] Specify iterating from right to left.
31 | * @returns {Function} Returns the new base function.
32 | */
33 | function createBaseFor(fromRight) {
34 | return function(object, iteratee, keysFunc) {
35 | var index = -1,
36 | iterable = Object(object),
37 | props = keysFunc(object),
38 | length = props.length;
39 |
40 | while (length--) {
41 | var key = props[fromRight ? length : ++index];
42 | if (iteratee(iterable[key], key, iterable) === false) {
43 | break;
44 | }
45 | }
46 | return object;
47 | };
48 | }
49 |
50 | module.exports = baseFor;
51 |
52 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_meta.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var META = require('./_uid.js')('meta')
4 | , isObject = require('./_is-object.js')
5 | , has = require('./_has.js')
6 | , setDesc = require('./_object-dp.js').f
7 | , id = 0;
8 | var isExtensible = Object.isExtensible || function(){
9 | return true;
10 | };
11 | var FREEZE = !require('./_fails.js')(function(){
12 | return isExtensible(Object.preventExtensions({}));
13 | });
14 | var setMeta = function(it){
15 | setDesc(it, META, {value: {
16 | i: 'O' + ++id, // object ID
17 | w: {} // weak collections IDs
18 | }});
19 | };
20 | var fastKey = function(it, create){
21 | // return primitive with prefix
22 | if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
23 | if(!has(it, META)){
24 | // can't set metadata to uncaught frozen object
25 | if(!isExtensible(it))return 'F';
26 | // not necessary to add metadata
27 | if(!create)return 'E';
28 | // add missing metadata
29 | setMeta(it);
30 | // return object ID
31 | } return it[META].i;
32 | };
33 | var getWeak = function(it, create){
34 | if(!has(it, META)){
35 | // can't set metadata to uncaught frozen object
36 | if(!isExtensible(it))return true;
37 | // not necessary to add metadata
38 | if(!create)return false;
39 | // add missing metadata
40 | setMeta(it);
41 | // return hash weak collections IDs
42 | } return it[META].w;
43 | };
44 | // add metadata on freeze-family methods calling
45 | var onFreeze = function(it){
46 | if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
47 | return it;
48 | };
49 | var meta = module.exports = {
50 | KEY: META,
51 | NEED: false,
52 | fastKey: fastKey,
53 | getWeak: getWeak,
54 | onFreeze: onFreeze
55 | };
56 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/es6.array.from.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var ctx = require('./_ctx.js')
4 | , $export = require('./_export.js')
5 | , toObject = require('./_to-object.js')
6 | , call = require('./_iter-call.js')
7 | , isArrayIter = require('./_is-array-iter.js')
8 | , toLength = require('./_to-length.js')
9 | , createProperty = require('./_create-property.js')
10 | , getIterFn = require('./core.get-iterator-method.js');
11 |
12 | $export($export.S + $export.F * !require('./_iter-detect.js')(function(iter){ Array.from(iter); }), 'Array', {
13 | // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
14 | from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
15 | var O = toObject(arrayLike)
16 | , C = typeof this == 'function' ? this : Array
17 | , aLen = arguments.length
18 | , mapfn = aLen > 1 ? arguments[1] : undefined
19 | , mapping = mapfn !== undefined
20 | , index = 0
21 | , iterFn = getIterFn(O)
22 | , length, result, step, iterator;
23 | if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
24 | // if object isn't iterable or it's array with default iterator - use simple case
25 | if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
26 | for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
27 | createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
28 | }
29 | } else {
30 | length = toLength(O.length);
31 | for(result = new C(length); length > index; index++){
32 | createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
33 | }
34 | }
35 | result.length = index;
36 | return result;
37 | }
38 | });
39 |
40 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/wechat-weapp-redux/wrapActionCreators.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | var _keys = require('../../npm/babel-runtime/core-js/object/keys.js');
5 |
6 | var _keys2 = _interopRequireDefault(_keys);
7 |
8 | var _typeof2 = require('../../npm/babel-runtime/helpers/typeof.js');
9 |
10 | var _typeof3 = _interopRequireDefault(_typeof2);
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function bindActionCreator(actionCreator, dispatch) {
15 | return function () {
16 | return dispatch(actionCreator.apply(undefined, arguments));
17 | };
18 | }
19 |
20 | function bindActionCreators(actionCreators, dispatch) {
21 | if (typeof actionCreators === 'function') {
22 | return bindActionCreator(actionCreators, dispatch);
23 | }
24 |
25 | if ((typeof actionCreators === 'undefined' ? 'undefined' : (0, _typeof3.default)(actionCreators)) !== 'object' || actionCreators === null) {
26 | throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators === 'undefined' ? 'undefined' : (0, _typeof3.default)(actionCreators)) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');
27 | }
28 |
29 | var keys = (0, _keys2.default)(actionCreators);
30 | var boundActionCreators = {};
31 | for (var i = 0; i < keys.length; i++) {
32 | var key = keys[i];
33 | var actionCreator = actionCreators[key];
34 | if (typeof actionCreator === 'function') {
35 | boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
36 | }
37 | }
38 | return boundActionCreators;
39 | }
40 |
41 | function wrapActionCreators(actionCreators) {
42 | return function (dispatch) {
43 | return bindActionCreators(actionCreators, dispatch);
44 | };
45 | }
46 |
47 | module.exports = wrapActionCreators;
48 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash/isPlainObject.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var baseGetTag = require('./_baseGetTag.js'),
4 | getPrototype = require('./_getPrototype.js'),
5 | isObjectLike = require('./isObjectLike.js');
6 |
7 | /** `Object#toString` result references. */
8 | var objectTag = '[object Object]';
9 |
10 | /** Used for built-in method references. */
11 | var funcProto = Function.prototype,
12 | objectProto = Object.prototype;
13 |
14 | /** Used to resolve the decompiled source of functions. */
15 | var funcToString = funcProto.toString;
16 |
17 | /** Used to check objects for own properties. */
18 | var hasOwnProperty = objectProto.hasOwnProperty;
19 |
20 | /** Used to infer the `Object` constructor. */
21 | var objectCtorString = funcToString.call(Object);
22 |
23 | /**
24 | * Checks if `value` is a plain object, that is, an object created by the
25 | * `Object` constructor or one with a `[[Prototype]]` of `null`.
26 | *
27 | * @static
28 | * @memberOf _
29 | * @since 0.8.0
30 | * @category Lang
31 | * @param {*} value The value to check.
32 | * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
33 | * @example
34 | *
35 | * function Foo() {
36 | * this.a = 1;
37 | * }
38 | *
39 | * _.isPlainObject(new Foo);
40 | * // => false
41 | *
42 | * _.isPlainObject([1, 2, 3]);
43 | * // => false
44 | *
45 | * _.isPlainObject({ 'x': 0, 'y': 0 });
46 | * // => true
47 | *
48 | * _.isPlainObject(Object.create(null));
49 | * // => true
50 | */
51 | function isPlainObject(value) {
52 | if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
53 | return false;
54 | }
55 | var proto = getPrototype(value);
56 | if (proto === null) {
57 | return true;
58 | }
59 | var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
60 | return typeof Ctor == 'function' && Ctor instanceof Ctor &&
61 | funcToString.call(Ctor) == objectCtorString;
62 | }
63 |
64 | module.exports = isPlainObject;
65 |
66 | })(module,require);
--------------------------------------------------------------------------------
/dist/app.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 |
8 | var _classCallCheck2 = require('./npm/babel-runtime/helpers/classCallCheck.js');
9 |
10 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
11 |
12 | var _labrador = require('./npm/labrador/index.js');
13 |
14 | var _labrador2 = _interopRequireDefault(_labrador);
15 |
16 | var _util = require('./utils/util.js');
17 |
18 | var _store = require('./utils/store.js');
19 |
20 | var _store2 = _interopRequireDefault(_store);
21 |
22 | var _reducers = require('./reducers.js');
23 |
24 | var _reducers2 = _interopRequireDefault(_reducers);
25 |
26 | var _connect = require('./utils/wechat-weapp-redux/connect.js');
27 |
28 | var _connect2 = _interopRequireDefault(_connect);
29 |
30 | var _Provider = require('./utils/wechat-weapp-redux/Provider.js');
31 |
32 | var _Provider2 = _interopRequireDefault(_Provider);
33 |
34 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35 |
36 | var store = (0, _store2.default)(_reducers2.default);
37 |
38 | var _class = function _class() {
39 | (0, _classCallCheck3.default)(this, _class);
40 | this.store = store;
41 | this.dispatch = store.dispatch;
42 | this.connect = _connect2.default;
43 |
44 | // 音乐播放状态
45 | var setSongStatus = function setSongStatus(isPlaying) {
46 | return function () {
47 | _labrador2.default.setStorage({
48 | key: 'isPlaying',
49 | data: isPlaying
50 | });
51 | };
52 | };
53 | _labrador2.default.onBackgroundAudioPause(setSongStatus(false));
54 | _labrador2.default.onBackgroundAudioStop(setSongStatus(false));
55 | _labrador2.default.onBackgroundAudioPlay(setSongStatus(true));
56 | };
57 |
58 | exports.default = _class;
59 | {
60 | var __app=new exports.default();Object.getOwnPropertyNames(__app.constructor.prototype).forEach(function(name){if(name!=='constructor')__app[name]=__app.constructor.prototype[name]});App(__app);
61 | }
62 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/labrador/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * @copyright Maichong Software Ltd. 2016 http://maichong.it
5 | * @date 2016-09-26
6 | * @author Liang
7 | */
8 |
9 |
10 | var labrador = module.exports = {};
11 | labrador.default = labrador;
12 |
13 | labrador._createPage = require('./create-page.js');
14 | labrador.Component = require('./component.js');
15 | labrador.List = require('./list.js');
16 | labrador.PropTypes = labrador.Types = require('./prop-types.js');
17 |
18 | Object.defineProperty(labrador, 'app', {
19 | get: function () {
20 | return getApp();
21 | }
22 | });
23 |
24 | var noPromiseMethods = {
25 | stopRecord: true,
26 | pauseVoice: true,
27 | stopVoice: true,
28 | pauseBackgroundAudio: true,
29 | stopBackgroundAudio: true,
30 | showNavigationBarLoading: true,
31 | hideNavigationBarLoading: true,
32 | createAnimation: true,
33 | createContext: true,
34 | hideKeyboard: true,
35 | stopPullDownRefresh: true
36 | };
37 |
38 | function forEach(key) {
39 | if (noPromiseMethods[key] || key.substr(0, 2) === 'on' || /\w+Sync$/.test(key)) {
40 | labrador[key] = function () {
41 | if (false) {
42 | var res = wx[key].apply(wx, arguments);
43 | if (!res) {
44 | res = {};
45 | }
46 | if (res && typeof res === 'object') {
47 | res.then = function () {
48 | console.warn('wx.' + key + ' is not a async function, you should not use await ');
49 | };
50 | }
51 | return res;
52 | }
53 | return wx[key].apply(wx, arguments);
54 | };
55 | return;
56 | }
57 |
58 | labrador[key] = function (obj) {
59 | obj = obj || {};
60 | return new Promise(function (resolve, reject) {
61 | obj.success = resolve;
62 | obj.fail = function (res) {
63 | if (res && res.errMsg) {
64 | reject(new Error(res.errMsg));
65 | } else {
66 | reject(res);
67 | }
68 | };
69 | wx[key](obj);
70 | });
71 | };
72 | }
73 |
74 | Object.keys(wx).forEach(forEach);
75 |
76 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | exports.__esModule = true;
5 | exports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;
6 |
7 | var _createStore = require('./createStore.js');
8 |
9 | var _createStore2 = _interopRequireDefault(_createStore);
10 |
11 | var _combineReducers = require('./combineReducers.js');
12 |
13 | var _combineReducers2 = _interopRequireDefault(_combineReducers);
14 |
15 | var _bindActionCreators = require('./bindActionCreators.js');
16 |
17 | var _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);
18 |
19 | var _applyMiddleware = require('./applyMiddleware.js');
20 |
21 | var _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);
22 |
23 | var _compose = require('./compose.js');
24 |
25 | var _compose2 = _interopRequireDefault(_compose);
26 |
27 | var _warning = require('./utils/warning.js');
28 |
29 | var _warning2 = _interopRequireDefault(_warning);
30 |
31 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
32 |
33 | /*
34 | * This is a dummy function to check if the function name has been altered by minification.
35 | * If the function has been minified and NODE_ENV !== 'production', warn the user.
36 | */
37 | function isCrushed() {}
38 |
39 | if ("production" !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {
40 | (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \'production\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');
41 | }
42 |
43 | exports.createStore = _createStore2['default'];
44 | exports.combineReducers = _combineReducers2['default'];
45 | exports.bindActionCreators = _bindActionCreators2['default'];
46 | exports.applyMiddleware = _applyMiddleware2['default'];
47 | exports.compose = _compose2['default'];
48 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_microtask.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | var global = require('./_global.js')
5 | , macrotask = require('./_task.js').set
6 | , Observer = global.MutationObserver || global.WebKitMutationObserver
7 | , process = global.process
8 | , Promise = global.Promise
9 | , isNode = require('./_cof.js')(process) == 'process';
10 |
11 | module.exports = function(){
12 | var head, last, notify;
13 |
14 | var flush = function(){
15 | var parent, fn;
16 | if(isNode && (parent = process.domain))parent.exit();
17 | while(head){
18 | fn = head.fn;
19 | head = head.next;
20 | try {
21 | fn();
22 | } catch(e){
23 | if(head)notify();
24 | else last = undefined;
25 | throw e;
26 | }
27 | } last = undefined;
28 | if(parent)parent.enter();
29 | };
30 |
31 | // Node.js
32 | if(isNode){
33 | notify = function(){
34 | process.nextTick(flush);
35 | };
36 | // browsers with MutationObserver
37 | } else if(Observer){
38 | var toggle = true
39 | , node = document.createTextNode('');
40 | new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new
41 | notify = function(){
42 | node.data = toggle = !toggle;
43 | };
44 | // environments with maybe non-completely correct, but existent Promise
45 | } else if(Promise && Promise.resolve){
46 | var promise = Promise.resolve();
47 | notify = function(){
48 | promise.then(flush);
49 | };
50 | // for other environments - macrotask based on:
51 | // - setImmediate
52 | // - MessageChannel
53 | // - window.postMessag
54 | // - onreadystatechange
55 | // - setTimeout
56 | } else {
57 | notify = function(){
58 | // strange IE + webpack dev server bug - use .call(global)
59 | macrotask.call(global, flush);
60 | };
61 | }
62 |
63 | return function(fn){
64 | var task = {fn: fn, next: undefined};
65 | if(last)last.next = task;
66 | if(!head){
67 | head = task;
68 | notify();
69 | } last = task;
70 | };
71 | };
72 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux-logger/lib/diff.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 | exports.default = diffLogger;
8 |
9 | var _deepDiff = require('../../deep-diff/index.js');
10 |
11 | var _deepDiff2 = _interopRequireDefault(_deepDiff);
12 |
13 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14 |
15 | // https://github.com/flitbit/diff#differences
16 | var dictionary = {
17 | 'E': {
18 | color: '#2196F3',
19 | text: 'CHANGED:'
20 | },
21 | 'N': {
22 | color: '#4CAF50',
23 | text: 'ADDED:'
24 | },
25 | 'D': {
26 | color: '#F44336',
27 | text: 'DELETED:'
28 | },
29 | 'A': {
30 | color: '#2196F3',
31 | text: 'ARRAY:'
32 | }
33 | };
34 |
35 | function style(kind) {
36 | return 'color: ' + dictionary[kind].color + '; font-weight: bold';
37 | }
38 |
39 | function render(diff) {
40 | var kind = diff.kind;
41 | var path = diff.path;
42 | var lhs = diff.lhs;
43 | var rhs = diff.rhs;
44 | var index = diff.index;
45 | var item = diff.item;
46 |
47 | switch (kind) {
48 | case 'E':
49 | return path.join('.') + ' ' + lhs + ' → ' + rhs;
50 | case 'N':
51 | return path.join('.') + ' ' + rhs;
52 | case 'D':
53 | return '' + path.join('.');
54 | case 'A':
55 | return [path.join('.') + '[' + index + ']', item];
56 | default:
57 | return null;
58 | }
59 | }
60 |
61 | function diffLogger(prevState, newState, logger, isCollapsed) {
62 | var diff = (0, _deepDiff2.default)(prevState, newState);
63 |
64 | try {
65 | if (isCollapsed) {
66 | logger.groupCollapsed('diff');
67 | } else {
68 | logger.group('diff');
69 | }
70 | } catch (e) {
71 | logger.log('diff');
72 | }
73 |
74 | if (diff) {
75 | diff.forEach(function (elem) {
76 | var kind = elem.kind;
77 |
78 | var output = render(elem);
79 |
80 | logger.log('%c ' + dictionary[kind].text, style(kind), output);
81 | });
82 | } else {
83 | logger.log('—— no diff ——');
84 | }
85 |
86 | try {
87 | logger.groupEnd();
88 | } catch (e) {
89 | logger.log('—— diff end —— ');
90 | }
91 | }
92 | module.exports = exports['default'];
93 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux/lib/bindActionCreators.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | exports.__esModule = true;
5 | exports['default'] = bindActionCreators;
6 | function bindActionCreator(actionCreator, dispatch) {
7 | return function () {
8 | return dispatch(actionCreator.apply(undefined, arguments));
9 | };
10 | }
11 |
12 | /**
13 | * Turns an object whose values are action creators, into an object with the
14 | * same keys, but with every function wrapped into a `dispatch` call so they
15 | * may be invoked directly. This is just a convenience method, as you can call
16 | * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
17 | *
18 | * For convenience, you can also pass a single function as the first argument,
19 | * and get a function in return.
20 | *
21 | * @param {Function|Object} actionCreators An object whose values are action
22 | * creator functions. One handy way to obtain it is to use ES6 `import * as`
23 | * syntax. You may also pass a single function.
24 | *
25 | * @param {Function} dispatch The `dispatch` function available on your Redux
26 | * store.
27 | *
28 | * @returns {Function|Object} The object mimicking the original object, but with
29 | * every action creator wrapped into the `dispatch` call. If you passed a
30 | * function as `actionCreators`, the return value will also be a single
31 | * function.
32 | */
33 | function bindActionCreators(actionCreators, dispatch) {
34 | if (typeof actionCreators === 'function') {
35 | return bindActionCreator(actionCreators, dispatch);
36 | }
37 |
38 | if (typeof actionCreators !== 'object' || actionCreators === null) {
39 | throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');
40 | }
41 |
42 | var keys = Object.keys(actionCreators);
43 | var boundActionCreators = {};
44 | for (var i = 0; i < keys.length; i++) {
45 | var key = keys[i];
46 | var actionCreator = actionCreators[key];
47 | if (typeof actionCreator === 'function') {
48 | boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
49 | }
50 | }
51 | return boundActionCreators;
52 | }
53 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux/lib/applyMiddleware.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | exports.__esModule = true;
5 |
6 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
7 |
8 | exports['default'] = applyMiddleware;
9 |
10 | var _compose = require('./compose.js');
11 |
12 | var _compose2 = _interopRequireDefault(_compose);
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
15 |
16 | /**
17 | * Creates a store enhancer that applies middleware to the dispatch method
18 | * of the Redux store. This is handy for a variety of tasks, such as expressing
19 | * asynchronous actions in a concise manner, or logging every action payload.
20 | *
21 | * See `redux-thunk` package as an example of the Redux middleware.
22 | *
23 | * Because middleware is potentially asynchronous, this should be the first
24 | * store enhancer in the composition chain.
25 | *
26 | * Note that each middleware will be given the `dispatch` and `getState` functions
27 | * as named arguments.
28 | *
29 | * @param {...Function} middlewares The middleware chain to be applied.
30 | * @returns {Function} A store enhancer applying the middleware.
31 | */
32 | function applyMiddleware() {
33 | for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {
34 | middlewares[_key] = arguments[_key];
35 | }
36 |
37 | return function (createStore) {
38 | return function (reducer, preloadedState, enhancer) {
39 | var store = createStore(reducer, preloadedState, enhancer);
40 | var _dispatch = store.dispatch;
41 | var chain = [];
42 |
43 | var middlewareAPI = {
44 | getState: store.getState,
45 | dispatch: function dispatch(action) {
46 | return _dispatch(action);
47 | }
48 | };
49 | chain = middlewares.map(function (middleware) {
50 | return middleware(middlewareAPI);
51 | });
52 | _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);
53 |
54 | return _extends({}, store, {
55 | dispatch: _dispatch
56 | });
57 | };
58 | };
59 | }
60 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/api.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | var _promise = require('../npm/babel-runtime/core-js/promise.js');
5 |
6 | var _promise2 = _interopRequireDefault(_promise);
7 |
8 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9 |
10 | var baseUrl = "http://tingapi.ting.baidu.com/v1/restserver/ting";
11 |
12 | var apiMethod = {
13 | search: 'baidu.ting.search.catalogSug',
14 | detail: 'baidu.ting.song.play',
15 | lrc: 'baidu.ting.song.lry',
16 | recommand: 'baidu.ting.song.getRecommandSongList',
17 | download: 'baidu.ting.song.downWeb',
18 | list: 'baidu.ting.billboard.billList'
19 | };
20 |
21 | var query = function query(option) {
22 | return {
23 | formate: 'json'
24 | };
25 | };
26 |
27 | var hackImg = function hackImg(url) {
28 | return 'http://www.beihaiw.com/pic.php?url=' + url;
29 | };
30 |
31 | var request = function request(data) {
32 | return new _promise2.default(function (resolve, reject) {
33 | wx.request({
34 | url: baseUrl,
35 | data: data,
36 | success: function success(res) {
37 | resolve(res.data);
38 | },
39 | fail: function fail(err) {
40 | reject(err);
41 | }
42 | });
43 | });
44 | };
45 |
46 | var search = function search(keyword) {
47 | return request({
48 | method: apiMethod['search'],
49 | query: keyword
50 | });
51 | };
52 |
53 | // type = 1-新歌榜,2-热歌榜,11-摇滚榜,12-爵士,16-流行,21-欧美金曲榜,22-经典老歌榜,23-情歌对唱榜,24-影视金曲榜,25-网络歌曲榜
54 | var getOnline = function getOnline(type, paged) {
55 | var limit = 12;
56 | return request({
57 | method: apiMethod['list'],
58 | type: type,
59 | offset: limit * (paged - 1),
60 | size: limit
61 | }).then(function (data) {
62 | data.billboard.pic_s210 = hackImg(data.billboard.pic_s210);
63 | data.billboard.pic_s260 = hackImg(data.billboard.pic_s260);
64 | data.billboard.pic_s444 = hackImg(data.billboard.pic_s444);
65 | data.billboard.pic_s640 = hackImg(data.billboard.pic_s640);
66 | data.song_list.forEach(function (item) {
67 | item.pic_big = hackImg(item.pic_big);
68 | item.pic_small = hackImg(item.pic_small);
69 | });
70 | return data;
71 | });
72 | };
73 |
74 | var getDetail = function getDetail(id) {
75 | return request({
76 | method: apiMethod['detail'],
77 | songid: id
78 | });
79 | };
80 |
81 | module.exports = {
82 | getOnline: getOnline,
83 | getDetail: getDetail,
84 | search: search,
85 | request: request,
86 | apiMethod: apiMethod
87 | };
88 | })(module,require);
--------------------------------------------------------------------------------
/src/reducers.js:
--------------------------------------------------------------------------------
1 | import {combineReducers} from 'redux';
2 | import createReducer from 'redux-create-reducer-curry'
3 |
4 | const initState = {
5 | playing: {
6 | file: {},
7 | item: {},
8 | isPlaying: false,
9 | },
10 | search: {
11 | list: []
12 | },
13 | rank: {
14 | items: [
15 | {
16 | text: '新歌榜',
17 | type: 1
18 | }, {
19 | text: '热歌榜',
20 | type: 2
21 | }, {
22 | text: "摇滚榜",
23 | type: 11
24 | }, {
25 | text: "爵士",
26 | type: 12
27 | }, {
28 | text: "流行",
29 | type: 16
30 | }, {
31 | text: "欧美金曲榜",
32 | type: 21
33 | }, {
34 | text: "经典老歌榜",
35 | type: 22
36 | }, {
37 | text: "情歌对唱榜",
38 | type: 23
39 | }, {
40 | text: "影视金曲榜",
41 | type: 24
42 | }, {
43 | text: "网络歌曲榜",
44 | type: 25
45 | }
46 | ],
47 | type: '',
48 | board: {},
49 | songlist: []
50 | },
51 | tab: [{
52 | label: '排行榜',
53 | type: 'rank',
54 | url: '/pages/online/index/index',
55 | active: true
56 | }, {
57 | label: '搜索',
58 | type: 'search',
59 | url: '/pages/online/search/index',
60 | active: false
61 | }]
62 | }
63 |
64 | const tab = createReducer(initState.tab)({
65 | TAB_ACTIVE: (state, action) => [...state.map(item => {
66 | item.active = item.type === action.active
67 | return item;
68 | })]
69 | })
70 |
71 | const rank = createReducer(initState.rank)({
72 | RANK_UPDATE: (state, action) => ({
73 | ...state,
74 | ...action.data
75 | }),
76 | LIST_UPDATE: (state, action) => {
77 | console.log(state, action)
78 | return ({
79 | ...state,
80 | songlist: [...action.list]
81 | })},
82 | LIST_APPEND: (state, action) => ({
83 | ...state,
84 | songlist: [
85 | ...state.songlist,
86 | ...action.data.songlist
87 | ]
88 | }),
89 | RANK_BOARD_UPDATE: (state, action) => ({
90 | ...state,
91 | board: {...action.board}
92 | })
93 | })
94 |
95 | const search = createReducer(initState.search)({
96 | SEARCH: (state, action) => ({
97 | ...state,
98 | list: action.songlist
99 | })
100 | })
101 |
102 | const playing = createReducer(initState.playing)({
103 | UPDATE_PLAY: (state, action) => {
104 | const newState = {
105 | ...state,
106 | ...action
107 | }
108 | wx.setStorage({key: 'playing', data: newState})
109 | return newState;
110 | }
111 | })
112 |
113 | export default combineReducers({
114 | rank,
115 | tab,
116 | search,
117 | playing
118 | })
--------------------------------------------------------------------------------
/src/utils/wechat-weapp-redux/connect.js:
--------------------------------------------------------------------------------
1 | import shallowEqual from './shallowEqual.js'
2 | import warning from './warning.js'
3 | import wrapActionCreators from './wrapActionCreators.js'
4 |
5 | const defaultMapStateToProps = state => ({}) // eslint-disable-line no-unused-vars
6 | const defaultMapDispatchToProps = dispatch => ({dispatch})
7 |
8 | function connect(mapStateToProps, mapDispatchToProps) {
9 | const shouldSubscribe = Boolean(mapStateToProps)
10 | const mapState = mapStateToProps || defaultMapStateToProps
11 | const app = getApp();
12 |
13 | let mapDispatch
14 | if (typeof mapDispatchToProps === 'function') {
15 | mapDispatch = mapDispatchToProps
16 | } else if (!mapDispatchToProps) {
17 | mapDispatch = defaultMapDispatchToProps
18 | } else {
19 | mapDispatch = wrapActionCreators(mapDispatchToProps)
20 | }
21 |
22 | return function wrapWithConnect(pageComponent) {
23 |
24 | function handleChange(options) {
25 | if (!this.unsubscribe) {
26 | return
27 | }
28 |
29 | const state = this.store.getState()
30 | const mappedState = mapState(state, options);
31 | if (!this.data || shallowEqual(this.data, mappedState)) {
32 | return;
33 | }
34 | this.setData(mappedState)
35 | }
36 |
37 | function onLoad(options) {
38 | this.store = app.store;
39 | if (!this.store) {
40 | warning("Store对象不存在!")
41 | }
42 | if(shouldSubscribe){
43 | this.unsubscribe = this.store.subscribe(handleChange.bind(this, options))
44 | handleChange.apply(this)
45 | }
46 | // pageComponent.prototype.onLoad.call(options)
47 | }
48 |
49 | function onUnload() {
50 | typeof this.unsubscribe === 'function' && this.unsubscribe()
51 | }
52 |
53 | function injectMethod(fun, options){
54 | return function(...args) {
55 | options.before && options.before.apply(this, args)
56 | const result = fun && fun.apply(this, args)
57 | options.after && options.after.apply(this, args)
58 | return result;
59 | }
60 | }
61 | const originMethod = {
62 | onLoad: pageComponent.prototype.onLoad,
63 | onUnload: pageComponent.prototype.onUnload
64 | }
65 |
66 | pageComponent.prototype.onLoad = injectMethod(pageComponent.prototype.onLoad, {
67 | before(args){onLoad.apply(this, args)}
68 | })
69 | pageComponent.prototype.onUnload = injectMethod(pageComponent.prototype.onUnload, {
70 | before(args){onUnload.apply(this, args)}
71 | })
72 |
73 | return pageComponent
74 | }
75 | }
76 |
77 | module.exports = connect
--------------------------------------------------------------------------------
/dist/pages/online/index/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 |
8 | var _getPrototypeOf = require('../../../npm/babel-runtime/core-js/object/get-prototype-of.js');
9 |
10 | var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
11 |
12 | var _classCallCheck2 = require('../../../npm/babel-runtime/helpers/classCallCheck.js');
13 |
14 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
15 |
16 | var _createClass2 = require('../../../npm/babel-runtime/helpers/createClass.js');
17 |
18 | var _createClass3 = _interopRequireDefault(_createClass2);
19 |
20 | var _possibleConstructorReturn2 = require('../../../npm/babel-runtime/helpers/possibleConstructorReturn.js');
21 |
22 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23 |
24 | var _inherits2 = require('../../../npm/babel-runtime/helpers/inherits.js');
25 |
26 | var _inherits3 = _interopRequireDefault(_inherits2);
27 |
28 | var _labrador = require('../../../npm/labrador/index.js');
29 |
30 | var _labrador2 = _interopRequireDefault(_labrador);
31 |
32 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33 |
34 | var Index = function (_wx$Component) {
35 | (0, _inherits3.default)(Index, _wx$Component);
36 |
37 | function Index() {
38 | var _ref;
39 |
40 | var _temp, _this, _ret;
41 |
42 | (0, _classCallCheck3.default)(this, Index);
43 |
44 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
45 | args[_key] = arguments[_key];
46 | }
47 |
48 | return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Index.__proto__ || (0, _getPrototypeOf2.default)(Index)).call.apply(_ref, [this].concat(args))), _this), _this.app = getApp(), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
49 | }
50 |
51 | (0, _createClass3.default)(Index, [{
52 | key: 'onReady',
53 |
54 | //事件处理函数
55 | value: function onReady() {
56 | _labrador2.default.app.dispatch({
57 | type: 'TAB_ACTIVE',
58 | active: 'rank'
59 | });
60 | _labrador2.default.setNavigationBarTitle({ title: "在线音乐" });
61 | }
62 | }]);
63 | return Index;
64 | }(_labrador2.default.Component);
65 |
66 | exports.default = _labrador2.default.app.connect(function (state) {
67 | return {
68 | ranks: state.rank.items,
69 | tab: state.tab
70 | };
71 | })(Index);
72 | Page(_labrador._createPage(exports.default));
73 |
74 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_export.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | var global = require('./_global.js')
5 | , core = require('./_core.js')
6 | , ctx = require('./_ctx.js')
7 | , hide = require('./_hide.js')
8 | , PROTOTYPE = 'prototype';
9 |
10 | var $export = function(type, name, source){
11 | var IS_FORCED = type & $export.F
12 | , IS_GLOBAL = type & $export.G
13 | , IS_STATIC = type & $export.S
14 | , IS_PROTO = type & $export.P
15 | , IS_BIND = type & $export.B
16 | , IS_WRAP = type & $export.W
17 | , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
18 | , expProto = exports[PROTOTYPE]
19 | , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
20 | , key, own, out;
21 | if(IS_GLOBAL)source = name;
22 | for(key in source){
23 | // contains in native
24 | own = !IS_FORCED && target && target[key] !== undefined;
25 | if(own && key in exports)continue;
26 | // export native or passed
27 | out = own ? target[key] : source[key];
28 | // prevent global pollution for namespaces
29 | exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
30 | // bind timers to global for call from export context
31 | : IS_BIND && own ? ctx(out, global)
32 | // wrap global constructors for prevent change them in library
33 | : IS_WRAP && target[key] == out ? (function(C){
34 | var F = function(a, b, c){
35 | if(this instanceof C){
36 | switch(arguments.length){
37 | case 0: return new C;
38 | case 1: return new C(a);
39 | case 2: return new C(a, b);
40 | } return new C(a, b, c);
41 | } return C.apply(this, arguments);
42 | };
43 | F[PROTOTYPE] = C[PROTOTYPE];
44 | return F;
45 | // make static versions for prototype methods
46 | })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
47 | // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
48 | if(IS_PROTO){
49 | (exports.virtual || (exports.virtual = {}))[key] = out;
50 | // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
51 | if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
52 | }
53 | }
54 | };
55 | // type bitmap
56 | $export.F = 1; // forced
57 | $export.G = 2; // global
58 | $export.S = 4; // static
59 | $export.P = 8; // proto
60 | $export.B = 16; // bind
61 | $export.W = 32; // wrap
62 | $export.U = 64; // safe
63 | $export.R = 128; // real proto method for `library`
64 | module.exports = $export;
65 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_task.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var global=window=require('../../../labrador/global.js');
4 | var ctx = require('./_ctx.js')
5 | , invoke = require('./_invoke.js')
6 | , html = require('./_html.js')
7 | , cel = require('./_dom-create.js')
8 | , global = require('./_global.js')
9 | , process = global.process
10 | , setTask = global.setImmediate
11 | , clearTask = global.clearImmediate
12 | , MessageChannel = global.MessageChannel
13 | , counter = 0
14 | , queue = {}
15 | , ONREADYSTATECHANGE = 'onreadystatechange'
16 | , defer, channel, port;
17 | var run = function(){
18 | var id = +this;
19 | if(queue.hasOwnProperty(id)){
20 | var fn = queue[id];
21 | delete queue[id];
22 | fn();
23 | }
24 | };
25 | var listener = function(event){
26 | run.call(event.data);
27 | };
28 | // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
29 | if(!setTask || !clearTask){
30 | setTask = function setImmediate(fn){
31 | var args = [], i = 1;
32 | while(arguments.length > i)args.push(arguments[i++]);
33 | queue[++counter] = function(){
34 | invoke(typeof fn == 'function' ? fn : Function(fn), args);
35 | };
36 | defer(counter);
37 | return counter;
38 | };
39 | clearTask = function clearImmediate(id){
40 | delete queue[id];
41 | };
42 | // Node.js 0.8-
43 | if(require('./_cof.js')(process) == 'process'){
44 | defer = function(id){
45 | process.nextTick(ctx(run, id, 1));
46 | };
47 | // Browsers with MessageChannel, includes WebWorkers
48 | } else if(MessageChannel){
49 | channel = new MessageChannel;
50 | port = channel.port2;
51 | channel.port1.onmessage = listener;
52 | defer = ctx(port.postMessage, port, 1);
53 | // Browsers with postMessage, skip WebWorkers
54 | // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
55 | } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
56 | defer = function(id){
57 | global.postMessage(id + '', '*');
58 | };
59 | global.addEventListener('message', listener, false);
60 | // IE8-
61 | } else if(ONREADYSTATECHANGE in cel('script')){
62 | defer = function(id){
63 | html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
64 | html.removeChild(this);
65 | run.call(id);
66 | };
67 | };
68 | // Rest old browsers
69 | } else {
70 | defer = function(id){
71 | setTimeout(ctx(run, id, 1), 0);
72 | };
73 | }
74 | }
75 | module.exports = {
76 | set: setTask,
77 | clear: clearTask
78 | };
79 | })(module,require);
--------------------------------------------------------------------------------
/dist/actions.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 | exports.searchList = exports.getRankList = undefined;
8 |
9 | var _extends2 = require('./npm/babel-runtime/helpers/extends.js');
10 |
11 | var _extends3 = _interopRequireDefault(_extends2);
12 |
13 | var _regenerator = require('./npm/babel-runtime/regenerator/index.js');
14 |
15 | var _regenerator2 = _interopRequireDefault(_regenerator);
16 |
17 | var _asyncToGenerator2 = require('./npm/babel-runtime/helpers/asyncToGenerator.js');
18 |
19 | var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
20 |
21 | var getRankList = exports.getRankList = function () {
22 | var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(type, paged) {
23 | var _ref2, songlist, board;
24 |
25 | return _regenerator2.default.wrap(function _callee$(_context) {
26 | while (1) {
27 | switch (_context.prev = _context.next) {
28 | case 0:
29 | _context.next = 2;
30 | return _api2.default.getOnline(type, paged);
31 |
32 | case 2:
33 | _ref2 = _context.sent;
34 | songlist = _ref2.song_list;
35 | board = _ref2.billboard;
36 | return _context.abrupt('return', {
37 | type: paged > 1 ? 'LIST_APPEND' : 'RANK_UPDATE',
38 | data: { board: board, songlist: songlist }
39 | });
40 |
41 | case 6:
42 | case 'end':
43 | return _context.stop();
44 | }
45 | }
46 | }, _callee, this);
47 | }));
48 |
49 | return function getRankList(_x, _x2) {
50 | return _ref.apply(this, arguments);
51 | };
52 | }();
53 |
54 | var searchList = exports.searchList = function () {
55 | var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(keyword) {
56 | var _ref4, songlist;
57 |
58 | return _regenerator2.default.wrap(function _callee2$(_context2) {
59 | while (1) {
60 | switch (_context2.prev = _context2.next) {
61 | case 0:
62 | _context2.next = 2;
63 | return _api2.default.search(keyword);
64 |
65 | case 2:
66 | _ref4 = _context2.sent;
67 | songlist = _ref4.song;
68 | return _context2.abrupt('return', {
69 | type: 'SEARCH',
70 | songlist: songlist
71 | });
72 |
73 | case 5:
74 | case 'end':
75 | return _context2.stop();
76 | }
77 | }
78 | }, _callee2, this);
79 | }));
80 |
81 | return function searchList(_x3) {
82 | return _ref3.apply(this, arguments);
83 | };
84 | }();
85 |
86 | exports.playing = playing;
87 |
88 | var _api = require('./utils/api.js');
89 |
90 | var _api2 = _interopRequireDefault(_api);
91 |
92 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
93 |
94 | function playing(data) {
95 | return (0, _extends3.default)({
96 | type: "UPDATE_PLAY"
97 | }, data);
98 | }
99 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/core-js/library/modules/_iter-define.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | var LIBRARY = require('./_library.js')
4 | , $export = require('./_export.js')
5 | , redefine = require('./_redefine.js')
6 | , hide = require('./_hide.js')
7 | , has = require('./_has.js')
8 | , Iterators = require('./_iterators.js')
9 | , $iterCreate = require('./_iter-create.js')
10 | , setToStringTag = require('./_set-to-string-tag.js')
11 | , getPrototypeOf = require('./_object-gpo.js')
12 | , ITERATOR = require('./_wks.js')('iterator')
13 | , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
14 | , FF_ITERATOR = '@@iterator'
15 | , KEYS = 'keys'
16 | , VALUES = 'values';
17 |
18 | var returnThis = function(){ return this; };
19 |
20 | module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
21 | $iterCreate(Constructor, NAME, next);
22 | var getMethod = function(kind){
23 | if(!BUGGY && kind in proto)return proto[kind];
24 | switch(kind){
25 | case KEYS: return function keys(){ return new Constructor(this, kind); };
26 | case VALUES: return function values(){ return new Constructor(this, kind); };
27 | } return function entries(){ return new Constructor(this, kind); };
28 | };
29 | var TAG = NAME + ' Iterator'
30 | , DEF_VALUES = DEFAULT == VALUES
31 | , VALUES_BUG = false
32 | , proto = Base.prototype
33 | , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
34 | , $default = $native || getMethod(DEFAULT)
35 | , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
36 | , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
37 | , methods, key, IteratorPrototype;
38 | // Fix native
39 | if($anyNative){
40 | IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
41 | if(IteratorPrototype !== Object.prototype){
42 | // Set @@toStringTag to native iterators
43 | setToStringTag(IteratorPrototype, TAG, true);
44 | // fix for some old engines
45 | if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
46 | }
47 | }
48 | // fix Array#{values, @@iterator}.name in V8 / FF
49 | if(DEF_VALUES && $native && $native.name !== VALUES){
50 | VALUES_BUG = true;
51 | $default = function values(){ return $native.call(this); };
52 | }
53 | // Define iterator
54 | if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
55 | hide(proto, ITERATOR, $default);
56 | }
57 | // Plug for library
58 | Iterators[NAME] = $default;
59 | Iterators[TAG] = returnThis;
60 | if(DEFAULT){
61 | methods = {
62 | values: DEF_VALUES ? $default : getMethod(VALUES),
63 | keys: IS_SET ? $default : getMethod(KEYS),
64 | entries: $entries
65 | };
66 | if(FORCED)for(key in methods){
67 | if(!(key in proto))redefine(proto, key, methods[key]);
68 | } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
69 | }
70 | return methods;
71 | };
72 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/labrador/prop-types.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * @copyright Maichong Software Ltd. 2016 http://maichong.it
5 | * @date 2016-10-11
6 | * @author Liang
7 | */
8 |
9 | /* eslint no-inner-declarations:0 no-inner-declarations:0 */
10 |
11 |
12 | if (false) {
13 | var numberTag = '[object Number]';
14 | var boolTag = '[object Boolean]';
15 | var stringTag = '[object String]';
16 | var symbolTag = '[object Symbol]';
17 |
18 | function isObjectLike(value) {
19 | return value != null && typeof value === 'object';
20 | }
21 |
22 | function objectToString(value) {
23 | return Object.prototype.toString.call(value);
24 | }
25 |
26 | function getType(value) {
27 | if (Array.isArray(value)) {
28 | return 'array';
29 | }
30 |
31 | var type = typeof value;
32 |
33 | if (type === 'function') {
34 | return 'func';
35 | }
36 | if (type === 'number' || (isObjectLike(value) && objectToString(value) === numberTag)) {
37 | return 'number';
38 | }
39 | if (
40 | value === true || value === false
41 | || (isObjectLike(value) && objectToString(value) === boolTag)
42 | ) {
43 | return 'bool';
44 | }
45 | if (type === 'string' || (isObjectLike(value) && objectToString(value) === stringTag)) {
46 | return 'string';
47 | }
48 | if (type === 'object' && value !== null) {
49 | return 'object';
50 | }
51 | if (type === 'symbol' || (isObjectLike(value) && objectToString(value) === symbolTag)) {
52 | return 'symbol';
53 | }
54 | return 'unknown';
55 | }
56 |
57 | function generate(name, allowNull) {
58 | var validator = function (props, propName, componentName) {
59 | var value = props[propName];
60 | if (value === undefined || (allowNull && value === null)) return null;
61 | var type = getType(value);
62 | return type === name ? null : new Error('组件"' + componentName + '"的属性"' + propName + '"类型声明为"' + name + '",却得到"' + type + '"');
63 | };
64 | validator.isRequired = function (props, propName, componentName) {
65 | var value = props[propName];
66 | if (value === undefined || value === null) {
67 | return new Error('组件"' + componentName + '"的必要属性"' + propName + '"缺失,得到"' + value + '"');
68 | }
69 | return validator(props, propName, componentName);
70 | };
71 | return validator;
72 | }
73 |
74 | var any = function () {
75 | };
76 | any.isRequired = function (props, propName, componentName) {
77 | var value = props[propName];
78 | if (value === undefined) {
79 | return new Error('组件"' + componentName + '"的必要属性"' + propName + '"缺失,得到"' + value + '"');
80 | }
81 | return null;
82 | };
83 |
84 | module.exports = {
85 | number: generate('number'),
86 | string: generate('string'),
87 | func: generate('func', true),
88 | array: generate('array'),
89 | bool: generate('bool'),
90 | object: generate('object', true),
91 | symbol: generate('symbol'),
92 | any: any
93 | };
94 | } else {
95 | var any = function () {
96 | };
97 | any.isRequired = function () {
98 | };
99 | module.exports = {
100 | number: any,
101 | string: any,
102 | func: any,
103 | array: any,
104 | bool: any,
105 | object: any,
106 | symbol: any,
107 | any: any
108 | };
109 | }
110 |
111 | })(module,require);
--------------------------------------------------------------------------------
/dist/utils/wechat-weapp-redux/connect.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | var _shallowEqual = require('./shallowEqual.js');
5 |
6 | var _shallowEqual2 = _interopRequireDefault(_shallowEqual);
7 |
8 | var _warning = require('./warning.js');
9 |
10 | var _warning2 = _interopRequireDefault(_warning);
11 |
12 | var _wrapActionCreators = require('./wrapActionCreators.js');
13 |
14 | var _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | var defaultMapStateToProps = function defaultMapStateToProps(state) {
19 | return {};
20 | }; // eslint-disable-line no-unused-vars
21 | var defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {
22 | return { dispatch: dispatch };
23 | };
24 |
25 | function connect(mapStateToProps, mapDispatchToProps) {
26 | var shouldSubscribe = Boolean(mapStateToProps);
27 | var mapState = mapStateToProps || defaultMapStateToProps;
28 | var app = getApp();
29 |
30 | var mapDispatch = void 0;
31 | if (typeof mapDispatchToProps === 'function') {
32 | mapDispatch = mapDispatchToProps;
33 | } else if (!mapDispatchToProps) {
34 | mapDispatch = defaultMapDispatchToProps;
35 | } else {
36 | mapDispatch = (0, _wrapActionCreators2.default)(mapDispatchToProps);
37 | }
38 |
39 | return function wrapWithConnect(pageComponent) {
40 |
41 | function handleChange(options) {
42 | if (!this.unsubscribe) {
43 | return;
44 | }
45 |
46 | var state = this.store.getState();
47 | var mappedState = mapState(state, options);
48 | if (!this.data || (0, _shallowEqual2.default)(this.data, mappedState)) {
49 | return;
50 | }
51 | this.setData(mappedState);
52 | }
53 |
54 | function onLoad(options) {
55 | this.store = app.store;
56 | if (!this.store) {
57 | (0, _warning2.default)("Store对象不存在!");
58 | }
59 | if (shouldSubscribe) {
60 | this.unsubscribe = this.store.subscribe(handleChange.bind(this, options));
61 | handleChange.apply(this);
62 | }
63 | // pageComponent.prototype.onLoad.call(options)
64 | }
65 |
66 | function onUnload() {
67 | typeof this.unsubscribe === 'function' && this.unsubscribe();
68 | }
69 |
70 | function injectMethod(fun, options) {
71 | return function () {
72 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
73 | args[_key] = arguments[_key];
74 | }
75 |
76 | options.before && options.before.apply(this, args);
77 | var result = fun && fun.apply(this, args);
78 | options.after && options.after.apply(this, args);
79 | return result;
80 | };
81 | }
82 | var originMethod = {
83 | onLoad: pageComponent.prototype.onLoad,
84 | onUnload: pageComponent.prototype.onUnload
85 | };
86 |
87 | pageComponent.prototype.onLoad = injectMethod(pageComponent.prototype.onLoad, {
88 | before: function before(args) {
89 | onLoad.apply(this, args);
90 | }
91 | });
92 | pageComponent.prototype.onUnload = injectMethod(pageComponent.prototype.onUnload, {
93 | before: function before(args) {
94 | onUnload.apply(this, args);
95 | }
96 | });
97 |
98 | return pageComponent;
99 | };
100 | }
101 |
102 | module.exports = connect;
103 | })(module,require);
--------------------------------------------------------------------------------
/dist/reducers.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 |
8 | var _extends2 = require('./npm/babel-runtime/helpers/extends.js');
9 |
10 | var _extends3 = _interopRequireDefault(_extends2);
11 |
12 | var _toConsumableArray2 = require('./npm/babel-runtime/helpers/toConsumableArray.js');
13 |
14 | var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
15 |
16 | var _redux = require('./npm/redux/lib/index.js');
17 |
18 | var _reduxCreateReducerCurry = require('./npm/redux-create-reducer-curry/lib/index.js');
19 |
20 | var _reduxCreateReducerCurry2 = _interopRequireDefault(_reduxCreateReducerCurry);
21 |
22 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23 |
24 | var initState = {
25 | playing: {
26 | file: {},
27 | item: {},
28 | isPlaying: false
29 | },
30 | search: {
31 | list: []
32 | },
33 | rank: {
34 | items: [{
35 | text: '新歌榜',
36 | type: 1
37 | }, {
38 | text: '热歌榜',
39 | type: 2
40 | }, {
41 | text: "摇滚榜",
42 | type: 11
43 | }, {
44 | text: "爵士",
45 | type: 12
46 | }, {
47 | text: "流行",
48 | type: 16
49 | }, {
50 | text: "欧美金曲榜",
51 | type: 21
52 | }, {
53 | text: "经典老歌榜",
54 | type: 22
55 | }, {
56 | text: "情歌对唱榜",
57 | type: 23
58 | }, {
59 | text: "影视金曲榜",
60 | type: 24
61 | }, {
62 | text: "网络歌曲榜",
63 | type: 25
64 | }],
65 | type: '',
66 | board: {},
67 | songlist: []
68 | },
69 | tab: [{
70 | label: '排行榜',
71 | type: 'rank',
72 | url: '/pages/online/index/index',
73 | active: true
74 | }, {
75 | label: '搜索',
76 | type: 'search',
77 | url: '/pages/online/search/index',
78 | active: false
79 | }]
80 | };
81 |
82 | var tab = (0, _reduxCreateReducerCurry2.default)(initState.tab)({
83 | TAB_ACTIVE: function TAB_ACTIVE(state, action) {
84 | return [].concat((0, _toConsumableArray3.default)(state.map(function (item) {
85 | item.active = item.type === action.active;
86 | return item;
87 | })));
88 | }
89 | });
90 |
91 | var rank = (0, _reduxCreateReducerCurry2.default)(initState.rank)({
92 | RANK_UPDATE: function RANK_UPDATE(state, action) {
93 | return (0, _extends3.default)({}, state, action.data);
94 | },
95 | LIST_UPDATE: function LIST_UPDATE(state, action) {
96 | console.log(state, action);
97 | return (0, _extends3.default)({}, state, {
98 | songlist: [].concat((0, _toConsumableArray3.default)(action.list))
99 | });
100 | },
101 | LIST_APPEND: function LIST_APPEND(state, action) {
102 | return (0, _extends3.default)({}, state, {
103 | songlist: [].concat((0, _toConsumableArray3.default)(state.songlist), (0, _toConsumableArray3.default)(action.data.songlist))
104 | });
105 | },
106 | RANK_BOARD_UPDATE: function RANK_BOARD_UPDATE(state, action) {
107 | return (0, _extends3.default)({}, state, {
108 | board: (0, _extends3.default)({}, action.board)
109 | });
110 | }
111 | });
112 |
113 | var search = (0, _reduxCreateReducerCurry2.default)(initState.search)({
114 | SEARCH: function SEARCH(state, action) {
115 | return (0, _extends3.default)({}, state, {
116 | list: action.songlist
117 | });
118 | }
119 | });
120 |
121 | var playing = (0, _reduxCreateReducerCurry2.default)(initState.playing)({
122 | UPDATE_PLAY: function UPDATE_PLAY(state, action) {
123 | var newState = (0, _extends3.default)({}, state, action);
124 | wx.setStorage({ key: 'playing', data: newState });
125 | return newState;
126 | }
127 | });
128 |
129 | exports.default = (0, _redux.combineReducers)({
130 | rank: rank,
131 | tab: tab,
132 | search: search,
133 | playing: playing
134 | });
135 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash.isplainobject/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * lodash 3.2.0 (Custom Build)
5 | * Build: `lodash modern modularize exports="npm" -o ./`
6 | * Copyright 2012-2015 The Dojo Foundation
7 | * Based on Underscore.js 1.8.3
8 | * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
9 | * Available under MIT license
10 | */
11 | var baseFor = require('../lodash._basefor/index.js'),
12 | isArguments = require('../lodash.isarguments/index.js'),
13 | keysIn = require('../lodash.keysin/index.js');
14 |
15 | /** `Object#toString` result references. */
16 | var objectTag = '[object Object]';
17 |
18 | /**
19 | * Checks if `value` is object-like.
20 | *
21 | * @private
22 | * @param {*} value The value to check.
23 | * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
24 | */
25 | function isObjectLike(value) {
26 | return !!value && typeof value == 'object';
27 | }
28 |
29 | /** Used for native method references. */
30 | var objectProto = Object.prototype;
31 |
32 | /** Used to check objects for own properties. */
33 | var hasOwnProperty = objectProto.hasOwnProperty;
34 |
35 | /**
36 | * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
37 | * of values.
38 | */
39 | var objToString = objectProto.toString;
40 |
41 | /**
42 | * The base implementation of `_.forIn` without support for callback
43 | * shorthands and `this` binding.
44 | *
45 | * @private
46 | * @param {Object} object The object to iterate over.
47 | * @param {Function} iteratee The function invoked per iteration.
48 | * @returns {Object} Returns `object`.
49 | */
50 | function baseForIn(object, iteratee) {
51 | return baseFor(object, iteratee, keysIn);
52 | }
53 |
54 | /**
55 | * Checks if `value` is a plain object, that is, an object created by the
56 | * `Object` constructor or one with a `[[Prototype]]` of `null`.
57 | *
58 | * **Note:** This method assumes objects created by the `Object` constructor
59 | * have no inherited enumerable properties.
60 | *
61 | * @static
62 | * @memberOf _
63 | * @category Lang
64 | * @param {*} value The value to check.
65 | * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
66 | * @example
67 | *
68 | * function Foo() {
69 | * this.a = 1;
70 | * }
71 | *
72 | * _.isPlainObject(new Foo);
73 | * // => false
74 | *
75 | * _.isPlainObject([1, 2, 3]);
76 | * // => false
77 | *
78 | * _.isPlainObject({ 'x': 0, 'y': 0 });
79 | * // => true
80 | *
81 | * _.isPlainObject(Object.create(null));
82 | * // => true
83 | */
84 | function isPlainObject(value) {
85 | var Ctor;
86 |
87 | // Exit early for non `Object` objects.
88 | if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isArguments(value)) ||
89 | (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {
90 | return false;
91 | }
92 | // IE < 9 iterates inherited properties before own properties. If the first
93 | // iterated property is an object's own property then there are no inherited
94 | // enumerable properties.
95 | var result;
96 | // In most environments an object's own properties are iterated before
97 | // its inherited properties. If the last iterated property is an object's
98 | // own property then there are no inherited enumerable properties.
99 | baseForIn(value, function(subValue, key) {
100 | result = key;
101 | });
102 | return result === undefined || hasOwnProperty.call(value, result);
103 | }
104 |
105 | module.exports = isPlainObject;
106 |
107 | })(module,require);
--------------------------------------------------------------------------------
/dist/pages/online/search/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 |
8 | var _assign = require('../../../npm/babel-runtime/core-js/object/assign.js');
9 |
10 | var _assign2 = _interopRequireDefault(_assign);
11 |
12 | var _getPrototypeOf = require('../../../npm/babel-runtime/core-js/object/get-prototype-of.js');
13 |
14 | var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
15 |
16 | var _classCallCheck2 = require('../../../npm/babel-runtime/helpers/classCallCheck.js');
17 |
18 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19 |
20 | var _createClass2 = require('../../../npm/babel-runtime/helpers/createClass.js');
21 |
22 | var _createClass3 = _interopRequireDefault(_createClass2);
23 |
24 | var _possibleConstructorReturn2 = require('../../../npm/babel-runtime/helpers/possibleConstructorReturn.js');
25 |
26 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
27 |
28 | var _inherits2 = require('../../../npm/babel-runtime/helpers/inherits.js');
29 |
30 | var _inherits3 = _interopRequireDefault(_inherits2);
31 |
32 | var _labrador = require('../../../npm/labrador/index.js');
33 |
34 | var _labrador2 = _interopRequireDefault(_labrador);
35 |
36 | var _actions = require('../../../actions.js');
37 |
38 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39 |
40 | //index.js
41 | //获取应用实例
42 | var Search = function (_wx$Component) {
43 | (0, _inherits3.default)(Search, _wx$Component);
44 |
45 | function Search() {
46 | var _ref;
47 |
48 | var _temp, _this, _ret;
49 |
50 | (0, _classCallCheck3.default)(this, Search);
51 |
52 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
53 | args[_key] = arguments[_key];
54 | }
55 |
56 | return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Search.__proto__ || (0, _getPrototypeOf2.default)(Search)).call.apply(_ref, [this].concat(args))), _this), _this.app = getApp(), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
57 | }
58 |
59 | (0, _createClass3.default)(Search, [{
60 | key: 'showToast',
61 | value: function showToast(text) {
62 | var _this2 = this;
63 |
64 | var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'success';
65 |
66 | this.setData({
67 | toast: {
68 | text: text, type: type
69 | }
70 | });
71 | setTimeout(function () {
72 | _this2.setData({
73 | toast: ''
74 | });
75 | }, 3000);
76 | }
77 | }, {
78 | key: 'inputing',
79 | value: function inputing(e) {
80 | this.setData({
81 | search: (0, _assign2.default)(this.data.search, { value: e.detail.value })
82 | });
83 | }
84 | }, {
85 | key: 'bindSearch',
86 | value: function bindSearch(e) {
87 | var keyword = this.data.search.value;
88 | if (!keyword) {
89 | this.showToast('请输入关键字', 'warn');
90 | return;
91 | }
92 | _labrador2.default.app.dispatch((0, _actions.searchList)(keyword));
93 | }
94 | }, {
95 | key: 'onReady',
96 | value: function onReady() {
97 | _labrador2.default.setNavigationBarTitle({ title: "在线搜索" });
98 | _labrador2.default.app.dispatch({
99 | type: 'TAB_ACTIVE',
100 | active: 'search'
101 | });
102 | }
103 | }]);
104 | return Search;
105 | }(_labrador2.default.Component);
106 |
107 | exports.default = _labrador2.default.app.connect(function (state) {
108 | return {
109 | list: state.search.list,
110 | tab: state.tab,
111 | search: {
112 | value: ""
113 | },
114 | isEnd: false
115 | };
116 | })(Search);
117 | Page(_labrador._createPage(exports.default));
118 |
119 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux-logger/lib/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
5 |
6 | Object.defineProperty(exports, "__esModule", {
7 | value: true
8 | });
9 |
10 | var _core = require('./core.js');
11 |
12 | var _helpers = require('./helpers.js');
13 |
14 | var _defaults = require('./defaults.js');
15 |
16 | var _defaults2 = _interopRequireDefault(_defaults);
17 |
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19 |
20 | /**
21 | * Creates logger with following options
22 | *
23 | * @namespace
24 | * @param {object} options - options for logger
25 | * @param {string | function | object} options.level - console[level]
26 | * @param {boolean} options.duration - print duration of each action?
27 | * @param {boolean} options.timestamp - print timestamp with each action?
28 | * @param {object} options.colors - custom colors
29 | * @param {object} options.logger - implementation of the `console` API
30 | * @param {boolean} options.logErrors - should errors in action execution be caught, logged, and re-thrown?
31 | * @param {boolean} options.collapsed - is group collapsed?
32 | * @param {boolean} options.predicate - condition which resolves logger behavior
33 | * @param {function} options.stateTransformer - transform state before print
34 | * @param {function} options.actionTransformer - transform action before print
35 | * @param {function} options.errorTransformer - transform error before print
36 | *
37 | * @returns {function} logger middleware
38 | */
39 | function createLogger() {
40 | var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
41 |
42 | var loggerOptions = _extends({}, _defaults2.default, options);
43 |
44 | var logger = loggerOptions.logger;
45 | var transformer = loggerOptions.transformer;
46 | var stateTransformer = loggerOptions.stateTransformer;
47 | var errorTransformer = loggerOptions.errorTransformer;
48 | var predicate = loggerOptions.predicate;
49 | var logErrors = loggerOptions.logErrors;
50 | var diffPredicate = loggerOptions.diffPredicate;
51 |
52 | // Return if 'console' object is not defined
53 |
54 | if (typeof logger === 'undefined') {
55 | return function () {
56 | return function (next) {
57 | return function (action) {
58 | return next(action);
59 | };
60 | };
61 | };
62 | }
63 |
64 | if (transformer) {
65 | console.error('Option \'transformer\' is deprecated, use \'stateTransformer\' instead!'); // eslint-disable-line no-console
66 | }
67 |
68 | var logBuffer = [];
69 |
70 | return function (_ref) {
71 | var getState = _ref.getState;
72 | return function (next) {
73 | return function (action) {
74 | // Exit early if predicate function returns 'false'
75 | if (typeof predicate === 'function' && !predicate(getState, action)) {
76 | return next(action);
77 | }
78 |
79 | var logEntry = {};
80 | logBuffer.push(logEntry);
81 |
82 | logEntry.started = _helpers.timer.now();
83 | logEntry.startedTime = new Date();
84 | logEntry.prevState = stateTransformer(getState());
85 | logEntry.action = action;
86 |
87 | var returnedValue = undefined;
88 | if (logErrors) {
89 | try {
90 | returnedValue = next(action);
91 | } catch (e) {
92 | logEntry.error = errorTransformer(e);
93 | }
94 | } else {
95 | returnedValue = next(action);
96 | }
97 |
98 | logEntry.took = _helpers.timer.now() - logEntry.started;
99 | logEntry.nextState = stateTransformer(getState());
100 |
101 | var diff = loggerOptions.diff && typeof diffPredicate === 'function' ? diffPredicate(getState, action) : loggerOptions.diff;
102 |
103 | (0, _core.printBuffer)(logBuffer, _extends({}, loggerOptions, { diff: diff }));
104 | logBuffer.length = 0;
105 |
106 | if (logEntry.error) throw logEntry.error;
107 | return returnedValue;
108 | };
109 | };
110 | };
111 | }
112 |
113 | exports.default = createLogger;
114 | module.exports = exports['default'];
115 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/lodash.keysin/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * lodash 3.0.8 (Custom Build)
5 | * Build: `lodash modern modularize exports="npm" -o ./`
6 | * Copyright 2012-2015 The Dojo Foundation
7 | * Based on Underscore.js 1.8.3
8 | * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
9 | * Available under MIT license
10 | */
11 | var isArguments = require('../lodash.isarguments/index.js'),
12 | isArray = require('../lodash.isarray/index.js');
13 |
14 | /** Used to detect unsigned integer values. */
15 | var reIsUint = /^\d+$/;
16 |
17 | /** Used for native method references. */
18 | var objectProto = Object.prototype;
19 |
20 | /** Used to check objects for own properties. */
21 | var hasOwnProperty = objectProto.hasOwnProperty;
22 |
23 | /**
24 | * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
25 | * of an array-like value.
26 | */
27 | var MAX_SAFE_INTEGER = 9007199254740991;
28 |
29 | /**
30 | * Checks if `value` is a valid array-like index.
31 | *
32 | * @private
33 | * @param {*} value The value to check.
34 | * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
35 | * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
36 | */
37 | function isIndex(value, length) {
38 | value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
39 | length = length == null ? MAX_SAFE_INTEGER : length;
40 | return value > -1 && value % 1 == 0 && value < length;
41 | }
42 |
43 | /**
44 | * Checks if `value` is a valid array-like length.
45 | *
46 | * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
47 | *
48 | * @private
49 | * @param {*} value The value to check.
50 | * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
51 | */
52 | function isLength(value) {
53 | return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
54 | }
55 |
56 | /**
57 | * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
58 | * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
59 | *
60 | * @static
61 | * @memberOf _
62 | * @category Lang
63 | * @param {*} value The value to check.
64 | * @returns {boolean} Returns `true` if `value` is an object, else `false`.
65 | * @example
66 | *
67 | * _.isObject({});
68 | * // => true
69 | *
70 | * _.isObject([1, 2, 3]);
71 | * // => true
72 | *
73 | * _.isObject(1);
74 | * // => false
75 | */
76 | function isObject(value) {
77 | // Avoid a V8 JIT bug in Chrome 19-20.
78 | // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
79 | var type = typeof value;
80 | return !!value && (type == 'object' || type == 'function');
81 | }
82 |
83 | /**
84 | * Creates an array of the own and inherited enumerable property names of `object`.
85 | *
86 | * **Note:** Non-object values are coerced to objects.
87 | *
88 | * @static
89 | * @memberOf _
90 | * @category Object
91 | * @param {Object} object The object to query.
92 | * @returns {Array} Returns the array of property names.
93 | * @example
94 | *
95 | * function Foo() {
96 | * this.a = 1;
97 | * this.b = 2;
98 | * }
99 | *
100 | * Foo.prototype.c = 3;
101 | *
102 | * _.keysIn(new Foo);
103 | * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
104 | */
105 | function keysIn(object) {
106 | if (object == null) {
107 | return [];
108 | }
109 | if (!isObject(object)) {
110 | object = Object(object);
111 | }
112 | var length = object.length;
113 | length = (length && isLength(length) &&
114 | (isArray(object) || isArguments(object)) && length) || 0;
115 |
116 | var Ctor = object.constructor,
117 | index = -1,
118 | isProto = typeof Ctor == 'function' && Ctor.prototype === object,
119 | result = Array(length),
120 | skipIndexes = length > 0;
121 |
122 | while (++index < length) {
123 | result[index] = (index + '');
124 | }
125 | for (var key in object) {
126 | if (!(skipIndexes && isIndex(key, length)) &&
127 | !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
128 | result.push(key);
129 | }
130 | }
131 | return result;
132 | }
133 |
134 | module.exports = keysIn;
135 |
136 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/labrador/list.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 | /**
4 | * @copyright Maichong Software Ltd. 2016 http://maichong.it
5 | * @date 2016-10-16
6 | * @author Liang
7 | */
8 |
9 | function List(Component, ref, map) {
10 | this.data = [];
11 | this.Component = Component;
12 | this._refKey = ref;
13 | this.map = map;
14 | this.props = {};
15 | var me = this;
16 | this._refs = {};
17 |
18 | //检查子组件存在的生命周期函数
19 | //注意:如果子组件的子组件有某个生命周期函数,那么子组件中也应当有对应的显式声明,哪怕是空函数,否者子组件的子组件不会被调用
20 | ['onLoad', 'onReady', 'onShow', 'onHide', 'onUnload', 'onPullDownRefreash'].forEach(function (name) {
21 | if (Component.prototype[name]) {
22 | me[name] = function () {
23 | me['_' + name] = true;
24 | var args = arguments;
25 | me.children.forEach(function (child) {
26 | child[name].apply(child, args);
27 | });
28 | };
29 | }
30 | });
31 | }
32 |
33 | List.prototype.setData = function setData(key, data) {
34 | this.data[key] = data;
35 | this.parent.setData(this.key, this.data);
36 | };
37 |
38 | List.prototype._init = function init(key, parent) {
39 | var me = this;
40 | me.key = key;
41 | me.parent = parent;
42 | me.id = parent.id + ':' + key;
43 | if (key && parent && parent.path) {
44 | me.path = parent.path + '.' + key;
45 | } else {
46 | me.path = key;
47 | }
48 | me.name = me.constructor.name || me.path;
49 | me.children = [];
50 |
51 | parent._registerRef(me._refKey, 'items', me);
52 | };
53 |
54 | List.prototype._createItem = function (key, item) {
55 | var me = this;
56 | var parent = me.parent;
57 | var props = {};
58 | var component = null;
59 | if (false) {
60 | console.log('%c%s create item key: %s item: %o', 'color:#2a8f99', me.id, key, JSON.parse(JSON.stringify(item)));
61 | }
62 | Object.keys(this.map).forEach(function (k) {
63 | var value = me.map[k];
64 | if (typeof value === 'string') {
65 | var refKey = value.substr(1);
66 | if (value === '>>') {
67 | value = item;
68 | if (!me._refs['>']) {
69 | me._refs['>'] = [];
70 | }
71 | me._refs['>'].push(k);
72 | } else if (value[0] === '>') {
73 | value = item[refKey];
74 | me._refs[refKey] = k;
75 | } else if (value[0] === '#') {
76 | value = parent[refKey];
77 | if (typeof value === 'function') {
78 | value = function () {
79 | parent[refKey].apply(parent, [component].concat(Array.prototype.slice.call(arguments)));
80 | };
81 | }
82 | }
83 | }
84 | props[k] = value;
85 | });
86 | props._item = item;
87 | component = new me.Component(props, true);
88 | component._init(key, me);
89 | if (me._onLoad && component.onLoad) {
90 | component.onLoad();
91 | }
92 | if (me._onReady && component.onReady) {
93 | component.onReady();
94 | }
95 | return component;
96 | };
97 |
98 | List.prototype.onUpdate = function (props) {
99 | var originalChildren = this.children;
100 | var children = [];
101 | var data = [];
102 |
103 | function findChildForItem(item) {
104 | for (var i in originalChildren) {
105 | if (originalChildren[i].props._item === item) {
106 | return originalChildren.splice(i, 1)[0];
107 | }
108 | }
109 | }
110 |
111 | for (var i in props.items) {
112 | var item = props.items[i];
113 | var child = findChildForItem(item);
114 | if (!child) {
115 | child = this._createItem(i, item);
116 | } else {
117 | var newProps = {};
118 | for (var refKey in this._refs) {
119 | /**
120 | * refKey 为对应引用item的key
121 | * k 为子控件props对应的key
122 | */
123 | var k = this._refs[refKey];
124 | if (refKey === '>') {
125 | k.forEach(function (kk) {
126 | newProps[kk] = item;
127 | });
128 | continue;
129 | }
130 | if (item[refKey] !== child.props[k]) {
131 | newProps[k] = item[refKey];
132 | }
133 | }
134 | if (Object.keys(newProps).length) {
135 | newProps = Object.assign({}, child.props, newProps);
136 | if (false) {
137 | console.log('%c%s onUpdate(%o)', 'color:#2a8f99', child.id, JSON.parse(JSON.stringify(newProps)));
138 | }
139 | if (child.onUpdate) {
140 | child.onUpdate(newProps);
141 | }
142 | child.props = newProps;
143 | }
144 | }
145 | if (i != child.key) {
146 | child._setKey(i, this);
147 | }
148 | children.push(child);
149 | data.push(child.data);
150 | }
151 | this.children = children;
152 | this.data = data;
153 | this.parent.setData(this.key, data);
154 |
155 | //销毁不再需要的子组件
156 | originalChildren.forEach(function (c) {
157 | if (c.onUnload) {
158 | c.onUnload();
159 | }
160 | });
161 | };
162 |
163 | module.exports = List;
164 |
165 | })(module,require);
--------------------------------------------------------------------------------
/dist/npm/redux-logger/lib/core.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | (function(module,require){var exports=module.exports={};
3 |
4 | Object.defineProperty(exports, "__esModule", {
5 | value: true
6 | });
7 | exports.printBuffer = printBuffer;
8 |
9 | var _helpers = require('./helpers.js');
10 |
11 | var _diff = require('./diff.js');
12 |
13 | var _diff2 = _interopRequireDefault(_diff);
14 |
15 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16 |
17 | function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
18 |
19 | function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; }
20 |
21 | /**
22 | * Get log level string based on supplied params
23 | *
24 | * @param {string | function | object} level - console[level]
25 | * @param {object} action - selected action
26 | * @param {array} payload - selected payload
27 | * @param {string} type - log entry type
28 | *
29 | * @returns {string} level
30 | */
31 | function getLogLevel(level, action, payload, type) {
32 | switch (typeof level === 'undefined' ? 'undefined' : _typeof(level)) {
33 | case 'object':
34 | return typeof level[type] === 'function' ? level[type].apply(level, _toConsumableArray(payload)) : level[type];
35 | case 'function':
36 | return level(action);
37 | default:
38 | return level;
39 | }
40 | }
41 |
42 | function defaultTitleFormatter(options) {
43 | var timestamp = options.timestamp;
44 | var duration = options.duration;
45 |
46 | return function (action, time, took) {
47 | var parts = ['action'];
48 | if (timestamp) {
49 | parts.push('@ ' + time);
50 | }
51 | parts.push(action.type);
52 | if (duration) {
53 | parts.push('(in ' + took.toFixed(2) + ' ms)');
54 | }
55 | return parts.join(' ');
56 | };
57 | }
58 |
59 | function printBuffer(buffer, options) {
60 | var logger = options.logger;
61 | var actionTransformer = options.actionTransformer;
62 | var _options$titleFormatt = options.titleFormatter;
63 | var titleFormatter = _options$titleFormatt === undefined ? defaultTitleFormatter(options) : _options$titleFormatt;
64 | var collapsed = options.collapsed;
65 | var colors = options.colors;
66 | var level = options.level;
67 | var diff = options.diff;
68 |
69 | buffer.forEach(function (logEntry, key) {
70 | var started = logEntry.started;
71 | var startedTime = logEntry.startedTime;
72 | var action = logEntry.action;
73 | var prevState = logEntry.prevState;
74 | var error = logEntry.error;
75 | var took = logEntry.took;
76 | var nextState = logEntry.nextState;
77 |
78 | var nextEntry = buffer[key + 1];
79 |
80 | if (nextEntry) {
81 | nextState = nextEntry.prevState;
82 | took = nextEntry.started - started;
83 | }
84 |
85 | // Message
86 | var formattedAction = actionTransformer(action);
87 | var isCollapsed = typeof collapsed === 'function' ? collapsed(function () {
88 | return nextState;
89 | }, action) : collapsed;
90 |
91 | var formattedTime = (0, _helpers.formatTime)(startedTime);
92 | var titleCSS = colors.title ? 'color: ' + colors.title(formattedAction) + ';' : null;
93 | var title = titleFormatter(formattedAction, formattedTime, took);
94 |
95 | // Render
96 | try {
97 | if (isCollapsed) {
98 | if (colors.title) logger.groupCollapsed('%c ' + title, titleCSS);else logger.groupCollapsed(title);
99 | } else {
100 | if (colors.title) logger.group('%c ' + title, titleCSS);else logger.group(title);
101 | }
102 | } catch (e) {
103 | logger.log(title);
104 | }
105 |
106 | var prevStateLevel = getLogLevel(level, formattedAction, [prevState], 'prevState');
107 | var actionLevel = getLogLevel(level, formattedAction, [formattedAction], 'action');
108 | var errorLevel = getLogLevel(level, formattedAction, [error, prevState], 'error');
109 | var nextStateLevel = getLogLevel(level, formattedAction, [nextState], 'nextState');
110 |
111 | if (prevStateLevel) {
112 | if (colors.prevState) logger[prevStateLevel]('%c prev state', 'color: ' + colors.prevState(prevState) + '; font-weight: bold', prevState);else logger[prevStateLevel]('prev state', prevState);
113 | }
114 |
115 | if (actionLevel) {
116 | if (colors.action) logger[actionLevel]('%c action', 'color: ' + colors.action(formattedAction) + '; font-weight: bold', formattedAction);else logger[actionLevel]('action', formattedAction);
117 | }
118 |
119 | if (error && errorLevel) {
120 | if (colors.error) logger[errorLevel]('%c error', 'color: ' + colors.error(error, prevState) + '; font-weight: bold', error);else logger[errorLevel]('error', error);
121 | }
122 |
123 | if (nextStateLevel) {
124 | if (colors.nextState) logger[nextStateLevel]('%c next state', 'color: ' + colors.nextState(nextState) + '; font-weight: bold', nextState);else logger[nextStateLevel]('next state', nextState);
125 | }
126 |
127 | if (diff) {
128 | (0, _diff2.default)(prevState, nextState, logger, isCollapsed);
129 | }
130 |
131 | try {
132 | logger.groupEnd();
133 | } catch (e) {
134 | logger.log('—— log end ——');
135 | }
136 | });
137 | }
138 | })(module,require);
--------------------------------------------------------------------------------