>>1,o=e[r];if(!(void 0!==o&&0P(l,n))void 0!==u&&0>P(u,l)?(e[r]=u,e[a]=n,r=a):(e[r]=l,e[i]=n,r=i);else{if(!(void 0!==u&&0>P(u,n)))break e;e[r]=u,e[a]=n,r=a}}}return t}return null}function P(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var O=[],N=[],R=1,j=null,M=3,z=!1,I=!1,D=!1;function F(e){for(var t=S(N);null!==t;){if(null===t.callback)C(N);else{if(!(t.startTime<=e))break;C(N),t.sortIndex=t.expirationTime,T(O,t)}t=S(N)}}function L(e){if(D=!1,F(e),!I)if(null!==S(O))I=!0,r(A);else{var t=S(N);null!==t&&o(L,t.startTime-e)}}function A(e,n){I=!1,D&&(D=!1,i()),z=!0;var r=M;try{for(F(n),j=S(O);null!==j&&(!(j.expirationTime>n)||e&&!l());){var a=j.callback;if(null!==a){j.callback=null,M=j.priorityLevel;var u=a(j.expirationTime<=n);n=t.unstable_now(),"function"==typeof u?j.callback=u:j===S(O)&&C(O),F(n)}else C(O);j=S(O)}if(null!==j)var c=!0;else{var s=S(N);null!==s&&o(L,s.startTime-n),c=!1}return c}finally{j=null,M=r,z=!1}}function U(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var W=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){I||z||(I=!0,r(A))},t.unstable_getCurrentPriorityLevel=function(){return M},t.unstable_getFirstCallbackNode=function(){return S(O)},t.unstable_next=function(e){switch(M){case 1:case 2:case 3:var t=3;break;default:t=M}var n=M;M=t;try{return e()}finally{M=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=W,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=M;M=e;try{return t()}finally{M=n}},t.unstable_scheduleCallback=function(e,n,l){var a=t.unstable_now();if("object"==typeof l&&null!==l){var u=l.delay;u="number"==typeof u&&0a?(e.sortIndex=u,T(N,e),null===S(O)&&e===S(N)&&(D?i():D=!0,o(L,u-a))):(e.sortIndex=l,T(O,e),I||z||(I=!0,r(A))),e},t.unstable_shouldYield=function(){var e=t.unstable_now();F(e);var n=S(O);return n!==j&&null!==j&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function y(e,t){for(var n=0;n.is-header{color:#fff;text-align:center;margin-bottom:20px}.react-demokit>.is-header>h1{font-size:48px;font-weight:bold;text-transform:capitalize}.react-demokit>.is-header>h2{font-size:24px;font-weight:300}.react-demokit>.is-header h1:empty,.react-demokit>.is-header h2:empty{display:none}.react-demokit>.is-header img{display:inline-block}.react-demokit>.is-body{flex:1}.react-demokit>.is-footer{text-align:center;font-size:14px;color:#999}.app-container .is-body{padding:20px;background:#fff;width:50%;min-width:320px;margin:0 auto;text-align:center}
+
diff --git a/docs/assets/styles/main.aef6c218a0305c7bb1f1.css b/docs/assets/styles/main.aef6c218a0305c7bb1f1.css
deleted file mode 100644
index 7a64b90..0000000
--- a/docs/assets/styles/main.aef6c218a0305c7bb1f1.css
+++ /dev/null
@@ -1,2 +0,0 @@
-*{margin:0;padding:0}html,body,#app,.app-container{height:100%}.app-container{padding:50px}.app-container button{background:#3cc51f;width:100%;display:block;margin-bottom:10px;border-radius:10px;color:#fff;padding:20px;border:none}.app-container button:active{background:#2f9918}.app-container button:focus{outline:none}
-
diff --git a/docs/index.html b/docs/index.html
index 3d7bafa..556b4c2 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,16 +1 @@
-
-
-
-
-
-
-
-
-
-
- App Example
-
-
-
-
-
+ReactComponent | ReactStatusManager
\ No newline at end of file
diff --git a/docs/sw.js b/docs/sw.js
new file mode 100644
index 0000000..d0e3971
--- /dev/null
+++ b/docs/sw.js
@@ -0,0 +1,3 @@
+var __wpo = {"assets":{"main":["./assets/styles/main.31d4a06ab3a4445442c3.css","./assets/bundle.cd333132d4f9a48f679b.js","./favicon.ico","./"],"additional":[],"optional":[]},"externals":[],"hashesMap":{"a25206ef66784ef9bb79ef20e5a0647a2de6035f":"./assets/styles/main.31d4a06ab3a4445442c3.css","2d4cb382c2093797353468429bf8636fded7beb3":"./assets/bundle.cd333132d4f9a48f679b.js","cc258801a04cd766095328a9023b4cb1d255f47a":"./favicon.ico","b17552d713007fb52e736904aaacd61c228c45bb":"./"},"strategy":"changed","responseStrategy":"cache-first","version":"3/3/2021, 9:53:51 AM","name":"webpack-offline","pluginVersion":"5.0.7","relativePaths":true};
+
+!function(e){var n={};function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(r,i,function(n){return e[n]}.bind(null,i));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=0)}([function(e,n,t){"use strict";var r,i,o;if(r=ExtendableEvent.prototype.waitUntil,i=FetchEvent.prototype.respondWith,o=new WeakMap,ExtendableEvent.prototype.waitUntil=function(e){var n=this,t=o.get(n);if(!t)return t=[Promise.resolve(e)],o.set(n,t),r.call(n,Promise.resolve().then((function e(){var r=t.length;return Promise.all(t.map((function(e){return e.catch((function(){}))}))).then((function(){return t.length!=r?e():(o.delete(n),Promise.all(t))}))})));t.push(Promise.resolve(e))},FetchEvent.prototype.respondWith=function(e){return this.waitUntil(e),i.call(this,e)},void 0===a)var a=!1;function u(e,n){return caches.match(e,{cacheName:n}).then((function(t){return c(t)?t:s(t).then((function(t){return caches.open(n).then((function(n){return n.put(e,t)})).then((function(){return t}))}))})).catch((function(){}))}function c(e){return!e||!e.redirected||!e.ok||"opaqueredirect"===e.type}function s(e){return c(e)?Promise.resolve(e):("body"in e?Promise.resolve(e.body):e.blob()).then((function(n){return new Response(n,{headers:e.headers,status:e.status})}))}function f(e,n){n.forEach((function(e){}))}!function(e,n){var t=n.cacheMaps,r=n.navigationPreload,i=e.strategy,o=e.responseStrategy,a=e.assets,c=e.hashesMap,l=e.externals,h=e.prefetchRequest||{credentials:"same-origin",mode:"cors"},d=e.name,p=e.version,v=d+":"+p,m=d+"$preload";Object.keys(a).forEach((function(e){a[e]=a[e].map((function(e){var n=new URL(e,location);return n.hash="",-1===l.indexOf(e)&&(n.search=""),n.toString()}))})),c=Object.keys(c).reduce((function(e,n){var t=new URL(c[n],location);return t.search="",t.hash="",e[n]=t.toString(),e}),{}),l=l.map((function(e){var n=new URL(e,location);return n.hash="",n.toString()}));var g=[].concat(a.main,a.additional,a.optional);function w(n){var t=a[n];return caches.open(v).then((function(r){return x(r,t,{bust:e.version,request:h,failAll:"main"===n})})).then((function(){f("Cached assets: "+n,t)})).catch((function(e){throw e}))}function y(n){return caches.keys().then((function(e){for(var n=e.length,t=void 0;n--&&0!==(t=e[n]).indexOf(d););if(t){var r=void 0;return caches.open(t).then((function(e){return r=e,e.match(new URL("__offline_webpack__data",location).toString())})).then((function(e){if(e)return Promise.all([r,r.keys(),e.json()])}))}})).then((function(t){if(!t)return w(n);var r=t[0],i=t[1],o=t[2],u=o.hashmap,s=o.version;if(!o.hashmap||s===e.version)return w(n);var l=Object.keys(u).map((function(e){return u[e]})),d=i.map((function(e){var n=new URL(e.url);return n.search="",n.hash="",n.toString()})),p=a[n],m=[],g=p.filter((function(e){return-1===d.indexOf(e)||-1===l.indexOf(e)}));Object.keys(c).forEach((function(e){var n=c[e];if(-1!==p.indexOf(n)&&-1===g.indexOf(n)&&-1===m.indexOf(n)){var t=u[e];t&&-1!==d.indexOf(t)?m.push([t,n]):g.push(n)}})),f("Changed assets: "+n,g),f("Moved assets: "+n,m);var y=Promise.all(m.map((function(e){return r.match(e[0]).then((function(n){return[e[1],n]}))})));return caches.open(v).then((function(t){var r=y.then((function(e){return Promise.all(e.map((function(e){return t.put(e[0],e[1])})))}));return Promise.all([r,x(t,g,{bust:e.version,request:h,failAll:"main"===n,deleteFirst:"main"!==n})])}))}))}function b(){return caches.keys().then((function(e){var n=e.map((function(e){if(0===e.indexOf(d)&&0!==e.indexOf(v))return caches.delete(e)}));return Promise.all(n)}))}function P(){return caches.open(v).then((function(n){var t=new Response(JSON.stringify({version:e.version,hashmap:c}));return n.put(new URL("__offline_webpack__data",location).toString(),t)}))}self.addEventListener("install",(function(e){var n=void 0;n="changed"===i?y("main"):w("main"),e.waitUntil(n)})),self.addEventListener("activate",(function(e){var n=function(){if(!a.additional.length)return Promise.resolve();var e=void 0;e="changed"===i?y("additional"):w("additional");return e.catch((function(e){}))}();n=(n=(n=n.then(P)).then(b)).then((function(){if(self.clients&&self.clients.claim)return self.clients.claim()})),r&&self.registration.navigationPreload&&(n=Promise.all([n,self.registration.navigationPreload.enable()])),e.waitUntil(n)})),self.addEventListener("fetch",(function(e){if("GET"===e.request.method&&("only-if-cached"!==e.request.cache||"same-origin"===e.request.mode)){var n=new URL(e.request.url);n.hash="";var i=n.toString();-1===l.indexOf(i)&&(n.search="",i=n.toString());var a=-1!==g.indexOf(i),c=i;if(!a){var s=function(e){var n=e.url,r=new URL(n),i=void 0;i=function(e){return"navigate"===e.mode||e.headers.get("Upgrade-Insecure-Requests")||-1!==(e.headers.get("Accept")||"").indexOf("text/html")}(e)?"navigate":r.origin===location.origin?"same-origin":"cross-origin";for(var o=0;o/src/$1'
+ },
+ setupFilesAfterEnv: ['/jest.setup.js']
+};
diff --git a/jest.setup.js b/jest.setup.js
new file mode 100644
index 0000000..3482c86
--- /dev/null
+++ b/jest.setup.js
@@ -0,0 +1,3 @@
+import { configure } from 'enzyme';
+import Adapter from 'enzyme-adapter-react-16';
+configure({ adapter: new Adapter() });
diff --git a/jsconfig.json b/jsconfig.json
new file mode 100644
index 0000000..504cd64
--- /dev/null
+++ b/jsconfig.json
@@ -0,0 +1,5 @@
+{
+ "compilerOptions": {
+ "experimentalDecorators": true
+ }
+}
diff --git a/package.json b/package.json
index 87262fa..761534e 100644
--- a/package.json
+++ b/package.json
@@ -1,25 +1,38 @@
{
- "name": "@feizheng/react-status-manager",
- "version": "1.1.1",
+ "name": "@jswork/react-status-manager",
+ "version": "1.0.0",
"description": "React component for status manager.",
"main": "dist/index.js",
"scripts": {
- "dev": "cross-env NODE_ENV=development webpack-dev-server --env.type=dev",
- "build": "cross-env NODE_ENV=production webpack -p --env.type=build",
- "release": "cross-env NODE_ENV=production webpack -p --env.type=release",
- "docs": "cross-env NODE_ENV=production webpack -p --env.type=docs",
+ "dev": "cross-env NODE_ENV=development webpack-dev-server",
+ "build": "cross-env NODE_ENV=production webpack -p",
+ "postbuild": "node-sass src/components/style.scss dist/style.css",
+ "predocs": "node build/markdown.js",
+ "docs": "cross-env NODE_ENV=docs webpack -p",
+ "postdocs": "t2k",
+ "pages": "./bin/docs.rb",
"start": "node build/server.js",
- "test": "jest"
+ "test": "jest",
+ "release": "release-it"
},
"repository": {
"type": "git",
"url": "git+https://github.com/afeiship/react-status-manager.git"
},
- "keywords": ["react", "component"],
+ "keywords": [
+ "react",
+ "refresh",
+ "refresher",
+ "rsm"
+ ],
"author": "afei",
"license": "MIT",
"browserslist": {
- "production": ["last 2 version", "Explorer >= 10", "Android >= 4"],
+ "production": [
+ "last 2 version",
+ "Explorer >= 10",
+ "Android >= 4"
+ ],
"development": [
"last 1 chrome version",
"last 1 firefox version",
@@ -31,34 +44,48 @@
},
"homepage": "https://github.com/afeiship/react-status-manager#readme",
"devDependencies": {
- "@babel/core": "^7.4.0",
- "@babel/plugin-proposal-class-properties": "^7.4.0",
- "@babel/plugin-proposal-decorators": "^7.4.0",
- "@babel/preset-env": "^7.4.2",
- "@babel/preset-react": "^7.0.0",
- "@babel/register": "^7.4.0",
- "@feizheng/rake-git": "^1.2.0",
- "@feizheng/webpack-lib-kits": "^1.1.0",
- "babel-loader": "^8.0.5",
- "cross-env": "^5.2.0",
- "node-sass": "^4.12.0",
- "express": "^4.16.4",
- "jest": "^24.5.0",
- "prettier": "^1.16.4",
- "react-testing-library": "^6.0.2",
- "webpack": "^4.29.6",
- "webpack-cli": "^3.3.0",
- "webpack-dev-server": "^3.2.1",
- "webpack-merge": "^4.2.1"
+ "@babel/core": "^7.11.6",
+ "@babel/plugin-proposal-class-properties": "^7.10.4",
+ "@babel/plugin-proposal-decorators": "^7.10.5",
+ "@babel/plugin-proposal-optional-chaining": "^7.11.0",
+ "@babel/plugin-transform-parameters": "^7.10.5",
+ "@babel/preset-env": "^7.11.5",
+ "@babel/preset-react": "^7.10.4",
+ "@babel/register": "^7.11.5",
+ "@jswork/next-replace-in-file": "^1.0.0",
+ "@jswork/react-demokit": "^1.0.2",
+ "@jswork/react-markdown-props": "^1.0.1",
+ "@jswork/webpack-lib-kits": "^1.0.2",
+ "@testing-library/react": "^11.0.4",
+ "autoprefixer": "^10.0.1",
+ "babel-loader": "^8.1.0",
+ "cross-env": "^7.0.2",
+ "enzyme": "^3.11.0",
+ "enzyme-adapter-react-16": "^1.15.5",
+ "express": "^4.17.1",
+ "indent-string": "^4.0.0",
+ "jest": "^26.4.2",
+ "node-sass": "^4.14.1",
+ "offline-plugin": "^5.0.7",
+ "prettier": "^2.1.2",
+ "release-it": "^14.2.1",
+ "string-replace-webpack-plugin": "^0.1.3",
+ "webpack": "^4.44.2",
+ "webpack-cli": "^3.3.12",
+ "webpack-dev-server": "^3.11.0",
+ "webpack-merge": "^5.1.4"
+ },
+ "peerDependencies": {
+ "react": "^16.13.1",
+ "react-dom": "^16.13.1",
+ "prop-types": "^15.7.2"
},
"dependencies": {
- "@feizheng/noop": "^1.0.0",
- "classnames": "^2.2.6",
- "prop-types": "^15.7.2",
- "react": "^16.8.5",
- "react-dom": "^16.8.5"
+ "@jswork/noop": "^1.0.0",
+ "classnames": "^2.2.6"
},
"publishConfig": {
- "registry": "https://registry.npmjs.org/"
+ "access": "public",
+ "registry": "https://registry.npmjs.org"
}
-}
+}
\ No newline at end of file
diff --git a/public/assets/style.scss b/public/assets/style.scss
index b89f66f..6ba0e58 100644
--- a/public/assets/style.scss
+++ b/public/assets/style.scss
@@ -1,34 +1,15 @@
-* {
- margin: 0;
- padding: 0;
-}
-html,
-body,
-#app,
-.app-container {
- height: 100%;
-}
-
@import "@/components/style.scss";
+@import "~@jswork/react-github-corner/dist/style.scss";
+@import "~@jswork/react-sw-update-tips/dist/style.scss";
+@import "~@jswork/react-demokit/dist/style.scss";
.app-container {
- padding: 50px;
- button {
- background: #3cc51f;
- width: 100%;
- display: block;
- margin-bottom: 10px;
- border-radius: 10px;
- color: #fff;
+ .is-body {
padding: 20px;
- border: none;
-
- &:active {
- background: darken(#3cc51f, 10%);
- }
-
- &:focus {
- outline: none;
- }
+ background: #fff;
+ width: 50%;
+ min-width: 320px;
+ margin: 0 auto;
+ text-align: center;
}
}
diff --git a/public/index.ejs b/public/index.ejs
index 500e7dd..3e56ef6 100644
--- a/public/index.ejs
+++ b/public/index.ejs
@@ -8,7 +8,12 @@
- App Example
+ ReactComponent | ReactStatusManager
+
+
+
diff --git a/public/index.js b/public/index.js
index 809dcdd..aefb034 100644
--- a/public/index.js
+++ b/public/index.js
@@ -1,6 +1,7 @@
-import ReactStatusManager from '../src/main';
-import ReactDOM from 'react-dom';
+import ReactDemokit from '@jswork/react-demokit';
import React from 'react';
+import ReactDOM from 'react-dom';
+import ReactStatusManager from '../src/main';
import './assets/style.scss';
class App extends React.Component {
@@ -45,7 +46,9 @@ class App extends React.Component {
render() {
return (
-
+
已经结束
-
-
-
-
-
-
+
+
+
+
+
Wizard
-
+
step1,input password
step2,input phone
@@ -88,7 +114,7 @@ class App extends React.Component {
step4,do submit!
-
+
);
}
}
diff --git a/src/components/index.js b/src/components/index.js
index c4bb3bd..8272254 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -1,18 +1,30 @@
import React, { Component } from 'react';
-import ReactDOM from 'react-dom';
import PropTypes from 'prop-types';
-import classNames from 'classnames';
-import noop from '@feizheng/noop';
-import objectAssign from 'object-assign';
-export default class extends Component {
- static displayName = 'RSM';
- /*===properties start===*/
+const CLASS_NAME = 'react-status-manager';
+
+export default class ReactStatusManager extends Component {
+ static displayName = CLASS_NAME;
static propTypes = {
+ /**
+ * The extended className for component.
+ */
className: PropTypes.string,
+ /**
+ * The status list.
+ */
items: PropTypes.array,
+ /**
+ * Current status value.
+ */
value: PropTypes.any,
+ /**
+ * The node name.
+ */
nodeName: PropTypes.any,
+ /**
+ * If use React.Fragment element.
+ */
virtual: PropTypes.bool
};
@@ -21,7 +33,6 @@ export default class extends Component {
nodeName: 'div',
virtual: false
};
- /*===properties end===*/
get children() {
const { value, children, items } = this.props;
diff --git a/src/components/style.scss b/src/components/style.scss
index 67bf68a..00c077c 100644
--- a/src/components/style.scss
+++ b/src/components/style.scss
@@ -1,4 +1,5 @@
$react-status-manager-options: () !default;
.react-status-manager {
+ // your styles
}
diff --git a/webpack.config.babel.js b/webpack.config.babel.js
index b5d3690..149a00d 100644
--- a/webpack.config.babel.js
+++ b/webpack.config.babel.js
@@ -1,3 +1,4 @@
export default (inEnv) => {
- return require(`./build/${inEnv.type}`).default;
+ const { NODE_ENV } = process.env;
+ return require(`./build/${NODE_ENV}`).default;
};