@topvisor/ui 1.4.0 → 1.4.1-projectSelector.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 (225) hide show
  1. package/.chunks/core-BgoBbm_5.es.js +242 -0
  2. package/.chunks/core-BgoBbm_5.es.js.map +1 -0
  3. package/.chunks/core-D1KnwO7l.amd.js +2 -0
  4. package/.chunks/core-D1KnwO7l.amd.js.map +1 -0
  5. package/.chunks/{datepicker-D1Hw3a3o.es.js → datepicker-BPTUHd97.es.js} +2 -2
  6. package/.chunks/datepicker-BPTUHd97.es.js.map +1 -0
  7. package/.chunks/{datepicker-3coUsFW2.amd.js → datepicker-O_SK-Dz4.amd.js} +2 -2
  8. package/.chunks/datepicker-O_SK-Dz4.amd.js.map +1 -0
  9. package/.chunks/{dialog_regionSelectorRegions-CZ8IX7la.amd.js → dialog_regionSelectorRegions-Ba-Eypgv.amd.js} +2 -2
  10. package/.chunks/dialog_regionSelectorRegions-Ba-Eypgv.amd.js.map +1 -0
  11. package/.chunks/{dialog_regionSelectorRegions-1UVhgK2f.es.js → dialog_regionSelectorRegions-DA38RsiW.es.js} +4 -4
  12. package/.chunks/dialog_regionSelectorRegions-DA38RsiW.es.js.map +1 -0
  13. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js → dialogs.vue_vue_type_script_setup_true_lang-CWprVs8d.amd.js} +2 -2
  14. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CWprVs8d.amd.js.map +1 -0
  15. package/.chunks/{dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js → dialogs.vue_vue_type_script_setup_true_lang-CzFMOjlE.es.js} +2 -2
  16. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-CzFMOjlE.es.js.map +1 -0
  17. package/.chunks/field-Cvv0SRcJ.amd.js.map +1 -1
  18. package/.chunks/field-CyyFzM-Y.es.js.map +1 -1
  19. package/.chunks/{forms-CUSCBQu3.amd.js → forms-4D_EVI46.amd.js} +3 -3
  20. package/.chunks/forms-4D_EVI46.amd.js.map +1 -0
  21. package/.chunks/{forms-BseC3Ftz.es.js → forms-xkXHvvah.es.js} +565 -551
  22. package/.chunks/forms-xkXHvvah.es.js.map +1 -0
  23. package/.chunks/index-DLUtoTUg.amd.js.map +1 -1
  24. package/.chunks/index-DkQWJkMc.es.js.map +1 -1
  25. package/.chunks/lazy-40pjr8cZ.es.js.map +1 -1
  26. package/.chunks/lazy-DSFLxvj4.amd.js.map +1 -1
  27. package/.chunks/{notice-DwjipV21.amd.js → notice-hF3z8ewG.amd.js} +2 -2
  28. package/.chunks/notice-hF3z8ewG.amd.js.map +1 -0
  29. package/.chunks/{notice-Cl3ZgiHm.es.js → notice-wqZxmsUH.es.js} +2 -2
  30. package/.chunks/notice-wqZxmsUH.es.js.map +1 -0
  31. package/.chunks/{page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js → page.vue_vue_type_script_setup_true_lang-rW3w9LMh.es.js} +4 -4
  32. package/.chunks/page.vue_vue_type_script_setup_true_lang-rW3w9LMh.es.js.map +1 -0
  33. package/.chunks/{page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js → page.vue_vue_type_script_setup_true_lang-tiWuQ_ZK.amd.js} +2 -2
  34. package/.chunks/page.vue_vue_type_script_setup_true_lang-tiWuQ_ZK.amd.js.map +1 -0
  35. package/.chunks/policy.vue_vue_type_style_index_0_lang-C9A--uWd.es.js +503 -0
  36. package/.chunks/policy.vue_vue_type_style_index_0_lang-C9A--uWd.es.js.map +1 -0
  37. package/.chunks/policy.vue_vue_type_style_index_0_lang-DABqSSXw.amd.js +2 -0
  38. package/.chunks/policy.vue_vue_type_style_index_0_lang-DABqSSXw.amd.js.map +1 -0
  39. package/.chunks/{popup-Jw_Yyg3U.es.js → popup-BeLPdHWv.es.js} +2 -2
  40. package/.chunks/popup-BeLPdHWv.es.js.map +1 -0
  41. package/.chunks/{popup-DRuyYFGB.amd.js → popup-Bwmu8rOb.amd.js} +2 -2
  42. package/.chunks/popup-Bwmu8rOb.amd.js.map +1 -0
  43. package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js → popupHint.vue_vue_type_style_index_0_lang-B0BWXhHK.amd.js} +2 -2
  44. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-B0BWXhHK.amd.js.map +1 -0
  45. package/.chunks/{popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js → popupHint.vue_vue_type_style_index_0_lang-fnjq0yg1.es.js} +2 -2
  46. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-fnjq0yg1.es.js.map +1 -0
  47. package/.chunks/store-CX_6ZXhO.es.js.map +1 -1
  48. package/.chunks/store-YRW59xEF.amd.js.map +1 -1
  49. package/.chunks/{utils-D9nYQabE.amd.js → utils-BRJvuqe_.amd.js} +2 -2
  50. package/.chunks/utils-BRJvuqe_.amd.js.map +1 -0
  51. package/.chunks/{utils-YrUExsH7.es.js → utils-ByqQkftW.es.js} +2 -2
  52. package/.chunks/utils-ByqQkftW.es.js.map +1 -0
  53. package/.chunks/{utils-Q69SXlnV.es.js → utils-YVlPlqDK.es.js} +3 -3
  54. package/.chunks/utils-YVlPlqDK.es.js.map +1 -0
  55. package/.chunks/{utils-CzHUG_xz.amd.js → utils-cAJahDml.amd.js} +2 -2
  56. package/.chunks/utils-cAJahDml.amd.js.map +1 -0
  57. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js → widgetInput.vue_vue_type_script_setup_true_lang-D7lVLE3D.amd.js} +2 -2
  58. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-D7lVLE3D.amd.js.map +1 -0
  59. package/.chunks/{widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js → widgetInput.vue_vue_type_script_setup_true_lang-UUovJzhL.es.js} +2 -2
  60. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-UUovJzhL.es.js.map +1 -0
  61. package/README.md +82 -82
  62. package/api/additional.amd.js.map +1 -1
  63. package/api/additional.js.map +1 -1
  64. package/api/index.amd.js +1 -1
  65. package/api/index.amd.js.map +1 -1
  66. package/api/index.js +1 -1
  67. package/api/index.js.map +1 -1
  68. package/assets/core.css +1 -1
  69. package/assets/forms.css +1 -1
  70. package/assets/policy.css +1 -1
  71. package/assets/project.css +1 -1
  72. package/charts/charts.amd.js +1 -1
  73. package/charts/charts.amd.js.map +1 -1
  74. package/charts/charts.js +1 -1
  75. package/charts/charts.js.map +1 -1
  76. package/core/app.amd.js +1 -1
  77. package/core/app.amd.js.map +1 -1
  78. package/core/app.js +5 -5
  79. package/core/app.js.map +1 -1
  80. package/dialog/dialog.amd.js +1 -1
  81. package/dialog/dialog.amd.js.map +1 -1
  82. package/dialog/dialog.js +2 -2
  83. package/dialog/dialog.js.map +1 -1
  84. package/extra/extra.amd.js.map +1 -1
  85. package/extra/extra.js.map +1 -1
  86. package/forms/forms.amd.js +1 -1
  87. package/forms/forms.js +3 -3
  88. package/formsExt/formsExt.amd.js +1 -1
  89. package/formsExt/formsExt.amd.js.map +1 -1
  90. package/formsExt/formsExt.js +123 -111
  91. package/formsExt/formsExt.js.map +1 -1
  92. package/icomoon/Read Me.txt +7 -7
  93. package/icomoon/Topvisor icons.json +6658 -0
  94. package/icomoon/demo-files/demo.css +158 -158
  95. package/icomoon/demo-files/demo.js +30 -30
  96. package/icomoon/demo.css +158 -158
  97. package/icomoon/demo.html +15 -1
  98. package/icomoon/demo.js +30 -30
  99. package/icomoon/fonts/Topvisor-2.eot +0 -0
  100. package/icomoon/fonts/Topvisor-2.svg +1 -0
  101. package/icomoon/fonts/Topvisor-2.ttf +0 -0
  102. package/icomoon/fonts/Topvisor-2.woff +0 -0
  103. package/icomoon/selection.json +1 -1
  104. package/icomoon/style.css +8 -5
  105. package/jquery-ui.min.css +5 -5
  106. package/layout/layout.amd.js +1 -1
  107. package/layout/layout.amd.js.map +1 -1
  108. package/layout/layout.js +1 -1
  109. package/layout/layout.js.map +1 -1
  110. package/package.json +1 -1
  111. package/popup/popup.amd.js +1 -1
  112. package/popup/popup.amd.js.map +1 -1
  113. package/popup/popup.js +6 -6
  114. package/popup/popup.js.map +1 -1
  115. package/popup/worker.amd.js +1 -1
  116. package/popup/worker.amd.js.map +1 -1
  117. package/popup/worker.js +2 -2
  118. package/popup/worker.js.map +1 -1
  119. package/project/project.amd.js +1 -1
  120. package/project/project.amd.js.map +1 -1
  121. package/project/project.js +896 -614
  122. package/project/project.js.map +1 -1
  123. package/require/css.amd.js +12 -12
  124. package/src/api/api/types/client/request-options.d.ts +8 -3
  125. package/src/components/forms/caption/types.d.ts +5 -1
  126. package/src/components/forms/input/input.vue.d.ts +2 -4
  127. package/src/components/forms/input/types.d.ts +15 -0
  128. package/src/components/forms/select/select.vue.d.ts +15 -2
  129. package/src/components/forms/select/types.d.ts +6 -0
  130. package/src/components/formsExt/editArea/editArea.vue.d.ts +15 -2
  131. package/src/components/formsExt/editArea/types.d.ts +6 -0
  132. package/src/components/formsExt/editInput/editInput.vue.d.ts +16 -1
  133. package/src/components/formsExt/selector2/composables/useAPI.d.ts +2 -0
  134. package/src/components/formsExt/selector2/composables/useMenu.d.ts +3 -1
  135. package/src/components/formsExt/selector2/types.d.ts +14 -0
  136. package/src/components/popup/popup/listItem.vue.d.ts +24 -4
  137. package/src/components/popup/popup/types.d.ts +1 -0
  138. package/src/components/project/groupSelector/groups/groups.vue.d.ts +2 -0
  139. package/src/components/project/groupSelector/groups/utils.d.ts +1 -1
  140. package/src/components/project/project.d.ts +1 -0
  141. package/src/components/project/projectSelector/projectSelector.vue.d.ts +121 -0
  142. package/src/components/project/projectSelector/stories/mocks/projects.d.ts +10 -0
  143. package/src/components/project/projectSelector/submenu/submenu.vue.d.ts +4 -0
  144. package/src/components/project/projectSelector/submenu/types.d.ts +17 -0
  145. package/src/components/project/projectSelector/types.d.ts +57 -0
  146. package/src/components/project/projectSelector/utils.d.ts +206 -0
  147. package/src/core/directives/shortcut.d.ts +12 -0
  148. package/src/core/utils/string.d.ts +1 -1
  149. package/tabs/tabs.amd.js.map +1 -1
  150. package/tabs/tabs.js.map +1 -1
  151. package/tabsView/tabsView.amd.js +1 -1
  152. package/tabsView/tabsView.amd.js.map +1 -1
  153. package/tabsView/tabsView.js +2 -2
  154. package/tabsView/tabsView.js.map +1 -1
  155. package/utils/check.amd.js.map +1 -1
  156. package/utils/check.js.map +1 -1
  157. package/utils/clipboard.amd.js +1 -1
  158. package/utils/clipboard.amd.js.map +1 -1
  159. package/utils/clipboard.js +1 -1
  160. package/utils/clipboard.js.map +1 -1
  161. package/utils/date.amd.js +1 -1
  162. package/utils/date.js +1 -1
  163. package/utils/device.amd.js +1 -1
  164. package/utils/device.js +1 -1
  165. package/utils/dom.amd.js.map +1 -1
  166. package/utils/dom.js.map +1 -1
  167. package/utils/image.amd.js.map +1 -1
  168. package/utils/image.js.map +1 -1
  169. package/utils/keyboard.amd.js.map +1 -1
  170. package/utils/keyboard.js.map +1 -1
  171. package/utils/lodash.amd.js +1 -1
  172. package/utils/lodash.js +1 -1
  173. package/utils/number.amd.js.map +1 -1
  174. package/utils/number.js.map +1 -1
  175. package/utils/price.amd.js +1 -1
  176. package/utils/price.amd.js.map +1 -1
  177. package/utils/price.js +1 -1
  178. package/utils/price.js.map +1 -1
  179. package/utils/route.amd.js.map +1 -1
  180. package/utils/route.js.map +1 -1
  181. package/utils/scroll.amd.js.map +1 -1
  182. package/utils/scroll.js.map +1 -1
  183. package/utils/searchers.amd.js +1 -1
  184. package/utils/searchers.amd.js.map +1 -1
  185. package/utils/searchers.js +3 -3
  186. package/utils/searchers.js.map +1 -1
  187. package/utils/string.amd.js +1 -1
  188. package/utils/string.amd.js.map +1 -1
  189. package/utils/string.js +1 -1
  190. package/utils/string.js.map +1 -1
  191. package/utils/system.amd.js.map +1 -1
  192. package/utils/system.js.map +1 -1
  193. package/utils/url.amd.js.map +1 -1
  194. package/utils/url.js.map +1 -1
  195. package/web-types.json +31 -0
  196. package/.chunks/core-BL-38XF7.es.js +0 -196
  197. package/.chunks/core-BL-38XF7.es.js.map +0 -1
  198. package/.chunks/core-BsPx05H9.amd.js +0 -2
  199. package/.chunks/core-BsPx05H9.amd.js.map +0 -1
  200. package/.chunks/datepicker-3coUsFW2.amd.js.map +0 -1
  201. package/.chunks/datepicker-D1Hw3a3o.es.js.map +0 -1
  202. package/.chunks/dialog_regionSelectorRegions-1UVhgK2f.es.js.map +0 -1
  203. package/.chunks/dialog_regionSelectorRegions-CZ8IX7la.amd.js.map +0 -1
  204. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-DRbTG0vh.es.js.map +0 -1
  205. package/.chunks/dialogs.vue_vue_type_script_setup_true_lang-Dq9kWWMg.amd.js.map +0 -1
  206. package/.chunks/forms-BseC3Ftz.es.js.map +0 -1
  207. package/.chunks/forms-CUSCBQu3.amd.js.map +0 -1
  208. package/.chunks/notice-Cl3ZgiHm.es.js.map +0 -1
  209. package/.chunks/notice-DwjipV21.amd.js.map +0 -1
  210. package/.chunks/page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js.map +0 -1
  211. package/.chunks/page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js.map +0 -1
  212. package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js +0 -496
  213. package/.chunks/policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js.map +0 -1
  214. package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js +0 -2
  215. package/.chunks/policy.vue_vue_type_style_index_0_lang-DJOaMdBm.amd.js.map +0 -1
  216. package/.chunks/popup-DRuyYFGB.amd.js.map +0 -1
  217. package/.chunks/popup-Jw_Yyg3U.es.js.map +0 -1
  218. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js.map +0 -1
  219. package/.chunks/popupHint.vue_vue_type_style_index_0_lang-DtiT6NE4.amd.js.map +0 -1
  220. package/.chunks/utils-CzHUG_xz.amd.js.map +0 -1
  221. package/.chunks/utils-D9nYQabE.amd.js.map +0 -1
  222. package/.chunks/utils-Q69SXlnV.es.js.map +0 -1
  223. package/.chunks/utils-YrUExsH7.es.js.map +0 -1
  224. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js.map +0 -1
  225. package/.chunks/widgetInput.vue_vue_type_script_setup_true_lang-CkE912ll.amd.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"notice-Cl3ZgiHm.es.js","sources":["../../src/components/core/notice/utils.ts","../../src/components/core/notice/item/item.vue","../../src/components/core/notice/notice.vue"],"sourcesContent":["import { reactive } from 'vue';\nimport type { Props as ItemProps, Props, Style } from '@/components/core/notice/item/types';\nimport Core from '@/core/core/core';\nimport { genIntHash } from '@/core/utils/string';\n\nexport const transitionDuration = 300;\n\nexport type Item = Props & { onClose?: Function };\n\nexport const itemById = reactive(new Map<string, Item>());\n\nconst genItemId = (text: ItemProps['text'], style: ItemProps['style'], options?: Options) => {\n\treturn 'top-notice_' + genIntHash(text + style + JSON.stringify(options));\n};\n\nexport type Options = {\n\ttitle?: ItemProps['title'],\n\tmetaText?: ItemProps['metaText'],\n\tbuttonProps?: ItemProps['buttonProps'],\n\tbuttonsProps?: ItemProps['buttonsProps'],\n\tisSafeHTML?: ItemProps['isSafeHTML'],\n\tselectToClose?: ItemProps['selectToClose'],\n\tonClose?: Function\n}\n\n/**\n * Показать сообщением в стиле push уведомления\n *\n * title будет получен из первой строки text\n *\n * Если в options указан title, он будет взят оттуда\n */\nexport const show = (text: string, style: Style = 'info', options?: Options) => {\n\tlet title = '';\n\n\ttext = String(text);\n\n\tconst id = genItemId(text, style, options);\n\n\tif (options?.title) {\n\t\ttitle = options.title;\n\t} else {\n\t\tconst chunks = text.split('\\n');\n\n\t\tif (chunks.length) {\n\t\t\ttitle = String(chunks.shift());\n\t\t\ttext = chunks.join('\\n');\n\t\t}\n\t}\n\n\tconst itemExists = itemById.get(id);\n\tif (itemExists) {\n\t\thightlight(itemExists);\n\n\t\treturn;\n\t}\n\n\tconst item: Item = {\n\t\tid,\n\t\ttitle,\n\t\ttext,\n\t\tstyle,\n\t\tbuttonProps: options?.buttonProps,\n\t\tbuttonsProps: options?.buttonsProps,\n\t\tmetaText: options?.metaText,\n\t\tisSafeHTML: options?.isSafeHTML,\n\t\tselectToClose: options?.selectToClose,\n\t\tonClose: options?.onClose,\n\t};\n\n\titemById.set(item.id, item);\n\n\tif (itemById.size > 5) {\n\t\tconst [_firstId, firstItem] = [...itemById].at(0) || [];\n\t\tif (firstItem) close(firstItem);\n\t}\n\n\t/**\n\t * Автозакрытие ошибок форм\n\t *\n\t * Добавляет\n\t */\n\tif (Core.state.isMobile) {\n\t\t$('input').one('click', () => close(item));\n\t}\n};\n\nconst hightlight = (item: Item) => {\n\titem.hightlight = true;\n\n\tsetTimeout(() => item.hightlight = false, transitionDuration);\n};\n\nconst close = (item: Item) => {\n\titem.forceClosed = true;\n\n\tsetTimeout(() => {\n\t\titem.onClose?.();\n\n\t\titemById.delete(item.id);\n\t}, transitionDuration);\n};\n\n/**\n * Убрать подозрительный html код\n */\nexport const prepareText = (text: string) => {\n\tconst textNoSafety = 'hacking was detected';\n\n\ttext = text.replace(/<script/g, textNoSafety);\n\ttext = text.replace(/<img/g, textNoSafety);\n\ttext = text.replace(/<iframe/g, textNoSafety);\n\ttext = text.replace(/javascript:/g, textNoSafety);\n\ttext = text.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, textNoSafety);\n\n\treturn text;\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, withDefaults } from 'vue';\n\nimport Core from '@/core/core/core';\nimport { nl2br } from '@/core/utils/string';\n\nimport type { Emits, Props } from './types';\nimport { prepareText, transitionDuration } from '@/components/core/notice/utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tselectToClose: true,\n});\n\nconst emit = defineEmits<Emits>();\n\n// анимация появления\nconst showed = ref(false);\nsetTimeout(() => showed.value = true, 10);\n\n// анимация закрытия\nconst closed = ref(false);\nconst closedDirection = ref<'top' | 'right' | 'bottom' | 'left'>('right');\n\nconst title = computed(() => {\n\tlet res = props.title.replace(/ {2}/g, '&nbsp;');\n\n\tif (!props.isSafeHTML) res = prepareText(res);\n\n\treturn res;\n});\n\nconst text = computed(() => {\n\tlet res = nl2br(props.text);\n\n\tres = res.replace(/ {2}/g, '&nbsp;');\n\n\tif (!props.isSafeHTML) res = prepareText(res);\n\n\treturn res;\n});\n\nconst close = (direction?: typeof closedDirection.value) => {\n\tclosed.value = true;\n\n\tif (direction) {\n\t\tclosedDirection.value = direction;\n\t}\n\n\tsetTimeout(() => emit('close'), transitionDuration);\n};\n\nconst onClick = (e: MouseEvent) => {\n\tif (!props.selectToClose) return;\n\n\tconst { tagName } = e.target as HTMLElement;\n\n\tif (tagName === 'A') close();\n\tif (tagName === 'BUTTON') close();\n};\n\nconst vSwipe = {\n\tmounted: (el: HTMLElement) => {\n\t\tif (!Core.state.isMobile) return;\n\n\t\tif (!Core.$ || !Core.$.ui['draggable']) return;\n\n\t\tlet direction: typeof closedDirection.value = 'right';\n\n\t\tlet axis = 'x';\n\t\t// if (getOS() === 'iOS') axis = 'y';\n\n\t\tCore.$(el).draggable({\n\t\t\trevert: false,\n\t\t\taxis,\n\t\t\tdrag: (_e, ui) => {\n\t\t\t\tif (axis == 'x') {\n\t\t\t\t\tdirection = ui.position.left > 0 ? 'right' : 'left';\n\t\t\t\t} else {\n\t\t\t\t\tdirection = ui.position.top > 0 ? 'bottom' : 'top';\n\t\t\t\t}\n\t\t\t},\n\t\t\tstop: (_e, _ui) => {\n\t\t\t\tclose(direction);\n\t\t\t},\n\t\t});\n\t},\n};\n\n// const vSwipe = {\n// \tmounted: (el: HTMLElement) => {\n// \t\tconst { distanceX, direction } = usePointerSwipe(el, {\n// \t\t\tdisableTextSelect: true,\n// \t\t\tonSwipe(e: PointerEvent) {\n// \t\t\t\tleft.value = -distanceX.value + 'px';\n// \t\t\t},\n// \t\t\tonSwipeEnd: (_e, direction) => {\n// \t\t\t\tclose(direction);\n// \t\t\t},\n// \t\t});\n// \t},\n// };\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-notice_item\"\n\t\t:class=\"{\n\t\t\t['top-notice_item-' + style]: true,\n\t\t\t'top-notice_item-hightlight': hightlight,\n\t\t\t'top-notice_item-showed': showed,\n\t\t\t'top-notice_item-closed': closed || forceClosed,\n\t\t\t['top-notice_item-closed_' + closedDirection]: closed,\n\t\t}\"\n\t\t@click=\"onClick\"\n\t\tv-swipe\n\t>\n\t\t<div class=\"top-notice_itemTextWrapper\">\n\t\t\t<div v-if=\"title\" class=\"top-notice_itemTitle\" v-html=\"title\"></div>\n\t\t\t<div v-if=\"text\" class=\"top-notice_itemText\" v-html=\"text\"></div>\n\t\t</div>\n\n\t\t<TopButton\n\t\t\tv-if=\"buttonProps\"\n\t\t\tclass=\"top-notice_itemButton\"\n\t\t\tsize=\"s\"\n\t\t\t:=\"buttonProps\"\n\t\t\t:title=\"buttonProps.title\"\n\t\t\tv-html=\"buttonProps.default\"\n\t\t\t@click=\"close()\"\n\t\t/>\n\n\t\t<div\n\t\t\tv-if=\"buttonsProps?.length\"\n\t\t\tclass=\"top-notice_itemButtons\"\n\t\t>\n\t\t\t<TopButton\n\t\t\t\tv-for=\"buttonProps in buttonsProps\"\n\t\t\t\tclass=\"top-notice_itemButton\"\n\t\t\t\tsize=\"s\"\n\t\t\t\t:=\"buttonProps\"\n\t\t\t\t:title=\"buttonProps.title\"\n\t\t\t\tv-html=\"buttonProps.default\"\n\t\t\t\t@click=\"close()\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<div v-if=\"metaText\" class=\"top-notice_itemMetaText\" v-html=\"metaText\"></div>\n\n\t\t<div\n\t\t\tclass=\"top-notice_itemClose\"\n\t\t\tdata-top-icon=\"\"\n\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t@click=\"() => close()\"\n\t\t></div>\n\t</div>\n</template>\n\n<style>\n@import \"style.css\";\n</style>\n","<!-- performance all in one file component, для Core.notice() -->\n<script lang=\"ts\">\nexport { show } from './utils';\n</script>\n\n<script setup lang=\"ts\">\nimport type { Item } from './utils';\nimport { itemById } from './utils';\n\nimport type { Props } from './types';\nimport TopNoticeItem from './item/item.vue';\n\ndefineProps<Props>();\n\nconst onCloseItem = (item: Item) => {\n\titem.onClose?.();\n\n\titemById.delete(item.id);\n};\n</script>\n\n<template>\n\t<teleport to=\"body\">\n\t\t<div class=\"top-notice\">\n\t\t\t<TopNoticeItem\n\t\t\t\tv-for=\"[_index, item] in itemById\"\n\t\t\t\t:key=\"item.id\"\n\t\t\t\t:id=\"item.id\"\n\t\t\t\t:title=\"item.title\"\n\t\t\t\t:text=\"item.text\"\n\t\t\t\t:style=\"item.style\"\n\t\t\t\t:buttonProps=\"item.buttonProps\"\n\t\t\t\t:buttonsProps=\"item.buttonsProps\"\n\t\t\t\t:metaText=\"item.metaText\"\n\t\t\t\t:isSafeHTML=\"item.isSafeHTML\"\n\t\t\t\t:forceClosed=\"item.forceClosed\"\n\t\t\t\t:hightlight=\"item.hightlight\"\n\t\t\t\t@close=\"onCloseItem(item)\"\n\t\t\t/>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n:root {\n\t--top-notice-top: var(--top-padding-4);\n\t--top-notice-right: var(--top-padding-4);\n}\n\n.top-notice {\n\twidth: 400px;\n\tfont-size: 14px;\n\tposition: fixed; top: var(--top-notice-top); right: var(--top-notice-right);\n\tz-index: 1000010;\n\tdisplay: flex; flex-direction: column-reverse; gap: var(--top-gap-2);\n}\n\n.top-notice ul {\n\tpadding: 0 0 0 var(--top-padding-5);\n}\n\n@media only screen and (max-width: 600px) {\n\t:root {\n\t\t--top-notice-top: var(--top-padding-4);\n\t\t--top-notice-right: var(--top-padding-4);\n\t}\n\n\t.top-notice { width: auto; left: var(--top-notice-right); }\n}\n</style>\n"],"names":["transitionDuration","itemById","reactive","genItemId","text","style","options","genIntHash","show","title","id","chunks","itemExists","hightlight","item","_firstId","firstItem","Core","close","prepareText","textNoSafety","props","__props","emit","__emit","showed","ref","closed","closedDirection","computed","res","nl2br","direction","onClick","e","tagName","vSwipe","el","_e","ui","_ui","_createElementBlock","_createElementVNode","_hoisted_1","_openBlock","_createBlock","_component_TopButton","_mergeProps","_hoisted_4","_Fragment","_renderList","buttonProps","$i18n","onCloseItem","_Teleport","_unref","_index","TopNoticeItem","_normalizeStyle","$event"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notice-DwjipV21.amd.js","sources":["../../src/components/core/notice/utils.ts","../../src/components/core/notice/item/item.vue","../../src/components/core/notice/notice.vue"],"sourcesContent":["import { reactive } from 'vue';\nimport type { Props as ItemProps, Props, Style } from '@/components/core/notice/item/types';\nimport Core from '@/core/core/core';\nimport { genIntHash } from '@/core/utils/string';\n\nexport const transitionDuration = 300;\n\nexport type Item = Props & { onClose?: Function };\n\nexport const itemById = reactive(new Map<string, Item>());\n\nconst genItemId = (text: ItemProps['text'], style: ItemProps['style'], options?: Options) => {\n\treturn 'top-notice_' + genIntHash(text + style + JSON.stringify(options));\n};\n\nexport type Options = {\n\ttitle?: ItemProps['title'],\n\tmetaText?: ItemProps['metaText'],\n\tbuttonProps?: ItemProps['buttonProps'],\n\tbuttonsProps?: ItemProps['buttonsProps'],\n\tisSafeHTML?: ItemProps['isSafeHTML'],\n\tselectToClose?: ItemProps['selectToClose'],\n\tonClose?: Function\n}\n\n/**\n * Показать сообщением в стиле push уведомления\n *\n * title будет получен из первой строки text\n *\n * Если в options указан title, он будет взят оттуда\n */\nexport const show = (text: string, style: Style = 'info', options?: Options) => {\n\tlet title = '';\n\n\ttext = String(text);\n\n\tconst id = genItemId(text, style, options);\n\n\tif (options?.title) {\n\t\ttitle = options.title;\n\t} else {\n\t\tconst chunks = text.split('\\n');\n\n\t\tif (chunks.length) {\n\t\t\ttitle = String(chunks.shift());\n\t\t\ttext = chunks.join('\\n');\n\t\t}\n\t}\n\n\tconst itemExists = itemById.get(id);\n\tif (itemExists) {\n\t\thightlight(itemExists);\n\n\t\treturn;\n\t}\n\n\tconst item: Item = {\n\t\tid,\n\t\ttitle,\n\t\ttext,\n\t\tstyle,\n\t\tbuttonProps: options?.buttonProps,\n\t\tbuttonsProps: options?.buttonsProps,\n\t\tmetaText: options?.metaText,\n\t\tisSafeHTML: options?.isSafeHTML,\n\t\tselectToClose: options?.selectToClose,\n\t\tonClose: options?.onClose,\n\t};\n\n\titemById.set(item.id, item);\n\n\tif (itemById.size > 5) {\n\t\tconst [_firstId, firstItem] = [...itemById].at(0) || [];\n\t\tif (firstItem) close(firstItem);\n\t}\n\n\t/**\n\t * Автозакрытие ошибок форм\n\t *\n\t * Добавляет\n\t */\n\tif (Core.state.isMobile) {\n\t\t$('input').one('click', () => close(item));\n\t}\n};\n\nconst hightlight = (item: Item) => {\n\titem.hightlight = true;\n\n\tsetTimeout(() => item.hightlight = false, transitionDuration);\n};\n\nconst close = (item: Item) => {\n\titem.forceClosed = true;\n\n\tsetTimeout(() => {\n\t\titem.onClose?.();\n\n\t\titemById.delete(item.id);\n\t}, transitionDuration);\n};\n\n/**\n * Убрать подозрительный html код\n */\nexport const prepareText = (text: string) => {\n\tconst textNoSafety = 'hacking was detected';\n\n\ttext = text.replace(/<script/g, textNoSafety);\n\ttext = text.replace(/<img/g, textNoSafety);\n\ttext = text.replace(/<iframe/g, textNoSafety);\n\ttext = text.replace(/javascript:/g, textNoSafety);\n\ttext = text.replace(/<[^>]+ (@|on)\\w+=[^>]+>?/g, textNoSafety);\n\n\treturn text;\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, withDefaults } from 'vue';\n\nimport Core from '@/core/core/core';\nimport { nl2br } from '@/core/utils/string';\n\nimport type { Emits, Props } from './types';\nimport { prepareText, transitionDuration } from '@/components/core/notice/utils';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tselectToClose: true,\n});\n\nconst emit = defineEmits<Emits>();\n\n// анимация появления\nconst showed = ref(false);\nsetTimeout(() => showed.value = true, 10);\n\n// анимация закрытия\nconst closed = ref(false);\nconst closedDirection = ref<'top' | 'right' | 'bottom' | 'left'>('right');\n\nconst title = computed(() => {\n\tlet res = props.title.replace(/ {2}/g, '&nbsp;');\n\n\tif (!props.isSafeHTML) res = prepareText(res);\n\n\treturn res;\n});\n\nconst text = computed(() => {\n\tlet res = nl2br(props.text);\n\n\tres = res.replace(/ {2}/g, '&nbsp;');\n\n\tif (!props.isSafeHTML) res = prepareText(res);\n\n\treturn res;\n});\n\nconst close = (direction?: typeof closedDirection.value) => {\n\tclosed.value = true;\n\n\tif (direction) {\n\t\tclosedDirection.value = direction;\n\t}\n\n\tsetTimeout(() => emit('close'), transitionDuration);\n};\n\nconst onClick = (e: MouseEvent) => {\n\tif (!props.selectToClose) return;\n\n\tconst { tagName } = e.target as HTMLElement;\n\n\tif (tagName === 'A') close();\n\tif (tagName === 'BUTTON') close();\n};\n\nconst vSwipe = {\n\tmounted: (el: HTMLElement) => {\n\t\tif (!Core.state.isMobile) return;\n\n\t\tif (!Core.$ || !Core.$.ui['draggable']) return;\n\n\t\tlet direction: typeof closedDirection.value = 'right';\n\n\t\tlet axis = 'x';\n\t\t// if (getOS() === 'iOS') axis = 'y';\n\n\t\tCore.$(el).draggable({\n\t\t\trevert: false,\n\t\t\taxis,\n\t\t\tdrag: (_e, ui) => {\n\t\t\t\tif (axis == 'x') {\n\t\t\t\t\tdirection = ui.position.left > 0 ? 'right' : 'left';\n\t\t\t\t} else {\n\t\t\t\t\tdirection = ui.position.top > 0 ? 'bottom' : 'top';\n\t\t\t\t}\n\t\t\t},\n\t\t\tstop: (_e, _ui) => {\n\t\t\t\tclose(direction);\n\t\t\t},\n\t\t});\n\t},\n};\n\n// const vSwipe = {\n// \tmounted: (el: HTMLElement) => {\n// \t\tconst { distanceX, direction } = usePointerSwipe(el, {\n// \t\t\tdisableTextSelect: true,\n// \t\t\tonSwipe(e: PointerEvent) {\n// \t\t\t\tleft.value = -distanceX.value + 'px';\n// \t\t\t},\n// \t\t\tonSwipeEnd: (_e, direction) => {\n// \t\t\t\tclose(direction);\n// \t\t\t},\n// \t\t});\n// \t},\n// };\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-notice_item\"\n\t\t:class=\"{\n\t\t\t['top-notice_item-' + style]: true,\n\t\t\t'top-notice_item-hightlight': hightlight,\n\t\t\t'top-notice_item-showed': showed,\n\t\t\t'top-notice_item-closed': closed || forceClosed,\n\t\t\t['top-notice_item-closed_' + closedDirection]: closed,\n\t\t}\"\n\t\t@click=\"onClick\"\n\t\tv-swipe\n\t>\n\t\t<div class=\"top-notice_itemTextWrapper\">\n\t\t\t<div v-if=\"title\" class=\"top-notice_itemTitle\" v-html=\"title\"></div>\n\t\t\t<div v-if=\"text\" class=\"top-notice_itemText\" v-html=\"text\"></div>\n\t\t</div>\n\n\t\t<TopButton\n\t\t\tv-if=\"buttonProps\"\n\t\t\tclass=\"top-notice_itemButton\"\n\t\t\tsize=\"s\"\n\t\t\t:=\"buttonProps\"\n\t\t\t:title=\"buttonProps.title\"\n\t\t\tv-html=\"buttonProps.default\"\n\t\t\t@click=\"close()\"\n\t\t/>\n\n\t\t<div\n\t\t\tv-if=\"buttonsProps?.length\"\n\t\t\tclass=\"top-notice_itemButtons\"\n\t\t>\n\t\t\t<TopButton\n\t\t\t\tv-for=\"buttonProps in buttonsProps\"\n\t\t\t\tclass=\"top-notice_itemButton\"\n\t\t\t\tsize=\"s\"\n\t\t\t\t:=\"buttonProps\"\n\t\t\t\t:title=\"buttonProps.title\"\n\t\t\t\tv-html=\"buttonProps.default\"\n\t\t\t\t@click=\"close()\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<div v-if=\"metaText\" class=\"top-notice_itemMetaText\" v-html=\"metaText\"></div>\n\n\t\t<div\n\t\t\tclass=\"top-notice_itemClose\"\n\t\t\tdata-top-icon=\"\"\n\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t@click=\"() => close()\"\n\t\t></div>\n\t</div>\n</template>\n\n<style>\n@import \"style.css\";\n</style>\n","<!-- performance all in one file component, для Core.notice() -->\n<script lang=\"ts\">\nexport { show } from './utils';\n</script>\n\n<script setup lang=\"ts\">\nimport type { Item } from './utils';\nimport { itemById } from './utils';\n\nimport type { Props } from './types';\nimport TopNoticeItem from './item/item.vue';\n\ndefineProps<Props>();\n\nconst onCloseItem = (item: Item) => {\n\titem.onClose?.();\n\n\titemById.delete(item.id);\n};\n</script>\n\n<template>\n\t<teleport to=\"body\">\n\t\t<div class=\"top-notice\">\n\t\t\t<TopNoticeItem\n\t\t\t\tv-for=\"[_index, item] in itemById\"\n\t\t\t\t:key=\"item.id\"\n\t\t\t\t:id=\"item.id\"\n\t\t\t\t:title=\"item.title\"\n\t\t\t\t:text=\"item.text\"\n\t\t\t\t:style=\"item.style\"\n\t\t\t\t:buttonProps=\"item.buttonProps\"\n\t\t\t\t:buttonsProps=\"item.buttonsProps\"\n\t\t\t\t:metaText=\"item.metaText\"\n\t\t\t\t:isSafeHTML=\"item.isSafeHTML\"\n\t\t\t\t:forceClosed=\"item.forceClosed\"\n\t\t\t\t:hightlight=\"item.hightlight\"\n\t\t\t\t@close=\"onCloseItem(item)\"\n\t\t\t/>\n\t\t</div>\n\t</teleport>\n</template>\n\n<style>\n:root {\n\t--top-notice-top: var(--top-padding-4);\n\t--top-notice-right: var(--top-padding-4);\n}\n\n.top-notice {\n\twidth: 400px;\n\tfont-size: 14px;\n\tposition: fixed; top: var(--top-notice-top); right: var(--top-notice-right);\n\tz-index: 1000010;\n\tdisplay: flex; flex-direction: column-reverse; gap: var(--top-gap-2);\n}\n\n.top-notice ul {\n\tpadding: 0 0 0 var(--top-padding-5);\n}\n\n@media only screen and (max-width: 600px) {\n\t:root {\n\t\t--top-notice-top: var(--top-padding-4);\n\t\t--top-notice-right: var(--top-padding-4);\n\t}\n\n\t.top-notice { width: auto; left: var(--top-notice-right); }\n}\n</style>\n"],"names":["itemById","vue","utils_string","text","style","options","show","title","chunks","id","_firstId","firstItem","close","forms","item","hightlight","prepareText","showed","closed","closedDirection","res","props","direction","onClick","e","tagName","el","_e","ui","_ui","__props","_hoisted_2","_hoisted_3","_cache","$event","buttonProps","_hoisted_5","_hoisted_6","onCloseItem","_hoisted_1"],"mappings":"yMASOA,EAAAC,EAAA,SAAA,IAAA,GAAA,aAGN,cAAAC,EAAA,WAAAC,EAAAC,EAAA,KAAA,UAAAC,CAAA,CAAA,EAoBMC,EAAA,CAAAH,EAAAC,EAAA,OAAAC,IAAA,UAGNF,EAAA,OAAAA,CAAA,mBAIA,GAAAE,GAAA,MACCE,EAAAF,EAAA,UAAgB;GAIhBG,EAAA,6BAECL,EAAAK,EAAA,KAAA;AAAA,CAAA,+CAWiB,GAAAC,EAClB,MAAAF,EACA,KAAAJ,EACA,MAAAC,EACA,YAAAC,GAAA,YACsB,aAAAA,GAAA,aACC,SAAAA,GAAA,SACJ,WAAAA,GAAA,WACE,cAAAA,GAAA,kCAOtB,iBAAAL,EAAA,KAAA,EAAA,CACC,KAAA,CAAAU,EAAAC,CAAA,EAAA,CAAA,GAAAX,CAAA,EAAA,GAAA,CAAA,GAAA,CAAA,EACAW,GAAAC,EAAAD,CAAA,EAQDE,EAAA,KAAA,MAAA,UACC,EAAA,OAAA,EAAA,IAAA,QAAA,IAAAD,EAAAE,CAAA,CAAA,CAEF,EAEAC,EAAAD,GAAA,CACCA,EAAA,WAAA,sCAKDF,EAAAE,GAAA,CACCA,EAAA,YAAA,iCAKCd,EAAA,OAAAc,EAAA,EAAA,OAOKE,EAAAb,GAAA,2LASNA,4aCnGDc,EAAAhB,EAAA,IAAA,EAAA,gCAIA,MAAAiB,EAAAjB,EAAA,IAAA,EAAA,EACAkB,EAAAlB,EAAA,IAAA,OAAA,EAEAM,EAAAN,EAAA,SAAA,IAAA,CACC,IAAAmB,EAAAC,EAAA,MAAA,QAAA,QAAA,QAAA,gCAIAD,CAAO,CAAA,EAGRjB,EAAAF,EAAA,SAAA,IAAA,mFAOCmB,CAAO,CAAA,EAGRR,EAAAU,GAAA,CACCJ,EAAA,MAAA,OAGCC,EAAA,MAAAG,+BAGiD,EAGnDC,EAAAC,GAAA,CACC,GAAA,CAAAH,EAAA,cAAA,OAEA,KAAA,CAAA,QAAAI,CAAA,EAAAD,EAAA,OAEAC,IAAA,KAAAb,EAAA,EACAa,IAAA,UAAAb,EAAA,CAAgC,KAGlB,QAAAc,GAAA,CAIb,GAFA,CAAAb,EAAA,KAAA,MAAA,UAEA,CAAAA,EAAA,KAAA,GAAA,CAAAA,EAAA,KAAA,EAAA,GAAA,UAAA,sDAQS,SACR,KAAA,CAAAc,EAAAC,IAAA,CAGEN,EAAAM,EAAA,SAAA,KAAA,EAAA,QAAA,MAGD,EACD,KAAA,CAAAD,EAAAE,IAAA,MAGA,CAAA,6HAuEI,MAAA5B,EAAA,eAAA,CAAA,kBAAA,CAjDkB,CAAA,mBAAA6B,EAAA,KAAA,EAAA,GACiB,6BAAAA,EAAA,WAA0C,yBAAAb,EAAA,iGAAuJ,CAAA,CAAA,WAOxO,EAAA,sIAIuD,EAAA,KAAA,EAAAc,CAAA,GAAA9B,EAAA,mBAAA,GAAA,EAAA,wGACF,EAAA,KAAA,EAAA+B,CAAA,GAAA/B,EAAA,mBAAA,GAAA,EAAA,mGAK/C,KAAA,GACD,EAAA6B,EAAA,YAAA,CACS,MAAAA,EAAA,YAAA,MACM,UAAAA,EAAA,YAAA,QACA,QAAAG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAA,EACP,CAAA,EAAA,KAAA,GAAA,CAAA,QAAA,WAAA,CAAA,GAAAX,EAAA,mBAAA,GAAA,EAAA,uEAgBRA,EAAA,UAAA,EAAA,EAAAA,EAAA,mBAAAA,EAAA,SAAA,KAAAA,EAAA,WAAA6B,EAAA,aAAAK,8EAPE,KAAA,qBAEQ,MAAAA,EAAA,MACM,UAAAA,EAAA,QACA,QAAAF,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAtB,EAAA,2LAKuC,EAAA,KAAA,EAAAwB,CAAA,GAAAnC,EAAA,mBAAA,GAAA,EAAA,0GAKvC,QAAAgC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,IAAArB,EAAA,EACF,EAAA,KAAA,EAAAyB,CAAA,uFC1ItB,MAAAC,EAAAxB,GAAA,eAGCd,EAAA,OAAAc,EAAA,EAAA,CAAuB,oEAKJb,EAAA,mBAAA,MAAAsC,EAAA,wHAgBf,IAAAzB,EAAA,GAZU,GAAAA,EAAA,GACD,MAAAA,EAAA,MACG,KAAAA,EAAA,KACD,MAAAb,EAAA,eAAAa,EAAA,KAAA,EACM,YAAAA,EAAA,YACC,aAAAA,EAAA,aACC,SAAAA,EAAA,SACJ,WAAAA,EAAA,WACE,YAAAA,EAAA,YACC,WAAAA,EAAA,WACD,QAAAoB,GAAAI,EAAAxB,CAAA,CACM,EAAA,KAAA,EAAA,CAAA,KAAA,QAAA,OAAA,QAAA,cAAA,eAAA,WAAA,aAAA,cAAA,aAAA,SAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.vue_vue_type_script_setup_true_lang-CjIiZU-D.amd.js","sources":["../../src/components/dialog/dialog/dialog.vue","../../src/components/dialog/dialog/page/page.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ComponentInternalInstance } from 'vue';\nimport { getCurrentInstance, onMounted, provide, watch } from 'vue';\nimport { getDialogWorker } from './dialogs/dialogs.vue';\nimport type { Emits, Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\twidth: '600px',\n\theight: 'auto',\n\tmodal: true,\n\thistoryType: 'push',\n});\n\ndefineEmits<Emits>();\n\ndefineSlots<Slots>();\n\nconst dialog = getDialogWorker(props.id);\nif (!dialog) {\n\tthrow new Error('TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()');\n}\n\n/**\n * Для useTopDialogSelf()\n */\nprovide('dialogWorker', dialog);\n\n/**\n * Инициализация начального состояния TopDialogHandle\n */\nonMounted(() => {\n\tconst topDialogBaseComponent = getCurrentInstance() as ComponentInternalInstance;\n\tconst topDialogComponent = topDialogBaseComponent.parent;\n\n\tif (topDialogComponent?.parent?.type.name !== 'DialogWrapper') {\n\t\tthrow new Error('TopDialog cannot be used in a template, use useTopDialog()');\n\t}\n\n\tif (Array.isArray(topDialogComponent.subTree.children) && topDialogComponent.subTree.children.length !== 1) {\n\t\tthrow new Error('TopDialog can has only one root element');\n\t}\n\n\tdialog.onMounted(topDialogComponent, topDialogBaseComponent);\n});\n\nwatch(dialog.isOpened, () => {\n\tdialog.isReady.value = true;\n}, {\n\tflush: 'post',\n\tonce: true,\n});\n</script>\n\n<template>\n\t<div\n\t\t:id=\"dialog.idAttr\"\n\t\tclass=\"top-dialog\"\n\t\t:class=\"classes\"\n\t\t:style=\"{\n\t\t\t'--top-dialog-width': width,\n\t\t\t'--top-dialog-height': height,\n\t\t}\"\n\t\ttabindex=\"-1\"\n\t\t:data-view-page-active=\"dialog.pageActive.value\"\n\t\t:data-modal=\"modal\"\n\t\t:data-position=\"position\"\n\t>\n\t\t<div class=\"modal-layer modal-layer-header\"></div>\n\n\t\t<div class=\"modal-layer modal-layer-body\" :style=\"{'min-height': height + 'px'}\"></div>\n\n\t\t<slot name=\"default\"></slot>\n\t</div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n"],"names":["vue","dialog","topDialogBaseComponent","topDialogComponent","__props","_hoisted_1$1","utils","classes","_hoisted_4","_ctx","_hoisted_6","_hoisted_7"],"mappings":"siBAmBC,MAAA,IAAA,MAAA,kFAAA,EAMD,OAAAA,EAAA,QAAA,eAAAC,CAAA,mBAMC,MAAAC,EAAAF,EAAA,mBAAA,EACAG,EAAAD,EAAA,iDAGC,MAAA,IAAA,MAAA,4DAAA,sEAIA,MAAA,IAAA,MAAA,yCAAA,EAGDD,EAAA,UAAAE,EAAAD,CAAA,CAA2D,CAAA,EAG5DF,EAAA,MAAAC,EAAA,SAAA,IAAA,CACCA,EAAA,QAAA,MAAA,EAAuB,EAAA,cAEhB,KAAA,EACD,CAAA,oDAuBA,GAAAD,EAAA,MAAAC,CAAA,EAAA,gFAdC,qBAAAG,EAAA,oCAA8D,CAAA,oEAK1B,aAAAA,EAAA,gCAE1B,EAAA,4JAIL,MAAAJ,EAAA,eAAA,CAAA,aAAAI,EAAA,OAAA,IAAA,CAAA,CAA4D,EAAA,KAAA,CAAA,kCAE3C,EAAA,GAAAC,CAAA,wXC3D9BJ,EAAAK,EAAA,iBAAA,EAEAC,EAAAP,EAAA,SAAA,KACC,uFAGA,8IAkEMA,EAAA,UAAA,EAAAA,EAAA,YAAAA,EAAA,SAAA,iDAzD6B,SAAA,CAAAA,EAAA,MAAAC,CAAA,EAAA,aAAAG,EAAA,IAAA,CAA+D,EAAA,6BA+B1F,aAAAA,EAAA,MA7BQ,iBAAAA,EAAA,KACI,MAAAJ,EAAA,eAAAO,EAAA,KAAA,CACF,EAAA,+BA0BTP,EAAA,mBAAA,MAAAQ,EAAA,CArBCR,EAAA,WAAAS,EAAA,OAAA,QAAA,CADsB,CAAA,gCAKtBT,EAAA,WAAAS,EAAA,OAAA,eAAA,CAD6B,CAAA,6MAQN,EAAA,KAAA,EAAAC,CAAA,IAAAV,EAAA,UAAA,EAAAA,EAAA,mBAAA,MAAA,oEAOd,cAAA,kBACF,EAAA,KAAA,EAAAW,CAAA,0HAMkB,SAAA,CAAAX,EAAA,MAAAC,CAAA,EAAA,aAAAG,EAAA,IAAA,CAA6D,EAAA,6BAqBxF,aAAAA,EAAA,MAnBQ,iBAAAA,EAAA,8DAGE,MAAAJ,EAAA,eAAA,CAAA,6BAAAS,EAAA,OAAA,OAAA,OAAA,KAAA,CAAA,CACiD,EAAA,+DAI1DT,EAAA,WAAAS,EAAA,OAAA,MAAA,CADoB,CAAA,GAAA,wJAKgB,CAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.vue_vue_type_script_setup_true_lang-CpRJQFD1.es.js","sources":["../../src/components/dialog/dialog/dialog.vue","../../src/components/dialog/dialog/page/page.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ComponentInternalInstance } from 'vue';\nimport { getCurrentInstance, onMounted, provide, watch } from 'vue';\nimport { getDialogWorker } from './dialogs/dialogs.vue';\nimport type { Emits, Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\twidth: '600px',\n\theight: 'auto',\n\tmodal: true,\n\thistoryType: 'push',\n});\n\ndefineEmits<Emits>();\n\ndefineSlots<Slots>();\n\nconst dialog = getDialogWorker(props.id);\nif (!dialog) {\n\tthrow new Error('TopDialog cannot be used in a template, use useTopDialog() / useAsyncTopDialog()');\n}\n\n/**\n * Для useTopDialogSelf()\n */\nprovide('dialogWorker', dialog);\n\n/**\n * Инициализация начального состояния TopDialogHandle\n */\nonMounted(() => {\n\tconst topDialogBaseComponent = getCurrentInstance() as ComponentInternalInstance;\n\tconst topDialogComponent = topDialogBaseComponent.parent;\n\n\tif (topDialogComponent?.parent?.type.name !== 'DialogWrapper') {\n\t\tthrow new Error('TopDialog cannot be used in a template, use useTopDialog()');\n\t}\n\n\tif (Array.isArray(topDialogComponent.subTree.children) && topDialogComponent.subTree.children.length !== 1) {\n\t\tthrow new Error('TopDialog can has only one root element');\n\t}\n\n\tdialog.onMounted(topDialogComponent, topDialogBaseComponent);\n});\n\nwatch(dialog.isOpened, () => {\n\tdialog.isReady.value = true;\n}, {\n\tflush: 'post',\n\tonce: true,\n});\n</script>\n\n<template>\n\t<div\n\t\t:id=\"dialog.idAttr\"\n\t\tclass=\"top-dialog\"\n\t\t:class=\"classes\"\n\t\t:style=\"{\n\t\t\t'--top-dialog-width': width,\n\t\t\t'--top-dialog-height': height,\n\t\t}\"\n\t\ttabindex=\"-1\"\n\t\t:data-view-page-active=\"dialog.pageActive.value\"\n\t\t:data-modal=\"modal\"\n\t\t:data-position=\"position\"\n\t>\n\t\t<div class=\"modal-layer modal-layer-header\"></div>\n\n\t\t<div class=\"modal-layer modal-layer-body\" :style=\"{'min-height': height + 'px'}\"></div>\n\n\t\t<slot name=\"default\"></slot>\n\t</div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport Core from '@/core/core/core';\nimport { useTopDialogSelf } from '@/components/dialog/dialog/composables/utils';\nimport type { Props, Slots } from './types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\torder: 0,\n});\n\ndefineSlots<Slots>();\n\nconst dialog = useTopDialogSelf();\n\nconst classes = computed(() => {\n\treturn {\n\t\tactive: dialog.pageActive?.value === props.name,\n\t\t'i-load-data': props.isLoading || dialog.isLoadingPage.value,\n\t};\n});\n</script>\n\n<template>\n\t<div\n\t\tstyle=\"display: none\"\n\t\tv-if=\"dialog.isReady.value\"\n\t>\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-header'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\t:class=\"classes\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<div class=\"top-title\">\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"buttons\">\n\t\t\t\t\t\t<slot name=\"headerButtons\"></slot>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"Core.state.isMobile && prevName\"\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Back\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\t@click=\"dialog.open(prevName)\"\n\t\t\t\t\t></div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t:title=\"$i18n.Common.Close\"\n\t\t\t\t\t\tdata-top-icon=\"\"\n\t\t\t\t\t\tdata-action=\"top-dialog-close\"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\n\t\t<Teleport :to=\"'#' + dialog.idAttr + ' .modal-layer-body'\" :disabled=\"!dialog.needShowPage(name)\">\n\t\t\t<div\n\t\t\t\t:data-order=\"order\"\n\t\t\t\t:data-view-page=\"name\"\n\t\t\t\tclass=\"has_scroll_container\"\n\t\t\t\t:class=\"classes\"\n\t\t\t\t:style=\"{'--top-dialog-footer-height': $slots.footer ? undefined : '0px'}\"\n\t\t\t>\n\t\t\t\t<div class=\"modal-body\" v-top-scroll-shadow>\n\t\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"modal-footer\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'modal-footer-fullWith': footerFullWith\n\t\t\t\t\t}\"\n\t\t\t\t\tv-if=\"$slots.footer\"\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Teleport>\n\t</div>\n</template>\n"],"names":["dialog","getDialogWorker","__props","provide","onMounted","topDialogBaseComponent","getCurrentInstance","topDialogComponent","watch","_createElementBlock","_unref","_normalizeClass","_normalizeStyle","_createElementVNode","_renderSlot","_ctx","props","useTopDialogSelf","classes","computed","_openBlock","_hoisted_1","_createBlock","_Teleport","_hoisted_3","_hoisted_4","_hoisted_5","Core","$i18n","_cache","$event","$slots","_withDirectives","_hoisted_9"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,UAAMA,IAASC,EAXDC,EAWuB,EAAE;AACvC,QAAI,CAACF;AACJ,YAAM,IAAI,MAAM,kFAAkF;AAMnG,WAAAG,EAAQ,gBAAgBH,CAAM,GAK9BI,EAAU,MAAM;AACf,YAAMC,IAAyBC,EAAA,GACzBC,IAAqBF,EAAuB;AAElD,UAAIE,GAAoB,QAAQ,KAAK,SAAS;AAC7C,cAAM,IAAI,MAAM,4DAA4D;AAG7E,UAAI,MAAM,QAAQA,EAAmB,QAAQ,QAAQ,KAAKA,EAAmB,QAAQ,SAAS,WAAW;AACxG,cAAM,IAAI,MAAM,yCAAyC;AAG1D,MAAAP,EAAO,UAAUO,GAAoBF,CAAsB;AAAA,IAC5D,CAAC,GAEDG,EAAMR,EAAO,UAAU,MAAM;AAC5B,MAAAA,EAAO,QAAQ,QAAQ;AAAA,IACxB,GAAG;AAAA,MACF,OAAO;AAAA,MACP,MAAM;AAAA,IAAA,CACN,mBAIAS,EAkBM,OAAA;AAAA,MAjBJ,IAAIC,EAAAV,CAAA,EAAO;AAAA,MACZ,OAAKW,EAAA,CAAC,cACET,EAAA,OAAO,CAAA;AAAA,MACd,OAAKU,EAAA;AAAA,8BAA6BV,EAAA;AAAA,+BAAiCA,EAAA;AAAA,MAAA;MAIpE,UAAS;AAAA,MACR,yBAAuBQ,EAAAV,CAAA,EAAO,WAAW;AAAA,MACzC,cAAYE,EAAA;AAAA,MACZ,iBAAeA,EAAA;AAAA,IAAA;sBAEhBW,EAAkD,OAAA,EAA7C,OAAM,iCAAA,GAAgC,MAAA,EAAA;AAAA,MAE3CA,EAAuF,OAAA;AAAA,QAAlF,OAAM;AAAA,QAAgC,yBAAsBX,EAAA,SAAM,MAAA;AAAA,MAAA;MAEvEY,EAA4BC,EAAA,QAAA,SAAA;AAAA,IAAA;;;;;;;;;;;;;;;ACjE9B,UAAMC,IAAQd,GAMRF,IAASiB,EAAA,GAETC,IAAUC,EAAS,OACjB;AAAA,MACN,QAAQnB,EAAO,YAAY,UAAUgB,EAAM;AAAA,MAC3C,eAAeA,EAAM,aAAahB,EAAO,cAAc;AAAA,IAAA,EAExD;;;aAMOU,EAAAV,CAAA,EAAO,QAAQ,SAFtBoB,KAAAX,EA6DM,OA7DNY,GA6DM;AAAA,cAzDLC,EAgCWC,GAAA;AAAA,UAhCA,IAAE,MAAQb,EAAAV,CAAA,EAAO,SAAM;AAAA,UAA4B,UAAQ,CAAGU,EAAAV,CAAA,EAAO,aAAaE,EAAA,IAAI;AAAA,QAAA;UAChGW,EA8BM,OAAA;AAAA,YA7BJ,cAAYX,EAAA;AAAA,YACZ,kBAAgBA,EAAA;AAAA,YAChB,SAAOgB,EAAA,KAAO;AAAA,UAAA;YAEfL,EAwBM,OAxBNW,GAwBM;AAAA,cAvBLX,EAEM,OAFNY,GAEM;AAAA,gBADLX,EAA2BC,EAAA,QAAA,QAAA;AAAA,cAAA;cAG5BF,EAEM,OAFNa,GAEM;AAAA,gBADLZ,EAAkCC,EAAA,QAAA,eAAA;AAAA,cAAA;cAI5BL,EAAAiB,CAAA,EAAK,MAAM,YAAYzB,EAAA,iBAD9BO,EAMO,OAAA;AAAA;gBAJN,OAAM;AAAA,gBACL,OAAOmB,EAAAA,MAAM,OAAO;AAAA,gBACrB,iBAAc;AAAA,gBACb,SAAKC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEpB,EAAAV,CAAA,EAAO,KAAKE,EAAA,QAAQ;AAAA,cAAA,wBAG7BO,EAMO,OAAA;AAAA;gBAJN,OAAM;AAAA,gBACL,OAAOmB,EAAAA,MAAM,OAAO;AAAA,gBACrB,iBAAc;AAAA,gBACd,eAAY;AAAA,cAAA;;;;cAMhBN,EAsBWC,GAAA;AAAA,UAtBA,IAAE,MAAQb,EAAAV,CAAA,EAAO,SAAM;AAAA,UAA0B,UAAQ,CAAGU,EAAAV,CAAA,EAAO,aAAaE,EAAA,IAAI;AAAA,QAAA;UAC9FW,EAoBM,OAAA;AAAA,YAnBJ,cAAYX,EAAA;AAAA,YACZ,kBAAgBA,EAAA;AAAA,YACjB,OAAKS,EAAA,CAAC,wBACEO,EAAA,KAAO,CAAA;AAAA,YACd,OAAKN,EAAA,EAAA,8BAAiCmB,EAAAA,OAAO,SAAS,SAAS,MAAA,CAAA;AAAA,UAAA;YAEhEC,GAAAZ,EAAA,GAAAX,EAEM,OAFNwB,GAEM;AAAA,cADLnB,EAAyBC,EAAA,QAAA,MAAA;AAAA,YAAA;;;YAQnBgB,EAAAA,OAAO,eALdtB,EAQM,OAAA;AAAA;cAPL,UAAM,gBAAc;AAAA,yCACqBP,EAAA;AAAA,cAAA;;cAKzCY,EAA2BC,EAAA,QAAA,QAAA;AAAA,YAAA;;;;;;;"}
@@ -1,496 +0,0 @@
1
-
2
- import { Core as _autoloadCSSCore } from '../core/app.js';
3
- const fileNames = ['../assets/policy.css'].map(fileName => import.meta.resolve(fileName));
4
- _autoloadCSSCore.insertCSSLinkToPage(fileNames, true);
5
-
6
- import { defineComponent as J, mergeModels as W, useModel as ee, ref as $, onMounted as ae, onUpdated as se, createElementBlock as L, openBlock as g, normalizeClass as ne, createCommentVNode as M, Fragment as F, renderList as z, createBlock as S, mergeProps as R, createSlots as U, withCtx as B, createTextVNode as E, toDisplayString as P, createVNode as te, createElementVNode as re, withModifiers as oe, computed as N, watch as H, toRef as O, resolveComponent as ie, resolveDirective as ue, unref as f, renderSlot as ce, withDirectives as Q, resolveDynamicComponent as fe } from "vue";
7
- import { e as X, b as de, C as Y, d as pe, u as ve, r as me } from "./forms-BseC3Ftz.es.js";
8
- import { _ as ye, b as Z } from "./popupHint.vue_vue_type_style_index_0_lang-DD59yF6H.es.js";
9
- import { _ as he } from "./widgetInput.vue_vue_type_script_setup_true_lang-CDkeKVqY.es.js";
10
- import { invertKeyboardLayout as ge } from "../utils/keyboard.js";
11
- import { g as Ae } from "./field-CyyFzM-Y.es.js";
12
- const Ie = {
13
- key: 0,
14
- class: "top-menu_selectAll"
15
- }, Re = /* @__PURE__ */ J({
16
- __name: "menu",
17
- props: /* @__PURE__ */ W({
18
- modelValue: {},
19
- items: {},
20
- isMultiple: { type: Boolean },
21
- canBeEmptyMultiple: { type: Boolean },
22
- styling: { default: "default" },
23
- selectAllItem: {}
24
- }, {
25
- modelValue: {
26
- required: !0
27
- },
28
- modelModifiers: {}
29
- }),
30
- emits: ["update:modelValue"],
31
- setup(e) {
32
- const a = e, l = ee(e, "modelValue"), t = $();
33
- !a.isMultiple && typeof l.value != "string" && typeof l.value != "number" && console.warn('Type check failed for prop "modelValue". Expected String: ' + typeof l.value), a.isMultiple && !Array.isArray(l.value) && console.warn('Type check failed for prop "modelValue". Expected Array: ' + typeof l.value), a.isMultiple && !a.canBeEmptyMultiple && Array.isArray(l.value) && !l.value.length && a.items[0] && (l.value = [a.items[0]?.href ?? a.items[0]?.value]);
34
- const u = (n) => Array.isArray(l.value) ? l.value.includes(n.value) : n.value === l.value, b = (n, v = !1) => {
35
- if (Array.isArray(l.value)) {
36
- let i = l.value.slice();
37
- if (v) {
38
- i.length || (i = a.items.map((y) => y.value));
39
- const A = i.indexOf(n.value);
40
- A === -1 ? i.push(n.value) : i.splice(A, 1);
41
- } else
42
- i.length === 1 && i[0] === n.value ? i = [] : i = [n.value];
43
- !a.canBeEmptyMultiple && !i.length && (i = [n.value]), l.value = i;
44
- return;
45
- }
46
- l.value = n.value;
47
- }, d = (n) => {
48
- if (t.value.scrollWidth <= t.value.offsetWidth || n.shiftKey || Math.abs(n.deltaY) < 50) return;
49
- n.preventDefault();
50
- const v = n.deltaY > 0 ? 30 : -30;
51
- t.value.scrollLeft = t.value.scrollLeft + v;
52
- }, c = (n = !0) => {
53
- const v = t.value.querySelector(".top-active");
54
- if (!v) return;
55
- const i = 24, A = v.offsetLeft - t.value.offsetLeft - i, y = v.offsetLeft - t.value.offsetLeft + v.clientWidth + i, h = t.value.scrollLeft, x = t.value.clientWidth + t.value.scrollLeft;
56
- let I;
57
- A < h && (I = A), y > x && (I = y - t.value.clientWidth), I !== void 0 && (de() ? Y.$?.(t.value).animate({ scrollLeft: I }, n ? 200 : 0) : t.value.scrollTo({ left: I, behavior: n ? "smooth" : "auto" }));
58
- }, s = () => {
59
- if (Array.isArray(l.value)) {
60
- if (l.value.length === a.items.length) {
61
- l.value = [a.items[0].href ?? a.items[0].value];
62
- return;
63
- }
64
- l.value = a.items.map((n) => n.href ?? n.value);
65
- }
66
- };
67
- return ae(() => c(!1)), se(() => c(!0)), (n, v) => (g(), L("div", {
68
- ref_key: "el",
69
- ref: t,
70
- class: ne({
71
- "top-menu": !0,
72
- ["top-style_" + e.styling]: !0
73
- // ['top-unwrap-x']: styling === 'default',
74
- }),
75
- onWheel: d
76
- }, [
77
- (g(!0), L(F, null, z(e.items, (i) => (g(), S(X, R({ ref_for: !0 }, i, {
78
- class: "top-menu_item",
79
- color: "theme",
80
- onClick: (A) => b(i, A.ctrlKey || A.metaKey),
81
- isActive: u(i)
82
- }), U({ _: 2 }, [
83
- i.content ? {
84
- name: "default",
85
- fn: B(() => [
86
- E(P(i.content), 1)
87
- ]),
88
- key: "0"
89
- } : void 0
90
- ]), 1040, ["onClick", "isActive"]))), 256)),
91
- Array.isArray(l.value) && e.selectAllItem ? (g(), L("div", Ie, [
92
- te(X, R(e.selectAllItem, {
93
- class: "top-menu_item",
94
- color: "theme",
95
- styling: "",
96
- onClick: v[0] || (v[0] = (i) => s()),
97
- isActive: l.value.length === e.items.length
98
- }), U({ _: 2 }, [
99
- e.selectAllItem.content ? {
100
- name: "default",
101
- fn: B(() => [
102
- E(P(e.selectAllItem.content), 1)
103
- ]),
104
- key: "0"
105
- } : void 0
106
- ]), 1040, ["isActive"])
107
- ])) : M("", !0)
108
- ], 34));
109
- }
110
- }), ke = { class: "top-selector2_itemMulti top-ellipsis" }, Le = /* @__PURE__ */ J({
111
- __name: "itemMulti",
112
- props: {
113
- id: {},
114
- name: {}
115
- },
116
- emits: ["delete"],
117
- setup(e) {
118
- return (a, l) => (g(), L("div", ke, [
119
- E(P(e.name) + " ", 1),
120
- re("span", {
121
- class: "top-selector2_itemMultiDelete",
122
- "data-top-icon": "",
123
- onClick: l[0] || (l[0] = (t) => a.$emit("delete", { id: e.id, name: e.name })),
124
- onMousedown: l[1] || (l[1] = oe(() => {
125
- }, ["stop"]))
126
- }, null, 32)
127
- ]));
128
- }
129
- }), D = /* @__PURE__ */ new Map(), Ce = (e) => {
130
- D.get(e)?.clear();
131
- }, Te = (e) => {
132
- const a = window.mo?.user?.id;
133
- return JSON.stringify(e.params) + ":" + e.url + ":" + a;
134
- }, be = (e, a) => D.get(a)?.get(e), xe = (e, a, l) => {
135
- D.has(a) || D.set(a, /* @__PURE__ */ new Map()), D.get(a)?.set(e, l);
136
- }, we = (e, a, l, t) => {
137
- const u = $([]), b = $(!1), d = $(0);
138
- let c = "", s;
139
- e && !e.params.limit && (e.params.limit = 100);
140
- const n = async () => {
141
- if (!e) return;
142
- const y = t ? Te(e) : void 0;
143
- if (y) {
144
- const I = be(y, e.path);
145
- if (I)
146
- return e.abortByFingerprint(), I;
147
- }
148
- const h = await e.call();
149
- if (h.errors) return;
150
- if (!Array.isArray(h.result)) {
151
- console.warn("Array expected in `res.result`");
152
- return;
153
- }
154
- const x = h.result.findIndex((I) => I.id === void 0 || I.name === void 0);
155
- if (x !== -1) {
156
- console.warn(`В result[${x}] нет id или name`);
157
- return;
158
- }
159
- return y && xe(y, e.path, h), h;
160
- }, v = async (y) => {
161
- if (!e) return;
162
- if (y) {
163
- if (!s || b.value) return;
164
- e.params.offset = s;
165
- } else
166
- e.params.offset = 0;
167
- a?.(e, c), b.value = !0;
168
- const h = await n();
169
- b.value = !1, d.value++, h && (s = h.nextOffset, y ? u.value = u.value.concat(h.result) : u.value = h.result);
170
- }, i = pe(() => v(!1), 200);
171
- return {
172
- apiRequest: e,
173
- items: u,
174
- isLoading: b,
175
- countLoading: d,
176
- load: v,
177
- setSearchTextAndLoad: (y, h = !0) => {
178
- if (e) {
179
- if (y.length < l) {
180
- e.abortByFingerprint(), u.value = [];
181
- return;
182
- }
183
- y === c && u.value.length || (c = y, h ? i() : v(!1));
184
- }
185
- }
186
- };
187
- }, le = 0, K = null, _ = (e, a, l = !0) => l && a.id === K ? Array.isArray(e) ? e.some((t) => t.id === a.id && t.name === a.name) : a.name === e.name : Array.isArray(e) ? e.some((t) => t.id === a.id) : a.id === e.id, Ke = (e, a, l) => {
188
- let t = e.params.filters ?? [];
189
- t = t.filter((u) => u.name !== l), a && t.push(Ae(l, "CONTAINS", [a])), e.changeParams({ filters: t });
190
- }, Se = (e, a, l, t, u, b, d, c, s) => {
191
- const n = $(""), v = {
192
- id: le,
193
- name: ve().Common.All
194
- }, i = () => {
195
- n.value = "";
196
- }, A = () => !(!s.apiRequest || n.value.length >= c), y = N(() => {
197
- const r = [];
198
- return !t && u.value && (typeof u.value == "string" && (v.name = u.value), r.push(v)), l.value?.forEach((C) => r.push({ ...C })), r;
199
- }), h = $([]), x = () => {
200
- h.value = I();
201
- }, I = () => {
202
- const r = n.value.toLowerCase(), C = ge(r);
203
- let o = [], w;
204
- const T = [], j = () => {
205
- T.at(-1)?.listItemProps?.type === "delimiter" && T.pop(), T.length && (w && o.push(w), o.push(...T), T.length = 0);
206
- };
207
- for (const k of y.value)
208
- switch (k.listItemProps?.type) {
209
- case "title":
210
- j(), w = k;
211
- break;
212
- case "delimiter":
213
- if (T.length) {
214
- let G = T.length;
215
- T.at(-1)?.listItemProps?.type === "delimiter" && G--, T[G] = k;
216
- }
217
- break;
218
- default:
219
- const V = k.name.toLowerCase();
220
- (k.id === Number(r) || V.includes(r) || V.includes(C)) && (V === r || V === C ? T.unshift(k) : T.push(k));
221
- }
222
- if (j(), o.push(...s.items.value), b.value && n.value && // результаты могут быть найдены, но не точные, тогда предложить добавить элемент
223
- !o.find((k) => k.name.toLowerCase() === r)) {
224
- const k = {
225
- id: K,
226
- name: n.value
227
- };
228
- o.push(k);
229
- }
230
- return t && (o = o.filter((k) => !_(e.value, k))), o;
231
- }, q = (r) => {
232
- r.listItemProps?.type === "title" || r.listItemProps?.type === "delimiter" || (t && Array.isArray(e.value) ? _(e.value, r) || (e.value = [...e.value, r]) : e.value = r, r.id === K && a("appendItem", r), setTimeout(() => {
233
- i();
234
- }));
235
- };
236
- if (s.apiRequest) {
237
- const r = [l, s.items];
238
- t && r.push(e), H(r, () => {
239
- x();
240
- });
241
- } else
242
- H([e, l, n], () => {
243
- x();
244
- }, {
245
- immediate: !0,
246
- // слежение за изменениями `items`
247
- deep: 2
248
- });
249
- return {
250
- searchText: n,
251
- resetSearch: i,
252
- genIsShort: A,
253
- itemsForShow: h,
254
- selectItem: q,
255
- selectNextItem: () => {
256
- if (Array.isArray(e.value)) return;
257
- const r = h.value.filter((w) => !["title", "delimiter"].includes(w.listItemProps?.type ?? "")), o = (r.findIndex((w) => w.id === e.value.id) + 1) % r.length;
258
- e.value = { ...r[o] };
259
- },
260
- deleteItemByItem: async (r) => {
261
- Array.isArray(e.value) && (e.value = e.value.filter((C) => C.id !== r.id || C.name !== r.name));
262
- }
263
- };
264
- }, Be = {
265
- key: 0,
266
- class: "top-selector2_activeItems"
267
- }, Me = {
268
- key: 1,
269
- class: "top-selector2_activeName top-ellipsis"
270
- }, Pe = {
271
- key: 2,
272
- class: "top-selector2_placeholder top-ellipsis"
273
- }, qe = /* @__PURE__ */ J({
274
- __name: "selector2",
275
- props: /* @__PURE__ */ W({
276
- modelValue: {},
277
- items: { default: () => [] },
278
- title: {},
279
- disabled: { type: Boolean },
280
- icon: {},
281
- modificator: {},
282
- size: { default: "s" },
283
- isError: { type: Boolean },
284
- openByFocusInput: { type: Boolean, default: void 0 },
285
- searchType: { default: "popup" },
286
- placeholder: {},
287
- api: {},
288
- apiSetSearchParams: {},
289
- minLength: { default: 0 },
290
- useCache: { type: Boolean },
291
- appendSearchToResult: { type: Boolean },
292
- multiselect: { type: Boolean },
293
- useAllItem: { type: [Boolean, String] },
294
- addChanger: { type: Boolean },
295
- buttonProps: {},
296
- selectedAsPlaceholder: { type: Boolean }
297
- }, {
298
- modelValue: { required: !0 },
299
- modelModifiers: {}
300
- }),
301
- emits: /* @__PURE__ */ W(["appendItem"], ["update:modelValue"]),
302
- setup(e, { expose: a, emit: l }) {
303
- const t = e, u = ee(e, "modelValue"), b = l;
304
- a({
305
- /**
306
- * Сброс локального кеша и кеша api
307
- *
308
- * @param resetAPICache - Сбросить API кеш, по умолчанию не сбрасывается. Для случаев, когда загруженные данные становятся неактуальными
309
- */
310
- resetCache: (m = !1) => {
311
- c.apiRequest && (m && Ce(c.apiRequest.path), c.items.value = [], c.countLoading.value = 0, c.apiRequest.params.offset = 0, requestAnimationFrame(() => {
312
- s.itemsForShow.value = [];
313
- }), i()?.elPopup && c.setSearchTextAndLoad(s.searchText.value));
314
- }
315
- });
316
- const d = N(() => t.searchType === "inline" && t.multiselect || t.searchType === "inline" && Y.state.isMobile ? "popup" : t.searchType), c = we(t.api, t.apiSetSearchParams, t.minLength, t.useCache), s = Se(
317
- u,
318
- b,
319
- O(t, "items"),
320
- t.multiselect,
321
- O(t, "useAllItem"),
322
- O(t, "appendSearchToResult"),
323
- d,
324
- t.minLength,
325
- c
326
- ), n = N(() => t.buttonProps ? "TopButton" : d.value === "inline" ? "TopInput" : "div"), v = $(null), i = () => v.value?.popup;
327
- c.apiRequest && H(s.searchText, () => {
328
- c.setSearchTextAndLoad(s.searchText.value);
329
- });
330
- const A = N(() => Array.isArray(u.value) || t.multiselect || !t.selectedAsPlaceholder && d.value !== "inline" ? t.placeholder : u.value?.name || t.placeholder), y = (m) => {
331
- let p = !1;
332
- switch (m.key) {
333
- case "Delete":
334
- case "Backspace":
335
- Array.isArray(u.value) && (m.preventDefault(), m.stopPropagation(), u.value.pop());
336
- break;
337
- case "ArrowUp":
338
- case "ArrowRight":
339
- case "ArrowDown":
340
- case "ArrowLeft":
341
- case "Enter":
342
- case " ":
343
- p = !0;
344
- break;
345
- case "Escape":
346
- d.value === "inline" && s.resetSearch();
347
- break;
348
- }
349
- const r = m.key.length === 1 && !m.ctrlKey && !m.metaKey;
350
- (d.value === "popup" || d.value === "inline") && r && (p = !0), i()?.elPopup && (p = !1), p && (d.value === "popup" && (m.preventDefault(), m.stopPropagation(), r && (s.searchText.value || (s.searchText.value = m.key))), m.currentTarget?.click());
351
- }, h = (m) => {
352
- m.preventDefault(), s.selectNextItem();
353
- }, x = () => {
354
- c.apiRequest && c.setSearchTextAndLoad(s.searchText.value, !1);
355
- }, I = () => {
356
- d.value === "popup" && s.searchText.value && s.resetSearch();
357
- }, q = (m) => {
358
- const p = m.target;
359
- p.scrollTop / (p.scrollHeight - p.offsetHeight) > 0.8 && c.load(!0);
360
- };
361
- return (m, p) => {
362
- const r = ie("TopLoadbar"), C = ue("top-focus");
363
- return g(), S(f(ye), {
364
- ref_key: "popupRef",
365
- ref: v,
366
- onOpen: p[3] || (p[3] = (o) => x()),
367
- onClose: p[4] || (p[4] = (o) => I()),
368
- onScrollContentList: p[5] || (p[5] = (o) => f(c) ? q(o) : void 0),
369
- notch: !1,
370
- transitionDuration: 0,
371
- openByFocusInput: d.value === "inline" && (e.openByFocusInput ?? !0),
372
- disabled: d.value === "inline" && f(s).genIsShort()
373
- }, U({
374
- opener: B(() => [
375
- Q((g(), S(fe(n.value), R(e.buttonProps, {
376
- class: {
377
- "top-selector2": !0,
378
- "top-selector2-multiselect": e.multiselect,
379
- ["top-selector2-" + e.modificator]: !!e.modificator,
380
- "top-as-input": !e.buttonProps && d.value !== "inline",
381
- "top-as-selector": !0,
382
- ["top-size_" + e.size]: !0,
383
- "top-disabled": e.disabled,
384
- "top-forms-focusable": !e.disabled,
385
- "top-error": e.isError
386
- },
387
- icon: e.icon,
388
- tabindex: "0",
389
- onKeydown: y,
390
- onBlur: p[0] || (p[0] = (o) => d.value === "inline" && f(s).resetSearch()),
391
- placeholder: A.value,
392
- title: e.title,
393
- captionType: d.value === "inline" && e.title !== void 0 ? "top" : void 0,
394
- modelValue: f(s).searchText.value,
395
- "onUpdate:modelValue": p[1] || (p[1] = (o) => f(s).searchText.value = o)
396
- }), {
397
- default: B(() => [
398
- e.multiselect ? (g(), L("div", Be, [
399
- (g(!0), L(F, null, z(u.value, (o) => (g(), S(Le, {
400
- id: o.id,
401
- name: o.name,
402
- onDelete: f(s).deleteItemByItem
403
- }, null, 8, ["id", "name", "onDelete"]))), 256))
404
- ])) : M("", !0),
405
- d.value !== "inline" && !e.multiselect ? (g(), L("span", Me, P(Array.isArray(u.value) ? "" : u.value.name), 1)) : M("", !0),
406
- e.multiselect && !u.value.length ? (g(), L("span", Pe, P(A.value), 1)) : M("", !0),
407
- e.addChanger && !e.buttonProps && !e.multiselect && f(s).itemsForShow.value.length > 1 && !e.disabled ? (g(), L("span", {
408
- key: 3,
409
- class: "top-changer top-changer-selector",
410
- "data-top-popup-disabled": "true",
411
- onClick: h
412
- })) : M("", !0)
413
- ]),
414
- _: 1
415
- }, 16, ["class", "icon", "placeholder", "title", "captionType", "modelValue"])), [
416
- [
417
- C,
418
- e.isError,
419
- void 0,
420
- { onupdate: !0 }
421
- ]
422
- ])
423
- ]),
424
- contentList: B(() => [
425
- (g(!0), L(F, null, z(f(s).itemsForShow.value, (o) => (g(), S(f(Z), R({
426
- key: o.id ?? void 0,
427
- class: {
428
- "top-active": !Array.isArray(u.value) && !e.multiselect && u.value.id === o.id && u.value.name === o.name,
429
- "top-selector2_item-all": o.id === f(le),
430
- "top-selector2_item-new": o.id === f(K)
431
- }
432
- }, { ref_for: !0 }, o.listItemProps, {
433
- closeByClick: !e.multiselect || f(Y).state.isMobile,
434
- onClick: (w) => f(s).selectItem(o)
435
- }), {
436
- default: B(() => [
437
- m.$slots.item ? ce(m.$slots, "item", {
438
- key: 0,
439
- item: o
440
- }) : (g(), L(F, { key: 1 }, [
441
- E(P(o.name), 1)
442
- ], 64))
443
- ]),
444
- _: 2
445
- }, 1040, ["class", "closeByClick", "onClick"]))), 128)),
446
- !f(s).itemsForShow.value.length && !f(s).genIsShort() ? (g(), S(f(Z), {
447
- key: 0,
448
- type: "regular"
449
- }, {
450
- default: B(() => [
451
- !f(c).isLoading.value || f(c).countLoading.value ? (g(), L(F, { key: 0 }, [
452
- E(P(m.$i18n.Common.No_results), 1)
453
- ], 64)) : (g(), S(f(me), {
454
- key: 1,
455
- type: "circles"
456
- }))
457
- ]),
458
- _: 1
459
- })) : M("", !0),
460
- f(c).countLoading.value && f(c).isLoading.value && d.value === "inline" ? (g(), S(r, { key: 1 })) : M("", !0)
461
- ]),
462
- _: 2
463
- }, [
464
- d.value === "popup" ? {
465
- name: "widget",
466
- fn: B(() => [
467
- Q(te(f(he), {
468
- title: "Поиск",
469
- icon: "",
470
- modelValue: f(s).searchText.value,
471
- "onUpdate:modelValue": p[2] || (p[2] = (o) => f(s).searchText.value = o),
472
- isLoading: !!f(c).countLoading.value && f(c).isLoading.value,
473
- placeholder: A.value
474
- }, null, 8, ["modelValue", "isLoading", "placeholder"]), [
475
- [
476
- C,
477
- u.value,
478
- void 0,
479
- { onupdate: !0 }
480
- ]
481
- ])
482
- ]),
483
- key: "0"
484
- } : void 0
485
- ]), 1032, ["openByFocusInput", "disabled"]);
486
- };
487
- }
488
- });
489
- export {
490
- K as I,
491
- qe as _,
492
- Re as a,
493
- Ke as b,
494
- le as c
495
- };
496
- //# sourceMappingURL=policy.vue_vue_type_style_index_0_lang-BBDJEs5Q.es.js.map