@opfr/utils-lang 0.15.0 → 0.16.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/index.es.js CHANGED
@@ -3,16 +3,16 @@ const w = (e) => new Intl.NumberFormat("de-DE").format(e), h = (e, t, r = Math.r
3
3
  let t = e;
4
4
  const r = 2147483648, n = 1103515245, s = 12345;
5
5
  return () => (t = (n * t + s) % r, t / (r - 1));
6
- }, I = (e, t, r) => Math.max(t, Math.min(e, r)), T = (e) => typeof e == "number", x = (e, t) => e.reduce((r, n, s) => {
6
+ }, I = (e, t, r) => Math.max(t, Math.min(e, r)), T = (e) => typeof e == "number", $ = (e, t) => e.reduce((r, n, s) => {
7
7
  const o = Math.floor(s / t);
8
8
  return (r[o] || (r[o] = [])).push(n), r;
9
- }, []), E = (e, t) => e.reduce(
9
+ }, []), x = (e, t) => e.reduce(
10
10
  (r, n) => ((r[t(n)] = r[t(n)] || []).push(n), r),
11
11
  {}
12
- ), $ = (e, t) => e.reduce((r, n) => r.find(([s]) => s === t(n)) ? r.map(([s, o]) => [
12
+ ), A = (e, t) => e.reduce((r, n) => r.find(([s]) => s === t(n)) ? r.map(([s, o]) => [
13
13
  s,
14
14
  s === t(n) ? o + 1 : o
15
- ]) : [...r, [t(n), 1]], []), O = (e, t) => [...e].sort((r, n) => t(r) < t(n) ? -1 : t(r) > t(n) ? 1 : 0), A = (e, t, r = (n) => n) => e.filter((n) => t.some((s) => r(s) === r(n))), C = (e, t, r = (n) => n) => e.filter((n) => !t.some((s) => r(s) === r(n))), P = (e, t) => [...new Set(e.map((r) => t(r)))], H = (e, t) => e.filter(
15
+ ]) : [...r, [t(n), 1]], []), C = (e, t) => [...e].sort((r, n) => t(r) < t(n) ? -1 : t(r) > t(n) ? 1 : 0), E = (e, t, r = (n) => n) => e.filter((n) => t.some((s) => r(s) === r(n))), O = (e, t, r = (n) => n) => e.filter((n) => !t.some((s) => r(s) === r(n))), P = (e, t) => [...new Set(e.map((r) => t(r)))], H = (e, t) => e.filter(
16
16
  (r, n, s) => n === s.findIndex((o) => t(o) === t(r))
17
17
  ), W = (e) => {
18
18
  for (let t = e.length - 1; t > 0; t--) {
@@ -23,7 +23,7 @@ const w = (e) => new Intl.NumberFormat("de-DE").format(e), h = (e, t, r = Math.r
23
23
  }, B = (e) => e.filter((t) => t != null), R = (e, t, r) => [
24
24
  ...e,
25
25
  ...m(t, r)
26
- ], F = (e, t, r) => [...m(t, r), ...e], N = (e, t, r) => [...e, ...p(t, r)], m = (e, t) => t ? [e] : [], p = (e, t) => t ? e : [], M = (e) => e[h(0, e.length)], z = (e, t) => Array.from({
26
+ ], z = (e, t, r) => [...m(t, r), ...e], F = (e, t, r) => [...e, ...p(t, r)], m = (e, t) => t ? [e] : [], p = (e, t) => t ? e : [], M = (e) => e[h(0, e.length)], N = (e, t) => Array.from({
27
27
  length: t
28
28
  }).map(() => M(e)).reduce(
29
29
  (r, n) => ({ ...r, [n]: (r[n] ?? 0) + 1 }),
@@ -36,7 +36,7 @@ const w = (e) => new Intl.NumberFormat("de-DE").format(e), h = (e, t, r = Math.r
36
36
  for (let o = e; r > 0 ? o < t : o > t; o += r)
37
37
  s.push(o);
38
38
  return s;
39
- }, U = (e) => Object.fromEntries(e), _ = " ", g = " ", G = (e, t = "") => e.split(t).join(_), k = (e, t = "") => e.split(t).join(g), J = (e, t) => e.length > t ? e.slice(0, t - 3) + "..." : e, j = (e) => e && e[0].toUpperCase() + e.slice(1), f = (e) => e.split(" ").map(j).join(" "), K = (e) => /^\d+$/.test(e), Q = (e) => e !== Math.round(e) || e < 1 || e === 1 / 0 || e === -1 / 0 ? null : e === 1 ? "1er" : `${e}ème`, V = (e) => e.trim().replace(/\s+/gi, " "), X = (e) => {
39
+ }, U = (e) => Object.fromEntries(e), g = " ", _ = " ", Z = (e, t = "") => e.split(t).join(g), k = (e, t = "") => e.split(t).join(_), G = (e, t) => e.length > t ? e.slice(0, t - 3) + "..." : e, j = (e) => e && e[0].toUpperCase() + e.slice(1), f = (e) => e.split(" ").map(j).join(" "), J = (e) => /^\d+$/.test(e), K = (e) => e !== Math.round(e) || e < 1 || e === 1 / 0 || e === -1 / 0 ? null : e === 1 ? "1er" : `${e}ème`, Q = (e) => e.trim().replace(/\s+/gi, " "), V = (e) => {
40
40
  const t = e.split(" "), n = ((s) => {
41
41
  let o = 1 / 0;
42
42
  for (let i = 0; i < s.length; i++) {
@@ -57,10 +57,10 @@ const w = (e) => new Intl.NumberFormat("de-DE").format(e), h = (e, t, r = Math.r
57
57
  (r, n) => n.toUpperCase()
58
58
  );
59
59
  return `${t.charAt(0).toLowerCase()}${t.slice(1)}`;
60
- }, Z = (e) => {
60
+ }, X = (e) => {
61
61
  const t = v(e);
62
62
  return `${t.charAt(0).toUpperCase()}${t.slice(1)}`;
63
- }, ee = (e) => e != null, te = (e) => D(e) ? /^[\],:{}\s]*$/.test(
63
+ }, ee = (e) => e.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[^a-zA-Z0-9]+/g, "-").toLowerCase().replace(/^-+|-+$/g, ""), te = (e) => e != null, re = (e) => D(e) ? /^[\],:{}\s]*$/.test(
64
64
  e.replace(/\\["\\\/bfnrtu]/g, "@").replace(
65
65
  /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
66
66
  "]"
@@ -78,7 +78,7 @@ const w = (e) => new Intl.NumberFormat("de-DE").format(e), h = (e, t, r = Math.r
78
78
  /^oct/i,
79
79
  /^nov/i,
80
80
  /^déc/i
81
- ], S = {
81
+ ], b = {
82
82
  months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split(
83
83
  "_"
84
84
  ),
@@ -149,13 +149,13 @@ const w = (e) => new Intl.NumberFormat("de-DE").format(e), h = (e, t, r = Math.r
149
149
  doy: 4
150
150
  }
151
151
  };
152
- u.locale("fr", S);
153
- const re = (e) => new Date(e).toString() !== "Invalid Date", ne = (e, t) => Math.abs(
152
+ u.locale("fr", b);
153
+ const ne = (e) => new Date(e).toString() !== "Invalid Date", se = (e, t) => Math.abs(
154
154
  Math.ceil((t.getTime() - e.getTime()) / (1e3 * 60 * 60 * 24))
155
- ), se = (e) => f(u(e).format("DD MMMM YYYY")), oe = (e) => f(u(e).format("dddd DD MMMM YYYY")), ie = (e, t, r = !0) => (r ? e.getFullYear() === t.getFullYear() : !0) && e.getMonth() === t.getMonth() && e.getDate() === t.getDate(), ae = () => u().locale("fr").subtract(1, "days").toDate(), ue = (e) => /* @__PURE__ */ new Date() > e, ce = (e = /* @__PURE__ */ new Date(), t = 1) => {
155
+ ), oe = (e) => f(u(e).format("DD MMMM YYYY")), ie = (e) => f(u(e).format("dddd DD MMMM YYYY")), ae = (e, t, r = !0) => (r ? e.getFullYear() === t.getFullYear() : !0) && e.getMonth() === t.getMonth() && e.getDate() === t.getDate(), ue = () => u().locale("fr").subtract(1, "days").toDate(), ce = (e) => /* @__PURE__ */ new Date() > e, le = (e = /* @__PURE__ */ new Date(), t = 1) => {
156
156
  const r = t * 60 * 1e3;
157
157
  return new Date(Math.round(e.getTime() / r) * r);
158
- }, le = (e) => {
158
+ }, de = (e) => {
159
159
  const t = [], r = u.duration(e);
160
160
  if (!(!r || r.toISOString() === "P0D")) {
161
161
  if (r.years() >= 1) {
@@ -184,7 +184,7 @@ const re = (e) => new Date(e).toString() !== "Invalid Date", ne = (e, t) => Math
184
184
  }
185
185
  return t.join(", ");
186
186
  }
187
- }, l = /^([1-9][0-9]?)([hmd])$/i, de = (e) => !!e && l.test(e), me = (e) => {
187
+ }, l = /^([1-9][0-9]?)([hmd])$/i, me = (e) => !!e && l.test(e), fe = (e) => {
188
188
  const t = l.exec(e);
189
189
  if (!t)
190
190
  return null;
@@ -192,7 +192,7 @@ const re = (e) => new Date(e).toString() !== "Invalid Date", ne = (e, t) => Math
192
192
  if (n === "m") return o * s;
193
193
  if (n === "h") return o * 60 * s;
194
194
  if (n === "d") return o * 60 * 24 * s;
195
- }, fe = (e) => {
195
+ }, he = (e) => {
196
196
  const t = l.exec(e);
197
197
  if (!t)
198
198
  return null;
@@ -200,76 +200,77 @@ const re = (e) => new Date(e).toString() !== "Invalid Date", ne = (e, t) => Math
200
200
  if (n === "m") return `${s} minute${s > 1 ? "s" : ""}`;
201
201
  if (n === "h") return `${s} heure${s > 1 ? "s" : ""}`;
202
202
  if (n === "d") return `${s} jour${s > 1 ? "s" : ""}`;
203
- }, he = (e) => typeof e == "function", pe = (e, t, r) => {
203
+ }, pe = (e) => typeof e == "function", Me = (e, t, r) => {
204
204
  const n = { ...e }, s = Object.entries(e);
205
205
  for (const [o, i] of s) {
206
206
  const a = t[o];
207
207
  a ? n[o] = r(i, a) : n[o] = i;
208
208
  }
209
209
  return n;
210
- }, Me = (e) => e instanceof Object, _e = (e, t) => t.reduce(
210
+ }, ge = (e) => e instanceof Object, _e = (e, t) => t.reduce(
211
211
  (r, n) => ({
212
212
  ...r,
213
213
  [n]: e[n]
214
214
  }),
215
215
  {}
216
- ), ge = (e) => Object.entries(e);
216
+ ), je = (e) => Object.entries(e);
217
217
  export {
218
- _ as TIGHT_SPACE,
219
- g as WIDE_SPACE,
218
+ g as TIGHT_SPACE,
219
+ _ as WIDE_SPACE,
220
220
  U as arrayToRecord,
221
- X as breakWords,
221
+ V as breakWords,
222
222
  v as camelcase,
223
223
  j as capitalize,
224
224
  f as capitalizeAllWords,
225
225
  I as clamp,
226
- ne as dateDiff,
227
- me as durationToMs,
228
- J as ellipsis,
229
- C as exclude,
230
- G as fillWithTightSpaces,
226
+ se as dateDiff,
227
+ fe as durationToMs,
228
+ G as ellipsis,
229
+ O as exclude,
230
+ Z as fillWithTightSpaces,
231
231
  k as fillWithWideSpaces,
232
232
  _e as filterKeys,
233
233
  B as filterNullAndUndefined,
234
- se as formatDate,
235
- oe as formatDateWithDay,
236
- fe as formatDuration,
234
+ oe as formatDate,
235
+ ie as formatDateWithDay,
236
+ he as formatDuration,
237
237
  w as formatNumber,
238
- E as groupBy,
239
- $ as groupByOccurrence,
240
- ue as hasExpire,
241
- N as includeArrayIf,
242
- F as includeBeginIf,
238
+ x as groupBy,
239
+ A as groupByOccurrence,
240
+ ce as hasExpire,
241
+ F as includeArrayIf,
242
+ z as includeBeginIf,
243
243
  R as includeIf,
244
244
  p as insertArrayIf,
245
245
  m as insertIf,
246
- ee as isDefined,
247
- de as isDuration,
248
- he as isFunction,
249
- te as isJSON,
246
+ te as isDefined,
247
+ me as isDuration,
248
+ pe as isFunction,
249
+ re as isJSON,
250
250
  T as isNumber,
251
- Me as isObject,
252
- K as isPositiveInteger,
251
+ ge as isObject,
252
+ J as isPositiveInteger,
253
253
  D as isString,
254
- re as isValidDate,
255
- pe as mergeObjects,
256
- A as mutuallyInclusive,
257
- Q as numberToOrdinal,
258
- x as paginate,
259
- Z as pascalCase,
254
+ ne as isValidDate,
255
+ ee as kebabCase,
256
+ Me as mergeObjects,
257
+ E as mutuallyInclusive,
258
+ K as numberToOrdinal,
259
+ $ as paginate,
260
+ X as pascalCase,
260
261
  M as pickFrom,
261
- z as pickFromNth,
262
- le as precise,
262
+ N as pickFromNth,
263
+ de as precise,
263
264
  h as randomBetween,
264
265
  q as range,
265
- ge as recordToArray,
266
- ce as roundDate,
267
- ie as sameDay,
266
+ je as recordToArray,
267
+ le as roundDate,
268
+ ae as sameDay,
268
269
  L as seededRandom,
269
270
  W as shuffle,
270
- O as sortBy,
271
- V as trim,
271
+ C as sortBy,
272
+ Q as trim,
272
273
  P as unique,
273
274
  H as uniquePreserve,
274
- ae as yesterday
275
+ ue as yesterday
275
276
  };
@@ -1 +1 @@
1
- (function(i,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("moment")):typeof define=="function"&&define.amd?define(["exports","moment"],o):(i=typeof globalThis<"u"?globalThis:i||self,o(i.utils={},i.moment))})(this,function(i,o){"use strict";const b=e=>new Intl.NumberFormat("de-DE").format(e),h=(e,t,n=Math.random)=>Math.floor(n()*(t-e)+e),p=e=>{let t=e;const n=2147483648,r=1103515245,s=12345;return()=>(t=(r*t+s)%n,t/(n-1))},T=(e,t,n)=>Math.max(t,Math.min(e,n)),I=e=>typeof e=="number",Y=(e,t)=>e.reduce((n,r,s)=>{const a=Math.floor(s/t);return(n[a]||(n[a]=[])).push(r),n},[]),w=(e,t)=>e.reduce((n,r)=>((n[t(r)]=n[t(r)]||[]).push(r),n),{}),A=(e,t)=>e.reduce((n,r)=>n.find(([s])=>s===t(r))?n.map(([s,a])=>[s,s===t(r)?a+1:a]):[...n,[t(r),1]],[]),L=(e,t)=>[...e].sort((n,r)=>t(n)<t(r)?-1:t(n)>t(r)?1:0),O=(e,t,n=r=>r)=>e.filter(r=>t.some(s=>n(s)===n(r))),E=(e,t,n=r=>r)=>e.filter(r=>!t.some(s=>n(s)===n(r))),W=(e,t)=>[...new Set(e.map(n=>t(n)))],P=(e,t)=>e.filter((n,r,s)=>r===s.findIndex(a=>t(a)===t(n))),C=e=>{for(let t=e.length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e},B=e=>e.filter(t=>t!=null),$=(e,t,n)=>[...e,...l(t,n)],H=(e,t,n)=>[...l(t,n),...e],N=(e,t,n)=>[...e,...g(t,n)],l=(e,t)=>t?[e]:[],g=(e,t)=>t?e:[],M=e=>e[h(0,e.length)],F=(e,t)=>Array.from({length:t}).map(()=>M(e)).reduce((n,r)=>({...n,[r]:(n[r]??0)+1}),{}),R=({start:e=0,stop:t,step:n=1})=>{if(n===0)throw new RangeError("step cannot be equal to 0");if(n>0&&e>=t||n<0&&e<=t)return[];const s=[];for(let a=e;n>0?a<t:a>t;a+=n)s.push(a);return s},q=e=>Object.fromEntries(e),D=" ",_=" ",z=(e,t="")=>e.split(t).join(D),U=(e,t="")=>e.split(t).join(_),k=(e,t)=>e.length>t?e.slice(0,t-3)+"...":e,j=e=>e&&e[0].toUpperCase()+e.slice(1),d=e=>e.split(" ").map(j).join(" "),G=e=>/^\d+$/.test(e),J=e=>e!==Math.round(e)||e<1||e===1/0||e===-1/0?null:e===1?"1er":`${e}ème`,K=e=>e.trim().replace(/\s+/gi," "),V=e=>{const t=e.split(" "),r=(s=>{let a=1/0;for(let u=0;u<s.length;u++){const c=Math.abs(s.slice(0,u+1).join(" ").length-s.slice(u+1).join(" ").length);if(c<=a)a=c;else return u-1}return a})(t);return t.length===1?[t[0]]:[t.slice(0,r+1),t.slice(r+1)].map(s=>s.join(" "))},y=e=>typeof e=="string",v=e=>{const t=e.replace(/[^a-zA-Z0-9]+(.)/g,(n,r)=>r.toUpperCase());return`${t.charAt(0).toLowerCase()}${t.slice(1)}`},Q=e=>{const t=v(e);return`${t.charAt(0).toUpperCase()}${t.slice(1)}`},X=e=>e!=null,Z=e=>y(e)?/^[\],:{}\s]*$/.test(e.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")):!1,x=/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,ee=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,S=/(janv\.?|févr\.?|avr\.?|juil\.?|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,m=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i],te={months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:S,monthsShortRegex:S,monthsStrictRegex:x,monthsShortStrictRegex:ee,monthsParse:m,longMonthsParse:m,shortMonthsParse:m,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",w:"une semaine",ww:"%d semaines",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:(e,t)=>{switch(t){case"D":return e+(e===1?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(e===1?"er":"e");case"w":case"W":return e+(e===1?"re":"e")}},week:{dow:1,doy:4}};o.locale("fr",te);const ne=e=>new Date(e).toString()!=="Invalid Date",re=(e,t)=>Math.abs(Math.ceil((t.getTime()-e.getTime())/(1e3*60*60*24))),ie=e=>d(o(e).format("DD MMMM YYYY")),se=e=>d(o(e).format("dddd DD MMMM YYYY")),ae=(e,t,n=!0)=>(n?e.getFullYear()===t.getFullYear():!0)&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),oe=()=>o().locale("fr").subtract(1,"days").toDate(),ue=e=>new Date>e,ce=(e=new Date,t=1)=>{const n=t*60*1e3;return new Date(Math.round(e.getTime()/n)*n)},le=e=>{const t=[],n=o.duration(e);if(!(!n||n.toISOString()==="P0D")){if(n.years()>=1){const r=Math.floor(n.years());t.push(r+" "+(r>1?"années":"année"))}if(n.months()>=1){const r=Math.floor(n.months());t.push(r+" mois")}if(n.days()>=1){const r=Math.floor(n.days());t.push(r+" "+(r>1?"jours":"jour"))}if(n.hours()>=1){const r=Math.floor(n.hours());t.push(r+" "+(r>1?"heures":"heure"))}if(n.minutes()>=1){const r=Math.floor(n.minutes());t.push(r+" "+(r>1?"minutes":"minute"))}if(n.seconds()>=1){const r=Math.floor(n.seconds());t.push(r+" "+(r>1?"secondes":"seconde"))}return t.join(", ")}},f=/^([1-9][0-9]?)([hmd])$/i,de=e=>!!e&&f.test(e),me=e=>{const t=f.exec(e);if(!t)return null;const[,n,r]=t,s=parseInt(n,10),a=1e3*60;if(r==="m")return a*s;if(r==="h")return a*60*s;if(r==="d")return a*60*24*s},fe=e=>{const t=f.exec(e);if(!t)return null;const[,n,r]=t,s=parseInt(n,10);if(r==="m")return`${s} minute${s>1?"s":""}`;if(r==="h")return`${s} heure${s>1?"s":""}`;if(r==="d")return`${s} jour${s>1?"s":""}`},he=e=>typeof e=="function",ge=(e,t,n)=>{const r={...e},s=Object.entries(e);for(const[a,u]of s){const c=t[a];c?r[a]=n(u,c):r[a]=u}return r},Me=e=>e instanceof Object,De=(e,t)=>t.reduce((n,r)=>({...n,[r]:e[r]}),{}),_e=e=>Object.entries(e);i.TIGHT_SPACE=D,i.WIDE_SPACE=_,i.arrayToRecord=q,i.breakWords=V,i.camelcase=v,i.capitalize=j,i.capitalizeAllWords=d,i.clamp=T,i.dateDiff=re,i.durationToMs=me,i.ellipsis=k,i.exclude=E,i.fillWithTightSpaces=z,i.fillWithWideSpaces=U,i.filterKeys=De,i.filterNullAndUndefined=B,i.formatDate=ie,i.formatDateWithDay=se,i.formatDuration=fe,i.formatNumber=b,i.groupBy=w,i.groupByOccurrence=A,i.hasExpire=ue,i.includeArrayIf=N,i.includeBeginIf=H,i.includeIf=$,i.insertArrayIf=g,i.insertIf=l,i.isDefined=X,i.isDuration=de,i.isFunction=he,i.isJSON=Z,i.isNumber=I,i.isObject=Me,i.isPositiveInteger=G,i.isString=y,i.isValidDate=ne,i.mergeObjects=ge,i.mutuallyInclusive=O,i.numberToOrdinal=J,i.paginate=Y,i.pascalCase=Q,i.pickFrom=M,i.pickFromNth=F,i.precise=le,i.randomBetween=h,i.range=R,i.recordToArray=_e,i.roundDate=ce,i.sameDay=ae,i.seededRandom=p,i.shuffle=C,i.sortBy=L,i.trim=K,i.unique=W,i.uniquePreserve=P,i.yesterday=oe,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
1
+ (function(i,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("moment")):typeof define=="function"&&define.amd?define(["exports","moment"],o):(i=typeof globalThis<"u"?globalThis:i||self,o(i.utils={},i.moment))})(this,function(i,o){"use strict";const S=e=>new Intl.NumberFormat("de-DE").format(e),h=(e,t,n=Math.random)=>Math.floor(n()*(t-e)+e),p=e=>{let t=e;const n=2147483648,r=1103515245,s=12345;return()=>(t=(r*t+s)%n,t/(n-1))},T=(e,t,n)=>Math.max(t,Math.min(e,n)),I=e=>typeof e=="number",Y=(e,t)=>e.reduce((n,r,s)=>{const a=Math.floor(s/t);return(n[a]||(n[a]=[])).push(r),n},[]),w=(e,t)=>e.reduce((n,r)=>((n[t(r)]=n[t(r)]||[]).push(r),n),{}),A=(e,t)=>e.reduce((n,r)=>n.find(([s])=>s===t(r))?n.map(([s,a])=>[s,s===t(r)?a+1:a]):[...n,[t(r),1]],[]),L=(e,t)=>[...e].sort((n,r)=>t(n)<t(r)?-1:t(n)>t(r)?1:0),O=(e,t,n=r=>r)=>e.filter(r=>t.some(s=>n(s)===n(r))),C=(e,t,n=r=>r)=>e.filter(r=>!t.some(s=>n(s)===n(r))),E=(e,t)=>[...new Set(e.map(n=>t(n)))],W=(e,t)=>e.filter((n,r,s)=>r===s.findIndex(a=>t(a)===t(n))),$=e=>{for(let t=e.length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1));[e[t],e[n]]=[e[n],e[t]]}return e},P=e=>e.filter(t=>t!=null),B=(e,t,n)=>[...e,...l(t,n)],H=(e,t,n)=>[...l(t,n),...e],N=(e,t,n)=>[...e,...g(t,n)],l=(e,t)=>t?[e]:[],g=(e,t)=>t?e:[],M=e=>e[h(0,e.length)],F=(e,t)=>Array.from({length:t}).map(()=>M(e)).reduce((n,r)=>({...n,[r]:(n[r]??0)+1}),{}),R=({start:e=0,stop:t,step:n=1})=>{if(n===0)throw new RangeError("step cannot be equal to 0");if(n>0&&e>=t||n<0&&e<=t)return[];const s=[];for(let a=e;n>0?a<t:a>t;a+=n)s.push(a);return s},z=e=>Object.fromEntries(e),D=" ",_=" ",q=(e,t="")=>e.split(t).join(D),k=(e,t="")=>e.split(t).join(_),U=(e,t)=>e.length>t?e.slice(0,t-3)+"...":e,j=e=>e&&e[0].toUpperCase()+e.slice(1),d=e=>e.split(" ").map(j).join(" "),G=e=>/^\d+$/.test(e),Z=e=>e!==Math.round(e)||e<1||e===1/0||e===-1/0?null:e===1?"1er":`${e}ème`,J=e=>e.trim().replace(/\s+/gi," "),K=e=>{const t=e.split(" "),r=(s=>{let a=1/0;for(let u=0;u<s.length;u++){const c=Math.abs(s.slice(0,u+1).join(" ").length-s.slice(u+1).join(" ").length);if(c<=a)a=c;else return u-1}return a})(t);return t.length===1?[t[0]]:[t.slice(0,r+1),t.slice(r+1)].map(s=>s.join(" "))},y=e=>typeof e=="string",v=e=>{const t=e.replace(/[^a-zA-Z0-9]+(.)/g,(n,r)=>r.toUpperCase());return`${t.charAt(0).toLowerCase()}${t.slice(1)}`},V=e=>{const t=v(e);return`${t.charAt(0).toUpperCase()}${t.slice(1)}`},Q=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[^a-zA-Z0-9]+/g,"-").toLowerCase().replace(/^-+|-+$/g,""),X=e=>e!=null,x=e=>y(e)?/^[\],:{}\s]*$/.test(e.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")):!1,ee=/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,te=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,b=/(janv\.?|févr\.?|avr\.?|juil\.?|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,m=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i],ne={months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:b,monthsShortRegex:b,monthsStrictRegex:ee,monthsShortStrictRegex:te,monthsParse:m,longMonthsParse:m,shortMonthsParse:m,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",w:"une semaine",ww:"%d semaines",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:(e,t)=>{switch(t){case"D":return e+(e===1?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(e===1?"er":"e");case"w":case"W":return e+(e===1?"re":"e")}},week:{dow:1,doy:4}};o.locale("fr",ne);const re=e=>new Date(e).toString()!=="Invalid Date",ie=(e,t)=>Math.abs(Math.ceil((t.getTime()-e.getTime())/(1e3*60*60*24))),se=e=>d(o(e).format("DD MMMM YYYY")),ae=e=>d(o(e).format("dddd DD MMMM YYYY")),oe=(e,t,n=!0)=>(n?e.getFullYear()===t.getFullYear():!0)&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),ue=()=>o().locale("fr").subtract(1,"days").toDate(),ce=e=>new Date>e,le=(e=new Date,t=1)=>{const n=t*60*1e3;return new Date(Math.round(e.getTime()/n)*n)},de=e=>{const t=[],n=o.duration(e);if(!(!n||n.toISOString()==="P0D")){if(n.years()>=1){const r=Math.floor(n.years());t.push(r+" "+(r>1?"années":"année"))}if(n.months()>=1){const r=Math.floor(n.months());t.push(r+" mois")}if(n.days()>=1){const r=Math.floor(n.days());t.push(r+" "+(r>1?"jours":"jour"))}if(n.hours()>=1){const r=Math.floor(n.hours());t.push(r+" "+(r>1?"heures":"heure"))}if(n.minutes()>=1){const r=Math.floor(n.minutes());t.push(r+" "+(r>1?"minutes":"minute"))}if(n.seconds()>=1){const r=Math.floor(n.seconds());t.push(r+" "+(r>1?"secondes":"seconde"))}return t.join(", ")}},f=/^([1-9][0-9]?)([hmd])$/i,me=e=>!!e&&f.test(e),fe=e=>{const t=f.exec(e);if(!t)return null;const[,n,r]=t,s=parseInt(n,10),a=1e3*60;if(r==="m")return a*s;if(r==="h")return a*60*s;if(r==="d")return a*60*24*s},he=e=>{const t=f.exec(e);if(!t)return null;const[,n,r]=t,s=parseInt(n,10);if(r==="m")return`${s} minute${s>1?"s":""}`;if(r==="h")return`${s} heure${s>1?"s":""}`;if(r==="d")return`${s} jour${s>1?"s":""}`},ge=e=>typeof e=="function",Me=(e,t,n)=>{const r={...e},s=Object.entries(e);for(const[a,u]of s){const c=t[a];c?r[a]=n(u,c):r[a]=u}return r},De=e=>e instanceof Object,_e=(e,t)=>t.reduce((n,r)=>({...n,[r]:e[r]}),{}),je=e=>Object.entries(e);i.TIGHT_SPACE=D,i.WIDE_SPACE=_,i.arrayToRecord=z,i.breakWords=K,i.camelcase=v,i.capitalize=j,i.capitalizeAllWords=d,i.clamp=T,i.dateDiff=ie,i.durationToMs=fe,i.ellipsis=U,i.exclude=C,i.fillWithTightSpaces=q,i.fillWithWideSpaces=k,i.filterKeys=_e,i.filterNullAndUndefined=P,i.formatDate=se,i.formatDateWithDay=ae,i.formatDuration=he,i.formatNumber=S,i.groupBy=w,i.groupByOccurrence=A,i.hasExpire=ce,i.includeArrayIf=N,i.includeBeginIf=H,i.includeIf=B,i.insertArrayIf=g,i.insertIf=l,i.isDefined=X,i.isDuration=me,i.isFunction=ge,i.isJSON=x,i.isNumber=I,i.isObject=De,i.isPositiveInteger=G,i.isString=y,i.isValidDate=re,i.kebabCase=Q,i.mergeObjects=Me,i.mutuallyInclusive=O,i.numberToOrdinal=Z,i.paginate=Y,i.pascalCase=V,i.pickFrom=M,i.pickFromNth=F,i.precise=de,i.randomBetween=h,i.range=R,i.recordToArray=je,i.roundDate=le,i.sameDay=oe,i.seededRandom=p,i.shuffle=$,i.sortBy=L,i.trim=J,i.unique=E,i.uniquePreserve=W,i.yesterday=ue,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
package/dist/string.d.ts CHANGED
@@ -12,3 +12,4 @@ export declare const breakWords: (str: string) => string[];
12
12
  export declare const isString: (str: unknown) => str is string;
13
13
  export declare const camelcase: (str: string) => string;
14
14
  export declare const pascalCase: (str: string) => string;
15
+ export declare const kebabCase: (str: string) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opfr/utils-lang",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "private": false,
5
5
  "description": "OPFR utils-lang",
6
6
  "author": "Matthieu VEIGA",
@@ -35,5 +35,5 @@
35
35
  "node_modules",
36
36
  "dist"
37
37
  ],
38
- "gitHead": "55f31b797ae4148d45f6a5ac7b0713984607af53"
38
+ "gitHead": "359429d99bd44b596f1f3fbf7ae5845459c502d5"
39
39
  }