diff --git a/docs/dev.0d6f4e86.js b/docs/dev.0d6f4e86.js deleted file mode 100644 index 6f6c4b3..0000000 --- a/docs/dev.0d6f4e86.js +++ /dev/null @@ -1,10 +0,0 @@ -parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;cPromise.resolve().then(t):setTimeout,n=t=>t?Array.isArray(t)?t:[t]:[],s=(t,e)=>n=>t[n]!==e[n];function r(t,e,n){Object.keys(n).filter(s(e,n)).forEach(s=>{"value"===s||"nodeValue"===s?t[s]=n[s]:function(t,e,n,s){"children"===e||"key"===e||("style"===e?Object.keys(s).forEach(n=>{let r=s&&s[n]?s[n]:"";t[e][n]=r}):"o"===e[0]&&"n"===e[1]?(e=e.slice(2).toLowerCase(),n&&t.removeEventListener(e,n),t.addEventListener(e,s)):t.setAttribute(e,s))}(t,s,e[s],n[s])})}let o=0,a=[];function p(t,n,s){const r=this?this:C();var o;s=n?n(r.state[t],s):s,r.state[t]=s,o=r,m.push({tag:h,instance:o,state:o.state}),e(T)}function c(t){return i(null,t)}function i(t,e){let n=C(),s="$"+o,r=p.bind(n,s,t);if(n){o++;let t=n.state;return"object"==typeof t&&s in t?[t[s],r]:(n.state[s]=e,[e,r])}return[e,r]}function l(t,e){let n=C();if(n){let s="$"+o;n.effects[s]=u(t,e),o++}}function u(t,e){return function(){if(C()){(!e||a.some((t,n)=>e[n]!==t))&&t(),a=e}}}const[f,h,b,d,g,y]=["host","hook","root","place","delete","update"];let m=[],v=null,x=null,E=null;function T(){for(!v&&m.length&&function(){const t=m.shift();if(!t)return;t.state&&(t.instance.fiber.state=t.state);const e=t.tag==b?t.base.rootFiber:function(t){let e=t;for(;e.parent;)e=e.parent;return e}(t.instance.fiber);v={tag:b,base:t.base||e.base,props:t.props||e.props,alternate:e}}();v;)v=j(v);var t,e;x&&((t=x).patches.forEach(t=>(function(t){if(t.tag==b)return;let e=t.parent;for(;e.tag==h;)e=e.parent;const n=e.base;t.patchTag==d&&t.tag==f?n.appendChild(t.base):t.patchTag==y&&t.tag==f?r(t.base,t.alternate.props,t.props):t.patchTag==g&&function(t,e){let n=t;for(;;)if(n.tag!=h){for(e.removeChild(n.base);n!=t&&!n.sibling;)n=n.parent;if(n==t)return;n=n.sibling}else n=n.child}(t,n)})(t)),e=E.effects,Object.keys(e).forEach(t=>{let n=e[t];n()}),t.base.rootFiber=t,v=null,x=null)}function j(t){if(t.tag==h?function(t){let e=t.base;null==e?e=t.base=function(t){const e=new t.type(t.props);return e.fiber=t,e}(t):t.props!=t.props||t.state||function(t){const e=t.alternate;if(!e.child)return;let n=e.child,s=null;for(;n;){const e={type:n.type,tag:n.tag,base:n.base,props:n.props,state:n.state,alternate:n,parent:t};s?s.sibling=e:t.child=e,s=e,n=n.sibling}}(t);e.props=t.props||{},e.state=t.state||{},e.effects=t.effects||{},E=e,o=0;const n=t.type(t.props);V(t,n)}(t):function(t){t.base||(t.base=function(t){const e="text"===t.type?document.createTextNode(""):document.createElement(t.type);return r(e,[],t.props),e}(t));const e=t.props.children;V(t,e)}(t),t.child)return t.child;let e=t;for(;e;){if(k(e),e.sibling)return e.sibling;e=e.parent}}function V(t,e){e=n(e);let s=t.alternate?t.alternate.child:null,r=null,o=0;for(;o2;)n.push(arguments[r]);for(;n.length;){let t=n.pop();if(t&&t.pop)for(r=t.length;r--;)n.push(t[r]);else null===t||!0===t||!1===t||s.push("object"!=typeof t?{type:"text",nodeValue:t}:t)}return{type:t,props:{...e,children:s}}},t.render=function(t,n){m.push({tag:b,base:n,props:{children:t}}),e(T)},t.useState=c,t.useReducer=i,t.useEffect=l,t.useMemo=u,t.createContext=function(t={}){let e=[];return{context:t,update:t=>e.forEach(e=>e(t)),subscribe:t=>e.push(t),unSubscribe:t=>e=e.filter(e=>e!==t)}},t.useContext=function(t){const[e,n]=c(t.context);return t.subscribe(n),l(()=>t.unSubscribe(n)),[e,t.update]},Object.defineProperty(t,"__esModule",{value:!0})}); -},{}],"Focm":[function(require,module,exports) { -"use strict";require("./style.css");var l=require("fre"),e="https://cdn.jsdelivr.net/npm/@clicli/app@latest",s="https://0d077ef9e74d8.cdn.sohucs.com/roUjdPS_jpg";function t(){return(0,l.h)("div",{class:"main"},(0,l.h)("div",{class:"left"},(0,l.h)("div",{class:"logo"}),(0,l.h)("h1",null,"人·生·就·是·佛"),(0,l.h)("ul",{class:"link"},(0,l.h)("a",{href:e,target:"_blank"},(0,l.h)("li",null,"Android")),(0,l.h)("a",{href:""},(0,l.h)("li",null,"IOS"))),(0,l.h)("div",{class:"qcode"},(0,l.h)("img",{src:s,alt:"c站 app"}))),(0,l.h)("div",{class:"right"}))}(0,l.render)((0,l.h)(t,null),document.getElementById("root")); -},{"./style.css":"2iMt","fre":"6oLy"}]},{},["Focm"], null) -//# sourceMappingURL=/dev.0d6f4e86.js.map \ No newline at end of file diff --git a/docs/dev.0d6f4e86.js.map b/docs/dev.0d6f4e86.js.map deleted file mode 100644 index 328789b..0000000 --- a/docs/dev.0d6f4e86.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["node_modules/fre/dist/fre.js","index.js"],"names":["DOWN_URL","QCODE","App","document","getElementById"],"mappings":"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","file":"dev.0d6f4e86.js","sourceRoot":"..","sourcesContent":["/**\n * by 132yse Copyright 2019-04-23\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.fre = {}));\n}(this, function (exports) { 'use strict';\n\n function h (type, props) {\n let rest = [];\n let children = [];\n let length = arguments.length;\n while (length-- > 2) rest.push(arguments[length]);\n while (rest.length) {\n let node = rest.pop();\n if (node && node.pop) {\n for (length = node.length; length--;) rest.push(node[length]);\n } else if (node === null || node === true || node === false) ; else {\n children.push(\n typeof node !== 'object' ? { type: 'text', nodeValue: node } : node\n );\n }\n }\n return { type, props: { ...props, children }}\n }\n\n const defer =\n typeof Promise === 'function' ? cb => Promise.resolve().then(cb) : setTimeout;\n const arrayfy = array =>\n !array ? [] : Array.isArray(array) ? array : [array];\n const isNew = (prev, next) => key => prev[key] !== next[key];\n\n function updateProperty (element, name, value, newValue) {\n if (name === 'children' || name === 'key') ; else if (name === 'style') {\n Object.keys(newValue).forEach(key => {\n let style = !newValue || !newValue[key] ? '' : newValue[key];\n element[name][key] = style;\n });\n } else if (name[0] === 'o' && name[1] === 'n') {\n name = name.slice(2).toLowerCase();\n if (value) {\n element.removeEventListener(name, value);\n }\n element.addEventListener(name, newValue);\n } else {\n element.setAttribute(name, newValue);\n }\n }\n function updateElement (element, props, newProps) {\n Object.keys(newProps)\n .filter(isNew(props, newProps))\n .forEach(key => {\n if (key === 'value' || key === 'nodeValue') {\n element[key] = newProps[key];\n } else {\n updateProperty(element, key, props[key], newProps[key]);\n }\n });\n }\n function createElement (fiber) {\n const element =\n fiber.type === 'text'\n ? document.createTextNode('')\n : document.createElement(fiber.type);\n updateElement(element, [], fiber.props);\n return element\n }\n\n let cursor = 0;\n let oldInputs = [];\n function update (key, reducer, value) {\n const current = this ? this : getCurrentInstance();\n value = reducer ? reducer(current.state[key], value) : value;\n current.state[key] = value;\n scheduleWork(current);\n }\n function resetCursor () {\n cursor = 0;\n }\n function useState (initState) {\n return useReducer(null, initState)\n }\n function useReducer (reducer, initState) {\n let current = getCurrentInstance();\n let key = '$' + cursor;\n let setter = update.bind(current, key, reducer);\n if (!current) {\n return [initState, setter]\n } else {\n cursor++;\n let state = current.state;\n if (typeof state === 'object' && key in state) {\n return [state[key], setter]\n } else {\n current.state[key] = initState;\n }\n let value = initState;\n return [value, setter]\n }\n }\n function useEffect (effect, inputs) {\n let current = getCurrentInstance();\n if (current) {\n let key = '$' + cursor;\n current.effects[key] = useMemo(effect, inputs);\n cursor++;\n }\n }\n function useMemo (create, inputs) {\n return function () {\n let current = getCurrentInstance();\n if (current) {\n let hasChaged = inputs\n ? oldInputs.some((value, i) => inputs[i] !== value)\n : true;\n if (hasChaged) {\n create();\n }\n oldInputs = inputs;\n }\n }\n }\n function createContext (initContext = {}) {\n let context = initContext;\n let setters = [];\n const update = newContext => setters.forEach(fn => fn(newContext));\n const subscribe = fn => setters.push(fn);\n const unSubscribe = fn => (setters = setters.filter(f => f !== fn));\n return { context, update, subscribe, unSubscribe }\n }\n function useContext (ctx) {\n const [context, setContext] = useState(ctx.context);\n ctx.subscribe(setContext);\n useEffect(() => ctx.unSubscribe(setContext));\n return [context, ctx.update]\n }\n\n const [HOST, HOOK, ROOT, PLACE, DELETE, UPDATE] = [\n 'host',\n 'hook',\n 'root',\n 'place',\n 'delete',\n 'update'\n ];\n let updateQueue = [];\n let nextWork = null;\n let pendingCommit = null;\n let currentInstance = null;\n function render (vdom, container) {\n updateQueue.push({\n tag: ROOT,\n base: container,\n props: { children: vdom }\n });\n defer(workLoop);\n }\n function scheduleWork (instance) {\n updateQueue.push({\n tag: HOOK,\n instance,\n state: instance.state\n });\n defer(workLoop);\n }\n function workLoop () {\n if (!nextWork && updateQueue.length) {\n resetWork();\n }\n while (nextWork) {\n nextWork = performWork(nextWork);\n }\n if (pendingCommit) {\n commitAllWork(pendingCommit);\n }\n }\n function resetWork () {\n const update = updateQueue.shift();\n if (!update) return\n if (update.state) {\n update.instance.fiber.state = update.state;\n }\n const root =\n update.tag == ROOT ? update.base.rootFiber : getRoot(update.instance.fiber);\n nextWork = {\n tag: ROOT,\n base: update.base || root.base,\n props: update.props || root.props,\n alternate: root\n };\n }\n function performWork (WIP) {\n WIP.tag == HOOK ? updateHOOK(WIP) : updateHost(WIP);\n if (WIP.child) {\n return WIP.child\n }\n let wip = WIP;\n while (wip) {\n completeWork(wip);\n if (wip.sibling) return wip.sibling\n wip = wip.parent;\n }\n }\n function updateHost (WIP) {\n if (!WIP.base) WIP.base = createElement(WIP);\n const newChildren = WIP.props.children;\n reconcileChildren(WIP, newChildren);\n }\n function updateHOOK (WIP) {\n let instance = WIP.base;\n if (instance == null) {\n instance = WIP.base = createInstance(WIP);\n } else if (WIP.props == WIP.props && !WIP.state) {\n cloneChildFibers(WIP);\n }\n instance.props = WIP.props || {};\n instance.state = WIP.state || {};\n instance.effects = WIP.effects || {};\n currentInstance = instance;\n resetCursor();\n const newChildren = WIP.type(WIP.props);\n reconcileChildren(WIP, newChildren);\n }\n function reconcileChildren (WIP, newChildren) {\n newChildren = arrayfy(newChildren);\n let oldFiber = WIP.alternate ? WIP.alternate.child : null;\n let newFiber = null;\n let n = 0;\n while (n < newChildren.length || oldFiber != null) {\n const child = newChildren[n];\n const prevFiber = newFiber;\n const sameType = oldFiber && child && child.type == oldFiber.type;\n if (sameType) {\n newFiber = {\n tag: oldFiber.tag,\n base: oldFiber.base,\n parent: WIP,\n alternate: oldFiber,\n patchTag: UPDATE,\n type: oldFiber.type,\n props: child.props || { nodeValue: child.nodeValue },\n state: oldFiber.state\n };\n }\n if (child && !sameType) {\n newFiber = {\n tag: typeof child.type === 'string' ? HOST : HOOK,\n type: child.type,\n props: child.props || { nodeValue: child.nodeValue },\n parent: WIP,\n patchTag: PLACE\n };\n }\n if (oldFiber && !sameType) {\n oldFiber.patchTag = DELETE;\n WIP.patches = WIP.patches || [];\n WIP.patches.push(oldFiber);\n }\n if (oldFiber) oldFiber = oldFiber.sibling;\n if (n == 0) {\n WIP.child = newFiber;\n } else if (prevFiber && child) {\n prevFiber.sibling = newFiber;\n }\n n++;\n }\n }\n function createInstance (fiber) {\n const instance = new fiber.type(fiber.props);\n instance.fiber = fiber;\n return instance\n }\n function cloneChildFibers (parentFiber) {\n const oldFiber = parentFiber.alternate;\n if (!oldFiber.child) return\n let oldChild = oldFiber.child;\n let prevChild = null;\n while (oldChild) {\n const newChild = {\n type: oldChild.type,\n tag: oldChild.tag,\n base: oldChild.base,\n props: oldChild.props,\n state: oldChild.state,\n alternate: oldChild,\n parent: parentFiber\n };\n if (prevChild) {\n prevChild.sibling = newChild;\n } else {\n parentFiber.child = newChild;\n }\n prevChild = newChild;\n oldChild = oldChild.sibling;\n }\n }\n function completeWork (fiber) {\n if (fiber.tag == HOOK) {\n fiber.base.fiber = fiber;\n }\n if (fiber.parent) {\n const childPatches = fiber.patches || [];\n const selfPatch = fiber.patchTag ? [fiber] : [];\n const parentPatches = fiber.parent.patches || [];\n fiber.parent.patches = parentPatches.concat(childPatches, selfPatch);\n } else {\n pendingCommit = fiber;\n }\n }\n function commitAllWork (WIP) {\n WIP.patches.forEach(f => commitWork(f));\n commitEffects(currentInstance.effects);\n WIP.base.rootFiber = WIP;\n nextWork = null;\n pendingCommit = null;\n }\n function commitWork (fiber) {\n if (fiber.tag == ROOT) return\n let parentFiber = fiber.parent;\n while (parentFiber.tag == HOOK) {\n parentFiber = parentFiber.parent;\n }\n const parentNode = parentFiber.base;\n if (fiber.patchTag == PLACE && fiber.tag == HOST) {\n parentNode.appendChild(fiber.base);\n } else if (fiber.patchTag == UPDATE && fiber.tag == HOST) {\n updateElement(fiber.base, fiber.alternate.props, fiber.props);\n } else if (fiber.patchTag == DELETE) {\n commitDELETE(fiber, parentNode);\n }\n }\n function commitDELETE (fiber, domParent) {\n let node = fiber;\n while (true) {\n if (node.tag == HOOK) {\n node = node.child;\n continue\n }\n domParent.removeChild(node.base);\n while (node != fiber && !node.sibling) {\n node = node.parent;\n }\n if (node == fiber) {\n return\n }\n node = node.sibling;\n }\n }\n function getRoot (fiber) {\n let node = fiber;\n while (node.parent) {\n node = node.parent;\n }\n return node\n }\n function getCurrentInstance () {\n return currentInstance || null\n }\n function commitEffects (effects) {\n Object.keys(effects).forEach(key => {\n let effect = effects[key];\n effect();\n });\n }\n\n exports.h = h;\n exports.render = render;\n exports.useState = useState;\n exports.useReducer = useReducer;\n exports.useEffect = useEffect;\n exports.useMemo = useMemo;\n exports.createContext = createContext;\n exports.useContext = useContext;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","import './style.css'\r\nimport { h, render } from 'fre'\r\n\r\nconst DOWN_URL = 'https://cdn.jsdelivr.net/npm/@clicli/app@latest'\r\nconst QCODE =\r\n 'https://0d077ef9e74d8.cdn.sohucs.com/roUjdPS_jpg'\r\n\r\nfunction App () {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nrender(, document.getElementById('root'))\r\n"]} \ No newline at end of file diff --git a/docs/dev.6755ce35.css b/docs/dev.0f524f0f.css similarity index 96% rename from docs/dev.6755ce35.css rename to docs/dev.0f524f0f.css index 8585a5f..ea7a1b4 100644 --- a/docs/dev.6755ce35.css +++ b/docs/dev.0f524f0f.css @@ -1,2 +1,2 @@ *{margin:0;padding:0}li,ul{list-style:none}html{background:linear-gradient(to top left,#1af5d0,#405e6e)}body,html{height:100%}body{transition:1s;background:url(https://0d077ef9e74d8.cdn.sohucs.com/roUnPx0_png)}.main{width:1000px;margin:0 auto;display:flex}.left{width:200px;transition:.5s}.right{width:620px;background:url(https://0d077ef9e74d8.cdn.sohucs.com/roUiDdR_png) no-repeat 0;height:100vh;background-size:100%}.logo{height:100px;width:100px;border-radius:20px;background:url(https://0d077ef9e74d8.cdn.sohucs.com/roUj1hC_png);background-size:cover;margin:80px auto 30px;box-shadow:10px 10px 10px #0a5658}h1{color:#fff;text-align:center;font-size:16px;letter-spacing:4px}.link,h1{margin-top:50px}.link a{display:block}.link a,.link li{text-align:center}.link li{color:#fff;width:150px;padding:6px 0;border:1px solid hsla(0,0%,100%,.8);display:inline-block;margin:10px auto;border-radius:4px;transition:.5s}.link li:hover{background:rgba(26,245,245,.4)}.qcode,.qcode img{text-align:center}.qcode img{widows:150px;height:150px;margin:50px auto}@media screen and (max-width:500px){.left,.main{width:100%}.right{display:none}} -/*# sourceMappingURL=/dev.6755ce35.css.map */ \ No newline at end of file +/*# sourceMappingURL=/dev.0f524f0f.css.map */ \ No newline at end of file diff --git a/docs/dev.0f524f0f.css.map b/docs/dev.0f524f0f.css.map new file mode 100644 index 0000000..b252d2e --- /dev/null +++ b/docs/dev.0f524f0f.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["style.css"],"names":[],"mappings":"AAAA,EACE,QAAS,CACT,SACF,CACA,MAEE,eACF,CACA,KAEE,uDACF,CACA,UAHE,WAOF,CAJA,KACE,aAAc,CAEd,gEACF,CACA,MACE,YAAa,CACb,aAAc,CACd,YACF,CACA,MACE,WAAY,CACZ,cACF,CAEA,OACE,WAAY,CACZ,4EACM,CACN,YAAa,CACb,oBACF,CACA,MACE,YAAa,CACb,WAAY,CACZ,kBAAmB,CACnB,gEAAiE,CACjE,qBAAsB,CACtB,qBAAsB,CACtB,iCACF,CACA,GACE,UAAW,CACX,iBAAkB,CAClB,cAAe,CACf,kBAEF,CACA,SAFE,eAIF,CACA,QACE,aAEF,CACA,iBAFE,iBAYF,CAVA,SACE,UAAW,CAEX,WAAY,CACZ,aAAc,CACd,mCAA0C,CAC1C,oBAAqB,CACrB,gBAAiB,CACjB,iBAAkB,CAClB,cACF,CAEA,eACE,8BACF,CAIA,kBAFE,iBAOF,CALA,WACE,YAAa,CACb,YAAa,CACb,gBAEF,CAEA,oCACE,YACE,UACF,CACA,OACE,YACF,CACF","file":"dev.0f524f0f.css","sourceRoot":"..","sourcesContent":["* {\n margin: 0;\n padding: 0;\n}\nul,\nli {\n list-style: none;\n}\nhtml {\n height: 100%;\n background: linear-gradient(to top left, #1af5d0, #405e6e);\n}\nbody {\n transition: 1s;\n height: 100%;\n background: url(https://0d077ef9e74d8.cdn.sohucs.com/roUnPx0_png);\n}\n.main {\n width: 1000px;\n margin: 0 auto;\n display: flex;\n}\n.left {\n width: 200px;\n transition: 0.5s;\n}\n\n.right {\n width: 620px;\n background: url(https://0d077ef9e74d8.cdn.sohucs.com/roUiDdR_png) no-repeat\n left;\n height: 100vh;\n background-size: 100%;\n}\n.logo {\n height: 100px;\n width: 100px;\n border-radius: 20px;\n background: url(https://0d077ef9e74d8.cdn.sohucs.com/roUj1hC_png);\n background-size: cover;\n margin: 80px auto 30px;\n box-shadow: 10px 10px 10px #0a5658;\n}\nh1 {\n color: #fff;\n text-align: center;\n font-size: 16px;\n letter-spacing: 4px;\n margin-top: 50px;\n}\n.link {\n margin-top: 50px;\n}\n.link a {\n display: block;\n text-align: center;\n}\n.link li {\n color: #fff;\n text-align: center;\n width: 150px;\n padding: 6px 0;\n border: 1px solid rgba(255, 255, 255, 0.8);\n display: inline-block;\n margin: 10px auto;\n border-radius: 4px;\n transition: 0.5s;\n}\n\n.link li:hover {\n background: rgba(26, 245, 245, 0.4);\n}\n.qcode {\n text-align: center;\n}\n.qcode img {\n widows: 150px;\n height: 150px;\n margin: 50px auto;\n text-align: center;\n}\n\n@media screen and (max-width: 500px) {\n .main ,.left{\n width: 100%;\n }\n .right{\n display: none;\n }\n}\n"]} \ No newline at end of file diff --git a/docs/dev.1518c449.js b/docs/dev.1518c449.js new file mode 100644 index 0000000..485e2ca --- /dev/null +++ b/docs/dev.1518c449.js @@ -0,0 +1,8 @@ +parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;ct?Array.isArray(t)?t:[t]:[],n=(t,e)=>t.type===e.type,o=(t,e)=>n=>"children"!==n&&"key"!==n&&t[n]!==e[n];function r(t){let n={},o=0,r=0;return e(t).forEach(t=>{t.pop?(t.forEach(t=>{let e=((t||{}).props||{}).key;e?n["."+o+"."+e]=t:(n["."+o+"."+r]=t)&&r++}),o++):(n["."+o]=t)&&o++}),n}function s(t,e){let n={};for(const o in t)n[o]=t[o];for(const o in e)n[o]=e[o];return n}const i=requestAnimationFrame||setTimeout,c=t=>"function"==typeof t;function l(t,e,n,o){if("style"===e)for(key in o){let n=o&&o[key]?o[key]:"";t[e][key]=n}else"o"===e[0]&&"n"===e[1]?(e=e.slice(2).toLowerCase(),n&&t.removeEventListener(e,n),t.addEventListener(e,o)):t.setAttribute(e,o)}function u(t,e,n){Object.keys(n).filter(o(e,n)).forEach(o=>{"value"===o||"nodeValue"===o?t[o]=n[o]:l(t,o,e[o],n[o])})}function p(t){const e="text"===t.type?document.createTextNode(""):document.createElement(t.type);return u(e,[],t.props),e}let a=0;function f(t,e,n){const o=this?this:H();n=e?e(o.state[t],n):n,o.state[t]=n,V(o)}function h(){a=0}function d(t){return y(null,t)}function y(t,e){let n=H();if(!n)return[e,r];let o="$"+a,r=f.bind(n,o,t);a++;let s=n.state||{};return o in s?[s[o],r]:(n.state[o]=e,[e,r])}function b(t,e){let n=H();n&&(n.effect=x(t,e))}function x(t,e){return g(()=>t,e)}function g(t,e){let n=H();if(n){let o=!e||(n.oldInputs||[]).some((t,n)=>e[n]!==t);if(!e||e.length||n.isMounted||(o=!0,n.isMounted=!0),n.oldInputs=e,o)return t()}}function m(t={}){let e={};return{context:t,update:t=>{for(let n in e)e[n](t)},subscribe:(t,n)=>{n in e||(e[n]=t)},set:e}}function k(t){const[e,n]=d(t.context),o=H().type.name;return t.subscribe(n,o),[e,t.update]}const E={};exports.options=E;const T=1e3/60,[v,C,P,w,A,M]=[0,1,2,3,4,5];let j=[],L=null,W=null,I=null,O=!0;function S(t,e){V({tag:P,base:e,props:{children:t}})}function V(t){j.push(t),L||(L=j.shift(),i(_))}function _(t=0){if(t&&performance.now()-t>T)i(_);else{const t=performance.now();(L=q(L))?_(t):E.commitWork?E.commitWork(W):D(W)}}function q(t){if(t.tag==C?F(t):B(t),t.child)return t.child;for(;t;){if(z(t),t.sibling)return t.sibling;t=t.parent}}function B(t){E.end||t.base||(t.base=p(t));let e=t.parent||{};t.insertPoint=e.oldPoint,e.oldPoint=t,R(t,t.props.children)}function F(t){t.props=t.props||{},t.state=t.state||{},I=t,h();const e=t.type(t.props);R(t,e),I.patches=t.patches}function N(t,e){return e.children=r(t,e.children)}function R(t,e){const o=t.children,r=N(e,t);let i={};for(let s in o){let e=r[s],c=o[s];e&&n(e,c)?i[s]=c:(c.patchTag=M,t.patches.push(c))}let c=null,l=null;for(let n in r){let e=r[n],o=i[n];o?(l=$(o,{patchTag:A}),E.end||(e.patchTag=A),(e=s(l,e)).alternate=l,o.key&&(e.patchTag=w)):e=$(e,{patchTag:w}),r[n]=e,e.parent=t,c?c.sibling=e:(t.child=e,e.oldPoint=null),c=e}c&&(c.sibling=null)}function $(t,e){return e.tag=c(t.type)?C:v,t.props=t.props,s(t,e)}function z(t){!E.end&&t.parent?t.parent.patches=(t.parent.patches||[]).concat(t.patches||[],t.patchTag?[t]:[]):W=t}function D(t){t.patches.forEach(t=>G(t)),O=!1,L=null,W=null}function G(t){let e=t.parent;for(;e.tag==C;)e=e.parent;const n=e.base;let o=t.base||t.child.base;if(e.patches=t.patches=[],t.parent.tag!=P)switch(t.patchTag){case A:u(o,t.alternate.props,t.props);break;case M:n.removeChild(o);break;default:const e=t.insertPoint;let r=e?e.base:null,s=r?r.nextSibling:n.firstChild;if(s==o)return;if(null===s&&o===n.lastChild)return;O&&(s=null),n.insertBefore(o,s)}}function H(){return I||null} +},{}],"Focm":[function(require,module,exports) { +"use strict";require("./style.css");var l=require("fre"),i="https://cdn.jsdelivr.net/gh/cliclitv/clicli-hybrid-app@latest/bin/clicli.apk",a="https://ae01.alicdn.com/kf/Had6fa2a0d8e54465820740a3317a8725t.png";function e(){return(0,l.h)("div",{class:"main"},(0,l.h)("div",{class:"left"},(0,l.h)("div",{class:"logo"}),(0,l.h)("h1",null,"人·生·就·是·佛"),(0,l.h)("ul",{class:"link"},(0,l.h)("a",{href:i,target:"_blank"},(0,l.h)("li",null,"Android")),(0,l.h)("a",{href:""},(0,l.h)("li",null,"IOS"))),(0,l.h)("div",{class:"qcode"},(0,l.h)("img",{src:a,alt:"c站 app"}))),(0,l.h)("div",{class:"right"}))}(0,l.render)((0,l.h)(e,null),document.getElementById("root")); +},{"./style.css":"2iMt","fre":"h/Ua"}]},{},["Focm"], null) +//# sourceMappingURL=/dev.1518c449.js.map \ No newline at end of file diff --git a/docs/dev.1518c449.js.map b/docs/dev.1518c449.js.map new file mode 100644 index 0000000..0d12407 --- /dev/null +++ b/docs/dev.1518c449.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/reconciler.js","../src/h.js","../src/util.js","../src/dom.js","../src/hooks.js","index.js"],"names":["DOWN_URL","QCODE","App","document","getElementById"],"mappings":"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","file":"dev.1518c449.js","sourceRoot":"..","sourcesContent":["import { createElement, updateElement } from './dom'\r\nimport { resetCursor } from './hooks'\r\nimport { defer, hashfy, merge, isSame, isFn } from './util'\r\n\r\nconst options = {}\r\nconst FPS = 1000 / 60\r\nconst [HOST, HOOK, ROOT, PLACE, UPDATE, DELETE] = [0, 1, 2, 3, 4, 5]\r\n\r\nlet updateQueue = []\r\nlet nextWork = null\r\nlet pendingCommit = null\r\nlet currentFiber = null\r\nlet once = true\r\n\r\nfunction render (vnode, el) {\r\n let rootFiber = {\r\n tag: ROOT,\r\n base: el,\r\n props: { children: vnode }\r\n }\r\n scheduleWork(rootFiber)\r\n}\r\n\r\nfunction scheduleWork (fiber) {\r\n updateQueue.push(fiber)\r\n if (!nextWork) {\r\n nextWork = updateQueue.shift()\r\n defer(workLoop)\r\n }\r\n}\r\n\r\nfunction workLoop (startTime = 0) {\r\n if (startTime && performance.now() - startTime > FPS) {\r\n defer(workLoop)\r\n } else {\r\n const nextTime = performance.now()\r\n nextWork = performWork(nextWork)\r\n if (nextWork) {\r\n workLoop(nextTime)\r\n } else {\r\n options.commitWork\r\n ? options.commitWork(pendingCommit)\r\n : commitWork(pendingCommit)\r\n }\r\n }\r\n}\r\n\r\nfunction performWork (WIP) {\r\n WIP.tag == HOOK ? updateHOOK(WIP) : updateHost(WIP)\r\n if (WIP.child) return WIP.child\r\n while (WIP) {\r\n completeWork(WIP)\r\n if (WIP.sibling) return WIP.sibling\r\n WIP = WIP.parent\r\n }\r\n}\r\n\r\nfunction updateHost (WIP) {\r\n if (!options.end && !WIP.base) {\r\n WIP.base = createElement(WIP)\r\n }\r\n\r\n let parent = WIP.parent || {}\r\n WIP.insertPoint = parent.oldPoint\r\n parent.oldPoint = WIP\r\n const children = WIP.props.children\r\n reconcileChildren(WIP, children)\r\n}\r\n\r\nfunction updateHOOK (WIP) {\r\n WIP.props = WIP.props || {}\r\n WIP.state = WIP.state || {}\r\n currentFiber = WIP\r\n resetCursor()\r\n const children = WIP.type(WIP.props)\r\n reconcileChildren(WIP, children)\r\n currentFiber.patches = WIP.patches\r\n}\r\nfunction fiberize (children, WIP) {\r\n return (WIP.children = hashfy(children, WIP.children))\r\n}\r\n\r\nfunction reconcileChildren (WIP, children) {\r\n const oldFibers = WIP.children\r\n const newFibers = fiberize(children, WIP)\r\n let reused = {}\r\n\r\n for (let k in oldFibers) {\r\n let newFiber = newFibers[k]\r\n let oldFiber = oldFibers[k]\r\n\r\n if (newFiber && isSame(newFiber, oldFiber)) {\r\n reused[k] = oldFiber\r\n } else {\r\n oldFiber.patchTag = DELETE\r\n WIP.patches.push(oldFiber)\r\n }\r\n }\r\n\r\n let prevFiber = null\r\n let alternate = null\r\n\r\n for (let k in newFibers) {\r\n let newFiber = newFibers[k]\r\n let oldFiber = reused[k]\r\n\r\n // console.log(newFiber,oldFiber)\r\n\r\n if (oldFiber) {\r\n alternate = createFiber(oldFiber, {\r\n patchTag: UPDATE\r\n })\r\n if (!options.end) newFiber.patchTag = UPDATE\r\n newFiber = merge(alternate, newFiber)\r\n newFiber.alternate = alternate\r\n if (oldFiber.key) {\r\n newFiber.patchTag = PLACE\r\n }\r\n } else {\r\n newFiber = createFiber(newFiber, {\r\n patchTag: PLACE\r\n })\r\n }\r\n\r\n newFibers[k] = newFiber\r\n newFiber.parent = WIP\r\n\r\n if (prevFiber) {\r\n prevFiber.sibling = newFiber\r\n } else {\r\n WIP.child = newFiber\r\n newFiber.oldPoint = null\r\n }\r\n prevFiber = newFiber\r\n }\r\n if (prevFiber) prevFiber.sibling = null\r\n}\r\n\r\nfunction createFiber (vnode, data) {\r\n data.tag = isFn(vnode.type) ? HOOK : HOST\r\n vnode.props = vnode.props\r\n return merge(vnode, data)\r\n}\r\n\r\nfunction completeWork (fiber) {\r\n if (!options.end && fiber.parent) {\r\n fiber.parent.patches = (fiber.parent.patches || []).concat(\r\n fiber.patches || [],\r\n fiber.patchTag ? [fiber] : []\r\n )\r\n } else {\r\n pendingCommit = fiber\r\n }\r\n}\r\n\r\nfunction commitWork (WIP) {\r\n WIP.patches.forEach(p => commit(p))\r\n once = false\r\n nextWork = null\r\n pendingCommit = null\r\n}\r\nfunction commit (fiber) {\r\n let p = fiber.parent\r\n while (p.tag == HOOK) p = p.parent\r\n const parent = p.base\r\n let dom = fiber.base || fiber.child.base\r\n p.patches = fiber.patches = []\r\n if (fiber.parent.tag == ROOT) return\r\n\r\n switch (fiber.patchTag) {\r\n case UPDATE:\r\n updateElement(dom, fiber.alternate.props, fiber.props)\r\n break\r\n case DELETE:\r\n parent.removeChild(dom)\r\n break\r\n default:\r\n const insertPoint = fiber.insertPoint\r\n let point = insertPoint ? insertPoint.base : null\r\n let after = point ? point.nextSibling : parent.firstChild\r\n if (after == dom) return\r\n if (after === null && dom === parent.lastChild) return\r\n if (once) after = null\r\n parent.insertBefore(dom, after)\r\n break\r\n }\r\n}\r\n\r\nfunction getWIP () {\r\n return currentFiber || null\r\n}\r\n\r\nexport { render, scheduleWork, getWIP, options }\r\n","export function h (type, config) {\n let props = config || {}\n let key = props.key || null\n let children = []\n\n for (let i = 2; i < arguments.length; i++) {\n let vnode = arguments[i]\n if (vnode === null || vnode === true || vnode === false) {\n } else if (vnode.pop || typeof vnode === 'object') {\n children.push(vnode)\n } else if (typeof vnode === 'function') {\n children = vnode\n } else {\n children.push({ type: 'text', props: { nodeValue: vnode } })\n }\n }\n props.children = children\n\n return { type, props, key }\n}\n","export const arrayfy = arr => (!arr ? [] : Array.isArray(arr) ? arr : [arr])\r\n\r\nexport const isSame = (a, b) => a.type === b.type\r\n\r\nexport const isNew = (o, n) => k =>\r\n k !== 'children' && k !== 'key' && o[k] !== n[k]\r\n\r\nexport function hashfy (arr) {\r\n let out = {}\r\n let i = 0\r\n let j = 0\r\n const newKids = arrayfy(arr)\r\n newKids.forEach(item => {\r\n if (item.pop) {\r\n item.forEach(item => {\r\n let key = ((item || {}).props || {}).key\r\n key\r\n ? (out['.' + i + '.' + key] = item)\r\n : (out['.' + i + '.' + j] = item) && j++\r\n })\r\n i++\r\n } else {\r\n ;(out['.' + i] = item) && i++\r\n }\r\n })\r\n return out\r\n}\r\n\r\nexport function merge (a, b) {\r\n let out = {}\r\n for (const i in a) out[i] = a[i]\r\n for (const i in b) out[i] = b[i]\r\n return out\r\n}\r\nexport const defer = requestAnimationFrame || setTimeout\r\n\r\nexport const isFn = fn => typeof fn === 'function'\r\n","import { isNew } from './util'\n\nfunction updateProperty (dom, name, value, newValue) {\n if (name === 'style') {\n for (key in newValue) {\n let style = !newValue || !newValue[key] ? '' : newValue[key]\n dom[name][key] = style\n }\n } else if (name[0] === 'o' && name[1] === 'n') {\n name = name.slice(2).toLowerCase()\n if (value) {\n dom.removeEventListener(name, value)\n }\n dom.addEventListener(name, newValue)\n } else {\n dom.setAttribute(name, newValue)\n }\n}\n\nexport function updateElement (dom, props, newProps) {\n Object.keys(newProps)\n .filter(isNew(props, newProps)) // 进行浅比较和过滤\n .forEach(key => {\n if (key === 'value' || key === 'nodeValue') {\n dom[key] = newProps[key]\n } else {\n updateProperty(dom, key, props[key], newProps[key])\n }\n })\n}\n\nexport function createElement (fiber) {\n const dom =\n fiber.type === 'text'\n ? document.createTextNode('')\n : document.createElement(fiber.type)\n updateElement(dom, [], fiber.props)\n return dom\n}\n","import { scheduleWork, getWIP } from './reconciler'\nlet cursor = 0\n\nfunction update (key, reducer, value) {\n const current = this ? this : getWIP()\n value = reducer ? reducer(current.state[key], value) : value\n current.state[key] = value\n scheduleWork(current)\n}\nexport function resetCursor () {\n cursor = 0\n}\nexport function useState (initState) {\n return useReducer(null, initState)\n}\nexport function useReducer (reducer, initState) {\n let current = getWIP()\n if (!current) return [initState, setter]\n let key = '$' + cursor\n let setter = update.bind(current, key, reducer)\n cursor++\n let state = current.state || {}\n if (key in state) {\n return [state[key], setter]\n } else {\n current.state[key] = initState\n return [initState, setter]\n }\n}\n\nexport function useEffect (cb, inputs) {\n let current = getWIP()\n if (current) current.effect = useCallback(cb, inputs)\n}\n\nexport function useCallback (cb, inputs) {\n return useMemo(() => cb, inputs)\n}\n\nexport function useMemo (cb, inputs) {\n let current = getWIP()\n if (current) {\n let hasChaged = inputs\n ? (current.oldInputs || []).some((v, i) => inputs[i] !== v)\n : true\n if (inputs && !inputs.length && !current.isMounted) {\n hasChaged = true\n current.isMounted = true\n }\n current.oldInputs = inputs\n \n if (hasChaged) return cb()\n }\n}\n\nexport function createContext (init = {}) {\n let context = init\n let set = {}\n const update = context => {\n for (let key in set) set[key](context)\n }\n const subscribe = (fn, name) => {\n if (name in set) return\n set[name] = fn\n }\n\n return { context, update, subscribe, set }\n}\n\nexport function useContext (ctx) {\n const [context, setContext] = useState(ctx.context)\n const name = getWIP().type.name\n ctx.subscribe(setContext, name)\n return [context, ctx.update]\n}\n","import './style.css'\nimport { h, render } from 'fre'\n\nconst DOWN_URL = 'https://cdn.jsdelivr.net/gh/cliclitv/clicli-hybrid-app@latest/bin/clicli.apk'\nconst QCODE =\n 'https://ae01.alicdn.com/kf/Had6fa2a0d8e54465820740a3317a8725t.png'\n\nfunction App () {\n return (\n
\n
\n \n
\n
\n )\n}\n\nrender(, document.getElementById('root'))\n"]} \ No newline at end of file diff --git a/docs/dev.6755ce35.css.map b/docs/dev.6755ce35.css.map deleted file mode 100644 index d0fe582..0000000 --- a/docs/dev.6755ce35.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["style.css"],"names":[],"mappings":"AAAA,EACE,QAAS,CACT,SACF,CACA,MAEE,eACF,CACA,KAEE,uDACF,CACA,UAHE,WAOF,CAJA,KACE,aAAc,CAEd,gEACF,CACA,MACE,YAAa,CACb,aAAc,CACd,YACF,CACA,MACE,WAAY,CACZ,cACF,CAEA,OACE,WAAY,CACZ,4EACM,CACN,YAAa,CACb,oBACF,CACA,MACE,YAAa,CACb,WAAY,CACZ,kBAAmB,CACnB,gEAAiE,CACjE,qBAAsB,CACtB,qBAAsB,CACtB,iCACF,CACA,GACE,UAAW,CACX,iBAAkB,CAClB,cAAe,CACf,kBAEF,CACA,SAFE,eAIF,CACA,QACE,aAEF,CACA,iBAFE,iBAYF,CAVA,SACE,UAAW,CAEX,WAAY,CACZ,aAAc,CACd,mCAA0C,CAC1C,oBAAqB,CACrB,gBAAiB,CACjB,iBAAkB,CAClB,cACF,CAEA,eACE,8BACF,CAIA,kBAFE,iBAOF,CALA,WACE,YAAa,CACb,YAAa,CACb,gBAEF,CAEA,oCACE,YACE,UACF,CACA,OACE,YACF,CACF","file":"dev.6755ce35.css","sourceRoot":"..","sourcesContent":["* {\r\n margin: 0;\r\n padding: 0;\r\n}\r\nul,\r\nli {\r\n list-style: none;\r\n}\r\nhtml {\r\n height: 100%;\r\n background: linear-gradient(to top left, #1af5d0, #405e6e);\r\n}\r\nbody {\r\n transition: 1s;\r\n height: 100%;\r\n background: url(https://0d077ef9e74d8.cdn.sohucs.com/roUnPx0_png);\r\n}\r\n.main {\r\n width: 1000px;\r\n margin: 0 auto;\r\n display: flex;\r\n}\r\n.left {\r\n width: 200px;\r\n transition: 0.5s;\r\n}\r\n\r\n.right {\r\n width: 620px;\r\n background: url(https://0d077ef9e74d8.cdn.sohucs.com/roUiDdR_png) no-repeat\r\n left;\r\n height: 100vh;\r\n background-size: 100%;\r\n}\r\n.logo {\r\n height: 100px;\r\n width: 100px;\r\n border-radius: 20px;\r\n background: url(https://0d077ef9e74d8.cdn.sohucs.com/roUj1hC_png);\r\n background-size: cover;\r\n margin: 80px auto 30px;\r\n box-shadow: 10px 10px 10px #0a5658;\r\n}\r\nh1 {\r\n color: #fff;\r\n text-align: center;\r\n font-size: 16px;\r\n letter-spacing: 4px;\r\n margin-top: 50px;\r\n}\r\n.link {\r\n margin-top: 50px;\r\n}\r\n.link a {\r\n display: block;\r\n text-align: center;\r\n}\r\n.link li {\r\n color: #fff;\r\n text-align: center;\r\n width: 150px;\r\n padding: 6px 0;\r\n border: 1px solid rgba(255, 255, 255, 0.8);\r\n display: inline-block;\r\n margin: 10px auto;\r\n border-radius: 4px;\r\n transition: 0.5s;\r\n}\r\n\r\n.link li:hover {\r\n background: rgba(26, 245, 245, 0.4);\r\n}\r\n.qcode {\r\n text-align: center;\r\n}\r\n.qcode img {\r\n widows: 150px;\r\n height: 150px;\r\n margin: 50px auto;\r\n text-align: center;\r\n}\r\n\r\n@media screen and (max-width: 500px) {\r\n .main ,.left{\r\n width: 100%;\r\n }\r\n .right{\r\n display: none;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 5cc3d46..8e64f2c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -clicli-APP发布页-c站APP
\ No newline at end of file +clicli-APP发布页-c站APP
\ No newline at end of file