Browse Source

add analytics and update pckgs

windhamdavid 2 years ago
parent
commit
0170d81a1a

+ 28 - 0
README.md

@@ -5,6 +5,34 @@ what to do with the new [domain](https://davidwindham.com) ... I'd like a cleane
 ----
 #### notes:
 
+##### 21/01/25: Updated pkgs  
+- had to abandon gulp-uglify b/c doesn't support ES6 'const'
+- left fullcalendar at v.4 b/c react import workflow 
+
+david@ovid:~/sites/dw(master⚡) » npm list  
+davidwindham.com@1.0.0 /Users/david/Sites/dw  
+├── @fullcalendar/core@4.4.2  
+├── @fullcalendar/daygrid@4.4.2  
+├── @fullcalendar/google-calendar@4.4.2  
+├── @fullcalendar/timegrid@4.4.2  
+├── bootstrap@5.1.3  
+├── browser-sync@2.27.7  
+├── gulp-clean-css@4.3.0  
+├── gulp-concat@2.6.1  
+├── gulp-htmlmin@5.0.1  
+├── gulp-rename@2.0.0  
+├── gulp-sass@5.1.0  
+├── gulp-terser@2.1.0  
+├── gulp-useref@5.0.0  
+├── gulp@4.0.2  
+├── jquery@3.6.0  
+├── moment@2.29.1  
+├── popper.js@1.16.1  
+├── snapsvg@0.5.1  
+└── waypoints@4.0.1  
+
+----
+
 ##### content/
 ideas - bot, AMA, TIL, knowitall,  
 about - bio / cv / clients  

+ 18 - 1
app/index.html

@@ -2,7 +2,7 @@
 <html lang="en" class="no-js default-scroll">
 <head>
 <meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0, minimal-ui">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta name="google-site-verification" content="kp06-RPhHu97jLQv5c7nl_jyj3wDwTBIpC_OogW-TFc" />
 <meta name="description" content="David Windham">
 <meta name="author" content="David Windham">
@@ -548,5 +548,22 @@
 </footer>
 
 <script src="js/dw.js"></script>
+
+<script>
+  var _paq = window._paq = window._paq || [];
+  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+  _paq.push(["setCookieDomain", "*.davidwindham.com"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://davidawindham.com/wik/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '5']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://davidawindham.com/wik/matomo.php?idsite=5&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+
 </body>
 </html>

File diff suppressed because it is too large
+ 0 - 0
app/index.min.html/index.html


File diff suppressed because it is too large
+ 0 - 0
app/js/dw.js


+ 1 - 1
css/fullcalendar-daygrid.css

@@ -75,4 +75,4 @@
   /* work around the way we do column resizing and ensure a minimum width */
   display: inline-block;
   min-width: 1.25em;
-}
+}

+ 1 - 1
css/fullcalendar-timegrid.css

@@ -306,4 +306,4 @@ be a descendant of the grid when it is being dragged.
   border-width: 5px 6px 5px 0;
   border-top-color: transparent;
   border-bottom-color: transparent;
-}
+}

+ 1 - 1
css/fullcalendar.css

@@ -1049,4 +1049,4 @@ Lots taken from Flatly (MIT): https://bootswatch.com/4/flatly/bootstrap.css
     display: none;
     /* don't display any button-related controls */
   }
-}
+}

+ 9 - 5
gulpfile.js

@@ -1,7 +1,7 @@
 const gulp = require('gulp'),
       useref = require('gulp-useref'),
       gulpif = require('gulp-if'),
-      uglify = require('gulp-uglify'),
+      terser = require('gulp-terser'),
       sass = require('gulp-sass'),
       cleanCSS = require('gulp-clean-css'),
       htmlmin = require('gulp-htmlmin'),
@@ -12,7 +12,9 @@ const gulp = require('gulp'),
 gulp.task('copy', async function() {
   gulp.src('./node_modules/bootstrap/dist/js/bootstrap.js')
     .pipe(gulp.dest('./js/'));
-  gulp.src('./node_modules/jquery/dist/jquery.min.js')
+  gulp.src('./node_modules/bootstrap/dist/js/bootstrap.js.map')
+    .pipe(gulp.dest('./js/'));
+    gulp.src('./node_modules/jquery/dist/jquery.min.js')
     .pipe(gulp.dest('./js/'));
   gulp.src('./node_modules/@fullcalendar/core/main.js')
     .pipe(rename('fullcalendar.js'))
@@ -24,7 +26,7 @@ gulp.task('copy', async function() {
     .pipe(rename('fullcalendar-google.js'))
     .pipe(gulp.dest('./js/', { overwrite:true } ));
   gulp.src('./node_modules/@fullcalendar/daygrid/main.js')
-    .pipe(rename('./js/fullcalendar-daygrid.js'))
+    .pipe(rename('fullcalendar-daygrid.js'))
     .pipe(gulp.dest('./js/', { overwrite:true } ));
   gulp.src('./node_modules/@fullcalendar/daygrid/main.css')
     .pipe(rename('fullcalendar-daygrid.css'))
@@ -37,7 +39,9 @@ gulp.task('copy', async function() {
     .pipe(gulp.dest('./css/', { overwrite:true } ));
   gulp.src('./node_modules/moment/min/moment.min.js')
     .pipe(gulp.dest('./js/'));
-  gulp.src('./node_modules/waypoints/lib/noframework.waypoints.js')
+  gulp.src('./node_modules/moment/min/moment.min.js.map')
+    .pipe(gulp.dest('./js/'));
+    gulp.src('./node_modules/waypoints/lib/noframework.waypoints.js')
     .pipe(rename('waypoints.js'))
     .pipe(gulp.dest('./js/'));
   gulp.src('./node_modules/waypoints/lib/shortcuts/inview.js')
@@ -49,7 +53,7 @@ gulp.task('copy', async function() {
 gulp.task('build', async function() {
   gulp.src('index.html')
     .pipe(useref())
-    .pipe(gulpif('*.js', uglify()))
+    .pipe(gulpif('*.js', terser()))
     .pipe(gulpif('*.css', cleanCSS({level: {1: {specialComments: 0}}})))
     .pipe(gulp.dest('./app/'));
   console.log("Assets built 🔧 for app/ ");

+ 20 - 3
index.html

@@ -2,7 +2,7 @@
 <html lang="en" class="no-js default-scroll">
 <head>
 <meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0, minimal-ui">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta name="google-site-verification" content="kp06-RPhHu97jLQv5c7nl_jyj3wDwTBIpC_OogW-TFc" />
 <meta name="description" content="David Windham">
 <meta name="author" content="David Windham">
@@ -380,7 +380,7 @@
                     I tailor my approach to the unique requirements of each project
                     in an effort create sustainable and practical applications that work for you.
                   </p>
-                  <button type="button" class="btn btn-dark mt-3" data-toggle="modal" data-target="#pricing-modal">
+                  <button type="button" class="btn btn-dark mt-3" data-bs-toggle="modal" data-bs-target="#pricing-modal">
                     Pricing &amp; Cost
                   </button>
                 </div>
@@ -394,7 +394,7 @@
               <div class="modal-content">
                 <div class="modal-body">
                   <div class="container-fluid">
-                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
                       <span aria-hidden="true">&times;</span>
                     </button>
                     <h3 class="modal-title font-weight-bold">Pricing &amp; Costs</h3>
@@ -565,5 +565,22 @@
 <script src="./js/waypoints-inview.js"></script>
 <script src="./js/_init.js"></script>
 <!-- endbuild -->
+
+<script>
+  var _paq = window._paq = window._paq || [];
+  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
+  _paq.push(["setCookieDomain", "*.davidwindham.com"]);
+  _paq.push(['trackPageView']);
+  _paq.push(['enableLinkTracking']);
+  (function() {
+    var u="https://davidawindham.com/wik/";
+    _paq.push(['setTrackerUrl', u+'matomo.php']);
+    _paq.push(['setSiteId', '5']);
+    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+  })();
+</script>
+<noscript><p><img src="https://davidawindham.com/wik/matomo.php?idsite=5&amp;rec=1" style="border:0;" alt="" /></p></noscript>
+
 </body>
 </html>

File diff suppressed because it is too large
+ 967 - 507
js/bootstrap.js


File diff suppressed because it is too large
+ 0 - 0
js/bootstrap.js.map


+ 12 - 11
js/fullcalendar-daygrid.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Day Grid Plugin v4.4.0
+FullCalendar Day Grid Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core) { 'use strict';
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
     /* global Reflect, Promise */
 
@@ -1543,6 +1543,7 @@ Docs & License: https://fullcalendar.io/
         SimpleDayGrid.prototype.render = function (props, context) {
             var dayGrid = this.dayGrid;
             var dateProfile = props.dateProfile, dayTable = props.dayTable;
+            dayGrid.receiveContext(context); // hack because context is used in sliceProps
             dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, context.calendar, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid }), context);
         };
         SimpleDayGrid.prototype.buildPositionCaches = function () {

+ 11 - 11
js/fullcalendar-google.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Google Calendar Plugin v4.4.0
+FullCalendar Google Calendar Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core) { 'use strict';
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
 
     var __assign = function() {

+ 14 - 12
js/fullcalendar-timegrid.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Time Grid Plugin v4.4.0
+FullCalendar Time Grid Plugin v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core, daygrid) { 'use strict';
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
     /* global Reflect, Promise */
 
@@ -1246,7 +1246,9 @@ Docs & License: https://fullcalendar.io/
             var dateEnv = this.context.dateEnv;
             var dateProfile = props.dateProfile, dayTable = props.dayTable;
             var dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, dateEnv);
-            this.timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, context.calendar, this.timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }), context);
+            var timeGrid = this.timeGrid;
+            timeGrid.receiveContext(context); // hack because context is used in sliceProps
+            timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, context.calendar, timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }), context);
         };
         SimpleTimeGrid.prototype.renderNowIndicator = function (date) {
             this.timeGrid.renderNowIndicator(this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), date);

+ 25 - 20
js/fullcalendar.js

@@ -1,5 +1,5 @@
 /*!
-FullCalendar Core Package v4.4.0
+FullCalendar Core Package v4.4.2
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 */
@@ -1131,18 +1131,18 @@ Docs & License: https://fullcalendar.io/
     }
 
     /*! *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
+    Copyright (c) Microsoft Corporation.
 
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
 
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
     ***************************************************************************** */
     /* global Reflect, Promise */
 
@@ -2463,7 +2463,7 @@ Docs & License: https://fullcalendar.io/
                 ]);
             }
         }
-        if (!calendar.state.loadingLevel) { // avoid initial empty state while pending
+        if (!calendar.state.eventSourceLoadingLevel) { // avoid initial empty state while pending
             calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once
         }
     }
@@ -3937,28 +3937,33 @@ Docs & License: https://fullcalendar.io/
     }());
     var Component = /** @class */ (function () {
         function Component() {
+            this.everRendered = false;
             this.uid = String(guid++);
         }
         Component.addEqualityFuncs = function (newFuncs) {
             this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs);
         };
         Component.prototype.receiveProps = function (props, context) {
-            var oldContext = this.context;
-            this.context = context;
-            if (!oldContext) {
-                this.firstContext(context);
-            }
+            this.receiveContext(context);
             var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps;
             this.props = comboProps;
             if (anyChanges) {
-                if (oldContext) {
+                if (this.everRendered) {
                     this.beforeUpdate();
                 }
                 this.render(comboProps, context);
-                if (oldContext) {
+                if (this.everRendered) {
                     this.afterUpdate();
                 }
             }
+            this.everRendered = true;
+        };
+        Component.prototype.receiveContext = function (context) {
+            var oldContext = this.context;
+            this.context = context;
+            if (!oldContext) {
+                this.firstContext(context);
+            }
         };
         Component.prototype.render = function (props, context) {
         };
@@ -8578,7 +8583,7 @@ Docs & License: https://fullcalendar.io/
 
     // exports
     // --------------------------------------------------------------------------------------------------
-    var version = '4.4.0';
+    var version = '4.4.2';
 
     exports.Calendar = Calendar;
     exports.Component = Component;

File diff suppressed because it is too large
+ 0 - 1
js/jquery.min.js


File diff suppressed because it is too large
+ 0 - 0
js/moment.min.js


File diff suppressed because it is too large
+ 0 - 0
js/moment.min.js.map


+ 8 - 9
package.json

@@ -12,22 +12,21 @@
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1"
   },
-  "dependencies": {},
   "devDependencies": {
-    "@fullcalendar/core": "^4.4.0",
-    "@fullcalendar/daygrid": "^4.4.0",
-    "@fullcalendar/google-calendar": "^4.4.0",
-    "@fullcalendar/timegrid": "^4.4.0",
-    "bootstrap": "^4.4.1",
+    "@fullcalendar/core": "^4.4.2",
+    "@fullcalendar/daygrid": "^4.4.2",
+    "@fullcalendar/google-calendar": "^4.4.2",
+    "@fullcalendar/timegrid": "^4.4.2",
+    "bootstrap": "^5.1.3",
     "browser-sync": "^2.26.7",
     "gulp": "^4.0.2",
     "gulp-clean-css": "^4.3.0",
     "gulp-concat": "^2.6.1",
     "gulp-htmlmin": "^5.0.1",
     "gulp-rename": "^2.0.0",
-    "gulp-sass": "^4.0.2",
-    "gulp-uglify": "^3.0.2",
-    "gulp-useref": "^4.0.1",
+    "gulp-sass": "^5.1.0",
+    "gulp-terser": "^2.1.0",
+    "gulp-useref": "^5.0.0",
     "jquery": "^3.4.1",
     "moment": "^2.24.0",
     "popper.js": "^1.16.1",

Some files were not shown because too many files changed in this diff