@omnisass/library 0.3.0 → 0.4.1
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 +19 -0
- package/index.scss +6 -0
- package/modules/utilities/getters/misc/_get-uid.scss +135 -0
- package/modules/utilities/getters/string/_get-string-hash.scss +143 -0
- package/modules/utilities/helpers/list/_list-sum-numbers-safe.scss +4 -3
- package/modules/utilities/helpers/list/_list-sum-numbers.scss +4 -3
- package/modules/utilities/helpers/misc/_url-encode.scss +7 -6
- package/modules/utilities/helpers/number/_number-ceil-to.scss +5 -3
- package/modules/utilities/helpers/number/_number-clamp-max.scss +5 -3
- package/modules/utilities/helpers/number/_number-clamp-min.scss +5 -3
- package/modules/utilities/helpers/number/_number-clamp.scss +6 -3
- package/modules/utilities/helpers/number/_number-denormalize.scss +6 -3
- package/modules/utilities/helpers/number/_number-fibonacci.scss +4 -3
- package/modules/utilities/helpers/number/_number-floor-to.scss +5 -3
- package/modules/utilities/helpers/number/_number-format-with-separator.scss +5 -4
- package/modules/utilities/helpers/number/_number-normalize.scss +6 -3
- package/modules/utilities/helpers/number/_number-random-between-int.scss +5 -3
- package/modules/utilities/helpers/number/_number-random-between.scss +5 -3
- package/modules/utilities/helpers/number/_number-range.scss +6 -3
- package/modules/utilities/helpers/number/_number-round-to-nearest.scss +5 -3
- package/modules/utilities/helpers/number/_number-round-to.scss +5 -3
- package/modules/utilities/helpers/number/_number-strip-unit.scss +4 -3
- package/modules/utilities/helpers/string/_string-capitalize.scss +4 -3
- package/modules/utilities/helpers/string/_string-count.scss +173 -0
- package/modules/utilities/helpers/string/_string-lorips.config.scss +81 -0
- package/modules/utilities/helpers/string/_string-lorips.scss +198 -0
- package/modules/utilities/helpers/string/_string-repeat.scss +147 -0
- package/modules/utilities/helpers/string/_string-replace.scss +6 -3
- package/modules/utilities/helpers/string/_string-reverse.scss +139 -0
- package/modules/utilities/helpers/string/_string-trim-end.scss +4 -3
- package/modules/utilities/helpers/string/_string-trim-start.scss +4 -3
- package/modules/utilities/helpers/string/_string-trim.scss +4 -3
- package/modules/utilities/validators/color/_is-color-light.scss +5 -4
- package/modules/utilities/validators/color/_is-color-list.scss +4 -3
- package/modules/utilities/validators/list/_is-list-contained.scss +5 -4
- package/modules/utilities/validators/number/_is-int-even.scss +4 -3
- package/modules/utilities/validators/number/_is-int-odd.scss +4 -3
- package/modules/utilities/validators/number/_is-int.scss +5 -3
- package/modules/utilities/validators/number/_is-number-has-unit.scss +4 -3
- package/modules/utilities/validators/number/_is-number-negative.scss +4 -3
- package/modules/utilities/validators/number/_is-number-positive.scss +4 -3
- package/modules/utilities/validators/number/_is-number-unitless.scss +4 -3
- package/modules/utilities/validators/number/_is-number-zero.scss +4 -3
- package/modules/utilities/validators/string/_is-string-contained.scss +5 -3
- package/modules/utilities/validators/string/_is-string-empty.scss +4 -3
- package/modules/utilities/validators/string/_is-string-ending-with.scss +5 -3
- package/modules/utilities/validators/string/_is-string-starting-with.scss +5 -3
- package/package.json +1 -1
- package/package.scss +2 -2
- package/modules/utilities/setters/_index.scss +0 -3
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
@use '../../loggers/log-invalid-type' as *;
|
|
2
|
+
@use '../../validators/type-of/is-string' as *;
|
|
3
|
+
@use '../../validators/type-of/is-number' as *;
|
|
4
|
+
|
|
5
|
+
/// Повторяет строку указанное количество раз.
|
|
6
|
+
///
|
|
7
|
+
/// Функция создает новую строку путем конкатенации исходной
|
|
8
|
+
/// строки с собой заданное количество раз. Это полезно для
|
|
9
|
+
/// генерации повторяющихся паттернов, заполнителей, рамок
|
|
10
|
+
/// или любых других конструкций, требующих дублирования
|
|
11
|
+
/// строковых элементов.
|
|
12
|
+
///
|
|
13
|
+
/// Важные особенности функции:
|
|
14
|
+
/// - Выполняет строгую проверку типов обоих параметров
|
|
15
|
+
/// - Возвращает пустую строку при нулевом количестве повторов
|
|
16
|
+
/// - Обрабатывает целые положительные числа повторений
|
|
17
|
+
/// - Использует эффективный цикл для построения результата
|
|
18
|
+
/// - Сохраняет исходную строку без изменений
|
|
19
|
+
/// - Полезна для создания визуальных разделителей
|
|
20
|
+
/// - Может использоваться для генерации тестовых данных
|
|
21
|
+
/// - Подходит для построения ASCII-графики или рамок
|
|
22
|
+
/// - Обеспечивает детерминированный результат
|
|
23
|
+
/// - Совместима с многострочными строками и Unicode
|
|
24
|
+
/// - Функция использует простой цикл `for` для
|
|
25
|
+
/// конкатенации строк. Для большого количества повторов
|
|
26
|
+
/// (>1000) производительность может снижаться.
|
|
27
|
+
/// - Для работы с очень большими строками или
|
|
28
|
+
/// количеством повторов рекомендуется использовать
|
|
29
|
+
/// рекурсивную реализацию или мемоизацию.
|
|
30
|
+
/// ---
|
|
31
|
+
/// @name string-repeat
|
|
32
|
+
/// @group utilities-helpers
|
|
33
|
+
/// @since 2026.01.18
|
|
34
|
+
/// @access public
|
|
35
|
+
/// @author Murad Rustamov (therteenten)
|
|
36
|
+
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
37
|
+
/// @link https://sourcecraft.dev/omnisass/library SourceCraft - OmniSass
|
|
38
|
+
/// @link https://sass-lang.com/documentation/modules/string См. также: Официальная документация Sass - Модуль String
|
|
39
|
+
/// @link https://sass-lang.com/documentation/values/strings См. также: Официальная документация Sass - Тип данных "Строки"
|
|
40
|
+
/// @link https://sass-lang.com/documentation/values/numbers См. также: Официальная документация Sass - Тип данных "Числа"
|
|
41
|
+
/// @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat См. также: MDN Web Docs - Метод String.repeat()
|
|
42
|
+
/// @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat См. также: MDN Web Docs - Метод String.concat()
|
|
43
|
+
/// @link https://en.wikipedia.org/wiki/String_(computer_science)#Concatenation См. также: Wikipedia - Конкатенация строк
|
|
44
|
+
/// @link https://en.wikipedia.org/wiki/Iteration См. также: Wikipedia - Итерация (программирование)
|
|
45
|
+
/// @link https://css-tricks.com/snippets/sass/string-repetition-function/ См. также: CSS-Tricks - Функция повторения строк в Sass
|
|
46
|
+
/// @link https://css-tricks.com/sass-string-manipulation-functions/ См. также: CSS-Tricks - Функции для работы со строками в Sass
|
|
47
|
+
/// @link https://sass-guidelin.es/ru/#section-44 См. также: Sass Guidelines - Раздел про функции
|
|
48
|
+
/// @link https://github.com/sass/sass/issues/1402 См. также: GitHub - Обсуждение строковых операций в Sass
|
|
49
|
+
/// @link https://www.30secondsofcode.org/sass/p/1/string-repeat См. также: 30 seconds of code - Функция string-repeat
|
|
50
|
+
/// @example scss - Базовое повторение строк
|
|
51
|
+
/// @debug string-repeat('a', 5); // "aaaaa"
|
|
52
|
+
/// @debug string-repeat('ab', 3); // "ababab"
|
|
53
|
+
/// @debug string-repeat('test', 2); // "testtest"
|
|
54
|
+
/// @debug string-repeat('', 10); // ""
|
|
55
|
+
/// @example scss - Создание разделителей и рамок
|
|
56
|
+
/// @debug string-repeat('-', 20); // "--------------------"
|
|
57
|
+
/// @debug string-repeat('* ', 10); // "* * * * * * * * * * "
|
|
58
|
+
/// @debug string-repeat('=-', 8); // "-=-=-=-=-=-=-=-=-=-="
|
|
59
|
+
/// @debug string-repeat('▮', 5); // "▮▮▮▮▮"
|
|
60
|
+
/// @example scss - Граничные случаи
|
|
61
|
+
/// @debug string-repeat('abc', 0); // ""
|
|
62
|
+
/// @debug string-repeat('abc', 1); // "abc"
|
|
63
|
+
/// @debug string-repeat(' ', 10); // " "
|
|
64
|
+
/// @debug string-repeat('\n', 3); // "nnn"
|
|
65
|
+
/// @param {String} $string - Исходная строка для повторения.
|
|
66
|
+
/// Может быть любой строкой, включая пустую строку,
|
|
67
|
+
/// многострочные строки, строки с пробелами и Unicode-
|
|
68
|
+
/// символами. Каждое повторение будет точной копией
|
|
69
|
+
/// исходной строки.
|
|
70
|
+
/// @param {Number} $repetitions - Количество повторений
|
|
71
|
+
/// строки. Должно быть целым неотрицательным числом.
|
|
72
|
+
/// При значении 0 возвращается пустая строка. При
|
|
73
|
+
/// значении 1 возвращается исходная строка без изменений.
|
|
74
|
+
/// @return {String} - Новая строка, состоящая из исходной
|
|
75
|
+
/// строки, повторенной указанное количество раз. Если
|
|
76
|
+
/// $repetitions равно 0, возвращается пустая строка.
|
|
77
|
+
/// Если $repetitions равно 1, возвращается исходная
|
|
78
|
+
/// строка. Для отрицательных чисел поведение не определено.
|
|
79
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
80
|
+
/// значение, не соответствующее необходимому типу:
|
|
81
|
+
///
|
|
82
|
+
/// - `$string` → `string`
|
|
83
|
+
/// - `$repetitions` → `number`
|
|
84
|
+
@function string-repeat($string, $repetitions) {
|
|
85
|
+
|
|
86
|
+
// Проверка типа первого параметра: ожидается строковое значение.
|
|
87
|
+
// Функция предназначена для повторения именно строк, так как
|
|
88
|
+
// операция конкатенации определена только для строковых значений.
|
|
89
|
+
@if not is-string($string) {
|
|
90
|
+
|
|
91
|
+
// Если $string не является строкой, возвращаем ошибку через
|
|
92
|
+
// стандартную функцию логирования. Это предотвращает
|
|
93
|
+
// попытки конкатенации нестроковых значений.
|
|
94
|
+
@return log-invalid-type(
|
|
95
|
+
'string-repeat',
|
|
96
|
+
$string,
|
|
97
|
+
'$string',
|
|
98
|
+
'string'
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Проверка типа второго параметра: ожидается числовое значение.
|
|
104
|
+
// Количество повторений должно быть числом, чтобы можно было
|
|
105
|
+
// использовать его в цикле for.
|
|
106
|
+
@else if not is-number($repetitions) {
|
|
107
|
+
|
|
108
|
+
// Если $repetitions не является числом, возвращаем ошибку.
|
|
109
|
+
// Проверка выполняется только если $string прошел валидацию.
|
|
110
|
+
@return log-invalid-type(
|
|
111
|
+
'string-repeat',
|
|
112
|
+
$repetitions,
|
|
113
|
+
'$repetitions',
|
|
114
|
+
'number'
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Все параметры прошли валидацию - выполняем повторение строки.
|
|
120
|
+
@else {
|
|
121
|
+
|
|
122
|
+
// Инициализация переменной результата.
|
|
123
|
+
// Начальное значение null позволяет начать конкатенацию
|
|
124
|
+
// с первой итерации цикла без специальной обработки.
|
|
125
|
+
$-result: null;
|
|
126
|
+
|
|
127
|
+
// Цикл повторения строки заданное количество раз.
|
|
128
|
+
// Цикл выполняется от 1 до $repetitions включительно.
|
|
129
|
+
// Каждая итерация добавляет исходную строку к результату.
|
|
130
|
+
@for $i from 1 through $repetitions {
|
|
131
|
+
|
|
132
|
+
// Конкатенация текущего результата с исходной строкой.
|
|
133
|
+
// При первой итерации $-result равен null, что приводит
|
|
134
|
+
// к начальному значению, равному $string.
|
|
135
|
+
$-result: $-result + $string;
|
|
136
|
+
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Возвращаем итоговую строку после всех повторений.
|
|
140
|
+
// Если $repetitions было 0, цикл не выполнится ни разу,
|
|
141
|
+
// и функция вернет null, который в контексте строки
|
|
142
|
+
// преобразуется в пустую строку.
|
|
143
|
+
@return $-result;
|
|
144
|
+
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
}
|
|
@@ -58,9 +58,12 @@
|
|
|
58
58
|
/// `$replaceable` не найдена, возвращается оригинальная строка.
|
|
59
59
|
/// @throws {Error} - Может вызвать ошибку глубины рекурсии при очень
|
|
60
60
|
/// длинных строках с множественными заменами.
|
|
61
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
62
|
-
/// значение, не соответствующее
|
|
63
|
-
///
|
|
61
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
62
|
+
/// значение, не соответствующее необходимому типу:
|
|
63
|
+
///
|
|
64
|
+
/// - `$string` → `string`
|
|
65
|
+
/// - `$replaceable` → `string`
|
|
66
|
+
/// - `$replacement` → `string`
|
|
64
67
|
@function string-replace($string, $replaceable, $replacement: '') {
|
|
65
68
|
|
|
66
69
|
// Проверка типа первого параметра: ожидается исходная строка.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
@use 'sass:string';
|
|
2
|
+
@use '../../loggers/log-invalid-type' as *;
|
|
3
|
+
@use '../../validators/type-of/is-string' as *;
|
|
4
|
+
|
|
5
|
+
/// Переворачивает строку (меняет порядок символов на обратный).
|
|
6
|
+
///
|
|
7
|
+
/// Функция принимает строку и возвращает новую строку, в которой
|
|
8
|
+
/// все символы расположены в обратном порядке. Например, строка
|
|
9
|
+
/// "hello" превращается в "olleh". Это полезно для различных
|
|
10
|
+
/// текстовых манипуляций, создания зеркальных эффектов в дизайне
|
|
11
|
+
/// или обработки строк в специфичных сценариях.
|
|
12
|
+
///
|
|
13
|
+
/// Важные особенности функции:
|
|
14
|
+
/// - Сохраняет все символы исходной строки без изменений
|
|
15
|
+
/// - Работает с любыми символами, включая Unicode, пробелы, цифры
|
|
16
|
+
/// - Выполняет строгую проверку типа входного параметра
|
|
17
|
+
/// - Использует цикл для итерации по символам строки в обратном порядке
|
|
18
|
+
/// - Возвращает пустую строку для пустого входного значения
|
|
19
|
+
/// - Полезна для создания палиндромов или проверки симметрии текста
|
|
20
|
+
/// - Может использоваться для зеркального отображения текста в CSS
|
|
21
|
+
/// - Подходит для шифрования простых текстовых преобразований
|
|
22
|
+
/// - Обрабатывает строки любой длины
|
|
23
|
+
/// - Совместима с многострочными строками
|
|
24
|
+
/// - Сохраняет пробелы и специальные символы
|
|
25
|
+
/// - Функция использует цикл for с обратным порядком
|
|
26
|
+
/// итерации `(from $-length through 1)`. Это эффективный
|
|
27
|
+
/// способ перевернуть строку в Sass.
|
|
28
|
+
/// - Для палиндромов (строк, которые читаются одинаково
|
|
29
|
+
/// слева направо и справа налево) функция вернет исходную
|
|
30
|
+
/// строку без изменений.
|
|
31
|
+
/// - Функция корректно работает с Unicode-символами
|
|
32
|
+
/// (например, эмодзи или символами нелатинских алфавитов),
|
|
33
|
+
/// так как `string.slice()` в Sass правильно обрабатывает
|
|
34
|
+
/// Unicode.
|
|
35
|
+
/// - Производительность функции снижается для очень
|
|
36
|
+
/// длинных строк (сотни символов), так как каждый символ
|
|
37
|
+
/// обрабатывается в отдельной итерации цикла.
|
|
38
|
+
/// ---
|
|
39
|
+
/// @name string-reverse
|
|
40
|
+
/// @group utilities-helpers
|
|
41
|
+
/// @since 2026.01.18
|
|
42
|
+
/// @access public
|
|
43
|
+
/// @author Murad Rustamov (therteenten)
|
|
44
|
+
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
45
|
+
/// @link https://sourcecraft.dev/omnisass/library SourceCraft - OmniSass
|
|
46
|
+
/// @link https://sass-lang.com/documentation/modules/string См. также: Официальная документация Sass - Модуль String
|
|
47
|
+
/// @link https://sass-lang.com/documentation/values/strings См. также: Официальная документация Sass - Тип данных "Строки"
|
|
48
|
+
/// @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String См. также: MDN Web Docs - Объект String
|
|
49
|
+
/// @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse См. также: MDN Web Docs - Метод Array.reverse()
|
|
50
|
+
/// @link https://en.wikipedia.org/wiki/Palindrome См. также: Wikipedia - Палиндром
|
|
51
|
+
/// @link https://en.wikipedia.org/wiki/String_(computer_science) См. также: Wikipedia - Строка (информатика)
|
|
52
|
+
/// @link https://css-tricks.com/snippets/sass/string-reverse-function/ См. также: CSS-Tricks - Функция реверса строк в Sass
|
|
53
|
+
/// @link https://css-tricks.com/sass-string-manipulation-functions/ См. также: CSS-Tricks - Функции для работы со строками в Sass
|
|
54
|
+
/// @link https://sass-guidelin.es/ru/#section-44 См. также: Sass Guidelines - Раздел про функции
|
|
55
|
+
/// @link https://github.com/sass/sass/issues/1402 См. также: GitHub - Обсуждение строковых операций в Sass
|
|
56
|
+
/// @link https://www.30secondsofcode.org/sass/p/1/string-reverse См. также: 30 seconds of code - Функция string-reverse
|
|
57
|
+
/// @example scss - Базовое использование
|
|
58
|
+
/// @debug string-reverse("hello"); // "olleh"
|
|
59
|
+
/// @debug string-reverse("world"); // "dlrow"
|
|
60
|
+
/// @debug string-reverse("12345"); // "54321"
|
|
61
|
+
/// @debug string-reverse(""); // ""
|
|
62
|
+
/// @debug string-reverse("a"); // "a"
|
|
63
|
+
/// @example scss - Работа с пробелами и специальными символами
|
|
64
|
+
/// @debug string-reverse("hello world"); // "dlrow olleh"
|
|
65
|
+
/// @debug string-reverse("a b c"); // "c b a"
|
|
66
|
+
/// @debug string-reverse("test!"); // "!tset"
|
|
67
|
+
/// @debug string-reverse("привет"); // "тевирп"
|
|
68
|
+
/// @example scss - Создание зеркальных эффектов
|
|
69
|
+
/// @debug string-reverse("CSS"); // "SSC"
|
|
70
|
+
/// @debug string-reverse("level"); // "level" (палиндром)
|
|
71
|
+
/// @debug string-reverse("radar"); // "radar" (палиндром)
|
|
72
|
+
/// @debug string-reverse("madam"); // "madam" (палиндром)
|
|
73
|
+
/// @param {String} $string - Исходная строка для переворачивания.
|
|
74
|
+
/// Может быть любой строкой: пустой, односимвольной,
|
|
75
|
+
/// многосимвольной, содержащей пробелы, Unicode-символы,
|
|
76
|
+
/// цифры или специальные символы. Все символы сохраняются
|
|
77
|
+
/// и меняют только порядок следования.
|
|
78
|
+
/// @return {String} - Новая строка, содержащая все символы
|
|
79
|
+
/// исходной строки в обратном порядке. Для пустой строки
|
|
80
|
+
/// возвращается пустая строка. Для строки из одного символа
|
|
81
|
+
/// возвращается та же строка (так как порядок не меняется).
|
|
82
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
83
|
+
/// значение, не соответствующее необходимому типу:
|
|
84
|
+
///
|
|
85
|
+
/// - `$string` → `string`
|
|
86
|
+
@function string-reverse($string) {
|
|
87
|
+
|
|
88
|
+
// Проверка типа входного параметра: ожидается строковое значение.
|
|
89
|
+
// Функция предназначена для работы исключительно со строками,
|
|
90
|
+
// так как операция реверса имеет смысл только для последовательности
|
|
91
|
+
// символов.
|
|
92
|
+
@if not is-string($string) {
|
|
93
|
+
|
|
94
|
+
// Если $string не является строкой, возвращаем ошибку через
|
|
95
|
+
// стандартную функцию логирования. Это предотвращает
|
|
96
|
+
// некорректные операции с нестроковыми типами данных.
|
|
97
|
+
@return log-invalid-type(
|
|
98
|
+
'string-reverse',
|
|
99
|
+
$string,
|
|
100
|
+
'$string',
|
|
101
|
+
'string'
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Параметр прошел валидацию - переворачиваем строку.
|
|
107
|
+
@else {
|
|
108
|
+
|
|
109
|
+
// Инициализация переменной результата.
|
|
110
|
+
// Начальное значение null позволяет начать конкатенацию
|
|
111
|
+
// с первого символа без специальной обработки.
|
|
112
|
+
$-result: null;
|
|
113
|
+
|
|
114
|
+
// Определение длины входной строки.
|
|
115
|
+
// Длина используется для итерации по символам строки
|
|
116
|
+
// в обратном порядке.
|
|
117
|
+
$-length: string.length($string);
|
|
118
|
+
|
|
119
|
+
// Цикл итерации по символам строки в обратном порядке.
|
|
120
|
+
// Начинаем с последнего символа (индекс $-length) и
|
|
121
|
+
// движемся к первому символу (индекс 1).
|
|
122
|
+
@for $i from $-length through 1 {
|
|
123
|
+
|
|
124
|
+
// Извлечение текущего символа строки по индексу.
|
|
125
|
+
// string.slice($string, $i, $i) возвращает один символ
|
|
126
|
+
// на позиции $i. Индексация в Sass начинается с 1.
|
|
127
|
+
$-result: $-result + string.slice($string, $i, $i);
|
|
128
|
+
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Возвращаем перевернутую строку.
|
|
132
|
+
// Если исходная строка была пустой, $-length = 0,
|
|
133
|
+
// цикл не выполнится ни разу, и функция вернет null,
|
|
134
|
+
// который в контексте строки преобразуется в пустую строку.
|
|
135
|
+
@return $-result;
|
|
136
|
+
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
}
|
|
@@ -50,9 +50,10 @@
|
|
|
50
50
|
/// @return {String} - Возвращает новую строку, в которой удалены
|
|
51
51
|
/// все пробелы с конца оригинальной строки.
|
|
52
52
|
/// Если строка состоит только из пробелов, возвращается пустая строка.
|
|
53
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
54
|
-
/// значение, не соответствующее
|
|
55
|
-
///
|
|
53
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
54
|
+
/// значение, не соответствующее необходимому типу:
|
|
55
|
+
///
|
|
56
|
+
/// - `$string` → `string`
|
|
56
57
|
@function string-trim-end($string) {
|
|
57
58
|
|
|
58
59
|
// Проверка типа входного параметра: ожидается строковое значение.
|
|
@@ -50,9 +50,10 @@
|
|
|
50
50
|
/// @return {String} - Возвращает новую строку, в которой удалены
|
|
51
51
|
/// все пробелы с начала оригинальной строки.
|
|
52
52
|
/// Если строка состоит только из пробелов, возвращается пустая строка.
|
|
53
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
54
|
-
/// значение, не соответствующее
|
|
55
|
-
///
|
|
53
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
54
|
+
/// значение, не соответствующее необходимому типу:
|
|
55
|
+
///
|
|
56
|
+
/// - `$string` → `string`
|
|
56
57
|
@function string-trim-start($string) {
|
|
57
58
|
|
|
58
59
|
// Проверка типа входного параметра: ожидается строковое значение.
|
|
@@ -51,9 +51,10 @@
|
|
|
51
51
|
/// @return {String} - Возвращает новую строку, в которой удалены
|
|
52
52
|
/// все пробелы с начала и конца оригинальной строки.
|
|
53
53
|
/// Если строка состоит только из пробелов, возвращается пустая строка.
|
|
54
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
55
|
-
/// значение, не соответствующее
|
|
56
|
-
///
|
|
54
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
55
|
+
/// значение, не соответствующее необходимому типу:
|
|
56
|
+
///
|
|
57
|
+
/// - `$string` → `string`
|
|
57
58
|
@function string-trim($string) {
|
|
58
59
|
|
|
59
60
|
// Проверка типа входного параметра: ожидается строковое значение.
|
|
@@ -127,10 +127,11 @@
|
|
|
127
127
|
/// используется значение 50%, которое является
|
|
128
128
|
/// общепринятым разделением между светлыми и темными
|
|
129
129
|
/// тонами. Можно изменить для тонкой настройки.
|
|
130
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
131
|
-
/// значение, не соответствующее
|
|
132
|
-
///
|
|
133
|
-
///
|
|
130
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
131
|
+
/// значение, не соответствующее необходимому типу:
|
|
132
|
+
///
|
|
133
|
+
/// - `$color` → `color`
|
|
134
|
+
/// - `$threshold` → `number`
|
|
134
135
|
@function is-color-light($color, $threshold: 50) {
|
|
135
136
|
|
|
136
137
|
// Проверка типа первого параметра: ожидается цветовое значение.
|
|
@@ -103,9 +103,10 @@
|
|
|
103
103
|
/// в списке являются цветами. Возвращает `false`, если
|
|
104
104
|
/// хотя бы один элемент не является цветом. Для пустого
|
|
105
105
|
/// списка возвращает `true`.
|
|
106
|
-
/// @throws {Error} - Выбрасывает ошибку, если
|
|
107
|
-
/// значение, не соответствующее
|
|
108
|
-
///
|
|
106
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
107
|
+
/// значение, не соответствующее необходимому типу:
|
|
108
|
+
///
|
|
109
|
+
/// - `$list` → `list`
|
|
109
110
|
@function is-color-list($list) {
|
|
110
111
|
|
|
111
112
|
// Проверка типа входного параметра: ожидается список или arglist.
|
|
@@ -56,13 +56,14 @@
|
|
|
56
56
|
///
|
|
57
57
|
/// position: $position;
|
|
58
58
|
/// }
|
|
59
|
-
/// @param {*} $value - Значение для поиска в списке
|
|
60
59
|
/// @param {List} $list - Список, в котором выполняется поиск
|
|
60
|
+
/// @param {*} $value - Значение для поиска в списке
|
|
61
61
|
/// @return {Boolean} - Возвращает `true`, если значение
|
|
62
62
|
/// найдено в списке, иначе возвращает `false`.
|
|
63
|
-
/// @throws {Error} - Выбрасывает ошибку, если
|
|
64
|
-
/// значение, не соответствующее
|
|
65
|
-
///
|
|
63
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
64
|
+
/// значение, не соответствующее необходимому типу:
|
|
65
|
+
///
|
|
66
|
+
/// - `$list` → `list`
|
|
66
67
|
@function is-list-contained($list, $value) {
|
|
67
68
|
|
|
68
69
|
// Проверка типа первого параметра: ожидается список или arglist.
|
|
@@ -64,9 +64,10 @@
|
|
|
64
64
|
/// является целым числом и делится на 2 без остатка.
|
|
65
65
|
/// Во всех остальных случаях возвращает `false`,
|
|
66
66
|
/// включая нецелые числа и значения других типов.
|
|
67
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
68
|
-
/// значение, не соответствующее
|
|
69
|
-
///
|
|
67
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
68
|
+
/// значение, не соответствующее необходимому типу:
|
|
69
|
+
///
|
|
70
|
+
/// - `$value` → `number`
|
|
70
71
|
@function is-int-even($value) {
|
|
71
72
|
|
|
72
73
|
// Проверка типа входного параметра: ожидается числовое значение.
|
|
@@ -65,9 +65,10 @@
|
|
|
65
65
|
/// является целым числом и не делится на 2 без остатка.
|
|
66
66
|
/// Во всех остальных случаях возвращает `false`,
|
|
67
67
|
/// включая нецелые числа и значения других типов.
|
|
68
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
69
|
-
/// значение, не соответствующее
|
|
70
|
-
///
|
|
68
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
69
|
+
/// значение, не соответствующее необходимому типу:
|
|
70
|
+
///
|
|
71
|
+
/// - `$value` → `number`
|
|
71
72
|
@function is-int-odd($value) {
|
|
72
73
|
|
|
73
74
|
// Проверка типа входного параметра: ожидается числовое значение.
|
|
@@ -120,9 +120,11 @@
|
|
|
120
120
|
/// строгой проверки типов.
|
|
121
121
|
/// @return {Boolean} - `true` если значение является
|
|
122
122
|
/// целым числом, `false` во всех остальных случаях.
|
|
123
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
124
|
-
/// значение, не соответствующее
|
|
125
|
-
///
|
|
123
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
124
|
+
/// значение, не соответствующее необходимому типу:
|
|
125
|
+
///
|
|
126
|
+
/// - `$value` → `number`
|
|
127
|
+
/// - `$set-strict-mode-local` → `boolean`
|
|
126
128
|
@function is-int($value, $set-strict-mode-local: true) {
|
|
127
129
|
|
|
128
130
|
// Проверка строгого режима: если включен, выполняется
|
|
@@ -78,9 +78,10 @@
|
|
|
78
78
|
/// `math.unit($value)` не является пустой строкой).
|
|
79
79
|
/// Возвращает `false` для безразмерных чисел и всех
|
|
80
80
|
/// нечисловых значений.
|
|
81
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
82
|
-
/// значение, не соответствующее
|
|
83
|
-
///
|
|
81
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
82
|
+
/// значение, не соответствующее необходимому типу:
|
|
83
|
+
///
|
|
84
|
+
/// - `$value` → `number`
|
|
84
85
|
@function is-number-has-unit($value) {
|
|
85
86
|
|
|
86
87
|
// Проверка типа входного параметра: ожидается числовое значение.
|
|
@@ -70,9 +70,10 @@
|
|
|
70
70
|
/// является числом и строго меньше нуля. Во всех
|
|
71
71
|
/// остальных случаях возвращает `false`, включая
|
|
72
72
|
/// ноль, положительные числа и значения других типов.
|
|
73
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
74
|
-
/// значение, не соответствующее
|
|
75
|
-
///
|
|
73
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
74
|
+
/// значение, не соответствующее необходимому типу:
|
|
75
|
+
///
|
|
76
|
+
/// - `$value` → `number`
|
|
76
77
|
@function is-number-negative($value) {
|
|
77
78
|
|
|
78
79
|
// Проверка типа входного параметра: ожидается числовое значение.
|
|
@@ -68,9 +68,10 @@
|
|
|
68
68
|
/// является числом и строго больше нуля. Во всех
|
|
69
69
|
/// остальных случаях возвращает `false`, включая
|
|
70
70
|
/// ноль, отрицательные числа и значения других типов.
|
|
71
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
72
|
-
/// значение, не соответствующее
|
|
73
|
-
///
|
|
71
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
72
|
+
/// значение, не соответствующее необходимому типу:
|
|
73
|
+
///
|
|
74
|
+
/// - `$value` → `number`
|
|
74
75
|
@function is-number-positive($value) {
|
|
75
76
|
|
|
76
77
|
// Проверка типа входного параметра: ожидается числовое значение.
|
|
@@ -81,9 +81,10 @@
|
|
|
81
81
|
/// `math.unit($value)` является пустой строкой).
|
|
82
82
|
/// Возвращает `false` для чисел с единицами измерения и всех
|
|
83
83
|
/// нечисловых значений.
|
|
84
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
85
|
-
/// значение, не соответствующее
|
|
86
|
-
///
|
|
84
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
85
|
+
/// значение, не соответствующее необходимому типу:
|
|
86
|
+
///
|
|
87
|
+
/// - `$value` → `number`
|
|
87
88
|
@function is-number-unitless($value) {
|
|
88
89
|
|
|
89
90
|
// Проверка типа входного параметра: ожидается числовое значение.
|
|
@@ -69,9 +69,10 @@
|
|
|
69
69
|
/// является числом и строго равно нулю. Во всех
|
|
70
70
|
/// остальных случаях возвращает `false`, включая
|
|
71
71
|
/// ненулевые числа и значения других типов.
|
|
72
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
73
|
-
/// значение, не соответствующее
|
|
74
|
-
///
|
|
72
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
73
|
+
/// значение, не соответствующее необходимому типу:
|
|
74
|
+
///
|
|
75
|
+
/// - `$value` → `number`
|
|
75
76
|
@function is-number-zero($value) {
|
|
76
77
|
|
|
77
78
|
// Проверка типа входного параметра: ожидается числовое значение.
|
|
@@ -102,9 +102,11 @@
|
|
|
102
102
|
/// и `false` в противном случае. Возвращаемые значения:
|
|
103
103
|
/// - `true`: подстрока существует в строке (хотя бы одно вхождение)
|
|
104
104
|
/// - `false`: подстрока не найдена или является пустой строкой
|
|
105
|
-
/// @throws {Error} - Выбрасывает ошибку, если
|
|
106
|
-
/// значение, не соответствующее
|
|
107
|
-
///
|
|
105
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
106
|
+
/// значение, не соответствующее необходимому типу:
|
|
107
|
+
///
|
|
108
|
+
/// - `$string` → `string`
|
|
109
|
+
/// - `$substring` → `string`
|
|
108
110
|
@function is-string-contained($string, $substring) {
|
|
109
111
|
|
|
110
112
|
// Проверка типа первого параметра: ожидается строка для поиска.
|
|
@@ -50,9 +50,10 @@
|
|
|
50
50
|
/// @return {Boolean} - Возвращает `true`, если длина строки
|
|
51
51
|
/// равна нулю. Возвращает `false` для любой строки
|
|
52
52
|
/// ненулевой длины, а также для значений других типов.
|
|
53
|
-
/// @throws {Error} - Выбрасывает ошибку, если в
|
|
54
|
-
/// значение, не соответствующее
|
|
55
|
-
///
|
|
53
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
54
|
+
/// значение, не соответствующее необходимому типу:
|
|
55
|
+
///
|
|
56
|
+
/// - `$string` → `string`
|
|
56
57
|
@function is-string-empty($string) {
|
|
57
58
|
|
|
58
59
|
// Проверка типа входного параметра: ожидается строковое значение.
|
|
@@ -56,9 +56,11 @@
|
|
|
56
56
|
/// указанной подстрокой. Возвращает `false`, если строка не заканчивается
|
|
57
57
|
/// подстрокой, если подстрока длиннее строки, или если регистр
|
|
58
58
|
/// символов не совпадает.
|
|
59
|
-
/// @throws {Error} - Выбрасывает ошибку, если
|
|
60
|
-
/// значение, не соответствующее
|
|
61
|
-
///
|
|
59
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
60
|
+
/// значение, не соответствующее необходимому типу:
|
|
61
|
+
///
|
|
62
|
+
/// - `$string` → `string`
|
|
63
|
+
/// - `$substring` → `string`
|
|
62
64
|
@function is-string-ending-with($string, $substring) {
|
|
63
65
|
|
|
64
66
|
// Проверка типа первого параметра: ожидается строка для проверки.
|
|
@@ -56,9 +56,11 @@
|
|
|
56
56
|
/// с указанной подстроки. Возвращает `false`, если строка не
|
|
57
57
|
/// начинается с подстроки, если подстрока длиннее строки, или
|
|
58
58
|
/// если регистр символов не совпадает.
|
|
59
|
-
/// @throws {Error} - Выбрасывает ошибку, если
|
|
60
|
-
/// значение, не соответствующее
|
|
61
|
-
///
|
|
59
|
+
/// @throws {Error} - Выбрасывает ошибку, если в параметр передано
|
|
60
|
+
/// значение, не соответствующее необходимому типу:
|
|
61
|
+
///
|
|
62
|
+
/// - `$string` → `string`
|
|
63
|
+
/// - `$substring` → `string`
|
|
62
64
|
@function is-string-starting-with($string, $substring) {
|
|
63
65
|
|
|
64
66
|
// Проверка типа первого параметра: ожидается строка для проверки.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omnisass/library",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Библиотека функций и миксинов, написанная на языке CSS-препроцессора Sass. Она предназначена для того, чтобы упростить, ускорить и улучшить процесс создания стилей для веб-сайтов.",
|
|
5
5
|
"main": "index.scss",
|
|
6
6
|
"scripts": {
|