@topvisor/ui 0.0.15 → 0.0.16

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.
Files changed (67) hide show
  1. package/.chunks/core-97b070be.amd.js +2 -0
  2. package/.chunks/core-97b070be.amd.js.map +1 -0
  3. package/.chunks/core-c3afa109.es.js +121 -0
  4. package/.chunks/core-c3afa109.es.js.map +1 -0
  5. package/.chunks/forms-6a6b0b80.es.js +436 -0
  6. package/.chunks/forms-6a6b0b80.es.js.map +1 -0
  7. package/.chunks/forms-7119886a.amd.js +3 -0
  8. package/.chunks/forms-7119886a.amd.js.map +1 -0
  9. package/.chunks/popup-6d1d8097.amd.js +342 -0
  10. package/.chunks/popup-6d1d8097.amd.js.map +1 -0
  11. package/.chunks/popup-95d27020.es.js +720 -0
  12. package/.chunks/popup-95d27020.es.js.map +1 -0
  13. package/README.md +62 -62
  14. package/common/common.amd.js +1 -21
  15. package/common/common.amd.js.map +1 -1
  16. package/common/common.js +8 -11
  17. package/common/common.js.map +1 -1
  18. package/core/core.amd.js +2 -0
  19. package/core/core.amd.js.map +1 -0
  20. package/core/core.js +7 -0
  21. package/core/core.js.map +1 -0
  22. package/core.css +1 -659
  23. package/dark.css +1 -136
  24. package/editArea/editArea.amd.js +3 -0
  25. package/editArea/editArea.amd.js.map +1 -0
  26. package/editArea/editArea.js +111 -0
  27. package/editArea/editArea.js.map +1 -0
  28. package/editArea.css +1 -0
  29. package/forms/forms.amd.js +1 -10
  30. package/forms/forms.amd.js.map +1 -1
  31. package/forms/forms.js +9 -7
  32. package/forms/helpers.amd.js +2 -0
  33. package/{helpers → forms}/helpers.amd.js.map +1 -1
  34. package/forms/helpers.js +6 -0
  35. package/forms.css +1 -415
  36. package/icomoon/demo-files/Read Me.txt +7 -7
  37. package/icomoon/demo-files/demo.css +161 -161
  38. package/icomoon/demo-files/demo.js +30 -30
  39. package/icomoon/demo.html +2931 -2931
  40. package/icomoon/fonts/Topvisor-2.svg +231 -231
  41. package/icomoon/style.css +644 -644
  42. package/light.css +1 -136
  43. package/package.json +19 -19
  44. package/popup/popup.amd.js +3 -0
  45. package/popup/popup.amd.js.map +1 -0
  46. package/popup/popup.js +146 -0
  47. package/popup/popup.js.map +1 -0
  48. package/popup/worker.amd.js +2 -0
  49. package/popup/worker.amd.js.map +1 -0
  50. package/popup/worker.js +158 -0
  51. package/popup/worker.js.map +1 -0
  52. package/popup.css +1 -0
  53. package/utils/device.amd.js +2 -0
  54. package/utils/device.amd.js.map +1 -0
  55. package/utils/device.js +34 -0
  56. package/utils/device.js.map +1 -0
  57. package/utils/dom.amd.js +2 -0
  58. package/utils/dom.amd.js.map +1 -0
  59. package/utils/dom.js +64 -0
  60. package/utils/dom.js.map +1 -0
  61. package/.chunks/forms-2abb7eaa.amd.js +0 -425
  62. package/.chunks/forms-2abb7eaa.amd.js.map +0 -1
  63. package/.chunks/forms-5e17154c.es.js +0 -422
  64. package/.chunks/forms-5e17154c.es.js.map +0 -1
  65. package/helpers/helpers.amd.js +0 -6
  66. package/helpers/helpers.js +0 -6
  67. /package/{helpers → forms}/helpers.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.amd.js","sources":["../../src/core/utils/device.ts"],"sourcesContent":["class Device {\n\n\tstatic isRetina () {\n\t\treturn ('devicePixelRatio' in window && window.devicePixelRatio > 1);\n\t}\n\n\t// определить, является ли устройство мобильным\n\tstatic isMobile (): boolean {\n\t\treturn !!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i);\n\t}\n\n\t// определить, открыт ли сайт в приложении\n\tstatic isApp () {\n\t\treturn (navigator.userAgent.indexOf('Topvisor_App') != -1);\n\t}\n\n\t// определить, является ли OS пользователя macOS\n\tstatic isMacOS () {\n\t\treturn navigator.userAgent.indexOf('Mac OS X') !== -1;\n\t}\n\n\t// определить, является ли текущий браузер пользователя Safari\n\tstatic isSafari () {\n\t\tconst isChrome = /Chrome|Android/.test(navigator.userAgent);\n\n\t\tlet isSafari = /Safari/.test(navigator.userAgent);\n\t\tif (isChrome && isSafari) {\n\t\t\tisSafari = false;\n\t\t}\n\n\t\treturn isSafari;\n\t};\n\n\t/**\n\t * Вернуть текст для обозначения клавиши Ctrl / Command в зависимости от OS\n\t * @returns {'Ctrl'|'⌘'}\n\t */\n\tstatic getCommandKeyLabel (): 'Ctrl' | '⌘' {\n\t\tif (this.isMacOS()) {\n\t\t\treturn '⌘';\n\t\t} else {\n\t\t\treturn 'Ctrl';\n\t\t}\n\t}\n\n}\n\nexport default Device;\n"],"names":["Device","isChrome","isSafari"],"mappings":"+BAAA,MAAMA,CAAO,CAEZ,OAAO,UAAY,CACV,MAAA,qBAAsB,QAAU,OAAO,iBAAmB,CACnE,CAGA,OAAO,UAAqB,CAC3B,MAAO,CAAC,CAAC,UAAU,UAAU,MAAM,0DAA0D,CAC9F,CAGA,OAAO,OAAS,CACf,OAAQ,UAAU,UAAU,QAAQ,cAAc,GAAK,EACxD,CAGA,OAAO,SAAW,CACjB,OAAO,UAAU,UAAU,QAAQ,UAAU,IAAM,EACpD,CAGA,OAAO,UAAY,CAClB,MAAMC,EAAW,iBAAiB,KAAK,UAAU,SAAS,EAE1D,IAAIC,EAAW,SAAS,KAAK,UAAU,SAAS,EAChD,OAAID,GAAYC,IACJA,EAAA,IAGLA,CACR,CAMA,OAAO,oBAAoC,CACtC,OAAA,KAAK,UACD,IAEA,MAET,CAED"}
@@ -0,0 +1,34 @@
1
+ class a {
2
+ static isRetina() {
3
+ return "devicePixelRatio" in window && window.devicePixelRatio > 1;
4
+ }
5
+ // определить, является ли устройство мобильным
6
+ static isMobile() {
7
+ return !!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i);
8
+ }
9
+ // определить, открыт ли сайт в приложении
10
+ static isApp() {
11
+ return navigator.userAgent.indexOf("Topvisor_App") != -1;
12
+ }
13
+ // определить, является ли OS пользователя macOS
14
+ static isMacOS() {
15
+ return navigator.userAgent.indexOf("Mac OS X") !== -1;
16
+ }
17
+ // определить, является ли текущий браузер пользователя Safari
18
+ static isSafari() {
19
+ const e = /Chrome|Android/.test(navigator.userAgent);
20
+ let i = /Safari/.test(navigator.userAgent);
21
+ return e && i && (i = !1), i;
22
+ }
23
+ /**
24
+ * Вернуть текст для обозначения клавиши Ctrl / Command в зависимости от OS
25
+ * @returns {'Ctrl'|'⌘'}
26
+ */
27
+ static getCommandKeyLabel() {
28
+ return this.isMacOS() ? "⌘" : "Ctrl";
29
+ }
30
+ }
31
+ export {
32
+ a as default
33
+ };
34
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sources":["../../src/core/utils/device.ts"],"sourcesContent":["class Device {\n\n\tstatic isRetina () {\n\t\treturn ('devicePixelRatio' in window && window.devicePixelRatio > 1);\n\t}\n\n\t// определить, является ли устройство мобильным\n\tstatic isMobile (): boolean {\n\t\treturn !!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i);\n\t}\n\n\t// определить, открыт ли сайт в приложении\n\tstatic isApp () {\n\t\treturn (navigator.userAgent.indexOf('Topvisor_App') != -1);\n\t}\n\n\t// определить, является ли OS пользователя macOS\n\tstatic isMacOS () {\n\t\treturn navigator.userAgent.indexOf('Mac OS X') !== -1;\n\t}\n\n\t// определить, является ли текущий браузер пользователя Safari\n\tstatic isSafari () {\n\t\tconst isChrome = /Chrome|Android/.test(navigator.userAgent);\n\n\t\tlet isSafari = /Safari/.test(navigator.userAgent);\n\t\tif (isChrome && isSafari) {\n\t\t\tisSafari = false;\n\t\t}\n\n\t\treturn isSafari;\n\t};\n\n\t/**\n\t * Вернуть текст для обозначения клавиши Ctrl / Command в зависимости от OS\n\t * @returns {'Ctrl'|'⌘'}\n\t */\n\tstatic getCommandKeyLabel (): 'Ctrl' | '⌘' {\n\t\tif (this.isMacOS()) {\n\t\t\treturn '⌘';\n\t\t} else {\n\t\t\treturn 'Ctrl';\n\t\t}\n\t}\n\n}\n\nexport default Device;\n"],"names":["Device","isChrome","isSafari"],"mappings":"AAAA,MAAMA,EAAO;AAAA,EAEZ,OAAO,WAAY;AACV,WAAA,sBAAsB,UAAU,OAAO,mBAAmB;AAAA,EACnE;AAAA;AAAA,EAGA,OAAO,WAAqB;AAC3B,WAAO,CAAC,CAAC,UAAU,UAAU,MAAM,0DAA0D;AAAA,EAC9F;AAAA;AAAA,EAGA,OAAO,QAAS;AACf,WAAQ,UAAU,UAAU,QAAQ,cAAc,KAAK;AAAA,EACxD;AAAA;AAAA,EAGA,OAAO,UAAW;AACjB,WAAO,UAAU,UAAU,QAAQ,UAAU,MAAM;AAAA,EACpD;AAAA;AAAA,EAGA,OAAO,WAAY;AAClB,UAAMC,IAAW,iBAAiB,KAAK,UAAU,SAAS;AAE1D,QAAIC,IAAW,SAAS,KAAK,UAAU,SAAS;AAChD,WAAID,KAAYC,MACJA,IAAA,KAGLA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,qBAAoC;AACtC,WAAA,KAAK,YACD,MAEA;AAAA,EAET;AAED;"}
@@ -0,0 +1,2 @@
1
+ define(function(){"use strict"; if(typeof vue === "undefined") var vue = window.Vue;function f(t,e,...n){const i=document.createElement(t);for(const r in e)r.indexOf("on")===0?i[r]=e[r]:i.setAttribute(r,e[r]);return n.forEach(r=>{typeof r=="string"?i.insertAdjacentHTML("beforeend",r):i.append(r)}),i}function o(t){if(!t)return!1;const e=t.getBoundingClientRect();return!!(e.width||e.height)}function c(t){const e=t.getBoundingClientRect();return{top:e.top+window.scrollY,left:e.left+window.scrollX}}function l(t,e){return window.getComputedStyle(t).getPropertyValue(e)}function s(t,e){const n=document.createElement(e);return t.after(n),n.append(t),n}function a(t,e){return u(t,e).find(o)||null}function d(t,e){return u(t,e).findLast(o)||null}function p(t,e){return u(t,e).filter(o)}function u(t,e){return t?[...t.querySelectorAll(e)]:[]}function g(t,e="common",n=void 0){if(t)return t.topData||(t.topData={}),n&&(t.topData[e]=n),n===null&&delete t.topData[e],t.topData[e]}function y(t){t&&delete t.topData}return{genEl:f,isVisible:o,offset:c,css:l,wrap:s,querySelectorVisible:a,querySelectorVisibleLast:d,querySelectorAllVisible:p,querySelectorAllArray:u,storage:g,storageClear:y}});
2
+ //# sourceMappingURL=dom.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.amd.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\n * Функции для работы с работы с Document Object Model (DOM)\n */\n\n/**\n * Создать элемент\n * @param {string} tagName\n * @param {any} attrs - атрибуты\n * @param {Element[]} elsChildrens\n * @returns {Element} - созданный элемент\n */\nfunction genEl (tagName: string, attrs: any, ...elsChildrens: Element[]): Element {\n\tconst el: any = document.createElement(tagName);\n\n\tfor (const name in attrs) {\n\t\tif (name.indexOf('on') === 0) {\n\t\t\t// events\n\t\t\tel[name] = attrs[name];\n\t\t} else {\n\t\t\tel.setAttribute(name, attrs[name]);\n\t\t}\n\t}\n\n\telsChildrens.forEach((elChildren) => {\n\t\tif (typeof (elChildren) === 'string') {\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\n\t\t} else {\n\t\t\tel.append(elChildren);\n\t\t}\n\t});\n\n\treturn el;\n}\n\n/**\n * Проверить видимость элемента\n * @param {?Element} el\n * @returns boolean - вернет true, если элемент считается видимым\n */\nfunction isVisible (el?: Element) {\n\tif (!el) {\n\t\treturn false;\n\t}\n\n\tconst boundingClientRect = el.getBoundingClientRect();\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\n}\n\n/**\n * Получить координаты элемента относительно документа\n * @param {Element} el\n * @returns {{top: number, left: number}} - координаты элемента относительно документа\n */\nfunction offset (el: Element): { top: number, left: number } {\n\tconst boundingClientRect = el.getBoundingClientRect();\n\n\treturn {\n\t\ttop: boundingClientRect.top + window.scrollY,\n\t\tleft: boundingClientRect.left + window.scrollX,\n\t};\n}\n\n/**\n * Получить значение css свойства элемента\n * @param {Element} el\n * @param {string} property - имя свойства\n * @return {string} - значение css стиля\n */\nfunction css (el: Element, property: string): string {\n\treturn window.getComputedStyle(el).getPropertyValue(property);\n}\n\n/**\n * Обернуть элемент и вернуть только что созданный элемент\n * @param {Element} el - элемент, который требуется обернуть\n * @param {string} tagName - имя тега элемента, в который треубется обернуть элемент\n * @returns {Element}\n */\nfunction wrap (el: Element, tagName: string): Element {\n\tconst elWrapper = document.createElement(tagName);\n\tel.after(elWrapper);\n\n\telWrapper.append(el);\n\n\treturn elWrapper;\n}\n\n/**\n * Найти и вернуть первый видимый элемент\n * @param {?Document|Element} el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns {Element|null}\n */\nfunction querySelectorVisible (el: Element, selectors: string): Element | null {\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\n}\n\n/**\n * Найти и вернуть последний видимый элемент\n * @param {?Document|Element} el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns {Element|null}\n */\nfunction querySelectorVisibleLast (el: Element, selectors: string): Element | null {\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\n}\n\n/**\n * Найти видимые элементы\n * @param {?Document|Element} el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns {Element[]} - обратите внимание, возвращается не NodeList[], а Element[]\n */\nfunction querySelectorAllVisible (el: Element, selectors: string): Element[] {\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\n}\n\n/**\n * Найти элементы и вернуть в виде массива\n * @param {?Document|Element} el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns {Element[]}\n */\nfunction querySelectorAllArray (el: Element, selectors: string): Element[] {\n\tif (!el) {\n\t\treturn [];\n\t}\n\n\treturn [...el.querySelectorAll(selectors)];\n}\n\n/**\n * Хранилище данных элемента\n * @param {Element} el\n * @param {string} contextName - контекст, обычно используется имя компонента\n * @param {?object | null} contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\n * @returns {?object} - вернет объект контекста или undefined, если данные контекста не найдены\n */\nfunction storage (\n\tel?: Element & { topData?: any },\n\tcontextName: string = 'common', contextData: object | null | undefined = undefined,\n): object | undefined {\n\tif (!el) {\n\t\treturn;\n\t}\n\n\tif (!el.topData) {\n\t\tel.topData = {};\n\t}\n\n\tif (contextData) {\n\t\tel.topData[contextName] = contextData;\n\t}\n\n\tif (contextData === null) {\n\t\tdelete el.topData[contextName];\n\t}\n\n\treturn el.topData[contextName];\n}\n\n/**\n * Очистить хранилище элемента\n */\nfunction storageClear (el?: Element & { topData?: any }) {\n\tif (!el) {\n\t\treturn;\n\t}\n\n\tdelete el.topData;\n}\n\nexport default {\n\tgenEl,\n\tisVisible,\n\toffset,\n\tcss,\n\twrap,\n\tquerySelectorVisible,\n\tquerySelectorVisibleLast,\n\tquerySelectorAllVisible,\n\tquerySelectorAllArray,\n\tstorage,\n\tstorageClear,\n};\n"],"names":["genEl","tagName","attrs","elsChildrens","el","name","elChildren","isVisible","boundingClientRect","offset","css","property","wrap","elWrapper","querySelectorVisible","selectors","querySelectorAllArray","querySelectorVisibleLast","querySelectorAllVisible","storage","contextName","contextData","storageClear"],"mappings":"+BAWA,SAASA,EAAOC,EAAiBC,KAAeC,EAAkC,CAC3E,MAAAC,EAAU,SAAS,cAAcH,CAAO,EAE9C,UAAWI,KAAQH,EACdG,EAAK,QAAQ,IAAI,IAAM,EAEvBD,EAAAC,CAAI,EAAIH,EAAMG,CAAI,EAErBD,EAAG,aAAaC,EAAMH,EAAMG,CAAI,CAAC,EAItB,OAAAF,EAAA,QAASG,GAAe,CAChC,OAAQA,GAAgB,SACxBF,EAAA,mBAAmB,YAAaE,CAAU,EAE7CF,EAAG,OAAOE,CAAU,CACrB,CACA,EAEMF,CACR,CAOA,SAASG,EAAWH,EAAc,CACjC,GAAI,CAACA,EACG,MAAA,GAGF,MAAAI,EAAqBJ,EAAG,wBAC9B,MAAO,CAAC,EAAEI,EAAmB,OAASA,EAAmB,OAC1D,CAOA,SAASC,EAAQL,EAA4C,CACtD,MAAAI,EAAqBJ,EAAG,wBAEvB,MAAA,CACN,IAAKI,EAAmB,IAAM,OAAO,QACrC,KAAMA,EAAmB,KAAO,OAAO,OAAA,CAEzC,CAQA,SAASE,EAAKN,EAAaO,EAA0B,CACpD,OAAO,OAAO,iBAAiBP,CAAE,EAAE,iBAAiBO,CAAQ,CAC7D,CAQA,SAASC,EAAMR,EAAaH,EAA0B,CAC/C,MAAAY,EAAY,SAAS,cAAcZ,CAAO,EAChD,OAAAG,EAAG,MAAMS,CAAS,EAElBA,EAAU,OAAOT,CAAE,EAEZS,CACR,CAQA,SAASC,EAAsBV,EAAaW,EAAmC,CAC9E,OAAOC,EAAsBZ,EAAIW,CAAS,EAAE,KAAKR,CAAS,GAAK,IAChE,CAQA,SAASU,EAA0Bb,EAAaW,EAAmC,CAClF,OAAOC,EAAsBZ,EAAIW,CAAS,EAAE,SAASR,CAAS,GAAK,IACpE,CAQA,SAASW,EAAyBd,EAAaW,EAA8B,CAC5E,OAAOC,EAAsBZ,EAAIW,CAAS,EAAE,OAAOR,CAAS,CAC7D,CAQA,SAASS,EAAuBZ,EAAaW,EAA8B,CAC1E,OAAKX,EAIE,CAAC,GAAGA,EAAG,iBAAiBW,CAAS,CAAC,EAHjC,EAIT,CASA,SAASI,EACRf,EACAgB,EAAsB,SAAUC,EAAyC,OACpD,CACrB,GAAKjB,EAID,OAACA,EAAG,UACPA,EAAG,QAAU,IAGViB,IACAjB,EAAA,QAAQgB,CAAW,EAAIC,GAGvBA,IAAgB,MACZ,OAAAjB,EAAG,QAAQgB,CAAW,EAGvBhB,EAAG,QAAQgB,CAAW,CAC9B,CAKA,SAASE,EAAclB,EAAkC,CACnDA,GAIL,OAAOA,EAAG,OACX,OAEe,CACd,MAAAJ,EACA,UAAAO,EACA,OAAAE,EACA,IAAAC,EACA,KAAAE,EACA,qBAAAE,EACA,yBAAAG,EACA,wBAAAC,EACA,sBAAAF,EACA,QAAAG,EACA,aAAAG,CACD"}
package/utils/dom.js ADDED
@@ -0,0 +1,64 @@
1
+ function f(t, e, ...n) {
2
+ const o = document.createElement(t);
3
+ for (const r in e)
4
+ r.indexOf("on") === 0 ? o[r] = e[r] : o.setAttribute(r, e[r]);
5
+ return n.forEach((r) => {
6
+ typeof r == "string" ? o.insertAdjacentHTML("beforeend", r) : o.append(r);
7
+ }), o;
8
+ }
9
+ function i(t) {
10
+ if (!t)
11
+ return !1;
12
+ const e = t.getBoundingClientRect();
13
+ return !!(e.width || e.height);
14
+ }
15
+ function l(t) {
16
+ const e = t.getBoundingClientRect();
17
+ return {
18
+ top: e.top + window.scrollY,
19
+ left: e.left + window.scrollX
20
+ };
21
+ }
22
+ function c(t, e) {
23
+ return window.getComputedStyle(t).getPropertyValue(e);
24
+ }
25
+ function s(t, e) {
26
+ const n = document.createElement(e);
27
+ return t.after(n), n.append(t), n;
28
+ }
29
+ function a(t, e) {
30
+ return u(t, e).find(i) || null;
31
+ }
32
+ function d(t, e) {
33
+ return u(t, e).findLast(i) || null;
34
+ }
35
+ function p(t, e) {
36
+ return u(t, e).filter(i);
37
+ }
38
+ function u(t, e) {
39
+ return t ? [...t.querySelectorAll(e)] : [];
40
+ }
41
+ function g(t, e = "common", n = void 0) {
42
+ if (t)
43
+ return t.topData || (t.topData = {}), n && (t.topData[e] = n), n === null && delete t.topData[e], t.topData[e];
44
+ }
45
+ function y(t) {
46
+ t && delete t.topData;
47
+ }
48
+ const b = {
49
+ genEl: f,
50
+ isVisible: i,
51
+ offset: l,
52
+ css: c,
53
+ wrap: s,
54
+ querySelectorVisible: a,
55
+ querySelectorVisibleLast: d,
56
+ querySelectorAllVisible: p,
57
+ querySelectorAllArray: u,
58
+ storage: g,
59
+ storageClear: y
60
+ };
61
+ export {
62
+ b as default
63
+ };
64
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\n * Функции для работы с работы с Document Object Model (DOM)\n */\n\n/**\n * Создать элемент\n * @param {string} tagName\n * @param {any} attrs - атрибуты\n * @param {Element[]} elsChildrens\n * @returns {Element} - созданный элемент\n */\nfunction genEl (tagName: string, attrs: any, ...elsChildrens: Element[]): Element {\n\tconst el: any = document.createElement(tagName);\n\n\tfor (const name in attrs) {\n\t\tif (name.indexOf('on') === 0) {\n\t\t\t// events\n\t\t\tel[name] = attrs[name];\n\t\t} else {\n\t\t\tel.setAttribute(name, attrs[name]);\n\t\t}\n\t}\n\n\telsChildrens.forEach((elChildren) => {\n\t\tif (typeof (elChildren) === 'string') {\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\n\t\t} else {\n\t\t\tel.append(elChildren);\n\t\t}\n\t});\n\n\treturn el;\n}\n\n/**\n * Проверить видимость элемента\n * @param {?Element} el\n * @returns boolean - вернет true, если элемент считается видимым\n */\nfunction isVisible (el?: Element) {\n\tif (!el) {\n\t\treturn false;\n\t}\n\n\tconst boundingClientRect = el.getBoundingClientRect();\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\n}\n\n/**\n * Получить координаты элемента относительно документа\n * @param {Element} el\n * @returns {{top: number, left: number}} - координаты элемента относительно документа\n */\nfunction offset (el: Element): { top: number, left: number } {\n\tconst boundingClientRect = el.getBoundingClientRect();\n\n\treturn {\n\t\ttop: boundingClientRect.top + window.scrollY,\n\t\tleft: boundingClientRect.left + window.scrollX,\n\t};\n}\n\n/**\n * Получить значение css свойства элемента\n * @param {Element} el\n * @param {string} property - имя свойства\n * @return {string} - значение css стиля\n */\nfunction css (el: Element, property: string): string {\n\treturn window.getComputedStyle(el).getPropertyValue(property);\n}\n\n/**\n * Обернуть элемент и вернуть только что созданный элемент\n * @param {Element} el - элемент, который требуется обернуть\n * @param {string} tagName - имя тега элемента, в который треубется обернуть элемент\n * @returns {Element}\n */\nfunction wrap (el: Element, tagName: string): Element {\n\tconst elWrapper = document.createElement(tagName);\n\tel.after(elWrapper);\n\n\telWrapper.append(el);\n\n\treturn elWrapper;\n}\n\n/**\n * Найти и вернуть первый видимый элемент\n * @param {?Document|Element} el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns {Element|null}\n */\nfunction querySelectorVisible (el: Element, selectors: string): Element | null {\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\n}\n\n/**\n * Найти и вернуть последний видимый элемент\n * @param {?Document|Element} el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns {Element|null}\n */\nfunction querySelectorVisibleLast (el: Element, selectors: string): Element | null {\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\n}\n\n/**\n * Найти видимые элементы\n * @param {?Document|Element} el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns {Element[]} - обратите внимание, возвращается не NodeList[], а Element[]\n */\nfunction querySelectorAllVisible (el: Element, selectors: string): Element[] {\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\n}\n\n/**\n * Найти элементы и вернуть в виде массива\n * @param {?Document|Element} el - корневой элемент поиска\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\n * @returns {Element[]}\n */\nfunction querySelectorAllArray (el: Element, selectors: string): Element[] {\n\tif (!el) {\n\t\treturn [];\n\t}\n\n\treturn [...el.querySelectorAll(selectors)];\n}\n\n/**\n * Хранилище данных элемента\n * @param {Element} el\n * @param {string} contextName - контекст, обычно используется имя компонента\n * @param {?object | null} contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\n * @returns {?object} - вернет объект контекста или undefined, если данные контекста не найдены\n */\nfunction storage (\n\tel?: Element & { topData?: any },\n\tcontextName: string = 'common', contextData: object | null | undefined = undefined,\n): object | undefined {\n\tif (!el) {\n\t\treturn;\n\t}\n\n\tif (!el.topData) {\n\t\tel.topData = {};\n\t}\n\n\tif (contextData) {\n\t\tel.topData[contextName] = contextData;\n\t}\n\n\tif (contextData === null) {\n\t\tdelete el.topData[contextName];\n\t}\n\n\treturn el.topData[contextName];\n}\n\n/**\n * Очистить хранилище элемента\n */\nfunction storageClear (el?: Element & { topData?: any }) {\n\tif (!el) {\n\t\treturn;\n\t}\n\n\tdelete el.topData;\n}\n\nexport default {\n\tgenEl,\n\tisVisible,\n\toffset,\n\tcss,\n\twrap,\n\tquerySelectorVisible,\n\tquerySelectorVisibleLast,\n\tquerySelectorAllVisible,\n\tquerySelectorAllArray,\n\tstorage,\n\tstorageClear,\n};\n"],"names":["genEl","tagName","attrs","elsChildrens","el","name","elChildren","isVisible","boundingClientRect","offset","css","property","wrap","elWrapper","querySelectorVisible","selectors","querySelectorAllArray","querySelectorVisibleLast","querySelectorAllVisible","storage","contextName","contextData","storageClear","DOM"],"mappings":"AAWA,SAASA,EAAOC,GAAiBC,MAAeC,GAAkC;AAC3E,QAAAC,IAAU,SAAS,cAAcH,CAAO;AAE9C,aAAWI,KAAQH;AAClB,IAAIG,EAAK,QAAQ,IAAI,MAAM,IAEvBD,EAAAC,CAAI,IAAIH,EAAMG,CAAI,IAErBD,EAAG,aAAaC,GAAMH,EAAMG,CAAI,CAAC;AAItB,SAAAF,EAAA,QAAQ,CAACG,MAAe;AAChC,IAAA,OAAQA,KAAgB,WACxBF,EAAA,mBAAmB,aAAaE,CAAU,IAE7CF,EAAG,OAAOE,CAAU;AAAA,EACrB,CACA,GAEMF;AACR;AAOA,SAASG,EAAWH,GAAc;AACjC,MAAI,CAACA;AACG,WAAA;AAGF,QAAAI,IAAqBJ,EAAG;AAC9B,SAAO,CAAC,EAAEI,EAAmB,SAASA,EAAmB;AAC1D;AAOA,SAASC,EAAQL,GAA4C;AACtD,QAAAI,IAAqBJ,EAAG;AAEvB,SAAA;AAAA,IACN,KAAKI,EAAmB,MAAM,OAAO;AAAA,IACrC,MAAMA,EAAmB,OAAO,OAAO;AAAA,EAAA;AAEzC;AAQA,SAASE,EAAKN,GAAaO,GAA0B;AACpD,SAAO,OAAO,iBAAiBP,CAAE,EAAE,iBAAiBO,CAAQ;AAC7D;AAQA,SAASC,EAAMR,GAAaH,GAA0B;AAC/C,QAAAY,IAAY,SAAS,cAAcZ,CAAO;AAChD,SAAAG,EAAG,MAAMS,CAAS,GAElBA,EAAU,OAAOT,CAAE,GAEZS;AACR;AAQA,SAASC,EAAsBV,GAAaW,GAAmC;AAC9E,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,KAAKR,CAAS,KAAK;AAChE;AAQA,SAASU,EAA0Bb,GAAaW,GAAmC;AAClF,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,SAASR,CAAS,KAAK;AACpE;AAQA,SAASW,EAAyBd,GAAaW,GAA8B;AAC5E,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,OAAOR,CAAS;AAC7D;AAQA,SAASS,EAAuBZ,GAAaW,GAA8B;AAC1E,SAAKX,IAIE,CAAC,GAAGA,EAAG,iBAAiBW,CAAS,CAAC,IAHjC;AAIT;AASA,SAASI,EACRf,GACAgB,IAAsB,UAAUC,IAAyC,QACpD;AACrB,MAAKjB;AAID,WAACA,EAAG,YACPA,EAAG,UAAU,KAGViB,MACAjB,EAAA,QAAQgB,CAAW,IAAIC,IAGvBA,MAAgB,QACZ,OAAAjB,EAAG,QAAQgB,CAAW,GAGvBhB,EAAG,QAAQgB,CAAW;AAC9B;AAKA,SAASE,EAAclB,GAAkC;AACxD,EAAKA,KAIL,OAAOA,EAAG;AACX;AAEA,MAAemB,IAAA;AAAA,EACd,OAAAvB;AAAA,EACA,WAAAO;AAAA,EACA,QAAAE;AAAA,EACA,KAAAC;AAAA,EACA,MAAAE;AAAA,EACA,sBAAAE;AAAA,EACA,0BAAAG;AAAA,EACA,yBAAAC;AAAA,EACA,uBAAAF;AAAA,EACA,SAAAG;AAAA,EACA,cAAAG;AACD;"}
@@ -1,425 +0,0 @@
1
- define(["exports", "vue"], function(exports, vue) {
2
- "use strict";
3
- var __vite_style__ = document.createElement("style");
4
- __vite_style__.textContent = ".top-button {\r\n cursor: pointer;\r\n box-sizing: border-box;\r\n box-shadow: var(--top-button-box-shadow);\r\n border-radius: var(--top-forms-radius);\r\n border: var(--top-forms-border-width) solid var(--top-forms-border-color);\r\n background-color: var(--top-button-background-color);\r\n height: var(--top-forms-base-height);\r\n padding: 0 var(--top-forms-padding);\r\n color: var(--top-button-color);\r\n line-height: 1;\r\n white-space: nowrap;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n transition: background-color 150ms, border-color 150ms, box-shadow 150ms;\n}\n.top-button:hover {\r\n box-shadow: var(--top-button-box-shadow-hover);\r\n background-color: var(--top-button-background-color-hover);\n}\n.top-button:active {\r\n box-shadow: var(--top-button-box-shadow-active);\r\n background-color: var(--top-button-background-color-active);\n}\n.top-button.top-active {\r\n box-shadow: var(--top-button-box-shadow-selected);\r\n background-color: var(--top-button-background-color-selected);\n}\n.top-button.top-button-progress {\r\n cursor: help;\r\n box-shadow: inset rgba(0, 0, 0, 0.5) 0 0 64px;\r\n background-image:\r\n linear-gradient(-45deg,\r\n rgba(255, 255, 255, 0.2) 25%,\r\n transparent 25%,\r\n transparent 50%,\r\n rgba(255, 255, 255, 0.2) 50%,\r\n rgba(255, 255, 255, 0.2) 75%,\r\n transparent 75%,\r\n transparent);\r\n background-size: 32px 32px;\r\n animation: _progress_1f1nw_1 1s linear infinite;\n}\n@keyframes _progress_1f1nw_1 {\n0% {\r\n background-position-x: 0px;\n}\n100% {\r\n background-position-x: 32px;\n}\n}\na.top-button,\r\nbutton.top-button {\r\n min-width: 135px;\r\n text-decoration: none;\n}\na.top-button,\r\na.top-button:hover {\r\n min-width: var(--top-forms-base-height);\r\n text-decoration: none;\n}\n.top-button[data-top-icon]:not(:empty),\r\n.top-button[data-top-icon2]:not(:empty) {\r\n justify-content: flex-start;\r\n text-align: left;\n}\n.top-button[data-top-icon] {\r\n padding-left: 0;\n}\n.top-button[data-top-icon2] {\r\n padding-right: var(--top-select_arrow-width);\n}\n.top-button[data-top-icon2]:after {\r\n margin-left: auto;\n}\n.top-button:empty {\r\n min-width: var(--top-forms-base-height);\n}\n.top-button[data-top-icon]:empty,\r\n.top-button[data-top-icon2]:empty {\r\n padding: 0;\n}\n.top-button.top-color_blue {\r\n --top-button-background-color: var(--color-blue-500);\n}\n.top-button.top-color_green {\r\n --top-button-background-color: var(--color-green-500);\n}\n.top-button.top-color_orange {\r\n --top-button-background-color: var(--color-orange-500);\n}\n.top-button.top-color_red {\r\n --top-button-background-color: var(--color-red-500);\n}\n.top-button.top-color_pink {\r\n --top-button-background-color: var(--color-pink-500);\n}\n.top-button.top-color_theme {\r\n --top-button-box-shadow-hover: none;\r\n --top-button-box-shadow-active: none;\r\n --top-button-box-shadow-selected: none;\r\n\r\n --top-icon-color: var(--color-text-2);\r\n --top-icon2-color: var(--color-text-2);\r\n\r\n --top-button-color: var(--color-text-1);\r\n --top-button-background-color: transparent;\r\n --top-button-background-color-hover: var(--color-secondary-opacity);\r\n --top-button-background-color-active: var(--color-secondary-2-opacity);\r\n --top-button-background-color-selected: var(--color-secondary-2-opacity);\n}\n.top-button.top-color_theme.top-active {\r\n --top-icon-color: var(--color-text-2);\n}\n.top-button.top-style_outline {\r\n --top-button-box-shadow: none;\r\n --top-button-box-shadow-hover: none;\r\n --top-button-box-shadow-active: none;\r\n --top-button-box-shadow-selected: none;\r\n\r\n --top-forms-border-color: var(--top-style_outline-color);\r\n\r\n --top-style_outline-color: var(--color-steel-400);\r\n\r\n --top-button-color: var(--top-style_outline-color);\r\n --top-button-background-color: var(--content-background-color);\r\n --top-button-background-color-hover: var(--color-theme-100);\r\n --top-button-background-color-active: var(--color-theme-150);\r\n --top-button-background-color-selected: var(--color-theme-125);\r\n\r\n --top-forms-border-width: 1px;\n}\n.top-button.top-style_outline.top-color_theme {\r\n --top-button-color: var(--color-text);\n}\n.top-button.top-style_outline.top-color_blue {\r\n --top-style_outline-color: var(--color-blue-500);\n}\n.top-button.top-style_outline.top-color_green {\r\n --top-style_outline-color: var(--color-green-500);\n}\n.top-button.top-style_outline.top-color_orange {\r\n --top-style_outline-color: var(--color-orange-500);\n}\n.top-button.top-style_outline.top-color_red {\r\n --top-style_outline-color: var(--color-red-500);\n}\n.top-button.top-style_outline.top-color_pink {\r\n --top-style_outline-color: var(--color-pink-500);\n}\n.top-button.top-style_soft {\r\n --top-shadow-darken: none;\r\n --top-shadow-darken-2: none;\r\n --top-shadow-darken-3: none;\r\n\r\n --top-button-color: var(--color-text);\r\n --top-button-background-color: var(--color-secondary-opacity);\r\n --top-button-background-color-hover: var(--color-secondary-2-opacity);\r\n --top-button-background-color-active: var(--color-secondary-3-opacity);\r\n --top-button-background-color-selected: var(--color-secondary-3-opacity);\n}\n.top-button.top-style_soft.top-color_blue {\r\n --top-button-color: var(--color-blue-500);\n}\n.top-button.top-style_soft.top-color_orange {\r\n --top-button-color: var(--color-orange-500);\n}\n.top-button.top-style_soft.top-color_green {\r\n --top-button-color: var(--color-green-500);\n}\n.top-button.top-style_soft.top-color_red {\r\n --top-button-color: var(--color-red-500);\n}\n.top-button.top-style_soft.top-color_pink {\r\n --top-button-color: var(--color-pink-500);\n}\n.top-button.top-style_transparent {\r\n --top-shadow-darken: none;\r\n --top-shadow-darken-2: none;\r\n --top-shadow-darken-3: none;\r\n\r\n --top-button-color: var(--color-text);\r\n --top-button-background-color: transparent;\r\n --top-button-background-color-hover: transparent;\r\n --top-button-background-color-active: transparent;\r\n --top-button-background-color-selected: var(--color-steel-200);\n}\n.top-button.top-style_transparent:hover {\r\n opacity: 0.8;\n}\n.top-button.top-style_transparent.top-color_blue {\r\n --top-button-color: var(--color-blue-450);\n}\n.top-button.top-style_transparent.top-color_green {\r\n --top-button-color: var(--color-green-450);\n}\n.top-button.top-style_transparent.top-color_orange {\r\n --top-button-color: var(--color-orange-450);\n}\n.top-button.top-style_transparent.top-color_red {\r\n --top-button-color: var(--color-red-450);\n}\n.top-button.top-style_transparent.top-color_pink {\r\n --top-button-color: var(--color-pink-450);\n}\n.top-button {\r\n --top-button-color: var(--color-white);\r\n --top-button-background-color: transparent;\r\n --top-button-background-color-hover: var(--top-button-background-color);\r\n --top-button-background-color-active: var(--top-button-background-color-hover);\r\n --top-button-background-color-selected: var(--top-button-background-color-hover);\r\n --top-button-box-shadow: none;\r\n --top-button-box-shadow-hover: var(--top-shadow-darken-2);\r\n --top-button-box-shadow-active: var(--top-shadow-darken-3);\r\n --top-button-box-shadow-selected: var(--top-shadow-darken-3);\r\n --top-forms-border-width: 0px;\r\n --top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));\r\n --top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding));\n}\n.top-button.top-size_l {\r\n --top-forms-padding: var(--top-forms-padding_l);\r\n --top-forms-base-height: var(--top-forms-base-height_l);\n}\n.top-button.top-size_xl {\r\n --top-forms-padding: var(--top-forms-padding_xl);\r\n --top-forms-base-height: var(--top-forms-base-height_xl);\n}\r\n\n.top-forms-optionLabel {\r\n flex-grow: 1;\n}\n.top-forms-optionLabel_title {\r\n min-height: var(--top-forms-option-height);\r\n display: flex;\r\n align-items: center;\n}\n.top-forms-optionLabel_title-disabled {\r\n color: var(--color-text-3);\n}\n.top-forms-optionLabel_description {\r\n color: var(--color-text-3);\r\n font-size: 0.85em;\r\n line-height: var(--top-forms-option-height);\n}\r\n\n.top-checkbox {\r\n cursor: pointer;\r\n display: inline-flex;\n}\n.top-checkbox_input {\r\n cursor: inherit;\r\n border-radius: 4px;\r\n background: var(--content-background-color);\r\n border: 1px solid var(--top-forms-border-color);\r\n width: calc(var(--top-forms-option-height) - 3px * 2);\r\n height: calc(var(--top-forms-option-height) - 3px * 2);\n}\n.top-checkbox_input:before {\r\n content: ' ';\r\n color: #FFF;\r\n font-family: 'Topvisor-2';\r\n font-size: 16px;\n}\n.top-checkbox_input:not(:checked):not(:indeterminate):hover {\r\n border-color: var(--top-forms-option-color);\r\n background: var(--color-theme-50)\n}\r\n\r\n/* checked / indeterminate */\n.top-checkbox_input:checked,\r\n.top-checkbox_input:indeterminate {\r\n border-color: var(--top-forms-option-color);\r\n background: var(--top-forms-option-color);\n}\n.top-checkbox_input:checked:before {\r\n content: '';\n}\n.top-checkbox_input:indeterminate:before {\r\n content: '';\n}\n.top-checkbox_input:checked:hover,\r\n.top-checkbox_input:indeterminate:hover {\r\n border-color: var(--top-forms-option-color-hover);\r\n background: var(--top-forms-option-color-hover);\n}\r\n\r\n/* disabled */\n.top-checkbox_input:checked:disabled,\r\n.top-checkbox_input:indeterminate:disabled {\r\n border-color: transparent;\r\n background: var(--color-theme-400);\n}\r\n\r\n/* isError */\n.top-checkbox_input.top-error {\r\n border-color: var(--color-negative) !important;\n}\n.top-checkbox_input:checked.top-error,\r\n.top-checkbox_input:indeterminate.top-error {\r\n background: var(--color-negative);\n}\r\n\n.top-input {\r\n width: 180px;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: var(--top-gap-1);\n}\n.top-input_input {\r\n background: var(--top-forms-background-color);\n}\n.top-input_input:hover {\r\n background: var(--top-forms-background-color-hover);\n}\n.top-input_input:focus {\r\n outline-color: var(--color-theme-75);\r\n outline-offset: 0px;\n}\n.top-input-withCleaner .top-input_input:not(:placeholder-shown) {\r\n --top-forms_clear-width: 24px;\n}\r\n\r\n/* TODO: перенести в inputsRange */\n.top-input_input {\r\n width: 50%;\r\n flex-grow: 1;\n}\n.top-input[data-top-icon]:before {\r\n --top-icon-color: var(--color-text-secondary);\n}\r\n\n:root {\r\n --top-radio-background-color: var(--content-background-color);\r\n --top-radio-background-color-hover: var(--top-radio-background-color);\r\n --top-radio-background-color-active: var(--top-radio-background-color);\n}\n.top-radio {\r\n cursor: pointer;\n}\n.top-radio_input {\r\n border-radius: 50%;\r\n background: var(--content-background-color);\r\n border: 1px solid var(--top-forms-border-color);\r\n width: calc(var(--top-forms-option-height) - 3px * 2);\r\n height: calc(var(--top-forms-option-height) - 3px * 2);\n}\n.top-radio_input:hover {\r\n border-color: var(--top-forms-option-color);\n}\n.top-radio_input:checked {\r\n border-color: var(--top-forms-option-color);\r\n border-width: 5px;\n}\n.top-radio_input:checked:hover {\r\n border-color: var(--top-forms-option-color-hover);\n}\r\n\r\n/* isError */\n.top-radio_input.top-error,\r\n.top-radio_input:checked.top-error {\r\n border-color: var(--color-negative);\n}\r\n\n.top-checkboxSwitcher {\r\n cursor: pointer;\r\n display: inline-flex;\r\n gap: 4px;\n}\n.top-checkboxSwitcher_input {\r\n border-radius: 9px;\r\n border: none;\r\n background: var(--color-theme-100);\r\n width: 36px;\r\n height: 18px;\r\n position: relative;\n}\n.top-checkboxSwitcher_input:before {\r\n content: '';\r\n border-radius: 50%;\r\n background: var(--color-white);\r\n width: 12px;\r\n height: 12px;\r\n margin: 3px;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n\r\n transition: left 0.1s;\n}\n.top-checkboxSwitcher_input:hover {\r\n background: var(--color-theme-150);\n}\r\n\r\n/* checked */\n.top-checkboxSwitcher_input:checked {\r\n background: var(--top-forms-option-color);\n}\n.top-checkboxSwitcher_input:checked:hover {\r\n background: var(--top-forms-option-color-hover);\n}\n.top-checkboxSwitcher_input:checked:before {\r\n left: 50%;\n}\r\n\r\n/* disabled */\n.top-checkboxSwitcher_input:disabled {\r\n background: var(--color-theme-400);\n}\r\n\r\n/* isError */\n.top-checkboxSwitcher_input.top-error {\r\n background: var(--color-negative) !important;\n}\r\n";
5
- document.head.appendChild(__vite_style__);
6
- var SIZE = /* @__PURE__ */ ((SIZE2) => {
7
- SIZE2["S"] = "s";
8
- SIZE2["L"] = "l";
9
- SIZE2["XL"] = "xl";
10
- return SIZE2;
11
- })(SIZE || {});
12
- var COLOR = /* @__PURE__ */ ((COLOR2) => {
13
- COLOR2["Theme"] = "theme";
14
- COLOR2["Blue"] = "blue";
15
- COLOR2["Green"] = "green";
16
- COLOR2["Orange"] = "orange";
17
- COLOR2["Red"] = "red";
18
- COLOR2["Pink"] = "pink";
19
- return COLOR2;
20
- })(COLOR || {});
21
- var STYLING = /* @__PURE__ */ ((STYLING2) => {
22
- STYLING2["Regular"] = "";
23
- STYLING2["Outline"] = "outline";
24
- STYLING2["Soft"] = "soft";
25
- STYLING2["Transparent"] = "transparent";
26
- return STYLING2;
27
- })(STYLING || {});
28
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
29
- __name: "button",
30
- props: {
31
- color: { default: COLOR.Blue },
32
- styling: { default: STYLING.Regular },
33
- size: { default: SIZE.S },
34
- name: {},
35
- title: {},
36
- icon: {},
37
- icon2: {},
38
- href: {},
39
- disabled: { type: Boolean },
40
- isSubmit: { type: Boolean },
41
- isActive: { type: Boolean },
42
- isProgress: { type: Boolean }
43
- },
44
- setup(__props) {
45
- const props = __props;
46
- const tagName = vue.computed(() => props.href ? "a" : "button");
47
- const type = vue.computed(() => props.isSubmit ? "submit" : void 0);
48
- return (_ctx, _cache) => {
49
- return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
50
- class: vue.normalizeClass({
51
- ["top-active"]: _ctx.isActive,
52
- ["top-disabled"]: _ctx.disabled,
53
- ["top-forms-focusable"]: !_ctx.disabled,
54
- ["top-button"]: true,
55
- ["top-button-progress"]: _ctx.isProgress,
56
- [`top-size_${_ctx.size}`]: !!_ctx.size,
57
- [`top-color_${_ctx.color}`]: true,
58
- [`top-style_${_ctx.styling}`]: !!_ctx.styling
59
- }),
60
- name: _ctx.name,
61
- title: _ctx.title,
62
- href: _ctx.href,
63
- type: type.value,
64
- "data-top-icon": _ctx.icon || void 0,
65
- "data-top-icon2": _ctx.icon2 || void 0,
66
- disabled: _ctx.disabled || void 0,
67
- inProgress: _ctx.isProgress
68
- }, {
69
- default: vue.withCtx(() => [
70
- vue.renderSlot(_ctx.$slots, "default", {}, () => [
71
- vue.createTextVNode(vue.toDisplayString(!_ctx.icon ? "Button" : ""), 1)
72
- ])
73
- ]),
74
- _: 3
75
- }, 8, ["class", "name", "title", "href", "type", "data-top-icon", "data-top-icon2", "disabled", "inProgress"]);
76
- };
77
- }
78
- });
79
- const progress = "_progress_1f1nw_1";
80
- const style0$5 = {
81
- "top-button": "top-button",
82
- "top-active": "top-active",
83
- "top-button-progress": "top-button-progress",
84
- progress,
85
- "top-color_blue": "top-color_blue",
86
- "top-color_green": "top-color_green",
87
- "top-color_orange": "top-color_orange",
88
- "top-color_red": "top-color_red",
89
- "top-color_pink": "top-color_pink",
90
- "top-color_theme": "top-color_theme",
91
- "top-style_outline": "top-style_outline",
92
- "top-style_soft": "top-style_soft",
93
- "top-style_transparent": "top-style_transparent",
94
- "top-size_l": "top-size_l",
95
- "top-size_xl": "top-size_xl"
96
- };
97
- const _export_sfc = (sfc, props) => {
98
- const target = sfc.__vccOpts || sfc;
99
- for (const [key, val] of props) {
100
- target[key] = val;
101
- }
102
- return target;
103
- };
104
- const cssModules$5 = {
105
- "$style": style0$5
106
- };
107
- const button = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__cssModules", cssModules$5]]);
108
- const _hoisted_1$4 = { class: "top-forms-optionLabel" };
109
- const _hoisted_2$1 = {
110
- key: 0,
111
- class: "top-forms-optionLabel_description"
112
- };
113
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
114
- __name: "controlLabel",
115
- props: {
116
- title: {},
117
- description: {},
118
- disabled: { type: Boolean }
119
- },
120
- setup(__props) {
121
- return (_ctx, _cache) => {
122
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
123
- vue.createElementVNode("div", {
124
- class: vue.normalizeClass({
125
- "top-forms-optionLabel_title": true,
126
- "top-forms-optionLabel_title-disabled": _ctx.disabled
127
- })
128
- }, vue.toDisplayString(_ctx.title), 3),
129
- _ctx.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1, vue.toDisplayString(_ctx.description), 1)) : vue.createCommentVNode("", true)
130
- ]);
131
- };
132
- }
133
- });
134
- const style0$4 = {
135
- "top-forms-optionLabel": "top-forms-optionLabel",
136
- "top-forms-optionLabel_title": "top-forms-optionLabel_title",
137
- "top-forms-optionLabel_title-disabled": "top-forms-optionLabel_title-disabled",
138
- "top-forms-optionLabel_description": "top-forms-optionLabel_description"
139
- };
140
- const cssModules$4 = {
141
- "$style": style0$4
142
- };
143
- const ControlLabel = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$4]]);
144
- const _hoisted_1$3 = ["name", "value", "checked", "indeterminate", "disabled"];
145
- const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
146
- __name: "checkbox",
147
- props: {
148
- name: {},
149
- value: {},
150
- title: {},
151
- description: {},
152
- checked: { type: Boolean },
153
- disabled: { type: Boolean },
154
- indeterminate: { type: Boolean },
155
- isError: { type: Boolean }
156
- },
157
- setup(__props) {
158
- return (_ctx, _cache) => {
159
- return vue.openBlock(), vue.createElementBlock("label", {
160
- class: vue.normalizeClass({
161
- ["top-forms-optionWrapper"]: true,
162
- ["top-checkbox"]: true,
163
- ["top-checkbox_" + _ctx.name]: _ctx.name !== "",
164
- ["top-active"]: _ctx.checked,
165
- ["top-disabled"]: _ctx.disabled,
166
- ["top-error"]: _ctx.isError && !_ctx.disabled
167
- })
168
- }, [
169
- vue.createElementVNode("input", {
170
- type: "checkbox",
171
- class: vue.normalizeClass({
172
- ["top-forms-focusable"]: !_ctx.disabled,
173
- ["top-forms-option"]: true,
174
- ["top-checkbox_input"]: true,
175
- ["top-error"]: _ctx.isError && !_ctx.disabled
176
- }),
177
- name: _ctx.name,
178
- value: _ctx.value,
179
- checked: _ctx.checked,
180
- indeterminate: _ctx.indeterminate,
181
- disabled: _ctx.disabled
182
- }, null, 10, _hoisted_1$3),
183
- _ctx.title ? (vue.openBlock(), vue.createBlock(ControlLabel, {
184
- key: 0,
185
- title: _ctx.title,
186
- description: _ctx.description,
187
- disabled: _ctx.disabled
188
- }, null, 8, ["title", "description", "disabled"])) : vue.createCommentVNode("", true)
189
- ], 2);
190
- };
191
- }
192
- });
193
- const style0$3 = {
194
- "top-checkbox": "top-checkbox",
195
- "top-checkbox_input": "top-checkbox_input",
196
- "top-error": "top-error"
197
- };
198
- const cssModules$3 = {
199
- "$style": style0$3
200
- };
201
- const checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$3]]);
202
- var CAPTION_TYPE = /* @__PURE__ */ ((CAPTION_TYPE2) => {
203
- CAPTION_TYPE2["NONE"] = "";
204
- CAPTION_TYPE2["SLIDE"] = "slide";
205
- CAPTION_TYPE2["TOP"] = "top";
206
- return CAPTION_TYPE2;
207
- })(CAPTION_TYPE || {});
208
- const _hoisted_1$2 = ["data-top-icon"];
209
- const _hoisted_2 = ["name", "title", "placeholder", "disabled", "readonly"];
210
- const _hoisted_3 = {
211
- key: 2,
212
- class: "top-formsCaption"
213
- };
214
- const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
215
- __name: "input",
216
- props: {
217
- modelValue: {},
218
- name: {},
219
- disabled: { type: Boolean },
220
- readonly: { type: Boolean },
221
- title: {},
222
- captionType: { default: CAPTION_TYPE.NONE },
223
- size: { default: SIZE.S },
224
- icon: {},
225
- addCleaner: { type: Boolean },
226
- isError: { type: Boolean }
227
- },
228
- emits: ["update:modelValue"],
229
- setup(__props, { emit }) {
230
- const props = __props;
231
- const value = vue.computed({
232
- get() {
233
- return props.modelValue;
234
- },
235
- set(value2) {
236
- emit("update:modelValue", value2);
237
- }
238
- });
239
- const placeholder = vue.computed(() => {
240
- if (props.addCleaner && !props.title) {
241
- return "";
242
- }
243
- if (props.captionType !== CAPTION_TYPE.NONE) {
244
- return "";
245
- }
246
- return props.title;
247
- });
248
- const clean = () => {
249
- emit("update:modelValue", "");
250
- };
251
- return (_ctx, _cache) => {
252
- return vue.openBlock(), vue.createElementBlock("label", {
253
- class: vue.normalizeClass({
254
- ["top-input"]: true,
255
- ["top-input-" + _ctx.name]: _ctx.name,
256
- ["top-size_" + _ctx.size]: true,
257
- ["top-disabled"]: _ctx.disabled,
258
- ["top-input-withCleaner"]: _ctx.addCleaner,
259
- ["top-formsCaptionWrapper"]: _ctx.captionType !== vue.unref(CAPTION_TYPE).NONE,
260
- ["top-formsCaptionWrapper-always"]: _ctx.captionType === vue.unref(CAPTION_TYPE).TOP,
261
- ["top-input-withButton"]: !!_ctx.$slots.btn
262
- }),
263
- "data-top-icon": _ctx.icon
264
- }, [
265
- vue.withDirectives(vue.createElementVNode("input", {
266
- type: "text",
267
- class: vue.normalizeClass({
268
- ["top-forms-focusable"]: !_ctx.disabled,
269
- ["top-input_input"]: true,
270
- ["top-error"]: _ctx.isError
271
- }),
272
- autocomplete: "off_always",
273
- name: _ctx.name,
274
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
275
- title: _ctx.title,
276
- placeholder: placeholder.value,
277
- disabled: _ctx.disabled,
278
- readonly: _ctx.readonly,
279
- onKeydown: _cache[1] || (_cache[1] = vue.withKeys(() => (_ctx.addCleaner || !!_ctx.$slots.btn) && clean(), ["esc"]))
280
- }, null, 42, _hoisted_2), [
281
- [vue.vModelText, value.value]
282
- ]),
283
- _ctx.addCleaner && value.value ? (vue.openBlock(), vue.createElementBlock("span", {
284
- key: 0,
285
- class: "top-input_cleaner top-cleaner",
286
- "data-top-icon": "",
287
- onClick: clean
288
- })) : vue.createCommentVNode("", true),
289
- value.value ? vue.renderSlot(_ctx.$slots, "btn", { key: 1 }) : vue.createCommentVNode("", true),
290
- vue.renderSlot(_ctx.$slots, "default"),
291
- _ctx.captionType !== vue.unref(CAPTION_TYPE).NONE ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(_ctx.title), 1)) : vue.createCommentVNode("", true)
292
- ], 10, _hoisted_1$2);
293
- };
294
- }
295
- });
296
- const style0$2 = {
297
- "top-input": "top-input",
298
- "top-input_input": "top-input_input",
299
- "top-input-withCleaner": "top-input-withCleaner"
300
- };
301
- const cssModules$2 = {
302
- "$style": style0$2
303
- };
304
- const input = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
305
- const _hoisted_1$1 = ["name", "value", "checked", "disabled"];
306
- const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
307
- __name: "radio",
308
- props: {
309
- name: {},
310
- value: {},
311
- title: {},
312
- description: {},
313
- checked: { type: Boolean },
314
- disabled: { type: Boolean },
315
- isError: { type: Boolean }
316
- },
317
- setup(__props) {
318
- return (_ctx, _cache) => {
319
- return vue.openBlock(), vue.createElementBlock("label", {
320
- class: vue.normalizeClass({
321
- ["top-forms-optionWrapper"]: true,
322
- ["top-radio"]: true,
323
- ["top-radio_" + _ctx.name]: _ctx.name !== "",
324
- ["top-active"]: _ctx.checked,
325
- ["top-disabled"]: _ctx.disabled,
326
- ["top-error"]: _ctx.isError && !_ctx.disabled
327
- })
328
- }, [
329
- vue.createElementVNode("input", {
330
- type: "radio",
331
- class: vue.normalizeClass({
332
- ["top-forms-focusable"]: !_ctx.disabled,
333
- ["top-forms-option"]: true,
334
- ["top-radio_input"]: true,
335
- ["top-error"]: _ctx.isError && !_ctx.disabled
336
- }),
337
- name: _ctx.name,
338
- value: _ctx.value,
339
- checked: _ctx.checked,
340
- disabled: _ctx.disabled
341
- }, null, 10, _hoisted_1$1),
342
- _ctx.title ? (vue.openBlock(), vue.createBlock(ControlLabel, {
343
- key: 0,
344
- title: _ctx.title,
345
- description: _ctx.description,
346
- disabled: _ctx.disabled
347
- }, null, 8, ["title", "description", "disabled"])) : vue.createCommentVNode("", true)
348
- ], 2);
349
- };
350
- }
351
- });
352
- const style0$1 = {
353
- "top-radio": "top-radio",
354
- "top-radio_input": "top-radio_input",
355
- "top-error": "top-error"
356
- };
357
- const cssModules$1 = {
358
- "$style": style0$1
359
- };
360
- const radio = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
361
- const _hoisted_1 = ["name", "value", "checked", "disabled"];
362
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
363
- __name: "switcher",
364
- props: {
365
- name: {},
366
- value: {},
367
- title: {},
368
- description: {},
369
- checked: { type: Boolean },
370
- disabled: { type: Boolean },
371
- isError: { type: Boolean },
372
- isSwitcher: { type: Boolean }
373
- },
374
- setup(__props) {
375
- return (_ctx, _cache) => {
376
- return vue.openBlock(), vue.createElementBlock("label", {
377
- class: vue.normalizeClass({
378
- ["top-forms-optionWrapper"]: true,
379
- ["top-checkboxSwitcher"]: true,
380
- ["top-active"]: _ctx.checked,
381
- ["top-disabled"]: _ctx.disabled,
382
- ["top-error"]: _ctx.isError && !_ctx.disabled
383
- })
384
- }, [
385
- vue.createElementVNode("input", {
386
- type: "checkbox",
387
- class: vue.normalizeClass({
388
- ["top-forms-focusable"]: !_ctx.disabled,
389
- ["top-forms-option"]: true,
390
- ["top-checkboxSwitcher_input"]: true,
391
- ["top-error"]: _ctx.isError && !_ctx.disabled
392
- }),
393
- name: _ctx.name,
394
- value: _ctx.value,
395
- checked: _ctx.checked,
396
- disabled: _ctx.disabled
397
- }, null, 10, _hoisted_1),
398
- _ctx.title ? (vue.openBlock(), vue.createBlock(ControlLabel, {
399
- key: 0,
400
- title: _ctx.title,
401
- description: _ctx.description,
402
- disabled: _ctx.disabled
403
- }, null, 8, ["title", "description", "disabled"])) : vue.createCommentVNode("", true)
404
- ], 2);
405
- };
406
- }
407
- });
408
- const style0 = {
409
- "top-checkboxSwitcher": "top-checkboxSwitcher",
410
- "top-checkboxSwitcher_input": "top-checkboxSwitcher_input",
411
- "top-error": "top-error"
412
- };
413
- const cssModules = {
414
- "$style": style0
415
- };
416
- const switcher = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
417
- exports.ControlLabel = ControlLabel;
418
- exports.SIZE = SIZE;
419
- exports.button = button;
420
- exports.checkbox = checkbox;
421
- exports.input = input;
422
- exports.radio = radio;
423
- exports.switcher = switcher;
424
- });
425
- //# sourceMappingURL=forms-2abb7eaa.amd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forms-2abb7eaa.amd.js","sources":["../../src/components/forms/helpers.ts","../../src/components/forms/button/button.ts","../../src/components/forms/button/button.vue","../../src/components/forms/input/input.ts","../../src/components/forms/input/input.vue"],"sourcesContent":["/**\r\n * Размеры\r\n */\r\nexport enum SIZE {\r\n\tS = 's',\r\n\tL = 'l',\r\n\tXL = 'xl',\r\n}","import type { VNode } from 'vue';\r\nimport { SIZE } from '@/components/forms/helpers';\r\n\r\n/**\r\n * Определение параметров\r\n */\r\nexport interface Props {\r\n\tcolor?: COLOR\r\n\tstyling?: STYLING // bug: name = style init with object type\r\n\tsize?: SIZE\r\n\r\n\tname?: string\r\n\ttitle?: string\r\n\ticon?: string\r\n\ticon2?: string\r\n\r\n\thref?: string // если установлена ссылка, isSubmit не может быть true\r\n\t// value?: string\r\n\r\n\tdisabled?: boolean\r\n\tisSubmit?: boolean\r\n\tisActive?: boolean\r\n\tisProgress?: boolean\r\n}\r\n\r\n/**\r\n * Определение слотов\r\n */\r\nexport interface Slots {\r\n\t/**\r\n\t * Cлот с проивзольным содержимым\r\n\t */\r\n\tdefault(): VNode[];\r\n}\r\n\r\n/**\r\n * Определение событий\r\n */\r\nexport interface Emits { }\r\n\r\n/**\r\n * Цвета\r\n */\r\nexport enum COLOR {\r\n\tTheme = 'theme',\r\n\tBlue = 'blue',\r\n\tGreen = 'green',\r\n\tOrange = 'orange',\r\n\tRed = 'red',\r\n\tPink = 'pink',\r\n}\r\n\r\n/**\r\n * Стили\r\n */\r\nexport enum STYLING {\r\n\tRegular = '',\r\n\tOutline = 'outline',\r\n\tSoft = 'soft',\r\n\tTransparent = 'transparent',\r\n}\r\n\r\nexport { SIZE };","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props } from './button';\r\nimport { COLOR, STYLING, SIZE } from './button';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tcolor: COLOR.Blue,\r\n\tstyling: STYLING.Regular,\r\n\tsize: SIZE.S,\r\n});\r\n\r\nconst tagName = computed(() => props.href ? 'a' : 'button');\r\n\r\nconst type = computed(() => props.isSubmit ? 'submit' : undefined);\r\n</script>\r\n\r\n<template>\r\n\t<component\r\n\t\t:is=\"tagName\"\r\n\t\t:class=\"{\r\n\t\t\t['top-active']: isActive,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t['top-button']: true,\r\n\t\t\t['top-button-progress']: isProgress,\r\n\t\t\t[`top-size_${size}`]: !!size,\r\n\t\t\t[`top-color_${color}`]: true,\r\n\t\t\t[`top-style_${styling}`]: !!styling,\r\n\t\t}\"\r\n\t\t:name=\"name\"\r\n\t\t:title=\"title\"\r\n\t\t:href=\"href\"\r\n\t\t:type=\"type\"\r\n\t\t:data-top-icon=\"icon || undefined\"\r\n\t\t:data-top-icon2=\"icon2 || undefined\"\r\n\t\t:disabled=\"disabled || undefined\"\r\n\t\t:inProgress=\"isProgress\"\r\n\t>\r\n\t\t<slot>{{ !icon ? 'Button' : '' }}</slot>\r\n\t</component>\r\n</template>\r\n\r\n<style module>\r\n@import \"./style/button.css\";\r\n@import \"./style/style-outline.css\";\r\n@import \"./style/style-soft.css\";\r\n@import \"./style/style-transparent.css\";\r\n\r\n.top-button {\r\n\t--top-button-color: var(--color-white);\r\n\t--top-button-background-color: transparent;\r\n\t--top-button-background-color-hover: var(--top-button-background-color);\r\n\t--top-button-background-color-active: var(--top-button-background-color-hover);\r\n\t--top-button-background-color-selected: var(--top-button-background-color-hover);\r\n\t--top-button-box-shadow: none;\r\n\t--top-button-box-shadow-hover: var(--top-shadow-darken-2);\r\n\t--top-button-box-shadow-active: var(--top-shadow-darken-3);\r\n\t--top-button-box-shadow-selected: var(--top-shadow-darken-3);\r\n\t--top-forms-border-width: 0px;\r\n\t--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));\r\n\t--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding));\r\n}\r\n\r\n.top-button.top-size_l {\r\n\t--top-forms-padding: var(--top-forms-padding_l);\r\n\t--top-forms-base-height: var(--top-forms-base-height_l);\r\n}\r\n\r\n.top-button.top-size_xl {\r\n\t--top-forms-padding: var(--top-forms-padding_xl);\r\n\t--top-forms-base-height: var(--top-forms-base-height_xl);\r\n}\r\n</style>","import type { VNode } from 'vue';\r\nimport { SIZE } from '@/components/forms/helpers';\r\n\r\n/**\r\n * Определение параметров\r\n */\r\nexport interface Props {\r\n\tmodelValue?: string\r\n\r\n\tname?: string\r\n\tdisabled?: boolean\r\n\treadonly?: boolean\r\n\r\n\ttitle?: string\r\n\tcaptionType?: CAPTION_TYPE\r\n\r\n\tsize?: SIZE\r\n\ticon?: string\r\n\taddCleaner?: boolean\r\n\tisError?: boolean\r\n}\r\n\r\n/**\r\n * Определение слотов\r\n */\r\nexport interface Slots {\r\n\t/**\r\n\t * Cлот с проивзольным содержимым\r\n\t */\r\n\tdefault(): VNode[];\r\n\tbtn(): VNode[];\r\n}\r\n\r\n/**\r\n * Определение событий\r\n */\r\nexport interface Emits {\r\n\t(e: 'update:modelValue', value?: string): void\r\n}\r\n\r\n/**\r\n * Типы заголовка\r\n */\r\nexport enum CAPTION_TYPE {\r\n\tNONE = '',\r\n\tSLIDE = 'slide',\r\n\tTOP = 'top',\r\n}\r\n\r\nexport { SIZE };","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './input';\r\nimport { SIZE, CAPTION_TYPE } from './input';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: SIZE.S,\r\n\tcaptionType: CAPTION_TYPE.NONE,\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst value = computed({\r\n\tget () {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset (value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\nconst placeholder = computed(() => {\r\n\tif (props.addCleaner && !props.title) {\r\n\t\treturn '';\r\n\t}\r\n\tif (props.captionType !== CAPTION_TYPE.NONE) {\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn props.title;\r\n});\r\n\r\nconst clean = () => {\r\n\temit('update:modelValue', '');\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-input']: true,\r\n\t\t\t['top-input-' + name]: name,\r\n\t\t\t['top-size_' + size]: true,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-input-withCleaner']: addCleaner,\r\n\t\t\t['top-formsCaptionWrapper']: captionType !== CAPTION_TYPE.NONE,\r\n\t\t\t['top-formsCaptionWrapper-always']: captionType === CAPTION_TYPE.TOP,\r\n\t\t\t['top-input-withButton']: !!$slots.btn,\r\n\t\t}\"\r\n\t\t:data-top-icon=\"icon\"\r\n\t>\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-input_input']: true,\r\n\t\t\t\t['top-error']: isError,\r\n\t\t\t}\"\r\n\t\t\tautocomplete=\"off_always\"\r\n\t\t\t:name=\"name\"\r\n\t\t\tv-model=\"value\"\r\n\t\t\t:title=\"title\"\r\n\t\t\t:placeholder=\"placeholder\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t\t:readonly=\"readonly\"\r\n\t\t\t@keydown.esc=\"() => (addCleaner || !!$slots.btn) && clean()\"\r\n\t\t>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"addCleaner && value\"\r\n\t\t\tclass=\"top-input_cleaner top-cleaner\"\r\n\t\t\tdata-top-icon=\"\"\r\n\t\t\t@click=\"clean\"\r\n\t\t></span>\r\n\r\n\t\t<!-- TODO: кнопка должна отоборажаться только при изменении value -->\r\n\t\t<!-- TODO: до нажатия на кнопку, изменеине не должно применяться -->\r\n\t\t<!-- TODO: при отмене состояние должно возвращаться к первоначальному -->\r\n\t\t<slot\r\n\t\t\tv-if=\"value\"\r\n\t\t\tname=\"btn\"\r\n\t\t/>\r\n\r\n\t\t<slot></slot>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"captionType !== CAPTION_TYPE.NONE\"\r\n\t\t\tclass=\"top-formsCaption\"\r\n\t\t>\r\n\t\t\t{{ title }}\r\n\t\t</span>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-input {\r\n\twidth: 180px;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tgap: var(--top-gap-1);\r\n}\r\n\r\n.top-input_input {\r\n\tbackground: var(--top-forms-background-color);\r\n}\r\n\r\n.top-input_input:hover {\r\n\tbackground: var(--top-forms-background-color-hover);\r\n}\r\n\r\n.top-input_input:focus {\r\n\toutline-color: var(--color-theme-75);\r\n\toutline-offset: 0px;\r\n}\r\n\r\n.top-input-withCleaner .top-input_input:not(:placeholder-shown) {\r\n\t--top-forms_clear-width: 24px;\r\n}\r\n\r\n/* TODO: перенести в inputsRange */\r\n.top-input_input {\r\n\twidth: 50%;\r\n\tflex-grow: 1;\r\n}\r\n\r\n.top-input[data-top-icon]:before {\r\n\t--top-icon-color: var(--color-text-secondary);\r\n}\r\n</style>"],"names":["SIZE","COLOR","STYLING","computed","CAPTION_TYPE","value"],"mappings":";;;;;AAGY,MAAA,yBAAAA,UAAL;AACNA,UAAA,GAAI,IAAA;AACJA,UAAA,GAAI,IAAA;AACJA,UAAA,IAAK,IAAA;AAHMA,WAAAA;AAAAA,EAAA,GAAA,QAAA,CAAA,CAAA;ACwCA,MAAA,0BAAAC,WAAL;AACNA,WAAA,OAAQ,IAAA;AACRA,WAAA,MAAO,IAAA;AACPA,WAAA,OAAQ,IAAA;AACRA,WAAA,QAAS,IAAA;AACTA,WAAA,KAAM,IAAA;AACNA,WAAA,MAAO,IAAA;AANIA,WAAAA;AAAAA,EAAA,GAAA,SAAA,CAAA,CAAA;AAYA,MAAA,4BAAAC,aAAL;AACNA,aAAA,SAAU,IAAA;AACVA,aAAA,SAAU,IAAA;AACVA,aAAA,MAAO,IAAA;AACPA,aAAA,aAAc,IAAA;AAJHA,WAAAA;AAAAA,EAAA,GAAA,WAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;AC5CZ,YAAM,UAAUC,IAAAA,SAAS,MAAM,MAAM,OAAO,MAAM,QAAQ;AAE1D,YAAM,OAAOA,IAAAA,SAAS,MAAM,MAAM,WAAW,WAAW,MAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8BrD,MAAA,iCAAAC,kBAAL;AACNA,kBAAA,MAAO,IAAA;AACPA,kBAAA,OAAQ,IAAA;AACRA,kBAAA,KAAM,IAAA;AAHKA,WAAAA;AAAAA,EAAA,GAAA,gBAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AC/BZ,YAAM,QAAQD,IAAAA,SAAS;AAAA,QACtB,MAAO;AACN,iBAAO,MAAM;AAAA,QACd;AAAA,QACA,IAAKE,QAAO;AACX,eAAK,qBAAqBA,MAAK;AAAA,QAChC;AAAA,MAAA,CACA;AAEK,YAAA,cAAcF,IAAAA,SAAS,MAAM;AAClC,YAAI,MAAM,cAAc,CAAC,MAAM,OAAO;AAC9B,iBAAA;AAAA,QACR;AACI,YAAA,MAAM,gBAAgB,aAAa,MAAM;AACrC,iBAAA;AAAA,QACR;AAEA,eAAO,MAAM;AAAA,MAAA,CACb;AAED,YAAM,QAAQ,MAAM;AACnB,aAAK,qBAAqB,EAAE;AAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}