@dxtmisha/functional-basic 0.1.1 → 0.2.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/functions/copyObjectLite.d.ts +9 -0
- package/dist/functions/isDomData.d.ts +6 -0
- package/dist/library.d.ts +2 -0
- package/dist/library.js +414 -413
- package/package.json +1 -3
- package/src/classes/Api.ts +0 -407
- package/src/classes/ApiDefault.ts +0 -83
- package/src/classes/ApiHeaders.ts +0 -52
- package/src/classes/ApiPreparation.ts +0 -114
- package/src/classes/ApiResponse.ts +0 -293
- package/src/classes/ApiStatus.ts +0 -173
- package/src/classes/BroadcastMessage.ts +0 -73
- package/src/classes/Cache.ts +0 -60
- package/src/classes/CacheItem.ts +0 -95
- package/src/classes/CacheStatic.ts +0 -30
- package/src/classes/Cookie.ts +0 -135
- package/src/classes/CookieBlock.ts +0 -31
- package/src/classes/DataStorage.ts +0 -194
- package/src/classes/Datetime.ts +0 -891
- package/src/classes/EventItem.ts +0 -373
- package/src/classes/Geo.ts +0 -320
- package/src/classes/GeoFlag.ts +0 -386
- package/src/classes/GeoIntl.ts +0 -839
- package/src/classes/GeoPhone.ts +0 -272
- package/src/classes/Global.ts +0 -32
- package/src/classes/Hash.ts +0 -142
- package/src/classes/Icons.ts +0 -165
- package/src/classes/Loading.ts +0 -90
- package/src/classes/Meta.ts +0 -284
- package/src/classes/MetaManager.ts +0 -200
- package/src/classes/MetaOg.ts +0 -147
- package/src/classes/MetaTwitter.ts +0 -154
- package/src/classes/ScrollbarWidth.ts +0 -86
- package/src/classes/Translate.ts +0 -293
- package/src/classes/__tests__/Api.test.ts +0 -728
- package/src/classes/__tests__/ApiDefault.test.ts +0 -222
- package/src/classes/__tests__/ApiHeaders.test.ts +0 -447
- package/src/classes/__tests__/ApiPreparation.test.ts +0 -257
- package/src/classes/__tests__/ApiResponse.test.ts +0 -547
- package/src/classes/__tests__/ApiStatus.test.ts +0 -403
- package/src/classes/__tests__/Meta.test.ts +0 -629
- package/src/classes/__tests__/MetaManager.test.ts +0 -836
- package/src/classes/__tests__/MetaOg.test.ts +0 -677
- package/src/classes/__tests__/MetaTwitter.test.ts +0 -423
- package/src/functions/anyToString.ts +0 -36
- package/src/functions/applyTemplate.ts +0 -63
- package/src/functions/arrFill.ts +0 -10
- package/src/functions/copyObject.ts +0 -10
- package/src/functions/createElement.ts +0 -40
- package/src/functions/domQuerySelector.ts +0 -15
- package/src/functions/domQuerySelectorAll.ts +0 -15
- package/src/functions/encodeAttribute.ts +0 -15
- package/src/functions/eventStopPropagation.ts +0 -10
- package/src/functions/executeFunction.ts +0 -13
- package/src/functions/executePromise.ts +0 -19
- package/src/functions/forEach.ts +0 -39
- package/src/functions/frame.ts +0 -38
- package/src/functions/getAttributes.ts +0 -27
- package/src/functions/getClipboardData.ts +0 -13
- package/src/functions/getColumn.ts +0 -18
- package/src/functions/getElement.ts +0 -35
- package/src/functions/getElementId.ts +0 -39
- package/src/functions/getElementItem.ts +0 -27
- package/src/functions/getElementOrWindow.ts +0 -23
- package/src/functions/getExp.ts +0 -21
- package/src/functions/getItemByPath.ts +0 -24
- package/src/functions/getKey.ts +0 -9
- package/src/functions/getLengthOfAllArray.ts +0 -13
- package/src/functions/getMaxLengthAllArray.ts +0 -13
- package/src/functions/getMinLengthAllArray.ts +0 -13
- package/src/functions/getMouseClient.ts +0 -17
- package/src/functions/getMouseClientX.ts +0 -9
- package/src/functions/getMouseClientY.ts +0 -9
- package/src/functions/getObjectByKeys.ts +0 -24
- package/src/functions/getObjectNoUndefined.ts +0 -23
- package/src/functions/getObjectOrNone.ts +0 -11
- package/src/functions/getRandomText.ts +0 -29
- package/src/functions/getRequestString.ts +0 -21
- package/src/functions/getStepPercent.ts +0 -19
- package/src/functions/getStepValue.ts +0 -19
- package/src/functions/goScroll.ts +0 -40
- package/src/functions/inArray.ts +0 -10
- package/src/functions/initScrollbarOffset.ts +0 -14
- package/src/functions/intersectKey.ts +0 -34
- package/src/functions/isArray.ts +0 -9
- package/src/functions/isDifferent.ts +0 -27
- package/src/functions/isDomRuntime.ts +0 -12
- package/src/functions/isFilled.ts +0 -49
- package/src/functions/isFloat.ts +0 -16
- package/src/functions/isFunction.ts +0 -11
- package/src/functions/isInDom.ts +0 -15
- package/src/functions/isIntegerBetween.ts +0 -11
- package/src/functions/isNull.ts +0 -11
- package/src/functions/isNumber.ts +0 -16
- package/src/functions/isObject.ts +0 -9
- package/src/functions/isObjectNotArray.ts +0 -11
- package/src/functions/isSelected.ts +0 -32
- package/src/functions/isSelectedByList.ts +0 -19
- package/src/functions/isString.ts +0 -9
- package/src/functions/isWindow.ts +0 -11
- package/src/functions/random.ts +0 -10
- package/src/functions/replaceRecursive.ts +0 -60
- package/src/functions/replaceTemplate.ts +0 -22
- package/src/functions/secondToTime.ts +0 -20
- package/src/functions/setElementItem.ts +0 -56
- package/src/functions/setValues.ts +0 -59
- package/src/functions/splice.ts +0 -59
- package/src/functions/strFill.ts +0 -12
- package/src/functions/toArray.ts +0 -19
- package/src/functions/toCamelCase.ts +0 -16
- package/src/functions/toCamelCaseFirst.ts +0 -12
- package/src/functions/toDate.ts +0 -44
- package/src/functions/toKebabCase.ts +0 -25
- package/src/functions/toNumber.ts +0 -35
- package/src/functions/toNumberByMax.ts +0 -33
- package/src/functions/toPercent.ts +0 -10
- package/src/functions/toPercentBy100.ts +0 -12
- package/src/functions/transformation.ts +0 -59
- package/src/functions/uniqueArray.ts +0 -9
- package/src/functions/writeClipboardData.ts +0 -17
- package/src/library.ts +0 -116
- package/src/types/apiTypes.ts +0 -143
- package/src/types/basicTypes.ts +0 -155
- package/src/types/geoTypes.ts +0 -109
- package/src/types/metaTypes.ts +0 -764
- package/src/vite-env.d.ts +0 -1
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { forEach } from './forEach'
|
|
2
|
-
import { isObject } from './isObject'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Computes the intersection of arrays using keys for comparison.
|
|
6
|
-
*
|
|
7
|
-
* Вычислить пересечение массивов, сравнивая ключи.
|
|
8
|
-
* @param data the array with master keys to check/ основной проверяемый массив
|
|
9
|
-
* @param comparison arrays to compare keys against/ массивы, с которыми идёт сравнение
|
|
10
|
-
*/
|
|
11
|
-
export function intersectKey<
|
|
12
|
-
T,
|
|
13
|
-
KT extends keyof T,
|
|
14
|
-
C,
|
|
15
|
-
KC extends keyof C
|
|
16
|
-
>(
|
|
17
|
-
data?: T,
|
|
18
|
-
comparison?: C
|
|
19
|
-
): Record<KT & KC, T[KT]> {
|
|
20
|
-
const values = {} as Record<KT & KC, T[KT]>
|
|
21
|
-
|
|
22
|
-
if (
|
|
23
|
-
isObject(data)
|
|
24
|
-
&& isObject(comparison)
|
|
25
|
-
) {
|
|
26
|
-
forEach<T[KT], void>(data, (item, index) => {
|
|
27
|
-
if (index in comparison) {
|
|
28
|
-
values[index as (KT & KC)] = item
|
|
29
|
-
}
|
|
30
|
-
})
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return values
|
|
34
|
-
}
|
package/src/functions/isArray.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { forEach } from './forEach'
|
|
2
|
-
|
|
3
|
-
import { type ObjectItem } from '../types/basicTypes'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Checks if the values of two objects are different.
|
|
7
|
-
*
|
|
8
|
-
* Проверяет, различаются ли значения двух объектов.
|
|
9
|
-
* @param value current values/ текущие значения
|
|
10
|
-
* @param old old values/ старые значения
|
|
11
|
-
*/
|
|
12
|
-
export function isDifferent<T>(
|
|
13
|
-
value: ObjectItem<T>,
|
|
14
|
-
old: ObjectItem<T>
|
|
15
|
-
): boolean {
|
|
16
|
-
let different = Object.keys(value).length !== Object.keys(old).length
|
|
17
|
-
|
|
18
|
-
if (!different) {
|
|
19
|
-
forEach(value, (item, key) => {
|
|
20
|
-
if (item !== old?.[key]) {
|
|
21
|
-
different = true
|
|
22
|
-
}
|
|
23
|
-
})
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return different
|
|
27
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Проверяет, выполняется ли код в браузере, где доступен объект `window`.
|
|
3
|
-
* Возвращает `true`, если `window` доступен, что означает, что код выполняется в браузере.
|
|
4
|
-
*
|
|
5
|
-
* Checks if the code is running in a browser where the `window` object is available.
|
|
6
|
-
* Returns `true` if `window` is defined, indicating the code is running in a browser.
|
|
7
|
-
*
|
|
8
|
-
* @returns `true`, если выполняется в браузере, иначе `false`/ `true` if running in a browser, otherwise `false`
|
|
9
|
-
*/
|
|
10
|
-
export function isDomRuntime(): boolean {
|
|
11
|
-
return typeof window !== 'undefined' && Boolean(window.document)
|
|
12
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { isNull } from './isNull'
|
|
2
|
-
|
|
3
|
-
import { type EmptyValue } from '../types/basicTypes'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Checks if the field is filled.
|
|
7
|
-
*
|
|
8
|
-
* Проверяет, заполнено ли поле.
|
|
9
|
-
* @param value input value/ входное значение
|
|
10
|
-
* @param zeroTrue if true, '0' is considered filled/ если true, то '0' считается заполненным
|
|
11
|
-
*/
|
|
12
|
-
export function isFilled<T>(
|
|
13
|
-
value: T,
|
|
14
|
-
zeroTrue?: boolean
|
|
15
|
-
): value is Exclude<T, EmptyValue> {
|
|
16
|
-
if (value) {
|
|
17
|
-
if (
|
|
18
|
-
zeroTrue
|
|
19
|
-
&& value === '0'
|
|
20
|
-
) {
|
|
21
|
-
return true
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
switch (typeof value) {
|
|
25
|
-
case 'bigint':
|
|
26
|
-
case 'number':
|
|
27
|
-
return value !== 0
|
|
28
|
-
case 'boolean':
|
|
29
|
-
return value
|
|
30
|
-
case 'function':
|
|
31
|
-
case 'symbol':
|
|
32
|
-
return true
|
|
33
|
-
case 'object':
|
|
34
|
-
if (Array.isArray(value)) {
|
|
35
|
-
return value.length > 0
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return Object.values(value).some(item => !isNull(item))
|
|
39
|
-
case 'string':
|
|
40
|
-
return !['', 'undefined', 'null', '0', 'false', '[]'].includes(value)
|
|
41
|
-
case 'undefined':
|
|
42
|
-
return false
|
|
43
|
-
default:
|
|
44
|
-
return Boolean(value)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return false
|
|
49
|
-
}
|
package/src/functions/isFloat.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the value is an integer or a floating-point number.
|
|
3
|
-
*
|
|
4
|
-
* Проверяет, является ли значение числом или дробным числом.
|
|
5
|
-
* @param value values for checking/ значения для проверки
|
|
6
|
-
*/
|
|
7
|
-
export function isFloat(value: any): boolean {
|
|
8
|
-
switch (typeof value) {
|
|
9
|
-
case 'number':
|
|
10
|
-
return true
|
|
11
|
-
case 'string':
|
|
12
|
-
return Boolean(value.match(/^([0-9]+|[0-9]+\.[0-9]+)$/))
|
|
13
|
-
default:
|
|
14
|
-
return false
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type FunctionArgs } from '../types/basicTypes'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Checks if the function is a callback function.
|
|
5
|
-
*
|
|
6
|
-
* Проверяет, является ли функция обратного вызова.
|
|
7
|
-
* @param callback the value being checked/ проверяемое значение
|
|
8
|
-
*/
|
|
9
|
-
export function isFunction<T>(callback: T): callback is Extract<T, FunctionArgs<any, any>> {
|
|
10
|
-
return callback instanceof Function || typeof callback === 'function'
|
|
11
|
-
}
|
package/src/functions/isInDom.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { getElement } from './getElement'
|
|
2
|
-
import {
|
|
3
|
-
type ElementOrString,
|
|
4
|
-
type ElementOrWindow
|
|
5
|
-
} from '../types/basicTypes'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Checks if an element is still in the DOM tree.
|
|
9
|
-
*
|
|
10
|
-
* Проверяет, находится ли еще элемент в дереве DOM.
|
|
11
|
-
* @param element selectors for matching or an Element/ селекторов для сопоставления или Element
|
|
12
|
-
*/
|
|
13
|
-
export function isInDom<E extends ElementOrWindow>(element?: ElementOrString<E>): boolean {
|
|
14
|
-
return Boolean(getElement(element)?.closest('html'))
|
|
15
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the value is between integers.
|
|
3
|
-
*
|
|
4
|
-
* Проверяет, лежит ли значение между целыми числами.
|
|
5
|
-
* @param value input value/ входное значение
|
|
6
|
-
* @param between value for rounding/ значение для округления
|
|
7
|
-
*/
|
|
8
|
-
export function isIntegerBetween(value: number, between: number): boolean {
|
|
9
|
-
const floor = Math.floor(between)
|
|
10
|
-
return value >= floor && value < floor + 1
|
|
11
|
-
}
|
package/src/functions/isNull.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type Undefined } from '../types/basicTypes'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Is the variable equal to null or undefined.
|
|
5
|
-
*
|
|
6
|
-
* Является ли переменная равной null или undefined.
|
|
7
|
-
* @param value input value/ входное значение
|
|
8
|
-
*/
|
|
9
|
-
export function isNull<T>(value: T): value is Extract<T, Undefined> {
|
|
10
|
-
return value === null || value === undefined
|
|
11
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the value is a number.
|
|
3
|
-
*
|
|
4
|
-
* Проверяет, является ли значение числом.
|
|
5
|
-
* @param value values for checking/ значения для проверки
|
|
6
|
-
*/
|
|
7
|
-
export function isNumber(value: any): boolean {
|
|
8
|
-
switch (typeof value) {
|
|
9
|
-
case 'number':
|
|
10
|
-
return true
|
|
11
|
-
case 'string':
|
|
12
|
-
return Boolean(value.match(/^[0-9]+$/))
|
|
13
|
-
default:
|
|
14
|
-
return false
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if a value is an object.
|
|
3
|
-
*
|
|
4
|
-
* Проверяет, является ли значение объектом.
|
|
5
|
-
* @param value input value/ входное значение
|
|
6
|
-
*/
|
|
7
|
-
export function isObject<T>(value: T): value is Extract<T, Record<any, any>> {
|
|
8
|
-
return Boolean(value && typeof value === 'object')
|
|
9
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { isObject } from './isObject'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Checks if the value is an object or not an array.
|
|
5
|
-
*
|
|
6
|
-
* Проверяет, является ли значение объектом и не является массивом.
|
|
7
|
-
* @param value input value/ входное значение
|
|
8
|
-
*/
|
|
9
|
-
export function isObjectNotArray<T>(value: T): value is Exclude<Extract<T, Record<any, any>>, any[] | undefined | null> {
|
|
10
|
-
return isObject(value) && !Array.isArray(value)
|
|
11
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { isNull } from './isNull'
|
|
2
|
-
import { isNumber } from './isNumber'
|
|
3
|
-
import { toNumber } from './toNumber'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Checks if value is in the array selected or if value equals selected, if selected is a string.
|
|
7
|
-
*
|
|
8
|
-
* Проверяет, есть ли value в массиве selected или равен ли value selected, если selected - строка.
|
|
9
|
-
* @param value input value/ входное значение
|
|
10
|
-
* @param selected array or string for comparison/ массив или строка для сравнения
|
|
11
|
-
*/
|
|
12
|
-
export function isSelected<T, S>(
|
|
13
|
-
value: T,
|
|
14
|
-
selected: T | T[] | S
|
|
15
|
-
): boolean {
|
|
16
|
-
if (isNull(value)) {
|
|
17
|
-
return false
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
if (Array.isArray(selected)) {
|
|
21
|
-
return selected.includes(value)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (
|
|
25
|
-
isNumber(value)
|
|
26
|
-
&& isNumber(selected)
|
|
27
|
-
) {
|
|
28
|
-
return toNumber(value as number) === toNumber(selected as number)
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return value === selected
|
|
32
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { isSelected } from './isSelected'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Testing isSelected property for the entire list of values.
|
|
5
|
-
*
|
|
6
|
-
* Проверка свойства isSelected для всех значений списка.
|
|
7
|
-
* @param values list of values for comparison/ список значений для сравнения
|
|
8
|
-
* @param selected array or string for comparison/ массив или строка для сравнения
|
|
9
|
-
*/
|
|
10
|
-
export function isSelectedByList<T>(
|
|
11
|
-
values: T | T[],
|
|
12
|
-
selected: T | T[]
|
|
13
|
-
): boolean {
|
|
14
|
-
if (Array.isArray(values)) {
|
|
15
|
-
return values.every(item => isSelected(item, selected))
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return isSelected(values, selected)
|
|
19
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { isDomRuntime } from './isDomRuntime'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Checks if object is Window.
|
|
5
|
-
*
|
|
6
|
-
* Проверяет, является ли объект Window.
|
|
7
|
-
* @param element selectors for matching or an Element/ селекторов для сопоставления или Element
|
|
8
|
-
*/
|
|
9
|
-
export function isWindow<E>(element: E): element is Extract<E, Window> {
|
|
10
|
-
return isDomRuntime() && element === window
|
|
11
|
-
}
|
package/src/functions/random.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate a random integer.
|
|
3
|
-
*
|
|
4
|
-
* Генерирует случайное число.
|
|
5
|
-
* @param min the lowest value to return/ наименьшее значение
|
|
6
|
-
* @param max the highest value to return/ наибольшее значение
|
|
7
|
-
*/
|
|
8
|
-
export function random(min: number, max: number): number {
|
|
9
|
-
return Math.floor((Math.random() * (max - min + 1)) + min)
|
|
10
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { copyObject } from './copyObject'
|
|
2
|
-
import { forEach } from './forEach'
|
|
3
|
-
import { isObject } from './isObject'
|
|
4
|
-
import { uniqueArray } from './uniqueArray'
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
type ObjectItem,
|
|
8
|
-
type ObjectOrArray
|
|
9
|
-
} from '../types/basicTypes'
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Merge one or more arrays recursively.
|
|
13
|
-
*
|
|
14
|
-
* Рекурсивное слияние одного или более массивов.
|
|
15
|
-
* @param array the array in which elements are replaced/ массив, элементы которого будут заменены
|
|
16
|
-
* @param replacement arrays from which elements will be extracted/ массивы, из которых будут браться элементы для замены
|
|
17
|
-
* @param isMerge merge one or more arrays/ сливает один или большее количество массивов
|
|
18
|
-
*/
|
|
19
|
-
export function replaceRecursive<I>(
|
|
20
|
-
array: ObjectItem<I>,
|
|
21
|
-
replacement?: ObjectOrArray<I>,
|
|
22
|
-
isMerge = true
|
|
23
|
-
): ObjectItem<I> {
|
|
24
|
-
const returnData: ObjectItem<I> = copyObject(array)
|
|
25
|
-
|
|
26
|
-
if (
|
|
27
|
-
isObject(array)
|
|
28
|
-
&& isObject(replacement)
|
|
29
|
-
) {
|
|
30
|
-
forEach<I, void>(
|
|
31
|
-
replacement,
|
|
32
|
-
(item, index) => {
|
|
33
|
-
const data = array?.[index]
|
|
34
|
-
|
|
35
|
-
if (
|
|
36
|
-
isObject(data)
|
|
37
|
-
&& isObject(item)
|
|
38
|
-
) {
|
|
39
|
-
if (
|
|
40
|
-
isMerge
|
|
41
|
-
&& Array.isArray(data)
|
|
42
|
-
&& Array.isArray(item)
|
|
43
|
-
) {
|
|
44
|
-
returnData[index] = copyObject(uniqueArray([...data, ...item])) as I
|
|
45
|
-
} else {
|
|
46
|
-
returnData[index] = replaceRecursive<I>(
|
|
47
|
-
(Array.isArray(data) ? { ...data } : data) as ObjectItem<I>,
|
|
48
|
-
item as ObjectOrArray<I>,
|
|
49
|
-
isMerge
|
|
50
|
-
) as I
|
|
51
|
-
}
|
|
52
|
-
} else {
|
|
53
|
-
returnData[index] = isObject(item) ? copyObject(item) : item
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return returnData
|
|
60
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { executeFunction } from './executeFunction'
|
|
2
|
-
import { forEach } from './forEach'
|
|
3
|
-
import { getExp } from './getExp'
|
|
4
|
-
|
|
5
|
-
import { type FunctionReturn } from '../types/basicTypes'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Replacing the value from replaces in value.
|
|
9
|
-
*
|
|
10
|
-
* Замена значения из replaces в value.
|
|
11
|
-
* @param value template string/ строка шаблона
|
|
12
|
-
* @param replaces object with data for replacement/ объект с данными для замены
|
|
13
|
-
*/
|
|
14
|
-
export function replaceTemplate(value: string, replaces: Record<string, string | FunctionReturn<string>>): string {
|
|
15
|
-
let data = value
|
|
16
|
-
|
|
17
|
-
forEach(replaces, (replacement, pattern) => {
|
|
18
|
-
data = data.replace(getExp(`[${pattern}]`), executeFunction(replacement))
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
return data
|
|
22
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { toNumber } from './toNumber'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Converts seconds into a time string.
|
|
5
|
-
*
|
|
6
|
-
* Преобразовывает секунды в строку с временем.
|
|
7
|
-
* @param second specified seconds/ указанные секунды
|
|
8
|
-
*/
|
|
9
|
-
export function secondToTime(second: number | string | undefined): string {
|
|
10
|
-
const time = toNumber(second)
|
|
11
|
-
|
|
12
|
-
if (time > 0) {
|
|
13
|
-
const minutes = String(Math.floor(time / 60)).padStart(2, '0')
|
|
14
|
-
const seconds = String(time % 60).padStart(2, '0')
|
|
15
|
-
|
|
16
|
-
return `${minutes}:${seconds}`
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return '00:00'
|
|
20
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { executeFunction } from './executeFunction'
|
|
2
|
-
import { forEach } from './forEach'
|
|
3
|
-
import { getElement } from './getElement'
|
|
4
|
-
import { getElementItem } from './getElementItem'
|
|
5
|
-
import { isObject } from './isObject'
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
type ElementOrString,
|
|
9
|
-
type ElementOrWindow
|
|
10
|
-
} from '../types/basicTypes'
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Modifies the value of an element identified by its key.
|
|
14
|
-
*
|
|
15
|
-
* Изменяет значение элемента, определенного ключом.
|
|
16
|
-
* @param element checked element/ проверяемый элемент
|
|
17
|
-
* @param index index at which we retrieve values/ индекс, по которому получаем значения
|
|
18
|
-
* @param value new value/ новое значение
|
|
19
|
-
*/
|
|
20
|
-
export function setElementItem<
|
|
21
|
-
E extends ElementOrWindow,
|
|
22
|
-
K extends keyof E,
|
|
23
|
-
V extends E[K] = E[K]
|
|
24
|
-
>(
|
|
25
|
-
element: ElementOrString<E>,
|
|
26
|
-
index: K,
|
|
27
|
-
value: V | Record<string, V>
|
|
28
|
-
): E | undefined {
|
|
29
|
-
const item = getElement(element)
|
|
30
|
-
|
|
31
|
-
if (item) {
|
|
32
|
-
const data: any = getElementItem(item, index)
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
isObject(data)
|
|
36
|
-
&& isObject(value)
|
|
37
|
-
) {
|
|
38
|
-
forEach(value as any, (item, key) => {
|
|
39
|
-
data[key] = executeFunction(item)
|
|
40
|
-
})
|
|
41
|
-
} else {
|
|
42
|
-
const newValue = executeFunction(value)
|
|
43
|
-
|
|
44
|
-
if (
|
|
45
|
-
!(index in item)
|
|
46
|
-
&& typeof newValue === 'string'
|
|
47
|
-
) {
|
|
48
|
-
item.setAttribute(index.toString(), newValue)
|
|
49
|
-
} else {
|
|
50
|
-
(item as any)[index] = executeFunction(value)
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return item
|
|
56
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { isArray } from './isArray'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Modifies data according to its type and settings.
|
|
5
|
-
*
|
|
6
|
-
* Изменяет данные в соответствии с их типом и настройками.
|
|
7
|
-
* @param selected base values/ базовые значения
|
|
8
|
-
* @param value new values/ новые значения
|
|
9
|
-
* @param multiple support for multiple values/ поддержка нескольких значений
|
|
10
|
-
* @param maxlength maximum values/ максимальные значения
|
|
11
|
-
* @param alwaysChange updating values in any case/ обновление значений при любом случае
|
|
12
|
-
* @param notEmpty do not make the values empty/ не делать значения пустыми
|
|
13
|
-
*/
|
|
14
|
-
export function setValues<T>(
|
|
15
|
-
selected: T | T[] | undefined,
|
|
16
|
-
value: any,
|
|
17
|
-
{
|
|
18
|
-
multiple = false,
|
|
19
|
-
maxlength = 0,
|
|
20
|
-
alwaysChange = true,
|
|
21
|
-
notEmpty = false
|
|
22
|
-
}
|
|
23
|
-
): T | T[] | undefined {
|
|
24
|
-
if (multiple) {
|
|
25
|
-
if (isArray(selected)) {
|
|
26
|
-
const key = selected.indexOf(value)
|
|
27
|
-
const data: any[] = [...selected]
|
|
28
|
-
|
|
29
|
-
if (key !== -1) {
|
|
30
|
-
if (!notEmpty || data.length > 1) {
|
|
31
|
-
data.splice(key, 1)
|
|
32
|
-
}
|
|
33
|
-
} else if (!maxlength || selected.length < maxlength) {
|
|
34
|
-
data.push(value)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return data
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (selected === value) {
|
|
41
|
-
return []
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (selected) {
|
|
45
|
-
return [selected, value]
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return [value]
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
-
alwaysChange
|
|
53
|
-
|| selected !== value
|
|
54
|
-
) {
|
|
55
|
-
return value
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return selected
|
|
59
|
-
}
|
package/src/functions/splice.ts
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { copyObject } from './copyObject'
|
|
2
|
-
import { forEach } from './forEach'
|
|
3
|
-
import { isObject } from './isObject'
|
|
4
|
-
import { replaceRecursive } from './replaceRecursive'
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
type ObjectItem,
|
|
8
|
-
type ObjectOrArray
|
|
9
|
-
} from '../types/basicTypes'
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* This method is used to copy the values of all enumerable own properties from one source object to a target object.
|
|
13
|
-
* In priority according to the processing list.
|
|
14
|
-
*
|
|
15
|
-
* Метод используется для копирования значений всех перечисляемых свойств одного объекта в другой.
|
|
16
|
-
* В приоритете по списку обработки.
|
|
17
|
-
* @param array the target object/ целевой объект
|
|
18
|
-
* @param replacement the source object/ исходные объекты
|
|
19
|
-
* @param indexStart index at which to start changing the array/ индекс, по которому начинает изменять массив
|
|
20
|
-
*/
|
|
21
|
-
export function splice<I>(
|
|
22
|
-
array: ObjectItem<I>,
|
|
23
|
-
replacement?: ObjectItem<I> | I,
|
|
24
|
-
indexStart?: string
|
|
25
|
-
): ObjectItem<I> {
|
|
26
|
-
if (
|
|
27
|
-
isObject(array)
|
|
28
|
-
&& isObject(replacement)
|
|
29
|
-
) {
|
|
30
|
-
if (indexStart) {
|
|
31
|
-
let returnData: ObjectItem<I> = {}
|
|
32
|
-
let init = false
|
|
33
|
-
|
|
34
|
-
forEach<I, void>(array, (item, index) => {
|
|
35
|
-
if (
|
|
36
|
-
!init && (
|
|
37
|
-
indexStart === index
|
|
38
|
-
|| indexStart === item
|
|
39
|
-
)
|
|
40
|
-
) {
|
|
41
|
-
init = true
|
|
42
|
-
returnData = replaceRecursive(returnData, replacement as ObjectOrArray)
|
|
43
|
-
} else if (init) {
|
|
44
|
-
returnData = replaceRecursive(returnData, { [index]: item })
|
|
45
|
-
} else {
|
|
46
|
-
returnData[index] = isObject(item) ? copyObject(item) : item
|
|
47
|
-
}
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
return init ? returnData : replaceRecursive(array, replacement as ObjectOrArray)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (isObject(replacement)) {
|
|
54
|
-
return replaceRecursive(array, replacement as ObjectOrArray)
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return copyObject(array)
|
|
59
|
-
}
|
package/src/functions/strFill.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { arrFill } from './arrFill'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* The method creates a string of length count, consisting of the characters value.
|
|
5
|
-
*
|
|
6
|
-
* Метод создает строку длиной count, состоящую из символов value.
|
|
7
|
-
* @param value character for filling/ символ для заполнения
|
|
8
|
-
* @param count length of the string/ длина строки
|
|
9
|
-
*/
|
|
10
|
-
export function strFill(value: string, count: number): string {
|
|
11
|
-
return arrFill(value, count).join('')
|
|
12
|
-
}
|
package/src/functions/toArray.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Преобразует значение в массив.
|
|
3
|
-
* Если переданное значение уже является массивом, возвращается оно само.
|
|
4
|
-
* В противном случае значение оборачивается в массив.
|
|
5
|
-
*
|
|
6
|
-
* Converts a value to an array.
|
|
7
|
-
* If the value is already an array, it returns it as is.
|
|
8
|
-
* Otherwise, it wraps the value in an array.
|
|
9
|
-
*
|
|
10
|
-
* @param value - Значение, которое необходимо преобразовать в массив.
|
|
11
|
-
*
|
|
12
|
-
* The value to be converted into an array.
|
|
13
|
-
* @returns Массив, содержащий переданное значение.
|
|
14
|
-
*
|
|
15
|
-
* An array containing the provided value.
|
|
16
|
-
*/
|
|
17
|
-
export function toArray<T>(value: T): T extends any[] ? T : [T] {
|
|
18
|
-
return (Array.isArray(value) ? value : [value]) as T extends any[] ? T : [T]
|
|
19
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert a String to Camel Case (upper).
|
|
3
|
-
*
|
|
4
|
-
* Преобразование строки в Camel Case (upper).
|
|
5
|
-
* @param value input value/ входное значение
|
|
6
|
-
*/
|
|
7
|
-
export function toCamelCase(value: string): string {
|
|
8
|
-
return value
|
|
9
|
-
.toString()
|
|
10
|
-
.trim()
|
|
11
|
-
.replace(/[^\w- ]+/g, '')
|
|
12
|
-
.replace(/ +/g, '-')
|
|
13
|
-
.replace(/(?<=[A-Z])([A-Z])/g, char => `${char.toLowerCase()}`)
|
|
14
|
-
.replace(/-+([a-zA-Z0-9])/g, (...char: string[]) => `${String(char[1]).toUpperCase()}`)
|
|
15
|
-
.replace(/^([A-Z])/, char => `${char.toLowerCase()}`)
|
|
16
|
-
}
|