@topvisor/ui 0.0.37 → 0.0.38

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 (72) hide show
  1. package/.chunks/datepicker-778ddcc5.es.js +275 -0
  2. package/.chunks/datepicker-778ddcc5.es.js.map +1 -0
  3. package/.chunks/datepicker-80599025.amd.js +234 -0
  4. package/.chunks/datepicker-80599025.amd.js.map +1 -0
  5. package/.chunks/forms-58420e52.amd.js +3 -0
  6. package/.chunks/forms-58420e52.amd.js.map +1 -0
  7. package/.chunks/forms-779fee37.es.js +1107 -0
  8. package/.chunks/forms-779fee37.es.js.map +1 -0
  9. package/.chunks/{popup-b9517276.es.js → popup-672d6531.es.js} +420 -385
  10. package/.chunks/popup-672d6531.es.js.map +1 -0
  11. package/.chunks/popup-d53450b6.amd.js +377 -0
  12. package/.chunks/popup-d53450b6.amd.js.map +1 -0
  13. package/README.md +62 -62
  14. package/{core.css → assets/core.css} +1 -1
  15. package/assets/forms.css +1 -0
  16. package/assets/popup.css +1 -0
  17. package/common/common.amd.js +1 -1
  18. package/core/core.amd.js +1 -1
  19. package/core/core.js +1 -1
  20. package/forms/forms.amd.js +1 -1
  21. package/forms/forms.js +12 -11
  22. package/forms/helpers.amd.js +1 -1
  23. package/forms/helpers.amd.js.map +1 -1
  24. package/forms/helpers.js +1 -0
  25. package/forms/helpers.js.map +1 -1
  26. package/formsExt/formsExt.amd.js +1 -2
  27. package/formsExt/formsExt.amd.js.map +1 -1
  28. package/formsExt/formsExt.js +90 -86
  29. package/formsExt/formsExt.js.map +1 -1
  30. package/icomoon/demo-files/demo.css +161 -161
  31. package/icomoon/demo-files/demo.js +30 -30
  32. package/icomoon/demo.html +2945 -2945
  33. package/icomoon/fonts/Topvisor-2.svg +232 -232
  34. package/icomoon/style.css +647 -647
  35. package/package.json +19 -19
  36. package/popup/popup.amd.js +1 -2
  37. package/popup/popup.amd.js.map +1 -1
  38. package/popup/popup.js +74 -68
  39. package/popup/popup.js.map +1 -1
  40. package/popup/worker.amd.js +1 -1
  41. package/popup/worker.amd.js.map +1 -1
  42. package/popup/worker.js +2 -3
  43. package/popup/worker.js.map +1 -1
  44. package/tabs/tabs.amd.js +1 -2
  45. package/tabs/tabs.amd.js.map +1 -1
  46. package/tabs/tabs.js +30 -26
  47. package/tabs/tabs.js.map +1 -1
  48. package/utils/date.amd.js +1 -1
  49. package/utils/date.js +1 -1
  50. package/utils/device.amd.js +1 -1
  51. package/utils/device.js +2 -2
  52. package/utils/dom.amd.js +1 -1
  53. package/utils/dom.amd.js.map +1 -1
  54. package/utils/dom.js +3 -61
  55. package/utils/dom.js.map +1 -1
  56. package/.chunks/datepicker-6d57a408.es.js +0 -275
  57. package/.chunks/datepicker-6d57a408.es.js.map +0 -1
  58. package/.chunks/datepicker-a0840577.amd.js +0 -234
  59. package/.chunks/datepicker-a0840577.amd.js.map +0 -1
  60. package/.chunks/forms-1aa30229.amd.js +0 -3
  61. package/.chunks/forms-1aa30229.amd.js.map +0 -1
  62. package/.chunks/forms-7be951a7.es.js +0 -962
  63. package/.chunks/forms-7be951a7.es.js.map +0 -1
  64. package/.chunks/popup-604c0a49.amd.js +0 -341
  65. package/.chunks/popup-604c0a49.amd.js.map +0 -1
  66. package/.chunks/popup-b9517276.es.js.map +0 -1
  67. package/forms.css +0 -1
  68. package/popup.css +0 -1
  69. /package/{dark.css → assets/dark.css} +0 -0
  70. /package/{formsExt.css → assets/formsExt.css} +0 -0
  71. /package/{light.css → assets/light.css} +0 -0
  72. /package/{tabs.css → assets/tabs.css} +0 -0
package/tabs/tabs.js CHANGED
@@ -1,24 +1,28 @@
1
- import { defineComponent as n, openBlock as e, createElementBlock as a, renderSlot as s, createCommentVNode as c, createElementVNode as o, normalizeClass as b, Fragment as _ } from "vue";
2
- import { _ as l } from "../.chunks/forms-7be951a7.es.js";
3
- const r = {
4
- class: /* @__PURE__ */ b({
1
+ import { defineComponent as l, openBlock as o, createElementBlock as n, renderSlot as s, createCommentVNode as c, createElementVNode as b, normalizeClass as p, Fragment as r } from "vue";
2
+ import { _ as d } from "../.chunks/forms-779fee37.es.js";
3
+ import("../core/core.js").then((e) => {
4
+ const t = ["../assets/tabs.css"].map((a) => import.meta.resolve(a));
5
+ e.default.Page.addCss(t);
6
+ });
7
+ const _ = {
8
+ class: /* @__PURE__ */ p({
5
9
  "top-tabs": !0
6
10
  })
7
11
  }, i = {
8
12
  key: 0,
9
13
  class: "top-tabs_header"
10
- }, u = { class: "top-tabs_contents" }, m = /* @__PURE__ */ n({
14
+ }, u = { class: "top-tabs_contents" }, m = /* @__PURE__ */ l({
11
15
  __name: "tabs",
12
16
  props: {
13
17
  id: {}
14
18
  },
15
- setup(p) {
16
- return (t, d) => (e(), a("div", r, [
19
+ setup(e) {
20
+ return (t, a) => (o(), n("div", _, [
17
21
  s(t.$slots, "buttons"),
18
- t.$slots.header ? (e(), a("div", i, [
22
+ t.$slots.header ? (o(), n("div", i, [
19
23
  s(t.$slots, "header")
20
24
  ])) : c("", !0),
21
- o("div", u, [
25
+ b("div", u, [
22
26
  s(t.$slots, "contents")
23
27
  ])
24
28
  ]));
@@ -31,7 +35,7 @@ const r = {
31
35
  "top-tabs_content": "top-tabs_content"
32
36
  }, h = {
33
37
  $style: $
34
- }, N = /* @__PURE__ */ l(m, [["__cssModules", h]]), f = ["id", "name", "value", "checked", "disabled"], y = ["for"], v = /* @__PURE__ */ n({
38
+ }, g = /* @__PURE__ */ d(m, [["__cssModules", h]]), f = ["id", "name", "value", "checked", "disabled"], v = ["for"], y = /* @__PURE__ */ l({
35
39
  __name: "tab",
36
40
  props: {
37
41
  tabsId: {},
@@ -40,9 +44,9 @@ const r = {
40
44
  active: { type: Boolean },
41
45
  disabled: { type: Boolean }
42
46
  },
43
- setup(p) {
44
- return (t, d) => (e(), a(_, null, [
45
- o("input", {
47
+ setup(e) {
48
+ return (t, a) => (o(), n(r, null, [
49
+ b("input", {
46
50
  type: "radio",
47
51
  class: "top-tabs_tabInput top-unvisible",
48
52
  id: t.tabsId + t.name,
@@ -51,8 +55,8 @@ const r = {
51
55
  checked: t.active,
52
56
  disabled: t.disabled
53
57
  }, null, 8, f),
54
- o("label", {
55
- class: b({
58
+ b("label", {
59
+ class: p({
56
60
  "top-tabs_tabLabel": !0,
57
61
  "top-forms-focusable": !0,
58
62
  "top-disabled": t.disabled
@@ -60,7 +64,7 @@ const r = {
60
64
  for: t.tabsId + t.name
61
65
  }, [
62
66
  s(t.$slots, "default")
63
- ], 10, y)
67
+ ], 10, v)
64
68
  ], 64));
65
69
  }
66
70
  }), I = {
@@ -69,14 +73,14 @@ const r = {
69
73
  "top-disabled": "top-disabled"
70
74
  }, M = {
71
75
  $style: I
72
- }, V = /* @__PURE__ */ l(v, [["__cssModules", M]]), k = ["data-tabs-name"], B = /* @__PURE__ */ n({
76
+ }, E = /* @__PURE__ */ d(y, [["__cssModules", M]]), k = ["data-tabs-name"], C = /* @__PURE__ */ l({
73
77
  __name: "content",
74
78
  props: {
75
79
  name: {}
76
80
  },
77
- setup(p) {
78
- return (t, d) => (e(), a("div", {
79
- class: b({
81
+ setup(e) {
82
+ return (t, a) => (o(), n("div", {
83
+ class: p({
80
84
  "top-tabs_content": !0
81
85
  }),
82
86
  "data-tabs-name": t.name
@@ -84,14 +88,14 @@ const r = {
84
88
  s(t.$slots, "default")
85
89
  ], 8, k));
86
90
  }
87
- }), C = {
91
+ }), B = {
88
92
  "top-tabs_content": "top-tabs_content"
89
93
  }, T = {
90
- $style: C
91
- }, g = /* @__PURE__ */ l(B, [["__cssModules", T]]);
94
+ $style: B
95
+ }, V = /* @__PURE__ */ d(C, [["__cssModules", T]]);
92
96
  export {
93
- N as Tabs,
94
- g as TabsContent,
95
- V as TabsTab
97
+ g as Tabs,
98
+ V as TabsContent,
99
+ E as TabsTab
96
100
  };
97
101
  //# sourceMappingURL=tabs.js.map
package/tabs/tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/utils/date.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define(["../.chunks/forms-1aa30229.amd","vue"],function(e,t){"use strict"; if(typeof vue === "undefined") var vue = window.Vue;return e.UtilsDate});
1
+ define(["require","../.chunks/forms-58420e52.amd","vue"],function(i,u,e){"use strict";if(typeof e>"u")var e=window.Vue;return u.UtilsDate});
2
2
  //# sourceMappingURL=date.amd.js.map
package/utils/date.js CHANGED
@@ -1,4 +1,4 @@
1
- import { U as a } from "../.chunks/forms-7be951a7.es.js";
1
+ import { U as a } from "../.chunks/forms-779fee37.es.js";
2
2
  import "vue";
3
3
  export {
4
4
  a as default
@@ -1,2 +1,2 @@
1
- define(["../.chunks/forms-1aa30229.amd","vue"],function(e,u){"use strict"; if(typeof vue === "undefined") var vue = window.Vue;return e.Device});
1
+ define(["require","../.chunks/forms-58420e52.amd","vue"],function(i,u,e){"use strict";if(typeof e>"u")var e=window.Vue;return u.Device});
2
2
  //# sourceMappingURL=device.amd.js.map
package/utils/device.js CHANGED
@@ -1,6 +1,6 @@
1
- import { D as a } from "../.chunks/forms-7be951a7.es.js";
1
+ import { a as t } from "../.chunks/forms-779fee37.es.js";
2
2
  import "vue";
3
3
  export {
4
- a as default
4
+ t as default
5
5
  };
6
6
  //# sourceMappingURL=device.js.map
package/utils/dom.amd.js CHANGED
@@ -1,2 +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}});
1
+ define(["require","../.chunks/forms-58420e52.amd","vue"],function(r,u,e){"use strict";if(typeof e>"u")var e=window.Vue;return u.DOM});
2
2
  //# sourceMappingURL=dom.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom.amd.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\r\n * Функции для работы с работы с Document Object Model (DOM)\r\n */\r\n\r\n/**\r\n * Создать элемент\r\n * @param {string} tagName\r\n * @param {any} attrs - атрибуты\r\n * @param {Element[]} elsChildrens\r\n * @returns {Element} - созданный элемент\r\n */\r\nfunction genEl (tagName: string, attrs: any, ...elsChildrens: Element[]): Element {\r\n\tconst el: any = document.createElement(tagName);\r\n\r\n\tfor (const name in attrs) {\r\n\t\tif (name.indexOf('on') === 0) {\r\n\t\t\t// events\r\n\t\t\tel[name] = attrs[name];\r\n\t\t} else {\r\n\t\t\tel.setAttribute(name, attrs[name]);\r\n\t\t}\r\n\t}\r\n\r\n\telsChildrens.forEach((elChildren) => {\r\n\t\tif (typeof (elChildren) === 'string') {\r\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\r\n\t\t} else {\r\n\t\t\tel.append(elChildren);\r\n\t\t}\r\n\t});\r\n\r\n\treturn el;\r\n}\r\n\r\n/**\r\n * Проверить видимость элемента\r\n * @param {?Element} el\r\n * @returns boolean - вернет true, если элемент считается видимым\r\n */\r\nfunction isVisible (el?: Element) {\r\n\tif (!el) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\r\n}\r\n\r\n/**\r\n * Получить координаты элемента относительно документа\r\n * @param {Element} el\r\n * @returns {{top: number, left: number}} - координаты элемента относительно документа\r\n */\r\nfunction offset (el: Element): { top: number, left: number } {\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\r\n\treturn {\r\n\t\ttop: boundingClientRect.top + window.scrollY,\r\n\t\tleft: boundingClientRect.left + window.scrollX,\r\n\t};\r\n}\r\n\r\n/**\r\n * Получить значение css свойства элемента\r\n * @param {Element} el\r\n * @param {string} property - имя свойства\r\n * @return {string} - значение css стиля\r\n */\r\nfunction css (el: Element, property: string): string {\r\n\treturn window.getComputedStyle(el).getPropertyValue(property);\r\n}\r\n\r\n/**\r\n * Обернуть элемент и вернуть только что созданный элемент\r\n * @param {Element} el - элемент, который требуется обернуть\r\n * @param {string} tagName - имя тега элемента, в который треубется обернуть элемент\r\n * @returns {Element}\r\n */\r\nfunction wrap (el: Element, tagName: string): Element {\r\n\tconst elWrapper = document.createElement(tagName);\r\n\tel.after(elWrapper);\r\n\r\n\telWrapper.append(el);\r\n\r\n\treturn elWrapper;\r\n}\r\n\r\n/**\r\n * Найти и вернуть первый видимый элемент\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element|null}\r\n */\r\nfunction querySelectorVisible (el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти и вернуть последний видимый элемент\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element|null}\r\n */\r\nfunction querySelectorVisibleLast (el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти видимые элементы\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element[]} - обратите внимание, возвращается не NodeList[], а Element[]\r\n */\r\nfunction querySelectorAllVisible (el: Element, selectors: string): Element[] {\r\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\r\n}\r\n\r\n/**\r\n * Найти элементы и вернуть в виде массива\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element[]}\r\n */\r\nfunction querySelectorAllArray (el: Element, selectors: string): Element[] {\r\n\tif (!el) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn [...el.querySelectorAll(selectors)];\r\n}\r\n\r\n/**\r\n * Хранилище данных элемента\r\n * @param {Element} el\r\n * @param {string} contextName - контекст, обычно используется имя компонента\r\n * @param {?object | null} contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\r\n * @returns {?object} - вернет объект контекста или undefined, если данные контекста не найдены\r\n */\r\nfunction storage (\r\n\tel?: Element & { topData?: any },\r\n\tcontextName: string = 'common', contextData: object | null | undefined = undefined,\r\n): object | undefined {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!el.topData) {\r\n\t\tel.topData = {};\r\n\t}\r\n\r\n\tif (contextData) {\r\n\t\tel.topData[contextName] = contextData;\r\n\t}\r\n\r\n\tif (contextData === null) {\r\n\t\tdelete el.topData[contextName];\r\n\t}\r\n\r\n\treturn el.topData[contextName];\r\n}\r\n\r\n/**\r\n * Очистить хранилище элемента\r\n */\r\nfunction storageClear (el?: Element & { topData?: any }) {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdelete el.topData;\r\n}\r\n\r\nexport default {\r\n\tgenEl,\r\n\tisVisible,\r\n\toffset,\r\n\tcss,\r\n\twrap,\r\n\tquerySelectorVisible,\r\n\tquerySelectorVisibleLast,\r\n\tquerySelectorAllVisible,\r\n\tquerySelectorAllArray,\r\n\tstorage,\r\n\tstorageClear,\r\n};\r\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"}
1
+ {"version":3,"file":"dom.amd.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/utils/dom.js CHANGED
@@ -1,64 +1,6 @@
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
- };
1
+ import { D as a } from "../.chunks/forms-779fee37.es.js";
2
+ import "vue";
61
3
  export {
62
- b as default
4
+ a as default
63
5
  };
64
6
  //# sourceMappingURL=dom.js.map
package/utils/dom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\r\n * Функции для работы с работы с Document Object Model (DOM)\r\n */\r\n\r\n/**\r\n * Создать элемент\r\n * @param {string} tagName\r\n * @param {any} attrs - атрибуты\r\n * @param {Element[]} elsChildrens\r\n * @returns {Element} - созданный элемент\r\n */\r\nfunction genEl (tagName: string, attrs: any, ...elsChildrens: Element[]): Element {\r\n\tconst el: any = document.createElement(tagName);\r\n\r\n\tfor (const name in attrs) {\r\n\t\tif (name.indexOf('on') === 0) {\r\n\t\t\t// events\r\n\t\t\tel[name] = attrs[name];\r\n\t\t} else {\r\n\t\t\tel.setAttribute(name, attrs[name]);\r\n\t\t}\r\n\t}\r\n\r\n\telsChildrens.forEach((elChildren) => {\r\n\t\tif (typeof (elChildren) === 'string') {\r\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\r\n\t\t} else {\r\n\t\t\tel.append(elChildren);\r\n\t\t}\r\n\t});\r\n\r\n\treturn el;\r\n}\r\n\r\n/**\r\n * Проверить видимость элемента\r\n * @param {?Element} el\r\n * @returns boolean - вернет true, если элемент считается видимым\r\n */\r\nfunction isVisible (el?: Element) {\r\n\tif (!el) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\r\n}\r\n\r\n/**\r\n * Получить координаты элемента относительно документа\r\n * @param {Element} el\r\n * @returns {{top: number, left: number}} - координаты элемента относительно документа\r\n */\r\nfunction offset (el: Element): { top: number, left: number } {\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\r\n\treturn {\r\n\t\ttop: boundingClientRect.top + window.scrollY,\r\n\t\tleft: boundingClientRect.left + window.scrollX,\r\n\t};\r\n}\r\n\r\n/**\r\n * Получить значение css свойства элемента\r\n * @param {Element} el\r\n * @param {string} property - имя свойства\r\n * @return {string} - значение css стиля\r\n */\r\nfunction css (el: Element, property: string): string {\r\n\treturn window.getComputedStyle(el).getPropertyValue(property);\r\n}\r\n\r\n/**\r\n * Обернуть элемент и вернуть только что созданный элемент\r\n * @param {Element} el - элемент, который требуется обернуть\r\n * @param {string} tagName - имя тега элемента, в который треубется обернуть элемент\r\n * @returns {Element}\r\n */\r\nfunction wrap (el: Element, tagName: string): Element {\r\n\tconst elWrapper = document.createElement(tagName);\r\n\tel.after(elWrapper);\r\n\r\n\telWrapper.append(el);\r\n\r\n\treturn elWrapper;\r\n}\r\n\r\n/**\r\n * Найти и вернуть первый видимый элемент\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element|null}\r\n */\r\nfunction querySelectorVisible (el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти и вернуть последний видимый элемент\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element|null}\r\n */\r\nfunction querySelectorVisibleLast (el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти видимые элементы\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element[]} - обратите внимание, возвращается не NodeList[], а Element[]\r\n */\r\nfunction querySelectorAllVisible (el: Element, selectors: string): Element[] {\r\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\r\n}\r\n\r\n/**\r\n * Найти элементы и вернуть в виде массива\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element[]}\r\n */\r\nfunction querySelectorAllArray (el: Element, selectors: string): Element[] {\r\n\tif (!el) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn [...el.querySelectorAll(selectors)];\r\n}\r\n\r\n/**\r\n * Хранилище данных элемента\r\n * @param {Element} el\r\n * @param {string} contextName - контекст, обычно используется имя компонента\r\n * @param {?object | null} contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\r\n * @returns {?object} - вернет объект контекста или undefined, если данные контекста не найдены\r\n */\r\nfunction storage (\r\n\tel?: Element & { topData?: any },\r\n\tcontextName: string = 'common', contextData: object | null | undefined = undefined,\r\n): object | undefined {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!el.topData) {\r\n\t\tel.topData = {};\r\n\t}\r\n\r\n\tif (contextData) {\r\n\t\tel.topData[contextName] = contextData;\r\n\t}\r\n\r\n\tif (contextData === null) {\r\n\t\tdelete el.topData[contextName];\r\n\t}\r\n\r\n\treturn el.topData[contextName];\r\n}\r\n\r\n/**\r\n * Очистить хранилище элемента\r\n */\r\nfunction storageClear (el?: Element & { topData?: any }) {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdelete el.topData;\r\n}\r\n\r\nexport default {\r\n\tgenEl,\r\n\tisVisible,\r\n\toffset,\r\n\tcss,\r\n\twrap,\r\n\tquerySelectorVisible,\r\n\tquerySelectorVisibleLast,\r\n\tquerySelectorAllVisible,\r\n\tquerySelectorAllArray,\r\n\tstorage,\r\n\tstorageClear,\r\n};\r\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
+ {"version":3,"file":"dom.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,275 +0,0 @@
1
- import { watch as g, toRef as m } from "vue";
2
- import { C as k, U as h } from "./forms-7be951a7.es.js";
3
- const b = `/* ui-datepicker */\r
4
- .ui-datepicker {\r
5
- --datepicker-day-color: #FFF;\r
6
- --datepicker-day-color-hover: var(--color-blue-150);\r
7
- --datepicker-selected-color: var(--color-blue-500);\r
8
- --datepicker-selected-color-hover: var(--color-blue-550);\r
9
- --datepicker-range-color: var(--color-blue-100);\r
10
- --datepicker-range-color-hover: var(--color-blue-150);\r
11
- \r
12
- user-select: none;\r
13
- width: auto;\r
14
- padding: 0;\r
15
- }\r
16
- \r
17
- .ui-datepicker:before,\r
18
- .ui-datepicker:after {\r
19
- display: none;\r
20
- }\r
21
- \r
22
- /* на странице */\r
23
- .ui-datepicker-inline {\r
24
- display: inline-block !important;\r
25
- }\r
26
- \r
27
- /* в popup */\r
28
- .ui-datepicker:not(.ui-datepicker-inline) {\r
29
- border-radius: 8px;\r
30
- background: var(--content-background-color);\r
31
- box-shadow: var(--top-shadow);\r
32
- z-index: 10000000 !important;\r
33
- padding: 8px;\r
34
- }\r
35
- \r
36
- .ui-datepicker a {\r
37
- text-decoration: none !important;\r
38
- }\r
39
- \r
40
- .ui-datepicker option {\r
41
- color: var(--color-text);\r
42
- font-size: 14px;\r
43
- }\r
44
- \r
45
- .ui-datepicker-header {\r
46
- padding: 0 !important;\r
47
- margin: 0 0 18px 0;\r
48
- display: flex;\r
49
- align-items: center;\r
50
- }\r
51
- \r
52
- .ui-datepicker-header > * {\r
53
- display: flex;\r
54
- align-items: center;\r
55
- justify-content: center;\r
56
- }\r
57
- \r
58
- .ui-datepicker-title {\r
59
- width: 100% !important;\r
60
- height: 24px;\r
61
- margin: 0 !important;\r
62
- }\r
63
- \r
64
- .ui-datepicker-month,\r
65
- .ui-datepicker-year {\r
66
- outline: none !important;\r
67
- width: auto !important;\r
68
- border: none;\r
69
- padding: 0;\r
70
- margin: 0 6px !important;\r
71
- text-align: center;\r
72
- font-size: 16px !important;\r
73
- }\r
74
- \r
75
- .ui-datepicker-month {\r
76
- color: var(--color-text);\r
77
- }\r
78
- \r
79
- .ui-datepicker-year {\r
80
- color: var(--color-gray-300);\r
81
- }\r
82
- \r
83
- /* select.ui-datepicker-month,\r
84
- select.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\r
85
- select.ui-datepicker-month,\r
86
- select.ui-datepicker-year {\r
87
- cursor: pointer;\r
88
- }\r
89
- \r
90
- .ui-datepicker-prev,\r
91
- .ui-datepicker-next {\r
92
- cursor: pointer;\r
93
- width: 24px !important;\r
94
- height: 24px !important;\r
95
- font-size: 24px;\r
96
- font-family: 'Topvisor-2';\r
97
- position: static !important;\r
98
- }\r
99
- \r
100
- .ui-datepicker-prev:before {\r
101
- content: '';\r
102
- }\r
103
- \r
104
- .ui-datepicker-next {\r
105
- order: 1;\r
106
- }\r
107
- \r
108
- .ui-datepicker-next:before {\r
109
- content: '';\r
110
- }\r
111
- \r
112
- .ui-datepicker-prev > *,\r
113
- .ui-datepicker-next > * {\r
114
- display: none !important;\r
115
- }\r
116
- \r
117
- .ui-datepicker thead th {\r
118
- width: auto !important;\r
119
- padding: 0 !important;\r
120
- color: #B3BEBF;\r
121
- font-size: 14px;\r
122
- font-weight: 400 !important;\r
123
- }\r
124
- \r
125
- .ui-datepicker table {\r
126
- margin: 0 !important;\r
127
- font-size: 14px;\r
128
- }\r
129
- \r
130
- .ui-datepicker td {\r
131
- background: none;\r
132
- padding: 0 !important;\r
133
- }\r
134
- \r
135
- .ui-datepicker td span,\r
136
- .ui-datepicker td a {\r
137
- border-radius: 8px;\r
138
- border: none;\r
139
- min-width: 32px;\r
140
- height: 32px;\r
141
- padding: 0;\r
142
- margin: 1px;\r
143
- color: var(--color-text) !important;\r
144
- line-height: 32px;\r
145
- text-align: center;\r
146
- position: relative;\r
147
- display: block;\r
148
- }\r
149
- \r
150
- /* обычные даты */\r
151
- .ui-datepicker td a {\r
152
- background: var(--datepicker-day-color);\r
153
- }\r
154
- \r
155
- .ui-datepicker td a:hover {\r
156
- background: var(--datepicker-day-color-hover);\r
157
- }\r
158
- \r
159
- /* текущий день */\r
160
- td.ui-datepicker-today span,\r
161
- td.ui-datepicker-today a {\r
162
- background: none;\r
163
- position: relative;\r
164
- }\r
165
- \r
166
- /* выбранные даты */\r
167
- .ui-datepicker td.selected a {\r
168
- background: var(--datepicker-range-color);\r
169
- padding-right: 0;\r
170
- padding-left: 1px;\r
171
- margin-right: 1px;\r
172
- margin-left: 0;\r
173
- }\r
174
- \r
175
- .ui-datepicker td.selected a:hover {\r
176
- background: var(--datepicker-range-color-hover);\r
177
- }\r
178
- \r
179
- .ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\r
180
- border-top-left-radius: 0;\r
181
- border-bottom-left-radius: 0;\r
182
- padding-left: 1px;\r
183
- margin-left: 0;\r
184
- }\r
185
- \r
186
- .ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\r
187
- border-top-right-radius: 0;\r
188
- border-bottom-right-radius: 0;\r
189
- padding-right: 1px;\r
190
- margin-right: 0;\r
191
- }\r
192
- \r
193
- .ui-datepicker td.selected-start a,\r
194
- .ui-datepicker td.selected-end a,\r
195
- .ui-datepicker td.ui-datepicker-current-day a {\r
196
- background: var(--datepicker-selected-color);\r
197
- color: #FFF !important;\r
198
- }\r
199
- \r
200
- .ui-datepicker td.selected-start a:hover,\r
201
- .ui-datepicker td.selected-end a:hover,\r
202
- .ui-datepicker td.ui-datepicker-current-day a:hover {\r
203
- background: var(--datepicker-selected-color-hover);\r
204
- }\r
205
- \r
206
- .ui-datepicker-day-marks {\r
207
- line-height: normal;\r
208
- position: absolute;\r
209
- right: 0;\r
210
- bottom: 3px;\r
211
- left: 0;\r
212
- display: flex;\r
213
- align-items: center;\r
214
- justify-content: center;\r
215
- }\r
216
- \r
217
- .ui-datepicker-day-marks > i {\r
218
- border-radius: 50%;\r
219
- border: 1px solid #FFF;\r
220
- width: 4px;\r
221
- height: 4px;\r
222
- margin: 0 2px;\r
223
- }\r
224
- \r
225
- .ui-datepicker-day-marks-exists {\r
226
- background: var(--color-blue-500);\r
227
- }\r
228
- \r
229
- .ui-datepicker-day-marks-update {\r
230
- background: var(--color-red-500);\r
231
- }\r
232
- \r
233
- .ui-datepicker-row-break {\r
234
- display: none;\r
235
- }`;
236
- k.appendStyle(b);
237
- const o = window, x = (t) => {
238
- var r, e;
239
- if (!((e = (r = o == null ? void 0 : o.jQuery) == null ? void 0 : r.ui) != null && e.datepicker)) {
240
- console.info("Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker");
241
- return;
242
- }
243
- return o.jQuery.datepicker._defaults.dateFormat = k.state.dateFormat.toLowerCase().replace("m", "mm").replace("y", "yy").replace("d", "dd"), o.jQuery(t);
244
- };
245
- function y(t, r) {
246
- var e;
247
- return (e = x(t)) == null ? void 0 : e.datepicker(r);
248
- }
249
- let d, l, p, u;
250
- g(m(k.state.dateFormat), () => {
251
- var t;
252
- d = h.dateFormat("2000-01-01"), l = ((t = d.match(/\D/)) == null ? void 0 : t[0]) ?? "-", p = d.replace(/\D+/g, "").length, u = [];
253
- for (let r = 0; r < d.length; r++)
254
- d[r] === l && u.push(r);
255
- }, { immediate: !0 });
256
- function F(t) {
257
- let r = t.target.selectionEnd, e = t.target.value, n = e.substring(0, r).replace(/\D+/g, ""), i = e.substring(r).replace(/\D+/g, ""), c = n.length + i.length - p;
258
- if (c > 0) {
259
- n = n.substring(0, p);
260
- const a = p - n.length;
261
- i = i.substring(i.length - a);
262
- } else
263
- c < 0 && (t.inputType === "deleteContentForward" ? n += "0".repeat(-c) : i = "0".repeat(-c) + i);
264
- r = n.length, e = n + i;
265
- for (let a = 0; a < u.length; a++) {
266
- const s = u[a];
267
- e = e.substring(0, s) + l + e.substring(s), r >= s && r++;
268
- }
269
- t.inputType === "deleteContentBackward" && e[r - 1] === l && r--, e !== t.target.value && (t.target.value = e, t.target.selectionStart = r, t.target.selectionEnd = r);
270
- }
271
- export {
272
- y as connectDatepicker,
273
- F as oninput
274
- };
275
- //# sourceMappingURL=datepicker-6d57a408.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datepicker-6d57a408.es.js","sources":["../../src/components/forms/inputDate/datepicker.css?raw","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: #FFF;\\r\\n\\t--datepicker-day-color-hover: var(--color-blue-150);\\r\\n\\t--datepicker-selected-color: var(--color-blue-500);\\r\\n\\t--datepicker-selected-color-hover: var(--color-blue-550);\\r\\n\\t--datepicker-range-color: var(--color-blue-100);\\r\\n\\t--datepicker-range-color-hover: var(--color-blue-150);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-gray-300);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: #B3BEBF;\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-blue-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-red-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\"","import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport UtilsDate from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst _window: any = window;\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!_window?.jQuery?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\t_window.jQuery.datepicker._defaults.dateFormat = Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd');\r\n\r\n\treturn _window.jQuery(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = UtilsDate.dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}"],"names":["css","Core","_window","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","toRef","UtilsDate","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":";;AAAA,MAAeA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACMfC,EAAK,YAAYD,CAAG;AAEpB,MAAME,IAAe,QAEfC,IAAI,CAACC,MAAyB;;AACnC,MAAI,GAACC,KAAAC,IAAAJ,KAAA,gBAAAA,EAAS,WAAT,gBAAAI,EAAiB,OAAjB,QAAAD,EAAqB,aAAY;AACrC,YAAQ,KAAK,0EAA0E;AAEvF;AAAA,EACD;AAEA,SAAAH,EAAQ,OAAO,WAAW,UAAU,aAAaD,EAAK,MAAM,WAAW,YAAY,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,GAErIC,EAAQ,OAAOE,CAAE;AACzB;AAEgB,SAAAG,EAAkBH,GAAsBI,GAAc;;AACrE,UAAOF,IAAAH,EAAEC,CAAE,MAAJ,gBAAAE,EAAO,WAAWE;AAC1B;AAEA,IAAIC,GACAC,GACAC,GACAC;AAEJC,EAAMC,EAAMb,EAAK,MAAM,UAAU,GAAG,MAAM;;AAEzB,EAAAQ,IAAAM,EAAU,WAAW,YAAY,GACjDL,MAAYJ,IAAAG,EAAc,MAAM,IAAI,MAAxB,gBAAAH,EAA4B,OAAM,KAC9CK,IAAmBF,EAAc,QAAQ,QAAQ,EAAE,EAAE,QACrDG,IAAoB,CAAA;AAEpB,WAASI,IAAI,GAAGA,IAAIP,EAAc,QAAQO;AACrC,IAAAP,EAAcO,CAAC,MAAMN,KACxBE,EAAkB,KAAKI,CAAC;AAG3B,GAAG,EAAE,WAAW,GAAA,CAAM;AAKf,SAASC,EAAQC,GAAQ;AAC3B,MAAAC,IAAeD,EAAE,OAAO,cACxBE,IAAQF,EAAE,OAAO,OAIjBG,IAAiBD,EAAM,UAAU,GAAGD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GACpEG,IAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GAElEI,IAAoBF,EAAe,SAASC,EAAgB,SAASX;AACzE,MAAIY,IAAoB,GAAG;AAET,IAAAF,IAAAA,EAAe,UAAU,GAAGV,CAAgB;AAEvD,UAAAa,IAA2Bb,IAAmBU,EAAe;AACnE,IAAAC,IAAkBA,EAAgB,UAAUA,EAAgB,SAASE,CAAwB;AAAA,EAAA;AAC9F,IAAWD,IAAoB,MAE1BL,EAAE,cAAc,yBAEDG,KAAA,IAAI,OAAO,CAACE,CAAiB,IAE/CD,IAAkB,IAAI,OAAO,CAACC,CAAiB,IAAID;AAIrD,EAAAH,IAAeE,EAAe,QAC9BD,IAAQC,IAAiBC;AAGzB,WAASN,IAAI,GAAGA,IAAIJ,EAAkB,QAAQI,KAAK;AAC5C,UAAAS,IAAiBb,EAAkBI,CAAC;AAElC,IAAAI,IAAAA,EAAM,UAAU,GAAGK,CAAc,IAAIf,IAAYU,EAAM,UAAUK,CAAc,GAGnFN,KAAgBM,KACnBN;AAAA,EAEF;AAGA,EAAID,EAAE,cAAc,2BAA2BE,EAAMD,IAAe,CAAC,MAAMT,KAC1ES,KAIGC,MAAUF,EAAE,OAAO,UACtBA,EAAE,OAAO,QAAQE,GACjBF,EAAE,OAAO,iBAAiBC,GAC1BD,EAAE,OAAO,eAAeC;AAE1B;"}