@topvisor/ui 1.5.1-1 → 1.5.1-topProjectSelector.0

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 (126) hide show
  1. package/.chunks/{api-CBMWBeCS.amd.js → api-a3D-SXH-.amd.js} +2 -2
  2. package/.chunks/{api-CBMWBeCS.amd.js.map → api-a3D-SXH-.amd.js.map} +1 -1
  3. package/.chunks/{api-CBMWBeCS.esm.js → api-a3D-SXH-.esm.js} +2 -2
  4. package/.chunks/{api-CBMWBeCS.esm.js.map → api-a3D-SXH-.esm.js.map} +1 -1
  5. package/.chunks/{app-DyAn8Ury.amd.js → app-BDGZ1d0R.amd.js} +2 -2
  6. package/.chunks/{app-DyAn8Ury.amd.js.map → app-BDGZ1d0R.amd.js.map} +1 -1
  7. package/.chunks/{app-DyAn8Ury.esm.js → app-BDGZ1d0R.esm.js} +6 -6
  8. package/.chunks/app-BDGZ1d0R.esm.js.map +1 -0
  9. package/.chunks/{datepicker-BmHkZfBO.amd.js → datepicker-DuOSAFQy.amd.js} +2 -2
  10. package/.chunks/{datepicker-BmHkZfBO.amd.js.map → datepicker-DuOSAFQy.amd.js.map} +1 -1
  11. package/.chunks/{datepicker-BmHkZfBO.esm.js → datepicker-DuOSAFQy.esm.js} +2 -2
  12. package/.chunks/{datepicker-BmHkZfBO.esm.js.map → datepicker-DuOSAFQy.esm.js.map} +1 -1
  13. package/.chunks/{dialog-bIV6Y2PF.amd.js → dialog-ClCAM1nI.amd.js} +2 -2
  14. package/.chunks/{dialog-bIV6Y2PF.amd.js.map → dialog-ClCAM1nI.amd.js.map} +1 -1
  15. package/.chunks/{dialog-bIV6Y2PF.esm.js → dialog-ClCAM1nI.esm.js} +4 -4
  16. package/.chunks/{dialog-bIV6Y2PF.esm.js.map → dialog-ClCAM1nI.esm.js.map} +1 -1
  17. package/.chunks/{dialog_regionSelectorRegions-gPKA93af.amd.js → dialog_regionSelectorRegions-DFZTiYi6.amd.js} +2 -2
  18. package/.chunks/{dialog_regionSelectorRegions-gPKA93af.amd.js.map → dialog_regionSelectorRegions-DFZTiYi6.amd.js.map} +1 -1
  19. package/.chunks/{dialog_regionSelectorRegions-gPKA93af.esm.js → dialog_regionSelectorRegions-DFZTiYi6.esm.js} +5 -5
  20. package/.chunks/{dialog_regionSelectorRegions-gPKA93af.esm.js.map → dialog_regionSelectorRegions-DFZTiYi6.esm.js.map} +1 -1
  21. package/.chunks/{dialogs-CE8F7A0M.amd.js → dialogs-CjrddGh6.amd.js} +2 -2
  22. package/.chunks/{dialogs-CE8F7A0M.amd.js.map → dialogs-CjrddGh6.amd.js.map} +1 -1
  23. package/.chunks/{dialogs-CE8F7A0M.esm.js → dialogs-CjrddGh6.esm.js} +3 -3
  24. package/.chunks/{dialogs-CE8F7A0M.esm.js.map → dialogs-CjrddGh6.esm.js.map} +1 -1
  25. package/.chunks/forms-C2ItFa61.amd.js +2 -0
  26. package/.chunks/forms-C2ItFa61.amd.js.map +1 -0
  27. package/.chunks/{forms-DByj6MWE.esm.js → forms-C2ItFa61.esm.js} +10 -6
  28. package/.chunks/forms-C2ItFa61.esm.js.map +1 -0
  29. package/.chunks/{formsExt-LekJqOck.amd.js → formsExt-6Nz907Ry.amd.js} +2 -2
  30. package/.chunks/formsExt-6Nz907Ry.amd.js.map +1 -0
  31. package/.chunks/{formsExt-LekJqOck.esm.js → formsExt-6Nz907Ry.esm.js} +10 -7
  32. package/.chunks/formsExt-6Nz907Ry.esm.js.map +1 -0
  33. package/.chunks/{notice-Ds5K-ei_.amd.js → notice-CBJBDgby.amd.js} +2 -2
  34. package/.chunks/{notice-Ds5K-ei_.amd.js.map → notice-CBJBDgby.amd.js.map} +1 -1
  35. package/.chunks/{notice-Ds5K-ei_.esm.js → notice-CBJBDgby.esm.js} +2 -2
  36. package/.chunks/{notice-Ds5K-ei_.esm.js.map → notice-CBJBDgby.esm.js.map} +1 -1
  37. package/.chunks/{popup-Cvyqovn6.amd.js → popup-B06vbv6B.amd.js} +2 -2
  38. package/.chunks/{popup-Cvyqovn6.amd.js.map → popup-B06vbv6B.amd.js.map} +1 -1
  39. package/.chunks/{popup-Cvyqovn6.esm.js → popup-B06vbv6B.esm.js} +3 -3
  40. package/.chunks/{popup-Cvyqovn6.esm.js.map → popup-B06vbv6B.esm.js.map} +1 -1
  41. package/.chunks/{popup-BxGYabRi.amd.js → popup-CFYtl5_r.amd.js} +2 -2
  42. package/.chunks/{popup-BxGYabRi.amd.js.map → popup-CFYtl5_r.amd.js.map} +1 -1
  43. package/.chunks/{popup-BxGYabRi.esm.js → popup-CFYtl5_r.esm.js} +3 -3
  44. package/.chunks/{popup-BxGYabRi.esm.js.map → popup-CFYtl5_r.esm.js.map} +1 -1
  45. package/.chunks/{utils-sPSU5tXH.amd.js → utils-BTHruVpQ.amd.js} +2 -2
  46. package/.chunks/{utils-sPSU5tXH.amd.js.map → utils-BTHruVpQ.amd.js.map} +1 -1
  47. package/.chunks/{utils-sPSU5tXH.esm.js → utils-BTHruVpQ.esm.js} +3 -3
  48. package/.chunks/{utils-sPSU5tXH.esm.js.map → utils-BTHruVpQ.esm.js.map} +1 -1
  49. package/.chunks/{utils-mRLC32Uo.amd.js → utils-DJV2mWZE.amd.js} +2 -2
  50. package/.chunks/{utils-mRLC32Uo.amd.js.map → utils-DJV2mWZE.amd.js.map} +1 -1
  51. package/.chunks/{utils-mRLC32Uo.esm.js → utils-DJV2mWZE.esm.js} +4 -4
  52. package/.chunks/{utils-mRLC32Uo.esm.js.map → utils-DJV2mWZE.esm.js.map} +1 -1
  53. package/.chunks/{worker-Cx7e_9o9.amd.js → worker-BIUaZFVX.amd.js} +2 -2
  54. package/.chunks/{worker-Cx7e_9o9.amd.js.map → worker-BIUaZFVX.amd.js.map} +1 -1
  55. package/.chunks/{worker-Cx7e_9o9.esm.js → worker-BIUaZFVX.esm.js} +3 -3
  56. package/.chunks/{worker-Cx7e_9o9.esm.js.map → worker-BIUaZFVX.esm.js.map} +1 -1
  57. package/api/index.amd.js +1 -1
  58. package/api/index.amd.js.map +1 -1
  59. package/api/index.js +1 -1
  60. package/assets/project.css +1 -1
  61. package/autoload-css-manifest.amd.json +4 -4
  62. package/autoload-css-manifest.json +4 -4
  63. package/charts/charts.amd.js +1 -1
  64. package/charts/charts.amd.js.map +1 -1
  65. package/charts/charts.js +1 -1
  66. package/core/app.amd.js +1 -1
  67. package/core/app.amd.js.map +1 -1
  68. package/core/app.js +4 -4
  69. package/dialog/dialog.amd.js +1 -1
  70. package/dialog/dialog.amd.js.map +1 -1
  71. package/dialog/dialog.js +3 -3
  72. package/forms/forms.amd.js +1 -1
  73. package/forms/forms.amd.js.map +1 -1
  74. package/forms/forms.js +1 -1
  75. package/formsExt/formsExt.amd.js +1 -1
  76. package/formsExt/formsExt.amd.js.map +1 -1
  77. package/formsExt/formsExt.js +1 -1
  78. package/layout/layout.amd.js +1 -1
  79. package/layout/layout.amd.js.map +1 -1
  80. package/layout/layout.js +1 -1
  81. package/package.json +1 -1
  82. package/popup/popup.amd.js +1 -1
  83. package/popup/popup.amd.js.map +1 -1
  84. package/popup/popup.js +1 -1
  85. package/popup/worker.amd.js +1 -1
  86. package/popup/worker.amd.js.map +1 -1
  87. package/popup/worker.js +1 -1
  88. package/project/project.amd.js +1 -1
  89. package/project/project.amd.js.map +1 -1
  90. package/project/project.js +57 -63
  91. package/project/project.js.map +1 -1
  92. package/src/api/api/types/api.d.ts +5 -1
  93. package/src/core/core/core.d.ts +2 -0
  94. package/src/core/core/options.d.ts +8 -0
  95. package/src/core/core/state.d.ts +2 -0
  96. package/src/core/plugins/core.d.ts +1 -1
  97. package/tabsView/tabsView.amd.js +1 -1
  98. package/tabsView/tabsView.amd.js.map +1 -1
  99. package/tabsView/tabsView.js +2 -2
  100. package/utils/clipboard.amd.js +1 -1
  101. package/utils/clipboard.amd.js.map +1 -1
  102. package/utils/clipboard.js +1 -1
  103. package/utils/date.amd.js +1 -1
  104. package/utils/date.amd.js.map +1 -1
  105. package/utils/date.js +1 -1
  106. package/utils/device.amd.js +1 -1
  107. package/utils/device.amd.js.map +1 -1
  108. package/utils/device.js +1 -1
  109. package/utils/lodash.amd.js +1 -1
  110. package/utils/lodash.amd.js.map +1 -1
  111. package/utils/lodash.js +1 -1
  112. package/utils/price.amd.js +1 -1
  113. package/utils/price.amd.js.map +1 -1
  114. package/utils/price.js +1 -1
  115. package/utils/searchers.amd.js +1 -1
  116. package/utils/searchers.amd.js.map +1 -1
  117. package/utils/searchers.js +1 -1
  118. package/utils/string.amd.js +1 -1
  119. package/utils/string.amd.js.map +1 -1
  120. package/utils/string.js +1 -1
  121. package/.chunks/app-DyAn8Ury.esm.js.map +0 -1
  122. package/.chunks/forms-DByj6MWE.amd.js +0 -2
  123. package/.chunks/forms-DByj6MWE.amd.js.map +0 -1
  124. package/.chunks/forms-DByj6MWE.esm.js.map +0 -1
  125. package/.chunks/formsExt-LekJqOck.amd.js.map +0 -1
  126. package/.chunks/formsExt-LekJqOck.esm.js.map +0 -1
@@ -100,6 +100,10 @@ declare global {
100
100
  type ResponseOriginalResult<RequestContext extends Api.ClientRequestContext<any, any, any>> = Exclude<Api.ResponseOriginal<RequestContext>, Api.Ext.Schemas['ResponseError']> extends {
101
101
  result?: infer R;
102
102
  } ? R : never;
103
+ /**
104
+ * Нужно ли подменить тип результата на типизацию Model
105
+ */
106
+ type MustUseModelResult<ResponseOriginalResult> = ResponseOriginalResult extends unknown[] ? true : unknown extends ResponseOriginalResult ? true : false;
103
107
  /**
104
108
  * Результат в ответе метода API
105
109
  *
@@ -107,7 +111,7 @@ declare global {
107
111
  *
108
112
  * @see Api.Response
109
113
  */
110
- type Result<RequestContext extends Api.ClientRequestContext<any, any, any>, Fields extends Api.ParamsFields<RequestContext> | undefined = undefined, FetchStyle extends RequestContext['ParamsFetchStyle'] | null = null, Model extends RequestContext['Model'] = RequestContext['Model'], ResponseOriginalResult extends Api.ResponseOriginalResult<RequestContext> = Api.ResponseOriginalResult<RequestContext>> = [Model] extends [never] ? ResponseOriginalResult : null extends FetchStyle ? RequestContext['Oper'] extends 'get' ? ResultModel<Fields, 'fetchAll', Model> : ResponseOriginalResult : ResultModel<Fields, NonNullable<FetchStyle>, Model>;
114
+ type Result<RequestContext extends Api.ClientRequestContext<any, any, any>, Fields extends Api.ParamsFields<RequestContext> | undefined = undefined, FetchStyle extends RequestContext['ParamsFetchStyle'] | null = null, Model extends RequestContext['Model'] = RequestContext['Model'], ResponseOriginalResult extends Api.ResponseOriginalResult<RequestContext> = Api.ResponseOriginalResult<RequestContext>> = [Model] extends [never] ? ResponseOriginalResult : MustUseModelResult<ResponseOriginalResult> extends true ? null extends FetchStyle ? RequestContext['Oper'] extends 'get' ? ResultModel<Fields, 'fetchAll', Model> : ResponseOriginalResult : ResultModel<Fields, NonNullable<FetchStyle>, Model> : ResponseOriginalResult;
111
115
  /**
112
116
  * Результат в ответе метода API для модели
113
117
  *
@@ -12,6 +12,8 @@ export default class Core {
12
12
  dateFormat: string;
13
13
  currency: "USD" | "RUB" | "EUR";
14
14
  timezoneOffset: number;
15
+ isProjectShowGlobal: boolean;
16
+ isProjectShowYandex: boolean;
15
17
  isMobile: boolean;
16
18
  isMobileUA: boolean;
17
19
  isRetina: boolean;
@@ -43,5 +43,13 @@ declare const _default: {
43
43
  * Для Москвы: -180
44
44
  */
45
45
  timezoneOffset: number;
46
+ /**
47
+ * Отображать ли регион 'Без региона'
48
+ */
49
+ isProjectShowGlobal: boolean;
50
+ /**
51
+ * Отображать ли ПС Яндекс
52
+ */
53
+ isProjectShowYandex: boolean;
46
54
  };
47
55
  export default _default;
@@ -9,6 +9,8 @@ declare const state: {
9
9
  dateFormat: string;
10
10
  currency: "USD" | "RUB" | "EUR";
11
11
  timezoneOffset: number;
12
+ isProjectShowGlobal: boolean;
13
+ isProjectShowYandex: boolean;
12
14
  /**
13
15
  * Device by size
14
16
  *
@@ -42,7 +42,7 @@ declare module '@vue/runtime-core' {
42
42
  TopDialogs: typeof TopDialogs;
43
43
  }
44
44
  }
45
- type CoreOptions = PartialBy<typeof coreDefaultOptions, 'timezoneOffset' | 'documentClassModificators'>;
45
+ type CoreOptions = PartialBy<typeof coreDefaultOptions, 'timezoneOffset' | 'documentClassModificators' | 'isProjectShowGlobal' | 'isProjectShowYandex'>;
46
46
  type Options = CoreOptions & {
47
47
  topPopupOptions?: TopPopupOptions;
48
48
  topDialogOptions?: TopDialogOptions;
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`../.chunks/forms-DByj6MWE.amd`,`../utils/system.amd`,`../utils/route.amd`,`../.chunks/store-DuQpSSLL.amd`,`../.chunks/popup-Cvyqovn6.amd`,`vue`,`../require/css.amd!../assets/tabsView.css`],function(e,t,n,r,i,a,o,s){"use strict";if(c===void 0)var c=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.TopTabsViewMenuTitle=t.TopTabsViewMenuItem=t.TopTabsView=void 0;var l=(e,t)=>`top:${String(e)}:${t}`,u={loadLocalStorge:(e,t)=>{if(!t.$id)return;let n=l(e,t.$id);try{let r=JSON.parse(localStorage.getItem(n));typeof r==typeof t[e]&&(t[e]=r)}catch{console.warn(Error(`В localStorage[${n}] не корректный json`))}},addSaverLocalStorge:(e,t)=>{if(!t.$id)return;let n=l(e,t.$id);(0,s.watch)(()=>t[e],()=>{localStorage.setItem(n,JSON.stringify(t[e]))},{immediate:!0})}},d=new Set;addEventListener(`popstate`,e=>{d.forEach(t=>t(e))});var f=Symbol(),p=(e,t)=>{let r=(0,a.t)(f,()=>({showMenuInPopup:(0,s.computed)(()=>e.showMenuInPopup??n.O.state.isMobile),pageMod:(0,s.computed)(()=>e.pageMod),isShort:(0,s.ref)(!1),activeItemName:t,component:(0,s.ref)(void 0),scrollable:(0,s.ref)(!0)}),e.idState);if(e.isShortable){let e=`isShort`;u.loadLocalStorge(e,r),u.addSaverLocalStorge(e,r)}return r.$id&&d.add(e=>{t.value=(0,i.getHash)(r.$id)}),r},m=()=>(0,a.r)(f),h={key:1,class:`top-ellipsis`},g=(0,s.defineComponent)({__name:`menuItem`,props:{name:{},href:{},icon:{},disabled:{type:Boolean},component:{default:void 0},scrollable:{type:Boolean,default:!0}},setup(e){let t=e,n=m(),r=(0,s.computed)(()=>t.name&&n.$id?(0,i.genHash)(n.$id,t.name):t.href),a=(0,s.computed)(()=>n.showMenuInPopup?o.o:r?`a`:`button`),c=e=>{!t.href&&r.value&&e.preventDefault(),t.name&&(n.activeItemName=t.name)};return(t,i)=>((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)(a.value),{target:`_self`,class:(0,s.normalizeClass)({"top-tabsView_menuItem":!(0,s.unref)(n).showMenuInPopup,"top-active":e.name&&(0,s.unref)(n).activeItemName===e.name,"top-disabled":e.disabled,"top-spa-disabled":!0}),href:r.value,"data-top-icon":e.icon||void 0,disabled:e.disabled||void 0,onClick:c},{default:(0,s.withCtx)(()=>[(0,s.unref)(n).showMenuInPopup?(0,s.renderSlot)(t.$slots,`default`,{key:0}):t.$slots.default&&!(0,s.unref)(n).isShort?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,h,[(0,s.renderSlot)(t.$slots,`default`)])):(0,s.createCommentVNode)(``,!0)]),_:3},8,[`class`,`href`,`data-top-icon`,`disabled`]))}}),_=e=>e?.name===`AsyncComponentWrapper`&&!e?.__asyncResolved,v=async(e,t)=>{e?.name===`AsyncComponentWrapper`&&(e?.__asyncResolved||(e.__asyncLoader(),await(0,r.sleepWhile)(()=>t()&&_(e),200)))},y={class:`top-tabsView_menuOpener`},b=[`data-top-icon`],x={class:`top-ellipsis`},S={class:`top-tabsView_menuList`},C={key:0,class:`top-tabsView_menuFooter`},w=(0,s.defineComponent)({__name:`menu`,props:(0,s.mergeModels)({isShortable:{type:Boolean},isLoading:{type:Boolean}},{isLoading:{},isLoadingModifiers:{}}),emits:[`update:isLoading`],setup(e){let t=(0,s.useModel)(e,`isLoading`),n=m(),r=(0,s.useSlots)(),a=new Map,c=()=>{if(!r.default)return;let e=r.default({}).find(e=>e.key===`_menu`);e&&l(e.children)},l=e=>{e.forEach(e=>{if(e.type.__name&&e.type.__name!==g.__name)return;if(!e.type.__name&&typeof e.children==`object`){l(e.children);return}if(!e.props?.name||e.props?.disabled)return;let t={title:(e.children.default?.()[0].children).trim(),icon:e.props.icon,component:e.props.component?(0,s.markRaw)(e.props.component):g.props.component.default,scrollable:e.props.scrollable??g.props.scrollable.default};a.set(e.props.name,t)})},u=(0,s.ref)(null),d=0;return(0,s.watch)(()=>n.activeItemName,async()=>{let e=++d;if(a.size===0&&c(),a.size===0){n.activeItemName=``;return}if(u.value=a.get(n.activeItemName)??null,!u.value&&n.$id){let e=(0,i.getHash)(n.$id);if(u.value=a.get(e)??null,u.value){n.activeItemName=e;return}}if(!u.value){n.activeItemName=a.keys().next().value;return}if(u.value.component===n.component){t.value=!1;return}n.$id&&(0,i.setHash)(n.$id,n.activeItemName,!1),t.value=!0,await v(u.value.component,()=>e===d),e===d&&(n.scrollable=u.value.scrollable,n.component=u.value.component,u.value&&!n.component&&console.warn(`Компонент вкладки ${n.activeItemName} не найден. Добавьте props.component для пункта меню ${n.activeItemName}.`))},{immediate:!0}),(t,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:(0,s.normalizeClass)({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!(0,s.unref)(n).showMenuInPopup,"top-tabsView_menu-inPopup_1":(0,s.unref)(n).showMenuInPopup,"top-tabsView_menu-short":(0,s.unref)(n).isShort&&!(0,s.unref)(n).showMenuInPopup})},[(0,s.unref)(n).showMenuInPopup?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(o.s),{key:0},{opener:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,y,[u.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:`top-tabsView_menuOpenerActiveItem`,"data-top-icon":u.value.icon},[(0,s.createElementVNode)(`span`,x,(0,s.toDisplayString)(u.value.title),1)],8,b)):(0,s.createCommentVNode)(``,!0),r[1]||=(0,s.createElementVNode)(`div`,{class:`top-tabsView_menuOpenerIcon`,"data-top-icon":``},null,-1)])]),contentList:(0,s.withCtx)(()=>[(0,s.renderSlot)(t.$slots,`default`)]),_:3})):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:1},[(0,s.createElementVNode)(`div`,S,[(0,s.renderSlot)(t.$slots,`default`)]),e.isShortable?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,C,[e.isShortable?((0,s.openBlock)(),(0,s.createBlock)(g,{key:0,icon:(0,s.unref)(n).isShort?``:``,onClick:r[0]||=e=>(0,s.unref)(n).isShort=!(0,s.unref)(n).isShort},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(n).isShort?``:`Свернуть`),1)]),_:1},8,[`icon`])):(0,s.createCommentVNode)(``,!0)])):(0,s.createCommentVNode)(``,!0)],64))],2))}}),T=(0,s.defineComponent)({__name:`tabsView`,props:(0,s.mergeModels)({modelValue:{},pageMod:{type:Boolean},showMenuInPopup:{type:Boolean,default:void 0},isShortable:{type:Boolean,default:!1},idState:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,r=p(t,(0,s.useModel)(e,`modelValue`)),a=Math.random();t.pageMod&&n.O.state.documentClassModificators.set(a,`top-hasTabsViewPageMod`),(0,s.onUnmounted)(()=>{t.pageMod&&n.O.state.documentClassModificators.delete(a),r.$id&&(0,i.delHash)(r.$id,r.activeItemName,!0)});let o=(0,s.ref)(),c=(0,s.ref)(!1);return(0,s.watch)([o,()=>r.component],()=>{c.value=_(r.component)},{immediate:!0}),(i,a)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:(0,s.normalizeClass)({"top-tabsView":!0,"top-tabsView-pageMod":t.pageMod,"top-tabsView-inPopup":(0,s.unref)(r).showMenuInPopup})},[(0,s.createVNode)(w,{isShortable:e.isShortable,isLoading:c.value,"onUpdate:isLoading":a[0]||=e=>c.value=e},{default:(0,s.withCtx)(()=>[(0,s.renderSlot)(i.$slots,`menu`)]),_:3},8,[`isShortable`,`isLoading`]),(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)({"top-tabsView_contents":!0,"top-tabsView_contents-isLoading":c.value,"top-tabsView_contents-noScrollable":!(0,s.unref)(r).scrollable})},[c.value?((0,s.openBlock)(),(0,s.createBlock)(n.l,{key:0})):(0,s.createCommentVNode)(``,!0),((0,s.openBlock)(),(0,s.createBlock)(s.KeepAlive,null,[((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)((0,s.unref)(r).component),{ref_key:`componentRef`,ref:o},null,512))],1024))],2)],2))}}),E={},D={class:`top-tabsView_menuDelimeter`};t.TopTabsViewMenuItem=g,t.TopTabsView=T;function O(e,t){return(0,s.openBlock)(),(0,s.createElementBlock)(`div`,D)}var k=(0,n.u)(E,[[`render`,O]]);t.TopTabsViewMenuTitle=(0,s.defineComponent)({__name:`menuTitle`,props:{isSubtitle:{type:Boolean}},setup(e){let t=m();return(n,r)=>(0,s.unref)(t).showMenuInPopup?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(o.o),{key:0,type:`title`},{default:(0,s.withCtx)(()=>[(0,s.renderSlot)(n.$slots,`default`)]),_:3})):(0,s.unref)(t).isShort?((0,s.openBlock)(),(0,s.createBlock)(k,{key:1})):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:2,class:(0,s.normalizeClass)({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":e.isSubtitle})},[(0,s.renderSlot)(n.$slots,`default`)],2))}})});
1
+ define([`require`,`exports`,`../.chunks/forms-C2ItFa61.amd`,`../utils/system.amd`,`../utils/route.amd`,`../.chunks/store-DuQpSSLL.amd`,`../.chunks/popup-B06vbv6B.amd`,`vue`,`../require/css.amd!../assets/tabsView.css`],function(e,t,n,r,i,a,o,s){"use strict";if(c===void 0)var c=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.TopTabsViewMenuTitle=t.TopTabsViewMenuItem=t.TopTabsView=void 0;var l=(e,t)=>`top:${String(e)}:${t}`,u={loadLocalStorge:(e,t)=>{if(!t.$id)return;let n=l(e,t.$id);try{let r=JSON.parse(localStorage.getItem(n));typeof r==typeof t[e]&&(t[e]=r)}catch{console.warn(Error(`В localStorage[${n}] не корректный json`))}},addSaverLocalStorge:(e,t)=>{if(!t.$id)return;let n=l(e,t.$id);(0,s.watch)(()=>t[e],()=>{localStorage.setItem(n,JSON.stringify(t[e]))},{immediate:!0})}},d=new Set;addEventListener(`popstate`,e=>{d.forEach(t=>t(e))});var f=Symbol(),p=(e,t)=>{let r=(0,a.t)(f,()=>({showMenuInPopup:(0,s.computed)(()=>e.showMenuInPopup??n.O.state.isMobile),pageMod:(0,s.computed)(()=>e.pageMod),isShort:(0,s.ref)(!1),activeItemName:t,component:(0,s.ref)(void 0),scrollable:(0,s.ref)(!0)}),e.idState);if(e.isShortable){let e=`isShort`;u.loadLocalStorge(e,r),u.addSaverLocalStorge(e,r)}return r.$id&&d.add(e=>{t.value=(0,i.getHash)(r.$id)}),r},m=()=>(0,a.r)(f),h={key:1,class:`top-ellipsis`},g=(0,s.defineComponent)({__name:`menuItem`,props:{name:{},href:{},icon:{},disabled:{type:Boolean},component:{default:void 0},scrollable:{type:Boolean,default:!0}},setup(e){let t=e,n=m(),r=(0,s.computed)(()=>t.name&&n.$id?(0,i.genHash)(n.$id,t.name):t.href),a=(0,s.computed)(()=>n.showMenuInPopup?o.o:r?`a`:`button`),c=e=>{!t.href&&r.value&&e.preventDefault(),t.name&&(n.activeItemName=t.name)};return(t,i)=>((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)(a.value),{target:`_self`,class:(0,s.normalizeClass)({"top-tabsView_menuItem":!(0,s.unref)(n).showMenuInPopup,"top-active":e.name&&(0,s.unref)(n).activeItemName===e.name,"top-disabled":e.disabled,"top-spa-disabled":!0}),href:r.value,"data-top-icon":e.icon||void 0,disabled:e.disabled||void 0,onClick:c},{default:(0,s.withCtx)(()=>[(0,s.unref)(n).showMenuInPopup?(0,s.renderSlot)(t.$slots,`default`,{key:0}):t.$slots.default&&!(0,s.unref)(n).isShort?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,h,[(0,s.renderSlot)(t.$slots,`default`)])):(0,s.createCommentVNode)(``,!0)]),_:3},8,[`class`,`href`,`data-top-icon`,`disabled`]))}}),_=e=>e?.name===`AsyncComponentWrapper`&&!e?.__asyncResolved,v=async(e,t)=>{e?.name===`AsyncComponentWrapper`&&(e?.__asyncResolved||(e.__asyncLoader(),await(0,r.sleepWhile)(()=>t()&&_(e),200)))},y={class:`top-tabsView_menuOpener`},b=[`data-top-icon`],x={class:`top-ellipsis`},S={class:`top-tabsView_menuList`},C={key:0,class:`top-tabsView_menuFooter`},w=(0,s.defineComponent)({__name:`menu`,props:(0,s.mergeModels)({isShortable:{type:Boolean},isLoading:{type:Boolean}},{isLoading:{},isLoadingModifiers:{}}),emits:[`update:isLoading`],setup(e){let t=(0,s.useModel)(e,`isLoading`),n=m(),r=(0,s.useSlots)(),a=new Map,c=()=>{if(!r.default)return;let e=r.default({}).find(e=>e.key===`_menu`);e&&l(e.children)},l=e=>{e.forEach(e=>{if(e.type.__name&&e.type.__name!==g.__name)return;if(!e.type.__name&&typeof e.children==`object`){l(e.children);return}if(!e.props?.name||e.props?.disabled)return;let t={title:(e.children.default?.()[0].children).trim(),icon:e.props.icon,component:e.props.component?(0,s.markRaw)(e.props.component):g.props.component.default,scrollable:e.props.scrollable??g.props.scrollable.default};a.set(e.props.name,t)})},u=(0,s.ref)(null),d=0;return(0,s.watch)(()=>n.activeItemName,async()=>{let e=++d;if(a.size===0&&c(),a.size===0){n.activeItemName=``;return}if(u.value=a.get(n.activeItemName)??null,!u.value&&n.$id){let e=(0,i.getHash)(n.$id);if(u.value=a.get(e)??null,u.value){n.activeItemName=e;return}}if(!u.value){n.activeItemName=a.keys().next().value;return}if(u.value.component===n.component){t.value=!1;return}n.$id&&(0,i.setHash)(n.$id,n.activeItemName,!1),t.value=!0,await v(u.value.component,()=>e===d),e===d&&(n.scrollable=u.value.scrollable,n.component=u.value.component,u.value&&!n.component&&console.warn(`Компонент вкладки ${n.activeItemName} не найден. Добавьте props.component для пункта меню ${n.activeItemName}.`))},{immediate:!0}),(t,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:(0,s.normalizeClass)({"top-tabsView_menu":!0,"top-tabsView_menu-inPopup_0":!(0,s.unref)(n).showMenuInPopup,"top-tabsView_menu-inPopup_1":(0,s.unref)(n).showMenuInPopup,"top-tabsView_menu-short":(0,s.unref)(n).isShort&&!(0,s.unref)(n).showMenuInPopup})},[(0,s.unref)(n).showMenuInPopup?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(o.s),{key:0},{opener:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,y,[u.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:`top-tabsView_menuOpenerActiveItem`,"data-top-icon":u.value.icon},[(0,s.createElementVNode)(`span`,x,(0,s.toDisplayString)(u.value.title),1)],8,b)):(0,s.createCommentVNode)(``,!0),r[1]||=(0,s.createElementVNode)(`div`,{class:`top-tabsView_menuOpenerIcon`,"data-top-icon":``},null,-1)])]),contentList:(0,s.withCtx)(()=>[(0,s.renderSlot)(t.$slots,`default`)]),_:3})):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:1},[(0,s.createElementVNode)(`div`,S,[(0,s.renderSlot)(t.$slots,`default`)]),e.isShortable?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,C,[e.isShortable?((0,s.openBlock)(),(0,s.createBlock)(g,{key:0,icon:(0,s.unref)(n).isShort?``:``,onClick:r[0]||=e=>(0,s.unref)(n).isShort=!(0,s.unref)(n).isShort},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(n).isShort?``:`Свернуть`),1)]),_:1},8,[`icon`])):(0,s.createCommentVNode)(``,!0)])):(0,s.createCommentVNode)(``,!0)],64))],2))}}),T=(0,s.defineComponent)({__name:`tabsView`,props:(0,s.mergeModels)({modelValue:{},pageMod:{type:Boolean},showMenuInPopup:{type:Boolean,default:void 0},isShortable:{type:Boolean,default:!1},idState:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,r=p(t,(0,s.useModel)(e,`modelValue`)),a=Math.random();t.pageMod&&n.O.state.documentClassModificators.set(a,`top-hasTabsViewPageMod`),(0,s.onUnmounted)(()=>{t.pageMod&&n.O.state.documentClassModificators.delete(a),r.$id&&(0,i.delHash)(r.$id,r.activeItemName,!0)});let o=(0,s.ref)(),c=(0,s.ref)(!1);return(0,s.watch)([o,()=>r.component],()=>{c.value=_(r.component)},{immediate:!0}),(i,a)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:(0,s.normalizeClass)({"top-tabsView":!0,"top-tabsView-pageMod":t.pageMod,"top-tabsView-inPopup":(0,s.unref)(r).showMenuInPopup})},[(0,s.createVNode)(w,{isShortable:e.isShortable,isLoading:c.value,"onUpdate:isLoading":a[0]||=e=>c.value=e},{default:(0,s.withCtx)(()=>[(0,s.renderSlot)(i.$slots,`menu`)]),_:3},8,[`isShortable`,`isLoading`]),(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)({"top-tabsView_contents":!0,"top-tabsView_contents-isLoading":c.value,"top-tabsView_contents-noScrollable":!(0,s.unref)(r).scrollable})},[c.value?((0,s.openBlock)(),(0,s.createBlock)(n.l,{key:0})):(0,s.createCommentVNode)(``,!0),((0,s.openBlock)(),(0,s.createBlock)(s.KeepAlive,null,[((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)((0,s.unref)(r).component),{ref_key:`componentRef`,ref:o},null,512))],1024))],2)],2))}}),E={},D={class:`top-tabsView_menuDelimeter`};t.TopTabsViewMenuItem=g,t.TopTabsView=T;function O(e,t){return(0,s.openBlock)(),(0,s.createElementBlock)(`div`,D)}var k=(0,n.u)(E,[[`render`,O]]);t.TopTabsViewMenuTitle=(0,s.defineComponent)({__name:`menuTitle`,props:{isSubtitle:{type:Boolean}},setup(e){let t=m();return(n,r)=>(0,s.unref)(t).showMenuInPopup?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(o.o),{key:0,type:`title`},{default:(0,s.withCtx)(()=>[(0,s.renderSlot)(n.$slots,`default`)]),_:3})):(0,s.unref)(t).isShort?((0,s.openBlock)(),(0,s.createBlock)(k,{key:1})):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:2,class:(0,s.normalizeClass)({"top-tabsView_menuTitle":!0,"top-tabsView_menuTitle-subtitle":e.isSubtitle})},[(0,s.renderSlot)(n.$slots,`default`)],2))}})});
2
2
  //# sourceMappingURL=tabsView.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["tabsView/tabsView.js","../../src/core/utils/store/localStorage.ts","../../src/components/tabsView/tabsView/store.ts","../../src/components/tabsView/tabsView/menuItem.vue","../../src/components/tabsView/tabsView/utils.ts","../../src/components/tabsView/tabsView/menu.vue","../../src/components/tabsView/tabsView/tabsView.vue","../../src/components/tabsView/tabsView/menuDelimeter.vue","../../src/components/tabsView/tabsView/menuTitle.vue"],"names":["vue","exports","I","L","vue_1","R","z","B","store_DuQpSSLL_esm_js_1","t","forms_DByj6MWE_esm_js_1","n","route_js_1","V","H","U","i","popup_Cvyqovn6_esm_js_1","o","W","G","system_js_1","K","q","J","Y","X","Z","a","c","l","u","Q","r","s","e","$","ee","te","ne"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-DByj6MWE.esm.js\", \"../utils/system.js\", \"../utils/route.js\", \"../.chunks/store-DuQpSSLL.esm.js\", \"../.chunks/popup-Cvyqovn6.esm.js\", \"vue\"], function (require, exports, forms_DByj6MWE_esm_js_1, system_js_1, route_js_1, store_DuQpSSLL_esm_js_1, popup_Cvyqovn6_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.TopTabsViewMenuTitle = exports.TopTabsViewMenuItem = exports.TopTabsView = void 0;\n //#region src/core/utils/store/localStorage.ts\n var I = (e, t) => `top:${String(e)}:${t}`, L = {\n loadLocalStorge: (e, t) => {\n if (!t.$id)\n return;\n let n = I(e, t.$id);\n try {\n let r = JSON.parse(localStorage.getItem(n));\n typeof r == typeof t[e] && (t[e] = r);\n }\n catch {\n console.warn(/* @__PURE__ */ Error(`В localStorage[${n}] не корректный json`));\n }\n },\n addSaverLocalStorge: (e, t) => {\n if (!t.$id)\n return;\n let n = I(e, t.$id);\n (0, vue_1.watch)(() => t[e], () => {\n localStorage.setItem(n, JSON.stringify(t[e]));\n }, { immediate: !0 });\n }\n }, R = /* @__PURE__ */ new Set();\n addEventListener(\"popstate\", (e) => {\n R.forEach((t) => t(e));\n });\n var z = Symbol(), B = (t, n) => {\n let r = (0, store_DuQpSSLL_esm_js_1.t)(z, () => ({\n showMenuInPopup: (0, vue_1.computed)(() => t.showMenuInPopup ?? forms_DByj6MWE_esm_js_1.O.state.isMobile),\n pageMod: (0, vue_1.computed)(() => t.pageMod),\n isShort: (0, vue_1.ref)(!1),\n activeItemName: n,\n component: (0, vue_1.ref)(void 0),\n scrollable: (0, vue_1.ref)(!0)\n }), t.idState);\n if (t.isShortable) {\n let e = \"isShort\";\n L.loadLocalStorge(e, r), L.addSaverLocalStorge(e, r);\n }\n return r.$id && R.add((e) => {\n n.value = (0, route_js_1.getHash)(r.$id);\n }), r;\n }, V = () => (0, store_DuQpSSLL_esm_js_1.r)(z), H = {\n key: 1,\n class: \"top-ellipsis\"\n }, U = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"menuItem\",\n props: {\n name: {},\n href: {},\n icon: {},\n disabled: { type: Boolean },\n component: { default: void 0 },\n scrollable: {\n type: Boolean,\n default: !0\n }\n },\n setup(e) {\n let t = e, n = V(), r = (0, vue_1.computed)(() => t.name && n.$id ? (0, route_js_1.genHash)(n.$id, t.name) : t.href), i = (0, vue_1.computed)(() => n.showMenuInPopup ? popup_Cvyqovn6_esm_js_1.o : r ? \"a\" : \"button\"), o = (e) => {\n !t.href && r.value && e.preventDefault(), t.name && (n.activeItemName = t.name);\n };\n return (t, a) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(i.value), {\n target: \"_self\",\n class: (0, vue_1.normalizeClass)({\n \"top-tabsView_menuItem\": !(0, vue_1.unref)(n).showMenuInPopup,\n \"top-active\": e.name && (0, vue_1.unref)(n).activeItemName === e.name,\n \"top-disabled\": e.disabled,\n \"top-spa-disabled\": !0\n }),\n href: r.value,\n \"data-top-icon\": e.icon || void 0,\n disabled: e.disabled || void 0,\n onClick: o\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.unref)(n).showMenuInPopup ? (0, vue_1.renderSlot)(t.$slots, \"default\", { key: 0 }) : t.$slots.default && !(0, vue_1.unref)(n).isShort ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"span\", H, [(0, vue_1.renderSlot)(t.$slots, \"default\")])) : (0, vue_1.createCommentVNode)(\"\", !0)]),\n _: 3\n }, 8, [\n \"class\",\n \"href\",\n \"data-top-icon\",\n \"disabled\"\n ]));\n }\n }), W = (e) => e?.name === \"AsyncComponentWrapper\" && !e?.__asyncResolved, G = async (e, t) => {\n e?.name === \"AsyncComponentWrapper\" && (e?.__asyncResolved || (e.__asyncLoader(), await (0, system_js_1.sleepWhile)(() => t() && W(e), 200)));\n }, K = { class: \"top-tabsView_menuOpener\" }, q = [\"data-top-icon\"], J = { class: \"top-ellipsis\" }, Y = { class: \"top-tabsView_menuList\" }, X = {\n key: 0,\n class: \"top-tabsView_menuFooter\"\n }, Z = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"menu\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n isShortable: { type: Boolean },\n isLoading: { type: Boolean }\n }, {\n isLoading: {},\n isLoadingModifiers: {}\n }),\n emits: [\"update:isLoading\"],\n setup(e) {\n let t = (0, vue_1.useModel)(e, \"isLoading\"), n = V(), r = (0, vue_1.useSlots)(), i = /* @__PURE__ */ new Map(), a = () => {\n if (!r.default)\n return;\n let e = r.default({}).find((e) => e.key === \"_menu\");\n e && c(e.children);\n }, c = (e) => {\n e.forEach((e) => {\n if (e.type.__name && e.type.__name !== U.__name)\n return;\n if (!e.type.__name && typeof e.children == \"object\") {\n c(e.children);\n return;\n }\n if (!e.props?.name || e.props?.disabled)\n return;\n let t = {\n title: (e.children.default?.()[0].children).trim(),\n icon: e.props.icon,\n component: e.props.component ? (0, vue_1.markRaw)(e.props.component) : U.props.component.default,\n scrollable: e.props.scrollable ?? U.props.scrollable.default\n };\n i.set(e.props.name, t);\n });\n }, l = (0, vue_1.ref)(null), u = 0;\n return (0, vue_1.watch)(() => n.activeItemName, async () => {\n let e = ++u;\n if (i.size === 0 && a(), i.size === 0) {\n n.activeItemName = \"\";\n return;\n }\n if (l.value = i.get(n.activeItemName) ?? null, !l.value && n.$id) {\n let e = (0, route_js_1.getHash)(n.$id);\n if (l.value = i.get(e) ?? null, l.value) {\n n.activeItemName = e;\n return;\n }\n }\n if (!l.value) {\n n.activeItemName = i.keys().next().value;\n return;\n }\n if (l.value.component === n.component) {\n t.value = !1;\n return;\n }\n n.$id && (0, route_js_1.setHash)(n.$id, n.activeItemName, !1), t.value = !0, await G(l.value.component, () => e === u), e === u && (n.scrollable = l.value.scrollable, n.component = l.value.component, l.value && !n.component && console.warn(`Компонент вкладки ${n.activeItemName} не найден. Добавьте props.component для пункта меню ${n.activeItemName}.`));\n }, { immediate: !0 }), (t, r) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-tabsView_menu\": !0,\n \"top-tabsView_menu-inPopup_0\": !(0, vue_1.unref)(n).showMenuInPopup,\n \"top-tabsView_menu-inPopup_1\": (0, vue_1.unref)(n).showMenuInPopup,\n \"top-tabsView_menu-short\": (0, vue_1.unref)(n).isShort && !(0, vue_1.unref)(n).showMenuInPopup\n }) }, [(0, vue_1.unref)(n).showMenuInPopup ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.unref)(popup_Cvyqovn6_esm_js_1.s), { key: 0 }, {\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", K, [l.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"top-tabsView_menuOpenerActiveItem\",\n \"data-top-icon\": l.value.icon\n }, [(0, vue_1.createElementVNode)(\"span\", J, (0, vue_1.toDisplayString)(l.value.title), 1)], 8, q)) : (0, vue_1.createCommentVNode)(\"\", !0), r[1] ||= (0, vue_1.createElementVNode)(\"div\", {\n class: \"top-tabsView_menuOpenerIcon\",\n \"data-top-icon\": \"\"\n }, null, -1)])]),\n contentList: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(t.$slots, \"default\")]),\n _: 3\n })) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: 1 }, [(0, vue_1.createElementVNode)(\"div\", Y, [(0, vue_1.renderSlot)(t.$slots, \"default\")]), e.isShortable ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", X, [e.isShortable ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(U, {\n key: 0,\n icon: (0, vue_1.unref)(n).isShort ? \"\" : \"\",\n onClick: r[0] ||= (e) => (0, vue_1.unref)(n).isShort = !(0, vue_1.unref)(n).isShort\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(n).isShort ? \"\" : \"Свернуть\"), 1)]),\n _: 1\n }, 8, [\"icon\"])) : (0, vue_1.createCommentVNode)(\"\", !0)])) : (0, vue_1.createCommentVNode)(\"\", !0)], 64))], 2));\n }\n }), Q = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"tabsView\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n modelValue: {},\n pageMod: { type: Boolean },\n showMenuInPopup: {\n type: Boolean,\n default: void 0\n },\n isShortable: {\n type: Boolean,\n default: !1\n },\n idState: {}\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(n) {\n let r = n, a = B(r, (0, vue_1.useModel)(n, \"modelValue\")), o = Math.random();\n r.pageMod && forms_DByj6MWE_esm_js_1.O.state.documentClassModificators.set(o, \"top-hasTabsViewPageMod\"), (0, vue_1.onUnmounted)(() => {\n r.pageMod && forms_DByj6MWE_esm_js_1.O.state.documentClassModificators.delete(o), a.$id && (0, route_js_1.delHash)(a.$id, a.activeItemName, !0);\n });\n let s = (0, vue_1.ref)(), c = (0, vue_1.ref)(!1);\n return (0, vue_1.watch)([s, () => a.component], () => {\n c.value = W(a.component);\n }, { immediate: !0 }), (e, i) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-tabsView\": !0,\n \"top-tabsView-pageMod\": r.pageMod,\n \"top-tabsView-inPopup\": (0, vue_1.unref)(a).showMenuInPopup\n }) }, [(0, vue_1.createVNode)(Z, {\n isShortable: n.isShortable,\n isLoading: c.value,\n \"onUpdate:isLoading\": i[0] ||= (e) => c.value = e\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"menu\")]),\n _: 3\n }, 8, [\"isShortable\", \"isLoading\"]), (0, vue_1.createElementVNode)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-tabsView_contents\": !0,\n \"top-tabsView_contents-isLoading\": c.value,\n \"top-tabsView_contents-noScrollable\": !(0, vue_1.unref)(a).scrollable\n }) }, [c.value ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(forms_DByj6MWE_esm_js_1.l, { key: 0 })) : (0, vue_1.createCommentVNode)(\"\", !0), ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.KeepAlive, null, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)((0, vue_1.unref)(a).component), {\n ref_key: \"componentRef\",\n ref: s\n }, null, 512))], 1024))], 2)], 2));\n }\n }), $ = {}, ee = { class: \"top-tabsView_menuDelimeter\" };\n exports.TopTabsViewMenuItem = U;\n exports.TopTabsView = Q;\n function te(e, t) {\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", ee);\n }\n var ne = /* @__PURE__ */ (0, forms_DByj6MWE_esm_js_1.u)($, [[\"render\", te]]), re = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"menuTitle\",\n props: { isSubtitle: { type: Boolean } },\n setup(e) {\n let t = V();\n return (n, r) => (0, vue_1.unref)(t).showMenuInPopup ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.unref)(popup_Cvyqovn6_esm_js_1.o), {\n key: 0,\n type: \"title\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(n.$slots, \"default\")]),\n _: 3\n })) : (0, vue_1.unref)(t).isShort ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(ne, { key: 1 })) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 2,\n class: (0, vue_1.normalizeClass)({\n \"top-tabsView_menuTitle\": !0,\n \"top-tabsView_menuTitle-subtitle\": e.isSubtitle\n })\n }, [(0, vue_1.renderSlot)(n.$slots, \"default\")], 2));\n }\n });\n exports.TopTabsViewMenuTitle = re;\n});\n//# sourceMappingURL=tabsView.js.map\n","import { watch } from 'vue';\nimport type { Store } from './store';\n\n/**\n * Сгенерировать имя для сохранения данных в localStorage\n * @param stateName - имя свойства состояния\n * @param stateKey - ключ состояния, разные компоненты могут использовать одинаковый ключ\n */\nconst genStorageKey = <T extends Store>(stateName: keyof T, stateKey: string): string => {\n\tconst stateNameString = String(stateName);\n\n\treturn `top:${stateNameString}:${stateKey}`;\n};\n\n/**\n * Загрузить состояние\n * @param stateName - имя свойства состояния\n * @param store\n */\nconst loadLocalStorge = <T extends Store>(stateName: keyof T, store: T) => {\n\t// если Store.key не знадан, значит сохранение состояния в компоненте отключено\n\tif (!store.$id) return;\n\n\tconst localStorageKey = genStorageKey(stateName, store.$id);\n\n\ttry {\n\t\tconst localStorageValue: typeof store[keyof typeof store] = JSON.parse(localStorage.getItem(localStorageKey) as string);\n\n\t\tif (typeof localStorageValue === typeof store[stateName]) {\n\t\t\tstore[stateName] = localStorageValue;\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(new Error(`В localStorage[${localStorageKey}] не корректный json`));\n\t}\n};\n\n/**\n * Добавить автосохранение состояние при его изменении\n * @param stateName - имя свойства состояния\n * @param store\n */\nconst addSaverLocalStorge = <T extends Store>(stateName: keyof T, store: T) => {\n\t// если store.$id не знадан, значит сохранение состояния в компоненте отключено\n\tif (!store.$id) return;\n\n\tconst localStorageKey = genStorageKey(stateName, store.$id);\n\n\twatch(() => store[stateName], () => {\n\t\tlocalStorage.setItem(localStorageKey, JSON.stringify(store[stateName]));\n\t}, { immediate: true });\n};\n\nexport default {\n\tloadLocalStorge,\n\taddSaverLocalStorge,\n};","import type { InjectionKey, ModelRef, UnwrapNestedRefs } from 'vue';\nimport { computed, ref } from 'vue';\nimport Core from '@/core/core/core';\nimport { defineStore, useStore, type Store as DefineStore } from '@/core/utils/store';\nimport StoreLocalStorage from '@/core/utils/store/localStorage';\nimport type { Props, Store } from './types';\nimport { getHash } from '@/core/utils/route';\n\nconst popstateCallbacks = new Set<(e: PopStateEvent) => void>();\n\naddEventListener('popstate', (e) => {\n\tpopstateCallbacks.forEach(popstateCallback => popstateCallback(e));\n});\n\nexport const injectionKey = Symbol() as InjectionKey<Store>;\n\n/**\n * Инициировать Store компонента\n */\nexport const defineTabsStore = (props: Props, model: ModelRef<string | undefined>): UnwrapNestedRefs<Store> & DefineStore => {\n\tconst store = defineStore(injectionKey, () => {\n\t\tconst showMenuInPopup = computed(() => props.showMenuInPopup ?? Core.state.isMobile);\n\t\tconst pageMod = computed(() => props.pageMod);\n\t\tconst isShort = ref(false);\n\n\t\tconst component = ref(undefined);\n\t\tconst scrollable = ref(true);\n\n\t\treturn {\n\t\t\tshowMenuInPopup,\n\t\t\tpageMod,\n\t\t\tisShort,\n\t\t\tactiveItemName: model,\n\t\t\tcomponent,\n\t\t\tscrollable,\n\t\t};\n\t}, props.idState);\n\n\tif (props.isShortable) {\n\t\tconst stateName = 'isShort';\n\n\t\tStoreLocalStorage.loadLocalStorge(stateName, store);\n\t\tStoreLocalStorage.addSaverLocalStorge(stateName, store);\n\t}\n\n\tif (store.$id) {\n\t\tconst popstateCallback = (_e: PopStateEvent) => {\n\t\t\tmodel.value = getHash(store.$id!);\n\t\t};\n\n\t\tpopstateCallbacks.add(popstateCallback);\n\t}\n\n\treturn store;\n};\n\n/**\n * Получить Store компонента\n */\nexport const useTabsStore = () => useStore(injectionKey);\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { genHash } from '@/core/utils/route';\nimport { TopPopupListItem } from '@/components/popup/popup';\nimport { useTabsStore } from './store';\nimport type { PropsMenuItem } from './types';\n\nconst props = withDefaults(defineProps<PropsMenuItem>(), {\n\tscrollable: true,\n\tcomponent: undefined,\n});\n\nconst store = useTabsStore();\n\nconst href = computed(() => {\n\t// это внутренняя хеш навигация, ссылка на вкладку\n\tif (props.name && store.$id) {\n\t\treturn genHash(store.$id, props.name);\n\t}\n\n\treturn props.href;\n});\n\nconst tagName = computed(() => {\n\tif (store.showMenuInPopup) {\n\t\treturn TopPopupListItem;\n\t}\n\n\treturn href ? 'a' : 'button';\n});\n\n/**\n * Клик по элементу меню\n */\nconst onClick = (e: MouseEvent) => {\n\t// это внутренняя хеш навигация, ссылка на вкладку\n\tif (!props.href && href.value) {\n\t\te.preventDefault();\n\t}\n\n\tif (props.name) {\n\t\tstore.activeItemName = props.name;\n\t}\n};\n</script>\n\n<template>\n\t<component\n\t\t:is=\"tagName\"\n\t\ttarget=\"_self\"\n\t\t:class=\"{\n\t\t\t['top-tabsView_menuItem']: !store.showMenuInPopup,\n\t\t\t['top-active']: name && store.activeItemName === name,\n\t\t\t['top-disabled']: disabled,\n\t\t\t['top-spa-disabled']: true,\n\t\t}\"\n\t\t:href=\"href\"\n\t\t:data-top-icon=\"icon || undefined\"\n\t\t:disabled=\"disabled || undefined\"\n\t\t@click=\"onClick\"\n\t>\n\t\t<slot name=\"default\" v-if=\"store.showMenuInPopup\"></slot>\n\n\t\t<span\n\t\t\tv-else-if=\"$slots.default && !store.isShort\"\n\t\t\tclass=\"top-ellipsis\"\n\t\t>\n\t\t\t<slot name=\"default\"></slot>\n\t\t</span>\n\t</component>\n</template>\n\n<style>\n.top-tabsView_menuItem {\n\t--top-icon-color: var(--color-text-2);\n\t--top-icon-width: calc(var(--top-icon-size));\n\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\n\tborder: none;\n\tborder-radius: var(--top-radius-2);\n\tpadding: var(--top-padding-2);\n\tbackground: transparent;\n\theight: 40px;\n\n\tcolor: var(--color-text-1);\n\ttext-decoration: none;\n\twhite-space: nowrap;\n\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n\talign-items: center;\n\tjustify-content: flex-start;\n\ttransition: background var(--transition);\n}\n\n.top-tabsView_menuItem:hover {\n\t--top-icon-color: var(--color-text-1);\n\n\tbackground: var(--color-bg-shading-1);\n\ttext-decoration: none;\n}\n\n.top-tabsView_menuItem.top-active {\n\t--top-icon-color: inherit;\n\n\tbackground: var(--color-layout-front-1);\n\tcolor: inherit;\n}\n\n.top-tabsView_menuItem:disabled:not(option):not(optgroup):not(.top-forms-option),\n.top-tabsView_menuItem:disabled ~ .top-formsCaption,\n.top-tabsView_menuItem.top-disabled[data-top-icon]:before,\n.top-tabsView_menuItem.top-disabled[data-top-icon2]:after {\n\topacity: unset;\n\tfilter: unset;\n}\n\n.top-tabsView_menuItem.top-disabled {\n\t--top-icon-color: var(--color-text-4);\n\n\tcolor: var(--color-text-4);\n}\n</style>\n","// TODO: Эту функцию можно вынести в глобальный utils\n\nimport { sleepWhile } from '@/core/utils/system';\n\n/**\n * Проверка нахождения компонента в состояние загрузки\n * @param component\n */\nexport const checkComponentIsLoading = (component: any) => {\n\treturn component?.name === 'AsyncComponentWrapper' && !component?.__asyncResolved;\n};\n\n/**\n * Презагрузить компонент\n *\n * Некоторое время ожидает загрузку компонента, прежде чем завершит работу\n */\nexport const preResolveComponent = async (component: any, condition: Function) => {\n\tif (component?.name !== 'AsyncComponentWrapper') return;\n\tif (component?.__asyncResolved) return;\n\n\tcomponent.__asyncLoader();\n\n\tawait sleepWhile(() => {\n\t\treturn condition() && checkComponentIsLoading(component);\n\t}, 200);\n};\n","<script setup lang=\"ts\">\nimport type { Ref, VNode } from 'vue';\nimport { markRaw, ref, useSlots, watch } from 'vue';\nimport { TopPopup } from '../../popup/popup';\nimport { getHash, setHash } from '@/core/utils/route';\n\nimport type { MenuItem, PropsMenu, PropsMenuItem } from './types';\nimport { useTabsStore } from './store';\nimport TabsViewMenuItem from './menuItem.vue';\nimport { preResolveComponent } from './utils';\n\ndefineProps<PropsMenu>();\n\nconst isLoading = defineModel('isLoading');\n\nconst store = useTabsStore();\n\nconst slots = useSlots();\n\n// словарь используется для оптимизации получения нужного menuItem\nconst menuItemByName: Map<PropsMenuItem['name'], MenuItem> = new Map();\n\n// заполнить словарь с menuItem, по элементам в slot default\nconst setMenuItemByName = () => {\n\tif (!slots.default) return;\n\n\tconst component: any = slots.default({}).find(item => item.key === '_menu');\n\tif (!component) return;\n\n\tsetMenuItemByNameFromItems(component.children);\n};\n\n// заполнить словарь с menuItem, по элементам\nconst setMenuItemByNameFromItems = (menuItems: VNode[]) => {\n\tmenuItems.forEach((subComponent: any) => {\n\t\t// это не компонент элемента меню\n\t\tif (subComponent.type.__name && subComponent.type.__name !== TabsViewMenuItem.__name) return;\n\n\t\t// это не компонент, например template\n\t\tif (!subComponent.type.__name && typeof subComponent.children === 'object') {\n\t\t\tsetMenuItemByNameFromItems(subComponent.children);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!subComponent.props?.name || subComponent.props?.disabled) return;\n\n\t\tconst menuItem: MenuItem = {\n\t\t\ttitle: (subComponent.children.default?.()[0].children as string).trim(),\n\t\t\ticon: subComponent.props.icon,\n\t\t\tcomponent: subComponent.props.component ? markRaw(subComponent.props.component) : TabsViewMenuItem.props.component.default,\n\t\t\tscrollable: subComponent.props.scrollable ?? TabsViewMenuItem.props.scrollable.default,\n\t\t};\n\n\t\tmenuItemByName.set(subComponent.props.name, menuItem);\n\t});\n};\n\n/**\n * activeMenuItem нужен:\n * - для вывода текста активной вкладки в меню с popup\n * - для вывода компонента активной вкладки (store.component)\n * - для установки store.scrollable\n */\nconst activeMenuItem: Ref<MenuItem | null> = ref(null);\n\n/**\n * Кол-во изменений активной вкладки\n */\nlet countChanged = 0;\n\n/**\n * Смена активной вкладки\n *\n * TODO: смена slot, например смена языка, требует повторного выполнения setMenuItemByName()\n */\nwatch(\n\t() => store.activeItemName,\n\tasync () => {\n\t\tconst numberChanged = ++countChanged; // порядковый номер текущего изменения\n\n\t\tif (menuItemByName.size === 0) {\n\t\t\tsetMenuItemByName();\n\t\t}\n\n\t\tif (menuItemByName.size === 0) {\n\t\t\tstore.activeItemName = '';\n\n\t\t\treturn;\n\t\t}\n\n\t\tactiveMenuItem.value = menuItemByName.get(store.activeItemName) ?? null;\n\n\t\t// элемент не найден, установить из хеша страницы\n\t\tif (!activeMenuItem.value && store.$id) {\n\t\t\tconst activeItemName = getHash(store.$id);\n\n\t\t\tactiveMenuItem.value = menuItemByName.get(activeItemName) ?? null;\n\n\t\t\tif (activeMenuItem.value) {\n\t\t\t\tstore.activeItemName = activeItemName;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// элемент не найден, установить первый доступный\n\t\tif (!activeMenuItem.value) {\n\t\t\tstore.activeItemName = menuItemByName.keys().next().value!;\n\n\t\t\treturn;\n\t\t}\n\n\t\t// запрошена смена на уже активный элемент\n\t\tif (activeMenuItem.value.component === store.component) {\n\t\t\tisLoading.value = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (store.$id) setHash(store.$id, store.activeItemName, false);\n\n\t\t// флаг загрузки будет сброшен при инициализации компонента\n\t\tisLoading.value = true;\n\n\t\t/**\n\t\t * Презагрузить компонент\n\t\t *\n\t\t * Нужно для того, чтобы минимизировать скачки интерфейса при ожидании загрузки асинхронного компонента\n\t\t */\n\t\tawait preResolveComponent(activeMenuItem.value.component, () => numberChanged === countChanged);\n\n\t\t// влкадка была сменена еще раз во время sleepWhile\n\t\tif (numberChanged !== countChanged) {\n\t\t\treturn;\n\t\t}\n\n\t\tstore.scrollable = activeMenuItem.value.scrollable;\n\t\tstore.component = activeMenuItem.value.component;\n\n\t\tif (activeMenuItem.value && !store.component) {\n\t\t\tconsole.warn(`Компонент вкладки ${store.activeItemName} не найден. Добавьте props.component для пункта меню ${store.activeItemName}.`);\n\t\t}\n\t},\n\t{ immediate: true },\n);\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabsView_menu': true,\n\t\t\t'top-tabsView_menu-inPopup_0': !store.showMenuInPopup,\n\t\t\t'top-tabsView_menu-inPopup_1': store.showMenuInPopup,\n\t\t\t'top-tabsView_menu-short': store.isShort && !store.showMenuInPopup,\n\t\t}\"\n\t>\n\t\t<!-- Спрятать меню под кнопку в popup -->\n\t\t<TopPopup v-if=\"store.showMenuInPopup\">\n\t\t\t<template #opener>\n\t\t\t\t<div class=\"top-tabsView_menuOpener\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"activeMenuItem\"\n\t\t\t\t\t\tclass=\"top-tabsView_menuOpenerActiveItem\"\n\t\t\t\t\t\t:data-top-icon=\"activeMenuItem.icon\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ activeMenuItem.title }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"top-tabsView_menuOpenerIcon\" data-top-icon=\"\"></div>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #contentList>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</TopPopup>\n\n\t\t<!-- Отобразить меню на странице -->\n\t\t<template v-else>\n\t\t\t<div class=\"top-tabsView_menuList\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tv-if=\"isShortable\"\n\t\t\t\tclass=\"top-tabsView_menuFooter\"\n\t\t\t>\n\t\t\t\t<TabsViewMenuItem\n\t\t\t\t\tv-if=\"isShortable\"\n\t\t\t\t\t:icon=\"store.isShort ? '' : ''\"\n\t\t\t\t\t@click=\"store.isShort = !store.isShort\"\n\t\t\t\t>\n\t\t\t\t\t{{ store.isShort ? '' : 'Свернуть' }} <!--TODO: translate-->\n\t\t\t\t</TabsViewMenuItem>\n\t\t\t</div>\n\t\t</template>\n\t</div>\n</template>\n\n<style>\n/* режим отображение табов в основной области документа */\n.top-tabsView-pageMod .top-tabsView_menu {\n\tbox-sizing: border-box;\n\tposition: sticky;\n\ttop: var(--top-tabsView-top);\n\tz-index: 10;\n}\n\n/* режим отображение табов в основной области документа без popup */\n.top-tabsView-pageMod .top-tabsView_menu-inPopup_0 {\n\theight: calc(var(--100vh) - var(--top-tabsView-top));\n}\n\n/* стантартный режим */\n.top-tabsView_menu-inPopup_0 {\n\tbox-sizing: border-box;\n\twidth: var(--top-tabsView-menu-width);\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tflex-shrink: 0;\n}\n\n/* режим вывода в popup */\n.top-tabsView_menu-inPopup_1 {\n\tborder-bottom: var(--top-tabsView-menu-border-bottom-width) solid var(--color-line-2-opacity);\n}\n\n.top-tabsView_menu-short {\n\twidth: auto;\n}\n\n.top-tabsView_menu > .top-tabsView_menuOpener {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n}\n\n.top-tabsView_menu > .top-tabsView_menuOpener:hover {\n\tbackground: var(--color-layer-1);\n}\n\n.top-tabsView_menuOpenerIcon { display: flex; }\n\n.top-tabsView_menuOpenerActiveItem {\n\t--top-forms-padding: 0px;\n\n\tbox-sizing: border-box;\n\tpadding: var(--top-tabsView-menu-opener-padding);\n\tmax-width: calc(100% - var(--top-forms-base-height));\n\twhite-space: nowrap;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--top-padding-2);\n}\n\n.top-tabsView_menuList,\n.top-tabsView_menuFooter {\n\tpadding: var(--top-padding-2);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-2);\n}\n\n.top-tabsView_menuList {\n\toverflow-y: auto;\n}\n\n.top-tabsView_menu-short .top-tabsView_menuFooter > .top-tabsView_menuItem {\n\t--top-icon-width: 100%;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { defineModel, onUnmounted, ref, watch } from 'vue';\nimport Core from '@/core/core/core';\nimport { delHash } from '@/core/utils/route';\nimport type { Props } from './types';\nimport { defineTabsStore } from './store';\nimport TabsViewMenu from './menu.vue';\nimport TopLoadbar from '@/components/forms/loadbar/loadbar.vue';\nimport { checkComponentIsLoading } from './utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tshowMenuInPopup: undefined,\n\tisShortable: false,\n});\n\nconst model = defineModel<string>();\n\nconst store = defineTabsStore(props, model);\n\nconst uid = Math.random();\n\nif (props.pageMod) Core.state.documentClassModificators.set(uid, 'top-hasTabsViewPageMod');\n\nonUnmounted(() => {\n\tif (props.pageMod) Core.state.documentClassModificators.delete(uid);\n\n\tif (store.$id) delHash(store.$id, store.activeItemName, true);\n});\n\nconst componentRef = ref();\nconst isLoading = ref(false);\n\nwatch([componentRef, () => store.component], () => {\n\tisLoading.value = checkComponentIsLoading(store.component);\n}, { immediate: true });\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabsView': true,\n\t\t\t'top-tabsView-pageMod': props.pageMod,\n\t\t\t'top-tabsView-inPopup': store.showMenuInPopup,\n\t\t}\"\n\t>\n\t\t<TabsViewMenu\n\t\t\t:isShortable=\"isShortable\"\n\t\t\tv-model:isLoading=\"isLoading\"\n\t\t>\n\t\t\t<!-- @slot Меню, ожидает передачу компонентов TabsViewMenuItem и TabsViewMenuTitle -->\n\t\t\t<slot name=\"menu\"></slot>\n\t\t</TabsViewMenu>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-tabsView_contents': true,\n\t\t\t\t'top-tabsView_contents-isLoading': isLoading,\n\t\t\t\t'top-tabsView_contents-noScrollable': !store.scrollable,\n\t\t\t}\"\n\t\t>\n\t\t\t<TopLoadbar v-if=\"isLoading\"/>\n\n\t\t\t<keep-alive>\n\t\t\t\t<component\n\t\t\t\t\tref=\"componentRef\"\n\t\t\t\t\t:is=\"store.component\"\n\t\t\t\t/>\n\t\t\t</keep-alive>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n:root {\n\t--top-tabsView-top: 0px;\n\t--top-tabsView-menu-width: 220px;\n\t--top-tabsView-contents-offset-top: 0px;\n\t--top-tabsView-menu-border-bottom-width: 1px;\n\t--top-tabsView-menu-opener-padding: var(--top-padding-2);\n}\n\n.top-tabsView {\n\tbackground: var(--color-layout-middle);\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: row;\n}\n\n.top-tabsView_contents {\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-4);\n\tflex-grow: 1;\n\toverflow: auto;\n\tposition: relative;\n}\n\n.top-tabsView_contents-isLoading {\n\tpointer-events: none;\n}\n\n.top-tabsView_contents-noScrollable {\n\twidth: calc(100% - var(--top-tabsView-menu-width));\n\tpadding: 0;\n\toverflow: visible;\n}\n\n/* top-tabsView-inPopup */\n.top-tabsView-inPopup {\n\tbackground: var(--color-layout-front-1);\n\tflex-direction: column;\n}\n\n.top-tabsView-inPopup > .top-tabsView_contents {\n\tborder-radius: 0;\n}\n\n.top-tabsView-inPopup > .top-tabsView_contents-noScrollable {\n\twidth: auto;\n}\n\n@media only screen and (max-width: 900px) {\n\t:root {\n\t\t/* Суммарно должна быть высота элемента \".top-tabsView_menu\" */\n\t\t--top-tabsView-contents-offset-top: calc(var(--top-icon-size) + var(--top-tabsView-menu-opener-padding) * 2 + var(--top-tabsView-menu-border-bottom-width));\n\t}\n}\n</style>\n","<script setup lang=\"ts\">\n\n</script>\n\n<template>\n\t<div class=\"top-tabsView_menuDelimeter\"></div>\n</template>\n\n<style>\n.top-tabsView_menuDelimeter {\n\tpadding: var(--top-padding-1) 0;\n\tdisplay: flex;\n}\n\n.top-tabsView_menuDelimeter:before {\n\tcontent: \"\";\n\theight: 2px;\n\tbackground: var(--color-line-2);\n\tflex-grow: 1;\n}\n\n.top-tabsView_menuDelimeter:first-child,\n.top-tabsView_menuDelimeter + .top-tabsView_menuDelimeter {\n\tdisplay: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTabsStore } from './store';\nimport type { PropsMenuTitle } from './types';\nimport TabsViewMenuDelimeter from './menuDelimeter.vue';\nimport { TopPopupListItem } from '../../popup/popup';\n\ndefineProps<PropsMenuTitle>();\n\nconst store = useTabsStore();\n</script>\n\n<template>\n\t<TopPopupListItem\n\t\tv-if=\"store.showMenuInPopup\"\n\t\ttype=\"title\"\n\t>\n\t\t<slot></slot>\n\t</TopPopupListItem>\n\n\t<TabsViewMenuDelimeter v-else-if=\"store.isShort\"/>\n\n\t<div\n\t\tv-else\n\t\t:class=\"{\n\t\t\t'top-tabsView_menuTitle': true,\n\t\t\t'top-tabsView_menuTitle-subtitle': isSubtitle,\n\t\t}\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-tabsView_menuTitle {\n\tpadding: var(--top-padding-4) var(--top-padding-2) var(--top-padding-1);\n\tfont-weight: 600;\n\tcolor: var(--color-text-1);\n}\n\n.top-tabsView_menuTitle-subtitle {\n\tpadding-top: var(--top-padding-1);\n\tfont-size: 12px;\n\tfont-weight: 400;\n\tcolor: var(--color-text-2);\n}\n</style>\n"]}
1
+ {"version":3,"sources":["tabsView/tabsView.js","../../src/core/utils/store/localStorage.ts","../../src/components/tabsView/tabsView/store.ts","../../src/components/tabsView/tabsView/menuItem.vue","../../src/components/tabsView/tabsView/utils.ts","../../src/components/tabsView/tabsView/menu.vue","../../src/components/tabsView/tabsView/tabsView.vue","../../src/components/tabsView/tabsView/menuDelimeter.vue","../../src/components/tabsView/tabsView/menuTitle.vue"],"names":["vue","exports","I","L","vue_1","R","z","B","store_DuQpSSLL_esm_js_1","t","forms_C2ItFa61_esm_js_1","n","route_js_1","V","H","U","i","popup_B06vbv6B_esm_js_1","o","W","G","system_js_1","K","q","J","Y","X","Z","a","c","l","u","Q","r","s","e","$","ee","te","ne"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAoC,sBAAsB,qBAAqB,gCAAoC,gCAAoC,MAAK,4CAAA,CAAA,SAAa,EAAS,EAAS,EAAyB,EAAa,EAAY,EAAyB,EAAyB,EAAO,CAChU,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,qBAAuB,EAAQ,oBAAsB,EAAQ,YAAc,IAAK,GAExF,IAAIC,GAAK,EAAG,IAAM,OAAO,OAAO,EAAE,CAAC,GAAG,IAAKC,EAAI,CAC3C,iBAAkB,EAAG,IAAM,CCEyB,GAAA,CAAA,EAGpD,IA0CP,OAhCW,IAAK,EAAAD,EAAA,EAAA,EAAA,IAAA,CAEsB,GAAW,CAE7C,IAAA,EAAA,KAAA,MAAA,aAAA,QAAA,EAAA,CAAA,CAC8D,OAAM,GAAA,OAAa,EAAA,KAAQ,EAA2B,GAAA,QAK5G,CACE,QAAA,KAAU,MAAA,kBAAkC,EAAA,sBAAuB,CAAA,GAsBjF,qBAbiE,EAAa,IAAA,CAEnE,GAAK,CAAA,EAAA,IAEiC,OAE/B,IAAA,EAAAA,EAAkB,EAAA,EAAA,IAAA,EACnC,EAAaE,EAAA,WAA8B,EAAA,OAA2B,CAClE,aAAkB,QAAA,EAAA,KAAA,UAAA,EAAA,GAAA,CAAA,EDzBT,CAAE,UAAW,CAAC,EAAG,CAAC,EEdjC,CAAAC,EAAiB,IAAa,IACX,iBAA6C,WAAG,GAAA,CACjEA,EAAA,QAAA,GAAA,EAAA,EAAA,CAAA,EAEW,CAMZ,IAAMC,EAAoB,QAAA,CAQlBC,GAAA,EAAA,IAAA,CACN,IAAA,GAAA,EARuBC,EAAqB,GAAAF,OAA8B,CAC3D,iBAA6B,EAAAF,EAAA,cAAAK,EAAA,iBAAAC,EAAA,EAAA,MAAA,SAAA,CAC7B,SAAU,EAAAN,EAAA,cAAAK,EAAA,QAAA,CASzB,SAAgB,EAAAL,EAAA,KAAA,CAAA,EAAA,CAChB,eAR+BO,EAS/B,WAR2B,EAAAP,EAAA,KAAA,IAAA,GAAA,CAUpB,YAAQ,EAAAA,EAAA,KAAA,CAAA,EAAA,CAEP,EAAAK,EAAA,QAAa,CAChB,GAAYA,EAAA,YAAA,CAEA,IAAA,EAAgB,UFAxBN,EAAE,gBAAgB,EAAG,EAAE,CAAEA,EAAE,oBAAoB,EAAG,EAAE,CEMvD,OAAgB,EAAM,KAAKE,EAAA,IAAA,GAAA,CAM5B,EAAA,OAAA,EAAAO,EAAA,SAAA,EAAA,IAAA,EAMK,CAAA,GFbNC,OAAW,EAAGL,EAAwB,GAAGF,EAAE,CAAEQ,EAAI,CAChD,IAAK,EACL,MAAO,eACV,CAAEC,GAAqB,EAAGX,EAAM,iBAAiB,CAC9C,OAAQ,WACR,MAAO,CACH,KAAM,EAAE,CACR,KAAM,EAAE,CACR,KAAM,EAAE,CACR,SAAU,CAAE,KAAM,QAAS,CAC3B,UAAW,CAAE,QAAS,IAAK,GAAG,CAC9B,WAAY,CACR,KAAM,QACN,QAAS,CAAC,EACd,CACH,CGtDH,MAKA,EAAQ,CAwBF,IAAa,EAAA,EAAA,EACrBS,GAAA,CAAA,GAAA,EAAAT,EAGC,cACG,EAAA,MAAA,EAAA,KAAuB,EAAAQ,EAAA,SAAA,EAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAAI,GAAA,EAAAZ,EAAA,cAAA,EAAA,gBAAAa,EAAA,EAAA,EAAA,IAAA,SAAA,CAAAC,EAAA,GAAA,CHuBf,CAAC,EAAE,MAAQ,EAAE,OAAS,EAAE,gBAAgB,CAAE,EAAE,OAAS,EAAE,eAAiB,EAAE,OGfjF,OAAA,EAAA,MAAA,EAAAd,EAAA,YAAA,EAAA,EAAAA,EAAA,cAAA,EAAAA,EAAA,yBAAAY,EAAA,MAAA,CAAA,CACD,OAAA,QHkBQ,OAAQ,EAAGZ,EGlBgB,gBAAM,CAAoC,wBAAc,EAAA,EAAAA,EAAmB,OAAA,EAAA,CAAA,gBAA2B,aAAA,EAAA,OAAA,EAAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,KHqB7H,eAAgB,EAAE,SAClB,mBAAoB,CAAC,EGhBhC,CAAA,CACN,KAAe,EAAA,MACL,gBAAY,EAAA,MAAA,IAAA,GACf,SAAA,EAAA,UAAA,IAAA,GHkBM,QAASc,EACZ,CAAE,CACC,SAAU,EAAGd,EAAM,aAAe,EAAE,EAAGA,EAAM,OAAO,EAAE,CAAC,iBAAmB,EAAGA,EAAM,YAAY,EAAE,OAAQ,UAAW,CAAE,IAAK,EAAG,CAAC,CAAG,EAAE,OAAO,SAAW,EAAE,EAAGA,EAAM,OAAO,EAAE,CAAC,UAAY,EAAGA,EAAM,YAAY,EAAG,EAAGA,EAAM,oBAAoB,OAAQU,EAAG,EAAE,EAAGV,EAAM,YAAY,EAAE,OAAQ,UAAU,CAAC,CAAC,GAAK,EAAGA,EAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,CAAC,CAC/U,EAAG,EACN,CAAE,EAAG,CACF,QACA,OACA,gBACA,WACH,CAAC,GIpEE,CAAA,CAAAe,EAAS,GAAA,GAAA,OAAA,yBACT,CAAA,GAAA,gBAELC,EAEV,MAAM,EAAA,IACE,CJiED,GAAG,OAAS,0BAA4B,GAAG,kBAAoB,EAAE,eAAe,CAAE,MAAO,EAAGC,EAAY,gBAAkB,GAAG,EAAIF,EAAE,EAAE,CAAE,IAAI,IAC5IG,EAAI,CAAE,MAAO,0BAA2B,CAAEC,EAAI,CAAC,gBAAgB,CAAEC,EAAI,CAAE,MAAO,eAAgB,CAAEC,EAAI,CAAE,MAAO,wBAAyB,CAAEC,EAAI,CAC3I,IAAK,EACL,MAAO,0BACV,CAAEC,GAAqB,EAAGvB,EAAM,iBAAiB,CAC9C,OAAQ,OACR,OAAwB,EAAGA,EAAM,aAAa,CAC1C,YAAa,CAAE,KAAM,QAAS,CAC9B,UAAW,CAAE,KAAM,QAAQ,CAC9B,CAAE,CACC,UAAW,EAAE,CACb,mBAAoB,EAAC,CACxB,CAAC,CACF,MAAO,CAAC,mBAAmB,CKzF7B,MAAuB,EAAC,CAWlB,IAAA,GAAS,EAAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAAS,GAAA,CAAA,GAAA,EAAAT,EAAA,WAAA,CAAAY,EAAA,IAAA,IAAAY,MAAA,CAES,GAAA,CAAQ,EAAE,QAGF,OAIqB,IAAA,EAAA,EAAA,QAAA,EAAA,CAAA,CAAA,KAAA,GAAA,EAAA,MAAA,QAAA,CACvC,GAAsBC,EAAA,EAAA,SAAA,EAElBA,EAAA,GAAU,CAGT,EAAA,QAAU,GAAO,CACU,GAAA,EAAA,KAAA,QAAA,EAAA,KAAA,SAAAd,EAAA,OAEjD,OLuEiB,GAAI,CAAC,EAAE,KAAK,QAAU,OAAO,EAAE,UAAY,SAAU,CKpE9Cc,EAAQ,EAAa,SAAO,CAE1B,OAED,GAAA,CAAA,EAAA,OAAA,MAAA,EAAA,OAAA,SACK,OACL,IAAA,EAAM,CAC/B,OAAA,EAAA,SAAA,WAAA,CAAA,GAAA,UAAA,MAAA,CAE2C,KAAS,EAAA,MAAA,KACpD,UAAA,EAAA,MAAA,WAAA,EAAAzB,EAAA,SAAA,EAAA,MAAA,UAAA,CAAAW,EAAA,MAAA,UAAA,QAcgB,WAAA,EAAA,MAAA,YAAAA,EAAA,MAAA,WAAA,QAQN,CAEaC,EAAA,IAAA,EAAA,MAAA,KAAA,EAAA,EAEI,EAKrBc,GAAA,EAAiB1B,EAAA,KAAA,KAAA,CAAA2B,EAAA,EAEvB,OAAA,EAAA3B,EAAA,WAAA,EAAA,eAAA,SAAA,CLyCa,IAAI,EAAI,EAAE2B,EKtCT,GAAuBf,EAAA,OAAU,GAAAY,GAAA,CAAeZ,EAAA,OAG1D,EAAe,CACsB,EAAA,eAAA,GAEH,OAKrC,GAAA,EAAA,MAAAA,EAAA,IAAA,EAAA,eAAA,EAAA,KAAA,CAAAc,EAAA,OAAA,EAAA,IAAA,CLiCgB,IAAI,GAAK,EAAGlB,EAAW,SAAS,EAAE,IAAI,CACtC,GAAI,EAAE,MAAQI,EAAE,IAAI,EAAE,EAAI,KAAMc,EAAE,MAAO,CK7BhC,EAAA,eAAA,EACH,QAMC,GAAA,CAAAA,EAAA,MAAc,CACpB,EAAA,eAAAd,EAAA,MAAA,CAAA,MAAA,CAAA,MAElB,OAG4B,GAAAc,EAAK,MAAM,YAAsB,EAG9D,UAAkB,CAqBN,EAAM,MACnB,CAAA,ELEmB,OAEJ,EAAE,MAAQ,EAAGlB,EKE+G,SAAA,EAAA,IAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAAQ,EAAAU,EAAA,MAAA,cAAA,IAAAC,EAAA,CAAA,IAAAA,IAAA,EAAA,WAAAD,EAAA,MAAA,WAAA,EAAA,UAAAA,EAAA,MAAA,UAAAA,EAAA,OAAA,CAAA,EAAA,WAAA,QAAA,KAAA,qBAAA,EAAA,eAAA,uDAAA,EAAA,eAAA,GAAA,GLD7H,CAAE,UAAW,CAAC,EKC8J,CAAA,EAAM,EAAA,MAAY,EAAA1B,EAAM,YAAA,EAAA,EAAAA,EAAA,oBAAA,MAAA,CAAA,OAAA,EAAAA,EAAA,gBAAA,CAQ3L,oBAoBX,CAAA,EAlBT,8BASO,EAAA,EAAAA,EAAA,OAAA,EAAA,CAAA,gBLjBS,+BAAgC,EAAGA,EAAM,OAAO,EAAE,CAAC,gBKW3D,2BAAA,EAAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,EAAAA,EAAA,OAAA,EAAA,CAAA,gBACL,CAAA,CAAA,CAAe,EAAA,EAAAA,EAAe,OAAA,EAAA,CAAA,kBAAA,EAAAA,EAAA,YAAA,EAAA,EAAAA,EAAA,cAAA,EAAAA,EAAA,OAAAa,EAAA,EAAA,CAAA,CAAA,IAAA,EAAA,CAAA,CAIxB,QADH,EAAeb,EAAK,aAAA,EAAA,EAAAA,EAAA,oBAIwC,MAAAkB,EAAA,CAAAQ,EAAA,QAAA,EAAA1B,EAAA,YAAA,EAAA,EAAAA,EAAA,oBAAA,MAAA,CAAtD,IAAA,EAA4C,MAAA,oCLb5B,gBAAiB0B,EAAE,MAAM,KKkBxC,CAAA,EAAA,EAAA1B,EAAA,oBAAA,OAAAoB,GAAA,EAAApB,EAAA,iBAAA0B,EAAA,MAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAAP,EAAA,GAAA,EAAAnB,EAAA,oBAAA,GAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,EAAA,oBAAA,MAAA,CLhBe,MAAO,8BKsBpC,gBACc,ILrBY,CAAE,KAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CK8B1B,aAAO,EAAAA,EAAA,aAAA,EAAA,EAAAA,EAAA,YAAA,EAAA,OAAA,UAAA,CAAA,CAAA,CACd,EAAA,EL5BM,CAAC,IAAM,EAAGA,EAAM,YAAY,EAAG,EAAGA,EAAM,oBAAoBA,EAAM,SAAU,CAAE,IAAK,EAAG,CAAE,EAAE,EAAGA,EAAM,oBAAoB,MAAOqB,EAAG,EAAE,EAAGrB,EAAM,YAAY,EAAE,OAAQ,UAAU,CAAC,CAAC,CAAE,EAAE,cAAgB,EAAGA,EAAM,YAAY,EAAG,EAAGA,EAAM,oBAAoB,MAAOsB,EAAG,CAAC,EAAE,cAAgB,EAAGtB,EAAM,YAAY,EAAG,EAAGA,EAAM,aAAaW,EAAG,CK8B9U,IAAM,EL5Bc,MAAO,EAAGX,EAAM,OAAO,EAAE,CAAC,QAAU,IAAM,IAC1C,QAAS,EAAE,KAAQ,GAAM,CAAC,EAAGA,EAAM,OAAO,EAAE,CAAC,QAAU,EAAE,EAAGA,EAAM,OAAO,EAAE,CAAC,QAC/E,CAAE,CACC,SAAU,EAAGA,EAAM,aAAe,EAAE,EAAGA,EAAM,kBAAkB,EAAGA,EAAM,kBAAkB,EAAGA,EAAM,OAAO,EAAE,CAAC,QAAU,GAAK,WAAW,CAAE,EAAE,CAAC,CAAC,CAC7I,EAAG,EACN,CAAE,EAAG,CAAC,OAAO,CAAC,GAAK,EAAGA,EAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,CAAC,GAAK,EAAGA,EAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,CAAE,GAAG,EAAE,CAAE,EAAE,GAElI,CAAC,CAAE4B,GAAqB,EAAG5B,EAAM,iBAAiB,CAC/C,OAAQ,WACR,OAAwB,EAAGA,EAAM,aAAa,CAC1C,WAAY,EAAE,CACd,QAAS,CAAE,KAAM,QAAS,CAC1B,gBAAiB,CACb,KAAM,QACN,QAAS,IAAK,GACjB,CACD,YAAa,CACT,KAAM,QACN,QAAS,CAAC,EACb,CACD,QAAS,EAAC,CACb,CAAE,CACC,WAAY,EAAE,CMpLZ,eAKmB,EAAA,CAMvB,CAAA,CAGC,MAAA,CAAS,oBAAW,CAG7B,MAAA,EAAA,CAEmB,IACf6B,EAAYtB,EAAIiB,EAAMrB,EAAA0B,GAAA,EAAA7B,EAAA,UAAAO,EAAA,aAAA,CAAA,CAAAO,EAAA,KAAA,QAAA,CAErBe,EAAA,SAA0BvB,EAAkB,EAAA,MAAA,0BAAA,IAAAQ,EAAA,yBAAA,EAAA,EAAAd,EAAA,iBAAA,CACR6B,EAAM,SAAUvB,EAAA,EAAA,MAAA,0BAAA,OAAAQ,EAAA,CAAAU,EAAA,MAAA,EAAAhB,EAAA,SAAAgB,EAAA,IAAAA,EAAA,eAAA,CAAA,EAAA,EACtD,CNqKO,IAAIM,GAAK,EAAG9B,EAAM,MAAM,CAAE,GAAK,EAAGA,EAAM,KAAK,CAAC,EAAE,CAChD,OAAQ,EAAGA,EMjK+C,OAAA,CAAA8B,MAAAN,EAAA,UAAA,KAAA,CNkKtD,EAAE,MAAQT,EMlKgFS,EAAA,UAAM,EAY/F,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,EAAA,MAAA,EAAAxB,EAAA,YAAA,EAAA,EAAAA,EAAA,oBAAA,MAAA,CAAA,OAAA,EAAAA,EAAA,gBAAA,CALA,eAAA,CAAA,EACK,uBAAA6B,EAAA,QN8JF,wBM9JW,EAAA7B,EAAA,OAAAwB,EAAA,CAAA,gBN+Jd,CAAC,CAAE,CAAE,EAAE,EAAGxB,EAAM,aAAauB,EAAG,CM5JrB,YAAAhB,EAAA,YN8JR,UAAW,EAAE,MACb,qBM7IZ,EAAA,KAdJ,GAAK,EAAA,MAAA,EN4JQ,CAAE,CACC,SAAU,EAAGP,EM7JsD,aAAA,EAAA,EAAAA,EAAA,YAAA+B,EAAA,OAAA,OAAA,CAAA,CAAA,CN8JnE,EAAG,EMxJF,CAAA,EAAA,CAAA,cAAY,YAAA,CAAA,EAAA,EAAA/B,EAE9B,oBAIG,MADU,CAAA,OAAS,EAAAA,EAAA,gBAAA,CADhB,wBAAA,CAAA,EAAA,kCAAA,EAAA,MNwJe,qCAAsC,EAAE,EAAGA,EAAM,OAAOwB,EAAE,CAAC,WAC9D,CAAC,CAAE,CAAE,CAAC,EAAE,QAAU,EAAGxB,EAAM,YAAY,EAAG,EAAGA,EAAM,aAAaM,EAAwB,EAAG,CAAE,IAAK,EAAG,CAAC,GAAK,EAAGN,EAAM,oBAAoB,GAAI,CAAC,EAAE,GAAI,EAAGA,EAAM,YAAY,EAAG,EAAGA,EAAM,aAAaA,EAAM,UAAW,KAAM,GAAG,EAAGA,EAAM,YAAY,EAAG,EAAGA,EAAM,cAAc,EAAGA,EAAM,0BAA0B,EAAGA,EAAM,OAAOwB,EAAE,CAAC,UAAU,CAAE,COpNrV,QAAA,ePsNgB,IAAKM,EOtNc,CAAA,KAAA,IAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,GPyN1C,CAAC,CAAEE,EAAI,EAAE,CAAEC,EAAK,CAAE,MAAO,6BAA8B,CACxD,EAAQ,oBAAsBtB,EAC9B,EAAQ,YAAciB,EACtB,SAASM,EAAG,EAAG,EAAG,CQzNhB,OAAsB,EAAAlC,EAAA,YAAA,EAAA,EAAAA,EAAA,oBAAA,MAAAiC,EAAA,CR4NxB,IAAIE,GAAsB,EAAG7B,EAAwB,GAAG0B,EAAG,CAAC,CAAC,SAAUE,EAAG,CAAC,CAAC,CAoB5E,EAAQ,sBApB4F,EAAGlC,EAAM,iBAAiB,CQtNhI,OAAK,YRwNC,MAAO,CAAE,WAAY,CAAE,KAAM,QAAS,CAAE,CACxC,MAAM,EAAG,CACL,IAAI,EAAIS,GAAG,CQrNiB,OAAC,EAAA,KAAxC,EAAkDT,EAAA,OAAA,EAAA,CAAA,kBAU5C,EAAAA,EAAA,YAAA,EAAA,EAAAA,EAAA,cAAA,EAAAA,EAAA,OAAAa,EAAA,EAAA,CAAA,CR6MS,IAAK,EQnNb,KAAA,QRqNK,CAAE,CACC,SAAU,EAAGb,EAAM,aQtNkD,EAAA,EAAAA,EAAA,YAAA,EAAA,OAAA,UAAA,CAAA,CAAA,CRuNrE,EAAG,EQlNJ,CAAA,GAAA,EAAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAAA,EAAA,YAAA,EAAA,EAAAA,EAAA,aAAAmC,EAAA,CAAA,IAAA,EAAA,CAAA,IAAA,EAAAnC,EAAA,YAAA,EAAA,EAAAA,EAAA,oBAAA,MAAA,CRoNC,IAAK,EACL,OAAQ,EAAGA,EAAM,gBAAgB,CAC7B,yBAA0B,CAAC,EAC3B,kCAAmC,EAAE,WACxC,CAAA,CACJ,CAAE,EAAE,EAAGA,EAAM,YAAY,EAAE,OAAQ,UAAU,CAAC,CAAE,EAAE,GAE1D,CAAC,EAEJ","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-C2ItFa61.esm.js\", \"../utils/system.js\", \"../utils/route.js\", \"../.chunks/store-DuQpSSLL.esm.js\", \"../.chunks/popup-B06vbv6B.esm.js\", \"vue\"], function (require, exports, forms_C2ItFa61_esm_js_1, system_js_1, route_js_1, store_DuQpSSLL_esm_js_1, popup_B06vbv6B_esm_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.TopTabsViewMenuTitle = exports.TopTabsViewMenuItem = exports.TopTabsView = void 0;\n //#region src/core/utils/store/localStorage.ts\n var I = (e, t) => `top:${String(e)}:${t}`, L = {\n loadLocalStorge: (e, t) => {\n if (!t.$id)\n return;\n let n = I(e, t.$id);\n try {\n let r = JSON.parse(localStorage.getItem(n));\n typeof r == typeof t[e] && (t[e] = r);\n }\n catch {\n console.warn(/* @__PURE__ */ Error(`В localStorage[${n}] не корректный json`));\n }\n },\n addSaverLocalStorge: (e, t) => {\n if (!t.$id)\n return;\n let n = I(e, t.$id);\n (0, vue_1.watch)(() => t[e], () => {\n localStorage.setItem(n, JSON.stringify(t[e]));\n }, { immediate: !0 });\n }\n }, R = /* @__PURE__ */ new Set();\n addEventListener(\"popstate\", (e) => {\n R.forEach((t) => t(e));\n });\n var z = Symbol(), B = (t, n) => {\n let r = (0, store_DuQpSSLL_esm_js_1.t)(z, () => ({\n showMenuInPopup: (0, vue_1.computed)(() => t.showMenuInPopup ?? forms_C2ItFa61_esm_js_1.O.state.isMobile),\n pageMod: (0, vue_1.computed)(() => t.pageMod),\n isShort: (0, vue_1.ref)(!1),\n activeItemName: n,\n component: (0, vue_1.ref)(void 0),\n scrollable: (0, vue_1.ref)(!0)\n }), t.idState);\n if (t.isShortable) {\n let e = \"isShort\";\n L.loadLocalStorge(e, r), L.addSaverLocalStorge(e, r);\n }\n return r.$id && R.add((e) => {\n n.value = (0, route_js_1.getHash)(r.$id);\n }), r;\n }, V = () => (0, store_DuQpSSLL_esm_js_1.r)(z), H = {\n key: 1,\n class: \"top-ellipsis\"\n }, U = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"menuItem\",\n props: {\n name: {},\n href: {},\n icon: {},\n disabled: { type: Boolean },\n component: { default: void 0 },\n scrollable: {\n type: Boolean,\n default: !0\n }\n },\n setup(e) {\n let t = e, n = V(), r = (0, vue_1.computed)(() => t.name && n.$id ? (0, route_js_1.genHash)(n.$id, t.name) : t.href), i = (0, vue_1.computed)(() => n.showMenuInPopup ? popup_B06vbv6B_esm_js_1.o : r ? \"a\" : \"button\"), o = (e) => {\n !t.href && r.value && e.preventDefault(), t.name && (n.activeItemName = t.name);\n };\n return (t, a) => ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)(i.value), {\n target: \"_self\",\n class: (0, vue_1.normalizeClass)({\n \"top-tabsView_menuItem\": !(0, vue_1.unref)(n).showMenuInPopup,\n \"top-active\": e.name && (0, vue_1.unref)(n).activeItemName === e.name,\n \"top-disabled\": e.disabled,\n \"top-spa-disabled\": !0\n }),\n href: r.value,\n \"data-top-icon\": e.icon || void 0,\n disabled: e.disabled || void 0,\n onClick: o\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.unref)(n).showMenuInPopup ? (0, vue_1.renderSlot)(t.$slots, \"default\", { key: 0 }) : t.$slots.default && !(0, vue_1.unref)(n).isShort ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"span\", H, [(0, vue_1.renderSlot)(t.$slots, \"default\")])) : (0, vue_1.createCommentVNode)(\"\", !0)]),\n _: 3\n }, 8, [\n \"class\",\n \"href\",\n \"data-top-icon\",\n \"disabled\"\n ]));\n }\n }), W = (e) => e?.name === \"AsyncComponentWrapper\" && !e?.__asyncResolved, G = async (e, t) => {\n e?.name === \"AsyncComponentWrapper\" && (e?.__asyncResolved || (e.__asyncLoader(), await (0, system_js_1.sleepWhile)(() => t() && W(e), 200)));\n }, K = { class: \"top-tabsView_menuOpener\" }, q = [\"data-top-icon\"], J = { class: \"top-ellipsis\" }, Y = { class: \"top-tabsView_menuList\" }, X = {\n key: 0,\n class: \"top-tabsView_menuFooter\"\n }, Z = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"menu\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n isShortable: { type: Boolean },\n isLoading: { type: Boolean }\n }, {\n isLoading: {},\n isLoadingModifiers: {}\n }),\n emits: [\"update:isLoading\"],\n setup(e) {\n let t = (0, vue_1.useModel)(e, \"isLoading\"), n = V(), r = (0, vue_1.useSlots)(), i = /* @__PURE__ */ new Map(), a = () => {\n if (!r.default)\n return;\n let e = r.default({}).find((e) => e.key === \"_menu\");\n e && c(e.children);\n }, c = (e) => {\n e.forEach((e) => {\n if (e.type.__name && e.type.__name !== U.__name)\n return;\n if (!e.type.__name && typeof e.children == \"object\") {\n c(e.children);\n return;\n }\n if (!e.props?.name || e.props?.disabled)\n return;\n let t = {\n title: (e.children.default?.()[0].children).trim(),\n icon: e.props.icon,\n component: e.props.component ? (0, vue_1.markRaw)(e.props.component) : U.props.component.default,\n scrollable: e.props.scrollable ?? U.props.scrollable.default\n };\n i.set(e.props.name, t);\n });\n }, l = (0, vue_1.ref)(null), u = 0;\n return (0, vue_1.watch)(() => n.activeItemName, async () => {\n let e = ++u;\n if (i.size === 0 && a(), i.size === 0) {\n n.activeItemName = \"\";\n return;\n }\n if (l.value = i.get(n.activeItemName) ?? null, !l.value && n.$id) {\n let e = (0, route_js_1.getHash)(n.$id);\n if (l.value = i.get(e) ?? null, l.value) {\n n.activeItemName = e;\n return;\n }\n }\n if (!l.value) {\n n.activeItemName = i.keys().next().value;\n return;\n }\n if (l.value.component === n.component) {\n t.value = !1;\n return;\n }\n n.$id && (0, route_js_1.setHash)(n.$id, n.activeItemName, !1), t.value = !0, await G(l.value.component, () => e === u), e === u && (n.scrollable = l.value.scrollable, n.component = l.value.component, l.value && !n.component && console.warn(`Компонент вкладки ${n.activeItemName} не найден. Добавьте props.component для пункта меню ${n.activeItemName}.`));\n }, { immediate: !0 }), (t, r) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-tabsView_menu\": !0,\n \"top-tabsView_menu-inPopup_0\": !(0, vue_1.unref)(n).showMenuInPopup,\n \"top-tabsView_menu-inPopup_1\": (0, vue_1.unref)(n).showMenuInPopup,\n \"top-tabsView_menu-short\": (0, vue_1.unref)(n).isShort && !(0, vue_1.unref)(n).showMenuInPopup\n }) }, [(0, vue_1.unref)(n).showMenuInPopup ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.unref)(popup_B06vbv6B_esm_js_1.s), { key: 0 }, {\n opener: (0, vue_1.withCtx)(() => [(0, vue_1.createElementVNode)(\"div\", K, [l.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 0,\n class: \"top-tabsView_menuOpenerActiveItem\",\n \"data-top-icon\": l.value.icon\n }, [(0, vue_1.createElementVNode)(\"span\", J, (0, vue_1.toDisplayString)(l.value.title), 1)], 8, q)) : (0, vue_1.createCommentVNode)(\"\", !0), r[1] ||= (0, vue_1.createElementVNode)(\"div\", {\n class: \"top-tabsView_menuOpenerIcon\",\n \"data-top-icon\": \"\"\n }, null, -1)])]),\n contentList: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(t.$slots, \"default\")]),\n _: 3\n })) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: 1 }, [(0, vue_1.createElementVNode)(\"div\", Y, [(0, vue_1.renderSlot)(t.$slots, \"default\")]), e.isShortable ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", X, [e.isShortable ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(U, {\n key: 0,\n icon: (0, vue_1.unref)(n).isShort ? \"\" : \"\",\n onClick: r[0] ||= (e) => (0, vue_1.unref)(n).isShort = !(0, vue_1.unref)(n).isShort\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)((0, vue_1.unref)(n).isShort ? \"\" : \"Свернуть\"), 1)]),\n _: 1\n }, 8, [\"icon\"])) : (0, vue_1.createCommentVNode)(\"\", !0)])) : (0, vue_1.createCommentVNode)(\"\", !0)], 64))], 2));\n }\n }), Q = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"tabsView\",\n props: /* @__PURE__ */ (0, vue_1.mergeModels)({\n modelValue: {},\n pageMod: { type: Boolean },\n showMenuInPopup: {\n type: Boolean,\n default: void 0\n },\n isShortable: {\n type: Boolean,\n default: !1\n },\n idState: {}\n }, {\n modelValue: {},\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(n) {\n let r = n, a = B(r, (0, vue_1.useModel)(n, \"modelValue\")), o = Math.random();\n r.pageMod && forms_C2ItFa61_esm_js_1.O.state.documentClassModificators.set(o, \"top-hasTabsViewPageMod\"), (0, vue_1.onUnmounted)(() => {\n r.pageMod && forms_C2ItFa61_esm_js_1.O.state.documentClassModificators.delete(o), a.$id && (0, route_js_1.delHash)(a.$id, a.activeItemName, !0);\n });\n let s = (0, vue_1.ref)(), c = (0, vue_1.ref)(!1);\n return (0, vue_1.watch)([s, () => a.component], () => {\n c.value = W(a.component);\n }, { immediate: !0 }), (e, i) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-tabsView\": !0,\n \"top-tabsView-pageMod\": r.pageMod,\n \"top-tabsView-inPopup\": (0, vue_1.unref)(a).showMenuInPopup\n }) }, [(0, vue_1.createVNode)(Z, {\n isShortable: n.isShortable,\n isLoading: c.value,\n \"onUpdate:isLoading\": i[0] ||= (e) => c.value = e\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(e.$slots, \"menu\")]),\n _: 3\n }, 8, [\"isShortable\", \"isLoading\"]), (0, vue_1.createElementVNode)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-tabsView_contents\": !0,\n \"top-tabsView_contents-isLoading\": c.value,\n \"top-tabsView_contents-noScrollable\": !(0, vue_1.unref)(a).scrollable\n }) }, [c.value ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(forms_C2ItFa61_esm_js_1.l, { key: 0 })) : (0, vue_1.createCommentVNode)(\"\", !0), ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(vue_1.KeepAlive, null, [((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.resolveDynamicComponent)((0, vue_1.unref)(a).component), {\n ref_key: \"componentRef\",\n ref: s\n }, null, 512))], 1024))], 2)], 2));\n }\n }), $ = {}, ee = { class: \"top-tabsView_menuDelimeter\" };\n exports.TopTabsViewMenuItem = U;\n exports.TopTabsView = Q;\n function te(e, t) {\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", ee);\n }\n var ne = /* @__PURE__ */ (0, forms_C2ItFa61_esm_js_1.u)($, [[\"render\", te]]), re = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"menuTitle\",\n props: { isSubtitle: { type: Boolean } },\n setup(e) {\n let t = V();\n return (n, r) => (0, vue_1.unref)(t).showMenuInPopup ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)((0, vue_1.unref)(popup_B06vbv6B_esm_js_1.o), {\n key: 0,\n type: \"title\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.renderSlot)(n.$slots, \"default\")]),\n _: 3\n })) : (0, vue_1.unref)(t).isShort ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(ne, { key: 1 })) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: 2,\n class: (0, vue_1.normalizeClass)({\n \"top-tabsView_menuTitle\": !0,\n \"top-tabsView_menuTitle-subtitle\": e.isSubtitle\n })\n }, [(0, vue_1.renderSlot)(n.$slots, \"default\")], 2));\n }\n });\n exports.TopTabsViewMenuTitle = re;\n});\n//# sourceMappingURL=tabsView.js.map\n","import { watch } from 'vue';\nimport type { Store } from './store';\n\n/**\n * Сгенерировать имя для сохранения данных в localStorage\n * @param stateName - имя свойства состояния\n * @param stateKey - ключ состояния, разные компоненты могут использовать одинаковый ключ\n */\nconst genStorageKey = <T extends Store>(stateName: keyof T, stateKey: string): string => {\n\tconst stateNameString = String(stateName);\n\n\treturn `top:${stateNameString}:${stateKey}`;\n};\n\n/**\n * Загрузить состояние\n * @param stateName - имя свойства состояния\n * @param store\n */\nconst loadLocalStorge = <T extends Store>(stateName: keyof T, store: T) => {\n\t// если Store.key не знадан, значит сохранение состояния в компоненте отключено\n\tif (!store.$id) return;\n\n\tconst localStorageKey = genStorageKey(stateName, store.$id);\n\n\ttry {\n\t\tconst localStorageValue: typeof store[keyof typeof store] = JSON.parse(localStorage.getItem(localStorageKey) as string);\n\n\t\tif (typeof localStorageValue === typeof store[stateName]) {\n\t\t\tstore[stateName] = localStorageValue;\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(new Error(`В localStorage[${localStorageKey}] не корректный json`));\n\t}\n};\n\n/**\n * Добавить автосохранение состояние при его изменении\n * @param stateName - имя свойства состояния\n * @param store\n */\nconst addSaverLocalStorge = <T extends Store>(stateName: keyof T, store: T) => {\n\t// если store.$id не знадан, значит сохранение состояния в компоненте отключено\n\tif (!store.$id) return;\n\n\tconst localStorageKey = genStorageKey(stateName, store.$id);\n\n\twatch(() => store[stateName], () => {\n\t\tlocalStorage.setItem(localStorageKey, JSON.stringify(store[stateName]));\n\t}, { immediate: true });\n};\n\nexport default {\n\tloadLocalStorge,\n\taddSaverLocalStorge,\n};","import type { InjectionKey, ModelRef, UnwrapNestedRefs } from 'vue';\nimport { computed, ref } from 'vue';\nimport Core from '@/core/core/core';\nimport { defineStore, useStore, type Store as DefineStore } from '@/core/utils/store';\nimport StoreLocalStorage from '@/core/utils/store/localStorage';\nimport type { Props, Store } from './types';\nimport { getHash } from '@/core/utils/route';\n\nconst popstateCallbacks = new Set<(e: PopStateEvent) => void>();\n\naddEventListener('popstate', (e) => {\n\tpopstateCallbacks.forEach(popstateCallback => popstateCallback(e));\n});\n\nexport const injectionKey = Symbol() as InjectionKey<Store>;\n\n/**\n * Инициировать Store компонента\n */\nexport const defineTabsStore = (props: Props, model: ModelRef<string | undefined>): UnwrapNestedRefs<Store> & DefineStore => {\n\tconst store = defineStore(injectionKey, () => {\n\t\tconst showMenuInPopup = computed(() => props.showMenuInPopup ?? Core.state.isMobile);\n\t\tconst pageMod = computed(() => props.pageMod);\n\t\tconst isShort = ref(false);\n\n\t\tconst component = ref(undefined);\n\t\tconst scrollable = ref(true);\n\n\t\treturn {\n\t\t\tshowMenuInPopup,\n\t\t\tpageMod,\n\t\t\tisShort,\n\t\t\tactiveItemName: model,\n\t\t\tcomponent,\n\t\t\tscrollable,\n\t\t};\n\t}, props.idState);\n\n\tif (props.isShortable) {\n\t\tconst stateName = 'isShort';\n\n\t\tStoreLocalStorage.loadLocalStorge(stateName, store);\n\t\tStoreLocalStorage.addSaverLocalStorge(stateName, store);\n\t}\n\n\tif (store.$id) {\n\t\tconst popstateCallback = (_e: PopStateEvent) => {\n\t\t\tmodel.value = getHash(store.$id!);\n\t\t};\n\n\t\tpopstateCallbacks.add(popstateCallback);\n\t}\n\n\treturn store;\n};\n\n/**\n * Получить Store компонента\n */\nexport const useTabsStore = () => useStore(injectionKey);\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { genHash } from '@/core/utils/route';\nimport { TopPopupListItem } from '@/components/popup/popup';\nimport { useTabsStore } from './store';\nimport type { PropsMenuItem } from './types';\n\nconst props = withDefaults(defineProps<PropsMenuItem>(), {\n\tscrollable: true,\n\tcomponent: undefined,\n});\n\nconst store = useTabsStore();\n\nconst href = computed(() => {\n\t// это внутренняя хеш навигация, ссылка на вкладку\n\tif (props.name && store.$id) {\n\t\treturn genHash(store.$id, props.name);\n\t}\n\n\treturn props.href;\n});\n\nconst tagName = computed(() => {\n\tif (store.showMenuInPopup) {\n\t\treturn TopPopupListItem;\n\t}\n\n\treturn href ? 'a' : 'button';\n});\n\n/**\n * Клик по элементу меню\n */\nconst onClick = (e: MouseEvent) => {\n\t// это внутренняя хеш навигация, ссылка на вкладку\n\tif (!props.href && href.value) {\n\t\te.preventDefault();\n\t}\n\n\tif (props.name) {\n\t\tstore.activeItemName = props.name;\n\t}\n};\n</script>\n\n<template>\n\t<component\n\t\t:is=\"tagName\"\n\t\ttarget=\"_self\"\n\t\t:class=\"{\n\t\t\t['top-tabsView_menuItem']: !store.showMenuInPopup,\n\t\t\t['top-active']: name && store.activeItemName === name,\n\t\t\t['top-disabled']: disabled,\n\t\t\t['top-spa-disabled']: true,\n\t\t}\"\n\t\t:href=\"href\"\n\t\t:data-top-icon=\"icon || undefined\"\n\t\t:disabled=\"disabled || undefined\"\n\t\t@click=\"onClick\"\n\t>\n\t\t<slot name=\"default\" v-if=\"store.showMenuInPopup\"></slot>\n\n\t\t<span\n\t\t\tv-else-if=\"$slots.default && !store.isShort\"\n\t\t\tclass=\"top-ellipsis\"\n\t\t>\n\t\t\t<slot name=\"default\"></slot>\n\t\t</span>\n\t</component>\n</template>\n\n<style>\n.top-tabsView_menuItem {\n\t--top-icon-color: var(--color-text-2);\n\t--top-icon-width: calc(var(--top-icon-size));\n\n\tcursor: pointer;\n\tbox-sizing: border-box;\n\n\tborder: none;\n\tborder-radius: var(--top-radius-2);\n\tpadding: var(--top-padding-2);\n\tbackground: transparent;\n\theight: 40px;\n\n\tcolor: var(--color-text-1);\n\ttext-decoration: none;\n\twhite-space: nowrap;\n\n\tdisplay: flex;\n\tgap: var(--top-gap-2);\n\talign-items: center;\n\tjustify-content: flex-start;\n\ttransition: background var(--transition);\n}\n\n.top-tabsView_menuItem:hover {\n\t--top-icon-color: var(--color-text-1);\n\n\tbackground: var(--color-bg-shading-1);\n\ttext-decoration: none;\n}\n\n.top-tabsView_menuItem.top-active {\n\t--top-icon-color: inherit;\n\n\tbackground: var(--color-layout-front-1);\n\tcolor: inherit;\n}\n\n.top-tabsView_menuItem:disabled:not(option):not(optgroup):not(.top-forms-option),\n.top-tabsView_menuItem:disabled ~ .top-formsCaption,\n.top-tabsView_menuItem.top-disabled[data-top-icon]:before,\n.top-tabsView_menuItem.top-disabled[data-top-icon2]:after {\n\topacity: unset;\n\tfilter: unset;\n}\n\n.top-tabsView_menuItem.top-disabled {\n\t--top-icon-color: var(--color-text-4);\n\n\tcolor: var(--color-text-4);\n}\n</style>\n","// TODO: Эту функцию можно вынести в глобальный utils\n\nimport { sleepWhile } from '@/core/utils/system';\n\n/**\n * Проверка нахождения компонента в состояние загрузки\n * @param component\n */\nexport const checkComponentIsLoading = (component: any) => {\n\treturn component?.name === 'AsyncComponentWrapper' && !component?.__asyncResolved;\n};\n\n/**\n * Презагрузить компонент\n *\n * Некоторое время ожидает загрузку компонента, прежде чем завершит работу\n */\nexport const preResolveComponent = async (component: any, condition: Function) => {\n\tif (component?.name !== 'AsyncComponentWrapper') return;\n\tif (component?.__asyncResolved) return;\n\n\tcomponent.__asyncLoader();\n\n\tawait sleepWhile(() => {\n\t\treturn condition() && checkComponentIsLoading(component);\n\t}, 200);\n};\n","<script setup lang=\"ts\">\nimport type { Ref, VNode } from 'vue';\nimport { markRaw, ref, useSlots, watch } from 'vue';\nimport { TopPopup } from '../../popup/popup';\nimport { getHash, setHash } from '@/core/utils/route';\n\nimport type { MenuItem, PropsMenu, PropsMenuItem } from './types';\nimport { useTabsStore } from './store';\nimport TabsViewMenuItem from './menuItem.vue';\nimport { preResolveComponent } from './utils';\n\ndefineProps<PropsMenu>();\n\nconst isLoading = defineModel('isLoading');\n\nconst store = useTabsStore();\n\nconst slots = useSlots();\n\n// словарь используется для оптимизации получения нужного menuItem\nconst menuItemByName: Map<PropsMenuItem['name'], MenuItem> = new Map();\n\n// заполнить словарь с menuItem, по элементам в slot default\nconst setMenuItemByName = () => {\n\tif (!slots.default) return;\n\n\tconst component: any = slots.default({}).find(item => item.key === '_menu');\n\tif (!component) return;\n\n\tsetMenuItemByNameFromItems(component.children);\n};\n\n// заполнить словарь с menuItem, по элементам\nconst setMenuItemByNameFromItems = (menuItems: VNode[]) => {\n\tmenuItems.forEach((subComponent: any) => {\n\t\t// это не компонент элемента меню\n\t\tif (subComponent.type.__name && subComponent.type.__name !== TabsViewMenuItem.__name) return;\n\n\t\t// это не компонент, например template\n\t\tif (!subComponent.type.__name && typeof subComponent.children === 'object') {\n\t\t\tsetMenuItemByNameFromItems(subComponent.children);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!subComponent.props?.name || subComponent.props?.disabled) return;\n\n\t\tconst menuItem: MenuItem = {\n\t\t\ttitle: (subComponent.children.default?.()[0].children as string).trim(),\n\t\t\ticon: subComponent.props.icon,\n\t\t\tcomponent: subComponent.props.component ? markRaw(subComponent.props.component) : TabsViewMenuItem.props.component.default,\n\t\t\tscrollable: subComponent.props.scrollable ?? TabsViewMenuItem.props.scrollable.default,\n\t\t};\n\n\t\tmenuItemByName.set(subComponent.props.name, menuItem);\n\t});\n};\n\n/**\n * activeMenuItem нужен:\n * - для вывода текста активной вкладки в меню с popup\n * - для вывода компонента активной вкладки (store.component)\n * - для установки store.scrollable\n */\nconst activeMenuItem: Ref<MenuItem | null> = ref(null);\n\n/**\n * Кол-во изменений активной вкладки\n */\nlet countChanged = 0;\n\n/**\n * Смена активной вкладки\n *\n * TODO: смена slot, например смена языка, требует повторного выполнения setMenuItemByName()\n */\nwatch(\n\t() => store.activeItemName,\n\tasync () => {\n\t\tconst numberChanged = ++countChanged; // порядковый номер текущего изменения\n\n\t\tif (menuItemByName.size === 0) {\n\t\t\tsetMenuItemByName();\n\t\t}\n\n\t\tif (menuItemByName.size === 0) {\n\t\t\tstore.activeItemName = '';\n\n\t\t\treturn;\n\t\t}\n\n\t\tactiveMenuItem.value = menuItemByName.get(store.activeItemName) ?? null;\n\n\t\t// элемент не найден, установить из хеша страницы\n\t\tif (!activeMenuItem.value && store.$id) {\n\t\t\tconst activeItemName = getHash(store.$id);\n\n\t\t\tactiveMenuItem.value = menuItemByName.get(activeItemName) ?? null;\n\n\t\t\tif (activeMenuItem.value) {\n\t\t\t\tstore.activeItemName = activeItemName;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// элемент не найден, установить первый доступный\n\t\tif (!activeMenuItem.value) {\n\t\t\tstore.activeItemName = menuItemByName.keys().next().value!;\n\n\t\t\treturn;\n\t\t}\n\n\t\t// запрошена смена на уже активный элемент\n\t\tif (activeMenuItem.value.component === store.component) {\n\t\t\tisLoading.value = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (store.$id) setHash(store.$id, store.activeItemName, false);\n\n\t\t// флаг загрузки будет сброшен при инициализации компонента\n\t\tisLoading.value = true;\n\n\t\t/**\n\t\t * Презагрузить компонент\n\t\t *\n\t\t * Нужно для того, чтобы минимизировать скачки интерфейса при ожидании загрузки асинхронного компонента\n\t\t */\n\t\tawait preResolveComponent(activeMenuItem.value.component, () => numberChanged === countChanged);\n\n\t\t// влкадка была сменена еще раз во время sleepWhile\n\t\tif (numberChanged !== countChanged) {\n\t\t\treturn;\n\t\t}\n\n\t\tstore.scrollable = activeMenuItem.value.scrollable;\n\t\tstore.component = activeMenuItem.value.component;\n\n\t\tif (activeMenuItem.value && !store.component) {\n\t\t\tconsole.warn(`Компонент вкладки ${store.activeItemName} не найден. Добавьте props.component для пункта меню ${store.activeItemName}.`);\n\t\t}\n\t},\n\t{ immediate: true },\n);\n\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabsView_menu': true,\n\t\t\t'top-tabsView_menu-inPopup_0': !store.showMenuInPopup,\n\t\t\t'top-tabsView_menu-inPopup_1': store.showMenuInPopup,\n\t\t\t'top-tabsView_menu-short': store.isShort && !store.showMenuInPopup,\n\t\t}\"\n\t>\n\t\t<!-- Спрятать меню под кнопку в popup -->\n\t\t<TopPopup v-if=\"store.showMenuInPopup\">\n\t\t\t<template #opener>\n\t\t\t\t<div class=\"top-tabsView_menuOpener\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"activeMenuItem\"\n\t\t\t\t\t\tclass=\"top-tabsView_menuOpenerActiveItem\"\n\t\t\t\t\t\t:data-top-icon=\"activeMenuItem.icon\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"top-ellipsis\">\n\t\t\t\t\t\t\t{{ activeMenuItem.title }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"top-tabsView_menuOpenerIcon\" data-top-icon=\"\"></div>\n\t\t\t\t</div>\n\t\t\t</template>\n\n\t\t\t<template #contentList>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t</TopPopup>\n\n\t\t<!-- Отобразить меню на странице -->\n\t\t<template v-else>\n\t\t\t<div class=\"top-tabsView_menuList\">\n\t\t\t\t<slot></slot>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tv-if=\"isShortable\"\n\t\t\t\tclass=\"top-tabsView_menuFooter\"\n\t\t\t>\n\t\t\t\t<TabsViewMenuItem\n\t\t\t\t\tv-if=\"isShortable\"\n\t\t\t\t\t:icon=\"store.isShort ? '' : ''\"\n\t\t\t\t\t@click=\"store.isShort = !store.isShort\"\n\t\t\t\t>\n\t\t\t\t\t{{ store.isShort ? '' : 'Свернуть' }} <!--TODO: translate-->\n\t\t\t\t</TabsViewMenuItem>\n\t\t\t</div>\n\t\t</template>\n\t</div>\n</template>\n\n<style>\n/* режим отображение табов в основной области документа */\n.top-tabsView-pageMod .top-tabsView_menu {\n\tbox-sizing: border-box;\n\tposition: sticky;\n\ttop: var(--top-tabsView-top);\n\tz-index: 10;\n}\n\n/* режим отображение табов в основной области документа без popup */\n.top-tabsView-pageMod .top-tabsView_menu-inPopup_0 {\n\theight: calc(var(--100vh) - var(--top-tabsView-top));\n}\n\n/* стантартный режим */\n.top-tabsView_menu-inPopup_0 {\n\tbox-sizing: border-box;\n\twidth: var(--top-tabsView-menu-width);\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tflex-shrink: 0;\n}\n\n/* режим вывода в popup */\n.top-tabsView_menu-inPopup_1 {\n\tborder-bottom: var(--top-tabsView-menu-border-bottom-width) solid var(--color-line-2-opacity);\n}\n\n.top-tabsView_menu-short {\n\twidth: auto;\n}\n\n.top-tabsView_menu > .top-tabsView_menuOpener {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n}\n\n.top-tabsView_menu > .top-tabsView_menuOpener:hover {\n\tbackground: var(--color-layer-1);\n}\n\n.top-tabsView_menuOpenerIcon { display: flex; }\n\n.top-tabsView_menuOpenerActiveItem {\n\t--top-forms-padding: 0px;\n\n\tbox-sizing: border-box;\n\tpadding: var(--top-tabsView-menu-opener-padding);\n\tmax-width: calc(100% - var(--top-forms-base-height));\n\twhite-space: nowrap;\n\tflex-grow: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--top-padding-2);\n}\n\n.top-tabsView_menuList,\n.top-tabsView_menuFooter {\n\tpadding: var(--top-padding-2);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--top-gap-2);\n}\n\n.top-tabsView_menuList {\n\toverflow-y: auto;\n}\n\n.top-tabsView_menu-short .top-tabsView_menuFooter > .top-tabsView_menuItem {\n\t--top-icon-width: 100%;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { defineModel, onUnmounted, ref, watch } from 'vue';\nimport Core from '@/core/core/core';\nimport { delHash } from '@/core/utils/route';\nimport type { Props } from './types';\nimport { defineTabsStore } from './store';\nimport TabsViewMenu from './menu.vue';\nimport TopLoadbar from '@/components/forms/loadbar/loadbar.vue';\nimport { checkComponentIsLoading } from './utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tshowMenuInPopup: undefined,\n\tisShortable: false,\n});\n\nconst model = defineModel<string>();\n\nconst store = defineTabsStore(props, model);\n\nconst uid = Math.random();\n\nif (props.pageMod) Core.state.documentClassModificators.set(uid, 'top-hasTabsViewPageMod');\n\nonUnmounted(() => {\n\tif (props.pageMod) Core.state.documentClassModificators.delete(uid);\n\n\tif (store.$id) delHash(store.$id, store.activeItemName, true);\n});\n\nconst componentRef = ref();\nconst isLoading = ref(false);\n\nwatch([componentRef, () => store.component], () => {\n\tisLoading.value = checkComponentIsLoading(store.component);\n}, { immediate: true });\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-tabsView': true,\n\t\t\t'top-tabsView-pageMod': props.pageMod,\n\t\t\t'top-tabsView-inPopup': store.showMenuInPopup,\n\t\t}\"\n\t>\n\t\t<TabsViewMenu\n\t\t\t:isShortable=\"isShortable\"\n\t\t\tv-model:isLoading=\"isLoading\"\n\t\t>\n\t\t\t<!-- @slot Меню, ожидает передачу компонентов TabsViewMenuItem и TabsViewMenuTitle -->\n\t\t\t<slot name=\"menu\"></slot>\n\t\t</TabsViewMenu>\n\n\t\t<div\n\t\t\t:class=\"{\n\t\t\t\t'top-tabsView_contents': true,\n\t\t\t\t'top-tabsView_contents-isLoading': isLoading,\n\t\t\t\t'top-tabsView_contents-noScrollable': !store.scrollable,\n\t\t\t}\"\n\t\t>\n\t\t\t<TopLoadbar v-if=\"isLoading\"/>\n\n\t\t\t<keep-alive>\n\t\t\t\t<component\n\t\t\t\t\tref=\"componentRef\"\n\t\t\t\t\t:is=\"store.component\"\n\t\t\t\t/>\n\t\t\t</keep-alive>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n:root {\n\t--top-tabsView-top: 0px;\n\t--top-tabsView-menu-width: 220px;\n\t--top-tabsView-contents-offset-top: 0px;\n\t--top-tabsView-menu-border-bottom-width: 1px;\n\t--top-tabsView-menu-opener-padding: var(--top-padding-2);\n}\n\n.top-tabsView {\n\tbackground: var(--color-layout-middle);\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: row;\n}\n\n.top-tabsView_contents {\n\tborder-radius: var(--top-radius-4);\n\tbackground: var(--color-layout-front-1);\n\tpadding: var(--top-padding-4);\n\tflex-grow: 1;\n\toverflow: auto;\n\tposition: relative;\n}\n\n.top-tabsView_contents-isLoading {\n\tpointer-events: none;\n}\n\n.top-tabsView_contents-noScrollable {\n\twidth: calc(100% - var(--top-tabsView-menu-width));\n\tpadding: 0;\n\toverflow: visible;\n}\n\n/* top-tabsView-inPopup */\n.top-tabsView-inPopup {\n\tbackground: var(--color-layout-front-1);\n\tflex-direction: column;\n}\n\n.top-tabsView-inPopup > .top-tabsView_contents {\n\tborder-radius: 0;\n}\n\n.top-tabsView-inPopup > .top-tabsView_contents-noScrollable {\n\twidth: auto;\n}\n\n@media only screen and (max-width: 900px) {\n\t:root {\n\t\t/* Суммарно должна быть высота элемента \".top-tabsView_menu\" */\n\t\t--top-tabsView-contents-offset-top: calc(var(--top-icon-size) + var(--top-tabsView-menu-opener-padding) * 2 + var(--top-tabsView-menu-border-bottom-width));\n\t}\n}\n</style>\n","<script setup lang=\"ts\">\n\n</script>\n\n<template>\n\t<div class=\"top-tabsView_menuDelimeter\"></div>\n</template>\n\n<style>\n.top-tabsView_menuDelimeter {\n\tpadding: var(--top-padding-1) 0;\n\tdisplay: flex;\n}\n\n.top-tabsView_menuDelimeter:before {\n\tcontent: \"\";\n\theight: 2px;\n\tbackground: var(--color-line-2);\n\tflex-grow: 1;\n}\n\n.top-tabsView_menuDelimeter:first-child,\n.top-tabsView_menuDelimeter + .top-tabsView_menuDelimeter {\n\tdisplay: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTabsStore } from './store';\nimport type { PropsMenuTitle } from './types';\nimport TabsViewMenuDelimeter from './menuDelimeter.vue';\nimport { TopPopupListItem } from '../../popup/popup';\n\ndefineProps<PropsMenuTitle>();\n\nconst store = useTabsStore();\n</script>\n\n<template>\n\t<TopPopupListItem\n\t\tv-if=\"store.showMenuInPopup\"\n\t\ttype=\"title\"\n\t>\n\t\t<slot></slot>\n\t</TopPopupListItem>\n\n\t<TabsViewMenuDelimeter v-else-if=\"store.isShort\"/>\n\n\t<div\n\t\tv-else\n\t\t:class=\"{\n\t\t\t'top-tabsView_menuTitle': true,\n\t\t\t'top-tabsView_menuTitle-subtitle': isSubtitle,\n\t\t}\"\n\t>\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n.top-tabsView_menuTitle {\n\tpadding: var(--top-padding-4) var(--top-padding-2) var(--top-padding-1);\n\tfont-weight: 600;\n\tcolor: var(--color-text-1);\n}\n\n.top-tabsView_menuTitle-subtitle {\n\tpadding-top: var(--top-padding-1);\n\tfont-size: 12px;\n\tfont-weight: 400;\n\tcolor: var(--color-text-2);\n}\n</style>\n"]}
@@ -5,11 +5,11 @@
5
5
  _autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
6
6
  /* end import css */
7
7
 
8
- import { O as e, l as t, u as n } from "../.chunks/forms-DByj6MWE.esm.js";
8
+ import { O as e, l as t, u as n } from "../.chunks/forms-C2ItFa61.esm.js";
9
9
  import { sleepWhile as r } from "../utils/system.js";
10
10
  import { delHash as i, genHash as a, getHash as o, setHash as s } from "../utils/route.js";
11
11
  import { r as c, t as l } from "../.chunks/store-DuQpSSLL.esm.js";
12
- import { o as u, s as d } from "../.chunks/popup-Cvyqovn6.esm.js";
12
+ import { o as u, s as d } from "../.chunks/popup-B06vbv6B.esm.js";
13
13
  import { Fragment as f, KeepAlive as p, computed as m, createBlock as h, createCommentVNode as g, createElementBlock as _, createElementVNode as v, createTextVNode as y, createVNode as b, defineComponent as x, markRaw as S, mergeModels as C, normalizeClass as w, onUnmounted as T, openBlock as E, ref as D, renderSlot as O, resolveDynamicComponent as k, toDisplayString as A, unref as j, useModel as M, useSlots as N, watch as P, withCtx as F } from "vue";
14
14
  //#region src/core/utils/store/localStorage.ts
15
15
  var I = (e, t) => `top:${String(e)}:${t}`, L = {
@@ -1,4 +1,4 @@
1
- define([`require`,`exports`,`../.chunks/forms-DByj6MWE.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.guestLinkToClipboard=a,t.setClipboard=i;async function i(e,t=!1){let r=!1;return navigator.clipboard&&(await navigator.clipboard.writeText(e),r=!0,t&&n.O.notice((0,n.E)().Common.Copied_to_clipboard+``,`info`)),r}async function a(e){let t=!1;(0,n.G)()||(t=await i(e));let r=`<a href="`+e+`" target="_blank">`+e+`</a>`,a=(0,n.E)().Common.Copied_to_clipboard+`:
1
+ define([`require`,`exports`,`../.chunks/forms-C2ItFa61.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.guestLinkToClipboard=a,t.setClipboard=i;async function i(e,t=!1){let r=!1;return navigator.clipboard&&(await navigator.clipboard.writeText(e),r=!0,t&&n.O.notice((0,n.E)().Common.Copied_to_clipboard+``,`info`)),r}async function a(e){let t=!1;(0,n.G)()||(t=await i(e));let r=`<a href="`+e+`" target="_blank">`+e+`</a>`,a=(0,n.E)().Common.Copied_to_clipboard+`:
2
2
  `+r;if(t)n.O.notice(a,`info`);else{if(!navigator.clipboard){n.O.notice((0,n.E)().Common.Cannot_copied_to_clipboard+`:
3
3
  `+(0,n.E)().Common.Copy_guest_link_manually+`
4
4
  `+r,`error`);return}let t={onclick:()=>i(e).then(()=>n.O.notice(a,`info`)),default:(0,n.E)().Common.Copy+``,class:`copy`};await n.O.notice((0,n.E)().Common.Guest_link_created+`
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/clipboard.js","../../src/core/utils/clipboard.ts"],"names":["vue","exports","i","r","t","forms_DByj6MWE_esm_js_1","a","o","s"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,ICWJ,OAAA,eAAiEC,EAAO,aAAA,CAAA,MAAA,GAAA,CAAA,CACvE,EAAa,qBAAAC,EAQb,EANI,aAAUC,EAYf,eAA2CA,EAAc,EAAA,EAAA,CAAA,EAAA,CACpD,IAAWD,EAAA,CAAA,EACA,OAAa,UAAwB,YAAA,MAAA,UAAA,UAAA,UAAAE,EAAA,CAAA,EAAA,CAAA,EAAAD,GAAAE,EAAA,EAAA,QAAA,EAAAA,EAAA,IAAA,CAAA,OAAA,oBAAA,GAAA,OAAA,EAAAH,EAKpD,eACkBA,EAAe,EAAA,CAC1B,IAAAI,EAAA,CAAA,GACD,EAAAD,EAAqB,IAAA,GAAA,EAAA,MAAAF,EAAAD,EAAA,EACf,IAAOK,EAAU,YAAOL,EAAA,qBAAqCA,EAAU,OAAOM,GAAA,EAAAH,EAAkC,IAAO,CAAA,OAAQ,oBAAA;EAAAE,EACzI,GAAAD,EDxBSD,EAAwB,EAAE,OAAOG,EAAG,OAAO,KC2BjC,CAClB,GAAA,CAAA,UAAkC,UAAgB,CAC/BH,EAAc,EAAA,QAAA,EAAAA,EAAA,IAAA,CAAA,OAAA,2BAAA;GAAA,EAAAA,EAAA,IAAA,CAAA,OAAA,yBAAA;EAAAE,EAAA,QAAA,CAC1B,OAGE,IAAA,EAAgB,CD1Bb,YAAeJ,EAAED,EAAE,CAAC,SAAWG,EAAwB,EAAE,OAAOG,EAAG,OAAO,CAAC,CAC3E,SAAU,EAAGH,EAAwB,IAAI,CAAC,OAAO,KAAO,GACxD,MAAO,OACV,CACD,MAAMA,EAAwB,EAAE,QAAQ,EAAGA,EAAwB,IAAI,CAAC,OAAO,mBAAqB;EAAOE,EAAG,OAAQ,CAAE,YAAa,EAAG,CAAC,IAGnJ","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-DByj6MWE.esm.js\"], function (require, exports, forms_DByj6MWE_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.guestLinkToClipboard = i;\n exports.setClipboard = r;\n //#region src/core/utils/clipboard.ts\n async function r(t, r = !1) {\n let i = !1;\n return navigator.clipboard && (await navigator.clipboard.writeText(t), i = !0, r && forms_DByj6MWE_esm_js_1.O.notice((0, forms_DByj6MWE_esm_js_1.E)().Common.Copied_to_clipboard + \"\", \"info\")), i;\n }\n async function i(i) {\n let a = !1;\n (0, forms_DByj6MWE_esm_js_1.G)() || (a = await r(i));\n let o = \"<a href=\\\"\" + i + \"\\\" target=\\\"_blank\\\">\" + i + \"</a>\", s = (0, forms_DByj6MWE_esm_js_1.E)().Common.Copied_to_clipboard + \":\\n\" + o;\n if (a)\n forms_DByj6MWE_esm_js_1.O.notice(s, \"info\");\n else {\n if (!navigator.clipboard) {\n forms_DByj6MWE_esm_js_1.O.notice((0, forms_DByj6MWE_esm_js_1.E)().Common.Cannot_copied_to_clipboard + \":\\n\" + (0, forms_DByj6MWE_esm_js_1.E)().Common.Copy_guest_link_manually + \"\\n\" + o, \"error\");\n return;\n }\n let t = {\n onclick: () => r(i).then(() => forms_DByj6MWE_esm_js_1.O.notice(s, \"info\")),\n default: (0, forms_DByj6MWE_esm_js_1.E)().Common.Copy + \"\",\n class: \"copy\"\n };\n await forms_DByj6MWE_esm_js_1.O.notice((0, forms_DByj6MWE_esm_js_1.E)().Common.Guest_link_created + \"\\n\" + o, \"info\", { buttonProps: t });\n }\n }\n});\n//# sourceMappingURL=clipboard.js.map\n","import Core from '@/core/core/core';\nimport { useI18n } from '@/core/plugins/i18n';\nimport { isSafari } from '@/core/utils/device';\n\n/**\n * Работа с буфером обмена\n * @packageDocumentation\n */\n\n/**\n * Скопировать текст в буфер омбена\n */\nexport async function setClipboard(text: string, isInfoShowing = false) {\n\tlet copyOk = false;\n\n\tif (navigator.clipboard) {\n\t\tawait navigator.clipboard.writeText(text);\n\t\tcopyOk = true;\n\t\tif (isInfoShowing) void Core.notice(useI18n().Common.Copied_to_clipboard + '', 'info');\n\t}\n\n\treturn copyOk;\n}\n\n/**\n * Скопировать гостевую ссылку в буфер обмена\n */\nexport async function guestLinkToClipboard(link: string) {\n\tlet isCopied = false;\n\tif (!isSafari()) isCopied = await setClipboard(link);\n\n\tconst aLink = '<a href=\"' + link + '\" target=\"_blank\">' + link + '</a>';\n\tconst copiedMessage = useI18n().Common.Copied_to_clipboard + `:\\n` + aLink;\n\n\tif (isCopied) {\n\t\tvoid Core.notice(copiedMessage, 'info');\n\t} else {\n\t\tif (!navigator.clipboard) {\n\t\t\tvoid Core.notice(useI18n().Common.Cannot_copied_to_clipboard + `:\\n` + useI18n().Common.Copy_guest_link_manually + `\\n` + aLink, 'error');\n\t\t\treturn;\n\t\t}\n\n\t\tconst buttonProps = {\n\t\t\t\tonclick: () => setClipboard(link).then(() => Core.notice(copiedMessage, 'info')),\n\t\t\t\tdefault: useI18n().Common.Copy + '',\n\t\t\t\tclass: 'copy',\n\t\t\t};\n\n\t\tawait Core.notice(useI18n().Common.Guest_link_created + `\\n` + aLink, 'info', { buttonProps });\n\t}\n};\n"]}
1
+ {"version":3,"sources":["utils/clipboard.js","../../src/core/utils/clipboard.ts"],"names":["vue","exports","i","r","t","forms_C2ItFa61_esm_js_1","a","o","s"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,ICWJ,OAAA,eAAiEC,EAAO,aAAA,CAAA,MAAA,GAAA,CAAA,CACvE,EAAa,qBAAAC,EAQb,EANI,aAAUC,EAYf,eAA2CA,EAAc,EAAA,EAAA,CAAA,EAAA,CACpD,IAAWD,EAAA,CAAA,EACA,OAAa,UAAwB,YAAA,MAAA,UAAA,UAAA,UAAAE,EAAA,CAAA,EAAA,CAAA,EAAAD,GAAAE,EAAA,EAAA,QAAA,EAAAA,EAAA,IAAA,CAAA,OAAA,oBAAA,GAAA,OAAA,EAAAH,EAKpD,eACkBA,EAAe,EAAA,CAC1B,IAAAI,EAAA,CAAA,GACD,EAAAD,EAAqB,IAAA,GAAA,EAAA,MAAAF,EAAAD,EAAA,EACf,IAAOK,EAAU,YAAOL,EAAA,qBAAqCA,EAAU,OAAOM,GAAA,EAAAH,EAAkC,IAAO,CAAA,OAAQ,oBAAA;EAAAE,EACzI,GAAAD,EDxBSD,EAAwB,EAAE,OAAOG,EAAG,OAAO,KC2BjC,CAClB,GAAA,CAAA,UAAkC,UAAgB,CAC/BH,EAAc,EAAA,QAAA,EAAAA,EAAA,IAAA,CAAA,OAAA,2BAAA;GAAA,EAAAA,EAAA,IAAA,CAAA,OAAA,yBAAA;EAAAE,EAAA,QAAA,CAC1B,OAGE,IAAA,EAAgB,CD1Bb,YAAeJ,EAAED,EAAE,CAAC,SAAWG,EAAwB,EAAE,OAAOG,EAAG,OAAO,CAAC,CAC3E,SAAU,EAAGH,EAAwB,IAAI,CAAC,OAAO,KAAO,GACxD,MAAO,OACV,CACD,MAAMA,EAAwB,EAAE,QAAQ,EAAGA,EAAwB,IAAI,CAAC,OAAO,mBAAqB;EAAOE,EAAG,OAAQ,CAAE,YAAa,EAAG,CAAC,IAGnJ","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-C2ItFa61.esm.js\"], function (require, exports, forms_C2ItFa61_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.guestLinkToClipboard = i;\n exports.setClipboard = r;\n //#region src/core/utils/clipboard.ts\n async function r(t, r = !1) {\n let i = !1;\n return navigator.clipboard && (await navigator.clipboard.writeText(t), i = !0, r && forms_C2ItFa61_esm_js_1.O.notice((0, forms_C2ItFa61_esm_js_1.E)().Common.Copied_to_clipboard + \"\", \"info\")), i;\n }\n async function i(i) {\n let a = !1;\n (0, forms_C2ItFa61_esm_js_1.G)() || (a = await r(i));\n let o = \"<a href=\\\"\" + i + \"\\\" target=\\\"_blank\\\">\" + i + \"</a>\", s = (0, forms_C2ItFa61_esm_js_1.E)().Common.Copied_to_clipboard + \":\\n\" + o;\n if (a)\n forms_C2ItFa61_esm_js_1.O.notice(s, \"info\");\n else {\n if (!navigator.clipboard) {\n forms_C2ItFa61_esm_js_1.O.notice((0, forms_C2ItFa61_esm_js_1.E)().Common.Cannot_copied_to_clipboard + \":\\n\" + (0, forms_C2ItFa61_esm_js_1.E)().Common.Copy_guest_link_manually + \"\\n\" + o, \"error\");\n return;\n }\n let t = {\n onclick: () => r(i).then(() => forms_C2ItFa61_esm_js_1.O.notice(s, \"info\")),\n default: (0, forms_C2ItFa61_esm_js_1.E)().Common.Copy + \"\",\n class: \"copy\"\n };\n await forms_C2ItFa61_esm_js_1.O.notice((0, forms_C2ItFa61_esm_js_1.E)().Common.Guest_link_created + \"\\n\" + o, \"info\", { buttonProps: t });\n }\n }\n});\n//# sourceMappingURL=clipboard.js.map\n","import Core from '@/core/core/core';\nimport { useI18n } from '@/core/plugins/i18n';\nimport { isSafari } from '@/core/utils/device';\n\n/**\n * Работа с буфером обмена\n * @packageDocumentation\n */\n\n/**\n * Скопировать текст в буфер омбена\n */\nexport async function setClipboard(text: string, isInfoShowing = false) {\n\tlet copyOk = false;\n\n\tif (navigator.clipboard) {\n\t\tawait navigator.clipboard.writeText(text);\n\t\tcopyOk = true;\n\t\tif (isInfoShowing) void Core.notice(useI18n().Common.Copied_to_clipboard + '', 'info');\n\t}\n\n\treturn copyOk;\n}\n\n/**\n * Скопировать гостевую ссылку в буфер обмена\n */\nexport async function guestLinkToClipboard(link: string) {\n\tlet isCopied = false;\n\tif (!isSafari()) isCopied = await setClipboard(link);\n\n\tconst aLink = '<a href=\"' + link + '\" target=\"_blank\">' + link + '</a>';\n\tconst copiedMessage = useI18n().Common.Copied_to_clipboard + `:\\n` + aLink;\n\n\tif (isCopied) {\n\t\tvoid Core.notice(copiedMessage, 'info');\n\t} else {\n\t\tif (!navigator.clipboard) {\n\t\t\tvoid Core.notice(useI18n().Common.Cannot_copied_to_clipboard + `:\\n` + useI18n().Common.Copy_guest_link_manually + `\\n` + aLink, 'error');\n\t\t\treturn;\n\t\t}\n\n\t\tconst buttonProps = {\n\t\t\t\tonclick: () => setClipboard(link).then(() => Core.notice(copiedMessage, 'info')),\n\t\t\t\tdefault: useI18n().Common.Copy + '',\n\t\t\t\tclass: 'copy',\n\t\t\t};\n\n\t\tawait Core.notice(useI18n().Common.Guest_link_created + `\\n` + aLink, 'info', { buttonProps });\n\t}\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { E as e, G as t, O as n } from "../.chunks/forms-DByj6MWE.esm.js";
1
+ import { E as e, G as t, O as n } from "../.chunks/forms-C2ItFa61.esm.js";
2
2
  //#region src/core/utils/clipboard.ts
3
3
  async function r(t, r = !1) {
4
4
  let i = !1;
package/utils/date.amd.js CHANGED
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`../.chunks/forms-DByj6MWE.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.stringToDate=t.getDayOfWeek=t.genUserDate=t.genDateMoscow=t.genDate=t.dateUnformat=t.dateToString=t.dateFormat=void 0,Object.defineProperty(t,`getDayOfWeek`,{enumerable:!0,get:function(){return n.C}}),Object.defineProperty(t,`genUserDate`,{enumerable:!0,get:function(){return n.S}}),Object.defineProperty(t,`dateFormat`,{enumerable:!0,get:function(){return n._}}),Object.defineProperty(t,`genDate`,{enumerable:!0,get:function(){return n.b}}),Object.defineProperty(t,`dateToString`,{enumerable:!0,get:function(){return n.v}}),Object.defineProperty(t,`stringToDate`,{enumerable:!0,get:function(){return n.w}}),Object.defineProperty(t,`genDateMoscow`,{enumerable:!0,get:function(){return n.x}}),Object.defineProperty(t,`dateUnformat`,{enumerable:!0,get:function(){return n.y}})});
1
+ define([`require`,`exports`,`../.chunks/forms-C2ItFa61.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.stringToDate=t.getDayOfWeek=t.genUserDate=t.genDateMoscow=t.genDate=t.dateUnformat=t.dateToString=t.dateFormat=void 0,Object.defineProperty(t,`getDayOfWeek`,{enumerable:!0,get:function(){return n.C}}),Object.defineProperty(t,`genUserDate`,{enumerable:!0,get:function(){return n.S}}),Object.defineProperty(t,`dateFormat`,{enumerable:!0,get:function(){return n._}}),Object.defineProperty(t,`genDate`,{enumerable:!0,get:function(){return n.b}}),Object.defineProperty(t,`dateToString`,{enumerable:!0,get:function(){return n.v}}),Object.defineProperty(t,`stringToDate`,{enumerable:!0,get:function(){return n.w}}),Object.defineProperty(t,`genDateMoscow`,{enumerable:!0,get:function(){return n.x}}),Object.defineProperty(t,`dateUnformat`,{enumerable:!0,get:function(){return n.y}})});
2
2
  //# sourceMappingURL=date.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/date.js"],"names":["vue","exports","forms_DByj6MWE_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,aAAe,EAAQ,aAAe,EAAQ,YAAc,EAAQ,cAAgB,EAAQ,QAAU,EAAQ,aAAe,EAAQ,aAAe,EAAQ,WAAa,IAAK,GACtL,OAAO,eAAeA,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC3H,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC7H,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,EAC9H","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-DByj6MWE.esm.js\"], function (require, exports, forms_DByj6MWE_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.stringToDate = exports.getDayOfWeek = exports.genUserDate = exports.genDateMoscow = exports.genDate = exports.dateUnformat = exports.dateToString = exports.dateFormat = void 0;\n Object.defineProperty(exports, \"getDayOfWeek\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.C; } });\n Object.defineProperty(exports, \"genUserDate\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.S; } });\n Object.defineProperty(exports, \"dateFormat\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1._; } });\n Object.defineProperty(exports, \"genDate\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.b; } });\n Object.defineProperty(exports, \"dateToString\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.v; } });\n Object.defineProperty(exports, \"stringToDate\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.w; } });\n Object.defineProperty(exports, \"genDateMoscow\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.x; } });\n Object.defineProperty(exports, \"dateUnformat\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.y; } });\n});\n"]}
1
+ {"version":3,"sources":["utils/date.js"],"names":["vue","exports","forms_C2ItFa61_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,aAAe,EAAQ,aAAe,EAAQ,YAAc,EAAQ,cAAgB,EAAQ,QAAU,EAAQ,aAAe,EAAQ,aAAe,EAAQ,WAAa,IAAK,GACtL,OAAO,eAAeA,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC3H,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC7H,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,EAC9H","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-C2ItFa61.esm.js\"], function (require, exports, forms_C2ItFa61_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.stringToDate = exports.getDayOfWeek = exports.genUserDate = exports.genDateMoscow = exports.genDate = exports.dateUnformat = exports.dateToString = exports.dateFormat = void 0;\n Object.defineProperty(exports, \"getDayOfWeek\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.C; } });\n Object.defineProperty(exports, \"genUserDate\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.S; } });\n Object.defineProperty(exports, \"dateFormat\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1._; } });\n Object.defineProperty(exports, \"genDate\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.b; } });\n Object.defineProperty(exports, \"dateToString\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.v; } });\n Object.defineProperty(exports, \"stringToDate\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.w; } });\n Object.defineProperty(exports, \"genDateMoscow\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.x; } });\n Object.defineProperty(exports, \"dateUnformat\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.y; } });\n});\n"]}
package/utils/date.js CHANGED
@@ -1,2 +1,2 @@
1
- import { C as e, S as t, _ as n, b as r, v as i, w as a, x as o, y as s } from "../.chunks/forms-DByj6MWE.esm.js";
1
+ import { C as e, S as t, _ as n, b as r, v as i, w as a, x as o, y as s } from "../.chunks/forms-C2ItFa61.esm.js";
2
2
  export { n as dateFormat, i as dateToString, s as dateUnformat, r as genDate, o as genDateMoscow, t as genUserDate, e as getDayOfWeek, a as stringToDate };
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`../.chunks/forms-DByj6MWE.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.isSafari=t.isRetina=t.isMobile=t.isMacOS=t.isApp=t.getScrollTop=t.getOSAsync=t.getOS=t.getElsScroll=t.getCommandKeyLabel=t.get$scroll=void 0,Object.defineProperty(t,`getScrollTop`,{enumerable:!0,get:function(){return n.B}}),Object.defineProperty(t,`get$scroll`,{enumerable:!0,get:function(){return n.F}}),Object.defineProperty(t,`isSafari`,{enumerable:!0,get:function(){return n.G}}),Object.defineProperty(t,`isMacOS`,{enumerable:!0,get:function(){return n.H}}),Object.defineProperty(t,`getCommandKeyLabel`,{enumerable:!0,get:function(){return n.I}}),Object.defineProperty(t,`getElsScroll`,{enumerable:!0,get:function(){return n.L}}),Object.defineProperty(t,`getOS`,{enumerable:!0,get:function(){return n.R}}),Object.defineProperty(t,`isMobile`,{enumerable:!0,get:function(){return n.U}}),Object.defineProperty(t,`isApp`,{enumerable:!0,get:function(){return n.V}}),Object.defineProperty(t,`isRetina`,{enumerable:!0,get:function(){return n.W}}),Object.defineProperty(t,`getOSAsync`,{enumerable:!0,get:function(){return n.z}})});
1
+ define([`require`,`exports`,`../.chunks/forms-C2ItFa61.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.isSafari=t.isRetina=t.isMobile=t.isMacOS=t.isApp=t.getScrollTop=t.getOSAsync=t.getOS=t.getElsScroll=t.getCommandKeyLabel=t.get$scroll=void 0,Object.defineProperty(t,`getScrollTop`,{enumerable:!0,get:function(){return n.B}}),Object.defineProperty(t,`get$scroll`,{enumerable:!0,get:function(){return n.F}}),Object.defineProperty(t,`isSafari`,{enumerable:!0,get:function(){return n.G}}),Object.defineProperty(t,`isMacOS`,{enumerable:!0,get:function(){return n.H}}),Object.defineProperty(t,`getCommandKeyLabel`,{enumerable:!0,get:function(){return n.I}}),Object.defineProperty(t,`getElsScroll`,{enumerable:!0,get:function(){return n.L}}),Object.defineProperty(t,`getOS`,{enumerable:!0,get:function(){return n.R}}),Object.defineProperty(t,`isMobile`,{enumerable:!0,get:function(){return n.U}}),Object.defineProperty(t,`isApp`,{enumerable:!0,get:function(){return n.V}}),Object.defineProperty(t,`isRetina`,{enumerable:!0,get:function(){return n.W}}),Object.defineProperty(t,`getOSAsync`,{enumerable:!0,get:function(){return n.z}})});
2
2
  //# sourceMappingURL=device.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/device.js"],"names":["vue","exports","forms_DByj6MWE_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,SAAW,EAAQ,SAAW,EAAQ,SAAW,EAAQ,QAAU,EAAQ,MAAQ,EAAQ,aAAe,EAAQ,WAAa,EAAQ,MAAQ,EAAQ,aAAe,EAAQ,mBAAqB,EAAQ,WAAa,IAAK,GACrO,OAAO,eAAeA,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,qBAAsB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAClI,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,QAAS,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACrH,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,QAAS,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACrH,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,EAC5H","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-DByj6MWE.esm.js\"], function (require, exports, forms_DByj6MWE_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.isSafari = exports.isRetina = exports.isMobile = exports.isMacOS = exports.isApp = exports.getScrollTop = exports.getOSAsync = exports.getOS = exports.getElsScroll = exports.getCommandKeyLabel = exports.get$scroll = void 0;\n Object.defineProperty(exports, \"getScrollTop\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.B; } });\n Object.defineProperty(exports, \"get$scroll\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.F; } });\n Object.defineProperty(exports, \"isSafari\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.G; } });\n Object.defineProperty(exports, \"isMacOS\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.H; } });\n Object.defineProperty(exports, \"getCommandKeyLabel\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.I; } });\n Object.defineProperty(exports, \"getElsScroll\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.L; } });\n Object.defineProperty(exports, \"getOS\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.R; } });\n Object.defineProperty(exports, \"isMobile\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.U; } });\n Object.defineProperty(exports, \"isApp\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.V; } });\n Object.defineProperty(exports, \"isRetina\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.W; } });\n Object.defineProperty(exports, \"getOSAsync\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.z; } });\n});\n"]}
1
+ {"version":3,"sources":["utils/device.js"],"names":["vue","exports","forms_C2ItFa61_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,SAAW,EAAQ,SAAW,EAAQ,SAAW,EAAQ,QAAU,EAAQ,MAAQ,EAAQ,aAAe,EAAQ,WAAa,EAAQ,MAAQ,EAAQ,aAAe,EAAQ,mBAAqB,EAAQ,WAAa,IAAK,GACrO,OAAO,eAAeA,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC1H,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,qBAAsB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAClI,OAAO,eAAeD,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CAC5H,OAAO,eAAeD,EAAS,QAAS,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACrH,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,QAAS,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACrH,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,EAC5H","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-C2ItFa61.esm.js\"], function (require, exports, forms_C2ItFa61_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.isSafari = exports.isRetina = exports.isMobile = exports.isMacOS = exports.isApp = exports.getScrollTop = exports.getOSAsync = exports.getOS = exports.getElsScroll = exports.getCommandKeyLabel = exports.get$scroll = void 0;\n Object.defineProperty(exports, \"getScrollTop\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.B; } });\n Object.defineProperty(exports, \"get$scroll\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.F; } });\n Object.defineProperty(exports, \"isSafari\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.G; } });\n Object.defineProperty(exports, \"isMacOS\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.H; } });\n Object.defineProperty(exports, \"getCommandKeyLabel\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.I; } });\n Object.defineProperty(exports, \"getElsScroll\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.L; } });\n Object.defineProperty(exports, \"getOS\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.R; } });\n Object.defineProperty(exports, \"isMobile\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.U; } });\n Object.defineProperty(exports, \"isApp\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.V; } });\n Object.defineProperty(exports, \"isRetina\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.W; } });\n Object.defineProperty(exports, \"getOSAsync\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.z; } });\n});\n"]}
package/utils/device.js CHANGED
@@ -1,2 +1,2 @@
1
- import { B as e, F as t, G as n, H as r, I as i, L as a, R as o, U as s, V as c, W as l, z as u } from "../.chunks/forms-DByj6MWE.esm.js";
1
+ import { B as e, F as t, G as n, H as r, I as i, L as a, R as o, U as s, V as c, W as l, z as u } from "../.chunks/forms-C2ItFa61.esm.js";
2
2
  export { t as get$scroll, i as getCommandKeyLabel, a as getElsScroll, o as getOS, u as getOSAsync, e as getScrollTop, c as isApp, r as isMacOS, s as isMobile, l as isRetina, n as isSafari };
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`../.chunks/forms-DByj6MWE.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.throttle=t.merge=t.memoize=t.debounce=t.cloneDeep=void 0,Object.defineProperty(t,`merge`,{enumerable:!0,get:function(){return n.A}}),Object.defineProperty(t,`memoize`,{enumerable:!0,get:function(){return n.M}}),Object.defineProperty(t,`cloneDeep`,{enumerable:!0,get:function(){return n.N}}),Object.defineProperty(t,`debounce`,{enumerable:!0,get:function(){return n.P}}),Object.defineProperty(t,`throttle`,{enumerable:!0,get:function(){return n.j}})});
1
+ define([`require`,`exports`,`../.chunks/forms-C2ItFa61.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.throttle=t.merge=t.memoize=t.debounce=t.cloneDeep=void 0,Object.defineProperty(t,`merge`,{enumerable:!0,get:function(){return n.A}}),Object.defineProperty(t,`memoize`,{enumerable:!0,get:function(){return n.M}}),Object.defineProperty(t,`cloneDeep`,{enumerable:!0,get:function(){return n.N}}),Object.defineProperty(t,`debounce`,{enumerable:!0,get:function(){return n.P}}),Object.defineProperty(t,`throttle`,{enumerable:!0,get:function(){return n.j}})});
2
2
  //# sourceMappingURL=lodash.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/lodash.js"],"names":["vue","exports","forms_DByj6MWE_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,SAAW,EAAQ,MAAQ,EAAQ,QAAU,EAAQ,SAAW,EAAQ,UAAY,IAAK,GACjG,OAAO,eAAeA,EAAS,QAAS,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACrH,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACzH,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,EAC1H","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-DByj6MWE.esm.js\"], function (require, exports, forms_DByj6MWE_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.throttle = exports.merge = exports.memoize = exports.debounce = exports.cloneDeep = void 0;\n Object.defineProperty(exports, \"merge\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.A; } });\n Object.defineProperty(exports, \"memoize\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.M; } });\n Object.defineProperty(exports, \"cloneDeep\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.N; } });\n Object.defineProperty(exports, \"debounce\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.P; } });\n Object.defineProperty(exports, \"throttle\", { enumerable: true, get: function () { return forms_DByj6MWE_esm_js_1.j; } });\n});\n"]}
1
+ {"version":3,"sources":["utils/lodash.js"],"names":["vue","exports","forms_C2ItFa61_esm_js_1"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,IACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,GAAM,CAAC,CAC7D,EAAQ,SAAW,EAAQ,MAAQ,EAAQ,QAAU,EAAQ,SAAW,EAAQ,UAAY,IAAK,GACjG,OAAO,eAAeA,EAAS,QAAS,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACrH,OAAO,eAAeD,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACvH,OAAO,eAAeD,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACzH,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,CACxH,OAAO,eAAeD,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAwB,GAAM,CAAC,EAC1H","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-C2ItFa61.esm.js\"], function (require, exports, forms_C2ItFa61_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.throttle = exports.merge = exports.memoize = exports.debounce = exports.cloneDeep = void 0;\n Object.defineProperty(exports, \"merge\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.A; } });\n Object.defineProperty(exports, \"memoize\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.M; } });\n Object.defineProperty(exports, \"cloneDeep\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.N; } });\n Object.defineProperty(exports, \"debounce\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.P; } });\n Object.defineProperty(exports, \"throttle\", { enumerable: true, get: function () { return forms_C2ItFa61_esm_js_1.j; } });\n});\n"]}
package/utils/lodash.js CHANGED
@@ -1,2 +1,2 @@
1
- import { A as e, M as t, N as n, P as r, j as i } from "../.chunks/forms-DByj6MWE.esm.js";
1
+ import { A as e, M as t, N as n, P as r, j as i } from "../.chunks/forms-C2ItFa61.esm.js";
2
2
  export { n as cloneDeep, r as debounce, t as memoize, e as merge, i as throttle };
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`../.chunks/forms-DByj6MWE.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.genPrice=void 0,t.genPrice=(e,t,r=n.O.state.currency)=>{t??=(0,n.D)().value;let i=e.toLocaleString(t,{style:`currency`,currency:r,maximumFractionDigits:2});return i=i.replace(`,`,`.`),i}});
1
+ define([`require`,`exports`,`../.chunks/forms-C2ItFa61.amd`],function(e,t,n){"use strict";if(r===void 0)var r=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.genPrice=void 0,t.genPrice=(e,t,r=n.O.state.currency)=>{t??=(0,n.D)().value;let i=e.toLocaleString(t,{style:`currency`,currency:r,maximumFractionDigits:2});return i=i.replace(`,`,`.`),i}});
2
2
  //# sourceMappingURL=price.amd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/price.js","../../src/core/utils/price.ts"],"names":["vue","exports","forms_DByj6MWE_esm_js_1","a","n","r","i"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,ICeS,OAAY,eAAsEC,EAAM,aAAqB,CAAA,MAAA,GAAA,CAAA,CACzH,EAA6B,SAAA,IAAA,GDH1B,EAAQ,UCKoC,EAAA,EAAA,EAAAC,EAAA,EAAA,MAAA,WAAA,CAAY,KAAA,EAAAA,EAAA,IAAA,CAAA,MAAU,IAAAC,EAAAC,EAAA,eAAuBC,EAAA,CAAI,MAAA,WACvF,SAAeC,EDVb,sBAAuB,EAC1B,CAAC,CACF,MAAO,GAAIH,EAAE,QAAQ,IAAK,IAAI,CAAEA,IAGtC","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-DByj6MWE.esm.js\"], function (require, exports, forms_DByj6MWE_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.genPrice = void 0;\n //#region src/core/utils/price.ts\n var n = (n, r, i = forms_DByj6MWE_esm_js_1.O.state.currency) => {\n r ??= (0, forms_DByj6MWE_esm_js_1.D)().value;\n let a = n.toLocaleString(r, {\n style: \"currency\",\n currency: i,\n maximumFractionDigits: 2\n });\n return a = a.replace(\",\", \".\"), a;\n };\n exports.genPrice = n;\n});\n//# sourceMappingURL=price.js.map\n","/**\n * Работа с ценами\n * @packageDocumentation\n */\n\nimport type { Lang } from '@/core/plugins/i18n';\nimport { useI18nLang } from '@/core/plugins/i18n';\nimport Core from '@/core/core/core';\n\n/**\n * Сгенерировать строку с суммой и валютой\n * @param sum - сумма\n * @param lang - язык, берётся из профиля, если не задано\n * @param currency - валюта, берётся из профиля, если не задано\n * @returns строка с языкозависимым представлением числа sum и знаком валюты\n */\nexport const genPrice = (sum: number, lang?: Lang, currency: typeof Core.state.currency = Core.state.currency): string => {\n\tlang = lang ?? useI18nLang().value;\n\n\tlet sumStr = sum.toLocaleString(lang, { style: 'currency', currency, maximumFractionDigits: 2 });\n\tsumStr = sumStr.replace(',', '.');\n\n\treturn sumStr;\n};\n"]}
1
+ {"version":3,"sources":["utils/price.js","../../src/core/utils/price.ts"],"names":["vue","exports","forms_C2ItFa61_esm_js_1","a","n","r","i"],"mappings":"AAAA,OAAO,CAAC,UAAW,UAAW,gCAAmC,CAAE,SAAU,EAAS,EAAS,EAAyB,CACpH,aAAA,GAAAA,IAAA,OAAA,IAAAA,EAAA,OAAA,ICeS,OAAY,eAAsEC,EAAM,aAAqB,CAAA,MAAA,GAAA,CAAA,CACzH,EAA6B,SAAA,IAAA,GDH1B,EAAQ,UCKoC,EAAA,EAAA,EAAAC,EAAA,EAAA,MAAA,WAAA,CAAY,KAAA,EAAAA,EAAA,IAAA,CAAA,MAAU,IAAAC,EAAAC,EAAA,eAAuBC,EAAA,CAAI,MAAA,WACvF,SAAeC,EDVb,sBAAuB,EAC1B,CAAC,CACF,MAAO,GAAIH,EAAE,QAAQ,IAAK,IAAI,CAAEA,IAGtC","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-C2ItFa61.esm.js\"], function (require, exports, forms_C2ItFa61_esm_js_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.genPrice = void 0;\n //#region src/core/utils/price.ts\n var n = (n, r, i = forms_C2ItFa61_esm_js_1.O.state.currency) => {\n r ??= (0, forms_C2ItFa61_esm_js_1.D)().value;\n let a = n.toLocaleString(r, {\n style: \"currency\",\n currency: i,\n maximumFractionDigits: 2\n });\n return a = a.replace(\",\", \".\"), a;\n };\n exports.genPrice = n;\n});\n//# sourceMappingURL=price.js.map\n","/**\n * Работа с ценами\n * @packageDocumentation\n */\n\nimport type { Lang } from '@/core/plugins/i18n';\nimport { useI18nLang } from '@/core/plugins/i18n';\nimport Core from '@/core/core/core';\n\n/**\n * Сгенерировать строку с суммой и валютой\n * @param sum - сумма\n * @param lang - язык, берётся из профиля, если не задано\n * @param currency - валюта, берётся из профиля, если не задано\n * @returns строка с языкозависимым представлением числа sum и знаком валюты\n */\nexport const genPrice = (sum: number, lang?: Lang, currency: typeof Core.state.currency = Core.state.currency): string => {\n\tlang = lang ?? useI18nLang().value;\n\n\tlet sumStr = sum.toLocaleString(lang, { style: 'currency', currency, maximumFractionDigits: 2 });\n\tsumStr = sumStr.replace(',', '.');\n\n\treturn sumStr;\n};\n"]}
package/utils/price.js CHANGED
@@ -1,4 +1,4 @@
1
- import { D as e, O as t } from "../.chunks/forms-DByj6MWE.esm.js";
1
+ import { D as e, O as t } from "../.chunks/forms-C2ItFa61.esm.js";
2
2
  //#region src/core/utils/price.ts
3
3
  var n = (n, r, i = t.state.currency) => {
4
4
  r ??= e().value;
@@ -1,2 +1,2 @@
1
- define([`require`,`exports`,`../.chunks/app-DyAn8Ury.amd`],function(e,t){"use strict";if(n===void 0)var n=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.searchersNames=t.prepareVolumeType=t.getSearcherGIcon=t.getLangLabel=t.getDeviceGIcon=t.genVolumeLabel=void 0,t.searchersNames={0:`Yandex`,20:`Yandex.com`,21:`Yandex.com.tr`,1:`Google`,4:`YouTube`,5:`Bing`,7:`Seznam`,8:`AppStore`,9:`GooglePlay`,101:`VK`,102:`Facebook`,103:`Twitter`},t.getSearcherGIcon=e=>{let t=``;switch(typeof e==`string`&&(e=Number(e)),e){case 0:t=``;break;case 20:case 21:t=``;break;case 1:t=``;break;case 2:t=``;break;case 3:t=``;break;case 4:t=``;break;case 5:t=``;break;case 6:t=``;break;case 7:t=``;break;case 8:t=``;break;case 9:t=``;break;case null:t=``;break}return t},t.getDeviceGIcon=e=>{let t=``;switch(typeof e==`string`&&(e=Number(e)),e%10){case 0:t=``;break;case 1:t=``;break;case 2:t=``;break}return t},t.getLangLabel=(e,t)=>{switch(typeof e==`string`&&(e=Number(e)),e*1){case 1:case 4:case 5:case 6:case 8:case 9:return t}return``},t.genVolumeLabel=(e,t,n)=>{switch(t*1){case 0:switch(n*1){case 2:e=`"${e}"`;break;case 3:e=`"!${e}"`;break;case 5:e=`"[${e}]"`;break;case 6:e=`"[!${e}]"`;break}break;case 1:e=`[${e}]`;break}return e},t.prepareVolumeType=(e,t)=>{switch(t===null&&(t=6),e){case 1:t=3;break;case 2:t=2;break;case 5:t>1&&(t=1);break;default:[1,2,3,5,6].includes(t)||(t=3)}return t}});
1
+ define([`require`,`exports`,`../.chunks/app-BDGZ1d0R.amd`],function(e,t){"use strict";if(n===void 0)var n=window.Vue;Object.defineProperty(t,`__esModule`,{value:!0}),t.searchersNames=t.prepareVolumeType=t.getSearcherGIcon=t.getLangLabel=t.getDeviceGIcon=t.genVolumeLabel=void 0,t.searchersNames={0:`Yandex`,20:`Yandex.com`,21:`Yandex.com.tr`,1:`Google`,4:`YouTube`,5:`Bing`,7:`Seznam`,8:`AppStore`,9:`GooglePlay`,101:`VK`,102:`Facebook`,103:`Twitter`},t.getSearcherGIcon=e=>{let t=``;switch(typeof e==`string`&&(e=Number(e)),e){case 0:t=``;break;case 20:case 21:t=``;break;case 1:t=``;break;case 2:t=``;break;case 3:t=``;break;case 4:t=``;break;case 5:t=``;break;case 6:t=``;break;case 7:t=``;break;case 8:t=``;break;case 9:t=``;break;case null:t=``;break}return t},t.getDeviceGIcon=e=>{let t=``;switch(typeof e==`string`&&(e=Number(e)),e%10){case 0:t=``;break;case 1:t=``;break;case 2:t=``;break}return t},t.getLangLabel=(e,t)=>{switch(typeof e==`string`&&(e=Number(e)),e*1){case 1:case 4:case 5:case 6:case 8:case 9:return t}return``},t.genVolumeLabel=(e,t,n)=>{switch(t*1){case 0:switch(n*1){case 2:e=`"${e}"`;break;case 3:e=`"!${e}"`;break;case 5:e=`"[${e}]"`;break;case 6:e=`"[!${e}]"`;break}break;case 1:e=`[${e}]`;break}return e},t.prepareVolumeType=(e,t)=>{switch(t===null&&(t=6),e){case 1:t=3;break;case 2:t=2;break;case 5:t>1&&(t=1);break;default:[1,2,3,5,6].includes(t)||(t=3)}return t}});
2
2
  //# sourceMappingURL=searchers.amd.js.map