├── .gitignore ├── README.md ├── TODO.md ├── build-docs.js ├── devtools ├── chrome │ ├── packed.zip │ └── unpacked │ │ ├── build │ │ ├── backend.js │ │ ├── background.js │ │ ├── contentScript.js │ │ ├── inject.js │ │ ├── main.js │ │ └── panel.js │ │ ├── icons │ │ ├── 128-deadcode.png │ │ ├── 128-development.png │ │ ├── 128-disabled.png │ │ ├── 128-outdated.png │ │ ├── 128-production.png │ │ ├── 128-unminified.png │ │ ├── 16-deadcode.png │ │ ├── 16-development.png │ │ ├── 16-disabled.png │ │ ├── 16-outdated.png │ │ ├── 16-production.png │ │ ├── 16-unminified.png │ │ ├── 32-deadcode.png │ │ ├── 32-development.png │ │ ├── 32-disabled.png │ │ ├── 32-outdated.png │ │ ├── 32-production.png │ │ ├── 32-unminified.png │ │ ├── 48-deadcode.png │ │ ├── 48-development.png │ │ ├── 48-disabled.png │ │ ├── 48-outdated.png │ │ ├── 48-production.png │ │ ├── 48-unminified.png │ │ ├── deadcode.svg │ │ ├── development.svg │ │ ├── disabled.svg │ │ ├── outdated.svg │ │ └── production.svg │ │ ├── main.html │ │ ├── manifest.json │ │ ├── panel.html │ │ └── popups │ │ ├── deadcode.html │ │ ├── development.html │ │ ├── disabled.html │ │ ├── outdated.html │ │ ├── production.html │ │ ├── shared.js │ │ └── unminified.html └── firefox │ ├── packed.zip │ └── unpacked │ ├── build │ ├── backend.js │ ├── background.js │ ├── contentScript.js │ ├── inject.js │ ├── main.js │ └── panel.js │ ├── icons │ ├── 128-deadcode.png │ ├── 128-development.png │ ├── 128-disabled.png │ ├── 128-outdated.png │ ├── 128-production.png │ ├── 128-unminified.png │ ├── 16-deadcode.png │ ├── 16-development.png │ ├── 16-disabled.png │ ├── 16-outdated.png │ ├── 16-production.png │ ├── 16-unminified.png │ ├── 32-deadcode.png │ ├── 32-development.png │ ├── 32-disabled.png │ ├── 32-outdated.png │ ├── 32-production.png │ ├── 32-unminified.png │ ├── 48-deadcode.png │ ├── 48-development.png │ ├── 48-disabled.png │ ├── 48-outdated.png │ ├── 48-production.png │ ├── 48-unminified.png │ ├── deadcode.svg │ ├── development.svg │ ├── disabled.svg │ ├── outdated.svg │ └── production.svg │ ├── main.html │ ├── manifest.json │ ├── panel.html │ └── popups │ ├── deadcode.html │ ├── development.html │ ├── disabled.html │ ├── outdated.html │ ├── production.html │ ├── shared.js │ └── unminified.html ├── dist ├── index.js └── index.js.map ├── docs ├── build.js ├── chapters │ ├── component.md │ ├── databinding.md │ ├── guides.md │ ├── link.md │ ├── record.md │ └── releasenotes.md ├── examples │ ├── babel-boilerplate │ │ ├── .babelrc │ │ ├── dist │ │ │ ├── app.js │ │ │ └── app.js.map │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ │ ├── index.jsx │ │ │ └── styles.css │ │ └── webpack.config.js │ ├── checklistTree │ │ ├── .babelrc │ │ ├── README.md │ │ ├── dist │ │ │ ├── app.js │ │ │ └── app.js.map │ │ ├── index.html │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── screenshot.png │ │ ├── src │ │ │ ├── index.jsx │ │ │ ├── model.js │ │ │ └── styles.css │ │ └── webpack.config.js │ ├── flux-comparison │ │ ├── README.md │ │ ├── application.png │ │ ├── cart.png │ │ ├── index.html │ │ ├── js │ │ │ ├── app.js │ │ │ ├── components │ │ │ │ ├── App.jsx │ │ │ │ ├── CartContainer.jsx │ │ │ │ └── ProductsContainer.jsx │ │ │ └── models │ │ │ │ ├── Cart.js │ │ │ │ └── Product.js │ │ ├── product.png │ │ ├── sloc-comparison.png │ │ └── unidirectional-data-flow.jpg │ ├── todomvc │ │ ├── .babelrc │ │ ├── SLOC-comparison.jpg │ │ ├── css │ │ │ └── app.css │ │ ├── dist │ │ │ ├── app.js │ │ │ └── app.js.map │ │ ├── index.html │ │ ├── js │ │ │ ├── addtodo.jsx │ │ │ ├── filter.jsx │ │ │ ├── main.jsx │ │ │ ├── model.js │ │ │ └── todolist.jsx │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── pure-components.jpg │ │ ├── readme.md │ │ └── webpack.config.js │ └── userslist │ │ ├── .babelrc │ │ ├── README.md │ │ ├── dist │ │ ├── app.js │ │ └── app.js.map │ │ ├── index.html │ │ ├── main.css │ │ ├── main.jsx │ │ ├── package-lock.json │ │ ├── package.json │ │ └── webpack.config.js ├── images │ ├── logo-dark.png │ ├── logo.png │ ├── navbar.png │ ├── overview.png │ └── volicon_verizon_dm.png ├── index.html ├── index.md └── lib │ ├── fonts │ ├── icomoon.eot │ ├── icomoon.svg │ ├── icomoon.ttf │ ├── icomoon.woff │ ├── slate.eot │ ├── slate.svg │ ├── slate.ttf │ ├── slate.woff │ └── slate.woff2 │ ├── javascripts │ ├── all.js │ ├── all2.js │ ├── all_nosearch.js │ ├── app │ │ ├── _lang.js │ │ ├── _search.js │ │ └── _toc.js │ └── lib │ │ ├── _energize.js │ │ ├── _imagesloaded.min.js │ │ ├── _jquery.highlight.js │ │ ├── _jquery.tocify.js │ │ ├── _jquery_ui.js │ │ └── _lunr.js │ ├── layouts │ └── layout.html │ └── stylesheets │ ├── default.css │ ├── icon-font.css │ ├── normalize.css │ ├── print.css │ ├── screen.css │ ├── syntax.css │ └── variables.css ├── examples ├── babel-boilerplate │ ├── .babelrc │ ├── dist │ │ ├── app.js │ │ └── app.js.map │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── index.jsx │ │ └── styles.css │ └── webpack.config.js ├── checklistTree │ ├── .babelrc │ ├── README.md │ ├── dist │ │ ├── app.js │ │ └── app.js.map │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── screenshot.png │ ├── src │ │ ├── index.jsx │ │ ├── model.js │ │ └── styles.css │ └── webpack.config.js ├── flux-comparison │ ├── README.md │ ├── application.png │ ├── cart.png │ ├── index.html │ ├── js │ │ ├── app.js │ │ ├── components │ │ │ ├── App.jsx │ │ │ ├── CartContainer.jsx │ │ │ └── ProductsContainer.jsx │ │ └── models │ │ │ ├── Cart.js │ │ │ └── Product.js │ ├── product.png │ ├── sloc-comparison.png │ └── unidirectional-data-flow.jpg ├── todomvc │ ├── .babelrc │ ├── SLOC-comparison.jpg │ ├── css │ │ └── app.css │ ├── dist │ │ ├── app.js │ │ └── app.js.map │ ├── index.html │ ├── js │ │ ├── addtodo.jsx │ │ ├── filter.jsx │ │ ├── main.jsx │ │ ├── model.js │ │ └── todolist.jsx │ ├── package-lock.json │ ├── package.json │ ├── pure-components.jpg │ ├── readme.md │ └── webpack.config.js └── userslist │ ├── .babelrc │ ├── README.md │ ├── dist │ ├── app.js │ └── app.js.map │ ├── index.html │ ├── main.css │ ├── main.jsx │ ├── package-lock.json │ ├── package.json │ └── webpack.config.js ├── lib ├── component.d.ts ├── component.js ├── component.js.map ├── define │ ├── common.d.ts │ ├── common.js │ ├── common.js.map │ ├── context.d.ts │ ├── context.js │ ├── context.js.map │ ├── index.d.ts │ ├── index.js │ ├── index.js.map │ ├── props.d.ts │ ├── props.js │ ├── props.js.map │ ├── pureRender.d.ts │ ├── pureRender.js │ ├── pureRender.js.map │ ├── state.d.ts │ ├── state.js │ ├── state.js.map │ ├── store.d.ts │ ├── store.js │ ├── store.js.map │ ├── typeSpecs.d.ts │ ├── typeSpecs.js │ └── typeSpecs.js.map ├── index.d.ts ├── index.js ├── index.js.map ├── link.d.ts ├── link.js └── link.js.map ├── package.json ├── rollup.config.js ├── src ├── component.ts ├── define │ ├── common.ts │ ├── context.ts │ ├── index.ts │ ├── props.ts │ ├── pureRender.ts │ ├── state.ts │ ├── store.ts │ └── typeSpecs.ts ├── index.ts └── link.ts ├── tags.js ├── tags.jsx ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .idea -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | # v3 Roadmap 2 | 3 | ## Major goals 4 | 5 | - Support new React lifecycle hooks 6 | - Support new version of Type-R 7 | 8 | ## Tasks 9 | 10 | - New, more efficient implementation of pure render. 11 | - Create tokens for Date and Transactional props only. 12 | - Update tokens in place. 13 | - Make sure shouldComponentUpdate remembers that some props were changed if called many times. 14 | - Add PureComponent class. 15 | - New implementation of watchers. 16 | - Should use the same approach as the new pure render. 17 | - Deep changes detection. 18 | - Use shouldComponentUpdate to invoke watchers 19 | - Make sure watcher will be called once no matter how many times shouldComponentUpdate is called. 20 | - Ad-hoc component.afterRender() lifecycle hook to be used from render and watchers. 21 | - Remove dependency from propTypes package. 22 | - Rename `state` to `model`. 23 | - (?) Delay asyncUpdate() between shouldComponentUpdate and componentDidUpdate. 24 | - (?) Check if update throttling works with inputs. 25 | - (?) Use setState() instead of forceUpdate(). 26 | - (?) Put both model and store into the standard component state. 27 | -------------------------------------------------------------------------------- /devtools/chrome/packed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/packed.zip -------------------------------------------------------------------------------- /devtools/chrome/unpacked/build/background.js: -------------------------------------------------------------------------------- 1 | !function(modules) { 2 | function __webpack_require__(moduleId) { 3 | if (installedModules[moduleId]) return installedModules[moduleId].exports; 4 | var module = installedModules[moduleId] = { 5 | exports: {}, 6 | id: moduleId, 7 | loaded: !1 8 | }; 9 | return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), 10 | module.loaded = !0, module.exports; 11 | } 12 | var installedModules = {}; 13 | return __webpack_require__.m = modules, __webpack_require__.c = installedModules, 14 | __webpack_require__.p = "", __webpack_require__(0); 15 | }([ function(module, exports) { 16 | "use strict"; 17 | function isNumeric(str) { 18 | return +str + "" === str; 19 | } 20 | function installContentScript(tabId) { 21 | chrome.tabs.executeScript(tabId, { 22 | file: "/build/contentScript.js" 23 | }, function() {}); 24 | } 25 | function doublePipe(one, two) { 26 | function lOne(message) { 27 | two.postMessage(message); 28 | } 29 | function lTwo(message) { 30 | one.postMessage(message); 31 | } 32 | function shutdown() { 33 | one.onMessage.removeListener(lOne), two.onMessage.removeListener(lTwo), one.disconnect(), 34 | two.disconnect(); 35 | } 36 | one.onMessage.addListener(lOne), two.onMessage.addListener(lTwo), one.onDisconnect.addListener(shutdown), 37 | two.onDisconnect.addListener(shutdown); 38 | } 39 | function setIconAndPopup(reactBuildType, tabId) { 40 | chrome.browserAction.setIcon({ 41 | tabId: tabId, 42 | path: { 43 | "16": "icons/16-" + reactBuildType + ".png", 44 | "32": "icons/32-" + reactBuildType + ".png", 45 | "48": "icons/48-" + reactBuildType + ".png", 46 | "128": "icons/128-" + reactBuildType + ".png" 47 | } 48 | }), chrome.browserAction.setPopup({ 49 | tabId: tabId, 50 | popup: "popups/" + reactBuildType + ".html" 51 | }); 52 | } 53 | var ports = {}, IS_FIREFOX = navigator.userAgent.indexOf("Firefox") >= 0; 54 | chrome.runtime.onConnect.addListener(function(port) { 55 | var tab = null, name = null; 56 | isNumeric(port.name) ? (tab = port.name, name = "devtools", installContentScript(+port.name)) : (tab = port.sender.tab.id, 57 | name = "content-script"), ports[tab] || (ports[tab] = { 58 | devtools: null, 59 | "content-script": null 60 | }), ports[tab][name] = port, ports[tab].devtools && ports[tab]["content-script"] && doublePipe(ports[tab].devtools, ports[tab]["content-script"]); 61 | }), IS_FIREFOX && chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 62 | tab.active && "loading" === changeInfo.status && setIconAndPopup("disabled", tabId); 63 | }), chrome.runtime.onMessage.addListener(function(req, sender) { 64 | if (req.hasDetectedReact && sender.tab) { 65 | var reactBuildType = req.reactBuildType; 66 | sender.url.indexOf("facebook.github.io/react") !== -1 && (reactBuildType = "production"), 67 | setIconAndPopup(reactBuildType, sender.tab.id); 68 | } 69 | }); 70 | } ]); -------------------------------------------------------------------------------- /devtools/chrome/unpacked/build/contentScript.js: -------------------------------------------------------------------------------- 1 | !function(modules) { 2 | function __webpack_require__(moduleId) { 3 | if (installedModules[moduleId]) return installedModules[moduleId].exports; 4 | var module = installedModules[moduleId] = { 5 | exports: {}, 6 | id: moduleId, 7 | loaded: !1 8 | }; 9 | return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), 10 | module.loaded = !0, module.exports; 11 | } 12 | var installedModules = {}; 13 | return __webpack_require__.m = modules, __webpack_require__.c = installedModules, 14 | __webpack_require__.p = "", __webpack_require__(0); 15 | }([ function(module, exports) { 16 | "use strict"; 17 | function handleMessageFromDevtools(message) { 18 | window.postMessage({ 19 | source: "react-devtools-content-script", 20 | payload: message 21 | }, "*"); 22 | } 23 | function handleMessageFromPage(evt) { 24 | evt.source === window && evt.data && "react-devtools-bridge" === evt.data.source && port.postMessage(evt.data.payload); 25 | } 26 | function handleDisconnect() { 27 | window.removeEventListener("message", handleMessageFromPage), window.postMessage({ 28 | source: "react-devtools-content-script", 29 | payload: { 30 | type: "event", 31 | evt: "shutdown" 32 | } 33 | }, "*"); 34 | } 35 | var port = chrome.runtime.connect({ 36 | name: "content-script" 37 | }); 38 | port.onMessage.addListener(handleMessageFromDevtools), port.onDisconnect.addListener(handleDisconnect), 39 | window.addEventListener("message", handleMessageFromPage), window.postMessage({ 40 | source: "react-devtools-content-script", 41 | hello: !0 42 | }, "*"); 43 | } ]); -------------------------------------------------------------------------------- /devtools/chrome/unpacked/build/main.js: -------------------------------------------------------------------------------- 1 | !function(modules) { 2 | function __webpack_require__(moduleId) { 3 | if (installedModules[moduleId]) return installedModules[moduleId].exports; 4 | var module = installedModules[moduleId] = { 5 | exports: {}, 6 | id: moduleId, 7 | loaded: !1 8 | }; 9 | return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), 10 | module.loaded = !0, module.exports; 11 | } 12 | var installedModules = {}; 13 | return __webpack_require__.m = modules, __webpack_require__.c = installedModules, 14 | __webpack_require__.p = "", __webpack_require__(0); 15 | }([ function(module, exports) { 16 | "use strict"; 17 | function createPanelIfReactLoaded() { 18 | panelCreated || chrome.devtools.inspectedWindow.eval("!!(\n Object.keys(window.__REACT_DEVTOOLS_GLOBAL_HOOK__._renderers).length || window.React\n )", function(pageHasReact, err) { 19 | pageHasReact && !panelCreated && (clearInterval(loadCheckInterval), panelCreated = !0, 20 | chrome.devtools.panels.create("React", "", "panel.html", function(panel) { 21 | var reactPanel = null; 22 | panel.onShown.addListener(function(window) { 23 | window.panel.getNewSelection(), reactPanel = window.panel, reactPanel.resumeTransfer(); 24 | }), panel.onHidden.addListener(function() { 25 | reactPanel && (reactPanel.hideHighlight(), reactPanel.pauseTransfer()); 26 | }); 27 | })); 28 | }); 29 | } 30 | var panelCreated = !1; 31 | chrome.devtools.network.onNavigated.addListener(function() { 32 | createPanelIfReactLoaded(); 33 | }); 34 | var loadCheckInterval = setInterval(function() { 35 | createPanelIfReactLoaded(); 36 | }, 1e3); 37 | createPanelIfReactLoaded(); 38 | } ]); -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/128-deadcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/128-deadcode.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/128-development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/128-development.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/128-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/128-disabled.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/128-outdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/128-outdated.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/128-production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/128-production.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/128-unminified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/128-unminified.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/16-deadcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/16-deadcode.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/16-development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/16-development.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/16-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/16-disabled.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/16-outdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/16-outdated.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/16-production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/16-production.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/16-unminified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/16-unminified.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/32-deadcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/32-deadcode.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/32-development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/32-development.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/32-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/32-disabled.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/32-outdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/32-outdated.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/32-production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/32-production.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/32-unminified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/32-unminified.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/48-deadcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/48-deadcode.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/48-development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/48-development.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/48-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/48-disabled.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/48-outdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/48-outdated.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/48-production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/48-production.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/48-unminified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/chrome/unpacked/icons/48-unminified.png -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/deadcode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/development.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/disabled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/outdated.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/icons/production.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "React Developer Tools", 4 | "description": "Adds React debugging tools to the Chrome Developer Tools.", 5 | "version": "2.5.2", 6 | 7 | "minimum_chrome_version": "49", 8 | 9 | "icons": { 10 | "16": "icons/16-production.png", 11 | "32": "icons/32-production.png", 12 | "48": "icons/48-production.png", 13 | "128": "icons/128-production.png" 14 | }, 15 | 16 | "browser_action": { 17 | "default_icon": { 18 | "16": "icons/16-disabled.png", 19 | "32": "icons/32-disabled.png", 20 | "48": "icons/48-disabled.png", 21 | "128": "icons/128-disabled.png" 22 | }, 23 | 24 | "default_popup": "popups/disabled.html" 25 | }, 26 | 27 | "devtools_page": "main.html", 28 | 29 | "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", 30 | "web_accessible_resources": [ "main.html", "panel.html", "build/backend.js"], 31 | 32 | "background": { 33 | "scripts": [ "build/background.js" ], 34 | "persistent": false 35 | }, 36 | 37 | "permissions": [ 38 | "file:///*", 39 | "http://*/*", 40 | "https://*/*" 41 | ], 42 | 43 | "content_scripts": [ 44 | { 45 | "matches": ["18 | This page includes an extra development build of React. 🚧 19 |
20 |
21 | The React build on this page includes both development and production versions because dead code elimination has not been applied correctly.
22 |
23 |
24 | This makes its size larger, and causes React to run slower.
25 |
26 |
27 | Make sure to set up dead code elimination before deployment.
28 |
31 | Open the developer tools, and the React tab will appear to the right. 32 |
33 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/popups/development.html: -------------------------------------------------------------------------------- 1 | 2 | 17 |18 | This page is using the development build of React. 🚧 19 |
20 |
21 | Note that the development build is not suitable for production.
22 |
23 | Make sure to use the production build before deployment.
24 |
27 | Open the developer tools, and the React tab will appear to the right. 28 |
29 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/popups/disabled.html: -------------------------------------------------------------------------------- 1 | 2 | 17 |
18 | This page doesn’t appear to be using React.
19 |
20 | If this seems wrong, follow the troubleshooting instructions.
21 |
18 | This page is using an outdated version of React. ⌛ 19 |
20 |
21 | We recommend updating React to ensure that you receive important bugfixes and performance improvements.
22 |
23 |
24 | You can find the upgrade instructions on the React blog.
25 |
28 | Open the developer tools, and the React tab will appear to the right. 29 |
30 | -------------------------------------------------------------------------------- /devtools/chrome/unpacked/popups/production.html: -------------------------------------------------------------------------------- 1 | 2 | 17 |
18 | This page is using the production build of React. ✅
19 |
20 | Open the developer tools, and the React tab will appear to the right.
21 |
18 | This page is using an unminified build of React. 🚧 19 |
20 |
21 | The React build on this page appears to be unminified.
22 |
23 | This makes its size larger, and causes React to run slower.
24 |
25 |
26 | Make sure to set up minification before deployment.
27 |
30 | Open the developer tools, and the React tab will appear to the right. 31 |
32 | -------------------------------------------------------------------------------- /devtools/firefox/packed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/packed.zip -------------------------------------------------------------------------------- /devtools/firefox/unpacked/build/contentScript.js: -------------------------------------------------------------------------------- 1 | !function(modules) { 2 | function __webpack_require__(moduleId) { 3 | if (installedModules[moduleId]) return installedModules[moduleId].exports; 4 | var module = installedModules[moduleId] = { 5 | exports: {}, 6 | id: moduleId, 7 | loaded: !1 8 | }; 9 | return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), 10 | module.loaded = !0, module.exports; 11 | } 12 | var installedModules = {}; 13 | return __webpack_require__.m = modules, __webpack_require__.c = installedModules, 14 | __webpack_require__.p = "", __webpack_require__(0); 15 | }([ function(module, exports) { 16 | "use strict"; 17 | function handleMessageFromDevtools(message) { 18 | window.postMessage({ 19 | source: "react-devtools-content-script", 20 | payload: message 21 | }, "*"); 22 | } 23 | function handleMessageFromPage(evt) { 24 | evt.source === window && evt.data && "react-devtools-bridge" === evt.data.source && port.postMessage(evt.data.payload); 25 | } 26 | function handleDisconnect() { 27 | window.removeEventListener("message", handleMessageFromPage), window.postMessage({ 28 | source: "react-devtools-content-script", 29 | payload: { 30 | type: "event", 31 | evt: "shutdown" 32 | } 33 | }, "*"); 34 | } 35 | var port = chrome.runtime.connect({ 36 | name: "content-script" 37 | }); 38 | port.onMessage.addListener(handleMessageFromDevtools), port.onDisconnect.addListener(handleDisconnect), 39 | window.addEventListener("message", handleMessageFromPage), window.postMessage({ 40 | source: "react-devtools-content-script", 41 | hello: !0 42 | }, "*"); 43 | } ]); -------------------------------------------------------------------------------- /devtools/firefox/unpacked/build/main.js: -------------------------------------------------------------------------------- 1 | !function(modules) { 2 | function __webpack_require__(moduleId) { 3 | if (installedModules[moduleId]) return installedModules[moduleId].exports; 4 | var module = installedModules[moduleId] = { 5 | exports: {}, 6 | id: moduleId, 7 | loaded: !1 8 | }; 9 | return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), 10 | module.loaded = !0, module.exports; 11 | } 12 | var installedModules = {}; 13 | return __webpack_require__.m = modules, __webpack_require__.c = installedModules, 14 | __webpack_require__.p = "", __webpack_require__(0); 15 | }([ function(module, exports) { 16 | "use strict"; 17 | function createPanelIfReactLoaded() { 18 | panelCreated || chrome.devtools.inspectedWindow.eval("!!(\n Object.keys(window.__REACT_DEVTOOLS_GLOBAL_HOOK__._renderers).length || window.React\n )", function(pageHasReact, err) { 19 | pageHasReact && !panelCreated && (clearInterval(loadCheckInterval), panelCreated = !0, 20 | chrome.devtools.panels.create("React", "", "panel.html", function(panel) { 21 | var reactPanel = null; 22 | panel.onShown.addListener(function(window) { 23 | window.panel.getNewSelection(), reactPanel = window.panel, reactPanel.resumeTransfer(); 24 | }), panel.onHidden.addListener(function() { 25 | reactPanel && (reactPanel.hideHighlight(), reactPanel.pauseTransfer()); 26 | }); 27 | })); 28 | }); 29 | } 30 | var panelCreated = !1; 31 | chrome.devtools.network.onNavigated.addListener(function() { 32 | createPanelIfReactLoaded(); 33 | }); 34 | var loadCheckInterval = setInterval(function() { 35 | createPanelIfReactLoaded(); 36 | }, 1e3); 37 | createPanelIfReactLoaded(); 38 | } ]); -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/128-deadcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/128-deadcode.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/128-development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/128-development.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/128-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/128-disabled.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/128-outdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/128-outdated.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/128-production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/128-production.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/128-unminified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/128-unminified.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/16-deadcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/16-deadcode.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/16-development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/16-development.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/16-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/16-disabled.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/16-outdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/16-outdated.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/16-production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/16-production.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/16-unminified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/16-unminified.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/32-deadcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/32-deadcode.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/32-development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/32-development.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/32-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/32-disabled.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/32-outdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/32-outdated.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/32-production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/32-production.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/32-unminified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/32-unminified.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/48-deadcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/48-deadcode.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/48-development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/48-development.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/48-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/48-disabled.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/48-outdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/48-outdated.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/48-production.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/48-production.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/48-unminified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VoliJS/React-Type-R/8d157b9afd76850f680c677d62437e4516191b77/devtools/firefox/unpacked/icons/48-unminified.png -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/deadcode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/development.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/disabled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/outdated.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/icons/production.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "React Developer Tools", 4 | "description": "Adds React debugging tools to the Firefox Developer Tools.", 5 | "version": "2.5.2", 6 | 7 | "applications": { 8 | "gecko": { 9 | "id": "@react-devtools", 10 | "strict_min_version": "54.0" 11 | } 12 | }, 13 | 14 | "icons": { 15 | "16": "icons/16-production.png", 16 | "32": "icons/32-production.png", 17 | "48": "icons/48-production.png", 18 | "128": "icons/128-production.png" 19 | }, 20 | 21 | "browser_action": { 22 | "default_icon": { 23 | "16": "icons/16-disabled.png", 24 | "32": "icons/32-disabled.png", 25 | "48": "icons/48-disabled.png", 26 | "128": "icons/128-disabled.png" 27 | }, 28 | 29 | "default_popup": "popups/disabled.html", 30 | "browser_style": true 31 | }, 32 | 33 | "devtools_page": "main.html", 34 | 35 | "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", 36 | "web_accessible_resources": [ "main.html", "panel.html", "build/backend.js"], 37 | 38 | "background": { 39 | "scripts": [ "build/background.js" ], 40 | "persistent": false 41 | }, 42 | 43 | "permissions": [ 44 | "file:///*", 45 | "http://*/*", 46 | "https://*/*" 47 | ], 48 | 49 | "content_scripts": [ 50 | { 51 | "matches": ["18 | This page includes an extra development build of React. 🚧 19 |
20 |
21 | The React build on this page includes both development and production versions because dead code elimination has not been applied correctly.
22 |
23 |
24 | This makes its size larger, and causes React to run slower.
25 |
26 |
27 | Make sure to set up dead code elimination before deployment.
28 |
31 | Open the developer tools, and the React tab will appear to the right. 32 |
33 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/popups/development.html: -------------------------------------------------------------------------------- 1 | 2 | 17 |18 | This page is using the development build of React. 🚧 19 |
20 |
21 | Note that the development build is not suitable for production.
22 |
23 | Make sure to use the production build before deployment.
24 |
27 | Open the developer tools, and the React tab will appear to the right. 28 |
29 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/popups/disabled.html: -------------------------------------------------------------------------------- 1 | 2 | 17 |
18 | This page doesn’t appear to be using React.
19 |
20 | If this seems wrong, follow the troubleshooting instructions.
21 |
18 | This page is using an outdated version of React. ⌛ 19 |
20 |
21 | We recommend updating React to ensure that you receive important bugfixes and performance improvements.
22 |
23 |
24 | You can find the upgrade instructions on the React blog.
25 |
28 | Open the developer tools, and the React tab will appear to the right. 29 |
30 | -------------------------------------------------------------------------------- /devtools/firefox/unpacked/popups/production.html: -------------------------------------------------------------------------------- 1 | 2 | 17 |
18 | This page is using the production build of React. ✅
19 |
20 | Open the developer tools, and the React tab will appear to the right.
21 |
18 | This page is using an unminified build of React. 🚧 19 |
20 |
21 | The React build on this page appears to be unminified.
22 |
23 | This makes its size larger, and causes React to run slower.
24 |
25 |
26 | Make sure to set up minification before deployment.
27 |
30 | Open the developer tools, and the React tab will appear to the right. 31 |
32 | -------------------------------------------------------------------------------- /docs/chapters/record.md: -------------------------------------------------------------------------------- 1 | # Record and Collection 2 | 3 | React-MVx relies of [Type-R](https://volicon.github.io/Type-R/) framework to manage a multi-layer application state. 4 | 5 | - [Record](https://volicon.github.io/Type-R/#record) class is used to manage component's state. 6 | - The subset of the [Record attributes type annotation](https://volicon.github.io/Type-R/#definition) is used to define props and context. 7 | - [Store](https://volicon.github.io/Type-R/#store) class is used to represent component's store (also called "local store"), which is typically used in the root component of SPA page associated with a route. The state of the children components uses upper component's stores to resolve id-references. 8 | - Type-R [global store](https://volicon.github.io/Type-R/#-static-store-global) may be used as a store for the data shared by application pages. This store is used to resolve id-references in case if local stores lookup failed. 9 | 10 | -------------------------------------------------------------------------------- /docs/chapters/releasenotes.md: -------------------------------------------------------------------------------- 1 | # Release Notes 2 | 3 | ## 2.0.0 4 | 5 | - Bug fixes: 6 | - Fixed problems with deep inheritance from the React.Component 7 | - Mixins now works well with inheritance. 8 | - Breaking changes: 9 | - *React lifecycle hook methods for the subclass are called automatically*. 10 | - Other: 11 | - `{ ...link.props }` for ad-hoc data binding makes `tags.jsx` wrappers obsolete. 12 | - Type-R v2.0 is required. 13 | - New universal API for generating links (`linkAt()`) 14 | - First-class component stores support. -------------------------------------------------------------------------------- /docs/examples/babel-boilerplate/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets":["react", ["es2015", {"loose": true}] ], 3 | "plugins":[ 4 | "transform-decorators-legacy", 5 | "transform-object-rest-spread", 6 | "add-module-exports", 7 | "transform-class-properties" 8 | ], 9 | 10 | "env": { 11 | "production": { 12 | "plugins": [ 13 | "transform-react-constant-elements", 14 | "transform-react-inline-elements" 15 | ] 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /docs/examples/babel-boilerplate/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |extends React.Component
{
9 | cid: string;
10 | static state?: TypeSpecs | typeof Record;
11 | static store?: TypeSpecs | typeof Store;
12 | static props?: TypeSpecs;
13 | static context?: TypeSpecs;
14 | static childContext?: TypeSpecs;
15 | static pureRender?: boolean;
16 | private static propTypes;
17 | private static defaultProps;
18 | private static contextTypes;
19 | private static childContextTypes;
20 | private PropsChangeTokens;
21 | static extend: (spec: object, statics?: object) => Component extends Messenger {
48 | }
49 |
--------------------------------------------------------------------------------
/lib/component.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
--------------------------------------------------------------------------------
/lib/define/common.d.ts:
--------------------------------------------------------------------------------
1 | import { ComponentClass as ReactComponentClass, Component } from 'react';
2 | import { MixableConstructor, Messenger } from 'type-r';
3 | export interface ComponentClass