@topvisor/ui 0.9.34-utils-components-7 → 0.9.35-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/.chunks/{datepicker-CIbLjf_3.amd.js → datepicker-BG0u8UXv.amd.js} +8 -7
- package/.chunks/datepicker-BG0u8UXv.amd.js.map +1 -0
- package/.chunks/{datepicker-Bh_DAFqD.es.js → datepicker-Dmeojg66.es.js} +30 -28
- package/.chunks/datepicker-Dmeojg66.es.js.map +1 -0
- package/.chunks/{forms-BfIXIMY_.es.js → forms-CPEVHoks.es.js} +303 -320
- package/.chunks/forms-CPEVHoks.es.js.map +1 -0
- package/.chunks/forms-oowSA2rF.amd.js +3 -0
- package/.chunks/forms-oowSA2rF.amd.js.map +1 -0
- package/.chunks/i18n-eDh3Aaw9.amd.js +2 -0
- package/.chunks/i18n-eDh3Aaw9.amd.js.map +1 -0
- package/.chunks/i18n-qpB8zyhD.es.js +20 -0
- package/.chunks/i18n-qpB8zyhD.es.js.map +1 -0
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-CaBP5R7L.amd.js → listItem.vue_vue_type_script_setup_true_lang-CkZHzNZU.amd.js} +2 -2
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CkZHzNZU.amd.js.map +1 -0
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-DJZS6vRL.es.js → listItem.vue_vue_type_script_setup_true_lang-Dlm9Et7q.es.js} +2 -2
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-Dlm9Et7q.es.js.map +1 -0
- package/.chunks/{menu-24EpQtdy.es.js → menu-CiQMMrnp.es.js} +2 -2
- package/.chunks/{menu-24EpQtdy.es.js.map → menu-CiQMMrnp.es.js.map} +1 -1
- package/.chunks/{menu-DV1iSTyB.amd.js → menu-SmyeSNWQ.amd.js} +2 -2
- package/.chunks/{menu-DV1iSTyB.amd.js.map → menu-SmyeSNWQ.amd.js.map} +1 -1
- package/.chunks/{popup-DokMLyGf.es.js → popup-Bv_sxmoj.es.js} +55 -53
- package/.chunks/popup-Bv_sxmoj.es.js.map +1 -0
- package/.chunks/popup-ClvUyl7S.amd.js +441 -0
- package/.chunks/popup-ClvUyl7S.amd.js.map +1 -0
- package/.chunks/{store-PoMCiuBr.es.js → store-CX_6ZXhO.es.js} +12 -12
- package/.chunks/store-CX_6ZXhO.es.js.map +1 -0
- package/.chunks/store-esTid5oI.amd.js +2 -0
- package/.chunks/store-esTid5oI.amd.js.map +1 -0
- package/assets/forms.css +1 -1
- package/components/forms/forms.d.ts +0 -5
- package/components/forms/inputDate/inputDate.d.ts +1 -1
- package/components/popup/lib/popup.d.ts +19 -11
- package/components/popup/lib/worker.d.ts +15 -12
- package/components/project/selectorCompetitors/composables.d.ts +1 -2
- package/components/project/selectorCompetitors/selectorCompetitors.d.ts +3 -1
- package/components/tabsView/tabsView/tabsView.d.ts +1 -1
- package/core/app.amd.js +1 -1
- package/core/app.amd.js.map +1 -1
- package/core/app.js +128 -131
- package/core/app.js.map +1 -1
- package/core/core/core.d.ts +5 -20
- package/core/core/events.d.ts +2 -2
- package/core/core/state.d.ts +2 -3
- package/core/core.amd.js +1 -1
- package/core/core.js +1 -1
- package/core/directives/swimUp.d.ts +8 -2
- package/core/plugins/core.d.ts +5 -4
- package/core/plugins/i18n.d.ts +1 -1
- package/core/plugins/piniaTPA.d.ts +7 -7
- package/core/utils/check.d.ts +4 -0
- package/core/utils/clipboard.d.ts +9 -0
- package/core/utils/css.d.ts +39 -2
- package/core/utils/date.d.ts +4 -0
- package/core/utils/device.d.ts +4 -0
- package/core/utils/dom.d.ts +13 -13
- package/core/utils/image.d.ts +4 -0
- package/core/utils/keyboard.d.ts +5 -1
- package/core/utils/number.d.ts +4 -0
- package/core/utils/price.d.ts +2 -1
- package/core/utils/route.d.ts +7 -0
- package/core/utils/scroll.d.ts +4 -0
- package/core/utils/store/plugin.d.ts +18 -4
- package/core/utils/store/store.d.ts +1 -1
- package/core/utils/store.d.ts +4 -0
- package/core/utils/string.d.ts +8 -2
- package/core/utils/system.d.ts +4 -0
- package/core/utils/url.d.ts +6 -2
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +5 -5
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.amd.js.map +1 -1
- package/formsExt/formsExt.js +3 -3
- package/formsExt/formsExt.js.map +1 -1
- package/package.json +8 -7
- package/popup/popup.amd.js +1 -1
- package/popup/popup.js +8 -8
- package/popup/worker.amd.js +1 -1
- package/popup/worker.amd.js.map +1 -1
- package/popup/worker.js +9 -6
- package/popup/worker.js.map +1 -1
- package/project/project.amd.js +1 -1
- package/project/project.js +3 -3
- package/tabs/tabs.amd.js +1 -1
- package/tabs/tabs.js +1 -1
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.amd.js.map +1 -1
- package/tabsView/tabsView.js +2 -2
- package/tabsView/tabsView.js.map +1 -1
- package/utils/check.amd.js.map +1 -1
- package/utils/check.js.map +1 -1
- package/utils/clipboard.amd.js.map +1 -1
- package/utils/clipboard.js.map +1 -1
- package/utils/css.amd.js +1 -1
- package/utils/css.amd.js.map +1 -1
- package/utils/css.js +36 -29
- package/utils/css.js.map +1 -1
- package/utils/date.amd.js +1 -1
- package/utils/date.js +2 -2
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/dom.amd.js +1 -1
- package/utils/dom.amd.js.map +1 -1
- package/utils/dom.js +12 -1
- package/utils/dom.js.map +1 -1
- package/utils/image.amd.js +11 -1
- package/utils/image.amd.js.map +1 -1
- package/utils/image.js +11 -1
- package/utils/image.js.map +1 -1
- package/utils/keyboard.amd.js +1 -1
- package/utils/keyboard.amd.js.map +1 -1
- package/utils/keyboard.js +7 -7
- package/utils/keyboard.js.map +1 -1
- package/utils/number.amd.js.map +1 -1
- package/utils/number.js.map +1 -1
- package/utils/price.amd.js +1 -1
- package/utils/price.amd.js.map +1 -1
- package/utils/price.js +7 -9
- package/utils/price.js.map +1 -1
- package/utils/route.amd.js +1 -1
- package/utils/route.amd.js.map +1 -1
- package/utils/route.js +15 -15
- package/utils/route.js.map +1 -1
- package/utils/scroll.amd.js +1 -1
- package/utils/scroll.amd.js.map +1 -1
- package/utils/scroll.js +8 -9
- package/utils/scroll.js.map +1 -1
- package/utils/store.amd.js +1 -1
- package/utils/store.js +1 -1
- package/utils/string.amd.js +1 -1
- package/utils/string.amd.js.map +1 -1
- package/utils/string.js +28 -31
- package/utils/string.js.map +1 -1
- package/utils/system.amd.js.map +1 -1
- package/utils/system.js.map +1 -1
- package/utils/url.amd.js.map +1 -1
- package/utils/url.js.map +1 -1
- package/web-types.json +72 -62
- package/.chunks/datepicker-Bh_DAFqD.es.js.map +0 -1
- package/.chunks/datepicker-CIbLjf_3.amd.js.map +0 -1
- package/.chunks/forms-BfIXIMY_.es.js.map +0 -1
- package/.chunks/forms-C__H1yL_.amd.js +0 -3
- package/.chunks/forms-C__H1yL_.amd.js.map +0 -1
- package/.chunks/i18n-Cmnd329V.es.js +0 -23
- package/.chunks/i18n-Cmnd329V.es.js.map +0 -1
- package/.chunks/i18n-NZvMjWv9.amd.js +0 -2
- package/.chunks/i18n-NZvMjWv9.amd.js.map +0 -1
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-CaBP5R7L.amd.js.map +0 -1
- package/.chunks/listItem.vue_vue_type_script_setup_true_lang-DJZS6vRL.es.js.map +0 -1
- package/.chunks/popup-B0KN_4e5.amd.js +0 -440
- package/.chunks/popup-B0KN_4e5.amd.js.map +0 -1
- package/.chunks/popup-DokMLyGf.es.js.map +0 -1
- package/.chunks/store-Bl79G7T_.amd.js +0 -2
- package/.chunks/store-Bl79G7T_.amd.js.map +0 -1
- package/.chunks/store-PoMCiuBr.es.js.map +0 -1
- package/core/utils/window.d.ts +0 -1
- package/utils/window.amd.js +0 -2
- package/utils/window.amd.js.map +0 -1
- package/utils/window.d.ts +0 -1
- package/utils/window.js +0 -5
- package/utils/window.js.map +0 -1
package/core/core/core.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { default as defaultOptions } from './options';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
* Статический класс с текущим состоянимем
|
|
2
|
+
* Статический класс с текущим состоянимем UI
|
|
5
3
|
*/
|
|
6
4
|
export default class Core {
|
|
7
5
|
/**
|
|
@@ -23,30 +21,17 @@ export default class Core {
|
|
|
23
21
|
isLandscape: boolean;
|
|
24
22
|
isPortrait: boolean;
|
|
25
23
|
size: number;
|
|
26
|
-
isHidden: boolean;
|
|
27
24
|
};
|
|
28
25
|
static widthForMobile: number;
|
|
29
26
|
static matchMediaIsMobile?: MediaQueryList;
|
|
30
27
|
static $: typeof $ | undefined;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* Условная загрузка стилей m и pc отключена в пользу производительсности, стили грузятся всегда, но применяются по условию
|
|
35
|
-
* @param style - css стили в строке
|
|
36
|
-
* @param type - если указать 'm' или 'pc', то стили будут применяться по условию в зависимости от настройки this.widthForMobile
|
|
37
|
-
*/
|
|
38
|
-
static appendStyle(style: string, type?: '' | 'm' | 'pc'): void;
|
|
39
|
-
/**
|
|
40
|
-
* Установить конфигурацию UI
|
|
41
|
-
*/
|
|
42
|
-
static setOptions(options: typeof defaultOptions): void;
|
|
43
|
-
static setState(): void;
|
|
44
|
-
static onResize(): void;
|
|
45
|
-
static setStateByWindowSize(): void;
|
|
28
|
+
static _setState(): void;
|
|
29
|
+
private static onResize;
|
|
30
|
+
private static setStateByWindowSize;
|
|
46
31
|
/**
|
|
47
32
|
* Сохранить информацию об устройстве в cookie
|
|
48
33
|
*/
|
|
49
|
-
static saveToCookie
|
|
34
|
+
private static saveToCookie;
|
|
50
35
|
/**
|
|
51
36
|
* Проверить скрыта страница или нет
|
|
52
37
|
*/
|
package/core/core/events.d.ts
CHANGED
|
@@ -8,11 +8,11 @@ type TopEvent = Event & {
|
|
|
8
8
|
* Добавить обработчик на событие изменения размеров экрана
|
|
9
9
|
* вызов таких обработчиков будет опмизирован и объединен в одно событие
|
|
10
10
|
*/
|
|
11
|
-
declare function addOnReize(listener: (this:
|
|
11
|
+
declare function addOnReize(listener: (this: HTMLElement, ev: TopEvent) => any): void;
|
|
12
12
|
/**
|
|
13
13
|
* Удаление обработчика на событие изменений размеров экрана
|
|
14
14
|
*/
|
|
15
|
-
declare function removeOnResize(listener: (this:
|
|
15
|
+
declare function removeOnResize(listener: (this: HTMLElement, ev: TopEvent) => any): void;
|
|
16
16
|
declare const _default: {
|
|
17
17
|
addOnReize: typeof addOnReize;
|
|
18
18
|
removeOnResize: typeof removeOnResize;
|
package/core/core/state.d.ts
CHANGED
|
@@ -30,10 +30,9 @@ declare const state: {
|
|
|
30
30
|
* true при вертикальном расположении устройства
|
|
31
31
|
*/
|
|
32
32
|
isPortrait: boolean;
|
|
33
|
-
size: number;
|
|
34
33
|
/**
|
|
35
|
-
*
|
|
34
|
+
* Максимальная сторона страницы
|
|
36
35
|
*/
|
|
37
|
-
|
|
36
|
+
size: number;
|
|
38
37
|
};
|
|
39
38
|
export default state;
|
package/core/core.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../.chunks/forms-
|
|
1
|
+
define(["require","exports","vue","../.chunks/forms-oowSA2rF.amd"],function(i,e,u,r){"use strict";if(typeof u>"u")var u=window.Vue;e.default=r.Core,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
2
2
|
//# sourceMappingURL=core.amd.js.map
|
package/core/core.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { DirectiveBinding, VNode } from 'vue';
|
|
2
2
|
|
|
3
|
+
interface HTMLElementWithSwimUpOptions extends HTMLElement {
|
|
4
|
+
directiveSwipUpOptions: {
|
|
5
|
+
distance: number;
|
|
6
|
+
percent: number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
3
9
|
/**
|
|
4
10
|
* Добавление анимации подплытия вверх для блока
|
|
5
11
|
*/
|
|
6
12
|
declare const swimUp: {
|
|
7
|
-
mounted(el:
|
|
8
|
-
unmounted(el:
|
|
13
|
+
mounted(el: HTMLElementWithSwimUpOptions, binding: DirectiveBinding, _vnode: VNode): void;
|
|
14
|
+
unmounted(el: HTMLElementWithSwimUpOptions, _binding: DirectiveBinding, _vnode: VNode): void;
|
|
9
15
|
};
|
|
10
16
|
export default swimUp;
|
package/core/plugins/core.d.ts
CHANGED
|
@@ -5,9 +5,10 @@ import { App } from 'vue';
|
|
|
5
5
|
import * as Forms from '../../components/forms/forms';
|
|
6
6
|
declare module 'vue' {
|
|
7
7
|
interface ComponentCustomProperties {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Статический класс с текущим состоянимем UI
|
|
10
|
+
*/
|
|
11
|
+
$core: typeof Core;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* Обязательные компоненты UI
|
|
@@ -35,7 +36,7 @@ type Options = PartialBy<typeof coreDefaultOptions, 'gmt'>;
|
|
|
35
36
|
/**
|
|
36
37
|
* Плагин для интеграции UI во Vue приложение
|
|
37
38
|
*
|
|
38
|
-
* - В глобальную область видимости шаблонов будет добавлен объект $
|
|
39
|
+
* - В глобальную область видимости шаблонов будет добавлен объект $core
|
|
39
40
|
* - Будут зарегистрирвоаны директивы UI: https://ui.topvisor.com/?path=/docs/core-directives-focus--docs
|
|
40
41
|
* - Будут подключены базовые компоненты UI/Forms: https://ui.topvisor.com/?path=/docs/components-forms-readme--docs
|
|
41
42
|
*/
|
package/core/plugins/i18n.d.ts
CHANGED
|
@@ -3,16 +3,16 @@ import { PiniaPluginContext } from 'pinia';
|
|
|
3
3
|
/**
|
|
4
4
|
* Плагин tpa (Third-party access) для pinia
|
|
5
5
|
*
|
|
6
|
-
* Добавляет
|
|
6
|
+
* Добавляет возможность сохранять и загружать данные в/из:
|
|
7
|
+
* - URL hash в адресе страницы
|
|
7
8
|
* - localStorage
|
|
8
|
-
* - URL hash
|
|
9
9
|
* - гостевая ссылка
|
|
10
10
|
*
|
|
11
|
-
* Для
|
|
12
|
-
* - tpaNamesUrlHash
|
|
13
|
-
* - tpaNamesStorage
|
|
14
|
-
* - tpaNamesStorageLocal
|
|
15
|
-
* - tpaNamesGuestLink
|
|
11
|
+
* Для подключения плагина нужно указань одну или несколько опций при определении defineStore():
|
|
12
|
+
* - tpaNamesUrlHash
|
|
13
|
+
* - tpaNamesStorage
|
|
14
|
+
* - tpaNamesStorageLocal
|
|
15
|
+
* - tpaNamesGuestLink
|
|
16
16
|
*/
|
|
17
17
|
declare const _default: (contextPinia: PiniaPluginContext) => void;
|
|
18
18
|
export default _default;
|
package/core/utils/check.d.ts
CHANGED
package/core/utils/css.d.ts
CHANGED
|
@@ -1,6 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Упраление загрузками стилей
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Вставить css стили на страницу по ссылке с автоматическим добавлением правил media
|
|
7
|
+
*
|
|
8
|
+
* Правила media:
|
|
9
|
+
* - Файлы *.m.css будут грузиться, только на экранах с шириной менее, чем Core.widthForMobile
|
|
10
|
+
* - Файлы *.pc.css будут грузиться, только на экранах с шириной более, чем Core.widthForMobile
|
|
11
|
+
*
|
|
12
|
+
* Настройкой Core.widthForMobile можно управлять через plugin: @topvisor/ui/plugin/core
|
|
13
|
+
*
|
|
3
14
|
* @param fileNames - список ссылок на css файлы
|
|
4
|
-
* @param useSync - использовать синхронную загрузку css, только для css с того же
|
|
15
|
+
* @param useSync - использовать синхронную загрузку css, только для css с того же домена. В синхронном режиме стили предзагружаются независимо от
|
|
16
|
+
* media
|
|
5
17
|
*/
|
|
6
18
|
export declare const insertToPage: (fileNames: Array<string>, useSync?: boolean) => Promise<unknown[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Вставить css стили на страницу с автоматическим добавлением правил media
|
|
21
|
+
*
|
|
22
|
+
* Загрузка с Vite:
|
|
23
|
+
*
|
|
24
|
+
* ```js
|
|
25
|
+
* import style from '/style.css?raw';
|
|
26
|
+
*
|
|
27
|
+
* insertToPageAsInine(style);
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* Загрузка с fetch:
|
|
31
|
+
*
|
|
32
|
+
* ```js
|
|
33
|
+
* const style = await fetch('./style.css');
|
|
34
|
+
*
|
|
35
|
+
* insertToPageAsInine(style);
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @param style - css стили в строке
|
|
39
|
+
* @param type - если указать 'm' или 'pc', то стили будут применяться по условию в зависимости от настройки this.widthForMobile
|
|
40
|
+
*
|
|
41
|
+
* @see insertToPage
|
|
42
|
+
*/
|
|
43
|
+
export declare const insertToPageAsInine: (style: string, type?: "" | "m" | "pc") => void;
|
package/core/utils/date.d.ts
CHANGED
package/core/utils/device.d.ts
CHANGED
package/core/utils/dom.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Работа с Document Object Model (DOM)
|
|
3
|
+
* @packageDocumentation
|
|
3
4
|
*/
|
|
4
5
|
/**
|
|
5
6
|
* Создать элемент
|
|
@@ -8,19 +9,19 @@
|
|
|
8
9
|
* @param elsChildrens
|
|
9
10
|
* @returns - созданный элемент
|
|
10
11
|
*/
|
|
11
|
-
declare function genEl(tagName: string, attrs: any, ...elsChildrens:
|
|
12
|
+
export declare function genEl(tagName: string, attrs: any, ...elsChildrens: HTMLElement[] | string[]): HTMLElement;
|
|
12
13
|
/**
|
|
13
14
|
* Проверить видимость элемента
|
|
14
15
|
* @param el
|
|
15
16
|
* @returns - вернет true, если элемент считается видимым
|
|
16
17
|
*/
|
|
17
|
-
declare function isVisible(el?:
|
|
18
|
+
export declare function isVisible(el?: HTMLElement): boolean;
|
|
18
19
|
/**
|
|
19
20
|
* Получить координаты элемента относительно документа
|
|
20
21
|
* @param el
|
|
21
22
|
* @returns - координаты элемента относительно документа
|
|
22
23
|
*/
|
|
23
|
-
declare function offset(el:
|
|
24
|
+
export declare function offset(el: HTMLElement): {
|
|
24
25
|
top: number;
|
|
25
26
|
left: number;
|
|
26
27
|
};
|
|
@@ -30,38 +31,37 @@ declare function offset(el: Element): {
|
|
|
30
31
|
* @param property - имя свойства
|
|
31
32
|
* @return - значение css стиля
|
|
32
33
|
*/
|
|
33
|
-
declare function css(el:
|
|
34
|
+
export declare function css(el: HTMLElement, property: string): string;
|
|
34
35
|
/**
|
|
35
36
|
* Обернуть элемент и вернуть только что созданный элемент
|
|
36
37
|
* @param el - элемент, который требуется обернуть
|
|
37
38
|
* @param tagName - имя тега элемента, в который треубется обернуть элемент
|
|
38
39
|
*/
|
|
39
|
-
declare function wrap(el:
|
|
40
|
+
export declare function wrap(el: HTMLElement, tagName: string): HTMLElement;
|
|
40
41
|
/**
|
|
41
42
|
* Найти и вернуть первый видимый элемент
|
|
42
43
|
* @param el - корневой элемент поиска
|
|
43
44
|
* @param selectors - см. параметр selectors в Document.querySelectorAll()
|
|
44
45
|
*/
|
|
45
|
-
declare function querySelectorVisible(el:
|
|
46
|
+
export declare function querySelectorVisible(el: HTMLElement, selectors: string): HTMLElement | null;
|
|
46
47
|
/**
|
|
47
48
|
* Найти и вернуть последний видимый элемент
|
|
48
49
|
* @param el - корневой элемент поиска
|
|
49
50
|
* @param selectors - см. параметр selectors в Document.querySelectorAll()
|
|
50
51
|
*/
|
|
51
|
-
declare function querySelectorVisibleLast(el:
|
|
52
|
+
export declare function querySelectorVisibleLast(el: HTMLElement, selectors: string): HTMLElement | null;
|
|
52
53
|
/**
|
|
53
54
|
* Найти видимые элементы
|
|
54
55
|
* @param el - корневой элемент поиска
|
|
55
56
|
* @param selectors - см. параметр selectors в Document.querySelectorAll()
|
|
56
|
-
* @returns - обратите внимание, возвращается не NodeList[], а Element[]
|
|
57
57
|
*/
|
|
58
|
-
declare function querySelectorAllVisible(el:
|
|
58
|
+
export declare function querySelectorAllVisible(el: HTMLElement | Document, selectors: string): HTMLElement[];
|
|
59
59
|
/**
|
|
60
60
|
* Найти элементы и вернуть в виде массива
|
|
61
61
|
* @param el - корневой элемент поиска
|
|
62
62
|
* @param selectors - см. параметр selectors в Document.querySelectorAll()
|
|
63
63
|
*/
|
|
64
|
-
declare function querySelectorAllArray(el:
|
|
64
|
+
export declare function querySelectorAllArray(el: HTMLElement | Document, selectors: string): HTMLElement[];
|
|
65
65
|
/**
|
|
66
66
|
* Хранилище данных элемента
|
|
67
67
|
* @param el
|
|
@@ -69,13 +69,13 @@ declare function querySelectorAllArray(el: Element | Document, selectors: string
|
|
|
69
69
|
* @param contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных
|
|
70
70
|
* @returns - вернет объект контекста или undefined, если данные контекста не найдены
|
|
71
71
|
*/
|
|
72
|
-
declare function storage(el?:
|
|
72
|
+
export declare function storage(el?: HTMLElement & {
|
|
73
73
|
topData?: any;
|
|
74
74
|
}, contextName?: string, contextData?: object | null | undefined): any | undefined;
|
|
75
75
|
/**
|
|
76
76
|
* Очистить хранилище элемента
|
|
77
77
|
*/
|
|
78
|
-
declare function storageClear(el?:
|
|
78
|
+
export declare function storageClear(el?: HTMLElement & {
|
|
79
79
|
topData?: any;
|
|
80
80
|
}): void;
|
|
81
81
|
declare const _default: {
|
package/core/utils/image.d.ts
CHANGED
package/core/utils/keyboard.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Утилиты для работы с устройствами ввода
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
/**
|
|
2
6
|
* Перевод строки в другую раскладку
|
|
3
7
|
*/
|
|
4
|
-
export declare
|
|
8
|
+
export declare const invertKeyboardLayout: (string: string) => string;
|
package/core/utils/number.d.ts
CHANGED
package/core/utils/price.d.ts
CHANGED
package/core/utils/route.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Управление навигацией страницы, работа с hash параметрами страницы
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
/**
|
|
2
6
|
* Получить значение хэш параметра страницы
|
|
3
7
|
*/
|
|
@@ -20,7 +24,10 @@ export declare const genHash: (name: string, value: string | null, locationHash?
|
|
|
20
24
|
export declare const setHashs: (data: Map<string, string> | object | any, replaceState: boolean) => void;
|
|
21
25
|
/**
|
|
22
26
|
* Установть позицию в истории вкладки браузера
|
|
27
|
+
*
|
|
23
28
|
* @see history.replaceState
|
|
24
29
|
* @see history.pushState
|
|
30
|
+
*
|
|
31
|
+
* @todo Мешает SPA сайта, требуется сделать центролизированное управление
|
|
25
32
|
*/
|
|
26
33
|
export declare const historySetState: (replace: boolean | undefined, hash: string) => void;
|
package/core/utils/scroll.d.ts
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import { Store } from './store';
|
|
2
2
|
import { App } from 'vue';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
type Options = {
|
|
5
|
+
onInit: (context: Context) => void;
|
|
6
6
|
};
|
|
7
|
+
type Context = {
|
|
8
|
+
store: Store;
|
|
9
|
+
options: object;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Плагин tpa (Third-party access) для pinia
|
|
13
|
+
*
|
|
14
|
+
* Сейчас не используется
|
|
15
|
+
*
|
|
16
|
+
* TODO: Должен реализовывать возмоэности piniaTPAPlugin
|
|
17
|
+
*/
|
|
18
|
+
declare const _default: {
|
|
19
|
+
install: (app: App<any>, options: Options) => void;
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
7
22
|
/**
|
|
8
|
-
* Применить плагины к
|
|
23
|
+
* Применить плагины к store
|
|
9
24
|
*/
|
|
10
25
|
export declare const usePlugins: (store: Store, options?: object) => void;
|
|
11
|
-
export default plugin;
|
|
@@ -6,7 +6,7 @@ import { InjectionKey, UnwrapNestedRefs } from 'vue';
|
|
|
6
6
|
* Следует определять на уровне корневого компонента, использующего Store
|
|
7
7
|
* @param injectionKey - InjectionKey для provide / inject в области компонента
|
|
8
8
|
* @param setup - Нстройки Store, см. https://pinia.vuejs.org/core-concepts/#Setup-Stores
|
|
9
|
-
* @param $id - строковой id Store,
|
|
9
|
+
* @param $id - строковой id Store, используется в плагинах
|
|
10
10
|
* @param options - настройки Store, используются в плагинах
|
|
11
11
|
*/
|
|
12
12
|
export declare const defineStore: <T extends object>(injectionKey: InjectionKey<UnwrapNestedRefs<T>>, setup: () => T | object, $id?: string, options?: object) => UnwrapNestedRefs<T> & Store;
|
package/core/utils/store.d.ts
CHANGED
package/core/utils/string.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Работа со строками
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
/**
|
|
2
6
|
* Сгенерировать числовой хэш от строки для идентификатора
|
|
3
7
|
*/
|
|
@@ -47,7 +51,7 @@ export declare const toRoditPadej: (str: string) => string;
|
|
|
47
51
|
*/
|
|
48
52
|
export declare const rusToLatin: (str: string) => string;
|
|
49
53
|
/**
|
|
50
|
-
* Замена html-символов (
|
|
54
|
+
* Замена html-символов (`&`, `<`, `>`, `"`, `'`) на имена литер (`&` -> `&`)
|
|
51
55
|
*/
|
|
52
56
|
export declare const htmlspecialchars: (str: string) => string;
|
|
53
57
|
/**
|
|
@@ -67,7 +71,9 @@ export declare const camelToSnakeCase: (str: string) => string | undefined;
|
|
|
67
71
|
*/
|
|
68
72
|
export declare const genFlagLinkByCountryCode: (countryCode: string) => string;
|
|
69
73
|
/**
|
|
70
|
-
* Обернуть все ссылки и email в тексте в html-тег
|
|
74
|
+
* Обернуть все ссылки и email в тексте в html-тег `<a>`.
|
|
75
|
+
*
|
|
76
|
+
* Для email ставиться префикс `mailto:`
|
|
71
77
|
*/
|
|
72
78
|
export declare const addLinkTags: (text: string) => string;
|
|
73
79
|
/**
|
package/core/utils/system.d.ts
CHANGED
package/core/utils/url.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Работа с урлами
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
1
5
|
/**
|
|
2
6
|
* Раскодировать все не ASCII символы в домене URL
|
|
3
7
|
* @param url - домен в ASCII формате
|
|
4
|
-
* @
|
|
8
|
+
* @return домен в Unicode формате
|
|
5
9
|
*/
|
|
6
10
|
export declare const fromPuny: (url?: string) => string;
|
|
7
11
|
/**
|
|
8
12
|
* Закодировать все не ASCII символы в домене URL
|
|
9
13
|
* @param url - домен в Unicode формате
|
|
10
|
-
* @
|
|
14
|
+
* @return домен в ASCII формате
|
|
11
15
|
*/
|
|
12
16
|
export declare const toPuny: (url: string) => string;
|
|
13
17
|
/**
|
package/forms/forms.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","../.chunks/forms-
|
|
1
|
+
define(["require","exports","../.chunks/forms-oowSA2rF.amd"],function(n,T,a){"use strict";if(typeof e>"u")var e=window.Vue;T.TopAvatar=a.TopAvatar,T.TopButton=a.TopButton$1,T.TopCheckbox=a.TopCheckbox,T.TopControlLabel=a.TopControlLabel,T.TopHint=a.TopHint,T.TopInput=a.TopInput$1,T.TopInputDate=a.TopInputDate,T.TopInputRange=a.TopInputRange,T.TopLoadbar=a.TopLoadbar,T.TopRadio=a.TopRadio,T.TopSelect=a.TopSelect,T.TopSwitcher=a.TopSwitcher,T.TopTextarea=a.TopTextarea,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=forms.amd.js.map
|
package/forms/forms.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { b as p, c as T, e as s, f as t, g as e, h as n, j as r, k as b, l as c, m as l, n as u, o as h, p as i } from "../.chunks/forms-CPEVHoks.es.js";
|
|
2
2
|
export {
|
|
3
3
|
p as TopAvatar,
|
|
4
4
|
T as TopButton,
|
|
@@ -7,10 +7,10 @@ export {
|
|
|
7
7
|
e as TopHint,
|
|
8
8
|
n as TopInput,
|
|
9
9
|
r as TopInputDate,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
b as TopInputRange,
|
|
11
|
+
c as TopLoadbar,
|
|
12
|
+
l as TopRadio,
|
|
13
|
+
u as TopSelect,
|
|
14
14
|
h as TopSwitcher,
|
|
15
15
|
i as TopTextarea
|
|
16
16
|
};
|
package/formsExt/formsExt.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(["require","exports","vue","../.chunks/forms-C__H1yL_.amd","../utils/keyboard.amd","../popup/popup.amd","lodash","../.chunks/menu-DV1iSTyB.amd","../require/css.amd!../assets/formsExt.css"],function(se,b,e,h,M,w,E,$){"use strict";if(typeof e>"u")var e=window.Vue;const S={class:"top-editArea_footer"},I=e.defineComponent({__name:"editArea",props:{defaultValue:{default:""},title:{},cancelText:{default:"Cancel"},submitText:{default:"Send"},closeText:{default:"Close"},isFocused:{type:Boolean},forceShowCloseBtn:{type:Boolean},attachToKeyboard:{type:Boolean},modelValue:{},name:{},placeholder:{},rows:{},minHeight:{},expandable:{type:Boolean,default:!0},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["submit","close","clickOnTitle"],setup(i,{emit:c}){const t=i,r=c,m=e.ref(t.defaultValue),f=e.ref(t.isFocused),s=e.computed(()=>m.value!==t.defaultValue),p=e.computed(()=>t.attachToKeyboard?"":t.forceShowCloseBtn&&!s.value?t.closeText:t.cancelText),u=d=>{r("submit",d),m.value=t.defaultValue},v=()=>{if(t.forceShowCloseBtn&&!s.value){r("close");return}m.value=t.defaultValue},B=()=>{t.attachToKeyboard&&r("clickOnTitle")};return(d,l)=>{const V=e.resolveDirective("top-focus");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-editArea":!0,"top-editArea-attachedToKeyboard":d.attachToKeyboard})},[d.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-editArea_title",onClick:l[0]||(l[0]=y=>B())},e.toDisplayString(d.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass({"top-editArea_form":!0,"top-error":d.isError,"top-focus":f.value})},[e.withDirectives(e.createVNode(h.Textarea,{modelValue:m.value,"onUpdate:modelValue":l[1]||(l[1]=y=>m.value=y),name:d.name,placeholder:d.placeholder,rows:d.rows,minHeight:d.minHeight,expandable:d.expandable,disabled:d.disabled,readonly:d.readonly,isError:d.isError,hint:d.hint,class:"top-editArea_element",onFocus:l[2]||(l[2]=()=>f.value=!0),onBlur:l[3]||(l[3]=()=>f.value=!1),onKeyup:[e.withKeys(v,["esc"]),l[4]||(l[4]=e.withKeys(e.withModifiers(y=>u(m.value),["ctrl"]),["enter"]))]},null,8,["modelValue","name","placeholder","rows","minHeight","expandable","disabled","readonly","isError","hint"]),[[V,f.value]]),e.createElementVNode("div",S,[s.value||d.forceShowCloseBtn?(e.openBlock(),e.createBlock(h.TopButton,{key:0,class:"top-editArea_button",color:"theme",styling:"soft",icon:d.attachToKeyboard?"":"",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.value),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createBlock(h.TopButton,{key:1,class:"top-editArea_button",icon:d.attachToKeyboard?"":"",onClick:l[5]||(l[5]=y=>u(m.value))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.attachToKeyboard?"":d.submitText),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])],2)],2)}}}),N={$style:{"top-editArea":"top-editArea","top-editArea_title":"top-editArea_title","top-editArea_form":"top-editArea_form","top-focus":"top-focus","top-textarea":"top-textarea","top-editArea_element":"top-editArea_element","top-textarea_textarea":"top-textarea_textarea","top-editArea_footer":"top-editArea_footer","top-editArea-attachedToKeyboard":"top-editArea-attachedToKeyboard","top-button":"top-button","top-editArea_button":"top-editArea_button"}},K=h._export_sfc(I,[["__cssModules",N]]),L={class:"top-editInput"},P=e.defineComponent({__name:"editInput",props:{modelValue:{},input:{},button:{}},emits:["update:modelValue"],setup(i,{emit:c}){const t=i,r=e.ref(t.modelValue);e.watch(e.toRef(t.modelValue),()=>{r.value=t.modelValue});const m=c,f=()=>{m("update:modelValue",r.value)};return(s,p)=>(e.openBlock(),e.createElementBlock("div",L,[e.createVNode(h.TopInput,e.mergeProps(s.input,{onKeydownCapture:p[0]||(p[0]=e.withKeys(e.withModifiers(u=>r.value=s.modelValue,["stop"]),["esc"])),onKeydown:e.withKeys(e.withModifiers(f,["stop"]),["enter"]),modelValue:r.value,"onUpdate:modelValue":p[1]||(p[1]=u=>r.value=u)}),null,16,["onKeydown","modelValue"]),r.value!==s.modelValue?(e.openBlock(),e.createBlock(h.TopButton,e.mergeProps({key:0,icon:"",styling:"soft"},s.button,{onClick:f}),null,16)):e.createCommentVNode("",!0)]))}}),G={$style:{"top-editInput":"top-editInput","top-input":"top-input"}},D=h._export_sfc(P,[["__cssModules",G]]),O=["data-top-icon","onClick"],z={key:0,class:"top-radioGroup_circle"},F=["value","disabled"],H=e.defineComponent({__name:"radioGroup",props:e.mergeModels({modelValue:{},radiosProps:{},showIndicator:{type:Boolean},size:{default:"s"},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(i,{emit:c}){const t=e.useModel(i,"modelValue"),r=i,m=e.ref(null);e.watch(t,()=>{var s,p,u,v,B;(s=r.radiosProps)!=null&&s.some(d=>d.value===t.value)||(t.value=((u=(p=r.radiosProps)==null?void 0:p[0])==null?void 0:u.value)??""),(B=(v=m.value)==null?void 0:v.querySelector(".radioGroup_item-selected"))==null||B.scrollIntoView()},{immediate:!0});const f="radioGroup-"+Math.random();return(s,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:m,class:e.normalizeClass({"top-radioGroup":!0,"top-scrollBarXHidding":!0,["top-size_"+s.size]:!!s.size,"top-error":s.isError})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.radiosProps,u=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-radioGroup_item-selected":u.value===t.value,"top-radioGroup_item":!0,"top-forms-focusable":!0,"top-disabled":u.disabled}),"data-top-icon":u.icon,onClick:v=>t.value=u.value},[e.createTextVNode(e.toDisplayString(u.title)+" ",1),s.showIndicator?(e.openBlock(),e.createElementBlock("span",z)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=v=>t.value=v),name:f,type:"radio",class:e.normalizeClass({"top-unvisible":!0}),value:u.value,disabled:u.disabled},null,8,F),[[e.vModelRadio,t.value]])],10,O))),256))],2))}}),x={$style:{"top-scrollBarXHidding":"top-scrollBarXHidding","top-radioGroup":"top-radioGroup","top-radioGroup_item":"top-radioGroup_item","top-radioGroup_item-selected":"top-radioGroup_item-selected","top-radioGroup_circle":"top-radioGroup_circle","top-disabled":"top-disabled","top-error":"top-error"}},U=h._export_sfc(H,[["__cssModules",x]]),W=(i,c,t)=>{const r=e.ref([]),m=e.ref(!1);let f="",s;i&&!i.params.limit&&(i.params.limit=100);const p=async()=>{if(!i)return;let l,V;if(t&&(i.cache??=new Map,V=JSON.stringify(i.params),l=i.cache.get(V),l))return l;if(m.value=!0,l=await i.call(),m.value=!1,l.errors)return;if(!Array.isArray(l.result)){console.warn("В result ожидался массив");return}const y=l.result.findIndex(A=>A.id===void 0||A.name===void 0);if(y!==-1){console.warn(`В result[${y}] нет id или name`);return}return t&&i.cache.set(V,l),l},u=async()=>{if(!i)return;i.params.offset=0,i.params.search=f;const l=await p();l&&(s=l.nextOffset,r.value=l.result)},v=async()=>{if(!i||!s||m.value)return;i.params.offset=s,i.params.search=f;const l=await p();l&&(s=l.nextOffset,r.value=r.value.concat(l.result))},B=E.debounce(()=>u(),200);return{items:r,isLoading:m,loadAppend:v,setSearchTextAndLoad:(l,V=!0)=>{i&&(l.length<c||l===f&&r.value.length||(f=l,V?B():u()))}}},J={class:"top-selector2_itemMulti top-ellipsis"},R=e.defineComponent({__name:"itemMulti",props:{id:{},name:{}},emits:["delete"],setup(i){return(c,t)=>(e.openBlock(),e.createElementBlock("div",J,[e.createTextVNode(e.toDisplayString(c.name)+" ",1),e.createElementVNode("span",{class:"top-selector2_itemMultiDelete","data-top-icon":"",onClick:t[0]||(t[0]=r=>c.$emit("delete",c.id)),onMousedown:t[1]||(t[1]=e.withModifiers(()=>{},["stop"]))},null,32)]))}}),X={$style:{"top-selector2_itemMulti":"top-selector2_itemMulti","top-selector2_itemMultiDelete":"top-selector2_itemMultiDelete","top-selector2":"top-selector2","top-active":"top-active"}},j=h._export_sfc(R,[["__cssModules",X]]),Y={key:0,class:"top-selector2_activeItems"},Q={key:1,class:"top-selector2_activeName top-ellipsis"},Z=e.defineComponent({__name:"selector2",props:e.mergeModels({modelValue:{},items:{default:()=>[]},multiselect:{type:Boolean},disabled:{type:Boolean},size:{default:"s"},isError:{type:Boolean},apiRequest:{},minLength:{default:0},useCache:{type:Boolean},appendSearchToResult:{type:Boolean},appendAllValue:{type:Boolean},addChanger:{type:Boolean},placeholder:{},showSelectedInInput:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(i){const c=i,t=e.useModel(i,"modelValue"),r=e.ref(""),m={id:0,name:"Все"},f=e.ref(null),s=()=>{var o;return(o=f.value)==null?void 0:o.popup};window.__STORYBOOK_PREVIEW__&&!c.modelValue&&e.watch(()=>c.multiselect,()=>{t.value=c.multiselect?[]:{id:null,name:""}},{immediate:!0});const p=W(c.apiRequest,c.minLength,c.useCache),u=e.computed(()=>{const o=[];return!c.multiselect&&c.appendAllValue&&o.push(m),c.items.forEach(n=>o.push({...n})),o}),v=(o,n=!0)=>n&&o.id===null?Array.isArray(t.value)?t.value.some(a=>a.id===o.id&&a.name===o.name):o.name===t.value.name:Array.isArray(t.value)?t.value.some(a=>a.id===o.id):o.id===t.value.id,B=e.computed(()=>{const o=r.value.toLowerCase(),n=M.invertKeyboardLayout(o);let a=[];return u.value.forEach(k=>{const g=k.name.toLowerCase();(k.id===Number(o)||g.includes(o)||g.includes(n))&&(g===o||g===n?a.unshift(k):a.push(k))}),a.push(...p.items.value),c.appendSearchToResult&&r.value&&(!a.length||a[0].name.toLowerCase()!==o)&&a.push({id:null,name:r.value}),c.multiselect&&(a=a.filter(k=>!v(k))),a}),d=async o=>{var n,a;if(c.multiselect){if(!Array.isArray(t.value)||v(o))return;const k=[...t.value];k.push({...o}),t.value=k,h.Core.state.isMobile?(n=s())==null||n.close():setTimeout(()=>{var g,C,T,_;(g=s())==null||g.recalcPosition(),(_=(T=(C=s())==null?void 0:C.elPopupWidget)==null?void 0:T.querySelector("input"))==null||_.focus(),r.value&&(B.value.length||(r.value="",p.items.value=[]))})}else r.value&&(r.value="",p.items.value=[]),JSON.stringify(o)!==JSON.stringify(t.value)&&(t.value={...o}),(a=s())==null||a.close()},l=()=>{if(!Array.isArray(t.value)){const n=(u.value.findIndex(a=>a.id===t.value.id)+1)%u.value.length;t.value={...u.value[n]}}},V=async o=>{Array.isArray(t.value)&&(t.value=t.value.filter(n=>n.id!==o),setTimeout(()=>{var n;(n=s())==null||n.recalcPosition()}))},y=e.ref(!1);c.apiRequest&&(e.watch(y,()=>{y.value&&p.setSearchTextAndLoad(r.value,!1)}),e.watch(r,()=>p.setSearchTextAndLoad(r.value)));const A=o=>{const n=o.target;n.scrollTop/(n.scrollHeight-n.offsetHeight)>.8&&p.loadAppend()};return(o,n)=>(e.openBlock(),e.createBlock(e.unref(w.TopPopup),{ref_key:"popupRef",ref:f,onOpen:n[1]||(n[1]=a=>y.value=!0),onClose:n[2]||(n[2]=a=>y.value=!1),onScrollContentList:n[3]||(n[3]=a=>o.apiRequest?A(a):void 0),notch:!1,transitionDuration:0},{opener:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass({"top-selector2":!0,"top-selector2-multiselect":o.multiselect,["top-size_"+o.size]:!0,"top-disabled":o.disabled,"top-forms-focusable":!o.disabled,"top-error":o.isError})},[o.multiselect?(e.openBlock(),e.createElementBlock("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,a=>(e.openBlock(),e.createBlock(j,{id:a.id,name:a.name,onDelete:V},null,8,["id","name"]))),256))])):e.createCommentVNode("",!0),o.multiselect?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Q,e.toDisplayString(Array.isArray(t.value)?"":t.value.name),1)),o.addChanger&&!o.multiselect&&u.value.length>1&&!o.disabled?(e.openBlock(),e.createElementBlock("span",{key:2,class:"top-changer top-changer-selector",onClick:e.withModifiers(l,["stop"])})):e.createCommentVNode("",!0)],2)]),widget:e.withCtx(()=>[e.createVNode(e.unref(w.TopPopupWidgetInput),{title:"Поиск",icon:"",modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=a=>r.value=a),isLoading:e.unref(p).isLoading.value,placeholder:!Array.isArray(t.value)&&!o.multiselect&&o.showSelectedInInput?t.value.name:o.placeholder},null,8,["modelValue","isLoading","placeholder"])]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,a=>(e.openBlock(),e.createBlock(e.unref(w.TopPopupListItem),{class:e.normalizeClass({"top-active":!Array.isArray(t.value)&&!o.multiselect&&t.value.name===a.name}),key:a.id??void 0,onClick:e.withModifiers(k=>d(a),["stop"])},{default:e.withCtx(()=>[o.$slots.item?e.renderSlot(o.$slots,"item",{key:0,item:a}):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a.name),1)],64))]),_:2},1032,["class","onClick"]))),128)),B.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(w.TopPopupListItem),{key:0,type:"regular"},{default:e.withCtx(()=>[e.createTextVNode(" Нет результатов ")]),_:1}))]),_:3},512))}}),q={$style:{"top-selector2":"top-selector2","top-selector2-multiselect":"top-selector2-multiselect","top-active":"top-active","top-selector2_activeItems":"top-selector2_activeItems","top-selector2_activeName":"top-selector2_activeName","top-changer-selector":"top-changer-selector"}},ee=h._export_sfc(Z,[["__cssModules",q]]),te=K,oe=D,le=U,ae=ee,re=$.Menu;b.TopEditArea=te,b.TopEditInput=oe,b.TopMenu=re,b.TopRadioGroup=le,b.TopSelector2=ae,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
define(["require","exports","vue","../.chunks/forms-oowSA2rF.amd","../utils/keyboard.amd","../popup/popup.amd","lodash","../.chunks/menu-SmyeSNWQ.amd","../require/css.amd!../assets/formsExt.css"],function(se,b,e,h,M,w,E,$){"use strict";if(typeof e>"u")var e=window.Vue;const S={class:"top-editArea_footer"},I=e.defineComponent({__name:"editArea",props:{defaultValue:{default:""},title:{},cancelText:{default:"Cancel"},submitText:{default:"Send"},closeText:{default:"Close"},isFocused:{type:Boolean},forceShowCloseBtn:{type:Boolean},attachToKeyboard:{type:Boolean},modelValue:{},name:{},placeholder:{},rows:{},minHeight:{},expandable:{type:Boolean,default:!0},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["submit","close","clickOnTitle"],setup(i,{emit:c}){const t=i,r=c,m=e.ref(t.defaultValue),f=e.ref(t.isFocused),s=e.computed(()=>m.value!==t.defaultValue),p=e.computed(()=>t.attachToKeyboard?"":t.forceShowCloseBtn&&!s.value?t.closeText:t.cancelText),u=d=>{r("submit",d),m.value=t.defaultValue},v=()=>{if(t.forceShowCloseBtn&&!s.value){r("close");return}m.value=t.defaultValue},B=()=>{t.attachToKeyboard&&r("clickOnTitle")};return(d,l)=>{const V=e.resolveDirective("top-focus");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-editArea":!0,"top-editArea-attachedToKeyboard":d.attachToKeyboard})},[d.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-editArea_title",onClick:l[0]||(l[0]=y=>B())},e.toDisplayString(d.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass({"top-editArea_form":!0,"top-error":d.isError,"top-focus":f.value})},[e.withDirectives(e.createVNode(h.Textarea,{modelValue:m.value,"onUpdate:modelValue":l[1]||(l[1]=y=>m.value=y),name:d.name,placeholder:d.placeholder,rows:d.rows,minHeight:d.minHeight,expandable:d.expandable,disabled:d.disabled,readonly:d.readonly,isError:d.isError,hint:d.hint,class:"top-editArea_element",onFocus:l[2]||(l[2]=()=>f.value=!0),onBlur:l[3]||(l[3]=()=>f.value=!1),onKeyup:[e.withKeys(v,["esc"]),l[4]||(l[4]=e.withKeys(e.withModifiers(y=>u(m.value),["ctrl"]),["enter"]))]},null,8,["modelValue","name","placeholder","rows","minHeight","expandable","disabled","readonly","isError","hint"]),[[V,{disabled:!f.value}]]),e.createElementVNode("div",S,[s.value||d.forceShowCloseBtn?(e.openBlock(),e.createBlock(h.TopButton,{key:0,class:"top-editArea_button",color:"theme",styling:"soft",icon:d.attachToKeyboard?"":"",onClick:v},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.value),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createBlock(h.TopButton,{key:1,class:"top-editArea_button",icon:d.attachToKeyboard?"":"",onClick:l[5]||(l[5]=y=>u(m.value))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.attachToKeyboard?"":d.submitText),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])],2)],2)}}}),N={$style:{"top-editArea":"top-editArea","top-editArea_title":"top-editArea_title","top-editArea_form":"top-editArea_form","top-focus":"top-focus","top-textarea":"top-textarea","top-editArea_element":"top-editArea_element","top-textarea_textarea":"top-textarea_textarea","top-editArea_footer":"top-editArea_footer","top-editArea-attachedToKeyboard":"top-editArea-attachedToKeyboard","top-button":"top-button","top-editArea_button":"top-editArea_button"}},K=h._export_sfc(I,[["__cssModules",N]]),L={class:"top-editInput"},P=e.defineComponent({__name:"editInput",props:{modelValue:{},input:{},button:{}},emits:["update:modelValue"],setup(i,{emit:c}){const t=i,r=e.ref(t.modelValue);e.watch(e.toRef(t.modelValue),()=>{r.value=t.modelValue});const m=c,f=()=>{m("update:modelValue",r.value)};return(s,p)=>(e.openBlock(),e.createElementBlock("div",L,[e.createVNode(h.TopInput,e.mergeProps(s.input,{onKeydownCapture:p[0]||(p[0]=e.withKeys(e.withModifiers(u=>r.value=s.modelValue,["stop"]),["esc"])),onKeydown:e.withKeys(e.withModifiers(f,["stop"]),["enter"]),modelValue:r.value,"onUpdate:modelValue":p[1]||(p[1]=u=>r.value=u)}),null,16,["onKeydown","modelValue"]),r.value!==s.modelValue?(e.openBlock(),e.createBlock(h.TopButton,e.mergeProps({key:0,icon:"",styling:"soft"},s.button,{onClick:f}),null,16)):e.createCommentVNode("",!0)]))}}),G={$style:{"top-editInput":"top-editInput","top-input":"top-input"}},D=h._export_sfc(P,[["__cssModules",G]]),O=["data-top-icon","onClick"],z={key:0,class:"top-radioGroup_circle"},F=["value","disabled"],H=e.defineComponent({__name:"radioGroup",props:e.mergeModels({modelValue:{},radiosProps:{},showIndicator:{type:Boolean},size:{default:"s"},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(i,{emit:c}){const t=e.useModel(i,"modelValue"),r=i,m=e.ref(null);e.watch(t,()=>{var s,p,u,v,B;(s=r.radiosProps)!=null&&s.some(d=>d.value===t.value)||(t.value=((u=(p=r.radiosProps)==null?void 0:p[0])==null?void 0:u.value)??""),(B=(v=m.value)==null?void 0:v.querySelector(".radioGroup_item-selected"))==null||B.scrollIntoView()},{immediate:!0});const f="radioGroup-"+Math.random();return(s,p)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:m,class:e.normalizeClass({"top-radioGroup":!0,"top-scrollBarXHidding":!0,["top-size_"+s.size]:!!s.size,"top-error":s.isError})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.radiosProps,u=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-radioGroup_item-selected":u.value===t.value,"top-radioGroup_item":!0,"top-forms-focusable":!0,"top-disabled":u.disabled}),"data-top-icon":u.icon,onClick:v=>t.value=u.value},[e.createTextVNode(e.toDisplayString(u.title)+" ",1),s.showIndicator?(e.openBlock(),e.createElementBlock("span",z)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=v=>t.value=v),name:f,type:"radio",class:e.normalizeClass({"top-unvisible":!0}),value:u.value,disabled:u.disabled},null,8,F),[[e.vModelRadio,t.value]])],10,O))),256))],2))}}),x={$style:{"top-scrollBarXHidding":"top-scrollBarXHidding","top-radioGroup":"top-radioGroup","top-radioGroup_item":"top-radioGroup_item","top-radioGroup_item-selected":"top-radioGroup_item-selected","top-radioGroup_circle":"top-radioGroup_circle","top-disabled":"top-disabled","top-error":"top-error"}},U=h._export_sfc(H,[["__cssModules",x]]),W=(i,c,t)=>{const r=e.ref([]),m=e.ref(!1);let f="",s;i&&!i.params.limit&&(i.params.limit=100);const p=async()=>{if(!i)return;let l,V;if(t&&(i.cache??=new Map,V=JSON.stringify(i.params),l=i.cache.get(V),l))return l;if(m.value=!0,l=await i.call(),m.value=!1,l.errors)return;if(!Array.isArray(l.result)){console.warn("В result ожидался массив");return}const y=l.result.findIndex(A=>A.id===void 0||A.name===void 0);if(y!==-1){console.warn(`В result[${y}] нет id или name`);return}return t&&i.cache.set(V,l),l},u=async()=>{if(!i)return;i.params.offset=0,i.params.search=f;const l=await p();l&&(s=l.nextOffset,r.value=l.result)},v=async()=>{if(!i||!s||m.value)return;i.params.offset=s,i.params.search=f;const l=await p();l&&(s=l.nextOffset,r.value=r.value.concat(l.result))},B=E.debounce(()=>u(),200);return{items:r,isLoading:m,loadAppend:v,setSearchTextAndLoad:(l,V=!0)=>{i&&(l.length<c||l===f&&r.value.length||(f=l,V?B():u()))}}},J={class:"top-selector2_itemMulti top-ellipsis"},R=e.defineComponent({__name:"itemMulti",props:{id:{},name:{}},emits:["delete"],setup(i){return(c,t)=>(e.openBlock(),e.createElementBlock("div",J,[e.createTextVNode(e.toDisplayString(c.name)+" ",1),e.createElementVNode("span",{class:"top-selector2_itemMultiDelete","data-top-icon":"",onClick:t[0]||(t[0]=r=>c.$emit("delete",c.id)),onMousedown:t[1]||(t[1]=e.withModifiers(()=>{},["stop"]))},null,32)]))}}),X={$style:{"top-selector2_itemMulti":"top-selector2_itemMulti","top-selector2_itemMultiDelete":"top-selector2_itemMultiDelete","top-selector2":"top-selector2","top-active":"top-active"}},j=h._export_sfc(R,[["__cssModules",X]]),Y={key:0,class:"top-selector2_activeItems"},Q={key:1,class:"top-selector2_activeName top-ellipsis"},Z=e.defineComponent({__name:"selector2",props:e.mergeModels({modelValue:{},items:{default:()=>[]},multiselect:{type:Boolean},disabled:{type:Boolean},size:{default:"s"},isError:{type:Boolean},apiRequest:{},minLength:{default:0},useCache:{type:Boolean},appendSearchToResult:{type:Boolean},appendAllValue:{type:Boolean},addChanger:{type:Boolean},placeholder:{},showSelectedInInput:{type:Boolean,default:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(i){const c=i,t=e.useModel(i,"modelValue"),r=e.ref(""),m={id:0,name:"Все"},f=e.ref(null),s=()=>{var o;return(o=f.value)==null?void 0:o.popup};window.__STORYBOOK_PREVIEW__&&!c.modelValue&&e.watch(()=>c.multiselect,()=>{t.value=c.multiselect?[]:{id:null,name:""}},{immediate:!0});const p=W(c.apiRequest,c.minLength,c.useCache),u=e.computed(()=>{const o=[];return!c.multiselect&&c.appendAllValue&&o.push(m),c.items.forEach(n=>o.push({...n})),o}),v=(o,n=!0)=>n&&o.id===null?Array.isArray(t.value)?t.value.some(a=>a.id===o.id&&a.name===o.name):o.name===t.value.name:Array.isArray(t.value)?t.value.some(a=>a.id===o.id):o.id===t.value.id,B=e.computed(()=>{const o=r.value.toLowerCase(),n=M.invertKeyboardLayout(o);let a=[];return u.value.forEach(k=>{const g=k.name.toLowerCase();(k.id===Number(o)||g.includes(o)||g.includes(n))&&(g===o||g===n?a.unshift(k):a.push(k))}),a.push(...p.items.value),c.appendSearchToResult&&r.value&&(!a.length||a[0].name.toLowerCase()!==o)&&a.push({id:null,name:r.value}),c.multiselect&&(a=a.filter(k=>!v(k))),a}),d=async o=>{var n,a;if(c.multiselect){if(!Array.isArray(t.value)||v(o))return;const k=[...t.value];k.push({...o}),t.value=k,h.Core.state.isMobile?(n=s())==null||n.close():setTimeout(()=>{var g,C,T,_;(g=s())==null||g.recalcPosition(),(_=(T=(C=s())==null?void 0:C.elPopupWidget)==null?void 0:T.querySelector("input"))==null||_.focus(),r.value&&(B.value.length||(r.value="",p.items.value=[]))})}else r.value&&(r.value="",p.items.value=[]),JSON.stringify(o)!==JSON.stringify(t.value)&&(t.value={...o}),(a=s())==null||a.close()},l=()=>{if(!Array.isArray(t.value)){const n=(u.value.findIndex(a=>a.id===t.value.id)+1)%u.value.length;t.value={...u.value[n]}}},V=async o=>{Array.isArray(t.value)&&(t.value=t.value.filter(n=>n.id!==o),setTimeout(()=>{var n;(n=s())==null||n.recalcPosition()}))},y=e.ref(!1);c.apiRequest&&(e.watch(y,()=>{y.value&&p.setSearchTextAndLoad(r.value,!1)}),e.watch(r,()=>p.setSearchTextAndLoad(r.value)));const A=o=>{const n=o.target;n.scrollTop/(n.scrollHeight-n.offsetHeight)>.8&&p.loadAppend()};return(o,n)=>(e.openBlock(),e.createBlock(e.unref(w.TopPopup),{ref_key:"popupRef",ref:f,onOpen:n[1]||(n[1]=a=>y.value=!0),onClose:n[2]||(n[2]=a=>y.value=!1),onScrollContentList:n[3]||(n[3]=a=>o.apiRequest?A(a):void 0),notch:!1,transitionDuration:0},{opener:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass({"top-selector2":!0,"top-selector2-multiselect":o.multiselect,["top-size_"+o.size]:!0,"top-disabled":o.disabled,"top-forms-focusable":!o.disabled,"top-error":o.isError})},[o.multiselect?(e.openBlock(),e.createElementBlock("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,a=>(e.openBlock(),e.createBlock(j,{id:a.id,name:a.name,onDelete:V},null,8,["id","name"]))),256))])):e.createCommentVNode("",!0),o.multiselect?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Q,e.toDisplayString(Array.isArray(t.value)?"":t.value.name),1)),o.addChanger&&!o.multiselect&&u.value.length>1&&!o.disabled?(e.openBlock(),e.createElementBlock("span",{key:2,class:"top-changer top-changer-selector",onClick:e.withModifiers(l,["stop"])})):e.createCommentVNode("",!0)],2)]),widget:e.withCtx(()=>[e.createVNode(e.unref(w.TopPopupWidgetInput),{title:"Поиск",icon:"",modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=a=>r.value=a),isLoading:e.unref(p).isLoading.value,placeholder:!Array.isArray(t.value)&&!o.multiselect&&o.showSelectedInInput?t.value.name:o.placeholder},null,8,["modelValue","isLoading","placeholder"])]),contentList:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,a=>(e.openBlock(),e.createBlock(e.unref(w.TopPopupListItem),{class:e.normalizeClass({"top-active":!Array.isArray(t.value)&&!o.multiselect&&t.value.name===a.name}),key:a.id??void 0,onClick:e.withModifiers(k=>d(a),["stop"])},{default:e.withCtx(()=>[o.$slots.item?e.renderSlot(o.$slots,"item",{key:0,item:a}):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(a.name),1)],64))]),_:2},1032,["class","onClick"]))),128)),B.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(w.TopPopupListItem),{key:0,type:"regular"},{default:e.withCtx(()=>[e.createTextVNode(" Нет результатов ")]),_:1}))]),_:3},512))}}),q={$style:{"top-selector2":"top-selector2","top-selector2-multiselect":"top-selector2-multiselect","top-active":"top-active","top-selector2_activeItems":"top-selector2_activeItems","top-selector2_activeName":"top-selector2_activeName","top-changer-selector":"top-changer-selector"}},ee=h._export_sfc(Z,[["__cssModules",q]]),te=K,oe=D,le=U,ae=ee,re=$.Menu;b.TopEditArea=te,b.TopEditInput=oe,b.TopMenu=re,b.TopRadioGroup=le,b.TopSelector2=ae,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=formsExt.amd.js.map
|