openstack-uicore-foundation
Version:
ui reactjs components for openstack marketing site
2 lines • 7.19 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={2593:(e,t,s)=>{s.d(t,{default:()=>p});var i=s(1116),r=s.n(i),n=s(2015),o=s.n(n),a=s(5812),l=s.n(a),h=s(8311),c=s(9558);class u extends o().Component{constructor(e){super(e),r()(this,"processServerTimeResponse",((e,t)=>{const s=l()().unix();let i=s;e&&(i=e.timestamp+(s-t)),this._isMounted&&(console.log(`Clock::processServerTimeResponse setting timestamp ${i}`),this.setState({timestamp:i})),this.props.onTick&&this.props.onTick(i)})),r()(this,"processServerTimeResponseError",(()=>{let e=l()().unix();this._isMounted&&(console.log(`Clock::processServerTimeResponseError setting timestamp ${e}`),this.setState({timestamp:e})),this.props.onTick&&this.props.onTick(e)})),r()(this,"getServerTime",(()=>{const e=(0,c.getTimeServiceUrl)();return fetch(`${e}`).then((async e=>200===e.status?e.json():Promise.reject(null))).catch((e=>(console.log(e),Promise.reject(e))))})),r()(this,"tick",(()=>{const{timestamp:e}=this.state;null!==e&&(this.props.onTick&&this.props.onTick(e+1),this._isMounted&&this.setState({timestamp:e+1}))})),r()(this,"now",(()=>this.state.timestamp)),this.fragmentParser=new h.default,this.interval=null,this.state={timestamp:null,manualSet:!1},this._isMounted=!1,this.onVisibilityChange=this.onVisibilityChange.bind(this)}componentDidMount(){this._isMounted=!0;const{timezone:e="UTC",now:t}=this.props,s=this.fragmentParser.getParam("now"),i=l().tz(s,"YYYY-MM-DD,hh:mm:ss",e);let r=null,n=!1;if(i.isValid())r=i.valueOf()/1e3,console.log(`Clock::componentDidMount nowQS ${s} is valid setting timestamp ${r}`),n=!0;else if(t)r=t;else{const e=l()().unix();this.getServerTime().then((t=>this.processServerTimeResponse(t,e))).catch((()=>this.processServerTimeResponseError()))}r&&(this.setState({timestamp:r,manualSet:n}),this.props.onTick&&this.props.onTick(r)),this.interval=setInterval(this.tick,1e3),document.addEventListener("visibilitychange",this.onVisibilityChange,!1)}onVisibilityChange(){const e=document.visibilityState,{manualSet:t}=this.state;if("visible"===e){if(console.log(`Clock::onVisibilityChange manualSet ${t}`),t)return;const e=l()().unix();this.getServerTime().then((t=>this.processServerTimeResponse(t,e))).catch((()=>this.processServerTimeResponseError()))}}componentWillUnmount(){this._isMounted=!1,clearInterval(this.interval),document.removeEventListener("visibilitychange",this.onVisibilityChange),this.interval=null}render(){const{display:e,timezone:t="UTC"}=this.props,{timestamp:s}=this.state;return e&&s?o().createElement("div",{style:{marginTop:"50px",textAlign:"center",fontSize:"20px"}},l().tz(1e3*s,t).format("YYYY-MM-DD hh:mm:ss")):null}}const p=u},8311:(e,t,s)=>{s.d(t,{default:()=>o});var i=s(1116),r=s.n(i);function n(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,i)}return s}class o{constructor(){this.originalHash="",this.hash={}}convertToHash(e){let t=(e=e.substr(1).toLowerCase()).split("&"),s={};for(let e of t){if(e=e.split("="),2!==e.length)continue;let t=e[1].trim();""!==t&&("true"!==t&&"false"!==t||(e[1]="true"==t),s[e[0]]=e[1])}return s}clearParams(){this.originalHash="",this.hash={}}getParam(e){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),this.hash.hasOwnProperty(e)?this.hash[e]:null}getParams(){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?n(Object(s),!0).forEach((function(t){r()(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):n(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}({},this.hash)}deleteParam(e){var t=this.getParams();this.clearParams();for(let s in t)s!=e&&(this.hash[s]=t[s])}deleteParams(e){var t=this.getParams();this.clearParams();for(let s in t)e.includes(s)||(this.hash[s]=t[s])}setParam(e,t){return"undefined"!=typeof window&&this.originalHash!==window.location.hash&&(this.originalHash=window.location.hash,this.hash=this.convertToHash(this.originalHash)),null!==t&&""!==t?this.hash[e]=t:delete this.hash[e],this}serialize(){let e="";for(let t in this.hash){""!==e&&(e+="&"),e+=t+"="+this.hash[t]}return e}}},5890:(e,t,s)=>{s.d(t,{createExternalStore:()=>l});var i=s(2015),r=s.n(i);const n=require("use-sync-external-store/shim"),o=require("use-sync-external-store/shim/with-selector"),a=(e,t)=>e===t;function l(e="ExternalStore"){const t=(0,i.createContext)(null),s=()=>{const s=(0,i.useContext)(t);if(null===s)throw new Error(`${e} hooks must be used within their Provider`);return s};return{Provider:({initialValue:e=null,children:s})=>{const n=(0,i.useRef)(e),o=(0,i.useRef)(new Set),a=(0,i.useCallback)((e=>(o.current.add(e),()=>o.current.delete(e))),[]),l=(0,i.useCallback)((()=>n.current),[]),h=(0,i.useCallback)((e=>{n.current=e,o.current.forEach((e=>e()))}),[]),c=(0,i.useMemo)((()=>({subscribe:a,getSnapshot:l})),[a,l]);return r().createElement(t.Provider,{value:c},"function"==typeof s?s(h):s)},useValue:()=>{const{subscribe:e,getSnapshot:t}=s();return(0,n.useSyncExternalStore)(e,t)},useSelector:(e,t=a)=>{const{subscribe:i,getSnapshot:r}=s();return(0,o.useSyncExternalStoreWithSelector)(i,r,r,e,t)}}}},9558:(e,t,s)=>{s.d(t,{getTimeServiceUrl:()=>i});s(5812),s(8041);const i=()=>"undefined"!=typeof window?window.TIMEINTERVALSINCE1970_API_URL||process.env.TIMEINTERVALSINCE1970_API_URL:null},1116:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},5812:e=>{e.exports=require("moment-timezone")},2015:e=>{e.exports=require("react")},8041:e=>{e.exports=require("urijs")}},t={};function s(i){var r=t[i];if(void 0!==r)return r.exports;var n=t[i]={exports:{}};return e[i](n,n.exports,s),n.exports}(()=>{s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t}})(),(()=>{s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}})(),(()=>{s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var i={};s.r(i),s.d(i,{ClockProvider:()=>u,useClock:()=>h,useClockSelector:()=>c});var r=s(2015),n=s.n(r),o=s(5890),a=s(2593);const{Provider:l,useValue:h,useSelector:c}=(0,o.createExternalStore)("Clock"),u=({timezone:e,now:t,children:s})=>n().createElement(l,{initialValue:t},(i=>n().createElement(n().Fragment,null,n().createElement(a.default,{onTick:i,timezone:e,now:t}),s)));return i})()));
//# sourceMappingURL=clock-context.js.map