@haxtheweb/create 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -1
- package/dist/create.js +67 -41
- package/dist/templates/haxsite/default/.htaccess +79 -0
- package/dist/templates/haxsite/default/.nojekyll +0 -0
- package/dist/templates/haxsite/default/404.html +43 -0
- package/dist/templates/haxsite/default/CNAME +0 -0
- package/dist/templates/haxsite/default/Dockerfile +15 -0
- package/dist/templates/haxsite/default/LICENSE.md +201 -0
- package/dist/templates/haxsite/default/README.md +38 -0
- package/dist/templates/haxsite/default/adlcp_rootv1p2.xsd +110 -0
- package/dist/templates/haxsite/default/assets/banner.jpg +0 -0
- package/dist/templates/haxsite/default/assets/build-legacy.js +1 -0
- package/dist/templates/haxsite/default/assets/build-polyfills.js +1 -0
- package/dist/templates/haxsite/default/assets/favicon.ico +0 -0
- package/dist/templates/haxsite/default/assets/favicon.png +0 -0
- package/dist/templates/haxsite/default/assets/icon-144x144.png +0 -0
- package/dist/templates/haxsite/default/assets/icon-192x192.png +0 -0
- package/dist/templates/haxsite/default/assets/icon-256x256.png +0 -0
- package/dist/templates/haxsite/default/assets/icon-48x48.png +0 -0
- package/dist/templates/haxsite/default/assets/icon-512x512.png +0 -0
- package/dist/templates/haxsite/default/assets/icon-72x72.png +0 -0
- package/dist/templates/haxsite/default/assets/icon-96x96.png +0 -0
- package/dist/templates/haxsite/default/assets/legacy-outline.css +25 -0
- package/dist/templates/haxsite/default/assets/upgrade-browser.html +136 -0
- package/dist/templates/haxsite/default/browserconfig.xml +11 -0
- package/dist/templates/haxsite/default/build-haxcms.js +123 -0
- package/dist/templates/haxsite/default/build.js +1 -0
- package/dist/templates/haxsite/default/custom/Dockerfile +15 -0
- package/dist/templates/haxsite/default/custom/README.md +20 -0
- package/dist/templates/haxsite/default/custom/package.json +27 -0
- package/dist/templates/haxsite/default/custom/rollup.config.js +20 -0
- package/dist/templates/haxsite/default/custom/src/custom.js +8 -0
- package/dist/templates/haxsite/default/false +0 -0
- package/dist/templates/haxsite/default/files/.gitkeep +0 -0
- package/dist/templates/haxsite/default/ims_xml.xsd +1 -0
- package/dist/templates/haxsite/default/imscp_rootv1p1p2.xsd +345 -0
- package/dist/templates/haxsite/default/imsmanifest.xml +57 -0
- package/dist/templates/haxsite/default/imsmd_rootv1p2p1.xsd +573 -0
- package/dist/templates/haxsite/default/index.html +211 -0
- package/dist/templates/haxsite/default/index.php +166 -0
- package/dist/templates/haxsite/default/manifest.json +65 -0
- package/dist/templates/haxsite/default/offline.html +11 -0
- package/dist/templates/haxsite/default/package.json +38 -0
- package/dist/templates/haxsite/default/pages/.gitkeep +0 -0
- package/dist/templates/haxsite/default/polymer.json +126 -0
- package/dist/templates/haxsite/default/push-manifest.json +8 -0
- package/dist/templates/haxsite/default/robots.txt +27 -0
- package/dist/templates/haxsite/default/service-worker.js +283 -0
- package/dist/templates/haxsite/default/site.json +39 -0
- package/dist/templates/haxsite/default/theme/theme.css +13 -0
- package/dist/templates/haxsite/default/theme/theme.html +46 -0
- package/dist/templates/haxsite/default/web-dev-server.haxcms.config.cjs +10 -0
- package/dist/templates/webcomponent/hax/package.json +1 -1
- package/dist/templates/webcomponent/hax/src/webcomponent.js +1 -1
- package/package.json +61 -59
- package/dist/templates/haxcms/course/package.json +0 -6
- package/dist/templates/theme/default/package.json +0 -6
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- filename=adlcp_rootv1p2.xsd -->
|
|
3
|
+
<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
|
|
4
|
+
|
|
5
|
+
<xsd:schema xmlns="http://www.adlnet.org/xsd/adlcp_rootv1p2"
|
|
6
|
+
targetNamespace="http://www.adlnet.org/xsd/adlcp_rootv1p2"
|
|
7
|
+
xmlns:xml="http://www.w3.org/XML/1998/namespace"
|
|
8
|
+
xmlns:imscp="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
|
|
9
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
10
|
+
elementFormDefault="unqualified"
|
|
11
|
+
version="ADL Version 1.2">
|
|
12
|
+
|
|
13
|
+
<xsd:import namespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
|
|
14
|
+
schemaLocation="imscp_rootv1p1p2.xsd"/>
|
|
15
|
+
|
|
16
|
+
<xsd:element name="location" type="locationType"/>
|
|
17
|
+
<xsd:element name="prerequisites" type="prerequisitesType"/>
|
|
18
|
+
<xsd:element name="maxtimeallowed" type="maxtimeallowedType"/>
|
|
19
|
+
<xsd:element name="timelimitaction" type="timelimitactionType"/>
|
|
20
|
+
<xsd:element name="datafromlms" type="datafromlmsType"/>
|
|
21
|
+
<xsd:element name="masteryscore" type="masteryscoreType"/>
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
<xsd:element name="schema" type="newSchemaType"/>
|
|
25
|
+
<xsd:simpleType name="newSchemaType">
|
|
26
|
+
<xsd:restriction base="imscp:schemaType">
|
|
27
|
+
<xsd:enumeration value="ADL SCORM"/>
|
|
28
|
+
</xsd:restriction>
|
|
29
|
+
</xsd:simpleType>
|
|
30
|
+
|
|
31
|
+
<xsd:element name="schemaversion" type="newSchemaversionType"/>
|
|
32
|
+
<xsd:simpleType name="newSchemaversionType">
|
|
33
|
+
<xsd:restriction base="imscp:schemaversionType">
|
|
34
|
+
<xsd:enumeration value="1.2"/>
|
|
35
|
+
</xsd:restriction>
|
|
36
|
+
</xsd:simpleType>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<xsd:attribute name="scormtype">
|
|
40
|
+
<xsd:simpleType>
|
|
41
|
+
<xsd:restriction base="xsd:string">
|
|
42
|
+
<xsd:enumeration value="asset"/>
|
|
43
|
+
<xsd:enumeration value="sco"/>
|
|
44
|
+
</xsd:restriction>
|
|
45
|
+
</xsd:simpleType>
|
|
46
|
+
</xsd:attribute>
|
|
47
|
+
|
|
48
|
+
<xsd:simpleType name="locationType">
|
|
49
|
+
<xsd:restriction base="xsd:string">
|
|
50
|
+
<xsd:maxLength value="2000"/>
|
|
51
|
+
</xsd:restriction>
|
|
52
|
+
</xsd:simpleType>
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
<xsd:complexType name="prerequisitesType">
|
|
56
|
+
<xsd:simpleContent>
|
|
57
|
+
<xsd:extension base="prerequisiteStringType">
|
|
58
|
+
<xsd:attributeGroup ref="attr.prerequisitetype"/>
|
|
59
|
+
</xsd:extension>
|
|
60
|
+
</xsd:simpleContent>
|
|
61
|
+
</xsd:complexType>
|
|
62
|
+
|
|
63
|
+
<xsd:attributeGroup name="attr.prerequisitetype">
|
|
64
|
+
<xsd:attribute name="type" use="required">
|
|
65
|
+
<xsd:simpleType>
|
|
66
|
+
<xsd:restriction base="xsd:string">
|
|
67
|
+
<xsd:enumeration value="aicc_script"/>
|
|
68
|
+
</xsd:restriction>
|
|
69
|
+
</xsd:simpleType>
|
|
70
|
+
</xsd:attribute>
|
|
71
|
+
</xsd:attributeGroup>
|
|
72
|
+
|
|
73
|
+
<xsd:simpleType name="maxtimeallowedType">
|
|
74
|
+
<xsd:restriction base="xsd:string">
|
|
75
|
+
<xsd:maxLength value="13"/>
|
|
76
|
+
</xsd:restriction>
|
|
77
|
+
</xsd:simpleType>
|
|
78
|
+
|
|
79
|
+
<xsd:simpleType name="timelimitactionType">
|
|
80
|
+
<xsd:restriction base="stringType">
|
|
81
|
+
<xsd:enumeration value="exit,no message"/>
|
|
82
|
+
<xsd:enumeration value="exit,message"/>
|
|
83
|
+
<xsd:enumeration value="continue,no message"/>
|
|
84
|
+
<xsd:enumeration value="continue,message"/>
|
|
85
|
+
</xsd:restriction>
|
|
86
|
+
</xsd:simpleType>
|
|
87
|
+
|
|
88
|
+
<xsd:simpleType name="datafromlmsType">
|
|
89
|
+
<xsd:restriction base="xsd:string">
|
|
90
|
+
<xsd:maxLength value="255"/>
|
|
91
|
+
</xsd:restriction>
|
|
92
|
+
</xsd:simpleType>
|
|
93
|
+
|
|
94
|
+
<xsd:simpleType name="masteryscoreType">
|
|
95
|
+
<xsd:restriction base="xsd:string">
|
|
96
|
+
<xsd:maxLength value="200"/>
|
|
97
|
+
</xsd:restriction>
|
|
98
|
+
</xsd:simpleType>
|
|
99
|
+
|
|
100
|
+
<xsd:simpleType name="stringType">
|
|
101
|
+
<xsd:restriction base="xsd:string"/>
|
|
102
|
+
</xsd:simpleType>
|
|
103
|
+
|
|
104
|
+
<xsd:simpleType name="prerequisiteStringType">
|
|
105
|
+
<xsd:restriction base="xsd:string">
|
|
106
|
+
<xsd:maxLength value="200"/>
|
|
107
|
+
</xsd:restriction>
|
|
108
|
+
</xsd:simpleType>
|
|
109
|
+
|
|
110
|
+
</xsd:schema>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var ancient=!1;window.WCGlobalCDNPath&&window.WCGlobalCDNPath,window.__appCDN&&window.__appCDN;try{"undefined"==typeof Symbol&&(ancient=!0),new Function("let a;")}catch(err){ancient=!0}(window.__appForceUpgrade||window.WCForceUpgrade)&&ancient&&(window.location="assets/upgrade-browser.html");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t,e,n,o,r;t=window,e=document,!t.getSelection&&e.selection&&(n=null,t.getSelection=function(){return null!=n?n:n=new o},e.createRange=function(){return new Range},e.attachEvent("onkeydown",(function(){return t.getSelection().setRangeAt(0,new Range(!0))})),e.attachEvent("onselectionchange",(function(){var n,o;return t.getSelection().setRangeAt(0,new Range(!0)),"INPUT"===(n=e.selection.createRange().parentElement()).tagName||"TEXTAREA"===n.tagName?(o=t.getSelection().getRangeAt(0),n.selectionStart=o.selectionStart,n.selectionEnd=o.selectionEnd):void 0})),t.Range=function(){function t(t){t?this.range=e.selection.createRange():(this.range=e.body.createTextRange(),this.collapse(!0)),this.init()}return t.END_TO_END="EndToEnd",t.END_TO_START="EndToStart",t.START_TO_END="StartToEnd",t.START_TO_START="StartToStart",t.prototype.init=function(){var t,e,n,o,i,a;return e=this.range.parentElement(),this.commonAncestorContainer=e,this.collapsed=0===this.compareBoundaryPoints("StartToEnd",this),(a=this.range.duplicate()).moveToElementText(e),t=this.range.text.length>0?0:1,i=r.findLength("StartToStart",a,this.range),n=r.findNodeByPos(e,i,t),this.startContainer=n.el,this.startOffset=n.offset,o=r.findLength("StartToEnd",a,this.range),n=r.findNodeByPos(e,o,1),this.endContainer=n.el,this.endOffset=n.offset,this.selectionStart=r.findLength("StartToStart",a,this.range,!0),this.selectionEnd=r.findLength("StartToEnd",a,this.range,!0)},t.prototype.select=function(){return this.range.select()},t.prototype.setStart=function(t,e){var n,o;return r.getText(t).length>=e&&e>=0?(o=this.range.duplicate(),3===t.nodeType&&(n=r.findPosFromNode(t),o.moveToElementText(t.parentNode),o.moveStart("character",n+e)),-1===this.range.compareEndPoints("StartToEnd",o)&&this.range.setEndPoint("EndToStart",o),this.range.setEndPoint("StartToStart",o)):void 0},t.prototype.setEnd=function(t,e){var n,o;return r.getText(t).length>=e&&e>=0?(o=this.range.duplicate(),3===t.nodeType&&(n=r.findPosFromNode(t),o.moveToElementText(t.parentNode),o.moveStart("character",n+e)),this.range.setEndPoint("EndToStart",o)):void 0},t.prototype.selectNodeContents=function(t){return this.range.moveToElementText(t)},t.prototype.collapse=function(t){return t?this.range.setEndPoint("EndToStart",this.range):this.range.setEndPoint("StartToEnd",this.range)},t.prototype.compareBoundaryPoints=function(t,e){return this.range.compareEndPoints(t,e.range)},t.prototype.cloneRange=function(){var e;return(e=new t).range=this.range.duplicate(),e.init(),e},t.prototype.detach=function(){return delete this.range},t.prototype.getBoundingClientRect=function(){var e;return{width:(e=this.range.getBoundingClientRect()).right-e.left,height:e.bottom-e.top,left:e.left,right:e.right,bottom:e.bottom,top:e.top}},t.prototype.toString=function(){return this.range.text||""},t}(),o=function(){function t(){this.selection=e.selection,this.ranges=[],this.init()}return t.prototype.init=function(){var t,e,n,o,r;return this.rangeCount=this.ranges.length,this.rangeCount?(e=this.ranges[0],null==this.prev&&(this.prev=e),0===e.compareBoundaryPoints(Range.END_TO_END,this.prev)?(t=(o=["end","start"])[0],n=o[1]):(t=(r=["start","end"])[0],n=r[1]),this.anchorNode=e[t+"Container"],this.anchorOffset=e[t+"Offset"],this.focusNode=e[n+"Container"],this.focusOffset=e[n+"Offset"],this.isCollapsed=this.anchorNode===this.focusNode):void 0},t.prototype.getRangeAt=function(t){return this.ranges[t]},t.prototype.setRangeAt=function(t,e){return this.prev=this.ranges[t],this.ranges[t]=e,this.init()},t.prototype.removeAllRanges=function(){return this.ranges=[],this.init()},t.prototype.addRange=function(t){var e,n,o,r,i;for(this.ranges.push(t),this.init(),i=[],n=0,o=(r=this.ranges).length;o>n;n++)e=r[n],i.push(e.select());return i},t.prototype.deleteFromDocument=function(){return this.selection.clear()},t.prototype.toString=function(){return this.ranges[0].toString()},t}(),r={convertLineBreaks:function(t){return t.replace(/\r\n/g,"\n")},stripLineBreaks:function(t){return t.replace(/\r\n/g,"")},getText:function(t){return t.innerText||t.nodeValue},findLength:function(t,e,n,o){var i;switch(i=e.duplicate(),t){case"StartToStart":i.setEndPoint("EndToStart",n);break;case"StartToEnd":i.setEndPoint("EndToEnd",n)}return o?r.convertLineBreaks(i.text).length:r.stripLineBreaks(i.text).length},findNodeByPos:function(t,e,n){var o,r;return null==n&&(n=0),(o=function(t,e,n,r){var i,a,s,h,c;for(c=[],a=0,s=(h=t.childNodes).length;s>a;a++)if(i=h[a],!r.found)if(3===i.nodeType){if(r.length+i.length+n>e){r.found=!0,r.el=i,r.offset=e-r.length;break}c.push(r.length+=i.length)}else c.push(o(i,e,n,r));return c})(t,e,n,r={length:0,el:t,offset:0}),r},findPosFromNode:function(t){var e,n,o;return n={pos:0},o=t.parentNode,(e=function(t,n,o){var r,i,a,s,h;for(h=[],i=0,a=(s=t.childNodes).length;a>i;i++)if(r=s[i],!o.found){if(r===n){o.found=!0;break}3===r.nodeType?h.push(o.pos+=r.length):r.hasChildNodes()?h.push(e(r,n,o)):h.push(void 0)}return h})(o,t,n),n.pos}}),"NodeList"in window&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=function(callback,thisArg){thisArg=thisArg||window;for(var i=0;i<this.length;i++)callback.call(thisArg,this[i],i,this)}),Object.entries||(Object.entries=function(obj){for(var ownProps=Object.keys(obj),i=ownProps.length,resArray=new Array(i);i--;)resArray[i]=[ownProps[i],obj[ownProps[i]]];return resArray}),Object.is||Object.defineProperty(Object,"is",{value:function(x,y){return x===y?0!==x||1/x==1/y:x!=x&&y!=y}}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(predicate){if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),len=o.length>>>0;if("function"!=typeof predicate)throw new TypeError("predicate must be a function");for(var thisArg=arguments[1],k=0;k<len;){var kValue=o[k];if(predicate.call(thisArg,kValue,k,o))return kValue;k++}}}),String.prototype.includes||(String.prototype.includes=function(search,start){return"number"!=typeof start&&(start=0),!(start+search.length>this.length)&&-1!==this.indexOf(search,start)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),len=o.length>>>0;if(0===len)return!1;var x,y,n=0|fromIndex,k=Math.max(n>=0?n:len-Math.abs(n),0);for(;k<len;){if((x=o[k])===(y=searchElement)||"number"==typeof x&&"number"==typeof y&&isNaN(x)&&isNaN(y))return!0;k++}return!1}}),function(){if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var document=function(startDoc){for(var doc=window.document,frame=getFrameElement(doc);frame;)frame=getFrameElement(doc=frame.ownerDocument);return doc}(),registry=[],crossOriginUpdater=null,crossOriginRect=null;IntersectionObserver.prototype.THROTTLE_TIMEOUT=100,IntersectionObserver.prototype.POLL_INTERVAL=null,IntersectionObserver.prototype.USE_MUTATION_OBSERVER=!0,IntersectionObserver._setupCrossOriginUpdater=function(){return crossOriginUpdater||(crossOriginUpdater=function(boundingClientRect,intersectionRect){crossOriginRect=boundingClientRect&&intersectionRect?convertFromParentRect(boundingClientRect,intersectionRect):{top:0,bottom:0,left:0,right:0,width:0,height:0},registry.forEach((function(observer){observer._checkForIntersections()}))}),crossOriginUpdater},IntersectionObserver._resetCrossOriginUpdater=function(){crossOriginUpdater=null,crossOriginRect=null},IntersectionObserver.prototype.observe=function(target){if(!this._observationTargets.some((function(item){return item.element==target}))){if(!target||1!=target.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:target,entry:null}),this._monitorIntersections(target.ownerDocument),this._checkForIntersections()}},IntersectionObserver.prototype.unobserve=function(target){this._observationTargets=this._observationTargets.filter((function(item){return item.element!=target})),this._unmonitorIntersections(target.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},IntersectionObserver.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},IntersectionObserver.prototype.takeRecords=function(){var records=this._queuedEntries.slice();return this._queuedEntries=[],records},IntersectionObserver.prototype._initThresholds=function(opt_threshold){var threshold=opt_threshold||[0];return Array.isArray(threshold)||(threshold=[threshold]),threshold.sort().filter((function(t,i,a){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==a[i-1]}))},IntersectionObserver.prototype._parseRootMargin=function(opt_rootMargin){var margins=(opt_rootMargin||"0px").split(/\s+/).map((function(margin){var parts=/^(-?\d*\.?\d+)(px|%)$/.exec(margin);if(!parts)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(parts[1]),unit:parts[2]}}));return margins[1]=margins[1]||margins[0],margins[2]=margins[2]||margins[0],margins[3]=margins[3]||margins[1],margins},IntersectionObserver.prototype._monitorIntersections=function(doc){var win=doc.defaultView;if(win&&-1==this._monitoringDocuments.indexOf(doc)){var callback=this._checkForIntersections,monitoringInterval=null,domObserver=null;this.POLL_INTERVAL?monitoringInterval=win.setInterval(callback,this.POLL_INTERVAL):(addEvent(win,"resize",callback,!0),addEvent(doc,"scroll",callback,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in win&&(domObserver=new win.MutationObserver(callback)).observe(doc,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this._monitoringDocuments.push(doc),this._monitoringUnsubscribes.push((function(){var win=doc.defaultView;win&&(monitoringInterval&&win.clearInterval(monitoringInterval),removeEvent(win,"resize",callback,!0)),removeEvent(doc,"scroll",callback,!0),domObserver&&domObserver.disconnect()}));var rootDoc=this.root&&(this.root.ownerDocument||this.root)||document;if(doc!=rootDoc){var frame=getFrameElement(doc);frame&&this._monitorIntersections(frame.ownerDocument)}}},IntersectionObserver.prototype._unmonitorIntersections=function(doc){var index=this._monitoringDocuments.indexOf(doc);if(-1!=index){var rootDoc=this.root&&(this.root.ownerDocument||this.root)||document;if(!this._observationTargets.some((function(item){var itemDoc=item.element.ownerDocument;if(itemDoc==doc)return!0;for(;itemDoc&&itemDoc!=rootDoc;){var frame=getFrameElement(itemDoc);if((itemDoc=frame&&frame.ownerDocument)==doc)return!0}return!1}))){var unsubscribe=this._monitoringUnsubscribes[index];if(this._monitoringDocuments.splice(index,1),this._monitoringUnsubscribes.splice(index,1),unsubscribe(),doc!=rootDoc){var frame=getFrameElement(doc);frame&&this._unmonitorIntersections(frame.ownerDocument)}}}},IntersectionObserver.prototype._unmonitorAllIntersections=function(){var unsubscribes=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var i=0;i<unsubscribes.length;i++)unsubscribes[i]()},IntersectionObserver.prototype._checkForIntersections=function(){if(this.root||!crossOriginUpdater||crossOriginRect){var rootIsInDom=this._rootIsInDom(),rootRect=rootIsInDom?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};this._observationTargets.forEach((function(item){var target=item.element,targetRect=getBoundingClientRect(target),rootContainsTarget=this._rootContainsTarget(target),oldEntry=item.entry,intersectionRect=rootIsInDom&&rootContainsTarget&&this._computeTargetAndRootIntersection(target,targetRect,rootRect),rootBounds=null;this._rootContainsTarget(target)?crossOriginUpdater&&!this.root||(rootBounds=rootRect):rootBounds={top:0,bottom:0,left:0,right:0,width:0,height:0};var newEntry=item.entry=new IntersectionObserverEntry({time:window.performance&&performance.now&&performance.now(),target,boundingClientRect:targetRect,rootBounds,intersectionRect});oldEntry?rootIsInDom&&rootContainsTarget?this._hasCrossedThreshold(oldEntry,newEntry)&&this._queuedEntries.push(newEntry):oldEntry&&oldEntry.isIntersecting&&this._queuedEntries.push(newEntry):this._queuedEntries.push(newEntry)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)}},IntersectionObserver.prototype._computeTargetAndRootIntersection=function(target,targetRect,rootRect){if("none"!=window.getComputedStyle(target).display){for(var rect1,rect2,top,bottom,left,right,width,height,intersectionRect=targetRect,parent=getParentNode(target),atRoot=!1;!atRoot&&parent;){var parentRect=null,parentComputedStyle=1==parent.nodeType?window.getComputedStyle(parent):{};if("none"==parentComputedStyle.display)return null;if(parent==this.root||9==parent.nodeType)if(atRoot=!0,parent==this.root||parent==document)crossOriginUpdater&&!this.root?!crossOriginRect||0==crossOriginRect.width&&0==crossOriginRect.height?(parent=null,parentRect=null,intersectionRect=null):parentRect=crossOriginRect:parentRect=rootRect;else{var frame=getParentNode(parent),frameRect=frame&&getBoundingClientRect(frame),frameIntersect=frame&&this._computeTargetAndRootIntersection(frame,frameRect,rootRect);frameRect&&frameIntersect?(parent=frame,parentRect=convertFromParentRect(frameRect,frameIntersect)):(parent=null,intersectionRect=null)}else{var doc=parent.ownerDocument;parent!=doc.body&&parent!=doc.documentElement&&"visible"!=parentComputedStyle.overflow&&(parentRect=getBoundingClientRect(parent))}if(parentRect&&(rect1=parentRect,rect2=intersectionRect,top=void 0,bottom=void 0,left=void 0,right=void 0,width=void 0,height=void 0,top=Math.max(rect1.top,rect2.top),bottom=Math.min(rect1.bottom,rect2.bottom),left=Math.max(rect1.left,rect2.left),right=Math.min(rect1.right,rect2.right),height=bottom-top,intersectionRect=(width=right-left)>=0&&height>=0&&{top,bottom,left,right,width,height}||null),!intersectionRect)break;parent=parent&&getParentNode(parent)}return intersectionRect}},IntersectionObserver.prototype._getRootRect=function(){var rootRect;if(this.root&&!isDoc(this.root))rootRect=getBoundingClientRect(this.root);else{var doc=isDoc(this.root)?this.root:document,html=doc.documentElement,body=doc.body;rootRect={top:0,left:0,right:html.clientWidth||body.clientWidth,width:html.clientWidth||body.clientWidth,bottom:html.clientHeight||body.clientHeight,height:html.clientHeight||body.clientHeight}}return this._expandRectByRootMargin(rootRect)},IntersectionObserver.prototype._expandRectByRootMargin=function(rect){var margins=this._rootMarginValues.map((function(margin,i){return"px"==margin.unit?margin.value:margin.value*(i%2?rect.width:rect.height)/100})),newRect={top:rect.top-margins[0],right:rect.right+margins[1],bottom:rect.bottom+margins[2],left:rect.left-margins[3]};return newRect.width=newRect.right-newRect.left,newRect.height=newRect.bottom-newRect.top,newRect},IntersectionObserver.prototype._hasCrossedThreshold=function(oldEntry,newEntry){var oldRatio=oldEntry&&oldEntry.isIntersecting?oldEntry.intersectionRatio||0:-1,newRatio=newEntry.isIntersecting?newEntry.intersectionRatio||0:-1;if(oldRatio!==newRatio)for(var i=0;i<this.thresholds.length;i++){var threshold=this.thresholds[i];if(threshold==oldRatio||threshold==newRatio||threshold<oldRatio!=threshold<newRatio)return!0}},IntersectionObserver.prototype._rootIsInDom=function(){return!this.root||containsDeep(document,this.root)},IntersectionObserver.prototype._rootContainsTarget=function(target){var rootDoc=this.root&&(this.root.ownerDocument||this.root)||document;return containsDeep(rootDoc,target)&&(!this.root||rootDoc==target.ownerDocument)},IntersectionObserver.prototype._registerInstance=function(){registry.indexOf(this)<0&®istry.push(this)},IntersectionObserver.prototype._unregisterInstance=function(){var index=registry.indexOf(this);-1!=index&®istry.splice(index,1)},window.IntersectionObserver=IntersectionObserver,window.IntersectionObserverEntry=IntersectionObserverEntry}function getFrameElement(doc){try{return doc.defaultView&&doc.defaultView.frameElement||null}catch(e){return null}}function IntersectionObserverEntry(entry){this.time=entry.time,this.target=entry.target,this.rootBounds=ensureDOMRect(entry.rootBounds),this.boundingClientRect=ensureDOMRect(entry.boundingClientRect),this.intersectionRect=ensureDOMRect(entry.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0}),this.isIntersecting=!!entry.intersectionRect;var targetRect=this.boundingClientRect,targetArea=targetRect.width*targetRect.height,intersectionRect=this.intersectionRect,intersectionArea=intersectionRect.width*intersectionRect.height;this.intersectionRatio=targetArea?Number((intersectionArea/targetArea).toFixed(4)):this.isIntersecting?1:0}function IntersectionObserver(callback,opt_options){var options=opt_options||{};if("function"!=typeof callback)throw new Error("callback must be a function");if(options.root&&1!=options.root.nodeType&&9!=options.root.nodeType)throw new Error("root must be a Document or Element");this._checkForIntersections=function throttle(fn,timeout){var timer=null;return function(){timer||(timer=setTimeout((function(){fn(),timer=null}),timeout))}}(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=callback,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(options.rootMargin),this.thresholds=this._initThresholds(options.threshold),this.root=options.root||null,this.rootMargin=this._rootMarginValues.map((function(margin){return margin.value+margin.unit})).join(" "),this._monitoringDocuments=[],this._monitoringUnsubscribes=[]}function addEvent(node,event,fn,opt_useCapture){"function"==typeof node.addEventListener?node.addEventListener(event,fn,opt_useCapture||!1):"function"==typeof node.attachEvent&&node.attachEvent("on"+event,fn)}function removeEvent(node,event,fn,opt_useCapture){"function"==typeof node.removeEventListener?node.removeEventListener(event,fn,opt_useCapture||!1):"function"==typeof node.detatchEvent&&node.detatchEvent("on"+event,fn)}function getBoundingClientRect(el){var rect;try{rect=el.getBoundingClientRect()}catch(err){}return rect?(rect.width&&rect.height||(rect={top:rect.top,right:rect.right,bottom:rect.bottom,left:rect.left,width:rect.right-rect.left,height:rect.bottom-rect.top}),rect):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function ensureDOMRect(rect){return!rect||"x"in rect?rect:{top:rect.top,y:rect.top,bottom:rect.bottom,left:rect.left,x:rect.left,right:rect.right,width:rect.width,height:rect.height}}function convertFromParentRect(parentBoundingRect,parentIntersectionRect){var top=parentIntersectionRect.top-parentBoundingRect.top,left=parentIntersectionRect.left-parentBoundingRect.left;return{top,left,height:parentIntersectionRect.height,width:parentIntersectionRect.width,bottom:top+parentIntersectionRect.height,right:left+parentIntersectionRect.width}}function containsDeep(parent,child){for(var node=child;node;){if(node==parent)return!0;node=getParentNode(node)}return!1}function getParentNode(node){var parent=node.parentNode;return 9==node.nodeType&&node!=document?getFrameElement(node):(parent&&parent.assignedSlot&&(parent=parent.assignedSlot.parentNode),parent&&11==parent.nodeType&&parent.host?parent.host:parent)}function isDoc(node){return node&&9===node.nodeType}}();
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
ul {
|
|
2
|
+
margin: 0;
|
|
3
|
+
padding: 0;
|
|
4
|
+
list-style: none;
|
|
5
|
+
}
|
|
6
|
+
li {
|
|
7
|
+
margin: 0;
|
|
8
|
+
padding: 0;
|
|
9
|
+
}
|
|
10
|
+
a {
|
|
11
|
+
font-size: 22px;
|
|
12
|
+
line-height: 34px;
|
|
13
|
+
text-decoration: none;
|
|
14
|
+
color: black;
|
|
15
|
+
padding: 8px;
|
|
16
|
+
display: block;
|
|
17
|
+
transition: .1s ease-in-out all;
|
|
18
|
+
}
|
|
19
|
+
a:hover,
|
|
20
|
+
a:focus,
|
|
21
|
+
a:active {
|
|
22
|
+
color: black;
|
|
23
|
+
background-color: orange;
|
|
24
|
+
outline: 2px solid black;
|
|
25
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>Modern browser required</title>
|
|
6
|
+
<style>
|
|
7
|
+
body {
|
|
8
|
+
margin: 0;
|
|
9
|
+
min-height: 100vh;
|
|
10
|
+
}
|
|
11
|
+
.header--lg {
|
|
12
|
+
color: #444;
|
|
13
|
+
font-size: 1.75rem;
|
|
14
|
+
font-weight: bold;
|
|
15
|
+
padding: 10px;
|
|
16
|
+
margin: 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.check-browser {
|
|
20
|
+
text-align: center;
|
|
21
|
+
padding: 1rem;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.check-browser .message--warning {
|
|
25
|
+
background-color: #BB0000;
|
|
26
|
+
color: #ffffff;
|
|
27
|
+
padding: 2rem;
|
|
28
|
+
font-size: 26px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.check-browser__icon-container {
|
|
32
|
+
display: inline-block;
|
|
33
|
+
color: #000000;
|
|
34
|
+
text-align: center;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
a {
|
|
38
|
+
float: left;
|
|
39
|
+
width: 150px;
|
|
40
|
+
height: 150px;
|
|
41
|
+
display: block;
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
margin: 1rem .5rem;
|
|
44
|
+
padding: 0;
|
|
45
|
+
outline-width: 10px;
|
|
46
|
+
outline-color: blueviolet;
|
|
47
|
+
color: black;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
a .check-browser__icon {
|
|
51
|
+
clear: both;
|
|
52
|
+
padding: 2.5rem 2rem;
|
|
53
|
+
text-decoration: none;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.check-browser--chrome {
|
|
57
|
+
background-color: #ffb31a;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.check-browser--firefox {
|
|
61
|
+
background-color: #f78009;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.check-browser--edge {
|
|
65
|
+
background-color: #33ccff;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.check-browser--safari {
|
|
69
|
+
background-color: #0099ff;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.check-browser--opera {
|
|
73
|
+
background-color: #ff4d4d;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.icon--browser {
|
|
77
|
+
color: #fff;
|
|
78
|
+
font-size: 3rem;
|
|
79
|
+
padding-bottom: 1rem;
|
|
80
|
+
}
|
|
81
|
+
</style>
|
|
82
|
+
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" crossorigin>
|
|
83
|
+
</head>
|
|
84
|
+
<body>
|
|
85
|
+
<div class="check-browser">
|
|
86
|
+
<h1 class="header--lg">Outdated browser detected</h1>
|
|
87
|
+
|
|
88
|
+
<p class="message--warning">
|
|
89
|
+
This website requires a modern browser to give the best experience possible.
|
|
90
|
+
</p>
|
|
91
|
+
<p>
|
|
92
|
+
Upgrade your browser to the latest version or download one of these browsers:
|
|
93
|
+
</p>
|
|
94
|
+
|
|
95
|
+
<div class="check-browser__icon-container">
|
|
96
|
+
<a href="http://www.mozilla.com/firefox" target="_blank" rel="noopener noreferrer">
|
|
97
|
+
<div class="check-browser__icon check-browser--firefox">
|
|
98
|
+
<span><i class="fa fa-firefox icon--browser"></i></span>
|
|
99
|
+
<br>Firefox
|
|
100
|
+
<br>(Mozilla)
|
|
101
|
+
</div>
|
|
102
|
+
</a>
|
|
103
|
+
<a href="https://www.google.com/chrome" target="_blank" rel="noopener noreferrer">
|
|
104
|
+
<div class="check-browser__icon check-browser--chrome">
|
|
105
|
+
<span><i class="fa fa-chrome icon--browser"></i></span>
|
|
106
|
+
<br>
|
|
107
|
+
Chrome
|
|
108
|
+
<br>(Google)
|
|
109
|
+
</div>
|
|
110
|
+
</a>
|
|
111
|
+
<a href="https://www.microsoftedgeinsider.com/en-us/" target="_blank" rel="noopener noreferrer">
|
|
112
|
+
<div class="check-browser__icon check-browser--edge">
|
|
113
|
+
<span><i class="fa fa-edge icon--browser"></i></span>
|
|
114
|
+
<br>Edge
|
|
115
|
+
<br>(Microsoft)
|
|
116
|
+
</div>
|
|
117
|
+
</a>
|
|
118
|
+
<a href="https://support.apple.com/downloads/safari" target="_blank" rel="noopener noreferrer">
|
|
119
|
+
<div class="check-browser__icon check-browser--safari">
|
|
120
|
+
<span><i class="fa fa-safari icon--browser"></i></span>
|
|
121
|
+
<br>Safari
|
|
122
|
+
<br>(Apple)
|
|
123
|
+
</div>
|
|
124
|
+
</a>
|
|
125
|
+
<a href="http://www.opera.com/download/">
|
|
126
|
+
<div class="check-browser__icon check-browser--opera" target="_blank" rel="noopener noreferrer">
|
|
127
|
+
<span><i class="fa fa-opera icon--browser"></i></span>
|
|
128
|
+
|
|
129
|
+
<br> Opera
|
|
130
|
+
<br>
|
|
131
|
+
</div>
|
|
132
|
+
</a>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
</body>
|
|
136
|
+
</html>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<browserconfig>
|
|
3
|
+
<msapplication>
|
|
4
|
+
<tile>
|
|
5
|
+
<square70x70logo src="<%= logo72x72 %>"/>
|
|
6
|
+
<square150x150logo src="<%= logo144x144 %>"/>
|
|
7
|
+
<square310x310logo src="<%= logo256x256 %>"/>
|
|
8
|
+
<TileColor><%= hexCode %></TileColor>
|
|
9
|
+
</tile>
|
|
10
|
+
</msapplication>
|
|
11
|
+
</browserconfig>
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// overload how define works so that we can prevent bricking issues
|
|
2
|
+
// when classes get loaded from multiple sources with the same name space
|
|
3
|
+
// this is a copy of the dedup-fix.js script we use in local testing / es5 routines
|
|
4
|
+
const _customElementsDefine = window.customElements.define;
|
|
5
|
+
window.customElements.define = (name, cl, conf) => {
|
|
6
|
+
if (!customElements.get(name)) {
|
|
7
|
+
_customElementsDefine.call(window.customElements, name, cl, conf);
|
|
8
|
+
} else {
|
|
9
|
+
console.warn(`${name} has been defined twice`);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
// HAXcms specific clean up and platforn integration
|
|
13
|
+
// this ties in custom theme files as well as removes DOM nodes related
|
|
14
|
+
// to serving a legacy audience in the event this is evergreen (most times)
|
|
15
|
+
if (/^h/.test(document.location)) {
|
|
16
|
+
try {
|
|
17
|
+
var scriptDef = document.getElementsByTagName('script')[0];
|
|
18
|
+
// if a dynamic import fails, we bail over to the compiled version
|
|
19
|
+
new Function('import("");');
|
|
20
|
+
// remove fallback cause if we passed dynamic import then we are evergreen
|
|
21
|
+
if (document.getElementById("haxcmsoutdatedfallback")) {
|
|
22
|
+
document.body.removeChild(document.getElementById("haxcmsoutdatedfallback"));
|
|
23
|
+
}
|
|
24
|
+
if (!window.__appCustomEnv) {
|
|
25
|
+
var build2 = document.createElement('script');
|
|
26
|
+
build2.src = './custom/build/custom.es6.js';
|
|
27
|
+
build2.type = 'module';
|
|
28
|
+
scriptDef.parentNode.insertBefore(build2, scriptDef);
|
|
29
|
+
}
|
|
30
|
+
} catch (err) {
|
|
31
|
+
var ancient=false;
|
|
32
|
+
try {
|
|
33
|
+
if (typeof Symbol == "undefined") { // IE 11, at least try to serve a watered down site
|
|
34
|
+
ancient = true;
|
|
35
|
+
}
|
|
36
|
+
new Function('let a;'); // bizarre but needed for Safari 9 bc of when it was made
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
ancient = true;
|
|
40
|
+
}
|
|
41
|
+
if (!ancient) {
|
|
42
|
+
// remove fallback cause if we passed dynamic import then we are evergreen
|
|
43
|
+
if (document.getElementById("haxcmsoutdatedfallback")) {
|
|
44
|
+
document.body.removeChild(document.getElementById("haxcmsoutdatedfallback"));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// we bombed somewhere above, this implies that it's some odd between version
|
|
49
|
+
// most likely Safari 9ish, IE pre 11 and anything uber old. Serve no JS variation
|
|
50
|
+
if (document.getElementById('site')) {
|
|
51
|
+
document.getElementById('site').style.display = 'none';
|
|
52
|
+
document.getElementById('haxcmsoutdatedfallbacksuperold').style.display = 'block';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
} else {
|
|
57
|
+
// this implies we are offline, viewing the files locally
|
|
58
|
+
// so let's show the simplistic site viewer / iframe theme
|
|
59
|
+
if (document.getElementById('site')) {
|
|
60
|
+
document.getElementById('site').style.display = 'none';
|
|
61
|
+
document.getElementById('haxcmsoutdatedfallbacksuperold').style.display = 'block';
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
var cdn = "./";
|
|
65
|
+
if (window.__appCDN) {
|
|
66
|
+
cdn = window.__appCDN;
|
|
67
|
+
}
|
|
68
|
+
// reset styles that we apply to all hax sites for some level of normalization
|
|
69
|
+
// across base HTML tags as well as css vars for styling system wide things from 1 place
|
|
70
|
+
var baseResetStyles = 'build/es6/node_modules/@haxtheweb/haxcms-elements/lib/base.css';
|
|
71
|
+
// css files load faster when implemented this way
|
|
72
|
+
var link = document.createElement('link');
|
|
73
|
+
link.rel = 'stylesheet';
|
|
74
|
+
link.href = cdn + baseResetStyles;
|
|
75
|
+
link.type = 'text/css';
|
|
76
|
+
link.onerror = (e) => { haxcmsFallbackStylesError(e);};
|
|
77
|
+
// get first link in the document
|
|
78
|
+
var linkDef = document.getElementsByTagName('link')[0];
|
|
79
|
+
linkDef.parentNode.insertBefore(link, linkDef);
|
|
80
|
+
if (!window.__appCustomEnv) {
|
|
81
|
+
var link2 = document.createElement('link');
|
|
82
|
+
link2.rel = 'stylesheet';
|
|
83
|
+
link2.href = './theme/theme.css';
|
|
84
|
+
link2.type = 'text/css';
|
|
85
|
+
linkDef.parentNode.insertBefore(link2, linkDef);
|
|
86
|
+
}
|
|
87
|
+
// if we fail to load the module, we need to fall back to known sources
|
|
88
|
+
// and reattempt to inject the CDN location. This is a last ditch effort
|
|
89
|
+
// though opens the ability for us to download user sites and if plugged
|
|
90
|
+
// into other hax housing then it'll work but also just work stand alone
|
|
91
|
+
// as a downloaded package
|
|
92
|
+
var haxCdn = cdn;
|
|
93
|
+
function haxcmsFallbackStylesError(e) {
|
|
94
|
+
var cdn = haxCdn;
|
|
95
|
+
if (!window.__appCDNBlockFallback) {
|
|
96
|
+
var link = document.createElement('link');
|
|
97
|
+
link.rel = 'stylesheet';
|
|
98
|
+
link.type = 'text/css';
|
|
99
|
+
link.onerror = (e) => { haxcmsFallbackStylesError(e);};
|
|
100
|
+
// if the module fails to load at the set CDN location, try to fail back to known sources
|
|
101
|
+
if (cdn === "./") {
|
|
102
|
+
// psu fallback
|
|
103
|
+
haxCdn = "https://cdn.webcomponents.psu.edu/cdn/";
|
|
104
|
+
link.href = haxCdn + baseResetStyles;
|
|
105
|
+
linkDef.parentNode.insertBefore(link, linkDef);
|
|
106
|
+
console.warn(cdn + " failed to respond, styles back to alternative: " + haxCdn);
|
|
107
|
+
}
|
|
108
|
+
else if (cdn === "https://cdn.webcomponents.psu.edu/cdn/") {
|
|
109
|
+
// known mirror
|
|
110
|
+
haxCdn = "https://cdn.waxam.io/";
|
|
111
|
+
link.href = haxCdn + baseResetStyles;
|
|
112
|
+
linkDef.parentNode.insertBefore(link, linkDef);
|
|
113
|
+
console.warn(cdn + " failed to respond, styles back to alternative: " + haxCdn);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// :( we're out of options, just reset these values to default
|
|
117
|
+
// but we aren't working in this scenario bc both CDNs failed
|
|
118
|
+
// and local delivery could not be found
|
|
119
|
+
haxCdn = "./";
|
|
120
|
+
console.error("Styles Local delivery failed and all alternative CDNs failed to load. You might be offline, in a secure environment or doing testing intentionally to generate this *shrug*");
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
window.process={env:{NODE_ENV:"production"}};var cdn="./";window.WCGlobalCDNPath&&(cdn=window.WCGlobalCDNPath),window.__appCDN&&(cdn=window.__appCDN);var fname="wc-registry.json";window.WCGlobalRegistryFileName&&(fname=window.WCGlobalRegistryFileName),window.WCAutoloadRegistryFile=cdn+fname;var autoloaderScriptLocation="build/es6/node_modules/@haxtheweb/wc-autoload/wc-autoload.js";try{var def=document.getElementsByTagName("script")[0];new Function("import('');"),animationPolyfillTest();var build=document.createElement("script");build.src=cdn+autoloaderScriptLocation,build.type="module",build.onerror=e=>{!function fallbackChecks(e){var cdn=window.__appCDN;if(!window.__appCDNBlockFallback){var build=document.createElement("script");build.type="module",build.onerror=e=>{fallbackChecks(e)},"./"===cdn?(window.__appCDN="https://cdn.webcomponents.psu.edu/cdn/",window.WCAutoloadRegistryFile=window.WCAutoloadRegistryFile.replace(cdn,window.__appCDN),build.src=window.__appCDN+autoloaderScriptLocation,def.parentNode.insertBefore(build,def),console.warn(cdn+" failed to respond, falling back to alternative: "+window.__appCDN)):"https://cdn.webcomponents.psu.edu/cdn/"===cdn?(window.__appCDN="https://cdn.waxam.io/",window.WCAutoloadRegistryFile=window.WCAutoloadRegistryFile.replace(cdn,window.__appCDN),build.src=window.__appCDN+autoloaderScriptLocation,def.parentNode.insertBefore(build,def),console.warn(cdn+" failed to respond, falling back to alternative: "+window.__appCDN)):(window.__appCDN="./",window.WCAutoloadRegistryFile=window.WCAutoloadRegistryFile.replace(cdn,window.__appCDN),console.error("Local delivery failed and all alternative CDNs failed to load. You might be offline, in a secure environment or doing testing intentionally to generate this *shrug*")),animationPolyfillTest()}}()},def.parentNode.insertBefore(build,def)}catch(err){var buildLegacy=document.createElement("script");buildLegacy.src=cdn+"assets/build-legacy.js",def.parentNode.insertBefore(buildLegacy,def)}function animationPolyfillTest(){if(!Element.prototype.animate){var ani=document.createElement("script");ani.src=window.__appCDN+"build/es6/node_modules/web-animations-js/web-animations-next-lite.min.js",def.parentNode.insertBefore(ani,def)}}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
FROM haxtheweb/haxcms:2.0.9 as haxcms
|
|
2
|
+
|
|
3
|
+
FROM node:12
|
|
4
|
+
|
|
5
|
+
COPY --from=haxcms /var/www/html/build /haxcms/build
|
|
6
|
+
COPY --from=haxcms /var/www/html/dist /haxcms/dist
|
|
7
|
+
COPY --from=haxcms /var/www/html/package.json /haxcms/package.json
|
|
8
|
+
|
|
9
|
+
WORKDIR /haxcms/_sites/site/custom/
|
|
10
|
+
|
|
11
|
+
COPY package.json package*.json ./
|
|
12
|
+
RUN yarn install
|
|
13
|
+
COPY . .
|
|
14
|
+
|
|
15
|
+
CMD [ "npm", "start" ]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# HAXcms Custom development
|
|
2
|
+
|
|
3
|
+
This tooling / section of your site allows you make customizations without having to redo
|
|
4
|
+
the entire build process that HAXcms puts in place. Use it to make a custom theme for a single site
|
|
5
|
+
or to add new elements into scope of HAXcms to use in pages.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
1. After creating a new site, go into `_sites/MYSITE/custom` and run `yarn install`.
|
|
10
|
+
2. Now run `yarn start` to begin watching the src directory for changes
|
|
11
|
+
3. Edit the `src/custom.js` as you would any web component / ESM compliant code.
|
|
12
|
+
4. Open a web browser to `http://HAXCMS/_sites/MYSITE` and see changes as you work on them
|
|
13
|
+
|
|
14
|
+
You'll need to refresh the browser to see the changes reflected but you should be able to
|
|
15
|
+
work on your HAXcms theme / customizations in a way similar to other web component development
|
|
16
|
+
best practices. A watch is happening that will automatically build it for ES6 / Chrome based testing.
|
|
17
|
+
|
|
18
|
+
## Building to ship
|
|
19
|
+
|
|
20
|
+
To build to ship to all browsers that HAXcms supports, run `yarn run build`. Now you're good to go!
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "haxcms-customizations",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Custom HAXcms additions, either of a theme or other elements you want to use in this site",
|
|
5
|
+
"author": "HAXTheWeb",
|
|
6
|
+
"homepage": "https://github.com/haxtheweb/haxcms",
|
|
7
|
+
"license": "Apache-2.0",
|
|
8
|
+
"repository": "https://github.com/haxtheweb/haxcms",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "rollup -c rollup.config.js",
|
|
11
|
+
"start": "yarn run watch",
|
|
12
|
+
"watch": "rollup --watch -c rollup.config.js"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@babel/plugin-transform-modules-amd": "^7.2.0",
|
|
18
|
+
"@babel/core": "^7.3.3",
|
|
19
|
+
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
|
20
|
+
"@babel/plugin-syntax-import-meta": "^7.2.0",
|
|
21
|
+
"@babel/polyfill": "^7.0.0",
|
|
22
|
+
"@babel/preset-env": "^7.0.0",
|
|
23
|
+
"rollup-plugin-terser": "5.2.0",
|
|
24
|
+
"rollup-plugin-rewrite-imports": "^2.0.0",
|
|
25
|
+
"rollup": "^1.6.0"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
const { terser } = require('rollup-plugin-terser');
|
|
3
|
+
const rewriteImports = require('rollup-plugin-rewrite-imports');
|
|
4
|
+
const production = true;
|
|
5
|
+
module.exports = function() {
|
|
6
|
+
return {
|
|
7
|
+
input: 'src/custom.js',
|
|
8
|
+
treeshake: !!production,
|
|
9
|
+
output: {
|
|
10
|
+
file: `build/custom.es6.js`,
|
|
11
|
+
format: 'esm',
|
|
12
|
+
sourcemap: false,
|
|
13
|
+
},
|
|
14
|
+
plugins: [
|
|
15
|
+
rewriteImports(`../../build/es6/node_modules/`),
|
|
16
|
+
// only minify if in production
|
|
17
|
+
production && terser(),
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Write whatever additional code you want to be included
|
|
2
|
+
// This could be webcomponents added directly here or using import statements
|
|
3
|
+
// to pull in and reference other web components / ES module compliant libraries.
|
|
4
|
+
// utilize bare imports like import "@things/stuff/stuff.js"; and ensure you reference the js file directly
|
|
5
|
+
// to make a custom theme see the following for a well documented fully working example
|
|
6
|
+
// https://github.com/elmsln/haxtheweb/blob/master/elements/example-haxcms-theme/example-haxcms-theme.js
|
|
7
|
+
// don't import that directory, we'd recommend copy and pasting it in here or
|
|
8
|
+
// creating your own theme based on it
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><!-- filename=ims_xml.xsd --><xsd:schema xmlns="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <!-- 2001-02-22 edited by Thomas Wason IMS Global Learning Consortium, Inc. --> <xsd:annotation> <xsd:documentation>In namespace-aware XML processors, the "xml" prefix is bound to the namespace name http://www.w3.org/XML/1998/namespace.</xsd:documentation> <xsd:documentation>Do not reference this file in XML instances</xsd:documentation> <xsd:documentation>Schawn Thropp: Changed the uriReference type to string type</xsd:documentation> </xsd:annotation> <xsd:attribute name="lang" type="xsd:language"> <xsd:annotation> <xsd:documentation>Refers to universal XML 1.0 lang attribute</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="base" type="xsd:string"> <xsd:annotation> <xsd:documentation>Refers to XML Base: http://www.w3.org/TR/xmlbase</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="link" type="xsd:string"/></xsd:schema>
|