nhb-toolbox 4.23.24 → 4.24.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/CHANGELOG.md +9 -1
- package/dist/cjs/colors/random.js +16 -0
- package/dist/cjs/date/Chronos.js +6 -6
- package/dist/cjs/index.js +8 -6
- package/dist/dts/colors/random.d.ts +32 -2
- package/dist/dts/colors/types.d.ts +11 -0
- package/dist/dts/converter/Converter.d.ts +1 -1
- package/dist/dts/date/Chronos.d.ts +5 -11
- package/dist/dts/index.d.ts +1 -1
- package/dist/esm/colors/random.js +16 -1
- package/dist/esm/date/Chronos.js +6 -6
- package/dist/esm/index.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,14 @@ All notable changes to the package will be documented here.
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [4.24.0] - 2025-10-30
|
|
10
|
+
|
|
11
|
+
- **Added** new color utility `generateRandomColor` with alias `getRandomColor` and **deprecated** `generateRandomColorInHexRGB`.
|
|
12
|
+
|
|
13
|
+
## [4.23.25] - 2025-10-27
|
|
14
|
+
|
|
15
|
+
- **Updated** tsdoc for `Chronos` *constructor* and **optimized** *internal logic* for some *checker methods*.
|
|
16
|
+
|
|
9
17
|
## [4.23.24] - 2025-10-26
|
|
10
18
|
|
|
11
19
|
- **Fixed** *pluralization issue* with ***suffixed*** `'-foot' --> '-feet'` for *format methods* in *converter classes*.
|
|
@@ -13,7 +21,7 @@ All notable changes to the package will be documented here.
|
|
|
13
21
|
## [4.23.23] - 2025-10-26
|
|
14
22
|
|
|
15
23
|
- **Fixed** *pluralization issue* with `'foot' --> 'feet'` for *format methods* in *converter classes*.
|
|
16
|
-
- **
|
|
24
|
+
- **Exported** `GENERAL_UNITS` (used in `Unit` class) and `CATEGORIZED_UNITS` (used in `Converter` classes) from `'nhb-toolbox/constants'`.
|
|
17
25
|
|
|
18
26
|
## [4.23.21] - 2025-10-25
|
|
19
27
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateRandomColorInHexRGB = exports.generateRandomHSLColor = void 0;
|
|
4
|
+
exports.generateRandomColor = generateRandomColor;
|
|
4
5
|
const convert_1 = require("./convert");
|
|
5
6
|
const helpers_1 = require("./helpers");
|
|
7
|
+
const utils_1 = require("./utils");
|
|
6
8
|
const generatedColors = new Set();
|
|
7
9
|
const recentColors = [];
|
|
8
10
|
const generateRandomHSLColor = (maxColors = 16) => {
|
|
@@ -22,3 +24,17 @@ const generateRandomColorInHexRGB = (maxColors = 16) => {
|
|
|
22
24
|
return (0, convert_1.convertColorCode)((0, exports.generateRandomHSLColor)(maxColors));
|
|
23
25
|
};
|
|
24
26
|
exports.generateRandomColorInHexRGB = generateRandomColorInHexRGB;
|
|
27
|
+
function generateRandomColor(options) {
|
|
28
|
+
const { colorType = 'hex', maxColors = 16 } = options ?? {};
|
|
29
|
+
const hsl = (0, exports.generateRandomHSLColor)(maxColors);
|
|
30
|
+
const hslValues = (0, utils_1.extractSolidColorValues)(hsl);
|
|
31
|
+
switch (colorType) {
|
|
32
|
+
case 'hsl':
|
|
33
|
+
return hsl;
|
|
34
|
+
case 'rgb':
|
|
35
|
+
return (0, convert_1.convertHslToRgb)(...hslValues);
|
|
36
|
+
case 'hex':
|
|
37
|
+
default:
|
|
38
|
+
return (0, convert_1.convertHslToHex)(...hslValues);
|
|
39
|
+
}
|
|
40
|
+
}
|
package/dist/cjs/date/Chronos.js
CHANGED
|
@@ -393,18 +393,18 @@ class Chronos {
|
|
|
393
393
|
}
|
|
394
394
|
isSame(other, unit, weekStartsOn = 0) {
|
|
395
395
|
const time = other instanceof _a ? other : new _a(other);
|
|
396
|
-
return (this.startOf(unit, weekStartsOn).
|
|
397
|
-
time.startOf(unit, weekStartsOn).
|
|
396
|
+
return (this.startOf(unit, weekStartsOn).timestamp ===
|
|
397
|
+
time.startOf(unit, weekStartsOn).timestamp);
|
|
398
398
|
}
|
|
399
399
|
isBefore(other, unit, weekStartsOn = 0) {
|
|
400
400
|
const time = other instanceof _a ? other : new _a(other);
|
|
401
|
-
return (this.startOf(unit, weekStartsOn).
|
|
402
|
-
time.startOf(unit, weekStartsOn).
|
|
401
|
+
return (this.startOf(unit, weekStartsOn).timestamp <
|
|
402
|
+
time.startOf(unit, weekStartsOn).timestamp);
|
|
403
403
|
}
|
|
404
404
|
isAfter(other, unit, weekStartsOn = 0) {
|
|
405
405
|
const time = other instanceof _a ? other : new _a(other);
|
|
406
|
-
return (this.startOf(unit, weekStartsOn).
|
|
407
|
-
time.startOf(unit, weekStartsOn).
|
|
406
|
+
return (this.startOf(unit, weekStartsOn).timestamp >
|
|
407
|
+
time.startOf(unit, weekStartsOn).timestamp);
|
|
408
408
|
}
|
|
409
409
|
isSameOrBefore(other, unit, weekStartsOn = 0) {
|
|
410
410
|
return (this.isSame(other, unit, weekStartsOn) || this.isBefore(other, unit, weekStartsOn));
|
package/dist/cjs/index.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertToDecimal = exports.calculateLCM = exports.calculateLCD = exports.calculateHCF = exports.calculateGCD = exports.calculateFactorial = exports.calculateAverage = exports.verbalizer = exports.Verbalizer = exports.pluralizer = exports.Pluralizer = exports.VolumeConverter = exports.TimeConverter = exports.TemperatureConverter = exports.MassConverter = exports.LengthConverter = exports.DataConverter = exports.converter = exports.Converter = exports.AreaConverter = exports.wordCount = exports.parseNumbersFromText = exports.levenshteinDistance = exports.getLevenshteinDistance = exports.extractNumbersFromString = exports.extractNumbers = exports.countWordsInString = exports.countWords = exports.slugifyString = exports.reverseString = exports.replaceAllInString = exports.normalizeString = exports.maskString = exports.formatWithPlural = exports.formatUnitWithPlural = exports.formatNumberWithPluralUnit = exports.extractURLs = exports.extractEmails = exports.convertStringCase = exports.isSnakeCase = exports.isPascalCase = exports.isPalindrome = exports.isKebabCase = exports.isEmojiOnly = exports.isCamelCase = exports.generateAnagrams = exports.truncateString = exports.trimString = exports.generateRandomID = exports.capitalizeString = void 0;
|
|
4
4
|
exports.convertRomanToNumeric = exports.convertRomanToInteger = exports.convertRomanToArabic = exports.convertNumberToWordsOrdinal = exports.convertNumberToWords = exports.cardinalWordsToOrdinal = exports.arabicToRoman = exports.isPerfectSquare = exports.isPartOfFibonacciSeries = exports.isPartOfFibonacci = exports.isOddNumber = exports.isOdd = exports.isNumberInvalid = exports.isMultiple = exports.isInvalidNumber = exports.isFibonacci = exports.isEvenNumber = exports.isEven = exports.areNumbersInvalid = exports.areInvalidNumbers = exports.getNthFibonacci = exports.getMemoizedFibonacciSeries = exports.getMemoizedFibonacci = exports.getFibonacciSeriesMemo = exports.getFibonacciSeries = exports.getFibonacciNumbers = exports.getFibonacci = exports.generateFibonacci = exports.fibonacciGenerator = exports.calculatePercentage = exports.UnitConverter = exports.Unit = exports.Currency = exports.sumOfNumbers = exports.sumNumbers = exports.sumDigits = exports.roundToDecimal = exports.roundNumber = exports.reverseNumber = exports.getSumOfNumbers = exports.getRandomNumber = exports.getRandomInt = exports.getFactors = exports.getFactorial = exports.getDivisors = exports.getAverageOfNumbers = exports.getAverage = exports.factorsOf = exports.factorial = exports.convertToFixed = void 0;
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.httpStatus = void 0;
|
|
5
|
+
exports.convertRgbaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.getRandomColor = exports.generateRandomHSLColor = exports.generateRandomColorInHexRGB = exports.generateRandomColor = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = exports.numberToOrdinal = exports.normalizeNumber = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = exports.findPrimeNumbers = exports.wordToNumber = exports.wordsToNumber = exports.toRomanNumeral = exports.toRoman = exports.romanToNumeric = exports.romanToInteger = exports.romanToArabic = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.convertWordToNumber = exports.convertWordsToNumber = exports.convertToRomanNumerals = void 0;
|
|
6
|
+
exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = exports.getTimeFromMinutes = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.isDateLike = exports.greet = exports.getGreeting = exports.generateGreeting = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.Colour = exports.Color = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertRgbaToHsla = void 0;
|
|
7
|
+
exports.extractNewFields = exports.extractObjectKeysDeep = exports.extractObjectKeys = exports.extractKeysDeep = exports.extractKeys = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.splitArrayByProperty = exports.splitArray = exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.groupArrayByProperty = exports.getMissingElements = exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.Finder = exports.totalDeltaByField = exports.sumFieldDifference = exports.sumByField = exports.groupAndSumByField = exports.groupAndAvgByField = exports.groupAndAverageByField = exports.avgByField = exports.averageByField = exports.shuffleArray = void 0;
|
|
8
|
+
exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = exports.updateQueryParam = exports.queryStringToObject = exports.parseQueryStringLiteral = exports.parseQueryString = exports.literalQueryStringToObject = exports.getQueryStringAsObject = exports.getQueryParams = exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.removeObjectFields = exports.removeFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = exports.omitObjectFields = exports.omitFields = exports.deleteObjectFields = exports.deleteFields = exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedObjectValues = exports.parseObjectValues = exports.parseJsonToObject = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = void 0;
|
|
9
|
+
exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = exports.isDate = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNormalPrimitive = exports.isNonEmptyString = exports.isInteger = exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = void 0;
|
|
10
|
+
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.httpStatus = exports.HttpStatus = exports.isValidSet = void 0;
|
|
11
11
|
var basics_1 = require("./string/basics");
|
|
12
12
|
Object.defineProperty(exports, "capitalizeString", { enumerable: true, get: function () { return basics_1.capitalizeString; } });
|
|
13
13
|
Object.defineProperty(exports, "generateRandomID", { enumerable: true, get: function () { return basics_1.generateRandomID; } });
|
|
@@ -165,8 +165,10 @@ Object.defineProperty(exports, "getNumbersInRange", { enumerable: true, get: fun
|
|
|
165
165
|
var initials_1 = require("./colors/initials");
|
|
166
166
|
Object.defineProperty(exports, "getColorForInitial", { enumerable: true, get: function () { return initials_1.getColorForInitial; } });
|
|
167
167
|
var random_1 = require("./colors/random");
|
|
168
|
+
Object.defineProperty(exports, "generateRandomColor", { enumerable: true, get: function () { return random_1.generateRandomColor; } });
|
|
168
169
|
Object.defineProperty(exports, "generateRandomColorInHexRGB", { enumerable: true, get: function () { return random_1.generateRandomColorInHexRGB; } });
|
|
169
170
|
Object.defineProperty(exports, "generateRandomHSLColor", { enumerable: true, get: function () { return random_1.generateRandomHSLColor; } });
|
|
171
|
+
Object.defineProperty(exports, "getRandomColor", { enumerable: true, get: function () { return random_1.generateRandomColor; } });
|
|
170
172
|
var convert_3 = require("./colors/convert");
|
|
171
173
|
Object.defineProperty(exports, "convertColorCode", { enumerable: true, get: function () { return convert_3.convertColorCode; } });
|
|
172
174
|
Object.defineProperty(exports, "convertHex8ToHsla", { enumerable: true, get: function () { return convert_3.convertHex8ToHsla; } });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HSL, RandomHexRGB } from './types';
|
|
1
|
+
import type { $ColorType, HSL, RandomColor, RandomColorOptions, RandomHexRGB } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* * Utility to generate a unique random HSL color.
|
|
4
4
|
*
|
|
@@ -7,9 +7,39 @@ import type { HSL, RandomHexRGB } from './types';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const generateRandomHSLColor: (maxColors?: number) => HSL;
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* @deprecated For better performance and flexible use cases, please consider using {@link generateRandomColor}.
|
|
11
|
+
*
|
|
12
|
+
* * Utility to generate a unique random color in `Hex6` and `RGB` format.
|
|
11
13
|
*
|
|
12
14
|
* @param maxColors - The maximum number of recent colors to store in memory. Default is `16`.
|
|
13
15
|
* @returns An object of generated unique random color in both `Hex` and `RGB` formats.
|
|
14
16
|
*/
|
|
15
17
|
export declare const generateRandomColorInHexRGB: (maxColors?: number) => RandomHexRGB;
|
|
18
|
+
/**
|
|
19
|
+
* * Generates a random color in one of three formats: `Hex6`, `RGB`, or `HSL`.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* - If no `options` or `colorType` option is provided, the function defaults to returning a color in `Hex6` format.
|
|
23
|
+
* - The `colorType` option determines the return type:
|
|
24
|
+
* - `'hex'` → returns a `Hex6` string e.g. `'#34E2EF'`
|
|
25
|
+
* - `'rgb'` → returns an `RGB` string e.g. `'hsl(223, 96%, 53%)'`
|
|
26
|
+
* - `'hsl'` → returns an `HSL` string e.g. `'rgb(235, 159, 45)'`
|
|
27
|
+
* - The `maxColors` option controls how many recently generated colors are kept in memory to prevent repetition.
|
|
28
|
+
* By default, this value is `16`. Increasing it allows more unique color variations before repeating.
|
|
29
|
+
*
|
|
30
|
+
* @param options - Configuration options for random color generation, including `colorType` and `maxColors`.
|
|
31
|
+
* @returns A random color in the specified format (`Hex6`, `RGB`, or `HSL`).
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const hex = generateRandomColor();
|
|
36
|
+
* // inferred: Hex6
|
|
37
|
+
*
|
|
38
|
+
* const rgb = generateRandomColor({ colorType: 'rgb' });
|
|
39
|
+
* // inferred: RGB
|
|
40
|
+
*
|
|
41
|
+
* const hsl = generateRandomColor({ colorType: 'hsl', maxColors: 32 });
|
|
42
|
+
* // inferred: HSL, with a larger unique color memory pool
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function generateRandomColor<C extends $ColorType | undefined = undefined>(options?: RandomColorOptions<C>): RandomColor<C>;
|
|
@@ -55,6 +55,17 @@ export type RandomHexRGB = {
|
|
|
55
55
|
/** Represents an RGB color string. */
|
|
56
56
|
rgb: RGB;
|
|
57
57
|
};
|
|
58
|
+
/** Basic color type: `hex`, `rgb` or `hsl`. */
|
|
59
|
+
export type $ColorType = 'hex' | 'rgb' | 'hsl';
|
|
60
|
+
/** Options for random color generation. */
|
|
61
|
+
export interface RandomColorOptions<Color extends $ColorType | undefined> {
|
|
62
|
+
/** The type of expected return type of color: `hex`, `rgb` or `hsl`. Default is `'hex'`. */
|
|
63
|
+
colorType?: Color;
|
|
64
|
+
/** The maximum number of recent colors to store in memory. Default is `16`. */
|
|
65
|
+
maxColors?: number;
|
|
66
|
+
}
|
|
67
|
+
/** Infers the return color type (`Hex6`, `RGB`, or `HSL`) based on the provided color type. */
|
|
68
|
+
export type RandomColor<Color extends $ColorType | undefined = undefined> = Color extends 'hsl' ? HSL : Color extends 'rgb' ? RGB : Hex6;
|
|
58
69
|
/** * Union type representing a color in Hex6, RGB, or HSL format. */
|
|
59
70
|
export type ColorTypeSolid = Hex6 | RGB | HSL;
|
|
60
71
|
/** * Union type representing a color in Hex8, RGBA, or HSLA format. */
|
|
@@ -8,7 +8,7 @@ import { $Time } from './time';
|
|
|
8
8
|
import type { $Unit, Converted } from './types';
|
|
9
9
|
import { $Volume } from './volume';
|
|
10
10
|
/**
|
|
11
|
-
* @function Converter
|
|
11
|
+
* @function Converter - This is a unit converter function that creates instances of specific converter class based on the provided unit.
|
|
12
12
|
*
|
|
13
13
|
* @description Converts values between compatible units (time, length, data, temperature, mass, area, volume).
|
|
14
14
|
* The returned instance exposes only methods relevant to the provided unit type.
|
|
@@ -31,9 +31,9 @@ export declare class Chronos {
|
|
|
31
31
|
/** Use `readonly and/or private` methods outside `Chronos`. Purpose: Plugin creation. */
|
|
32
32
|
protected static [INTERNALS]: ChronosInternals;
|
|
33
33
|
/**
|
|
34
|
-
* * `Chronos` date/time
|
|
34
|
+
* * `Chronos` date/time as Native JS `Date` object.
|
|
35
35
|
*
|
|
36
|
-
* - **NOTE**: It is **HIGHLY** advised *not to rely* on this public property to access native JS `Date`. It's not reliable when timezone and/or UTC related operations are performed. If you really need to use native `Date`, use `toDate` method.
|
|
36
|
+
* - **NOTE**: It is **HIGHLY** advised *not to rely* on this public property to access native JS `Date`. It's not reliable when timezone and/or UTC related operations are performed. If you really need to use native `Date`, use `toDate` method. This property is purely for developer convenience and sugar.
|
|
37
37
|
*/
|
|
38
38
|
native: Date;
|
|
39
39
|
/** Origin of the `Chronos` instance (Method that created `new Chronos`), useful fo tracking instance. */
|
|
@@ -68,9 +68,6 @@ export declare class Chronos {
|
|
|
68
68
|
/**
|
|
69
69
|
* * Creates a new immutable `Chronos` instance.
|
|
70
70
|
*
|
|
71
|
-
* **Note**: *If a date is provided **without a time component**, the instance will default to `00:00:00.000` UTC
|
|
72
|
-
* and convert it to the **equivalent local time** using the current environment's UTC offset.*
|
|
73
|
-
*
|
|
74
71
|
* @param value - A date value as `Date` object, it will be used as is.
|
|
75
72
|
*
|
|
76
73
|
* @returns Instance of `Chronos` with all methods and properties.
|
|
@@ -79,9 +76,6 @@ export declare class Chronos {
|
|
|
79
76
|
/**
|
|
80
77
|
* * Creates a new immutable `Chronos` instance.
|
|
81
78
|
*
|
|
82
|
-
* **Note**: *If a date is provided **without a time component**, the instance will default to `00:00:00.000` UTC
|
|
83
|
-
* and convert it to the **equivalent local time** using the current environment's UTC offset.*
|
|
84
|
-
*
|
|
85
79
|
* @param value - A date value as `Chronos` object.
|
|
86
80
|
*
|
|
87
81
|
* @returns Instance of `Chronos` with all methods and properties.
|
|
@@ -175,7 +169,7 @@ export declare class Chronos {
|
|
|
175
169
|
/** @instance Returns a date as a string value in ISO format. */
|
|
176
170
|
toISOString(): string;
|
|
177
171
|
/**
|
|
178
|
-
* @instance Wrapper over native `toLocaleString
|
|
172
|
+
* @instance Wrapper over native `toLocaleString`.
|
|
179
173
|
* @description Converts a date and time to a string by using the current or specified locale.
|
|
180
174
|
*
|
|
181
175
|
* @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
|
@@ -212,9 +206,9 @@ export declare class Chronos {
|
|
|
212
206
|
* (e.g., `'Sun, Apr 06, 2025 16:11:55'`).
|
|
213
207
|
* - Please refer to {@link https://toolbox.nazmul-nhb.dev/docs/classes/Chronos/format#format-tokens format tokens} for detailed usage.
|
|
214
208
|
*
|
|
215
|
-
* @param useUTC - If `true`, formats the date in UTC (equivalent to `formatUTC()`)
|
|
209
|
+
* @param useUTC - If `true`, formats the date in UTC (equivalent to `formatUTC()`).
|
|
216
210
|
* Defaults to `false` (local time).
|
|
217
|
-
* @returns A formatted date string in the specified format
|
|
211
|
+
* @returns A formatted date string in the specified format.
|
|
218
212
|
*/
|
|
219
213
|
formatStrict(format?: StrictFormat, useUTC?: boolean): string;
|
|
220
214
|
/**
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export { findPrimeNumbers, findPrimeNumbers as getPrimeNumbers, isPrime, isPrime
|
|
|
33
33
|
export { getOrdinal as cardinalToOrdinal, clampNumber, formatCurrency as convertNumberToCurrency, getOrdinal as convertNumberToOrdinal, getOrdinal as convertToOrdinal, formatCurrency, getOrdinal, getOrdinal as getOrdinalNumber, getRandomFloat as getRandomDecimal, getRandomFloat, normalizeNumber, getOrdinal as numberToOrdinal, roundToNearest as roundNumberToNearestInterval, roundToNearest, roundToNearest as roundToNearestInterval, } from './number/utilities';
|
|
34
34
|
export { getNumbersInRange } from './number/range';
|
|
35
35
|
export { getColorForInitial } from './colors/initials';
|
|
36
|
-
export { generateRandomColorInHexRGB, generateRandomHSLColor } from './colors/random';
|
|
36
|
+
export { generateRandomColor, generateRandomColorInHexRGB, generateRandomHSLColor, generateRandomColor as getRandomColor, } from './colors/random';
|
|
37
37
|
export { convertColorCode, convertHex8ToHsla, convertHex8ToRgba, convertHexToHsl, convertHexToRgb, convertHslaToHex8, convertHslaToRgba, convertHslToHex, convertHslToRgb, convertRgbaToHex8, convertRgbaToHsla, convertRgbToHex, convertRgbToHsl, convertRgbToRgba, } from './colors/convert';
|
|
38
38
|
export { Color, Color as Colour } from './colors/Color';
|
|
39
39
|
export { extractAlphaColorValues, extractSolidColorValues } from './colors/utils';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { convertColorCode } from './convert.js';
|
|
1
|
+
import { convertColorCode, convertHslToHex, convertHslToRgb } from './convert.js';
|
|
2
2
|
import { _generateRandomHSL, _isSimilarToLast } from './helpers.js';
|
|
3
|
+
import { extractSolidColorValues } from './utils.js';
|
|
3
4
|
const generatedColors = new Set();
|
|
4
5
|
const recentColors = [];
|
|
5
6
|
export const generateRandomHSLColor = (maxColors = 16) => {
|
|
@@ -17,3 +18,17 @@ export const generateRandomHSLColor = (maxColors = 16) => {
|
|
|
17
18
|
export const generateRandomColorInHexRGB = (maxColors = 16) => {
|
|
18
19
|
return convertColorCode(generateRandomHSLColor(maxColors));
|
|
19
20
|
};
|
|
21
|
+
export function generateRandomColor(options) {
|
|
22
|
+
const { colorType = 'hex', maxColors = 16 } = options ?? {};
|
|
23
|
+
const hsl = generateRandomHSLColor(maxColors);
|
|
24
|
+
const hslValues = extractSolidColorValues(hsl);
|
|
25
|
+
switch (colorType) {
|
|
26
|
+
case 'hsl':
|
|
27
|
+
return hsl;
|
|
28
|
+
case 'rgb':
|
|
29
|
+
return convertHslToRgb(...hslValues);
|
|
30
|
+
case 'hex':
|
|
31
|
+
default:
|
|
32
|
+
return convertHslToHex(...hslValues);
|
|
33
|
+
}
|
|
34
|
+
}
|
package/dist/esm/date/Chronos.js
CHANGED
|
@@ -390,18 +390,18 @@ export class Chronos {
|
|
|
390
390
|
}
|
|
391
391
|
isSame(other, unit, weekStartsOn = 0) {
|
|
392
392
|
const time = other instanceof _a ? other : new _a(other);
|
|
393
|
-
return (this.startOf(unit, weekStartsOn).
|
|
394
|
-
time.startOf(unit, weekStartsOn).
|
|
393
|
+
return (this.startOf(unit, weekStartsOn).timestamp ===
|
|
394
|
+
time.startOf(unit, weekStartsOn).timestamp);
|
|
395
395
|
}
|
|
396
396
|
isBefore(other, unit, weekStartsOn = 0) {
|
|
397
397
|
const time = other instanceof _a ? other : new _a(other);
|
|
398
|
-
return (this.startOf(unit, weekStartsOn).
|
|
399
|
-
time.startOf(unit, weekStartsOn).
|
|
398
|
+
return (this.startOf(unit, weekStartsOn).timestamp <
|
|
399
|
+
time.startOf(unit, weekStartsOn).timestamp);
|
|
400
400
|
}
|
|
401
401
|
isAfter(other, unit, weekStartsOn = 0) {
|
|
402
402
|
const time = other instanceof _a ? other : new _a(other);
|
|
403
|
-
return (this.startOf(unit, weekStartsOn).
|
|
404
|
-
time.startOf(unit, weekStartsOn).
|
|
403
|
+
return (this.startOf(unit, weekStartsOn).timestamp >
|
|
404
|
+
time.startOf(unit, weekStartsOn).timestamp);
|
|
405
405
|
}
|
|
406
406
|
isSameOrBefore(other, unit, weekStartsOn = 0) {
|
|
407
407
|
return (this.isSame(other, unit, weekStartsOn) || this.isBefore(other, unit, weekStartsOn));
|
package/dist/esm/index.js
CHANGED
|
@@ -18,7 +18,7 @@ export { findPrimeNumbers, findPrimeNumbers as getPrimeNumbers, isPrime, isPrime
|
|
|
18
18
|
export { getOrdinal as cardinalToOrdinal, clampNumber, formatCurrency as convertNumberToCurrency, getOrdinal as convertNumberToOrdinal, getOrdinal as convertToOrdinal, formatCurrency, getOrdinal, getOrdinal as getOrdinalNumber, getRandomFloat as getRandomDecimal, getRandomFloat, normalizeNumber, getOrdinal as numberToOrdinal, roundToNearest as roundNumberToNearestInterval, roundToNearest, roundToNearest as roundToNearestInterval, } from './number/utilities.js';
|
|
19
19
|
export { getNumbersInRange } from './number/range.js';
|
|
20
20
|
export { getColorForInitial } from './colors/initials.js';
|
|
21
|
-
export { generateRandomColorInHexRGB, generateRandomHSLColor } from './colors/random.js';
|
|
21
|
+
export { generateRandomColor, generateRandomColorInHexRGB, generateRandomHSLColor, generateRandomColor as getRandomColor, } from './colors/random.js';
|
|
22
22
|
export { convertColorCode, convertHex8ToHsla, convertHex8ToRgba, convertHexToHsl, convertHexToRgb, convertHslaToHex8, convertHslaToRgba, convertHslToHex, convertHslToRgb, convertRgbaToHex8, convertRgbaToHsla, convertRgbToHex, convertRgbToHsl, convertRgbToRgba, } from './colors/convert.js';
|
|
23
23
|
export { Color, Color as Colour } from './colors/Color.js';
|
|
24
24
|
export { extractAlphaColorValues, extractSolidColorValues } from './colors/utils.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nhb-toolbox",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.24.0",
|
|
4
4
|
"description": "A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@eslint/js": "^9.38.0",
|
|
43
43
|
"@types/jest": "^30.0.0",
|
|
44
|
-
"@types/node": "^24.9.
|
|
44
|
+
"@types/node": "^24.9.2",
|
|
45
45
|
"@typescript-eslint/eslint-plugin": "^8.46.2",
|
|
46
46
|
"@typescript-eslint/parser": "^8.46.2",
|
|
47
47
|
"eslint": "^9.38.0",
|