Include version numbers on the dist JavaScript files that we build.
Chris Pressey
4 years ago
22 | 22 | The simplest way to use DAM is to simply load it directly on a web page, |
23 | 23 | which will work for most modern browsers, and to use it like so: |
24 | 24 | |
25 | <script src="dam.js"></script> | |
25 | <script src="dist/dam-0.2.js"></script> | |
26 | 26 | <script> |
27 | 27 | var div=DAM.maker('div'), p=DAM.maker('p'), span=DAM.maker('span'), button=DAM.maker('button'); |
28 | 28 | var d = div( |
60 | 60 | |
61 | 61 | A simple example based on the code above: |
62 | 62 | |
63 | <script src="dam.js"></script> | |
63 | <script src="dist/dam-0.2.js"></script> | |
64 | 64 | <script> |
65 | 65 | var div=DAM.maker('div'), p=DAM.maker('p'), span=DAM.maker('span'), button=DAM.maker('button'); |
66 | 66 | function makeGreeting(config) { |
111 | 111 | import { makeCheckbox, makePanel } from "./dam-widgets.js" |
112 | 112 | |
113 | 113 | However, you're not required to do this. If you just want an ES5 file that |
114 | you can load in a web page, DAM ships with `dist/dam-plus-widgets-web.js` for | |
114 | you can load in a web page, DAM ships with `dist/dam-plus-widgets-web-0.2.js` for | |
115 | 115 | this purpose. Just: |
116 | 116 | |
117 | <script src="dam-plus-widgets-web.js"></script> | |
117 | <script src="dist/dam-plus-widgets-web-0.2.js"></script> | |
118 | 118 | |
119 | 119 | and then you will have `DAM` as well as all the standard widget makers (nested |
120 | 120 | under `DAM`) at your fingertips. |
121 | 121 | |
122 | Note that, for convenience, `dist/dam-plus-widgets-web.js` is built from | |
122 | Note that, for convenience, `dist/dam-plus-widgets-web-0.2.js` is built from | |
123 | 123 | `src/dam-plus-widgets-web.js`, and minified for production, with some node.js |
124 | 124 | tooling (browserify and so forth) defined in the `package.json` in this repo. |
125 | 125 | But in a pinch, it could easily be constructed by hand from the files |
0 | /* dam.js version 0.2. This file is in the public domain. */ | |
1 | ||
2 | (function() { | |
3 | var DAM = {}; | |
4 | DAM.makeElem = function(tag, args) { | |
5 | args = args || []; | |
6 | var elem = document.createElement(tag); | |
7 | for (var i = 0; i < args.length; i++) { | |
8 | var arg = args[i]; | |
9 | if (arg instanceof Element) { | |
10 | elem.appendChild(arg); | |
11 | } else if (typeof arg === 'string' || arg instanceof String) { | |
12 | elem.appendChild(document.createTextNode(arg)); | |
13 | } else if (typeof arg === 'object' && arg !== null) { | |
14 | Object.keys(arg).forEach(function(key) { | |
15 | if (key.substring(0, 2) === 'on') { | |
16 | elem.addEventListener(key.substring(2), arg[key]); | |
17 | } else if (arg[key] === null) { | |
18 | elem.removeAttribute(key); | |
19 | } else { | |
20 | elem.setAttribute(key, arg[key]); | |
21 | } | |
22 | }); | |
23 | } else { | |
24 | console.log(arg); | |
25 | } | |
26 | } | |
27 | return elem; | |
28 | }; | |
29 | DAM.maker = function(tag) { | |
30 | return function() { | |
31 | return DAM.makeElem(tag, arguments); | |
32 | }; | |
33 | }; | |
34 | if (typeof module !== 'undefined') { | |
35 | module.exports = DAM; | |
36 | } else if (typeof window !== 'undefined') { | |
37 | window.DAM = DAM; | |
38 | } | |
39 | })(); |
0 | !function e(t,n,a){function o(u,r){if(!n[u]){if(!t[u]){var i="function"==typeof require&&require;if(!r&&i)return i(u,!0);if(l)return l(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[u]={exports:{}};t[u][0].call(f.exports,function(e){return o(t[u][1][e]||e)},f,f.exports,e,t,n,a)}return n[u].exports}for(var l="function"==typeof require&&require,u=0;u<a.length;u++)o(a[u]);return o}({1:[function(e,t,n){"use strict";var a,o=(a=e("./dam.js"))&&a.__esModule?a:{default:a},l=e("./dam-widgets.js");window.DAM=o.default,o.default.makeCheckbox=l.makeCheckbox,o.default.makePanel=l.makePanel,o.default.makeSelect=l.makeSelect,o.default.makeRange=l.makeRange},{"./dam-widgets.js":2,"./dam.js":3}],2:[function(e,t,n){"use strict";var a,o=(a=e("./dam.js"))&&a.__esModule?a:{default:a};void 0!==t&&(t.exports={makeCheckbox:function(e){void 0===o.default.makeCheckboxCounter&&(o.default.makeCheckboxCounter=0);for(var t="cfzzzb_"+o.default.makeCheckboxCounter++,n=e.onchange||function(e){},a=new Array(arguments.length),l=0;l<a.length;++l)a[l]=arguments[l];return a[0]={for:t,class:"dam-widget dam-checkbox"},o.default.makeElem("span",[o.default.makeElem("input",[{type:"checkbox",id:t,onchange:function(e){n(e.target.checked)}},e.checkboxAttrs||{}]),o.default.makeElem("label",a)])},makePanel:function(e){var t=!!e.isOpen,n=e.title||"";function a(){return(t?"∇":"⊳")+" "+n}for(var l=new Array(arguments.length),u=0;u<l.length;++u)l[u]=arguments[u];l[0]={};var r=o.default.makeElem("div",l);r.style.display=t?"block":"none";var i=o.default.makeElem("button",[a(),{onclick:function(e){t=!t,i.textContent=a(),r.style.display=t?"block":"none"}}]);return o.default.makeElem("div",[{class:"dam-widget dam-panel"},i,r])},makeSelect:function(e){for(var t=e.title||"",n=e.options||[],a=e.onchange||function(e){},l=o.default.makeElem("select"),u=0;u<n.length;u++){var r=o.default.makeElem("option");r.value=n[u].value,r.text=n[u].text,r.selected=!!n[u].selected,l.options.add(r)}return l.addEventListener("change",function(e){a(n[l.selectedIndex])}),o.default.makeElem("label",[{class:"dam-widget dam-select"},t,l])},makeRange:function(e){var t,n,a=e.title||"",l=e.min,u=e.max,r=e.value||l,i=e.onchange||function(e){},c=e.textInputSize||5;n=o.default.makeElem("input",[{type:"range",min:l,max:u,value:r,onchange:function(e){var a=parseInt(n.value,10);!isNaN(a)&&a>=l&&a<=u&&(t.value=""+a,i(a))}}]),t=o.default.makeElem("input",[{size:""+c,value:""+r,onchange:function(e){var a=parseInt(t.value,10);!isNaN(a)&&a>=l&&a<=u&&(n.value=""+a,i(a))}}]);var f=o.default.makeElem("button",["+",{onclick:function(e){var a=parseInt(t.value,10);!isNaN(a)&&a<u&&(a++,t.value=""+a,n.value=""+a,i(a))}}]),d=o.default.makeElem("button",["-",{onclick:function(e){var a=parseInt(t.value,10);!isNaN(a)&&a>l&&(a--,t.value=""+a,n.value=""+a,i(a))}}]),m=o.default.makeElem("span",[{class:"dam-widget dam-range"},o.default.makeElem("label",[a,n]),t,d,f]);return m.setValue=function(e){!isNaN(e)&&e>=l&&e<=u&&(t.value=""+e,n.value=""+e,i(e))},m}})},{"./dam.js":3}],3:[function(e,t,n){"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o;o={makeElem:function(e,t){t=t||[];for(var n=document.createElement(e),o=0;o<t.length;o++){var l=t[o];l instanceof Element?n.appendChild(l):"string"==typeof l||l instanceof String?n.appendChild(document.createTextNode(l)):"object"===a(l)&&null!==l?Object.keys(l).forEach(function(e){"on"===e.substring(0,2)?n.addEventListener(e.substring(2),l[e]):null===l[e]?n.removeAttribute(e):n.setAttribute(e,l[e])}):console.log(l)}return n},maker:function(e){return function(){return o.makeElem(e,arguments)}}},void 0!==t?t.exports=o:"undefined"!=typeof window&&(window.DAM=o)},{}]},{},[1]); |
0 | !function e(t,n,a){function o(u,r){if(!n[u]){if(!t[u]){var i="function"==typeof require&&require;if(!r&&i)return i(u,!0);if(l)return l(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[u]={exports:{}};t[u][0].call(f.exports,function(e){return o(t[u][1][e]||e)},f,f.exports,e,t,n,a)}return n[u].exports}for(var l="function"==typeof require&&require,u=0;u<a.length;u++)o(a[u]);return o}({1:[function(e,t,n){"use strict";var a,o=(a=e("./dam.js"))&&a.__esModule?a:{default:a},l=e("./dam-widgets.js");window.DAM=o.default,o.default.makeCheckbox=l.makeCheckbox,o.default.makePanel=l.makePanel,o.default.makeSelect=l.makeSelect,o.default.makeRange=l.makeRange},{"./dam-widgets.js":2,"./dam.js":3}],2:[function(e,t,n){"use strict";var a,o=(a=e("./dam.js"))&&a.__esModule?a:{default:a};void 0!==t&&(t.exports={makeCheckbox:function(e){void 0===o.default.makeCheckboxCounter&&(o.default.makeCheckboxCounter=0);for(var t="cfzzzb_"+o.default.makeCheckboxCounter++,n=e.onchange||function(e){},a=new Array(arguments.length),l=0;l<a.length;++l)a[l]=arguments[l];return a[0]={for:t,class:"dam-widget dam-checkbox"},o.default.makeElem("span",[o.default.makeElem("input",[{type:"checkbox",id:t,onchange:function(e){n(e.target.checked)}},e.checkboxAttrs||{}]),o.default.makeElem("label",a)])},makePanel:function(e){var t=!!e.isOpen,n=e.title||"";function a(){return(t?"∇":"⊳")+" "+n}for(var l=new Array(arguments.length),u=0;u<l.length;++u)l[u]=arguments[u];l[0]={};var r=o.default.makeElem("div",l);r.style.display=t?"block":"none";var i=o.default.makeElem("button",[a(),{onclick:function(e){t=!t,i.textContent=a(),r.style.display=t?"block":"none"}}]);return o.default.makeElem("div",[{class:"dam-widget dam-panel"},i,r])},makeSelect:function(e){for(var t=e.title||"",n=e.options||[],a=e.onchange||function(e){},l=o.default.makeElem("select"),u=0;u<n.length;u++){var r=o.default.makeElem("option");r.value=n[u].value,r.text=n[u].text,r.selected=!!n[u].selected,l.options.add(r)}return l.addEventListener("change",function(e){a(n[l.selectedIndex])}),o.default.makeElem("label",[{class:"dam-widget dam-select"},t,l])},makeRange:function(e){var t,n,a=e.title||"",l=e.min,u=e.max,r=e.value||l,i=e.onchange||function(e){},c=e.textInputSize||5;n=o.default.makeElem("input",[{type:"range",min:l,max:u,value:r,onchange:function(e){var a=parseInt(n.value,10);!isNaN(a)&&a>=l&&a<=u&&(t.value=""+a,i(a))}}]),t=o.default.makeElem("input",[{size:""+c,value:""+r,onchange:function(e){var a=parseInt(t.value,10);!isNaN(a)&&a>=l&&a<=u&&(n.value=""+a,i(a))}}]);var f=o.default.makeElem("button",["+",{onclick:function(e){var a=parseInt(t.value,10);!isNaN(a)&&a<u&&(a++,t.value=""+a,n.value=""+a,i(a))}}]),d=o.default.makeElem("button",["-",{onclick:function(e){var a=parseInt(t.value,10);!isNaN(a)&&a>l&&(a--,t.value=""+a,n.value=""+a,i(a))}}]),m=o.default.makeElem("span",[{class:"dam-widget dam-range"},o.default.makeElem("label",[a,n]),t,d,f]);return m.setValue=function(e){!isNaN(e)&&e>=l&&e<=u&&(t.value=""+e,n.value=""+e,i(e))},m}})},{"./dam.js":3}],3:[function(e,t,n){"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o;o={makeElem:function(e,t){t=t||[];for(var n=document.createElement(e),o=0;o<t.length;o++){var l=t[o];l instanceof Element?n.appendChild(l):"string"==typeof l||l instanceof String?n.appendChild(document.createTextNode(l)):"object"===a(l)&&null!==l?Object.keys(l).forEach(function(e){"on"===e.substring(0,2)?n.addEventListener(e.substring(2),l[e]):null===l[e]?n.removeAttribute(e):n.setAttribute(e,l[e])}):console.log(l)}return n},maker:function(e){return function(){return o.makeElem(e,arguments)}}},void 0!==t?t.exports=o:"undefined"!=typeof window&&(window.DAM=o)},{}]},{},[1]); |
0 | /* dam.js version 0.1. This file is in the public domain. */ | |
1 | ||
2 | (function() { | |
3 | var DAM = {}; | |
4 | DAM.makeElem = function(tag, args) { | |
5 | args = args || []; | |
6 | var elem = document.createElement(tag); | |
7 | for (var i = 0; i < args.length; i++) { | |
8 | var arg = args[i]; | |
9 | if (arg instanceof Element) { | |
10 | elem.appendChild(arg); | |
11 | } else if (typeof arg === 'string' || arg instanceof String) { | |
12 | elem.appendChild(document.createTextNode(arg)); | |
13 | } else if (typeof arg === 'object' && arg !== null) { | |
14 | Object.keys(arg).forEach(function(key) { | |
15 | if (key.substring(0, 2) === 'on') { | |
16 | elem.addEventListener(key.substring(2), arg[key]); | |
17 | } else if (arg[key] === null) { | |
18 | elem.removeAttribute(key); | |
19 | } else { | |
20 | elem.setAttribute(key, arg[key]); | |
21 | } | |
22 | }); | |
23 | } else { | |
24 | console.log(arg); | |
25 | } | |
26 | } | |
27 | return elem; | |
28 | }; | |
29 | DAM.maker = function(tag) { | |
30 | return function() { | |
31 | return DAM.makeElem(tag, arguments); | |
32 | }; | |
33 | }; | |
34 | if (typeof module !== 'undefined') { | |
35 | module.exports = DAM; | |
36 | } else if (typeof window !== 'undefined') { | |
37 | window.DAM = DAM; | |
38 | } | |
39 | })(); |
4 | 4 | "repository": "https://github.com/catseye/DAM.git", |
5 | 5 | "license": "UNLICENSE", |
6 | 6 | "scripts": { |
7 | "build:dam": "mkdir -p dist && cp src/dam.js dist/dam.js", | |
8 | "build:dam-plus-widgets-web": "mkdir -p dist && browserify src/dam-plus-widgets-web.js -t [ babelify --presets [ @babel/preset-env ] ] -g [ envify --NODE_ENV production ] -g uglifyify | terser --compress --mangle | uglifyjs > dist/dam-plus-widgets-web.js", | |
7 | "build:dam": "mkdir -p dist && cp src/dam.js dist/dam-0.2.js", | |
8 | "build:dam-plus-widgets-web": "mkdir -p dist && browserify src/dam-plus-widgets-web.js -t [ babelify --presets [ @babel/preset-env ] ] -g [ envify --NODE_ENV production ] -g uglifyify | terser --compress --mangle | uglifyjs > dist/dam-plus-widgets-web-0.2.js", | |
9 | 9 | "build:all": "npm run build:dam && npm run build:dam-plus-widgets-web" |
10 | 10 | }, |
11 | 11 | "devDependencies": { |