tsgrid-ui 2.5.0 → 2.7.0

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/dist/tsgrid-ui.js CHANGED
@@ -1,4 +1,4 @@
1
- /* tsgrid-ui 1.0.x (nightly) (5/13/2026, 9:14:17 PM) (c) 2014 vitmalina@gmail.com, (c) 2026 DaverSoGT — MIT */
1
+ /* tsgrid-ui 1.0.x (nightly) (5/14/2026, 12:10:16 AM) (c) 2014 vitmalina@gmail.com, (c) 2026 DaverSoGT — MIT */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -3022,6 +3022,78 @@ function _formatDateTime(dateStr, format, settings) {
3022
3022
  if (fmt[1] === "h24") fmt[1] = "h24:m";
3023
3023
  return _formatDate(dateStr, fmt[0], settings) + " " + _formatTime(dateStr, fmt[1], settings);
3024
3024
  }
3025
+ function _date(dateStr, settings, deps) {
3026
+ if (dateStr === "" || dateStr == null || typeof dateStr === "object" && !dateStr.getMonth) return "";
3027
+ let d1 = new Date(dateStr);
3028
+ if (isInt(dateStr)) d1 = new Date(Number(dateStr));
3029
+ if (String(d1) === "Invalid Date") return "";
3030
+ const months = settings.shortmonths;
3031
+ const d2 = /* @__PURE__ */ new Date();
3032
+ const d3 = /* @__PURE__ */ new Date();
3033
+ d3.setTime(d3.getTime() - 864e5);
3034
+ const dd1 = months[d1.getMonth()] + " " + d1.getDate() + ", " + d1.getFullYear();
3035
+ const dd2 = months[d2.getMonth()] + " " + d2.getDate() + ", " + d2.getFullYear();
3036
+ const dd3 = months[d3.getMonth()] + " " + d3.getDate() + ", " + d3.getFullYear();
3037
+ const time = d1.getHours() - (d1.getHours() > 12 ? 12 : 0) + ":" + (d1.getMinutes() < 10 ? "0" : "") + d1.getMinutes() + " " + (d1.getHours() >= 12 ? "pm" : "am");
3038
+ const time2 = d1.getHours() - (d1.getHours() > 12 ? 12 : 0) + ":" + (d1.getMinutes() < 10 ? "0" : "") + d1.getMinutes() + ":" + (d1.getSeconds() < 10 ? "0" : "") + d1.getSeconds() + " " + (d1.getHours() >= 12 ? "pm" : "am");
3039
+ let dsp = dd1;
3040
+ if (dd1 === dd2) dsp = time;
3041
+ if (dd1 === dd3) dsp = deps.lang("Yesterday");
3042
+ return '<span title="' + dd1 + " " + time2 + '">' + dsp + "</span>";
3043
+ }
3044
+
3045
+ // src/tsutils-locale.ts
3046
+ async function _locale(locale, keepPhrases, noMerge, settings, deps) {
3047
+ if (Array.isArray(locale)) {
3048
+ let mergedSettings = deps.extend({}, settings, { phrases: {} });
3049
+ const localeArr = locale;
3050
+ const proms = [];
3051
+ const files = {};
3052
+ localeArr.forEach((file, ind) => {
3053
+ if (file.length === 5) {
3054
+ file = "locale/" + file.toLowerCase() + ".json";
3055
+ localeArr[ind] = file;
3056
+ }
3057
+ proms.push(_locale(file, true, false, mergedSettings, deps));
3058
+ });
3059
+ const res = await Promise.allSettled(proms);
3060
+ res.forEach((r) => {
3061
+ if (r.status === "fulfilled" && r.value.kind === "load") {
3062
+ files[r.value.file] = r.value.data;
3063
+ }
3064
+ });
3065
+ localeArr.forEach((file) => {
3066
+ mergedSettings = deps.extend({}, mergedSettings, files[file] ?? {});
3067
+ });
3068
+ return { kind: "void", settings: mergedSettings };
3069
+ }
3070
+ if (!locale) locale = "en-us";
3071
+ if (typeof locale === "object") {
3072
+ const mergedSettings = deps.extend({}, settings, TsLocale, locale);
3073
+ return { kind: "merge", settings: mergedSettings };
3074
+ }
3075
+ let localeStr = locale;
3076
+ if (localeStr.length === 5) {
3077
+ localeStr = "locale/" + localeStr.toLowerCase() + ".json";
3078
+ }
3079
+ try {
3080
+ const res = await deps.fetch(localeStr, { method: "GET" });
3081
+ const data = await res.json();
3082
+ if (noMerge !== true) {
3083
+ if (keepPhrases) {
3084
+ const newSettings = deps.extend({}, settings, data);
3085
+ return { kind: "load", file: localeStr, data, settings: newSettings };
3086
+ } else {
3087
+ const newSettings = deps.extend({}, settings, TsLocale, { phrases: {} }, data);
3088
+ return { kind: "load", file: localeStr, data, settings: newSettings };
3089
+ }
3090
+ }
3091
+ return { kind: "load", file: localeStr, data };
3092
+ } catch (err) {
3093
+ console.log("ERROR: Cannot load locale " + localeStr);
3094
+ throw err;
3095
+ }
3096
+ }
3025
3097
 
3026
3098
  // src/tsutils.ts
3027
3099
  var query7 = query;
@@ -3238,23 +3310,7 @@ var Utils = class {
3238
3310
  return _interval(value);
3239
3311
  }
3240
3312
  date(dateStr) {
3241
- if (dateStr === "" || dateStr == null || typeof dateStr === "object" && !dateStr.getMonth) return "";
3242
- let d1 = new Date(dateStr);
3243
- if (this.isInt(dateStr)) d1 = new Date(Number(dateStr));
3244
- if (String(d1) === "Invalid Date") return "";
3245
- const months = this.settings.shortmonths;
3246
- const d2 = /* @__PURE__ */ new Date();
3247
- const d3 = /* @__PURE__ */ new Date();
3248
- d3.setTime(d3.getTime() - 864e5);
3249
- const dd1 = months[d1.getMonth()] + " " + d1.getDate() + ", " + d1.getFullYear();
3250
- const dd2 = months[d2.getMonth()] + " " + d2.getDate() + ", " + d2.getFullYear();
3251
- const dd3 = months[d3.getMonth()] + " " + d3.getDate() + ", " + d3.getFullYear();
3252
- const time = d1.getHours() - (d1.getHours() > 12 ? 12 : 0) + ":" + (d1.getMinutes() < 10 ? "0" : "") + d1.getMinutes() + " " + (d1.getHours() >= 12 ? "pm" : "am");
3253
- const time2 = d1.getHours() - (d1.getHours() > 12 ? 12 : 0) + ":" + (d1.getMinutes() < 10 ? "0" : "") + d1.getMinutes() + ":" + (d1.getSeconds() < 10 ? "0" : "") + d1.getSeconds() + " " + (d1.getHours() >= 12 ? "pm" : "am");
3254
- let dsp = dd1;
3255
- if (dd1 === dd2) dsp = time;
3256
- if (dd1 === dd3) dsp = this.lang("Yesterday");
3257
- return '<span title="' + dd1 + " " + time2 + '">' + dsp + "</span>";
3313
+ return _date(dateStr, this.settings, { lang: this.lang.bind(this) });
3258
3314
  }
3259
3315
  formatSize(sizeStr) {
3260
3316
  if (!this.isFloat(sizeStr) || sizeStr === "") return "";
@@ -3522,52 +3578,13 @@ var Utils = class {
3522
3578
  return this.execTemplate(translation, params);
3523
3579
  }
3524
3580
  locale(locale, keepPhrases, noMerge) {
3525
- return new Promise((resolve, reject) => {
3526
- if (Array.isArray(locale)) {
3527
- this.settings.phrases = {};
3528
- const proms = [];
3529
- const files = {};
3530
- const localeArr = locale;
3531
- localeArr.forEach((file, ind) => {
3532
- if (file.length === 5) {
3533
- file = "locale/" + file.toLowerCase() + ".json";
3534
- localeArr[ind] = file;
3535
- }
3536
- proms.push(this.locale(file, true, false));
3537
- });
3538
- Promise.allSettled(proms).then((res) => {
3539
- res.forEach((r) => {
3540
- if (r.value) files[r.value.file] = r.value.data;
3541
- });
3542
- localeArr.forEach((file) => {
3543
- this.settings = this.extend({}, this.settings, files[file]);
3544
- });
3545
- resolve();
3546
- });
3547
- return;
3548
- }
3549
- if (!locale) locale = "en-us";
3550
- if (typeof locale === "object") {
3551
- this.settings = this.extend({}, this.settings, TsLocale, locale);
3552
- return;
3553
- }
3554
- let localeStr = locale;
3555
- if (localeStr.length === 5) {
3556
- localeStr = "locale/" + localeStr.toLowerCase() + ".json";
3557
- }
3558
- fetch(localeStr, { method: "GET" }).then((res) => res.json()).then((data) => {
3559
- if (noMerge !== true) {
3560
- if (keepPhrases) {
3561
- this.settings = this.extend({}, this.settings, data);
3562
- } else {
3563
- this.settings = this.extend({}, this.settings, TsLocale, { phrases: {} }, data);
3564
- }
3565
- }
3566
- resolve({ file: localeStr, data });
3567
- }).catch((err) => {
3568
- console.log("ERROR: Cannot load locale " + localeStr);
3569
- reject(err);
3570
- });
3581
+ const deps = {
3582
+ extend: this.extend.bind(this),
3583
+ fetch: globalThis.fetch.bind(globalThis)
3584
+ };
3585
+ return _locale(locale, keepPhrases, noMerge, this.settings, deps).then((result) => {
3586
+ if (result.settings) this.settings = result.settings;
3587
+ return result.kind === "load" ? { file: result.file, data: result.data } : void 0;
3571
3588
  });
3572
3589
  }
3573
3590
  scrollBarSize() {