@topvisor/ui 0.9.35-3 → 0.9.35

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 (62) hide show
  1. package/.chunks/{datepicker-D1RJVUmI.amd.js → datepicker-BG0u8UXv.amd.js} +3 -3
  2. package/.chunks/datepicker-BG0u8UXv.amd.js.map +1 -0
  3. package/.chunks/{datepicker-DKaHSwKg.es.js → datepicker-Dmeojg66.es.js} +24 -23
  4. package/.chunks/{datepicker-DKaHSwKg.es.js.map → datepicker-Dmeojg66.es.js.map} +1 -1
  5. package/.chunks/{forms-BUjy1eoH.es.js → forms-CPEVHoks.es.js} +388 -463
  6. package/.chunks/forms-CPEVHoks.es.js.map +1 -0
  7. package/.chunks/forms-oowSA2rF.amd.js +3 -0
  8. package/.chunks/forms-oowSA2rF.amd.js.map +1 -0
  9. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-Cm2JuYsV.amd.js → listItem.vue_vue_type_script_setup_true_lang-CkZHzNZU.amd.js} +2 -2
  10. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-Cm2JuYsV.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-CkZHzNZU.amd.js.map} +1 -1
  11. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-BPuQu2Hx.es.js → listItem.vue_vue_type_script_setup_true_lang-Dlm9Et7q.es.js} +20 -20
  12. package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-BPuQu2Hx.es.js.map → listItem.vue_vue_type_script_setup_true_lang-Dlm9Et7q.es.js.map} +1 -1
  13. package/.chunks/{menu-BGWVC7jB.es.js → menu-CiQMMrnp.es.js} +34 -34
  14. package/.chunks/{menu-BGWVC7jB.es.js.map → menu-CiQMMrnp.es.js.map} +1 -1
  15. package/.chunks/{menu--HRyUhPR.amd.js → menu-SmyeSNWQ.amd.js} +2 -2
  16. package/.chunks/{menu--HRyUhPR.amd.js.map → menu-SmyeSNWQ.amd.js.map} +1 -1
  17. package/.chunks/{popup-B73zkYFU.es.js → popup-Bv_sxmoj.es.js} +21 -20
  18. package/.chunks/popup-Bv_sxmoj.es.js.map +1 -0
  19. package/.chunks/popup-ClvUyl7S.amd.js +441 -0
  20. package/.chunks/popup-ClvUyl7S.amd.js.map +1 -0
  21. package/core/app.amd.js +1 -1
  22. package/core/app.amd.js.map +1 -1
  23. package/core/app.js +2 -2
  24. package/core/app.js.map +1 -1
  25. package/core/core/core.d.ts +0 -40
  26. package/core/core.amd.js +1 -1
  27. package/core/core.js +1 -1
  28. package/core/utils/css.d.ts +43 -0
  29. package/forms/forms.amd.js +1 -1
  30. package/forms/forms.js +1 -1
  31. package/formsExt/formsExt.amd.js +1 -1
  32. package/formsExt/formsExt.js +58 -58
  33. package/package.json +1 -1
  34. package/popup/popup.amd.js +1 -1
  35. package/popup/popup.js +17 -17
  36. package/popup/worker.amd.js +1 -1
  37. package/popup/worker.js +2 -2
  38. package/project/project.amd.js +1 -1
  39. package/project/project.js +19 -19
  40. package/require/css.amd.js +4 -4
  41. package/tabs/tabs.amd.js +1 -1
  42. package/tabs/tabs.js +13 -13
  43. package/tabsView/tabsView.amd.js +1 -1
  44. package/tabsView/tabsView.js +44 -44
  45. package/utils/css.amd.js +2 -0
  46. package/utils/css.amd.js.map +1 -0
  47. package/utils/css.d.ts +1 -0
  48. package/utils/css.js +45 -0
  49. package/utils/css.js.map +1 -0
  50. package/utils/date.amd.js +1 -1
  51. package/utils/date.js +1 -1
  52. package/utils/device.amd.js +1 -1
  53. package/utils/device.js +1 -1
  54. package/utils/price.amd.js +1 -1
  55. package/utils/price.js +1 -1
  56. package/.chunks/datepicker-D1RJVUmI.amd.js.map +0 -1
  57. package/.chunks/forms-BUjy1eoH.es.js.map +0 -1
  58. package/.chunks/forms-CWbjHcxY.amd.js +0 -3
  59. package/.chunks/forms-CWbjHcxY.amd.js.map +0 -1
  60. package/.chunks/popup-B73zkYFU.es.js.map +0 -1
  61. package/.chunks/popup-BBaZf1uk.amd.js +0 -441
  62. package/.chunks/popup-BBaZf1uk.amd.js.map +0 -1
package/tabs/tabs.js CHANGED
@@ -1,8 +1,8 @@
1
- import c from "../core/core.js";
1
+ import { insertToPage as c } from "../utils/css.js";
2
2
  import { defineComponent as p, openBlock as o, createElementBlock as a, renderSlot as s, createCommentVNode as _, createElementVNode as n, normalizeClass as b, Fragment as i } from "vue";
3
- import { _ as l } from "../.chunks/forms-BUjy1eoH.es.js";
3
+ import { _ as l } from "../.chunks/forms-CPEVHoks.es.js";
4
4
  const r = ["../assets/tabs.css"].map((e) => import.meta.resolve(e));
5
- c.insertCSSLinkToPage(r, !0);
5
+ c(r, !0);
6
6
  const u = {
7
7
  class: /* @__PURE__ */ b({
8
8
  "top-tabs": !0
@@ -66,13 +66,13 @@ const u = {
66
66
  ], 10, I)
67
67
  ], 64));
68
68
  }
69
- }), k = {
69
+ }), M = {
70
70
  "top-tabs_tabLabel": "top-tabs_tabLabel",
71
71
  "top-tabs_tabInput": "top-tabs_tabInput",
72
72
  "top-disabled": "top-disabled"
73
- }, M = {
74
- $style: k
75
- }, S = /* @__PURE__ */ l(C, [["__cssModules", M]]), B = ["data-tabs-name"], L = /* @__PURE__ */ p({
73
+ }, k = {
74
+ $style: M
75
+ }, B = /* @__PURE__ */ l(C, [["__cssModules", k]]), g = ["data-tabs-name"], L = /* @__PURE__ */ p({
76
76
  __name: "content",
77
77
  props: {
78
78
  name: {}
@@ -85,16 +85,16 @@ const u = {
85
85
  "data-tabs-name": t.name
86
86
  }, [
87
87
  s(t.$slots, "default")
88
- ], 8, B));
88
+ ], 8, g));
89
89
  }
90
90
  }), N = {
91
91
  "top-tabs_content": "top-tabs_content"
92
- }, g = {
92
+ }, S = {
93
93
  $style: N
94
- }, E = /* @__PURE__ */ l(L, [["__cssModules", g]]), P = v, j = S, q = E;
94
+ }, E = /* @__PURE__ */ l(L, [["__cssModules", S]]), F = v, U = B, j = E;
95
95
  export {
96
- P as TopTabs,
97
- q as TopTabsContent,
98
- j as TopTabsTab
96
+ F as TopTabs,
97
+ j as TopTabsContent,
98
+ U as TopTabsTab
99
99
  };
100
100
  //# sourceMappingURL=tabs.js.map
@@ -1,2 +1,2 @@
1
- define(["require","exports","vue","../utils/route.amd","../.chunks/forms-CWbjHcxY.amd","../.chunks/store-esTid5oI.amd","../popup/popup.amd","../utils/system.amd","../require/css.amd!../assets/tabsView.css"],function(ne,_,e,b,p,v,w,I){"use strict";if(typeof e>"u")var e=window.Vue;const h=(o,n)=>`top:${String(o)}:${n}`,y={loadLocalStorge:(o,n)=>{if(!n.$id)return;const t=h(o,n.$id);try{const a=JSON.parse(localStorage.getItem(t));typeof a==typeof n[o]&&(n[o]=a)}catch{console.warn(new Error(`В localStorage[${t}] не корректный json`))}},addSaverLocalStorge:(o,n)=>{if(!n.$id)return;const t=h(o,n.$id);e.watch(()=>n[o],()=>{localStorage.setItem(t,JSON.stringify(n[o]))},{immediate:!0})}},g=Symbol(),B=(o,n)=>{const t=v.defineStore(g,()=>{const a=e.computed(()=>o.showMenuInPopup??p.Core.state.isMobile),l=e.computed(()=>o.pageMod),u=e.ref(!1),s=e.ref(void 0),r=e.ref(!0);return{showMenuInPopup:a,pageMod:l,isShort:u,activeItemName:n,component:s,scrollable:r}},o.idState);if(o.isShortable){const a="isShort";y.loadLocalStorge(a,t),y.addSaverLocalStorge(a,t)}return t},V=()=>v.useStore(g),T={key:1,class:"top-ellipsis"},L=e.defineComponent({__name:"menuItem",props:{name:{},href:{},icon:{},disabled:{type:Boolean},component:{default:void 0},scrollable:{type:Boolean,default:!0}},setup(o){const n=o,t=V(),a=e.computed(()=>n.name&&t.$id?b.genHash(t.$id,n.name):n.href),l=e.computed(()=>t.showMenuInPopup?w.TopPopupListItem:a?"a":"button"),u=s=>{!n.href&&a.value&&s.preventDefault(),n.name&&(t.activeItemName=n.name)};return(s,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{target:"_self",class:e.normalizeClass({"top-tabsView_menuItem":!e.unref(t).showMenuInPopup,"top-active":s.name&&e.unref(t).activeItemName===s.name,"top-disabled":s.disabled,"top-spa-disabled":!0}),href:a.value,"data-top-icon":s.icon||void 0,disabled:s.disabled||void 0,onClick:u},{default:e.withCtx(()=>[e.unref(t).showMenuInPopup?e.renderSlot(s.$slots,"default",{key:0}):s.$slots.default&&!e.unref(t).isShort?(e.openBlock(),e.createElementBlock("span",T,[e.renderSlot(s.$slots,"default")])):e.createCommentVNode("",!0)]),_:3},8,["class","href","data-top-icon","disabled"]))}}),N={$style:{"top-tabsView_menuItem":"top-tabsView_menuItem","top-active":"top-active","top-forms-option":"top-forms-option","top-formsCaption":"top-formsCaption","top-disabled":"top-disabled"}},m=p._export_sfc(L,[["__cssModules",N]]),S=o=>(o==null?void 0:o.name)==="AsyncComponentWrapper"&&!(o!=null&&o.__asyncResolved),P=async(o,n)=>{(o==null?void 0:o.name)==="AsyncComponentWrapper"&&(o!=null&&o.__asyncResolved||(o.__asyncLoader(),await I.sleepWhile(()=>n()&&S(o),200)))},C={class:"top-tabsView_menuOpener"},E=["data-top-icon"],O={class:"top-ellipsis"},D=e.createElementVNode("div",{class:"top-tabsView_menuOpenerIcon","data-top-icon":""},null,-1),z={class:"top-tabsView_menuList"},R={key:0,class:"top-tabsView_menuFooter"},A=e.defineComponent({__name:"menu",props:e.mergeModels({isShortable:{type:Boolean},isLoading:{type:Boolean}},{isLoading:{},isLoadingModifiers:{}}),emits:["update:isLoading"],setup(o){const n=e.useModel(o,"isLoading"),t=V(),a=e.useSlots(),l=new Map,u=()=>{if(!a.default)return;const c=a.default().find(i=>i.key==="_menu");c&&c.children.forEach(i=>{var k,$;if(i.type.__name!==m.__name||!i.props.name||i.props.disabled)return;const M={title:(($=(k=i.children).default)==null?void 0:$.call(k)[0].children).trim(),icon:i.props.icon,component:i.props.component?e.markRaw(i.props.component):m.props.component.default,scrollable:i.props.scrollable??m.props.scrollable.default};l.set(i.props.name,M)})},s=e.ref(null);let r=0;e.watch(()=>t.activeItemName,async()=>{const c=++r;if(l.size===0&&u(),l.size===0){t.activeItemName="";return}if(s.value=l.get(t.activeItemName)??null,!s.value&&t.$id){const i=b.getHash(t.$id);if(s.value=l.get(i)??null,s.value){t.activeItemName=i;return}}if(!s.value){t.activeItemName=l.keys().next().value;return}if(s.value.component===t.component){n.value=!1;return}t.$id&&b.setHash(t.$id,t.activeItemName,!0),n.value=!0,await P(s.value.component,()=>c===r),c===r&&(t.scrollable=s.value.scrollable,t.component=s.value.component,s.value&&!t.component&&console.warn(`Компонент вкладки ${t.activeItemName} не найден. Добавьте props.component для пункта меню ${t.activeItemName}.`))},{immediate:!0});const d=e.ref();let f;return e.onMounted(()=>{f=new ResizeObserver(()=>{d.value.parentElement.style.setProperty("--top-tabsView-contents-offset-top",d.value.offsetHeight+"px")}),f.observe(d.value)}),e.onUnmounted(()=>{f.disconnect()}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:d,class:e.normalizeClass({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!e.unref(t).showMenuInPopup,"top-tabsView_menu-inPopup_1":e.unref(t).showMenuInPopup,"top-tabsView_menu-short":e.unref(t).isShort&&!e.unref(t).showMenuInPopup})},[e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(w.TopPopup),{key:0},{opener:e.withCtx(()=>[e.createElementVNode("div",C,[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-tabsView_menuOpenerActiveItem","data-top-icon":s.value.icon},[e.createElementVNode("span",O,e.toDisplayString(s.value.title),1)],8,E)):e.createCommentVNode("",!0),D])]),contentList:e.withCtx(()=>[e.renderSlot(c.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",z,[e.renderSlot(c.$slots,"default")]),c.isShortable?(e.openBlock(),e.createElementBlock("div",R,[c.isShortable?(e.openBlock(),e.createBlock(m,{key:0,icon:e.unref(t).isShort?"":"",onClick:i[0]||(i[0]=M=>e.unref(t).isShort=!e.unref(t).isShort)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t).isShort?"":"Свернуть"),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64))],2))}}),H={$style:{"top-tabsView-pageMod":"top-tabsView-pageMod","top-tabsView_menu":"top-tabsView_menu","top-tabsView_menu-inPopup_0":"top-tabsView_menu-inPopup_0","top-tabsView_menu-inPopup_1":"top-tabsView_menu-inPopup_1","top-tabsView_menu-short":"top-tabsView_menu-short","top-tabsView_menuOpener":"top-tabsView_menuOpener","top-tabsView_menuOpenerIcon":"top-tabsView_menuOpenerIcon","top-tabsView_menuOpenerActiveItem":"top-tabsView_menuOpenerActiveItem","top-tabsView_menuList":"top-tabsView_menuList","top-tabsView_menuFooter":"top-tabsView_menuFooter","top-tabsView_menuItem":"top-tabsView_menuItem"}},K=p._export_sfc(A,[["__cssModules",H]]),F=e.defineComponent({__name:"tabsView",props:e.mergeModels({modelValue:{},pageMod:{type:Boolean},showMenuInPopup:{type:Boolean,default:void 0},isShortable:{type:Boolean,default:!1},idState:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const n=o,t=e.useModel(o,"modelValue"),a=B(n,t),l=r=>{document.documentElement.classList.toggle("top-hasTabsViewPageMod",r)};n.pageMod&&l(!0),e.onUnmounted(()=>{n.pageMod&&l(!1),a.$id&&b.delHash(a.$id,a.activeItemName,!0)});const u=e.ref(),s=e.ref(!1);return e.watch([u,()=>a.component],()=>{s.value=S(a.component)},{immediate:!0}),(r,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView":!0,"top-tabsView-pageMod":n.pageMod,"top-tabsView-inPopup":e.unref(a).showMenuInPopup})},[e.createVNode(K,{isShortable:r.isShortable,isLoading:s.value,"onUpdate:isLoading":d[0]||(d[0]=f=>s.value=f)},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"menu")]),_:3},8,["isShortable","isLoading"]),e.createElementVNode("div",{class:e.normalizeClass({"top-tabsView_contents":!0,"top-tabsView_contents-isLoading":s.value,"top-tabsView_contents-noScrollable":!e.unref(a).scrollable})},[s.value?(e.openBlock(),e.createBlock(p.TopLoadbar$1,{key:0})):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.KeepAlive,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(a).component),{ref_key:"componentRef",ref:u},null,512))],1024))],2)],2))}}),j={$style:{"top-tabsView":"top-tabsView","top-tabsView_contents":"top-tabsView_contents","top-tabsView_contents-isLoading":"top-tabsView_contents-isLoading","top-tabsView_contents-noScrollable":"top-tabsView_contents-noScrollable","top-tabsView-inPopup":"top-tabsView-inPopup"}},q=p._export_sfc(F,[["__cssModules",j]]),U={"top-tabsView_menuDelimeter":"top-tabsView_menuDelimeter"},W={},J={class:"top-tabsView_menuDelimeter"};function x(o,n){return e.openBlock(),e.createElementBlock("div",J)}const G={$style:U},Q=p._export_sfc(W,[["render",x],["__cssModules",G]]),X=e.defineComponent({__name:"menuTitle",props:{isSubtitle:{type:Boolean}},setup(o){const n=V();return(t,a)=>e.unref(n).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(w.TopPopupListItem),{key:0,type:"title"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3})):e.unref(n).isShort?(e.openBlock(),e.createBlock(Q,{key:1})):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":t.isSubtitle})},[e.renderSlot(t.$slots,"default")],2))}}),Y={$style:{"top-tabsView_menuTitle":"top-tabsView_menuTitle","top-tabsView_menuTitle-subtitle":"top-tabsView_menuTitle-subtitle"}},Z=p._export_sfc(X,[["__cssModules",Y]]),ee=q,te=m,oe=Z;_.TopTabsView=ee,_.TopTabsViewMenuItem=te,_.TopTabsViewMenuTitle=oe,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","vue","../utils/route.amd","../.chunks/forms-oowSA2rF.amd","../.chunks/store-esTid5oI.amd","../popup/popup.amd","../utils/system.amd","../require/css.amd!../assets/tabsView.css"],function(ne,_,e,b,p,v,w,I){"use strict";if(typeof e>"u")var e=window.Vue;const h=(o,n)=>`top:${String(o)}:${n}`,y={loadLocalStorge:(o,n)=>{if(!n.$id)return;const t=h(o,n.$id);try{const a=JSON.parse(localStorage.getItem(t));typeof a==typeof n[o]&&(n[o]=a)}catch{console.warn(new Error(`В localStorage[${t}] не корректный json`))}},addSaverLocalStorge:(o,n)=>{if(!n.$id)return;const t=h(o,n.$id);e.watch(()=>n[o],()=>{localStorage.setItem(t,JSON.stringify(n[o]))},{immediate:!0})}},g=Symbol(),B=(o,n)=>{const t=v.defineStore(g,()=>{const a=e.computed(()=>o.showMenuInPopup??p.Core.state.isMobile),l=e.computed(()=>o.pageMod),u=e.ref(!1),s=e.ref(void 0),r=e.ref(!0);return{showMenuInPopup:a,pageMod:l,isShort:u,activeItemName:n,component:s,scrollable:r}},o.idState);if(o.isShortable){const a="isShort";y.loadLocalStorge(a,t),y.addSaverLocalStorge(a,t)}return t},V=()=>v.useStore(g),T={key:1,class:"top-ellipsis"},L=e.defineComponent({__name:"menuItem",props:{name:{},href:{},icon:{},disabled:{type:Boolean},component:{default:void 0},scrollable:{type:Boolean,default:!0}},setup(o){const n=o,t=V(),a=e.computed(()=>n.name&&t.$id?b.genHash(t.$id,n.name):n.href),l=e.computed(()=>t.showMenuInPopup?w.TopPopupListItem:a?"a":"button"),u=s=>{!n.href&&a.value&&s.preventDefault(),n.name&&(t.activeItemName=n.name)};return(s,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{target:"_self",class:e.normalizeClass({"top-tabsView_menuItem":!e.unref(t).showMenuInPopup,"top-active":s.name&&e.unref(t).activeItemName===s.name,"top-disabled":s.disabled,"top-spa-disabled":!0}),href:a.value,"data-top-icon":s.icon||void 0,disabled:s.disabled||void 0,onClick:u},{default:e.withCtx(()=>[e.unref(t).showMenuInPopup?e.renderSlot(s.$slots,"default",{key:0}):s.$slots.default&&!e.unref(t).isShort?(e.openBlock(),e.createElementBlock("span",T,[e.renderSlot(s.$slots,"default")])):e.createCommentVNode("",!0)]),_:3},8,["class","href","data-top-icon","disabled"]))}}),N={$style:{"top-tabsView_menuItem":"top-tabsView_menuItem","top-active":"top-active","top-forms-option":"top-forms-option","top-formsCaption":"top-formsCaption","top-disabled":"top-disabled"}},m=p._export_sfc(L,[["__cssModules",N]]),S=o=>(o==null?void 0:o.name)==="AsyncComponentWrapper"&&!(o!=null&&o.__asyncResolved),P=async(o,n)=>{(o==null?void 0:o.name)==="AsyncComponentWrapper"&&(o!=null&&o.__asyncResolved||(o.__asyncLoader(),await I.sleepWhile(()=>n()&&S(o),200)))},C={class:"top-tabsView_menuOpener"},E=["data-top-icon"],O={class:"top-ellipsis"},D=e.createElementVNode("div",{class:"top-tabsView_menuOpenerIcon","data-top-icon":""},null,-1),z={class:"top-tabsView_menuList"},R={key:0,class:"top-tabsView_menuFooter"},A=e.defineComponent({__name:"menu",props:e.mergeModels({isShortable:{type:Boolean},isLoading:{type:Boolean}},{isLoading:{},isLoadingModifiers:{}}),emits:["update:isLoading"],setup(o){const n=e.useModel(o,"isLoading"),t=V(),a=e.useSlots(),l=new Map,u=()=>{if(!a.default)return;const c=a.default().find(i=>i.key==="_menu");c&&c.children.forEach(i=>{var k,$;if(i.type.__name!==m.__name||!i.props.name||i.props.disabled)return;const M={title:(($=(k=i.children).default)==null?void 0:$.call(k)[0].children).trim(),icon:i.props.icon,component:i.props.component?e.markRaw(i.props.component):m.props.component.default,scrollable:i.props.scrollable??m.props.scrollable.default};l.set(i.props.name,M)})},s=e.ref(null);let r=0;e.watch(()=>t.activeItemName,async()=>{const c=++r;if(l.size===0&&u(),l.size===0){t.activeItemName="";return}if(s.value=l.get(t.activeItemName)??null,!s.value&&t.$id){const i=b.getHash(t.$id);if(s.value=l.get(i)??null,s.value){t.activeItemName=i;return}}if(!s.value){t.activeItemName=l.keys().next().value;return}if(s.value.component===t.component){n.value=!1;return}t.$id&&b.setHash(t.$id,t.activeItemName,!0),n.value=!0,await P(s.value.component,()=>c===r),c===r&&(t.scrollable=s.value.scrollable,t.component=s.value.component,s.value&&!t.component&&console.warn(`Компонент вкладки ${t.activeItemName} не найден. Добавьте props.component для пункта меню ${t.activeItemName}.`))},{immediate:!0});const d=e.ref();let f;return e.onMounted(()=>{f=new ResizeObserver(()=>{d.value.parentElement.style.setProperty("--top-tabsView-contents-offset-top",d.value.offsetHeight+"px")}),f.observe(d.value)}),e.onUnmounted(()=>{f.disconnect()}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"elRef",ref:d,class:e.normalizeClass({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!e.unref(t).showMenuInPopup,"top-tabsView_menu-inPopup_1":e.unref(t).showMenuInPopup,"top-tabsView_menu-short":e.unref(t).isShort&&!e.unref(t).showMenuInPopup})},[e.unref(t).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(w.TopPopup),{key:0},{opener:e.withCtx(()=>[e.createElementVNode("div",C,[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-tabsView_menuOpenerActiveItem","data-top-icon":s.value.icon},[e.createElementVNode("span",O,e.toDisplayString(s.value.title),1)],8,E)):e.createCommentVNode("",!0),D])]),contentList:e.withCtx(()=>[e.renderSlot(c.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",z,[e.renderSlot(c.$slots,"default")]),c.isShortable?(e.openBlock(),e.createElementBlock("div",R,[c.isShortable?(e.openBlock(),e.createBlock(m,{key:0,icon:e.unref(t).isShort?"":"",onClick:i[0]||(i[0]=M=>e.unref(t).isShort=!e.unref(t).isShort)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(t).isShort?"":"Свернуть"),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64))],2))}}),H={$style:{"top-tabsView-pageMod":"top-tabsView-pageMod","top-tabsView_menu":"top-tabsView_menu","top-tabsView_menu-inPopup_0":"top-tabsView_menu-inPopup_0","top-tabsView_menu-inPopup_1":"top-tabsView_menu-inPopup_1","top-tabsView_menu-short":"top-tabsView_menu-short","top-tabsView_menuOpener":"top-tabsView_menuOpener","top-tabsView_menuOpenerIcon":"top-tabsView_menuOpenerIcon","top-tabsView_menuOpenerActiveItem":"top-tabsView_menuOpenerActiveItem","top-tabsView_menuList":"top-tabsView_menuList","top-tabsView_menuFooter":"top-tabsView_menuFooter","top-tabsView_menuItem":"top-tabsView_menuItem"}},K=p._export_sfc(A,[["__cssModules",H]]),F=e.defineComponent({__name:"tabsView",props:e.mergeModels({modelValue:{},pageMod:{type:Boolean},showMenuInPopup:{type:Boolean,default:void 0},isShortable:{type:Boolean,default:!1},idState:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const n=o,t=e.useModel(o,"modelValue"),a=B(n,t),l=r=>{document.documentElement.classList.toggle("top-hasTabsViewPageMod",r)};n.pageMod&&l(!0),e.onUnmounted(()=>{n.pageMod&&l(!1),a.$id&&b.delHash(a.$id,a.activeItemName,!0)});const u=e.ref(),s=e.ref(!1);return e.watch([u,()=>a.component],()=>{s.value=S(a.component)},{immediate:!0}),(r,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({"top-tabsView":!0,"top-tabsView-pageMod":n.pageMod,"top-tabsView-inPopup":e.unref(a).showMenuInPopup})},[e.createVNode(K,{isShortable:r.isShortable,isLoading:s.value,"onUpdate:isLoading":d[0]||(d[0]=f=>s.value=f)},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"menu")]),_:3},8,["isShortable","isLoading"]),e.createElementVNode("div",{class:e.normalizeClass({"top-tabsView_contents":!0,"top-tabsView_contents-isLoading":s.value,"top-tabsView_contents-noScrollable":!e.unref(a).scrollable})},[s.value?(e.openBlock(),e.createBlock(p.TopLoadbar$1,{key:0})):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.KeepAlive,null,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(a).component),{ref_key:"componentRef",ref:u},null,512))],1024))],2)],2))}}),j={$style:{"top-tabsView":"top-tabsView","top-tabsView_contents":"top-tabsView_contents","top-tabsView_contents-isLoading":"top-tabsView_contents-isLoading","top-tabsView_contents-noScrollable":"top-tabsView_contents-noScrollable","top-tabsView-inPopup":"top-tabsView-inPopup"}},q=p._export_sfc(F,[["__cssModules",j]]),U={"top-tabsView_menuDelimeter":"top-tabsView_menuDelimeter"},W={},J={class:"top-tabsView_menuDelimeter"};function x(o,n){return e.openBlock(),e.createElementBlock("div",J)}const G={$style:U},Q=p._export_sfc(W,[["render",x],["__cssModules",G]]),X=e.defineComponent({__name:"menuTitle",props:{isSubtitle:{type:Boolean}},setup(o){const n=V();return(t,a)=>e.unref(n).showMenuInPopup?(e.openBlock(),e.createBlock(e.unref(w.TopPopupListItem),{key:0,type:"title"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3})):e.unref(n).isShort?(e.openBlock(),e.createBlock(Q,{key:1})):(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":t.isSubtitle})},[e.renderSlot(t.$slots,"default")],2))}}),Y={$style:{"top-tabsView_menuTitle":"top-tabsView_menuTitle","top-tabsView_menuTitle-subtitle":"top-tabsView_menuTitle-subtitle"}},Z=p._export_sfc(X,[["__cssModules",Y]]),ee=q,te=m,oe=Z;_.TopTabsView=ee,_.TopTabsViewMenuItem=te,_.TopTabsViewMenuTitle=oe,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=tabsView.amd.js.map
@@ -1,12 +1,12 @@
1
- import K from "../core/core.js";
2
- import { watch as $, computed as M, ref as b, defineComponent as I, openBlock as l, createBlock as d, resolveDynamicComponent as O, normalizeClass as y, unref as n, withCtx as w, renderSlot as f, createElementBlock as m, createCommentVNode as h, mergeModels as C, useModel as R, useSlots as W, onMounted as j, onUnmounted as D, createElementVNode as g, toDisplayString as N, Fragment as J, createTextVNode as U, markRaw as q, createVNode as G, KeepAlive as Q } from "vue";
1
+ import { insertToPage as K } from "../utils/css.js";
2
+ import { watch as $, computed as M, ref as b, defineComponent as I, openBlock as l, createBlock as d, resolveDynamicComponent as O, normalizeClass as y, unref as n, withCtx as w, renderSlot as f, createElementBlock as m, createCommentVNode as h, mergeModels as C, useModel as R, useSlots as U, onMounted as W, onUnmounted as D, createElementVNode as g, toDisplayString as N, Fragment as j, createTextVNode as J, markRaw as q, createVNode as G, KeepAlive as Q } from "vue";
3
3
  import { genHash as X, getHash as Y, setHash as Z, delHash as x } from "../utils/route.js";
4
- import { C as ee, _ as S, r as te } from "../.chunks/forms-BUjy1eoH.es.js";
4
+ import { C as ee, _ as S, r as te } from "../.chunks/forms-CPEVHoks.es.js";
5
5
  import { d as oe, u as se } from "../.chunks/store-CX_6ZXhO.es.js";
6
6
  import { TopPopupListItem as A, TopPopup as ae } from "../popup/popup.js";
7
7
  import { sleepWhile as ne } from "../utils/system.js";
8
8
  const F = ["../assets/tabsView.css"].map((t) => import.meta.resolve(t));
9
- K.insertCSSLinkToPage(F, !0);
9
+ K(F, !0);
10
10
  const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
11
11
  if (!o.$id) return;
12
12
  const e = E(t, o.$id);
@@ -27,14 +27,14 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
27
27
  addSaverLocalStorge: le
28
28
  }, z = Symbol(), re = (t, o) => {
29
29
  const e = oe(z, () => {
30
- const a = M(() => t.showMenuInPopup ?? ee.state.isMobile), r = M(() => t.pageMod), c = b(!1), s = b(void 0), u = b(!0);
30
+ const a = M(() => t.showMenuInPopup ?? ee.state.isMobile), r = M(() => t.pageMod), c = b(!1), s = b(void 0), p = b(!0);
31
31
  return {
32
32
  showMenuInPopup: a,
33
33
  pageMod: r,
34
34
  isShort: c,
35
35
  activeItemName: o,
36
36
  component: s,
37
- scrollable: u
37
+ scrollable: p
38
38
  };
39
39
  }, t.idState);
40
40
  if (t.isShortable) {
@@ -42,10 +42,10 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
42
42
  B.loadLocalStorge(a, e), B.addSaverLocalStorge(a, e);
43
43
  }
44
44
  return e;
45
- }, L = () => se(z), ue = {
45
+ }, T = () => se(z), pe = {
46
46
  key: 1,
47
47
  class: "top-ellipsis"
48
- }, pe = /* @__PURE__ */ I({
48
+ }, ue = /* @__PURE__ */ I({
49
49
  __name: "menuItem",
50
50
  props: {
51
51
  name: {},
@@ -56,10 +56,10 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
56
56
  scrollable: { type: Boolean, default: !0 }
57
57
  },
58
58
  setup(t) {
59
- const o = t, e = L(), a = M(() => o.name && e.$id ? X(e.$id, o.name) : o.href), r = M(() => e.showMenuInPopup ? A : a ? "a" : "button"), c = (s) => {
59
+ const o = t, e = T(), a = M(() => o.name && e.$id ? X(e.$id, o.name) : o.href), r = M(() => e.showMenuInPopup ? A : a ? "a" : "button"), c = (s) => {
60
60
  !o.href && a.value && s.preventDefault(), o.name && (e.activeItemName = o.name);
61
61
  };
62
- return (s, u) => (l(), d(O(r.value), {
62
+ return (s, p) => (l(), d(O(r.value), {
63
63
  target: "_self",
64
64
  class: y({
65
65
  "top-tabsView_menuItem": !n(e).showMenuInPopup,
@@ -73,7 +73,7 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
73
73
  onClick: c
74
74
  }, {
75
75
  default: w(() => [
76
- n(e).showMenuInPopup ? f(s.$slots, "default", { key: 0 }) : s.$slots.default && !n(e).isShort ? (l(), m("span", ue, [
76
+ n(e).showMenuInPopup ? f(s.$slots, "default", { key: 0 }) : s.$slots.default && !n(e).isShort ? (l(), m("span", pe, [
77
77
  f(s.$slots, "default")
78
78
  ])) : h("", !0)
79
79
  ]),
@@ -88,7 +88,7 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
88
88
  "top-disabled": "top-disabled"
89
89
  }, me = {
90
90
  $style: ce
91
- }, v = /* @__PURE__ */ S(pe, [["__cssModules", me]]), H = (t) => (t == null ? void 0 : t.name) === "AsyncComponentWrapper" && !(t != null && t.__asyncResolved), de = async (t, o) => {
91
+ }, v = /* @__PURE__ */ S(ue, [["__cssModules", me]]), H = (t) => (t == null ? void 0 : t.name) === "AsyncComponentWrapper" && !(t != null && t.__asyncResolved), de = async (t, o) => {
92
92
  (t == null ? void 0 : t.name) === "AsyncComponentWrapper" && (t != null && t.__asyncResolved || (t.__asyncLoader(), await ne(() => o() && H(t), 200)));
93
93
  }, _e = { class: "top-tabsView_menuOpener" }, be = ["data-top-icon"], fe = { class: "top-ellipsis" }, we = /* @__PURE__ */ g("div", {
94
94
  class: "top-tabsView_menuOpenerIcon",
@@ -107,26 +107,26 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
107
107
  }),
108
108
  emits: ["update:isLoading"],
109
109
  setup(t) {
110
- const o = R(t, "isLoading"), e = L(), a = W(), r = /* @__PURE__ */ new Map(), c = () => {
110
+ const o = R(t, "isLoading"), e = T(), a = U(), r = /* @__PURE__ */ new Map(), c = () => {
111
111
  if (!a.default) return;
112
- const p = a.default().find((i) => i.key === "_menu");
113
- p && p.children.forEach((i) => {
114
- var P, k;
112
+ const u = a.default().find((i) => i.key === "_menu");
113
+ u && u.children.forEach((i) => {
114
+ var L, k;
115
115
  if (i.type.__name !== v.__name || !i.props.name || i.props.disabled) return;
116
- const T = {
117
- title: ((k = (P = i.children).default) == null ? void 0 : k.call(P)[0].children).trim(),
116
+ const P = {
117
+ title: ((k = (L = i.children).default) == null ? void 0 : k.call(L)[0].children).trim(),
118
118
  icon: i.props.icon,
119
119
  component: i.props.component ? q(i.props.component) : v.props.component.default,
120
120
  scrollable: i.props.scrollable ?? v.props.scrollable.default
121
121
  };
122
- r.set(i.props.name, T);
122
+ r.set(i.props.name, P);
123
123
  });
124
124
  }, s = b(null);
125
- let u = 0;
125
+ let p = 0;
126
126
  $(
127
127
  () => e.activeItemName,
128
128
  async () => {
129
- const p = ++u;
129
+ const u = ++p;
130
130
  if (r.size === 0 && c(), r.size === 0) {
131
131
  e.activeItemName = "";
132
132
  return;
@@ -146,19 +146,19 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
146
146
  o.value = !1;
147
147
  return;
148
148
  }
149
- e.$id && Z(e.$id, e.activeItemName, !0), o.value = !0, await de(s.value.component, () => p === u), p === u && (e.scrollable = s.value.scrollable, e.component = s.value.component, s.value && !e.component && console.warn(`Компонент вкладки ${e.activeItemName} не найден. Добавьте props.component для пункта меню ${e.activeItemName}.`));
149
+ e.$id && Z(e.$id, e.activeItemName, !0), o.value = !0, await de(s.value.component, () => u === p), u === p && (e.scrollable = s.value.scrollable, e.component = s.value.component, s.value && !e.component && console.warn(`Компонент вкладки ${e.activeItemName} не найден. Добавьте props.component для пункта меню ${e.activeItemName}.`));
150
150
  },
151
151
  { immediate: !0 }
152
152
  );
153
153
  const _ = b();
154
154
  let V;
155
- return j(() => {
155
+ return W(() => {
156
156
  V = new ResizeObserver(() => {
157
157
  _.value.parentElement.style.setProperty("--top-tabsView-contents-offset-top", _.value.offsetHeight + "px");
158
158
  }), V.observe(_.value);
159
159
  }), D(() => {
160
160
  V.disconnect();
161
- }), (p, i) => (l(), m("div", {
161
+ }), (u, i) => (l(), m("div", {
162
162
  ref_key: "elRef",
163
163
  ref: _,
164
164
  class: y({
@@ -182,21 +182,21 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
182
182
  ])
183
183
  ]),
184
184
  contentList: w(() => [
185
- f(p.$slots, "default")
185
+ f(u.$slots, "default")
186
186
  ]),
187
187
  _: 3
188
- })) : (l(), m(J, { key: 1 }, [
188
+ })) : (l(), m(j, { key: 1 }, [
189
189
  g("div", Ve, [
190
- f(p.$slots, "default")
190
+ f(u.$slots, "default")
191
191
  ]),
192
- p.isShortable ? (l(), m("div", ve, [
193
- p.isShortable ? (l(), d(v, {
192
+ u.isShortable ? (l(), m("div", ve, [
193
+ u.isShortable ? (l(), d(v, {
194
194
  key: 0,
195
195
  icon: n(e).isShort ? "" : "",
196
- onClick: i[0] || (i[0] = (T) => n(e).isShort = !n(e).isShort)
196
+ onClick: i[0] || (i[0] = (P) => n(e).isShort = !n(e).isShort)
197
197
  }, {
198
198
  default: w(() => [
199
- U(N(n(e).isShort ? "" : "Свернуть"), 1)
199
+ J(N(n(e).isShort ? "" : "Свернуть"), 1)
200
200
  ]),
201
201
  _: 1
202
202
  }, 8, ["icon"])) : h("", !0)
@@ -232,8 +232,8 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
232
232
  }),
233
233
  emits: ["update:modelValue"],
234
234
  setup(t) {
235
- const o = t, e = R(t, "modelValue"), a = re(o, e), r = (u) => {
236
- document.documentElement.classList.toggle("top-hasTabsViewPageMod", u);
235
+ const o = t, e = R(t, "modelValue"), a = re(o, e), r = (p) => {
236
+ document.documentElement.classList.toggle("top-hasTabsViewPageMod", p);
237
237
  };
238
238
  o.pageMod && r(!0), D(() => {
239
239
  o.pageMod && r(!1), a.$id && x(a.$id, a.activeItemName, !0);
@@ -241,7 +241,7 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
241
241
  const c = b(), s = b(!1);
242
242
  return $([c, () => a.component], () => {
243
243
  s.value = H(a.component);
244
- }, { immediate: !0 }), (u, _) => (l(), m("div", {
244
+ }, { immediate: !0 }), (p, _) => (l(), m("div", {
245
245
  class: y({
246
246
  "top-tabsView": !0,
247
247
  "top-tabsView-pageMod": o.pageMod,
@@ -249,12 +249,12 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
249
249
  })
250
250
  }, [
251
251
  G(Se, {
252
- isShortable: u.isShortable,
252
+ isShortable: p.isShortable,
253
253
  isLoading: s.value,
254
254
  "onUpdate:isLoading": _[0] || (_[0] = (V) => s.value = V)
255
255
  }, {
256
256
  default: w(() => [
257
- f(u.$slots, "menu")
257
+ f(p.$slots, "menu")
258
258
  ]),
259
259
  _: 3
260
260
  }, 8, ["isShortable", "isLoading"]),
@@ -283,21 +283,21 @@ const E = (t, o) => `top:${String(t)}:${o}`, ie = (t, o) => {
283
283
  "top-tabsView-inPopup": "top-tabsView-inPopup"
284
284
  }, $e = {
285
285
  $style: Ie
286
- }, Le = /* @__PURE__ */ S(Me, [["__cssModules", $e]]), Te = {
286
+ }, Te = /* @__PURE__ */ S(Me, [["__cssModules", $e]]), Pe = {
287
287
  "top-tabsView_menuDelimeter": "top-tabsView_menuDelimeter"
288
- }, Pe = {}, ke = { class: "top-tabsView_menuDelimeter" };
288
+ }, Le = {}, ke = { class: "top-tabsView_menuDelimeter" };
289
289
  function Ne(t, o) {
290
290
  return l(), m("div", ke);
291
291
  }
292
292
  const Be = {
293
- $style: Te
294
- }, Oe = /* @__PURE__ */ S(Pe, [["render", Ne], ["__cssModules", Be]]), Ce = /* @__PURE__ */ I({
293
+ $style: Pe
294
+ }, Oe = /* @__PURE__ */ S(Le, [["render", Ne], ["__cssModules", Be]]), Ce = /* @__PURE__ */ I({
295
295
  __name: "menuTitle",
296
296
  props: {
297
297
  isSubtitle: { type: Boolean }
298
298
  },
299
299
  setup(t) {
300
- const o = L();
300
+ const o = T();
301
301
  return (e, a) => n(o).showMenuInPopup ? (l(), d(n(A), {
302
302
  key: 0,
303
303
  type: "title"
@@ -321,10 +321,10 @@ const Be = {
321
321
  "top-tabsView_menuTitle-subtitle": "top-tabsView_menuTitle-subtitle"
322
322
  }, De = {
323
323
  $style: Re
324
- }, Ae = /* @__PURE__ */ S(Ce, [["__cssModules", De]]), Je = Le, Ue = v, qe = Ae;
324
+ }, Ae = /* @__PURE__ */ S(Ce, [["__cssModules", De]]), je = Te, Je = v, qe = Ae;
325
325
  export {
326
- Je as TopTabsView,
327
- Ue as TopTabsViewMenuItem,
326
+ je as TopTabsView,
327
+ Je as TopTabsViewMenuItem,
328
328
  qe as TopTabsViewMenuTitle
329
329
  };
330
330
  //# sourceMappingURL=tabsView.js.map
@@ -0,0 +1,2 @@
1
+ define(["require","exports","../.chunks/forms-oowSA2rF.amd"],function(P,u,p){"use strict";if(typeof h>"u")var h=window.Vue;const m=(l,c=!1)=>{const e=new Map;e.set("::",[]),l.forEach(t=>{let n=!1,i=!1;t.match(/\.m\./)&&(n=!0),t.match(/\.pc\./)&&(i=!0);const a=`${n}:${i}`;e.has(a)||e.set(`${n}:${i}`,[]),e.get(`${n}:${i}`).push(t)});const o=[];return e.forEach((t,n)=>{if(!t.length)return;const[i,a]=n.split(":").map(s=>s==="true");let d="all";i&&(d="(max-width: "+p.Core.widthForMobile+"px)"),a&&(d="(max-width: "+p.Core.widthForMobile+"px)"),f(t,d,c).forEach(s=>o.push(s))}),Promise.all(o)},f=(l,c,e)=>{const o=[];return l.forEach(t=>{if(e){const s=new XMLHttpRequest;s.open("GET",t,!1),s.send()}const n="topCSSLink-"+t.replace(/\W/g,"-");if(window.hasOwnProperty(n))return;let i,a;const d=new Promise((s,g)=>{i=s,a=g});o.push(d);const r=document.createElement("link");r.id=n,r.rel="stylesheet",r.media=c,r.href=t,r.onload=()=>i(),r.onerror=()=>a(),document.head.append(r)}),o},w=(l,c="")=>{let e="all";c==="m"&&(e="(max-width: "+p.Core.widthForMobile+"px)"),c==="pc"&&(e="(min-width: "+p.Core.widthForMobile+"px)");const o=document.createElement("style");o.innerHTML=l,o.media=e,document.head.append(o)};u.insertToPage=m,u.insertToPageAsInine=w,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
2
+ //# sourceMappingURL=css.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.amd.js","sources":["../../src/core/utils/css.ts"],"sourcesContent":["/**\r\n * Упраление загрузками стилей\r\n * @packageDocumentation\r\n */\r\n\r\nimport Core from '@/core/core/core';\r\n\r\n/**\r\n * Вставить css стили на страницу по ссылке с автоматическим добавлением правил media\r\n *\r\n * Правила media:\r\n * - Файлы *.m.css будут грузиться, только на экранах с шириной менее, чем Core.widthForMobile\r\n * - Файлы *.pc.css будут грузиться, только на экранах с шириной более, чем Core.widthForMobile\r\n *\r\n * Настройкой Core.widthForMobile можно управлять через plugin: @topvisor/ui/plugin/core\r\n *\r\n * @param fileNames - список ссылок на css файлы\r\n * @param useSync - использовать синхронную загрузку css, только для css с того же домена. В синхронном режиме стили предзагружаются независимо от\r\n * media\r\n */\r\nexport const insertToPage = (fileNames: Array<string>, useSync = false) => {\r\n\tconst cssFilesByOptions = new Map();\r\n\tcssFilesByOptions.set('::', []);\r\n\r\n\tfileNames.forEach(filename => {\r\n\t\tlet m = false;\r\n\t\tlet pc = false;\r\n\r\n\t\tif (filename.match(/\\.m\\./)) {\r\n\t\t\tm = true;\r\n\t\t}\r\n\t\tif (filename.match(/\\.pc\\./)) {\r\n\t\t\tpc = true;\r\n\t\t}\r\n\r\n\t\tconst key = `${m}:${pc}`;\r\n\t\tif (!cssFilesByOptions.has(key)) {\r\n\t\t\tcssFilesByOptions.set(`${m}:${pc}`, []);\r\n\t\t}\r\n\t\tcssFilesByOptions.get(`${m}:${pc}`).push(filename);\r\n\t});\r\n\r\n\tconst promises: Array<Promise<unknown>> = [];\r\n\r\n\tcssFilesByOptions.forEach((fileNames, options: string) => {\r\n\t\tif (!fileNames.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst [m, pc] = options.split(':').map(item => item === 'true');\r\n\r\n\t\tlet media = 'all';\r\n\t\tif (m) {\r\n\t\t\tmedia = '(max-width: ' + Core.widthForMobile + 'px)';\r\n\t\t}\r\n\t\tif (pc) {\r\n\t\t\tmedia = '(max-width: ' + Core.widthForMobile + 'px)';\r\n\t\t}\r\n\r\n\t\tconst promisesI = _insertToPage(fileNames, media, useSync);\r\n\t\tpromisesI.forEach(promise => promises.push(promise));\r\n\t});\r\n\r\n\treturn Promise.all(promises);\r\n};\r\n\r\nconst _insertToPage = (fileNames: Array<string>, media: string, useSync: boolean) => {\r\n\tconst promises: Array<Promise<unknown>> = [];\r\n\r\n\tfileNames.forEach(fileName => {\r\n\t\t// синхронная загрузка, чтобы функция не выполнилась раньше загрузки стилей\r\n\t\tif (useSync) {\r\n\t\t\tconst request = new XMLHttpRequest();\r\n\t\t\trequest.open('GET', fileName, false);\r\n\t\t\trequest.send();\r\n\t\t}\r\n\r\n\t\tconst id = 'topCSSLink-' + fileName.replace(/\\W/g, '-');\r\n\r\n\t\t// стиль уже загружен\r\n\t\tif (window.hasOwnProperty(id)) return;\r\n\r\n\t\tlet resolve: Function;\r\n\t\tlet reject: Function;\r\n\t\tconst promise = new Promise((_resolve, _reject) => {\r\n\t\t\tresolve = _resolve;\r\n\t\t\treject = _reject;\r\n\t\t});\r\n\t\tpromises.push(promise);\r\n\r\n\t\tconst elLink = document.createElement('link');\r\n\t\telLink.id = id;\r\n\t\telLink.rel = 'stylesheet';\r\n\t\telLink.media = media;\r\n\t\telLink.href = fileName;\r\n\t\telLink.onload = () => resolve();\r\n\t\telLink.onerror = () => reject();\r\n\r\n\t\tdocument.head.append(elLink);\r\n\t});\r\n\r\n\treturn promises;\r\n};\r\n\r\n/**\r\n * Вставить css стили на страницу с автоматическим добавлением правил media\r\n *\r\n * Загрузка с Vite:\r\n *\r\n * ```js\r\n * import style from '/style.css?raw';\r\n *\r\n * insertToPageAsInine(style);\r\n * ```\r\n *\r\n * Загрузка с fetch:\r\n *\r\n * ```js\r\n * const style = await fetch('./style.css');\r\n *\r\n * insertToPageAsInine(style);\r\n * ```\r\n *\r\n * @param style - css стили в строке\r\n * @param type - если указать 'm' или 'pc', то стили будут применяться по условию в зависимости от настройки this.widthForMobile\r\n *\r\n * @see insertToPage\r\n */\r\nexport const insertToPageAsInine = (style: string, type: '' | 'm' | 'pc' = '') => {\r\n\tlet media = 'all';\r\n\r\n\tif (type === 'm') {\r\n\t\tmedia = '(max-width: ' + Core.widthForMobile + 'px)';\r\n\t}\r\n\r\n\tif (type === 'pc') {\r\n\t\tmedia = '(min-width: ' + Core.widthForMobile + 'px)';\r\n\t}\r\n\r\n\tconst elStyle = document.createElement('style');\r\n\telStyle.innerHTML = style;\r\n\telStyle.media = media;\r\n\r\n\tdocument.head.append(elStyle);\r\n};\r\n"],"names":["insertToPage","fileNames","useSync","cssFilesByOptions","filename","m","pc","key","promises","fileNames2","media","promise","fileName","request","id","elLink","resolve","reject","insertToPageAsInine","style","type","elStyle"],"mappings":"2HAoBO,MAAAA,EAAA,CAAAC,EAAAC,EAAA,KAAA,CACN,MAAAC,EAAA,IAAA,mBAGAF,EAAA,QAAAG,GAAA,CACC,IAAAC,EAAA,GACAC,EAAA,GAEAF,EAAA,MAAA,OAAA,UAGAA,EAAA,MAAA,QAAA,UAIA,MAAAG,EAAA,GAAAF,CAAA,IAAAC,CAAA,aAECH,EAAA,IAAA,GAAAE,CAAA,IAAAC,CAAA,GAAA,CAAA,CAAA,EAEDH,EAAA,IAAA,GAAAE,CAAA,IAAAC,CAAA,EAAA,EAAA,KAAAF,CAAA,CAAiD,CAAA,EAGlD,MAAAI,EAAA,CAAA,2BAGC,GAAA,CAAAC,EAAA,OACC,kDAKD,IAAAC,EAAA,mHASA,QAAAC,GAAAH,EAAA,KAAAG,CAAA,CAAA,CAAmD,CAAA,EAGpD,QAAA,IAAAH,CAAA,eAIA,MAAAA,EAAA,CAAA,EAEA,OAAAP,EAAA,QAAAW,GAAA,OAGE,MAAAC,EAAA,IAAA,kCAEAA,EAAA,KAAA,EAGD,MAAAC,EAAA,cAAAF,EAAA,QAAA,MAAA,GAAA,gFASU,CAAA,EAEVJ,EAAA,KAAAG,CAAA,yCAGAI,EAAA,GAAAD,EACAC,EAAA,IAAA,aACAA,EAAA,MAAAL,EACAK,EAAA,KAAAH,EACAG,EAAA,OAAA,IAAAC,EAAA,EACAD,EAAA,QAAA,IAAAE,EAAA,yBAE2B,CAAA,GAI7B,EA0BOC,EAAA,CAAAC,EAAAC,EAAA,KAAA,CACN,IAAAV,EAAA,MAEAU,IAAA,oDAIAA,IAAA,6FAKAC,EAAA,UAAAF,EACAE,EAAA,MAAAX,yBAGD"}
package/utils/css.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from '../core/utils/css'
package/utils/css.js ADDED
@@ -0,0 +1,45 @@
1
+ import { C as d } from "../.chunks/forms-CPEVHoks.es.js";
2
+ const f = (l, c = !1) => {
3
+ const e = /* @__PURE__ */ new Map();
4
+ e.set("::", []), l.forEach((t) => {
5
+ let s = !1, r = !1;
6
+ t.match(/\.m\./) && (s = !0), t.match(/\.pc\./) && (r = !0);
7
+ const a = `${s}:${r}`;
8
+ e.has(a) || e.set(`${s}:${r}`, []), e.get(`${s}:${r}`).push(t);
9
+ });
10
+ const o = [];
11
+ return e.forEach((t, s) => {
12
+ if (!t.length)
13
+ return;
14
+ const [r, a] = s.split(":").map((i) => i === "true");
15
+ let p = "all";
16
+ r && (p = "(max-width: " + d.widthForMobile + "px)"), a && (p = "(max-width: " + d.widthForMobile + "px)"), h(t, p, c).forEach((i) => o.push(i));
17
+ }), Promise.all(o);
18
+ }, h = (l, c, e) => {
19
+ const o = [];
20
+ return l.forEach((t) => {
21
+ if (e) {
22
+ const i = new XMLHttpRequest();
23
+ i.open("GET", t, !1), i.send();
24
+ }
25
+ const s = "topCSSLink-" + t.replace(/\W/g, "-");
26
+ if (window.hasOwnProperty(s)) return;
27
+ let r, a;
28
+ const p = new Promise((i, m) => {
29
+ r = i, a = m;
30
+ });
31
+ o.push(p);
32
+ const n = document.createElement("link");
33
+ n.id = s, n.rel = "stylesheet", n.media = c, n.href = t, n.onload = () => r(), n.onerror = () => a(), document.head.append(n);
34
+ }), o;
35
+ }, w = (l, c = "") => {
36
+ let e = "all";
37
+ c === "m" && (e = "(max-width: " + d.widthForMobile + "px)"), c === "pc" && (e = "(min-width: " + d.widthForMobile + "px)");
38
+ const o = document.createElement("style");
39
+ o.innerHTML = l, o.media = e, document.head.append(o);
40
+ };
41
+ export {
42
+ f as insertToPage,
43
+ w as insertToPageAsInine
44
+ };
45
+ //# sourceMappingURL=css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.js","sources":["../../src/core/utils/css.ts"],"sourcesContent":["/**\r\n * Упраление загрузками стилей\r\n * @packageDocumentation\r\n */\r\n\r\nimport Core from '@/core/core/core';\r\n\r\n/**\r\n * Вставить css стили на страницу по ссылке с автоматическим добавлением правил media\r\n *\r\n * Правила media:\r\n * - Файлы *.m.css будут грузиться, только на экранах с шириной менее, чем Core.widthForMobile\r\n * - Файлы *.pc.css будут грузиться, только на экранах с шириной более, чем Core.widthForMobile\r\n *\r\n * Настройкой Core.widthForMobile можно управлять через plugin: @topvisor/ui/plugin/core\r\n *\r\n * @param fileNames - список ссылок на css файлы\r\n * @param useSync - использовать синхронную загрузку css, только для css с того же домена. В синхронном режиме стили предзагружаются независимо от\r\n * media\r\n */\r\nexport const insertToPage = (fileNames: Array<string>, useSync = false) => {\r\n\tconst cssFilesByOptions = new Map();\r\n\tcssFilesByOptions.set('::', []);\r\n\r\n\tfileNames.forEach(filename => {\r\n\t\tlet m = false;\r\n\t\tlet pc = false;\r\n\r\n\t\tif (filename.match(/\\.m\\./)) {\r\n\t\t\tm = true;\r\n\t\t}\r\n\t\tif (filename.match(/\\.pc\\./)) {\r\n\t\t\tpc = true;\r\n\t\t}\r\n\r\n\t\tconst key = `${m}:${pc}`;\r\n\t\tif (!cssFilesByOptions.has(key)) {\r\n\t\t\tcssFilesByOptions.set(`${m}:${pc}`, []);\r\n\t\t}\r\n\t\tcssFilesByOptions.get(`${m}:${pc}`).push(filename);\r\n\t});\r\n\r\n\tconst promises: Array<Promise<unknown>> = [];\r\n\r\n\tcssFilesByOptions.forEach((fileNames, options: string) => {\r\n\t\tif (!fileNames.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst [m, pc] = options.split(':').map(item => item === 'true');\r\n\r\n\t\tlet media = 'all';\r\n\t\tif (m) {\r\n\t\t\tmedia = '(max-width: ' + Core.widthForMobile + 'px)';\r\n\t\t}\r\n\t\tif (pc) {\r\n\t\t\tmedia = '(max-width: ' + Core.widthForMobile + 'px)';\r\n\t\t}\r\n\r\n\t\tconst promisesI = _insertToPage(fileNames, media, useSync);\r\n\t\tpromisesI.forEach(promise => promises.push(promise));\r\n\t});\r\n\r\n\treturn Promise.all(promises);\r\n};\r\n\r\nconst _insertToPage = (fileNames: Array<string>, media: string, useSync: boolean) => {\r\n\tconst promises: Array<Promise<unknown>> = [];\r\n\r\n\tfileNames.forEach(fileName => {\r\n\t\t// синхронная загрузка, чтобы функция не выполнилась раньше загрузки стилей\r\n\t\tif (useSync) {\r\n\t\t\tconst request = new XMLHttpRequest();\r\n\t\t\trequest.open('GET', fileName, false);\r\n\t\t\trequest.send();\r\n\t\t}\r\n\r\n\t\tconst id = 'topCSSLink-' + fileName.replace(/\\W/g, '-');\r\n\r\n\t\t// стиль уже загружен\r\n\t\tif (window.hasOwnProperty(id)) return;\r\n\r\n\t\tlet resolve: Function;\r\n\t\tlet reject: Function;\r\n\t\tconst promise = new Promise((_resolve, _reject) => {\r\n\t\t\tresolve = _resolve;\r\n\t\t\treject = _reject;\r\n\t\t});\r\n\t\tpromises.push(promise);\r\n\r\n\t\tconst elLink = document.createElement('link');\r\n\t\telLink.id = id;\r\n\t\telLink.rel = 'stylesheet';\r\n\t\telLink.media = media;\r\n\t\telLink.href = fileName;\r\n\t\telLink.onload = () => resolve();\r\n\t\telLink.onerror = () => reject();\r\n\r\n\t\tdocument.head.append(elLink);\r\n\t});\r\n\r\n\treturn promises;\r\n};\r\n\r\n/**\r\n * Вставить css стили на страницу с автоматическим добавлением правил media\r\n *\r\n * Загрузка с Vite:\r\n *\r\n * ```js\r\n * import style from '/style.css?raw';\r\n *\r\n * insertToPageAsInine(style);\r\n * ```\r\n *\r\n * Загрузка с fetch:\r\n *\r\n * ```js\r\n * const style = await fetch('./style.css');\r\n *\r\n * insertToPageAsInine(style);\r\n * ```\r\n *\r\n * @param style - css стили в строке\r\n * @param type - если указать 'm' или 'pc', то стили будут применяться по условию в зависимости от настройки this.widthForMobile\r\n *\r\n * @see insertToPage\r\n */\r\nexport const insertToPageAsInine = (style: string, type: '' | 'm' | 'pc' = '') => {\r\n\tlet media = 'all';\r\n\r\n\tif (type === 'm') {\r\n\t\tmedia = '(max-width: ' + Core.widthForMobile + 'px)';\r\n\t}\r\n\r\n\tif (type === 'pc') {\r\n\t\tmedia = '(min-width: ' + Core.widthForMobile + 'px)';\r\n\t}\r\n\r\n\tconst elStyle = document.createElement('style');\r\n\telStyle.innerHTML = style;\r\n\telStyle.media = media;\r\n\r\n\tdocument.head.append(elStyle);\r\n};\r\n"],"names":["insertToPage","fileNames","useSync","cssFilesByOptions","filename","m","pc","key","promises","options","item","media","Core","_insertToPage","promise","fileName","request","id","resolve","reject","_resolve","_reject","elLink","insertToPageAsInine","style","type","elStyle"],"mappings":";AAoBO,MAAMA,IAAe,CAACC,GAA0BC,IAAU,OAAU;AACpE,QAAAC,wBAAwB;AACZ,EAAAA,EAAA,IAAI,MAAM,CAAA,CAAE,GAE9BF,EAAU,QAAQ,CAAYG,MAAA;AAC7B,QAAIC,IAAI,IACJC,IAAK;AAEL,IAAAF,EAAS,MAAM,OAAO,MACrBC,IAAA,KAEDD,EAAS,MAAM,QAAQ,MACrBE,IAAA;AAGN,UAAMC,IAAM,GAAGF,CAAC,IAAIC,CAAE;AACtB,IAAKH,EAAkB,IAAII,CAAG,KAC7BJ,EAAkB,IAAI,GAAGE,CAAC,IAAIC,CAAE,IAAI,CAAA,CAAE,GAErBH,EAAA,IAAI,GAAGE,CAAC,IAAIC,CAAE,EAAE,EAAE,KAAKF,CAAQ;AAAA,EAAA,CACjD;AAED,QAAMI,IAAoC,CAAA;AAExB,SAAAL,EAAA,QAAQ,CAACF,GAAWQ,MAAoB;AACrD,QAAA,CAACR,EAAU;AACd;AAGK,UAAA,CAACI,GAAGC,CAAE,IAAIG,EAAQ,MAAM,GAAG,EAAE,IAAI,CAAQC,MAAAA,MAAS,MAAM;AAE9D,QAAIC,IAAQ;AACZ,IAAIN,MACKM,IAAA,iBAAiBC,EAAK,iBAAiB,QAE5CN,MACKK,IAAA,iBAAiBC,EAAK,iBAAiB,QAG9BC,EAAcZ,GAAWU,GAAOT,CAAO,EAC/C,QAAQ,CAAAY,MAAWN,EAAS,KAAKM,CAAO,CAAC;AAAA,EAAA,CACnD,GAEM,QAAQ,IAAIN,CAAQ;AAC5B,GAEMK,IAAgB,CAACZ,GAA0BU,GAAeT,MAAqB;AACpF,QAAMM,IAAoC,CAAA;AAE1C,SAAAP,EAAU,QAAQ,CAAYc,MAAA;AAE7B,QAAIb,GAAS;AACN,YAAAc,IAAU,IAAI;AACZ,MAAAA,EAAA,KAAK,OAAOD,GAAU,EAAK,GACnCC,EAAQ,KAAK;AAAA,IACd;AAEA,UAAMC,IAAK,gBAAgBF,EAAS,QAAQ,OAAO,GAAG;AAGlD,QAAA,OAAO,eAAeE,CAAE,EAAG;AAE3B,QAAAC,GACAC;AACJ,UAAML,IAAU,IAAI,QAAQ,CAACM,GAAUC,MAAY;AACxC,MAAAH,IAAAE,GACDD,IAAAE;AAAA,IAAA,CACT;AACD,IAAAb,EAAS,KAAKM,CAAO;AAEf,UAAAQ,IAAS,SAAS,cAAc,MAAM;AAC5C,IAAAA,EAAO,KAAKL,GACZK,EAAO,MAAM,cACbA,EAAO,QAAQX,GACfW,EAAO,OAAOP,GACPO,EAAA,SAAS,MAAMJ,KACfI,EAAA,UAAU,MAAMH,KAEd,SAAA,KAAK,OAAOG,CAAM;AAAA,EAAA,CAC3B,GAEMd;AACR,GA0Bae,IAAsB,CAACC,GAAeC,IAAwB,OAAO;AACjF,MAAId,IAAQ;AAEZ,EAAIc,MAAS,QACJd,IAAA,iBAAiBC,EAAK,iBAAiB,QAG5Ca,MAAS,SACJd,IAAA,iBAAiBC,EAAK,iBAAiB;AAG1C,QAAAc,IAAU,SAAS,cAAc,OAAO;AAC9C,EAAAA,EAAQ,YAAYF,GACpBE,EAAQ,QAAQf,GAEP,SAAA,KAAK,OAAOe,CAAO;AAC7B;"}
package/utils/date.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-CWbjHcxY.amd"],function(n,e,t){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateToString=t.dateToString,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.genDateMoscow=t.genDateMoscow,e.getDayOfWeek=t.getDayOfWeek,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-oowSA2rF.amd"],function(n,e,t){"use strict";if(typeof a>"u")var a=window.Vue;e.dateFormat=t.dateFormat,e.dateToString=t.dateToString,e.dateUnformat=t.dateUnformat,e.genDate=t.genDate,e.genDateMoscow=t.genDateMoscow,e.getDayOfWeek=t.getDayOfWeek,e.stringToDate=t.stringToDate,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=date.amd.js.map
package/utils/date.js CHANGED
@@ -1,4 +1,4 @@
1
- import { d as t, F as s, J as o, H as r, I as g, D as n, G as D } from "../.chunks/forms-BUjy1eoH.es.js";
1
+ import { d as t, F as s, J as o, H as r, I as g, D as n, G as D } from "../.chunks/forms-CPEVHoks.es.js";
2
2
  export {
3
3
  t as dateFormat,
4
4
  s as dateToString,
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/forms-CWbjHcxY.amd"],function(a,e,i){"use strict";if(typeof l>"u")var l=window.Vue;e.get$scroll=i.get$scroll,e.getCommandKeyLabel=i.getCommandKeyLabel,e.getElsScroll=i.getElsScroll,e.getOS=i.getOS,e.getOSAsync=i.getOSAsync,e.getScrollTop=i.getScrollTop,e.isApp=i.isApp,e.isMacOS=i.isMacOS,e.isMobile=i.isMobile,e.isRetina=i.isRetina,e.isSafari=i.isSafari,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/forms-oowSA2rF.amd"],function(a,e,i){"use strict";if(typeof l>"u")var l=window.Vue;e.get$scroll=i.get$scroll,e.getCommandKeyLabel=i.getCommandKeyLabel,e.getElsScroll=i.getElsScroll,e.getOS=i.getOS,e.getOSAsync=i.getOSAsync,e.getScrollTop=i.getScrollTop,e.isApp=i.isApp,e.isMacOS=i.isMacOS,e.isMobile=i.isMobile,e.isRetina=i.isRetina,e.isSafari=i.isSafari,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=device.amd.js.map
package/utils/device.js CHANGED
@@ -1,4 +1,4 @@
1
- import { y as e, w as i, z as l, A as t, B as o, x as g, u as r, v as S, t as c, s as p, i as m } from "../.chunks/forms-BUjy1eoH.es.js";
1
+ import { y as e, w as i, z as l, A as t, B as o, x as g, u as r, v as S, t as c, s as p, i as m } from "../.chunks/forms-CPEVHoks.es.js";
2
2
  export {
3
3
  e as get$scroll,
4
4
  i as getCommandKeyLabel,
@@ -1,2 +1,2 @@
1
- define(["require","exports","../.chunks/i18n-eDh3Aaw9.amd","../.chunks/forms-CWbjHcxY.amd"],function(a,n,t,i){"use strict";if(typeof u>"u")var u=window.Vue;const c=(o,e,s=i.Core.state.currency)=>{e=e??t.useI18nLang().value;let r=o.toLocaleString(e,{style:"currency",currency:s,maximumFractionDigits:2});return r=r.replace(",","."),r};n.genPrice=c,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
1
+ define(["require","exports","../.chunks/i18n-eDh3Aaw9.amd","../.chunks/forms-oowSA2rF.amd"],function(a,n,t,i){"use strict";if(typeof u>"u")var u=window.Vue;const c=(o,e,s=i.Core.state.currency)=>{e=e??t.useI18nLang().value;let r=o.toLocaleString(e,{style:"currency",currency:s,maximumFractionDigits:2});return r=r.replace(",","."),r};n.genPrice=c,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=price.amd.js.map
package/utils/price.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { u as c } from "../.chunks/i18n-qpB8zyhD.es.js";
2
- import { C as i } from "../.chunks/forms-BUjy1eoH.es.js";
2
+ import { C as i } from "../.chunks/forms-CPEVHoks.es.js";
3
3
  const u = (t, r, o = i.state.currency) => {
4
4
  r = r ?? c().value;
5
5
  let e = t.toLocaleString(r, { style: "currency", currency: o, maximumFractionDigits: 2 });
@@ -1 +0,0 @@
1
- {"version":3,"file":"datepicker-D1RJVUmI.amd.js","sources":["../../src/components/forms/inputDate/datepicker.ts","../../src/components/forms/inputDate/datepicker.css?raw"],"sourcesContent":["import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport { dateFormat } from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.insertStyleToPage(css);\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!Core.$?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tCore.$.datepicker.setDefaults({\r\n\t\tdateFormat: Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd'),\r\n\t});\r\n\r\n\treturn Core.$(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 = 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}\r\n","export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: var(--color-bg-3);\\r\\n\\t--datepicker-day-color-hover: var(--color-layer-secondary-1);\\r\\n\\t--datepicker-selected-color: var(--color-bg-primary-2);\\r\\n\\t--datepicker-selected-color-hover: var(--color-bg-primary-1);\\r\\n\\t--datepicker-range-color: var(--color-layer-primary-1);\\r\\n\\t--datepicker-range-color-hover: var(--color-layer-primary-2);\\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-1);\\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-1);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-text-2);\\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\\tcolor: var(--color-icon-3);\\r\\n\\tcontent: \\\"\\\";\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev-hover:before {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\tcontent: \\\"\\\";\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next-hover {\\r\\n\\tcolor: var(--color-icon-1);\\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: var(--color-text-3);\\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\\tcolor: var(--color-text-1);\\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-1) !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-icon-primary-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-icon-negative-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\""],"names":["Core","$","el","forms","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","_a","i","valueChunkLeft","value","selectionPos","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","e","delimiterIndex"],"mappings":"0HAMAA,EAAAA,KAAAA,kBCNA;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CDMAA,EAEA,MAAAC,EAAAC,GAAA,uEAEE,QAAA,KAAA,0EAAA,EAEA,OAGD,OAAAC,EAAA,KAAA,EAAA,WAAA,YAAA,CAA8B,WAAAA,EAAA,KAAA,MAAA,WAAA,YAAA,EAAA,QAAA,IAAA,IAAA,EAAA,QAAA,IAAA,IAAA,EAAA,QAAA,IAAA,IAAA,CAC0E,CAAA,EAGxGA,EAAA,KAAA,EAAAD,CAAA,CACD,EAEgB,SAAAE,EAAAF,EAAAG,EAAA,mDAIhB,IAAAC,EACAC,EACAC,EACAC,EAEAC,EAAAA,MAAAA,EAAAA,MAAAA,EAAAA,KAAAA,MAAAA,UAAAA,EAAAA,IAAAA,OAECJ,EAAAH,EAAA,WAAA,YAAA,EACAI,IAAAI,EAAAL,EAAA,MAAA,IAAA,IAAA,YAAAK,EAAA,KAAA,IACAH,EAAAF,EAAA,QAAA,OAAA,EAAA,EAAA,YAGA,QAAAM,EAAA,EAAAA,EAAAN,EAAA,OAAAM,IACCN,EAAAM,CAAA,IAAAL,GACCE,EAAA,KAAAG,CAAA,CAGH,EAAA,CAAA,UAAA,EAAA,CAAA,6DAWCC,EAAAC,EAAA,UAAA,EAAAC,CAAA,EAAA,QAAA,OAAA,EAAA,EACAC,EAAAF,EAAA,UAAAC,CAAA,EAAA,QAAA,OAAA,EAAA,EAEAE,EAAAJ,EAAA,OAAAG,EAAA,OAAAR,EACA,GAAAS,EAAA,EAAA,uCAKCD,EAAAA,EAAA,UAAAA,EAAA,OAAAE,CAAA,CAA6F,MAAAD,EAAA,IAG7FE,EAAA,YAAA,6DAQDJ,EAAAF,EAAA,OACAC,EAAAD,EAAAG,EAGA,QAAAJ,EAAA,EAAAA,EAAAH,EAAA,OAAAG,IAAA,CACC,MAAAQ,EAAAX,EAAAG,CAAA,EAEAE,EAAAA,EAAA,UAAA,EAAAM,CAAA,EAAAb,EAAAO,EAAA,UAAAM,CAAA,EAGAL,GAAAK,OAMDD,EAAA,YAAA,yBAAAL,EAAAC,EAAA,CAAA,IAAAR,4BAMCY,EAAA,OAAA,MAAAL,EACAK,EAAA,OAAA,eAAAJ,EACAI,EAAA,OAAA,aAAAJ,EAEF"}