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:
 #### 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/
 ##### content/
 ideas - bot, AMA, TIL, knowitall,  
 ideas - bot, AMA, TIL, knowitall,  
 about - bio / cv / clients  
 about - bio / cv / clients  

+ 18 - 1
app/index.html

@@ -2,7 +2,7 @@
 <html lang="en" class="no-js default-scroll">
 <html lang="en" class="no-js default-scroll">
 <head>
 <head>
 <meta charset="utf-8">
 <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="google-site-verification" content="kp06-RPhHu97jLQv5c7nl_jyj3wDwTBIpC_OogW-TFc" />
 <meta name="description" content="David Windham">
 <meta name="description" content="David Windham">
 <meta name="author" content="David Windham">
 <meta name="author" content="David Windham">
@@ -548,5 +548,22 @@
 </footer>
 </footer>
 
 
 <script src="js/dw.js"></script>
 <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>
 </body>
 </html>
 </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 */
   /* work around the way we do column resizing and ensure a minimum width */
   display: inline-block;
   display: inline-block;
   min-width: 1.25em;
   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-width: 5px 6px 5px 0;
   border-top-color: transparent;
   border-top-color: transparent;
   border-bottom-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;
     display: none;
     /* don't display any button-related controls */
     /* don't display any button-related controls */
   }
   }
-}
+}

+ 9 - 5
gulpfile.js

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

+ 20 - 3
index.html

@@ -2,7 +2,7 @@
 <html lang="en" class="no-js default-scroll">
 <html lang="en" class="no-js default-scroll">
 <head>
 <head>
 <meta charset="utf-8">
 <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="google-site-verification" content="kp06-RPhHu97jLQv5c7nl_jyj3wDwTBIpC_OogW-TFc" />
 <meta name="description" content="David Windham">
 <meta name="description" content="David Windham">
 <meta name="author" content="David Windham">
 <meta name="author" content="David Windham">
@@ -380,7 +380,7 @@
                     I tailor my approach to the unique requirements of each project
                     I tailor my approach to the unique requirements of each project
                     in an effort create sustainable and practical applications that work for you.
                     in an effort create sustainable and practical applications that work for you.
                   </p>
                   </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
                     Pricing &amp; Cost
                   </button>
                   </button>
                 </div>
                 </div>
@@ -394,7 +394,7 @@
               <div class="modal-content">
               <div class="modal-content">
                 <div class="modal-body">
                 <div class="modal-body">
                   <div class="container-fluid">
                   <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>
                       <span aria-hidden="true">&times;</span>
                     </button>
                     </button>
                     <h3 class="modal-title font-weight-bold">Pricing &amp; Costs</h3>
                     <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/waypoints-inview.js"></script>
 <script src="./js/_init.js"></script>
 <script src="./js/_init.js"></script>
 <!-- endbuild -->
 <!-- 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>
 </body>
 </html>
 </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/
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 (c) 2019 Adam Shaw
 */
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core) { 'use strict';
 }(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 */
     /* global Reflect, Promise */
 
 
@@ -1543,6 +1543,7 @@ Docs & License: https://fullcalendar.io/
         SimpleDayGrid.prototype.render = function (props, context) {
         SimpleDayGrid.prototype.render = function (props, context) {
             var dayGrid = this.dayGrid;
             var dayGrid = this.dayGrid;
             var dateProfile = props.dateProfile, dayTable = props.dayTable;
             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);
             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 () {
         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/
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 (c) 2019 Adam Shaw
 */
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core) { 'use strict';
 }(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() {
     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/
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 (c) 2019 Adam Shaw
 */
 */
@@ -11,18 +11,18 @@ Docs & License: https://fullcalendar.io/
 }(this, function (exports, core, daygrid) { 'use strict';
 }(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 */
     /* global Reflect, Promise */
 
 
@@ -1246,7 +1246,9 @@ Docs & License: https://fullcalendar.io/
             var dateEnv = this.context.dateEnv;
             var dateEnv = this.context.dateEnv;
             var dateProfile = props.dateProfile, dayTable = props.dayTable;
             var dateProfile = props.dateProfile, dayTable = props.dayTable;
             var dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, dateEnv);
             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) {
         SimpleTimeGrid.prototype.renderNowIndicator = function (date) {
             this.timeGrid.renderNowIndicator(this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), 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/
 Docs & License: https://fullcalendar.io/
 (c) 2019 Adam Shaw
 (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 */
     /* 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
             calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once
         }
         }
     }
     }
@@ -3937,28 +3937,33 @@ Docs & License: https://fullcalendar.io/
     }());
     }());
     var Component = /** @class */ (function () {
     var Component = /** @class */ (function () {
         function Component() {
         function Component() {
+            this.everRendered = false;
             this.uid = String(guid++);
             this.uid = String(guid++);
         }
         }
         Component.addEqualityFuncs = function (newFuncs) {
         Component.addEqualityFuncs = function (newFuncs) {
             this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs);
             this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs);
         };
         };
         Component.prototype.receiveProps = function (props, context) {
         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;
             var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps;
             this.props = comboProps;
             this.props = comboProps;
             if (anyChanges) {
             if (anyChanges) {
-                if (oldContext) {
+                if (this.everRendered) {
                     this.beforeUpdate();
                     this.beforeUpdate();
                 }
                 }
                 this.render(comboProps, context);
                 this.render(comboProps, context);
-                if (oldContext) {
+                if (this.everRendered) {
                     this.afterUpdate();
                     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) {
         Component.prototype.render = function (props, context) {
         };
         };
@@ -8578,7 +8583,7 @@ Docs & License: https://fullcalendar.io/
 
 
     // exports
     // exports
     // --------------------------------------------------------------------------------------------------
     // --------------------------------------------------------------------------------------------------
-    var version = '4.4.0';
+    var version = '4.4.2';
 
 
     exports.Calendar = Calendar;
     exports.Calendar = Calendar;
     exports.Component = Component;
     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": {
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1"
     "test": "echo \"Error: no test specified\" && exit 1"
   },
   },
-  "dependencies": {},
   "devDependencies": {
   "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",
     "browser-sync": "^2.26.7",
     "gulp": "^4.0.2",
     "gulp": "^4.0.2",
     "gulp-clean-css": "^4.3.0",
     "gulp-clean-css": "^4.3.0",
     "gulp-concat": "^2.6.1",
     "gulp-concat": "^2.6.1",
     "gulp-htmlmin": "^5.0.1",
     "gulp-htmlmin": "^5.0.1",
     "gulp-rename": "^2.0.0",
     "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",
     "jquery": "^3.4.1",
     "moment": "^2.24.0",
     "moment": "^2.24.0",
     "popper.js": "^1.16.1",
     "popper.js": "^1.16.1",

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