@dxtmisha/functional-basic 0.1.1 → 0.1.4
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/library.d.ts +1 -0
- package/dist/library.js +405 -411
- 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
package/src/functions/forEach.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { isObject } from './isObject'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* The function performs the specified function once for each element in the object.
|
|
5
|
-
* And returns an array with the results of executing the function.
|
|
6
|
-
*
|
|
7
|
-
* Функция выполняет указанную функцию один раз для каждого элемента в объекте.
|
|
8
|
-
* И возвращает массив с результатами выполнения функции.
|
|
9
|
-
* @param data object for iteration/ объект для перебора
|
|
10
|
-
* @param callback a function to execute for each element in the array/
|
|
11
|
-
* функция, которая будет вызвана для каждого элемента
|
|
12
|
-
*/
|
|
13
|
-
export function forEach<
|
|
14
|
-
T,
|
|
15
|
-
R,
|
|
16
|
-
D extends T[] | Record<string, T> | Map<string, T> = T[] | Record<string, T> | Map<string, T>,
|
|
17
|
-
K = D extends T[] ? number : string
|
|
18
|
-
>(
|
|
19
|
-
data: D & (T[] | Record<string, T> | Map<string, T>),
|
|
20
|
-
callback: (item: T, key: K, dataMain: typeof data) => R
|
|
21
|
-
): R[] {
|
|
22
|
-
if (isObject(data)) {
|
|
23
|
-
const returnData: R[] = []
|
|
24
|
-
|
|
25
|
-
if (data instanceof Map) {
|
|
26
|
-
data.forEach((item: T, key) => returnData.push(callback(item, key as K, data)))
|
|
27
|
-
} else if (Array.isArray(data)) {
|
|
28
|
-
data.forEach((item: T, key) => returnData.push(callback(item, key as K, data)))
|
|
29
|
-
} else {
|
|
30
|
-
Object.entries(data).forEach(
|
|
31
|
-
([key, item]) => returnData.push(callback(item, key as K, data))
|
|
32
|
-
)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return returnData.filter((item: R | undefined) => item !== undefined)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return []
|
|
39
|
-
}
|
package/src/functions/frame.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { isDomRuntime } from './isDomRuntime'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Cyclically calls requestAnimationFrame until next returns true
|
|
5
|
-
* The window.requestAnimationFrame() method tells the browser that you wish to perform
|
|
6
|
-
* an animation and requests that the browser calls a specified function to update an
|
|
7
|
-
* animation right before the next repaint.
|
|
8
|
-
*
|
|
9
|
-
* Циклически вызывает requestAnimationFrame, пока next возвращает true
|
|
10
|
-
* window.requestAnimationFrame указывает браузеру на то, что вы хотите произвести
|
|
11
|
-
* анимацию, и просит его запланировать перерисовку на следующем кадре анимации.
|
|
12
|
-
* @param callback the function to call when it's time to update your animation for the next repaint/ функция,
|
|
13
|
-
* которая будет вызвана, когда придёт время обновить вашу анимацию на следующей перерисовке
|
|
14
|
-
* @param next function that determines repetition/ функция, которая определяет повторность
|
|
15
|
-
* @param end function that is executed if the animation stops/ функция,
|
|
16
|
-
* которая выполняется, если останавливается анимация
|
|
17
|
-
*/
|
|
18
|
-
export function frame(
|
|
19
|
-
callback: () => void,
|
|
20
|
-
next?: () => boolean,
|
|
21
|
-
end?: () => void
|
|
22
|
-
) {
|
|
23
|
-
const init = () => {
|
|
24
|
-
callback()
|
|
25
|
-
|
|
26
|
-
if (next?.()) {
|
|
27
|
-
frame(callback, next, end)
|
|
28
|
-
} else {
|
|
29
|
-
end?.()
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (isDomRuntime()) {
|
|
34
|
-
requestAnimationFrame(init)
|
|
35
|
-
} else {
|
|
36
|
-
init()
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { getElement } from './getElement'
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
type ElementOrString,
|
|
5
|
-
type ElementOrWindow
|
|
6
|
-
} from '../types/basicTypes'
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Gets a list of attributes of an element.
|
|
10
|
-
*
|
|
11
|
-
* Получает список атрибутов у элемента.
|
|
12
|
-
* @param element selectors for matching or an Element/ селекторов для сопоставления или Element
|
|
13
|
-
*/
|
|
14
|
-
export function getAttributes<E extends ElementOrWindow>(
|
|
15
|
-
element?: ElementOrString<E>
|
|
16
|
-
): Record<string, string | undefined> {
|
|
17
|
-
const attributes: Record<string, string | undefined> = {}
|
|
18
|
-
const item = getElement(element)
|
|
19
|
-
|
|
20
|
-
if (item) {
|
|
21
|
-
for (const attribute of item.attributes) {
|
|
22
|
-
attributes[attribute.name] = (attribute?.value || attribute?.textContent) ?? undefined
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return attributes
|
|
27
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The method retrieves drag data (as a string) for the specified type.
|
|
3
|
-
* If the drag operation does not include data, this method returns an empty string.
|
|
4
|
-
*
|
|
5
|
-
* Метод извлекает данные перетаскивания (в виде строки) для указанного типа.
|
|
6
|
-
* @param event the ClipboardEvent interface represents events providing information
|
|
7
|
-
* related to modification of the clipboard, that is cut, copy, and paste events/ интерфейс
|
|
8
|
-
* ClipboardEvent представляет события, предоставляющие информацию, связанную с изменением буфера обмена,
|
|
9
|
-
* этими события являются cut, copy и paste.
|
|
10
|
-
*/
|
|
11
|
-
export async function getClipboardData(event?: ClipboardEvent): Promise<string> {
|
|
12
|
-
return event?.clipboardData?.getData('text') ?? (await navigator.clipboard.readText() || '')
|
|
13
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { forEach } from './forEach'
|
|
2
|
-
|
|
3
|
-
import { type ObjectOrArray } from '../types/basicTypes'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Returns an array of values for a specific column in the input array.
|
|
7
|
-
*
|
|
8
|
-
* Возвращает массив значений для определенного столбца входного массива.
|
|
9
|
-
* @param array a one array or an array of objects from which to pull a column of values from/
|
|
10
|
-
* многомерный массив или массив объектов, из которого будет производиться выборка значений
|
|
11
|
-
* @param column the column of values to return/ ключ столбца, значения которого нужно вернуть
|
|
12
|
-
*/
|
|
13
|
-
export function getColumn<T, K extends keyof T>(
|
|
14
|
-
array: ObjectOrArray<T>,
|
|
15
|
-
column: K
|
|
16
|
-
): (T[K] | undefined)[] {
|
|
17
|
-
return forEach<T, T[K] | undefined>(array, item => item?.[column])
|
|
18
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { isDomRuntime } from './isDomRuntime'
|
|
2
|
-
import { isString } from './isString'
|
|
3
|
-
import { isWindow } from './isWindow'
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
type ElementOrString,
|
|
7
|
-
type ElementOrWindow
|
|
8
|
-
} from '../types/basicTypes'
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Returns the first Element in the document that matches the specified selector or the element.
|
|
12
|
-
*
|
|
13
|
-
* Возвращает первый Element документа, который соответствует указанному селектору или саму element.
|
|
14
|
-
* @param element selectors for matching or an Element/ селекторов для сопоставления или Element
|
|
15
|
-
*/
|
|
16
|
-
export function getElement<
|
|
17
|
-
E extends ElementOrWindow,
|
|
18
|
-
R extends Exclude<E, Window>
|
|
19
|
-
>(
|
|
20
|
-
element?: ElementOrString<E>
|
|
21
|
-
): R | undefined {
|
|
22
|
-
if (!isDomRuntime()) {
|
|
23
|
-
return undefined
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (isWindow(element)) {
|
|
27
|
-
return document.body as R
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (isString(element)) {
|
|
31
|
-
return document.querySelector<R>(element) ?? undefined
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return element as (R | undefined)
|
|
35
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { getElement } from './getElement'
|
|
2
|
-
import { isFilled } from './isFilled'
|
|
3
|
-
import { random } from './random'
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
type ElementOrString,
|
|
7
|
-
type ElementOrWindow
|
|
8
|
-
} from '../types/basicTypes'
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Counter generator of ID number of element.
|
|
12
|
-
*
|
|
13
|
-
* Счетчик генератор номера ID элемента.
|
|
14
|
-
*/
|
|
15
|
-
let idLast = random(100000, 900000)
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Returns the identifier (ID) of the element or creates it if the element has no ID.
|
|
19
|
-
*
|
|
20
|
-
* Возвращает идентификатор (ID) элемента или создает его, если у элемента нет ID.
|
|
21
|
-
* @param element element from which you obtain an ID/ элемент, с которого получаете ID
|
|
22
|
-
* @param selector selectors for matching/ селекторов для сопоставления
|
|
23
|
-
*/
|
|
24
|
-
export function getElementId<E extends ElementOrWindow>(
|
|
25
|
-
element?: ElementOrString<E>,
|
|
26
|
-
selector?: string
|
|
27
|
-
): string {
|
|
28
|
-
const item = getElement(element)
|
|
29
|
-
|
|
30
|
-
if (item) {
|
|
31
|
-
if (!isFilled(item.id)) {
|
|
32
|
-
item.setAttribute('id', `id-${idLast++}`)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return selector ? `#${item.id}${selector}`.trim() : item.id
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return `id-${idLast++}`
|
|
39
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { getElement } from './getElement'
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
type ElementOrString,
|
|
5
|
-
type ElementOrWindow
|
|
6
|
-
} from '../types/basicTypes'
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Returns the value of an element by its key.
|
|
10
|
-
*
|
|
11
|
-
* Возвращает значение элемента по его ключу.
|
|
12
|
-
* @param element checked element/ проверяемый элемент
|
|
13
|
-
* @param index index at which we retrieve values/ индекс, по которому получаем значения
|
|
14
|
-
* @param defaultValue returns this parameter if the value is missing/ возвращает этот параметр,
|
|
15
|
-
* если значение отсутствует
|
|
16
|
-
*/
|
|
17
|
-
export function getElementItem<
|
|
18
|
-
T extends ElementOrWindow,
|
|
19
|
-
K extends keyof T,
|
|
20
|
-
D
|
|
21
|
-
>(
|
|
22
|
-
element: ElementOrString<T>,
|
|
23
|
-
index: K | string,
|
|
24
|
-
defaultValue?: D
|
|
25
|
-
): T[K] | D | undefined {
|
|
26
|
-
return getElement(element)?.[index as K] ?? defaultValue
|
|
27
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { getElement } from './getElement'
|
|
2
|
-
import { isWindow } from './isWindow'
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
type ElementOrString,
|
|
6
|
-
type ElementOrWindow
|
|
7
|
-
} from '../types/basicTypes'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Returns window or element.
|
|
11
|
-
*
|
|
12
|
-
* Возвращает окно или элемент.
|
|
13
|
-
* @param element selectors for matching or an Element/ селекторов для сопоставления или Element
|
|
14
|
-
*/
|
|
15
|
-
export function getElementOrWindow<E extends ElementOrWindow>(
|
|
16
|
-
element?: ElementOrString<E>
|
|
17
|
-
): E | undefined {
|
|
18
|
-
if (isWindow(element)) {
|
|
19
|
-
return element
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return getElement(element)
|
|
23
|
-
}
|
package/src/functions/getExp.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The object is used for matching text with a pattern.
|
|
3
|
-
*
|
|
4
|
-
* Конструктор создаёт объект регулярного выражения для сопоставления текста с шаблоном.
|
|
5
|
-
* @param value test for replacement/ тест для замены
|
|
6
|
-
* @param flags если определён, может принимать любую комбинацию нижеследующих значений:
|
|
7
|
-
* g - глобальное сопоставление,
|
|
8
|
-
* i - игнорирование регистра при сопоставлении
|
|
9
|
-
* m - сопоставление по нескольким строкам.
|
|
10
|
-
* @param pattern Regular expression text in which the value :value will be replaced with the optimized value of value/
|
|
11
|
-
* Текст регулярного выражения, в котором значение :value заменится на оптимизированное значение value
|
|
12
|
-
*/
|
|
13
|
-
export function getExp(
|
|
14
|
-
value: string,
|
|
15
|
-
flags = 'ig',
|
|
16
|
-
pattern = ':value'
|
|
17
|
-
): RegExp {
|
|
18
|
-
const data = value.replace(/([[\]\\^$.?*+()/])/g, '\\$1')
|
|
19
|
-
|
|
20
|
-
return new RegExp(pattern.replace(/:value/g, data), flags)
|
|
21
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { isObjectNotArray } from './isObjectNotArray'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns data by their path.
|
|
5
|
-
*
|
|
6
|
-
* Возвращает данные по их пути.
|
|
7
|
-
* @param item object for work/ объект для работы
|
|
8
|
-
* @param path data path/ путь к данным
|
|
9
|
-
*/
|
|
10
|
-
export function getItemByPath<T extends Record<string, any>>(item: T, path: string): string {
|
|
11
|
-
const paths = path.split('.', 2)
|
|
12
|
-
const column = paths[0]
|
|
13
|
-
|
|
14
|
-
if (
|
|
15
|
-
column
|
|
16
|
-
&& item?.[column]
|
|
17
|
-
&& isObjectNotArray(item[column])
|
|
18
|
-
&& paths?.[1]
|
|
19
|
-
) {
|
|
20
|
-
return getItemByPath(item[column], paths[1])
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return (column && item?.[column]) ?? ''
|
|
24
|
-
}
|
package/src/functions/getKey.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { forEach } from './forEach'
|
|
2
|
-
|
|
3
|
-
import { type ObjectOrArray } from '../types/basicTypes'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Returns the length of all elements in an array.
|
|
7
|
-
*
|
|
8
|
-
* Возвращает длину всех элементов в виде массива.
|
|
9
|
-
* @param value input value/ входное значение
|
|
10
|
-
*/
|
|
11
|
-
export function getLengthOfAllArray(value: ObjectOrArray<string>): number[] {
|
|
12
|
-
return forEach<string, number>(value, item => item.length)
|
|
13
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getLengthOfAllArray } from './getLengthOfAllArray'
|
|
2
|
-
|
|
3
|
-
import { type ObjectOrArray } from '../types/basicTypes'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Searches for the longest string in the array and returns its length.
|
|
7
|
-
*
|
|
8
|
-
* Ищет самую длинную строку в массиве и возвращает её длину.
|
|
9
|
-
* @param data array with data/ массив с данными
|
|
10
|
-
*/
|
|
11
|
-
export function getMaxLengthAllArray(data: ObjectOrArray<string>): number {
|
|
12
|
-
return Math.max(...getLengthOfAllArray(data))
|
|
13
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { getLengthOfAllArray } from './getLengthOfAllArray'
|
|
2
|
-
|
|
3
|
-
import { type ObjectOrArray } from '../types/basicTypes'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Searches for the shortest string in the array and returns its length.
|
|
7
|
-
*
|
|
8
|
-
* Ищет самую короткую строку в массиве и возвращает её длину.
|
|
9
|
-
* @param data array with data/ массив с данными
|
|
10
|
-
*/
|
|
11
|
-
export function getMinLengthAllArray(data: ObjectOrArray<string>): number {
|
|
12
|
-
return Math.min(...getLengthOfAllArray(data))
|
|
13
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { getMouseClientX } from './getMouseClientX'
|
|
2
|
-
import { getMouseClientY } from './getMouseClientY'
|
|
3
|
-
|
|
4
|
-
import { type ImageCoordinator } from '../types/basicTypes'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Returns the position of the mouse cursor or the location of the click.
|
|
8
|
-
*
|
|
9
|
-
* Возвращает позицию курсора мыши или место нажатия.
|
|
10
|
-
* @param event event object/ объект события
|
|
11
|
-
*/
|
|
12
|
-
export function getMouseClient(event: MouseEvent & TouchEvent): ImageCoordinator {
|
|
13
|
-
return {
|
|
14
|
-
x: getMouseClientX(event),
|
|
15
|
-
y: getMouseClientY(event)
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the position of the mouse cursor or the location of the click (X).
|
|
3
|
-
*
|
|
4
|
-
* Возвращает позицию курсора мыши или место нажатия (X).
|
|
5
|
-
* @param event event object/ объект события
|
|
6
|
-
*/
|
|
7
|
-
export function getMouseClientX(event: MouseEvent & TouchEvent): number {
|
|
8
|
-
return event?.clientX || event?.targetTouches?.[0]?.clientX || event?.touches?.[0]?.clientX || 0
|
|
9
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the position of the mouse cursor or the location of the click (Y).
|
|
3
|
-
*
|
|
4
|
-
* Возвращает позицию курсора мыши или место нажатия (Y).
|
|
5
|
-
* @param event event object/ объект события
|
|
6
|
-
*/
|
|
7
|
-
export function getMouseClientY(event: MouseEvent & TouchEvent): number {
|
|
8
|
-
return event?.clientY || event?.targetTouches?.[0]?.clientY || event?.touches?.[0]?.clientY || 0
|
|
9
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns a new object with keys from the keys list.
|
|
3
|
-
*
|
|
4
|
-
* Возвращает новый объект с ключами из списка keys.
|
|
5
|
-
* @param data object with data/ объект с данными
|
|
6
|
-
* @param keys list of keys/ список ключей
|
|
7
|
-
*/
|
|
8
|
-
export function getObjectByKeys(
|
|
9
|
-
data: Record<string, any>,
|
|
10
|
-
keys: string[]
|
|
11
|
-
) {
|
|
12
|
-
const returnData: Record<string, any> = {}
|
|
13
|
-
|
|
14
|
-
keys.forEach((key) => {
|
|
15
|
-
if (
|
|
16
|
-
key in data
|
|
17
|
-
&& data[key] !== undefined
|
|
18
|
-
) {
|
|
19
|
-
returnData[key] = data[key]
|
|
20
|
-
}
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
return returnData
|
|
24
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { forEach } from './forEach'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Removes from the object all properties belonging to the exception type.
|
|
5
|
-
*
|
|
6
|
-
* Удаляет из объекта все свойства, принадлежащие к типу исключения.
|
|
7
|
-
* @param data object for processing/ объект для обработки
|
|
8
|
-
* @param exception exception value/ значение для исключения
|
|
9
|
-
*/
|
|
10
|
-
export function getObjectNoUndefined<T extends Record<string | number, any>>(
|
|
11
|
-
data: T,
|
|
12
|
-
exception: any = undefined
|
|
13
|
-
) {
|
|
14
|
-
const returnData: T = {} as T
|
|
15
|
-
|
|
16
|
-
forEach(data, (item, index) => {
|
|
17
|
-
if (item !== exception) {
|
|
18
|
-
returnData[index] = item
|
|
19
|
-
}
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
return returnData
|
|
23
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { isObjectNotArray } from './isObjectNotArray'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns the object if the object’s values are set.
|
|
5
|
-
*
|
|
6
|
-
* Возвращает объект, если заданы значения объекта.
|
|
7
|
-
* @param value let’s assume that this is an object/ предположим, что это объект
|
|
8
|
-
*/
|
|
9
|
-
export function getObjectOrNone<T>(value: T): T & Record<string, any> {
|
|
10
|
-
return isObjectNotArray(value) ? value : {} as T & Record<string, any>
|
|
11
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { random } from './random'
|
|
2
|
-
import { strFill } from './strFill'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Generates text.
|
|
6
|
-
*
|
|
7
|
-
* Генерирует текст.
|
|
8
|
-
* @param min minimum word/ минимальное слово
|
|
9
|
-
* @param max maximum word/ максимальное слово
|
|
10
|
-
* @param symbol symbol for replacing a letter/ символ для замены буквы
|
|
11
|
-
* @param lengthMin minimum word length/ минимальная длина слова
|
|
12
|
-
* @param lengthMax maximum word length/ максимальная длина слова
|
|
13
|
-
*/
|
|
14
|
-
export function getRandomText(
|
|
15
|
-
min: number,
|
|
16
|
-
max: number,
|
|
17
|
-
symbol: string = '#',
|
|
18
|
-
lengthMin: number = 2,
|
|
19
|
-
lengthMax: number = 12
|
|
20
|
-
) {
|
|
21
|
-
const rand = random(min, max)
|
|
22
|
-
const label: string[] = []
|
|
23
|
-
|
|
24
|
-
for (let i = 0; i < rand; i++) {
|
|
25
|
-
label.push(strFill(symbol, random(lengthMin, lengthMax)))
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return label.join(' ')
|
|
29
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { forEach } from './forEach'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns a string in the form of key-value.
|
|
5
|
-
*
|
|
6
|
-
* Возвращает строку в виде ключ-значение.
|
|
7
|
-
* @param request data for conversion/ данные для преобразования
|
|
8
|
-
* @param sign delimiter sign of key and value/ знак разделения ключа и значения
|
|
9
|
-
* @param separator variable delimiter sign/ знак разделения переменных
|
|
10
|
-
*/
|
|
11
|
-
export function getRequestString(
|
|
12
|
-
request: Record<string, any>,
|
|
13
|
-
sign: string = '=',
|
|
14
|
-
separator: string = '&'
|
|
15
|
-
): string {
|
|
16
|
-
return forEach(request,
|
|
17
|
-
(item, name) => `${name}${sign}${encodeURIComponent(String(item).trim())}`
|
|
18
|
-
)
|
|
19
|
-
.sort()
|
|
20
|
-
.join(separator)
|
|
21
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the unit of measurement for 1 step
|
|
3
|
-
*
|
|
4
|
-
* Возвращает единицу измерения для 1 шага
|
|
5
|
-
* @param min minimum value/ минимальное значение
|
|
6
|
-
* @param max maximum value/ максимальное значение
|
|
7
|
-
*/
|
|
8
|
-
export function getStepPercent(
|
|
9
|
-
min: number | undefined,
|
|
10
|
-
max: number
|
|
11
|
-
): number {
|
|
12
|
-
const minValue = min ?? 0
|
|
13
|
-
|
|
14
|
-
if (max > minValue) {
|
|
15
|
-
return 100 / (max - minValue)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return 0
|
|
19
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the unit of measurement for a single step relative to the given value
|
|
3
|
-
*
|
|
4
|
-
* Возвращает единицу измерения одного шага относительно заданного значения
|
|
5
|
-
* @param min minimum value/ минимальное значение
|
|
6
|
-
* @param max maximum value/ максимальное значение
|
|
7
|
-
*/
|
|
8
|
-
export function getStepValue(
|
|
9
|
-
min: number | undefined,
|
|
10
|
-
max: number
|
|
11
|
-
): number {
|
|
12
|
-
const minValue = min ?? 0
|
|
13
|
-
|
|
14
|
-
if (max > minValue) {
|
|
15
|
-
return (max - minValue) / 100
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return 0
|
|
19
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
const INDENT = 0
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Quick change of scroll at the element to the required element.
|
|
5
|
-
*
|
|
6
|
-
* Быстрое изменение скролла у элемента к нужному элементу.
|
|
7
|
-
* @param selector the selected element, the scroll position of which needs to be changed/
|
|
8
|
-
* выбранный элемент, положение скролла которого надо изменить
|
|
9
|
-
* @param elementTo the element to which you need to scroll/ элемент, до которого надо проскроллить
|
|
10
|
-
* @param elementCenter the element that needs to be centered/ элемент, который надо центрировать
|
|
11
|
-
*/
|
|
12
|
-
export function goScroll(
|
|
13
|
-
selector: string,
|
|
14
|
-
elementTo: HTMLElement | undefined,
|
|
15
|
-
elementCenter?: HTMLElement
|
|
16
|
-
) {
|
|
17
|
-
const element = elementTo?.closest<HTMLElement>(selector)
|
|
18
|
-
|
|
19
|
-
if (
|
|
20
|
-
elementTo
|
|
21
|
-
&& element
|
|
22
|
-
&& element.scrollHeight !== element.offsetHeight
|
|
23
|
-
) {
|
|
24
|
-
if (elementCenter) {
|
|
25
|
-
const center = elementCenter.getBoundingClientRect()
|
|
26
|
-
const rect = element.getBoundingClientRect()
|
|
27
|
-
const to = elementTo.getBoundingClientRect()
|
|
28
|
-
|
|
29
|
-
element.scrollTop = elementTo.offsetTop - (center.top - rect.top) - ((center.height / 2) - (to.height / 2))
|
|
30
|
-
|
|
31
|
-
if (element.scrollTop + element.offsetHeight < elementTo.offsetTop + elementTo.offsetHeight) {
|
|
32
|
-
element.scrollTop = elementTo.offsetTop + elementTo.offsetHeight - element.offsetHeight
|
|
33
|
-
}
|
|
34
|
-
} else if (element.scrollTop > elementTo.offsetTop) {
|
|
35
|
-
element.scrollTop = elementTo.offsetTop - INDENT
|
|
36
|
-
} else if (element.scrollTop + element.offsetHeight < elementTo.offsetTop + elementTo.offsetHeight) {
|
|
37
|
-
element.scrollTop = elementTo.offsetTop + elementTo.offsetHeight - element.offsetHeight + INDENT
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
package/src/functions/inArray.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the value is in the current array.
|
|
3
|
-
*
|
|
4
|
-
* Проверяет, есть ли значение в текущем массиве.
|
|
5
|
-
* @param array array for checking/ массив для проверки
|
|
6
|
-
* @param value value to be checked/ проверяемое значение
|
|
7
|
-
*/
|
|
8
|
-
export function inArray<T>(array: T[], value: T): boolean {
|
|
9
|
-
return array.indexOf(value) !== -1
|
|
10
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { isDomRuntime } from './isDomRuntime'
|
|
2
|
-
import { ScrollbarWidth } from '../classes/ScrollbarWidth'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Initialization of data for scroll control.
|
|
6
|
-
*
|
|
7
|
-
* Инициализация данных для управления скроллом.
|
|
8
|
-
*/
|
|
9
|
-
export async function initScrollbarOffset() {
|
|
10
|
-
if (isDomRuntime()) {
|
|
11
|
-
const width = await ScrollbarWidth.get()
|
|
12
|
-
document.body.style.setProperty('--sys-scrollbar-offset', `${width}px`)
|
|
13
|
-
}
|
|
14
|
-
}
|