@topvisor/ui 0.9.29-colors → 0.9.29-colors-3
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.
- package/.chunks/{datepicker-BWFx68Rc.amd.js → datepicker-5QMJRJn-.amd.js} +2 -2
- package/.chunks/{datepicker-BWFx68Rc.amd.js.map → datepicker-5QMJRJn-.amd.js.map} +1 -1
- package/.chunks/{datepicker-BfPBssvK.es.js → datepicker-xygATX84.es.js} +2 -2
- package/.chunks/{datepicker-BfPBssvK.es.js.map → datepicker-xygATX84.es.js.map} +1 -1
- package/.chunks/{forms-DBYpY73Z.amd.js → forms-B2NcBl7S.amd.js} +3 -3
- package/.chunks/forms-B2NcBl7S.amd.js.map +1 -0
- package/.chunks/{forms-BScWgSrn.es.js → forms-CSYOiIP2.es.js} +3 -4
- package/.chunks/forms-CSYOiIP2.es.js.map +1 -0
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-D-5F2CnX.amd.js → listItem.vue_vue_type_script_setup_true_lang-C7tg-67i.amd.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-D-5F2CnX.amd.js.map → listItem.vue_vue_type_script_setup_true_lang-C7tg-67i.amd.js.map} +1 -1
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-BzEj4QFY.es.js → listItem.vue_vue_type_script_setup_true_lang-Dhz1gXfh.es.js} +2 -2
- package/.chunks/{listItem.vue_vue_type_script_setup_true_lang-BzEj4QFY.es.js.map → listItem.vue_vue_type_script_setup_true_lang-Dhz1gXfh.es.js.map} +1 -1
- package/.chunks/{menu-DbC1zr5j.es.js → menu-DsfVqR4_.es.js} +2 -2
- package/.chunks/{menu-DbC1zr5j.es.js.map → menu-DsfVqR4_.es.js.map} +1 -1
- package/.chunks/{menu-BWyv8Yuu.amd.js → menu-S1Hk7D3W.amd.js} +2 -2
- package/.chunks/{menu-BWyv8Yuu.amd.js.map → menu-S1Hk7D3W.amd.js.map} +1 -1
- package/.chunks/{popup-DiCBaLAW.es.js → popup-CITB6v6E.es.js} +58 -10
- package/.chunks/popup-CITB6v6E.es.js.map +1 -0
- package/.chunks/{popup-DbR_IPME.amd.js → popup-DncRq57t.amd.js} +58 -10
- package/.chunks/popup-DncRq57t.amd.js.map +1 -0
- package/.chunks/{widgetInput-L8yGX3-T.amd.js → widgetInput-CrrUoVPc.amd.js} +2 -2
- package/.chunks/widgetInput-CrrUoVPc.amd.js.map +1 -0
- package/.chunks/{widgetInput-DCXTtndM.es.js → widgetInput-DFZxHk2w.es.js} +2 -2
- package/.chunks/{widgetInput-DCXTtndM.es.js.map → widgetInput-DFZxHk2w.es.js.map} +1 -1
- package/assets/core.css +1 -1
- package/assets/dark.css +1 -1
- package/assets/forms.css +1 -1
- package/assets/light.css +1 -1
- package/core/core.amd.js +1 -1
- package/core/core.js +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +1 -1
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.js +4 -4
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.js +2 -2
- package/popup/worker.amd.js +1 -1
- package/popup/worker.js +2 -2
- package/project/project.amd.js +1 -1
- package/project/project.js +3 -3
- package/src/components/forms/button/button.stories.d.ts +3 -3
- package/src/components/forms/button/button.vue.d.ts +7 -5
- package/src/components/forms/checkbox/checkbox.stories.d.ts +8 -7
- package/src/components/forms/checkbox/checkbox.vue.d.ts +10 -6
- package/src/components/forms/controlLabel/controlLabel.stories.d.ts +3 -3
- package/src/components/forms/controlLabel/controlLabel.vue.d.ts +4 -2
- package/src/components/forms/hint/hint.stories.d.ts +12 -76
- package/src/components/forms/input/input.stories.d.ts +3 -3
- package/src/components/forms/input/input.vue.d.ts +6 -4
- package/src/components/forms/inputDate/datepicker.d.ts +0 -2
- package/src/components/forms/inputRange/inputRange.stories.d.ts +15 -47
- package/src/components/forms/inputRange/inputRange.vue.d.ts +4 -2
- package/src/components/forms/radio/radio.stories.d.ts +3 -3
- package/src/components/forms/radio/radio.vue.d.ts +6 -4
- package/src/components/forms/select/select.stories.d.ts +2 -2
- package/src/components/forms/select/select.vue.d.ts +4 -2
- package/src/components/forms/switcher/switcher.stories.d.ts +3 -3
- package/src/components/forms/switcher/switcher.vue.d.ts +6 -4
- package/src/components/formsExt/editInput/editInput.stories.d.ts +3 -3
- package/src/components/formsExt/editInput/editInput.vue.d.ts +6 -4
- package/src/components/formsExt/menu/menu.stories.d.ts +1 -1
- package/src/components/formsExt/menu/menu.vue.d.ts +1 -1
- package/src/components/formsExt/selector2/api.d.ts +3 -3
- package/src/components/formsExt/selector2/selector2.stories.d.ts +36 -35
- package/src/components/formsExt/selector2/selector2.vue.d.ts +19 -17
- package/src/components/popup/popup/listItem.vue.d.ts +7 -5
- package/src/components/popup/popup/opener.vue.d.ts +6 -4
- package/src/components/popup/popup/popup.stories.d.ts +21 -85
- package/src/components/popup/popup/popup.vue.d.ts +11 -9
- package/src/components/project/selectorCompetitors/selectorCompetitors.stories.d.ts +2 -2
- package/src/components/project/selectorCompetitors/selectorCompetitors.vue.d.ts +4 -2
- package/src/components/tabs/tabs/content.vue.d.ts +4 -2
- package/src/components/tabs/tabs/tab.vue.d.ts +4 -2
- package/src/components/tabs/tabs/tabs.stories.d.ts +27 -91
- package/src/components/tabs/tabs/tabs.vue.d.ts +4 -2
- package/src/components/tabsView/tabsView/menu.vue.d.ts +6 -4
- package/src/components/tabsView/tabsView/menuItem.vue.d.ts +6 -4
- package/src/components/tabsView/tabsView/menuTitle.vue.d.ts +4 -2
- package/src/components/tabsView/tabsView/store.d.ts +18 -18
- package/src/components/tabsView/tabsView/tabsView.stories.d.ts +12 -12
- package/src/components/tabsView/tabsView/tabsView.vue.d.ts +6 -4
- package/src/components/tabsView/tabsView//320/255/320/273/320/265/320/274/320/265/320/275/321/202/321/213/MenuItem.stories.d.ts +9 -9
- package/src/components/tabsView/tabsView//320/255/320/273/320/265/320/274/320/265/320/275/321/202/321/213/MenuTitle.stories.d.ts +9 -9
- package/src/core/core/core.d.ts +1 -1
- package/src/core/utils/common.d.ts +1 -1
- package/src/core/utils/device.d.ts +0 -3
- package/src/core/utils/price.d.ts +1 -1
- package/src/core/utils/store/localStorage.d.ts +1 -1
- package/src/core/utils/store/store.d.ts +2 -2
- package/src/core/utils/string.d.ts +1 -1
- package/tabs/tabs.amd.js +1 -1
- package/tabs/tabs.js +1 -1
- package/tabsView/tabsView.amd.js +1 -1
- package/tabsView/tabsView.js +2 -2
- package/utils/date.amd.js +1 -1
- package/utils/date.js +1 -1
- package/utils/device.amd.js +1 -1
- package/utils/device.js +1 -1
- package/utils/scroll.amd.js +1 -1
- package/utils/scroll.js +1 -1
- package/utils/window.amd.js +1 -1
- package/utils/window.js +1 -1
- package/.chunks/forms-BScWgSrn.es.js.map +0 -1
- package/.chunks/forms-DBYpY73Z.amd.js.map +0 -1
- package/.chunks/popup-DbR_IPME.amd.js.map +0 -1
- package/.chunks/popup-DiCBaLAW.es.js.map +0 -1
- package/.chunks/widgetInput-L8yGX3-T.amd.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
define(["require","exports","vue","./forms-
|
|
1
|
+
define(["require","exports","vue","./forms-B2NcBl7S.amd"],function(b,k,c,n){"use strict";if(typeof c>"u")var c=window.Vue;n.Core.appendStyle(`/* ui-datepicker */\r
|
|
2
2
|
.ui-datepicker {\r
|
|
3
3
|
--datepicker-day-color: var(--color-bg-3);\r
|
|
4
4
|
--datepicker-day-color-hover: var(--color-layer-secondary-1);\r
|
|
@@ -244,4 +244,4 @@ td.ui-datepicker-today a {\r
|
|
|
244
244
|
.ui-datepicker-row-break {\r
|
|
245
245
|
display: none;\r
|
|
246
246
|
}`);const h=t=>{var r,e;if(!((e=(r=n.Core.$)==null?void 0:r.ui)!=null&&e.datepicker)){console.info("Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker");return}return n.Core.$.datepicker.setDefaults({dateFormat:n.Core.state.dateFormat.toLowerCase().replace("m","mm").replace("y","yy").replace("d","dd")}),n.Core.$(t)};function m(t,r){var e;return(e=h(t))==null?void 0:e.datepicker(r)}let o,p,l,u;c.watch(c.toRef(n.Core.state.dateFormat),()=>{var t;o=n.dateFormat("2000-01-01"),p=((t=o.match(/\D/))==null?void 0:t[0])??"-",l=o.replace(/\D+/g,"").length,u=[];for(let r=0;r<o.length;r++)o[r]===p&&u.push(r)},{immediate:!0});function v(t){let r=t.target.selectionEnd,e=t.target.value,i=e.substring(0,r).replace(/\D+/g,""),a=e.substring(r).replace(/\D+/g,""),s=i.length+a.length-l;if(s>0){i=i.substring(0,l);const d=l-i.length;a=a.substring(a.length-d)}else s<0&&(t.inputType==="deleteContentForward"?i+="0".repeat(-s):a="0".repeat(-s)+a);r=i.length,e=i+a;for(let d=0;d<u.length;d++){const g=u[d];e=e.substring(0,g)+p+e.substring(g),r>=g&&r++}t.inputType==="deleteContentBackward"&&e[r-1]===p&&r--,e!==t.target.value&&(t.target.value=e,t.target.selectionStart=r,t.target.selectionEnd=r)}k.connectDatepicker=m,k.oninput=v,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
|
247
|
-
//# sourceMappingURL=datepicker-
|
|
247
|
+
//# sourceMappingURL=datepicker-5QMJRJn-.amd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-BWFx68Rc.amd.js","sources":["../../src/components/forms/inputDate/datepicker.ts","../../src/components/forms/inputDate/datepicker.css?raw"],"sourcesContent":["import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport { dateFormat } from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!Core.$?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tCore.$.datepicker.setDefaults({\r\n\t\tdateFormat: Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd')\r\n\t});\r\n\r\n\treturn Core.$(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}","export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: var(--color-bg-3);\\r\\n\\t--datepicker-day-color-hover: var(--color-layer-secondary-1);\\r\\n\\t--datepicker-selected-color: var(--color-bg-primary-2);\\r\\n\\t--datepicker-selected-color-hover: var(--color-bg-primary-1);\\r\\n\\t--datepicker-range-color: var(--color-layer-primary-1);\\r\\n\\t--datepicker-range-color-hover: var(--color-layer-primary-2);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text-1);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-text-2);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev-hover:before {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next-hover {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: var(--color-text-3);\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text-1) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-icon-primary-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-icon-negative-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\""],"names":["Core","$","el","forms","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","_a","i","valueChunkLeft","value","selectionPos","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","e","delimiterIndex"],"mappings":"0HAMAA,EAAAA,KAAAA,YCNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EDMAA,EAEA,MAAAC,EAAAC,GAAA,uEAEE,QAAA,KAAA,0EAAA,EAEA,OAGD,OAAAC,EAAA,KAAA,EAAA,WAAA,YAAA,CAA8B,WAAAA,EAAA,KAAA,MAAA,WAAA,YAAA,EAAA,QAAA,IAAA,IAAA,EAAA,QAAA,IAAA,IAAA,EAAA,QAAA,IAAA,IAAA,CAC0E,CAAA,EAGxGA,EAAA,KAAA,EAAAD,CAAA,CACD,EAEgB,SAAAE,EAAAF,EAAAG,EAAA,mDAIhB,IAAAC,EACAC,EACAC,EACAC,EAEAC,EAAAA,MAAAA,EAAAA,MAAAA,EAAAA,KAAAA,MAAAA,UAAAA,EAAAA,IAAAA,OAECJ,EAAAH,EAAA,WAAA,YAAA,EACAI,IAAAI,EAAAL,EAAA,MAAA,IAAA,IAAA,YAAAK,EAAA,KAAA,IACAH,EAAAF,EAAA,QAAA,OAAA,EAAA,EAAA,YAGA,QAAAM,EAAA,EAAAA,EAAAN,EAAA,OAAAM,IACCN,EAAAM,CAAA,IAAAL,GACCE,EAAA,KAAAG,CAAA,CAGH,EAAA,CAAA,UAAA,EAAA,CAAA,6DAWCC,EAAAC,EAAA,UAAA,EAAAC,CAAA,EAAA,QAAA,OAAA,EAAA,EACAC,EAAAF,EAAA,UAAAC,CAAA,EAAA,QAAA,OAAA,EAAA,EAEAE,EAAAJ,EAAA,OAAAG,EAAA,OAAAR,EACA,GAAAS,EAAA,EAAA,uCAKCD,EAAAA,EAAA,UAAAA,EAAA,OAAAE,CAAA,CAA6F,MAAAD,EAAA,IAG7FE,EAAA,YAAA,6DAQDJ,EAAAF,EAAA,OACAC,EAAAD,EAAAG,EAGA,QAAAJ,EAAA,EAAAA,EAAAH,EAAA,OAAAG,IAAA,CACC,MAAAQ,EAAAX,EAAAG,CAAA,EAEAE,EAAAA,EAAA,UAAA,EAAAM,CAAA,EAAAb,EAAAO,EAAA,UAAAM,CAAA,EAGAL,GAAAK,OAMDD,EAAA,YAAA,yBAAAL,EAAAC,EAAA,CAAA,IAAAR,4BAMCY,EAAA,OAAA,MAAAL,EACAK,EAAA,OAAA,eAAAJ,EACAI,EAAA,OAAA,aAAAJ,EAEF"}
|
|
1
|
+
{"version":3,"file":"datepicker-5QMJRJn-.amd.js","sources":["../../src/components/forms/inputDate/datepicker.ts","../../src/components/forms/inputDate/datepicker.css?raw"],"sourcesContent":["import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport { dateFormat } from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!Core.$?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tCore.$.datepicker.setDefaults({\r\n\t\tdateFormat: Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd')\r\n\t});\r\n\r\n\treturn Core.$(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}","export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: var(--color-bg-3);\\r\\n\\t--datepicker-day-color-hover: var(--color-layer-secondary-1);\\r\\n\\t--datepicker-selected-color: var(--color-bg-primary-2);\\r\\n\\t--datepicker-selected-color-hover: var(--color-bg-primary-1);\\r\\n\\t--datepicker-range-color: var(--color-layer-primary-1);\\r\\n\\t--datepicker-range-color-hover: var(--color-layer-primary-2);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text-1);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-text-2);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev-hover:before {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next-hover {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: var(--color-text-3);\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text-1) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-icon-primary-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-icon-negative-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\""],"names":["Core","$","el","forms","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","_a","i","valueChunkLeft","value","selectionPos","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","e","delimiterIndex"],"mappings":"0HAMAA,EAAAA,KAAAA,YCNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EDMAA,EAEA,MAAAC,EAAAC,GAAA,uEAEE,QAAA,KAAA,0EAAA,EAEA,OAGD,OAAAC,EAAA,KAAA,EAAA,WAAA,YAAA,CAA8B,WAAAA,EAAA,KAAA,MAAA,WAAA,YAAA,EAAA,QAAA,IAAA,IAAA,EAAA,QAAA,IAAA,IAAA,EAAA,QAAA,IAAA,IAAA,CAC0E,CAAA,EAGxGA,EAAA,KAAA,EAAAD,CAAA,CACD,EAEgB,SAAAE,EAAAF,EAAAG,EAAA,mDAIhB,IAAAC,EACAC,EACAC,EACAC,EAEAC,EAAAA,MAAAA,EAAAA,MAAAA,EAAAA,KAAAA,MAAAA,UAAAA,EAAAA,IAAAA,OAECJ,EAAAH,EAAA,WAAA,YAAA,EACAI,IAAAI,EAAAL,EAAA,MAAA,IAAA,IAAA,YAAAK,EAAA,KAAA,IACAH,EAAAF,EAAA,QAAA,OAAA,EAAA,EAAA,YAGA,QAAAM,EAAA,EAAAA,EAAAN,EAAA,OAAAM,IACCN,EAAAM,CAAA,IAAAL,GACCE,EAAA,KAAAG,CAAA,CAGH,EAAA,CAAA,UAAA,EAAA,CAAA,6DAWCC,EAAAC,EAAA,UAAA,EAAAC,CAAA,EAAA,QAAA,OAAA,EAAA,EACAC,EAAAF,EAAA,UAAAC,CAAA,EAAA,QAAA,OAAA,EAAA,EAEAE,EAAAJ,EAAA,OAAAG,EAAA,OAAAR,EACA,GAAAS,EAAA,EAAA,uCAKCD,EAAAA,EAAA,UAAAA,EAAA,OAAAE,CAAA,CAA6F,MAAAD,EAAA,IAG7FE,EAAA,YAAA,6DAQDJ,EAAAF,EAAA,OACAC,EAAAD,EAAAG,EAGA,QAAAJ,EAAA,EAAAA,EAAAH,EAAA,OAAAG,IAAA,CACC,MAAAQ,EAAAX,EAAAG,CAAA,EAEAE,EAAAA,EAAA,UAAA,EAAAM,CAAA,EAAAb,EAAAO,EAAA,UAAAM,CAAA,EAGAL,GAAAK,OAMDD,EAAA,YAAA,yBAAAL,EAAAC,EAAA,CAAA,IAAAR,4BAMCY,EAAA,OAAA,MAAAL,EACAK,EAAA,OAAA,eAAAJ,EACAI,EAAA,OAAA,aAAAJ,EAEF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { watch as k, toRef as g } from "vue";
|
|
2
|
-
import { C as a, d as m } from "./forms-
|
|
2
|
+
import { C as a, d as m } from "./forms-CSYOiIP2.es.js";
|
|
3
3
|
const h = `/* ui-datepicker */\r
|
|
4
4
|
.ui-datepicker {\r
|
|
5
5
|
--datepicker-day-color: var(--color-bg-3);\r
|
|
@@ -286,4 +286,4 @@ export {
|
|
|
286
286
|
f as connectDatepicker,
|
|
287
287
|
y as oninput
|
|
288
288
|
};
|
|
289
|
-
//# sourceMappingURL=datepicker-
|
|
289
|
+
//# sourceMappingURL=datepicker-xygATX84.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-BfPBssvK.es.js","sources":["../../src/components/forms/inputDate/datepicker.css?raw","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: var(--color-bg-3);\\r\\n\\t--datepicker-day-color-hover: var(--color-layer-secondary-1);\\r\\n\\t--datepicker-selected-color: var(--color-bg-primary-2);\\r\\n\\t--datepicker-selected-color-hover: var(--color-bg-primary-1);\\r\\n\\t--datepicker-range-color: var(--color-layer-primary-1);\\r\\n\\t--datepicker-range-color-hover: var(--color-layer-primary-2);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text-1);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-text-2);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev-hover:before {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next-hover {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: var(--color-text-3);\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text-1) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-icon-primary-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-icon-negative-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\"","import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport { dateFormat } from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!Core.$?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tCore.$.datepicker.setDefaults({\r\n\t\tdateFormat: Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd')\r\n\t});\r\n\r\n\treturn Core.$(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}"],"names":["css","Core","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","toRef","dateFormat","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":";;AAAA,MAAeA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACMfC,EAAK,YAAYD,CAAG;AAEpB,MAAME,IAAI,CAACC,MAAyB;;AACnC,MAAI,GAACC,KAAAC,IAAAJ,EAAK,MAAL,gBAAAI,EAAQ,OAAR,QAAAD,EAAY,aAAY;AAC5B,YAAQ,KAAK,0EAA0E;AAEvF;AAAA,EACD;AAEK,SAAAH,EAAA,EAAE,WAAW,YAAY;AAAA,IAC7B,YAAYA,EAAK,MAAM,WAAW,YAAA,EAAc,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI;AAAA,EAAA,CACvG,GAEMA,EAAK,EAAEE,CAAE;AACjB;AAEgB,SAAAG,EAAkBH,GAAsBI,GAAc;;AACrE,UAAOF,IAAAH,EAAEC,CAAE,MAAJ,gBAAAE,EAAO,WAAWE;AAC1B;AAEA,IAAIC,GACAC,GACAC,GACAC;AAEJC,EAAMC,EAAMZ,EAAK,MAAM,UAAU,GAAG,MAAM;;AAEzC,EAAAO,IAAgBM,EAAW,YAAY,GACvCL,MAAYJ,IAAAG,EAAc,MAAM,IAAI,MAAxB,gBAAAH,EAA4B,OAAM,KAC9CK,IAAmBF,EAAc,QAAQ,QAAQ,EAAE,EAAE,QACrDG,IAAoB,CAAA;AAEpB,WAASI,IAAI,GAAGA,IAAIP,EAAc,QAAQO;AACrC,IAAAP,EAAcO,CAAC,MAAMN,KACxBE,EAAkB,KAAKI,CAAC;AAG3B,GAAG,EAAE,WAAW,GAAA,CAAM;AAKf,SAASC,EAAQC,GAAQ;AAC3B,MAAAC,IAAeD,EAAE,OAAO,cACxBE,IAAQF,EAAE,OAAO,OAIjBG,IAAiBD,EAAM,UAAU,GAAGD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GACpEG,IAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GAElEI,IAAoBF,EAAe,SAASC,EAAgB,SAASX;AACzE,MAAIY,IAAoB,GAAG;AAET,IAAAF,IAAAA,EAAe,UAAU,GAAGV,CAAgB;AAEvD,UAAAa,IAA2Bb,IAAmBU,EAAe;AACnE,IAAAC,IAAkBA,EAAgB,UAAUA,EAAgB,SAASE,CAAwB;AAAA,EAAA,MAC9F,CAAWD,IAAoB,MAE1BL,EAAE,cAAc,yBAEDG,KAAA,IAAI,OAAO,CAACE,CAAiB,IAE/CD,IAAkB,IAAI,OAAO,CAACC,CAAiB,IAAID;AAIrD,EAAAH,IAAeE,EAAe,QAC9BD,IAAQC,IAAiBC;AAGzB,WAASN,IAAI,GAAGA,IAAIJ,EAAkB,QAAQI,KAAK;AAC5C,UAAAS,IAAiBb,EAAkBI,CAAC;AAElC,IAAAI,IAAAA,EAAM,UAAU,GAAGK,CAAc,IAAIf,IAAYU,EAAM,UAAUK,CAAc,GAGnFN,KAAgBM,KACnBN;AAAA,EAEF;AAGA,EAAID,EAAE,cAAc,2BAA2BE,EAAMD,IAAe,CAAC,MAAMT,KAC1ES,KAIGC,MAAUF,EAAE,OAAO,UACtBA,EAAE,OAAO,QAAQE,GACjBF,EAAE,OAAO,iBAAiBC,GAC1BD,EAAE,OAAO,eAAeC;AAE1B;"}
|
|
1
|
+
{"version":3,"file":"datepicker-xygATX84.es.js","sources":["../../src/components/forms/inputDate/datepicker.css?raw","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: var(--color-bg-3);\\r\\n\\t--datepicker-day-color-hover: var(--color-layer-secondary-1);\\r\\n\\t--datepicker-selected-color: var(--color-bg-primary-2);\\r\\n\\t--datepicker-selected-color-hover: var(--color-bg-primary-1);\\r\\n\\t--datepicker-range-color: var(--color-layer-primary-1);\\r\\n\\t--datepicker-range-color-hover: var(--color-layer-primary-2);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text-1);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-text-2);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev-hover:before {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\tcolor: var(--color-icon-3);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next-hover {\\r\\n\\tcolor: var(--color-icon-1);\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: var(--color-text-3);\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tcolor: var(--color-text-1);\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text-1) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-icon-primary-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-icon-negative-2);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\"","import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport { dateFormat } from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!Core.$?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tCore.$.datepicker.setDefaults({\r\n\t\tdateFormat: Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd')\r\n\t});\r\n\r\n\treturn Core.$(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}"],"names":["css","Core","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","toRef","dateFormat","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":";;AAAA,MAAeA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACMfC,EAAK,YAAYD,CAAG;AAEpB,MAAME,IAAI,CAACC,MAAyB;;AACnC,MAAI,GAACC,KAAAC,IAAAJ,EAAK,MAAL,gBAAAI,EAAQ,OAAR,QAAAD,EAAY,aAAY;AAC5B,YAAQ,KAAK,0EAA0E;AAEvF;AAAA,EACD;AAEK,SAAAH,EAAA,EAAE,WAAW,YAAY;AAAA,IAC7B,YAAYA,EAAK,MAAM,WAAW,YAAA,EAAc,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI;AAAA,EAAA,CACvG,GAEMA,EAAK,EAAEE,CAAE;AACjB;AAEgB,SAAAG,EAAkBH,GAAsBI,GAAc;;AACrE,UAAOF,IAAAH,EAAEC,CAAE,MAAJ,gBAAAE,EAAO,WAAWE;AAC1B;AAEA,IAAIC,GACAC,GACAC,GACAC;AAEJC,EAAMC,EAAMZ,EAAK,MAAM,UAAU,GAAG,MAAM;;AAEzC,EAAAO,IAAgBM,EAAW,YAAY,GACvCL,MAAYJ,IAAAG,EAAc,MAAM,IAAI,MAAxB,gBAAAH,EAA4B,OAAM,KAC9CK,IAAmBF,EAAc,QAAQ,QAAQ,EAAE,EAAE,QACrDG,IAAoB,CAAA;AAEpB,WAASI,IAAI,GAAGA,IAAIP,EAAc,QAAQO;AACrC,IAAAP,EAAcO,CAAC,MAAMN,KACxBE,EAAkB,KAAKI,CAAC;AAG3B,GAAG,EAAE,WAAW,GAAA,CAAM;AAKf,SAASC,EAAQC,GAAQ;AAC3B,MAAAC,IAAeD,EAAE,OAAO,cACxBE,IAAQF,EAAE,OAAO,OAIjBG,IAAiBD,EAAM,UAAU,GAAGD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GACpEG,IAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GAElEI,IAAoBF,EAAe,SAASC,EAAgB,SAASX;AACzE,MAAIY,IAAoB,GAAG;AAET,IAAAF,IAAAA,EAAe,UAAU,GAAGV,CAAgB;AAEvD,UAAAa,IAA2Bb,IAAmBU,EAAe;AACnE,IAAAC,IAAkBA,EAAgB,UAAUA,EAAgB,SAASE,CAAwB;AAAA,EAAA,MAC9F,CAAWD,IAAoB,MAE1BL,EAAE,cAAc,yBAEDG,KAAA,IAAI,OAAO,CAACE,CAAiB,IAE/CD,IAAkB,IAAI,OAAO,CAACC,CAAiB,IAAID;AAIrD,EAAAH,IAAeE,EAAe,QAC9BD,IAAQC,IAAiBC;AAGzB,WAASN,IAAI,GAAGA,IAAIJ,EAAkB,QAAQI,KAAK;AAC5C,UAAAS,IAAiBb,EAAkBI,CAAC;AAElC,IAAAI,IAAAA,EAAM,UAAU,GAAGK,CAAc,IAAIf,IAAYU,EAAM,UAAUK,CAAc,GAGnFN,KAAgBM,KACnBN;AAAA,EAEF;AAGA,EAAID,EAAE,cAAc,2BAA2BE,EAAMD,IAAe,CAAC,MAAMT,KAC1ES,KAIGC,MAAUF,EAAE,OAAO,UACtBA,EAAE,OAAO,QAAQE,GACjBF,EAAE,OAAO,iBAAiBC,GAC1BD,EAAE,OAAO,eAAeC;AAE1B;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
define(["require","exports","vue","../require/css.amd!../assets/forms.css"],function(q,u,e){"use strict";var X,K;if(typeof e>"u")var e=window.Vue;function N(){return"devicePixelRatio"in window&&window.devicePixelRatio>1}function z(){return!!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i)}function L(){return navigator.userAgent.indexOf("Topvisor_App")!=-1}function R(){return navigator.userAgent.indexOf("Mac OS X")!==-1}function G(){const o=/Chrome|Android/.test(navigator.userAgent);let t=/Safari/.test(navigator.userAgent);return o&&t&&(t=!1),t}function Q(){return R()?"⌘":"Ctrl"}const J=()=>$(document).scrollTop(),Z=()=>$(document),j=()=>[document],x=()=>{const o=[["iOS",/(iPhone|iPad)/i],["Android",/(Android)/i],["Windows Phone",/(IEMobile)/i],["Windows 3.11",/Win16/i],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/i],["Windows 98",/(Windows 98)|(Win98)/i],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/i],["Windows XP",/(Windows NT 5.1)|(Windows XP)/i],["Windows Server 2003",/(Windows NT 5.2)/i],["Windows Vista",/(Windows NT 6.0)/i],["Windows 7",/(Windows NT 6.1)/i],["Windows 8",/(Windows NT 6.[23])|(Windows 8)/i],["Windows 10",/(Windows NT 10)/i],["Windows NT 4.0",/(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)/i],["Windows ME",/Windows ME/i],["Windows",/Windows/i],["Open BSD",/OpenBSD/i],["Sun OS",/SunOS/i],["Linux",/(Linux)|(X11)/i],["Macintosh",/(Mac_PowerPC)|(Macintosh)|(Mac OS X 10.4)|(Mac OS X 10.5)|(Mac OS X 10.6)/i],["QNX",/QNX/i],["BeOS",/BeOS/i],["OS/2",/OS\/2/i]];let t="";for(let s=0;s<o.length;s++)if(o[s][1].test(navigator.userAgent)){t=o[s][0];break}return t},ee=async()=>{var t;let o=x();if(o==="Windows 10"){const s=await((t=navigator==null?void 0:navigator.userAgentData)==null?void 0:t.getHighEntropyValues(["platformVersion"]));s&&s.platformVersion>="13"&&(o="Windows 11")}return o};class te{}const oe=100;let P;const V=new Map,_={width:window.innerWidth,height:window.innerHeight};function ne(o){V.set(o,o)}function se(o){V.delete(o)}function ae(o){clearTimeout(P),P=setTimeout(function(){o.topEvent={widthDiff:_.width-window.innerWidth,hightDiff:_.height-window.innerHeight},_.width=window.innerWidth,_.height=window.innerHeight,V.forEach(t=>t(o))},oe)}window.addEventListener("resize",ae);const O={addOnReize:ne,removeOnResize:se},ie={widthForMobile:900,dateFormat:"Y-m-d",gmt:(X=new Date().toString().match(/GMT(\S+)/))==null?void 0:X[1]},le={isMobile:!1,isMobileUA:!1,isRetina:!1,isApp:!1,isLandscape:!0,isPortrait:!1,size:0,dateFormat:"Y-m-d",gmt:(K=new Date().toString().match(/GMT(\S+)/))==null?void 0:K[1]},E=o=>{var t,s;if(!((s=(t=p.$)==null?void 0:t.ui)!=null&&s.tooltip)){console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");return}return p.$(o)},A=(o,t)=>{var a;const s=o.value??{};return s.content??=(a=t.props)==null?void 0:a.title,s.content=String(s.content).replace(/\r\n|\r|\n/g,"<br>"),s.position??={my:"bottom-18px",at:"top center"},s},re={mounted(o,t,s){var a;(a=E(o))==null||a.tooltip(A(t,s))},updated(o,t,s,a){var l;const i=A(t,s),n=(l=E(o))==null?void 0:l.tooltip("instance");n&&(n.options={...n.options,...i})},unmounted(o,t,s){var a;(a=E(o))==null||a.tooltip("destroy")}},de={mounted:function(o,t){(t.value||t.value===void 0)&&o.focus()}};let y;const ce={mounted(o,t,s){const a=t.value||"top-sticky";y=new IntersectionObserver(i=>{let n=i[0].intersectionRatio<1;n&&t.arg==="bottom"&&i[0].intersectionRect.y===0&&(n=!1),o.classList.toggle(a,n)},{threshold:[1]}),y.observe(o)},unmounted(o,t,s){y==null||y.disconnect()}};let H=!1,k,C;const S=new Map,pe=(o,t)=>{const{distance:s,percent:a}=C,i=o.getBoundingClientRect().top,n=t*a/100/s,l=(t-i)/n;l<=s?o.style.transform=`translateY(${s-l}px)`:o.style.transform="translateY(0px)"},ue=o=>{let t=window.innerHeight;window.addEventListener("scroll",()=>{S.forEach(s=>pe(s,t))},{passive:!0}),k=new IntersectionObserver(s=>{t=window.innerHeight,s.forEach(a=>{const i=a.target;if(a.intersectionRatio<.1?S.delete(i):S.set(i,i),a.intersectionRatio===0){const{distance:n,percent:l}=C;i.style.transform=`translateY(${n}px)`}})},{threshold:.1})},me={mounted(o,t,s){var l;if(p.state.isMobileUA)return;const a=(l=t.arg)==null?void 0:l.split(":");let i=Number((a==null?void 0:a[0])??100),n=Number((a==null?void 0:a[1])??30);C={distance:i,percent:n},H||(ue(),H=!0),k.observe(o)},unmounted(o,t,s){S.delete(o),k==null||k.unobserve(o)}},W=typeof window>"u"?{}:window;class p{static L=e.reactive({Not_date:"Not date"});static page=W.page??{};static Page=te;static options=ie;static state=e.reactive({...le});static matchMediaIsMobile;static $=W.$;static appendStyle(t,s=""){let a="all";s==="m"&&(a="(max-width: "+this.options.widthForMobile+"px)"),s==="pc"&&(a="(min-width: "+this.options.widthForMobile+"px)");const i=document.createElement("style");i.innerHTML=t,i.media=a,document.head.append(i)}static install(t,s){p.defineOptions(s),t.provide("top-core",p),this.installDirectives(t)}static installDirectives(t){t.directive("top-tooltip",re),t.directive("top-focus",de),t.directive("top-sticky",ce),t.directive("top-swim-up",me)}static defineOptions(t){t!=null&&t.widthForMobile&&(this.options.widthForMobile=t.widthForMobile),t!=null&&t.dateFormat&&(this.options.dateFormat=t.dateFormat),t!=null&&t.gmt&&(this.options.gmt=t.gmt),p.setState()}static setState(){p.matchMediaIsMobile=window.matchMedia(`(max-width: ${p.options.widthForMobile}px)`),p.state.isMobileUA=z(),p.state.isRetina=N(),p.state.isApp=L(),p.state.dateFormat=this.options.dateFormat,p.state.gmt=this.options.gmt,p.setStateByWindowSize(),O.addOnReize(p.onResize),p.onResize(),p.saveToCookie()}static onResize(){p.setStateByWindowSize(),document.documentElement.style.setProperty("--100vh",window.innerHeight+"px")}static setStateByWindowSize(){var t;p.state.isMobile=!!((t=p.matchMediaIsMobile)!=null&&t.matches),p.state.isLandscape=window.innerWidth>window.innerHeight,p.state.isPortrait=!p.state.isLandscape,p.state.size=window.innerWidth>window.innerHeight?window.innerWidth:window.innerHeight,p.saveToCookie()}static saveToCookie(){const t=[1,window.innerWidth,window.innerHeight,window.devicePixelRatio,Number(p.state.isMobile),Number(p.state.isRetina)];document.cookie="device="+t.join(",")+"; path=/;"}}const w=window.L??{},fe=(o,t,s)=>{switch(new Date(o,t,s).getDay()){case 0:return w.Vs+".";case 1:return w.Pn+".";case 2:return w.Vt+".";case 3:return w.Sr+".";case 4:return w.Ct+".";case 5:return w.Pt+".";case 6:return w.Sb+".";default:return""}},he=(o,t=!0,s=2)=>{let a=String(o.getFullYear()),i=String(o.getDate()).padStart(2,"0"),n=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getHours()).padStart(2,"0"),d=String(o.getMinutes()).padStart(2,"0"),h=String(o.getSeconds()).padStart(2,"0"),r=a+"-"+n+"-"+i;return s>=1&&(r+=" "+l),s>=2&&(r+=":"+d),s===3&&(r+=":"+h),t&&(r=v(r,s)),r};function ge(o){return o.indexOf("T")===-1&&(o.length==10&&(o+=" 00:00:00"),o=o.replace(" ","T")+p.state.gmt),new Date(o)}function F(o,t=!0,s=0){let a;o!=null?a=new Date(o):a=new Date;const i=a.getFullYear(),n=String(a.getMonth()+1).padStart(2,"0"),l=a.getDate().toString().padStart(2,"0"),d=a.getHours().toString().padStart(2,"0"),h=a.getMinutes().toString().padStart(2,"0"),r=a.getSeconds().toString().padStart(2,"0");return a=i+"-"+n+"-"+l,s&&(a+=" "),s>=1&&(a+=d),s>=2&&(a+=":"+h),s>=3&&(a+=":"+r),t&&(a=v(a,s)),a}function be(o,t=!0){const a=new Date().getTimezoneOffset()/60*-1*60*60*1e3,i=3*60*60*1e3;let n;o!==void 0?n=new Date(o):n=new Date,n.setTime(n.getTime()-a+i);let l=String(n.getFullYear()),d=String(n.getDate()).padStart(2,"0"),h=String(n.getMonth()+1).padStart(2,"0"),r=String(n.getHours()).padStart(2,"0"),c=String(n.getMinutes()).padStart(2,"0"),m=String(n.getSeconds()).padStart(2,"0"),f=l+"-"+h+"-"+d+" "+r+":"+c+":"+m;return t&&(f=v(f)),f}function v(o,t=2,s,a=p.L.Not_date){if(typeof o=="string"&&(!o||o.substring(0,10)==="0000-00-00")&&a&&a!=="0000-00-00")return a;s||(s=p.state.dateFormat.toLowerCase().toLowerCase().replace("m","mm").replace("y","yy").replace("d","dd"));let i;if(o instanceof Date)i=o;else{let l=o.substring(0,10);if(l.length===7&&(l+="-01"),l+=" 00:00",l=l.replace(/-/g,"/"),i=new Date(l),isNaN(Number(i)))return a}let n="";if(s&&window.$&&(n=$.datepicker.formatDate(s,i)),t&&typeof o=="string"&&o.length>10||t&&o instanceof Date){let l="";if(o instanceof Date)l=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"numeric",minute:t>=2?"numeric":void 0,second:t>=3?"numeric":void 0});else switch(t){case 1:l=o.substring(11,13);break;case 2:l=o.substring(11,16);break;case 3:l=o.substring(11,19);break}n+=" "+l}return n=n.trim(),n}function D(o,t=p.L.Not_date){if(!o)return t;if(o.match(/\d\d\d\d-\d\d-\d\d/))return o;const s=p.state.dateFormat.toLowerCase(),a=o.split(/\W/),i=s.split(/\W/);let n="",l="",d="";i.forEach((r,c)=>{switch(r){case"d":n=a[c];break;case"m":l=a[c];break;case"y":d=a[c];break}});let h=d+"-"+l+"-"+n;return h.match(/\d\d\d\d-\d\d-\d\d/)||(console.info("Неверный формат даты, будет возращена текущая дата, "+h),h=F(new Date().getTime(),!1).substring(0,10)),h}const we={class:"top-avatar"},ve=["src","title"],ye=["title"],ke=e.defineComponent({__name:"avatar",props:{size:{default:64},image:{},nickname:{},isOnline:{type:Boolean},lastActiveTime:{},i18n:{default:()=>({Online:"Online",LastSeen:"Last seen"})}},setup(o){e.useCssVars(i=>({"15bd2dfc":i.size+"px"}));const t=o,s=e.computed(()=>{var i,n;if(t.isOnline)return(i=t.i18n)==null?void 0:i.Online;if(t.lastActiveTime)return((n=t.i18n)==null?void 0:n.LastSeen)+": "+v(t.lastActiveTime,2)}),a=e.computed(()=>t.nickname?t.nickname+(s.value?`
|
|
2
|
-
${s.value}`:""):s.value);return(i,n)=>(e.openBlock(),e.createElementBlock("div",we,[e.createElementVNode("img",{class:"top-avatar_image",src:i.image,title:a.value,alt:""},null,8,ve),i.isOnline?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-avatar_status",title:s.value},null,8,ye)):e.createCommentVNode("",!0)]))}}),$e={"top-avatar":"top-avatar","top-avatar_image":"top-avatar_image","top-avatar_status":"top-avatar_status"},g=(o,t)=>{const s=o.__vccOpts||o;for(const[a,i]of t)s[a]=i;return s},_e=g(ke,[["__cssModules",{$style:$e}]]),Se={key:0,class:"top-ellipsis"},Be=g(e.defineComponent({__name:"button",props:{color:{default:"blue"},styling:{default:""},size:{default:"s"},name:{},title:{},icon:{},icon2:{},href:{},disabled:{type:Boolean},isSubmit:{type:Boolean},isActive:{type:Boolean},isProgress:{type:Boolean}},setup(o){const t=o,s=e.computed(()=>t.href?"a":"button"),a=e.computed(()=>t.isSubmit?"submit":void 0);return(i,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value),{class:e.normalizeClass({"top-active":i.isActive,"top-disabled":i.disabled,"top-forms-focusable":!i.disabled,"top-button":!0,"top-button-progress":i.isProgress,[`top-size_${i.size}`]:!!i.size,[`top-color_${i.color}`]:!0,[`top-style_${i.styling}`]:!!i.styling,"top-button-withoutText":!i.$slots.default}),name:i.name,title:i.title,href:i.href,type:a.value,"data-top-icon":i.icon||void 0,"data-top-icon2":i.icon2||void 0,disabled:i.disabled||void 0,inProgress:i.isProgress},{default:e.withCtx(()=>[i.$slots.default?(e.openBlock(),e.createElementBlock("span",Se,[e.renderSlot(i.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(i.icon?"":"Button"),1)])])):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"html")]),_:3},8,["class","name","title","href","type","data-top-icon","data-top-icon2","disabled","inProgress"]))}}),[["__cssModules",{$style:{"top-button":"top-button","top-active":"top-active","top-button-progress":"top-button-progress",progress:"_progress_1f1nw_1","top-button-withoutText":"top-button-withoutText","top-color_blue":"top-color_blue","top-color_green":"top-color_green","top-color_orange":"top-color_orange","top-color_red":"top-color_red","top-color_pink":"top-color_pink","top-color_theme":"top-color_theme","top-style_outline":"top-style_outline","top-style_soft":"top-style_soft","top-style_transparent":"top-style_transparent","top-size_l":"top-size_l","top-size_xl":"top-size_xl"}}]]),Me={class:"top-forms-optionLabel"},B=g(e.defineComponent({__name:"controlLabel",props:{description:{},disabled:{type:Boolean}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("div",{class:e.normalizeClass({"top-forms-optionLabel_title":!0,"top-forms-optionLabel_title-disabled":t.disabled})},[e.renderSlot(t.$slots,"default")],2),t.description?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["top-forms-optionLabel_description",{"top-forms-optionLabel_description-disabled":t.disabled}])},e.toDisplayString(t.description),3)):e.createCommentVNode("",!0)]))}}),[["__cssModules",{$style:{"top-forms-optionLabel":"top-forms-optionLabel","top-forms-optionLabel_title":"top-forms-optionLabel_title","top-forms-optionLabel_title-disabled":"top-forms-optionLabel_title-disabled","top-forms-optionLabel_description":"top-forms-optionLabel_description","top-forms-optionLabel_description-disabled":"top-forms-optionLabel_description-disabled"}}]]),Ve=["name","value","indeterminate","disabled"],Ee=g(e.defineComponent({__name:"checkbox",props:e.mergeModels({modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},indeterminate:{type:Boolean},isError:{type:Boolean}},{modelValue:{type:[Boolean,Array,Set]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.useModel(o,"modelValue");return(s,a)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-checkbox":!0,["top-checkbox_"+s.name]:!!s.name,"top-disabled":s.disabled,"top-error":s.isError&&!s.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:e.normalizeClass({"top-forms-focusable":!s.disabled,"top-forms-option":!0,"top-checkbox_input":!0,"top-error":s.isError&&!s.disabled}),name:s.name,"onUpdate:modelValue":a[0]||(a[0]=i=>t.value=i),value:s.value,indeterminate:s.indeterminate,disabled:s.disabled},null,10,Ve),[[e.vModelCheckbox,t.value]]),s.$slots.default?(e.openBlock(),e.createBlock(B,{key:0,description:s.description,disabled:s.disabled},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkbox":"top-checkbox","top-checkbox_input":"top-checkbox_input","top-error":"top-error"}}]]),Ce=["title"],I=g(e.defineComponent({__name:"hint",props:{hint:{}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("span",{class:"top-hint","data-top-icon":"",title:t.hint},null,8,Ce))}}),[["__cssModules",{$style:{"top-hint":"top-hint"}}]]),We=["modelValue"],De=!!document.documentElement.ontouchstart&&!!document.createElement("input").showPicker;let U=o=>{};const Te=g(e.defineComponent({__name:"inputDate",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{default:""},addCleaner:{type:Boolean},title:{},captionType:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,a=t;e.onUnmounted(()=>{n&&n.datepicker("destroy")});const i=e.ref();let n;const l=e.computed({get(){return v(s.modelValue,2,void 0,"0000-00-00")},set(c){c=D(c,"0000-00-00"),a("update:modelValue",c)}});let d=c=>{U(c)},h=c=>{const m=D(c.target.value),f=v(m);if(!f||f===p.L.Not_date||c.target.value!==f){c.target.value=l.value;return}l.value=c.target.value};async function r(c){const m=await new Promise((f,b)=>q(["./datepicker-BWFx68Rc.amd"],f,b));U=m.oninput,n=m.connectDatepicker(c.target,{onSelect:()=>h(c)}),n&&n.datepicker("show")}return(c,m)=>e.unref(De)?(e.openBlock(),e.createBlock(e.unref(T),e.mergeProps({key:0},c.$props,{modelValue:l.value,readonly:"",onClick:m[1]||(m[1]=f=>i.value.showPicker())}),{default:e.withCtx(()=>[e.createElementVNode("input",{ref_key:"el",ref:i,type:"date",class:"top-input_input-date",modelValue:c.modelValue,onChange:m[0]||(m[0]=f=>l.value=f.target.value),tabindex:"-1"},null,40,We)]),_:1},16,["modelValue"])):(e.openBlock(),e.createBlock(e.unref(T),e.mergeProps({key:1},c.$props,{modelValue:l.value,"onUpdate:modelValue":m[2]||(m[2]=f=>f===""?l.value="":""),onInput:e.unref(d),onFocusOnce:r,onChange:e.unref(h),modificator:"datepicker"}),null,16,["modelValue","onInput","onChange"]))}}),[["__cssModules",{$style:{"top-input-datepicker":"top-input-datepicker","top-input_input-date":"top-input_input-date"}}]]),Ne={class:"top-inputRange"},ze=e.createElementVNode("span",{class:"top-inputRange_dash"}," — ",-1),Le=g(e.defineComponent({__name:"inputRange",setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("div",Ne,[e.renderSlot(t.$slots,"from"),ze,e.renderSlot(t.$slots,"to")]))}}),[["__cssModules",{$style:{"top-inputRange":"top-inputRange","top-inputRange_dash":"top-inputRange_dash","top-input":"top-input"}}]]),Re=["name","value","disabled"],Pe=g(e.defineComponent({__name:"radio",props:{modelValue:{},value:{},name:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,a=t,i=e.computed({get(){return s.modelValue},set(n){a("update:modelValue",n)}});return(n,l)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-radio":!0,["top-radio_"+n.name]:n.name!=="","top-disabled":n.disabled,"top-error":n.isError&&!n.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"radio",class:e.normalizeClass({"top-forms-focusable":!n.disabled,"top-forms-option":!0,"top-radio_input":!0,"top-error":n.isError&&!n.disabled}),"onUpdate:modelValue":l[0]||(l[0]=d=>i.value=d),name:n.name,value:n.value,disabled:n.disabled},null,10,Re),[[e.vModelRadio,i.value]]),n.$slots.default?(e.openBlock(),e.createBlock(B,{key:0,description:n.description,disabled:n.disabled},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-radio":"top-radio","top-radio_input":"top-radio_input","top-error":"top-error"}}]]),Oe=["name","value","disabled"],Ae=g(e.defineComponent({__name:"switcher",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,a=t,i=e.computed({get(){return s.modelValue},set(n){a("update:modelValue",n)}});return(n,l)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-checkboxSwitcher":!0,"top-disabled":n.disabled,"top-error":n.isError&&!n.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:e.normalizeClass({"top-forms-focusable":!n.disabled,"top-forms-option":!0,"top-checkboxSwitcher_input":!0,"top-error":n.isError&&!n.disabled}),"onUpdate:modelValue":l[0]||(l[0]=d=>i.value=d),name:n.name,value:n.value,disabled:n.disabled},null,10,Oe),[[e.vModelCheckbox,i.value]]),n.$slots.default?(e.openBlock(),e.createBlock(B,{key:0,description:n.description,disabled:n.disabled},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkboxSwitcher":"top-checkboxSwitcher","top-checkboxSwitcher_input":"top-checkboxSwitcher_input","top-error":"top-error"}}]]),He=["name","placeholder","disabled","readonly","rows"],Fe={key:0,class:"top-textarea_pseudoContent"},Ie=g(e.defineComponent({inheritAttrs:!1,__name:"textarea",props:{modelValue:{},name:{},placeholder:{},rows:{default:5},minHeight:{default:120},expandable:{type:Boolean},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["update:modelValue"],setup(o,{emit:t}){e.useCssVars(n=>({"6e3fbb58":n.minHeight+"px"}));const s=o,a=t,i=e.computed({get(){return s.modelValue},set(n){a("update:modelValue",n)}});return(n,l)=>{const d=e.resolveDirective("top-tooltip");return e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-textarea":!0,["top-textarea-"+n.name]:n.name,"top-disabled":n.disabled})},[e.withDirectives(e.createElementVNode("textarea",e.mergeProps({type:"text",class:{"top-forms-focusable":!n.disabled,"top-textarea_textarea":!0,"top-textarea_textarea-expandable":n.expandable,"top-error":n.isError},autocomplete:"off_always",name:n.name,placeholder:n.placeholder,disabled:n.disabled,readonly:n.readonly,rows:n.expandable?void 0:n.rows},n.$attrs,{"onUpdate:modelValue":l[0]||(l[0]=h=>i.value=h)}),null,16,He),[[e.vModelText,i.value]]),n.expandable?(e.openBlock(),e.createElementBlock("div",Fe,e.toDisplayString(i.value+" "),1)):e.createCommentVNode("",!0),n.hint?e.withDirectives((e.openBlock(),e.createBlock(I,{key:1,class:"top-textarea_hint",hint:n.hint},null,8,["hint"])),[[d]]):e.createCommentVNode("",!0)],2)}}}),[["__cssModules",{$style:{"top-textarea":"top-textarea","top-textarea_textarea":"top-textarea_textarea","top-textarea_textarea-expandable":"top-textarea_textarea-expandable","top-textarea_pseudoContent":"top-textarea_pseudoContent","top-textarea_hint":"top-textarea_hint"}}]]),Ue=["data-value","data-top-icon","data-top-icon2"],Ye=["name","disabled"],Xe=["label","disabled"],Ke=["value","selected","disabled"],qe=["value","selected","disabled"],Ge={key:1,class:"top-formsCaption"},Qe=g(e.defineComponent({__name:"select",props:e.mergeModels({modelValue:{},options:{},name:{},disabled:{type:Boolean},icon:{},size:{default:"s"},addChanger:{type:Boolean},title:{},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const s=o,a=e.useModel(o,"modelValue"),i=e.computed(()=>{const r=new Map;return s.options.forEach((c,m)=>{if(typeof c=="string"&&(c=l(m,c)),c.children){const f=new Map;c.children.forEach((b,M)=>{typeof b=="string"&&(b=l(M,b)),f.set(b.value,b)}),c={...c},c.children=f,r.set(c.value,c)}else r.set(c.value,c)}),r}),n=e.computed(()=>{const r=new Map;return i.value.forEach(c=>{if(!c.disabled){if(c.children){c.children.forEach(m=>{m.disabled||r.set(m.value,m)});return}r.set(c.value,c)}}),r}),l=(r,c)=>({value:r,title:c});e.watch([()=>s.modelValue,n],()=>{(a.value===null||a.value===void 0)&&n.value.size&&(console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"),a.value=n.value.keys().next().value)},{immediate:!0});const d=e.computed(()=>{var r;return(r=n.value.get(a.value))==null?void 0:r.icon}),h=()=>{const r=[...n.value.keys()],m=(r.indexOf(a.value)+1)%r.length;a.value=r[m]};return(r,c)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-select":!0,["top-select-"+r.name]:r.name,["top-size_"+r.size]:!0,"top-formsCaptionWrapper":!!r.title,"top-select-error":r.isError,"top-disabled":r.disabled}),"data-value":a.value,"data-top-icon":r.icon,"data-top-icon2":d.value},[e.withDirectives(e.createElementVNode("select",{class:e.normalizeClass({"top-forms-focusable":!r.disabled,"top-select_select":!0,"top-select_arrow":!0,"top-error":r.isError}),name:r.name,disabled:r.disabled,"onUpdate:modelValue":c[0]||(c[0]=m=>a.value=m)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,([m,f])=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[f.children?(e.openBlock(),e.createElementBlock("optgroup",{key:"group_"+m,label:f.title,disabled:f.disabled},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.children,([b,M])=>(e.openBlock(),e.createElementBlock("option",{key:b,value:b,selected:b===a.value,disabled:M.disabled},e.toDisplayString(M.title),9,Ke))),128))],8,Xe)):(e.openBlock(),e.createElementBlock("option",{key:m??void 0,value:m,selected:m===a.value,disabled:f.disabled},e.toDisplayString(f.title),9,qe))],64))),256))],10,Ye),[[e.vModelSelect,a.value]]),r.addChanger&&n.value.size&&!r.disabled?(e.openBlock(),e.createElementBlock("span",{key:0,class:"top-changer",onClick:h})):e.createCommentVNode("",!0),r.title?(e.openBlock(),e.createElementBlock("span",Ge,e.toDisplayString(r.title),1)):e.createCommentVNode("",!0)],10,Ue))}}),[["__cssModules",{$style:{"top-select":"top-select","top-select-error":"top-select-error","top-select_select":"top-select_select","top-changer":"top-changer"}}]]),Je={"top-loadbar":"top-loadbar"},Ze={},je={class:"top-loadbar"};function xe(o,t){return e.openBlock(),e.createElementBlock("div",je)}const Y=g(Ze,[["render",xe],["__cssModules",{$style:Je}]]),et=["data-top-icon","data-top-icon2"],tt=["name","title","placeholder","disabled","readonly"],ot={key:2,class:"top-formsCaption"},T=g(e.defineComponent({inheritAttrs:!1,__name:"input",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{default:"s"},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{},addCleaner:{type:Boolean},title:{},captionType:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,a=t,i=e.computed({get(){return s.modelValue},set(d){a("update:modelValue",d)}}),n=e.computed(()=>s.addCleaner&&!s.title||s.captionType!==""?"":s.title),l=d=>{s.modelValue&&d.stopPropagation(),a("update:modelValue","")};return(d,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-input":!0,["top-size_"+d.size]:!0,"top-disabled":d.disabled,["top-input-"+d.modificator]:!!d.modificator,"top-input-withCleaner":d.addCleaner&&i.value&&i.value!=="0000-00-00","top-formsCaptionWrapper":d.captionType!=="","top-formsCaptionWrapper-always":d.captionType==="top"}),"data-top-icon":d.icon,"data-top-icon2":d.icon2},[d.isLoading?(e.openBlock(),e.createBlock(e.unref(Y),{key:0})):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",class:{"top-input_input":!0,["top-input_input-"+d.modificator]:!!d.modificator,"top-forms-focusable":!d.disabled,"top-error":d.isError},autocomplete:"off_always",name:d.name,"onUpdate:modelValue":h[0]||(h[0]=r=>i.value=r),title:d.title,placeholder:n.value,disabled:d.disabled,readonly:d.readonly,onKeydown:h[1]||(h[1]=e.withKeys(r=>(d.addCleaner||!!d.$slots.btn)&&l(r),["esc"]))},d.$attrs),null,16,tt),[[e.vModelText,i.value]]),d.addCleaner&&i.value&&i.value!=="0000-00-00"?(e.openBlock(),e.createElementBlock("span",{key:1,class:"top-input_cleaner","data-top-icon":"",onClick:e.withModifiers(l,["prevent"])})):e.createCommentVNode("",!0),d.captionType!==""?(e.openBlock(),e.createElementBlock("span",ot,e.toDisplayString(d.title),1)):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default")],10,et))}}),[["__cssModules",{$style:{"top-input":"top-input","top-input_input":"top-input_input","top-input-withCleaner":"top-input-withCleaner","top-input_cleaner":"top-input_cleaner","top-loadbar":"top-loadbar"}}]]);u.Button=Be,u.ControlLabel=B,u.Core=p,u.Events=O,u.Hint=I,u.Input=T,u.Loadbar=Y,u.Textarea=Ie,u._export_sfc=g,u._window=W,u.avatar=_e,u.checkbox=Ee,u.dateFormat=v,u.dateToString=he,u.dateUnformat=D,u.genDate=F,u.genDateMoscow=be,u.get$scroll=Z,u.getCommandKeyLabel=Q,u.getDayOfWeek=fe,u.getElsScroll=j,u.getOSAsync=ee,u.getScrollTop=J,u.inputDate=Te,u.inputRange=Le,u.isApp=L,u.isMacOS=R,u.isMobile=z,u.isRetina=N,u.isSafari=G,u.radio=Pe,u.select=Qe,u.stringToDate=ge,u.switcher=Ae});
|
|
3
|
-
//# sourceMappingURL=forms-
|
|
1
|
+
define(["require","exports","vue","../require/css.amd!../assets/forms.css"],function(q,u,e){"use strict";var X,K;if(typeof e>"u")var e=window.Vue;function N(){return"devicePixelRatio"in window&&window.devicePixelRatio>1}function z(){return!!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i)}function L(){return navigator.userAgent.indexOf("Topvisor_App")!=-1}function R(){return navigator.userAgent.indexOf("Mac OS X")!==-1}function G(){const o=/Chrome|Android/.test(navigator.userAgent);let t=/Safari/.test(navigator.userAgent);return o&&t&&(t=!1),t}function Q(){return R()?"⌘":"Ctrl"}const J=()=>$(document).scrollTop(),Z=()=>$(document),j=()=>[document],x=()=>{const o=[["iOS",/(iPhone|iPad)/i],["Android",/(Android)/i],["Windows Phone",/(IEMobile)/i],["Windows 3.11",/Win16/i],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/i],["Windows 98",/(Windows 98)|(Win98)/i],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/i],["Windows XP",/(Windows NT 5.1)|(Windows XP)/i],["Windows Server 2003",/(Windows NT 5.2)/i],["Windows Vista",/(Windows NT 6.0)/i],["Windows 7",/(Windows NT 6.1)/i],["Windows 8",/(Windows NT 6.[23])|(Windows 8)/i],["Windows 10",/(Windows NT 10)/i],["Windows NT 4.0",/(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)/i],["Windows ME",/Windows ME/i],["Windows",/Windows/i],["Open BSD",/OpenBSD/i],["Sun OS",/SunOS/i],["Linux",/(Linux)|(X11)/i],["Macintosh",/(Mac_PowerPC)|(Macintosh)|(Mac OS X 10.4)|(Mac OS X 10.5)|(Mac OS X 10.6)/i],["QNX",/QNX/i],["BeOS",/BeOS/i],["OS/2",/OS\/2/i]];let t="";for(let s=0;s<o.length;s++)if(o[s][1].test(navigator.userAgent)){t=o[s][0];break}return t},ee=async()=>{var t;let o=x();if(o==="Windows 10"){const s=await((t=navigator==null?void 0:navigator.userAgentData)==null?void 0:t.getHighEntropyValues(["platformVersion"]));s&&s.platformVersion>="13"&&(o="Windows 11")}return o};class te{}const oe=100;let P;const V=new Map,_={width:window.innerWidth,height:window.innerHeight};function ne(o){V.set(o,o)}function se(o){V.delete(o)}function ae(o){clearTimeout(P),P=setTimeout(function(){o.topEvent={widthDiff:_.width-window.innerWidth,hightDiff:_.height-window.innerHeight},_.width=window.innerWidth,_.height=window.innerHeight,V.forEach(t=>t(o))},oe)}window.addEventListener("resize",ae);const O={addOnReize:ne,removeOnResize:se},ie={widthForMobile:900,dateFormat:"Y-m-d",gmt:(X=new Date().toString().match(/GMT(\S+)/))==null?void 0:X[1]},le={isMobile:!1,isMobileUA:!1,isRetina:!1,isApp:!1,isLandscape:!0,isPortrait:!1,size:0,dateFormat:"Y-m-d",gmt:(K=new Date().toString().match(/GMT(\S+)/))==null?void 0:K[1]},E=o=>{var t,s;if(!((s=(t=p.$)==null?void 0:t.ui)!=null&&s.tooltip)){console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");return}return p.$(o)},A=(o,t)=>{var a;const s=o.value??{};return s.content??=(a=t.props)==null?void 0:a.title,s.content=String(s.content).replace(/\r\n|\r|\n/g,"<br>"),s.position??={my:"bottom-18px",at:"top center"},s},re={mounted(o,t,s){var a;(a=E(o))==null||a.tooltip(A(t,s))},updated(o,t,s,a){var l;const i=A(t,s),n=(l=E(o))==null?void 0:l.tooltip("instance");n&&(n.options={...n.options,...i})},unmounted(o,t,s){var a;(a=E(o))==null||a.tooltip("destroy")}},de={mounted:function(o,t){(t.value||t.value===void 0)&&o.focus()}};let y;const ce={mounted(o,t,s){const a=t.value||"top-sticky";y=new IntersectionObserver(i=>{let n=i[0].intersectionRatio<1;n&&t.arg==="bottom"&&i[0].intersectionRect.y===0&&(n=!1),o.classList.toggle(a,n)},{threshold:[1]}),y.observe(o)},unmounted(o,t,s){y==null||y.disconnect()}};let H=!1,k,C;const S=new Map,pe=(o,t)=>{const{distance:s,percent:a}=C,i=o.getBoundingClientRect().top,n=t*a/100/s,l=(t-i)/n;l<=s?o.style.transform=`translateY(${s-l}px)`:o.style.transform="translateY(0px)"},ue=o=>{let t=window.innerHeight;window.addEventListener("scroll",()=>{S.forEach(s=>pe(s,t))},{passive:!0}),k=new IntersectionObserver(s=>{t=window.innerHeight,s.forEach(a=>{const i=a.target;if(a.intersectionRatio<.1?S.delete(i):S.set(i,i),a.intersectionRatio===0){const{distance:n,percent:l}=C;i.style.transform=`translateY(${n}px)`}})},{threshold:.1})},me={mounted(o,t,s){var l;if(p.state.isMobileUA)return;const a=(l=t.arg)==null?void 0:l.split(":");let i=Number((a==null?void 0:a[0])??100),n=Number((a==null?void 0:a[1])??30);C={distance:i,percent:n},H||(ue(),H=!0),k.observe(o)},unmounted(o,t,s){S.delete(o),k==null||k.unobserve(o)}},W=typeof window>"u"?{}:window;class p{static L=e.reactive({Not_date:"Not date"});static page=W.page??{};static Page=te;static options=ie;static state=e.reactive({...le});static matchMediaIsMobile;static $=W.$;static appendStyle(t,s=""){let a="all";s==="m"&&(a="(max-width: "+this.options.widthForMobile+"px)"),s==="pc"&&(a="(min-width: "+this.options.widthForMobile+"px)");const i=document.createElement("style");i.innerHTML=t,i.media=a,document.head.append(i)}static install(t,s){p.defineOptions(s),t.provide("top-core",p),this.installDirectives(t)}static installDirectives(t){t.directive("top-tooltip",re),t.directive("top-focus",de),t.directive("top-sticky",ce),t.directive("top-swim-up",me)}static defineOptions(t){t!=null&&t.widthForMobile&&(this.options.widthForMobile=t.widthForMobile),t!=null&&t.dateFormat&&(this.options.dateFormat=t.dateFormat),t!=null&&t.gmt&&(this.options.gmt=t.gmt),p.setState()}static setState(){p.matchMediaIsMobile=window.matchMedia(`(max-width: ${p.options.widthForMobile}px)`),p.state.isMobileUA=z(),p.state.isRetina=N(),p.state.isApp=L(),p.state.dateFormat=this.options.dateFormat,p.state.gmt=this.options.gmt,p.setStateByWindowSize(),O.addOnReize(p.onResize),p.onResize(),p.saveToCookie()}static onResize(){p.setStateByWindowSize(),document.documentElement.style.setProperty("--100vh",window.innerHeight+"px")}static setStateByWindowSize(){var t;p.state.isMobile=!!((t=p.matchMediaIsMobile)!=null&&t.matches),p.state.isLandscape=window.innerWidth>window.innerHeight,p.state.isPortrait=!p.state.isLandscape,p.state.size=window.innerWidth>window.innerHeight?window.innerWidth:window.innerHeight,p.saveToCookie()}static saveToCookie(){const t=[1,window.innerWidth,window.innerHeight,window.devicePixelRatio,Number(p.state.isMobile),Number(p.state.isRetina)];document.cookie="device="+t.join(",")+"; path=/;"}}const w=window.L??{},fe=(o,t,s)=>{switch(new Date(o,t,s).getDay()){case 0:return w.Vs+".";case 1:return w.Pn+".";case 2:return w.Vt+".";case 3:return w.Sr+".";case 4:return w.Ct+".";case 5:return w.Pt+".";case 6:return w.Sb+".";default:return""}},he=(o,t=!0,s=2)=>{let a=String(o.getFullYear()),i=String(o.getDate()).padStart(2,"0"),n=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getHours()).padStart(2,"0"),d=String(o.getMinutes()).padStart(2,"0"),h=String(o.getSeconds()).padStart(2,"0"),r=a+"-"+n+"-"+i;return s>=1&&(r+=" "+l),s>=2&&(r+=":"+d),s===3&&(r+=":"+h),t&&(r=v(r,s)),r};function ge(o){return o.indexOf("T")===-1&&(o.length==10&&(o+=" 00:00:00"),o=o.replace(" ","T")+p.state.gmt),new Date(o)}function F(o,t=!0,s=0){let a;o!=null?a=new Date(o):a=new Date;const i=a.getFullYear(),n=String(a.getMonth()+1).padStart(2,"0"),l=a.getDate().toString().padStart(2,"0"),d=a.getHours().toString().padStart(2,"0"),h=a.getMinutes().toString().padStart(2,"0"),r=a.getSeconds().toString().padStart(2,"0");return a=i+"-"+n+"-"+l,s&&(a+=" "),s>=1&&(a+=d),s>=2&&(a+=":"+h),s>=3&&(a+=":"+r),t&&(a=v(a,s)),a}function be(o,t=!0){const a=new Date().getTimezoneOffset()/60*-1*60*60*1e3,i=3*60*60*1e3;let n;o!==void 0?n=new Date(o):n=new Date,n.setTime(n.getTime()-a+i);let l=String(n.getFullYear()),d=String(n.getDate()).padStart(2,"0"),h=String(n.getMonth()+1).padStart(2,"0"),r=String(n.getHours()).padStart(2,"0"),c=String(n.getMinutes()).padStart(2,"0"),m=String(n.getSeconds()).padStart(2,"0"),f=l+"-"+h+"-"+d+" "+r+":"+c+":"+m;return t&&(f=v(f)),f}function v(o,t=2,s,a=p.L.Not_date){if(typeof o=="string"&&(!o||o.substring(0,10)==="0000-00-00")&&a&&a!=="0000-00-00"||!o)return a;s||(s=p.state.dateFormat.toLowerCase().toLowerCase().replace("m","mm").replace("y","yy").replace("d","dd"));let i;if(o instanceof Date)i=o;else{let l=o.substring(0,10);if(l.length===7&&(l+="-01"),l+=" 00:00",l=l.replace(/-/g,"/"),i=new Date(l),isNaN(Number(i)))return a}let n="";if(s&&window.$&&(n=$.datepicker.formatDate(s,i)),t&&typeof o=="string"&&o.length>10||t&&o instanceof Date){let l="";if(o instanceof Date)l=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"numeric",minute:t>=2?"numeric":void 0,second:t>=3?"numeric":void 0});else switch(t){case 1:l=o.substring(11,13);break;case 2:l=o.substring(11,16);break;case 3:l=o.substring(11,19);break}n+=" "+l}return n=n.trim(),n}function D(o,t=p.L.Not_date){if(!o)return t;if(o.match(/\d\d\d\d-\d\d-\d\d/))return o;const s=p.state.dateFormat.toLowerCase(),a=o.split(/\W/),i=s.split(/\W/);let n="",l="",d="";i.forEach((r,c)=>{switch(r){case"d":n=a[c];break;case"m":l=a[c];break;case"y":d=a[c];break}});let h=d+"-"+l+"-"+n;return h.match(/\d\d\d\d-\d\d-\d\d/)||(console.info("Неверный формат даты, будет возращена текущая дата, "+h),h=F(new Date().getTime(),!1).substring(0,10)),h}const we={class:"top-avatar"},ve=["src","title"],ye=["title"],ke=e.defineComponent({__name:"avatar",props:{size:{default:64},image:{},nickname:{},isOnline:{type:Boolean},lastActiveTime:{},i18n:{default:()=>({Online:"Online",LastSeen:"Last seen"})}},setup(o){e.useCssVars(i=>({"15bd2dfc":i.size+"px"}));const t=o,s=e.computed(()=>{var i,n;if(t.isOnline)return(i=t.i18n)==null?void 0:i.Online;if(t.lastActiveTime)return((n=t.i18n)==null?void 0:n.LastSeen)+": "+v(t.lastActiveTime,2)}),a=e.computed(()=>t.nickname?t.nickname+(s.value?`
|
|
2
|
+
${s.value}`:""):s.value);return(i,n)=>(e.openBlock(),e.createElementBlock("div",we,[e.createElementVNode("img",{class:"top-avatar_image",src:i.image,title:a.value,alt:""},null,8,ve),i.isOnline?(e.openBlock(),e.createElementBlock("div",{key:0,class:"top-avatar_status",title:s.value},null,8,ye)):e.createCommentVNode("",!0)]))}}),$e={"top-avatar":"top-avatar","top-avatar_image":"top-avatar_image","top-avatar_status":"top-avatar_status"},g=(o,t)=>{const s=o.__vccOpts||o;for(const[a,i]of t)s[a]=i;return s},_e=g(ke,[["__cssModules",{$style:$e}]]),Se={key:0,class:"top-ellipsis"},Be=g(e.defineComponent({__name:"button",props:{color:{default:"blue"},styling:{default:""},size:{default:"s"},name:{},title:{},icon:{},icon2:{},href:{},disabled:{type:Boolean},isSubmit:{type:Boolean},isActive:{type:Boolean},isProgress:{type:Boolean}},setup(o){const t=o,s=e.computed(()=>t.href?"a":"button"),a=e.computed(()=>t.isSubmit?"submit":void 0);return(i,n)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value),{class:e.normalizeClass({"top-active":i.isActive,"top-disabled":i.disabled,"top-forms-focusable":!i.disabled,"top-button":!0,"top-button-progress":i.isProgress,[`top-size_${i.size}`]:!!i.size,[`top-color_${i.color}`]:!0,[`top-style_${i.styling}`]:!!i.styling,"top-button-withoutText":!i.$slots.default}),name:i.name,title:i.title,href:i.href,type:a.value,"data-top-icon":i.icon||void 0,"data-top-icon2":i.icon2||void 0,disabled:i.disabled||void 0,inProgress:i.isProgress},{default:e.withCtx(()=>[i.$slots.default?(e.openBlock(),e.createElementBlock("span",Se,[e.renderSlot(i.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(i.icon?"":"Button"),1)])])):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"html")]),_:3},8,["class","name","title","href","type","data-top-icon","data-top-icon2","disabled","inProgress"]))}}),[["__cssModules",{$style:{"top-button":"top-button","top-active":"top-active","top-button-progress":"top-button-progress",progress:"_progress_1f1nw_1","top-button-withoutText":"top-button-withoutText","top-color_blue":"top-color_blue","top-color_green":"top-color_green","top-color_orange":"top-color_orange","top-color_red":"top-color_red","top-color_pink":"top-color_pink","top-color_theme":"top-color_theme","top-style_outline":"top-style_outline","top-style_soft":"top-style_soft","top-style_transparent":"top-style_transparent","top-size_l":"top-size_l","top-size_xl":"top-size_xl"}}]]),Me={class:"top-forms-optionLabel"},B=g(e.defineComponent({__name:"controlLabel",props:{description:{},disabled:{type:Boolean}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("div",{class:e.normalizeClass({"top-forms-optionLabel_title":!0,"top-forms-optionLabel_title-disabled":t.disabled})},[e.renderSlot(t.$slots,"default")],2),t.description?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["top-forms-optionLabel_description",{"top-forms-optionLabel_description-disabled":t.disabled}])},e.toDisplayString(t.description),3)):e.createCommentVNode("",!0)]))}}),[["__cssModules",{$style:{"top-forms-optionLabel":"top-forms-optionLabel","top-forms-optionLabel_title":"top-forms-optionLabel_title","top-forms-optionLabel_title-disabled":"top-forms-optionLabel_title-disabled","top-forms-optionLabel_description":"top-forms-optionLabel_description","top-forms-optionLabel_description-disabled":"top-forms-optionLabel_description-disabled"}}]]),Ve=["name","value","indeterminate","disabled"],Ee=g(e.defineComponent({__name:"checkbox",props:e.mergeModels({modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},indeterminate:{type:Boolean},isError:{type:Boolean}},{modelValue:{type:[Boolean,Array,Set]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.useModel(o,"modelValue");return(s,a)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-checkbox":!0,["top-checkbox_"+s.name]:!!s.name,"top-disabled":s.disabled,"top-error":s.isError&&!s.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:e.normalizeClass({"top-forms-focusable":!s.disabled,"top-forms-option":!0,"top-checkbox_input":!0,"top-error":s.isError&&!s.disabled}),name:s.name,"onUpdate:modelValue":a[0]||(a[0]=i=>t.value=i),value:s.value,indeterminate:s.indeterminate,disabled:s.disabled},null,10,Ve),[[e.vModelCheckbox,t.value]]),s.$slots.default?(e.openBlock(),e.createBlock(B,{key:0,description:s.description,disabled:s.disabled},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkbox":"top-checkbox","top-checkbox_input":"top-checkbox_input","top-error":"top-error"}}]]),Ce=["title"],I=g(e.defineComponent({__name:"hint",props:{hint:{}},setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("span",{class:"top-hint","data-top-icon":"",title:t.hint},null,8,Ce))}}),[["__cssModules",{$style:{"top-hint":"top-hint"}}]]),We=["modelValue"],De=!!document.documentElement.ontouchstart&&!!document.createElement("input").showPicker;let U=o=>{};const Te=g(e.defineComponent({__name:"inputDate",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{default:""},addCleaner:{type:Boolean},title:{},captionType:{}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,a=t;e.onUnmounted(()=>{n&&n.datepicker("destroy")});const i=e.ref();let n;const l=e.computed({get(){return v(s.modelValue,2,void 0,"0000-00-00")},set(c){c=D(c,"0000-00-00"),a("update:modelValue",c)}});let d=c=>{U(c)},h=c=>{const m=D(c.target.value),f=v(m);if(!f||f===p.L.Not_date||c.target.value!==f){c.target.value=l.value;return}l.value=c.target.value};async function r(c){const m=await new Promise((f,b)=>q(["./datepicker-5QMJRJn-.amd"],f,b));U=m.oninput,n=m.connectDatepicker(c.target,{onSelect:()=>h(c)}),n&&n.datepicker("show")}return(c,m)=>e.unref(De)?(e.openBlock(),e.createBlock(e.unref(T),e.mergeProps({key:0},c.$props,{modelValue:l.value,readonly:"",onClick:m[1]||(m[1]=f=>i.value.showPicker())}),{default:e.withCtx(()=>[e.createElementVNode("input",{ref_key:"el",ref:i,type:"date",class:"top-input_input-date",modelValue:c.modelValue,onChange:m[0]||(m[0]=f=>l.value=f.target.value),tabindex:"-1"},null,40,We)]),_:1},16,["modelValue"])):(e.openBlock(),e.createBlock(e.unref(T),e.mergeProps({key:1},c.$props,{modelValue:l.value,"onUpdate:modelValue":m[2]||(m[2]=f=>f===""?l.value="":""),onInput:e.unref(d),onFocusOnce:r,onChange:e.unref(h),modificator:"datepicker"}),null,16,["modelValue","onInput","onChange"]))}}),[["__cssModules",{$style:{"top-input-datepicker":"top-input-datepicker","top-input_input-date":"top-input_input-date"}}]]),Ne={class:"top-inputRange"},ze=e.createElementVNode("span",{class:"top-inputRange_dash"}," — ",-1),Le=g(e.defineComponent({__name:"inputRange",setup(o){return(t,s)=>(e.openBlock(),e.createElementBlock("div",Ne,[e.renderSlot(t.$slots,"from"),ze,e.renderSlot(t.$slots,"to")]))}}),[["__cssModules",{$style:{"top-inputRange":"top-inputRange","top-inputRange_dash":"top-inputRange_dash","top-input":"top-input"}}]]),Re=["name","value","disabled"],Pe=g(e.defineComponent({__name:"radio",props:{modelValue:{},value:{},name:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,a=t,i=e.computed({get(){return s.modelValue},set(n){a("update:modelValue",n)}});return(n,l)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-radio":!0,["top-radio_"+n.name]:n.name!=="","top-disabled":n.disabled,"top-error":n.isError&&!n.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"radio",class:e.normalizeClass({"top-forms-focusable":!n.disabled,"top-forms-option":!0,"top-radio_input":!0,"top-error":n.isError&&!n.disabled}),"onUpdate:modelValue":l[0]||(l[0]=d=>i.value=d),name:n.name,value:n.value,disabled:n.disabled},null,10,Re),[[e.vModelRadio,i.value]]),n.$slots.default?(e.openBlock(),e.createBlock(B,{key:0,description:n.description,disabled:n.disabled},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-radio":"top-radio","top-radio_input":"top-radio_input","top-error":"top-error"}}]]),Oe=["name","value","disabled"],Ae=g(e.defineComponent({__name:"switcher",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,a=t,i=e.computed({get(){return s.modelValue},set(n){a("update:modelValue",n)}});return(n,l)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-forms-optionWrapper":!0,"top-checkboxSwitcher":!0,"top-disabled":n.disabled,"top-error":n.isError&&!n.disabled})},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:e.normalizeClass({"top-forms-focusable":!n.disabled,"top-forms-option":!0,"top-checkboxSwitcher_input":!0,"top-error":n.isError&&!n.disabled}),"onUpdate:modelValue":l[0]||(l[0]=d=>i.value=d),name:n.name,value:n.value,disabled:n.disabled},null,10,Oe),[[e.vModelCheckbox,i.value]]),n.$slots.default?(e.openBlock(),e.createBlock(B,{key:0,description:n.description,disabled:n.disabled},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["description","disabled"])):e.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkboxSwitcher":"top-checkboxSwitcher","top-checkboxSwitcher_input":"top-checkboxSwitcher_input","top-error":"top-error"}}]]),He=["name","placeholder","disabled","readonly","rows"],Fe={key:0,class:"top-textarea_pseudoContent"},Ie=g(e.defineComponent({inheritAttrs:!1,__name:"textarea",props:{modelValue:{},name:{},placeholder:{},rows:{default:5},minHeight:{default:120},expandable:{type:Boolean},disabled:{type:Boolean},readonly:{type:Boolean},isError:{type:Boolean},hint:{}},emits:["update:modelValue"],setup(o,{emit:t}){e.useCssVars(n=>({"6e3fbb58":n.minHeight+"px"}));const s=o,a=t,i=e.computed({get(){return s.modelValue},set(n){a("update:modelValue",n)}});return(n,l)=>{const d=e.resolveDirective("top-tooltip");return e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-textarea":!0,["top-textarea-"+n.name]:n.name,"top-disabled":n.disabled})},[e.withDirectives(e.createElementVNode("textarea",e.mergeProps({type:"text",class:{"top-forms-focusable":!n.disabled,"top-textarea_textarea":!0,"top-textarea_textarea-expandable":n.expandable,"top-error":n.isError},autocomplete:"off_always",name:n.name,placeholder:n.placeholder,disabled:n.disabled,readonly:n.readonly,rows:n.expandable?void 0:n.rows},n.$attrs,{"onUpdate:modelValue":l[0]||(l[0]=h=>i.value=h)}),null,16,He),[[e.vModelText,i.value]]),n.expandable?(e.openBlock(),e.createElementBlock("div",Fe,e.toDisplayString(i.value+" "),1)):e.createCommentVNode("",!0),n.hint?e.withDirectives((e.openBlock(),e.createBlock(I,{key:1,class:"top-textarea_hint",hint:n.hint},null,8,["hint"])),[[d]]):e.createCommentVNode("",!0)],2)}}}),[["__cssModules",{$style:{"top-textarea":"top-textarea","top-textarea_textarea":"top-textarea_textarea","top-textarea_textarea-expandable":"top-textarea_textarea-expandable","top-textarea_pseudoContent":"top-textarea_pseudoContent","top-textarea_hint":"top-textarea_hint"}}]]),Ue=["data-value","data-top-icon","data-top-icon2"],Ye=["name","disabled"],Xe=["label","disabled"],Ke=["value","selected","disabled"],qe=["value","selected","disabled"],Ge={key:1,class:"top-formsCaption"},Qe=g(e.defineComponent({__name:"select",props:e.mergeModels({modelValue:{},options:{},name:{},disabled:{type:Boolean},icon:{},size:{default:"s"},addChanger:{type:Boolean},title:{},isError:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const s=o,a=e.useModel(o,"modelValue"),i=e.computed(()=>{const r=new Map;return s.options.forEach((c,m)=>{if(typeof c=="string"&&(c=l(m,c)),c.children){const f=new Map;c.children.forEach((b,M)=>{typeof b=="string"&&(b=l(M,b)),f.set(b.value,b)}),c={...c},c.children=f,r.set(c.value,c)}else r.set(c.value,c)}),r}),n=e.computed(()=>{const r=new Map;return i.value.forEach(c=>{if(!c.disabled){if(c.children){c.children.forEach(m=>{m.disabled||r.set(m.value,m)});return}r.set(c.value,c)}}),r}),l=(r,c)=>({value:r,title:c});e.watch([()=>s.modelValue,n],()=>{(a.value===null||a.value===void 0)&&n.value.size&&(console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"),a.value=n.value.keys().next().value)},{immediate:!0});const d=e.computed(()=>{var r;return(r=n.value.get(a.value))==null?void 0:r.icon}),h=()=>{const r=[...n.value.keys()],m=(r.indexOf(a.value)+1)%r.length;a.value=r[m]};return(r,c)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-select":!0,["top-select-"+r.name]:r.name,["top-size_"+r.size]:!0,"top-formsCaptionWrapper":!!r.title,"top-select-error":r.isError,"top-disabled":r.disabled}),"data-value":a.value,"data-top-icon":r.icon,"data-top-icon2":d.value},[e.withDirectives(e.createElementVNode("select",{class:e.normalizeClass({"top-forms-focusable":!r.disabled,"top-select_select":!0,"top-select_arrow":!0,"top-error":r.isError}),name:r.name,disabled:r.disabled,"onUpdate:modelValue":c[0]||(c[0]=m=>a.value=m)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,([m,f])=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[f.children?(e.openBlock(),e.createElementBlock("optgroup",{key:"group_"+m,label:f.title,disabled:f.disabled},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.children,([b,M])=>(e.openBlock(),e.createElementBlock("option",{key:b,value:b,selected:b===a.value,disabled:M.disabled},e.toDisplayString(M.title),9,Ke))),128))],8,Xe)):(e.openBlock(),e.createElementBlock("option",{key:m??void 0,value:m,selected:m===a.value,disabled:f.disabled},e.toDisplayString(f.title),9,qe))],64))),256))],10,Ye),[[e.vModelSelect,a.value]]),r.addChanger&&n.value.size&&!r.disabled?(e.openBlock(),e.createElementBlock("span",{key:0,class:"top-changer",onClick:h})):e.createCommentVNode("",!0),r.title?(e.openBlock(),e.createElementBlock("span",Ge,e.toDisplayString(r.title),1)):e.createCommentVNode("",!0)],10,Ue))}}),[["__cssModules",{$style:{"top-select":"top-select","top-select-error":"top-select-error","top-select_select":"top-select_select","top-changer":"top-changer"}}]]),Je={"top-loadbar":"top-loadbar"},Ze={},je={class:"top-loadbar"};function xe(o,t){return e.openBlock(),e.createElementBlock("div",je)}const Y=g(Ze,[["render",xe],["__cssModules",{$style:Je}]]),et=["data-top-icon","data-top-icon2"],tt=["name","title","placeholder","disabled","readonly"],ot={key:2,class:"top-formsCaption"},T=g(e.defineComponent({inheritAttrs:!1,__name:"input",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},modificator:{},size:{default:"s"},isError:{type:Boolean},isLoading:{type:Boolean},icon:{},icon2:{},addCleaner:{type:Boolean},title:{},captionType:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const s=o,a=t,i=e.computed({get(){return s.modelValue},set(d){a("update:modelValue",d)}}),n=e.computed(()=>s.addCleaner&&!s.title||s.captionType!==""?"":s.title),l=d=>{s.modelValue&&d.stopPropagation(),a("update:modelValue","")};return(d,h)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass({"top-input":!0,["top-size_"+d.size]:!0,"top-disabled":d.disabled,["top-input-"+d.modificator]:!!d.modificator,"top-input-withCleaner":d.addCleaner&&i.value&&i.value!=="0000-00-00","top-formsCaptionWrapper":d.captionType!=="","top-formsCaptionWrapper-always":d.captionType==="top"}),"data-top-icon":d.icon,"data-top-icon2":d.icon2},[d.isLoading?(e.openBlock(),e.createBlock(e.unref(Y),{key:0})):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",class:{"top-input_input":!0,["top-input_input-"+d.modificator]:!!d.modificator,"top-forms-focusable":!d.disabled,"top-error":d.isError},autocomplete:"off_always",name:d.name,"onUpdate:modelValue":h[0]||(h[0]=r=>i.value=r),title:d.title,placeholder:n.value,disabled:d.disabled,readonly:d.readonly,onKeydown:h[1]||(h[1]=e.withKeys(r=>(d.addCleaner||!!d.$slots.btn)&&l(r),["esc"]))},d.$attrs),null,16,tt),[[e.vModelText,i.value]]),d.addCleaner&&i.value&&i.value!=="0000-00-00"?(e.openBlock(),e.createElementBlock("span",{key:1,class:"top-input_cleaner","data-top-icon":"",onClick:e.withModifiers(l,["prevent"])})):e.createCommentVNode("",!0),d.captionType!==""?(e.openBlock(),e.createElementBlock("span",ot,e.toDisplayString(d.title),1)):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default")],10,et))}}),[["__cssModules",{$style:{"top-input":"top-input","top-input_input":"top-input_input","top-input-withCleaner":"top-input-withCleaner","top-input_cleaner":"top-input_cleaner","top-loadbar":"top-loadbar"}}]]);u.Button=Be,u.ControlLabel=B,u.Core=p,u.Events=O,u.Hint=I,u.Input=T,u.Loadbar=Y,u.Textarea=Ie,u._export_sfc=g,u._window=W,u.avatar=_e,u.checkbox=Ee,u.dateFormat=v,u.dateToString=he,u.dateUnformat=D,u.genDate=F,u.genDateMoscow=be,u.get$scroll=Z,u.getCommandKeyLabel=Q,u.getDayOfWeek=fe,u.getElsScroll=j,u.getOSAsync=ee,u.getScrollTop=J,u.inputDate=Te,u.inputRange=Le,u.isApp=L,u.isMacOS=R,u.isMobile=z,u.isRetina=N,u.isSafari=G,u.radio=Pe,u.select=Qe,u.stringToDate=ge,u.switcher=Ae});
|
|
3
|
+
//# sourceMappingURL=forms-B2NcBl7S.amd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms-B2NcBl7S.amd.js","sources":["../../src/core/utils/device.ts","../../src/core/core/page.ts","../../src/core/core/events.ts","../../src/core/core/options.ts","../../src/core/core/state.ts","../../src/core/directives/tooltip.ts","../../src/core/directives/focus.ts","../../src/core/directives/sticky.ts","../../src/core/directives/swimUp.ts","../../src/core/utils/window.ts","../../src/core/core/core.ts","../../src/core/utils/date.ts","../../src/components/forms/avatar/avatar.vue","../../src/components/forms/button/button.vue","../../src/components/forms/inputDate/inputDate.vue","../../src/components/forms/radio/radio.vue","../../src/components/forms/switcher/switcher.vue","../../src/components/forms/textarea/textarea.vue","../../src/components/forms/select/select.vue","../../src/components/forms/loadbar/loadbar.vue","../../src/components/forms/input/input.vue"],"sourcesContent":["/**\r\n * Определить, увеличинная ли плотность пикселей у экрана (DPR > 1)\r\n */\r\nexport function isRetina(): boolean {\r\n\treturn ('devicePixelRatio' in window && window.devicePixelRatio > 1);\r\n}\r\n\r\n/**\r\n * Определить, является ли устройство мобильным\r\n */\r\nexport function isMobile(): boolean {\r\n\treturn !!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i);\r\n}\r\n\r\n/**\r\n * Определить, открыт ли сайт в приложении\r\n */\r\nexport function isApp(): boolean {\r\n\treturn (navigator.userAgent.indexOf('Topvisor_App') != -1);\r\n}\r\n\r\n/**\r\n * Определить, является ли OS пользователя macOS\r\n */\r\nexport function isMacOS(): boolean {\r\n\treturn navigator.userAgent.indexOf('Mac OS X') !== -1;\r\n}\r\n\r\n/**\r\n * Определить, является ли текущий браузер пользователя Safari\r\n */\r\nexport function isSafari(): boolean {\r\n\tconst isChrome = /Chrome|Android/.test(navigator.userAgent);\r\n\r\n\tlet isSafari = /Safari/.test(navigator.userAgent);\r\n\tif (isChrome && isSafari) {\r\n\t\tisSafari = false;\r\n\t}\r\n\r\n\treturn isSafari;\r\n};\r\n\r\n/**\r\n * Вернуть текст для обозначения клавиши Ctrl / Command в зависимости от OS\r\n */\r\nexport function getCommandKeyLabel(): 'Ctrl' | '⌘' {\r\n\tif (isMacOS()) {\r\n\t\treturn '⌘';\r\n\t} else {\r\n\t\treturn 'Ctrl';\r\n\t}\r\n}\r\n\r\n/**\r\n * Вернуть скролл с учетом устройства\r\n */\r\nexport const getScrollTop = (): number | undefined => {\r\n\treturn $(document).scrollTop();\r\n};\r\n\r\n/**\r\n * Вернуть контейнеры со скроллом (требует jquery)\r\n */\r\nexport const get$scroll = (): JQuery<Document> => {\r\n\treturn $(document);\r\n};\r\n\r\n/**\r\n * Вернуть контейнеры со скроллом (без jquery)\r\n */\r\nexport const getElsScroll = (): Document[] => {\r\n\treturn [document];\r\n};\r\n\r\n/**\r\n * Получить операционную систему пользователя\r\n *\r\n * Не определяет Windows 11, см. getOSAsync()\r\n */\r\nconst getOS = (): string => {\r\n\tconst os: [string, RegExp][] = [\r\n\t\t['iOS', /(iPhone|iPad)/i],\r\n\t\t['Android', /(Android)/i],\r\n\t\t['Windows Phone', /(IEMobile)/i],\r\n\t\t['Windows 3.11', /Win16/i],\r\n\t\t['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/i],\r\n\t\t['Windows 98', /(Windows 98)|(Win98)/i],\r\n\t\t['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/i],\r\n\t\t['Windows XP', /(Windows NT 5.1)|(Windows XP)/i],\r\n\t\t['Windows Server 2003', /(Windows NT 5.2)/i],\r\n\t\t['Windows Vista', /(Windows NT 6.0)/i],\r\n\t\t['Windows 7', /(Windows NT 6.1)/i],\r\n\t\t['Windows 8', /(Windows NT 6.[23])|(Windows 8)/i],\r\n\t\t['Windows 10', /(Windows NT 10)/i],\r\n\t\t['Windows NT 4.0', /(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)/i],\r\n\t\t['Windows ME', /Windows ME/i],\r\n\t\t['Windows', /Windows/i],\r\n\t\t['Open BSD', /OpenBSD/i],\r\n\t\t['Sun OS', /SunOS/i],\r\n\t\t['Linux', /(Linux)|(X11)/i],\r\n\t\t['Macintosh', /(Mac_PowerPC)|(Macintosh)|(Mac OS X 10.4)|(Mac OS X 10.5)|(Mac OS X 10.6)/i],\r\n\t\t['QNX', /QNX/i],\r\n\t\t['BeOS', /BeOS/i],\r\n\t\t['OS/2', /OS\\/2/i],\r\n\t];\r\n\r\n\tlet res = '';\r\n\tfor (let i = 0; i < os.length; i++) {\r\n\t\tif (os[i][1].test(navigator.userAgent)) {\r\n\t\t\tres = os[i][0];\r\n\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn res;\r\n};\r\n\r\n/**\r\n * Получить операционную систему пользователя, в том числе Windows 11\r\n */\r\nexport const getOSAsync = async (): Promise<string> => {\r\n\tlet os = getOS();\r\n\r\n\tif (os === 'Windows 10') {\r\n\t\t// @ts-ignore - experimental technology\r\n\t\tconst platformVersion = await navigator?.userAgentData?.getHighEntropyValues(['platformVersion']);\r\n\t\tif (platformVersion && platformVersion.platformVersion >= '13') {\r\n\t\t\tos = 'Windows 11';\r\n\t\t}\r\n\t}\r\n\r\n\treturn os;\r\n};","class Page {\r\n\r\n}\r\n\r\nexport default Page;","const onResizeDelay = 100;\r\n\r\nlet onResizeTimer: NodeJS.Timeout;\r\n\r\ntype TopEvent = Event & { topEvent: { widthDiff: number, hightDiff: number } }\r\n\r\n/**\r\n * Установленные обрабочики на событие изменения размеров окна\r\n */\r\nconst onResizeListeners: Map<(ev: TopEvent) => any, (ev: TopEvent) => any> = new Map();\r\n\r\n// зафиксированное состояние размеров окна\r\nconst windowSize = {\r\n\twidth: window.innerWidth,\r\n\theight: window.innerHeight,\r\n};\r\n\r\n/**\r\n * Добавить обработчик на событие изменения размеров экрана\r\n * вызов таких обработчиков будет опмизирован и объединен в одно событие\r\n */\r\nfunction addOnReize (listener: (this: Element, ev: TopEvent) => any) {\r\n\tonResizeListeners.set(listener, listener);\r\n}\r\n\r\n/**\r\n * Удаление обработчика на событие изменений размеров экрана\r\n */\r\nfunction removeOnResize (listener: (this: Element, ev: TopEvent) => any) {\r\n\tonResizeListeners.delete(listener);\r\n}\r\n\r\nfunction onResize (e: any) {\r\n\tclearTimeout(onResizeTimer);\r\n\r\n\tonResizeTimer = setTimeout(function () {\r\n\t\te.topEvent = {\r\n\t\t\twidthDiff: windowSize.width - window.innerWidth,\r\n\t\t\thightDiff: windowSize.height - window.innerHeight,\r\n\t\t};\r\n\r\n\t\twindowSize.width = window.innerWidth;\r\n\t\twindowSize.height = window.innerHeight;\r\n\r\n\t\tonResizeListeners.forEach((callback) => callback(e));\r\n\t}, onResizeDelay);\r\n}\r\n\r\nwindow.addEventListener('resize', onResize);\r\n\r\nexport default {\r\n\taddOnReize,\r\n\tremoveOnResize,\r\n};\r\n","/**\r\n * Конфигурация UI\r\n * Можно переопределить при подклчюении UI во Vue приложение через app.use(Core, options)\r\n */\r\nconst options = {\r\n\twidthForMobile: 900,\r\n\tdateFormat: 'Y-m-d',\r\n\r\n\t/**\r\n\t * Для Москвы: +0300\r\n\t */\r\n\tgmt: new Date().toString().match(/GMT(\\S+)/)?.[1],\r\n};\r\n\r\nexport default options;","/**\r\n * State UI для взаимодейсвтиями с приложениями Vue\r\n */\r\nconst state = {\r\n\t/**\r\n\t * Device by size\r\n\t * @see widthForMobile\r\n\t */\r\n\tisMobile: false,\r\n\r\n\t/**\r\n\t * Device by user agent\r\n\t */\r\n\tisMobileUA: false,\r\n\r\n\t/**\r\n\t * true, если плотность пикселей экрана больше 1\r\n\t */\r\n\tisRetina: false,\r\n\r\n\t/**\r\n\t * true, елси это приложение\r\n\t */\r\n\tisApp: false,\r\n\r\n\t/**\r\n\t * true при горизонтальном расположении устройства\r\n\t */\r\n\tisLandscape: true,\r\n\r\n\t/**\r\n\t * true при вертикальном расположении устройства\r\n\t */\r\n\tisPortrait: false,\r\n\tsize: 0,\r\n\r\n\t// См. core.options\r\n\tdateFormat: 'Y-m-d',\r\n\r\n\t// См. core.options\r\n\tgmt: new Date().toString().match(/GMT(\\S+)/)?.[1],\r\n};\r\n\r\nexport default state;","import type { DirectiveBinding, ObjectDirective, VNode } from 'vue';\r\nimport Core from '@/core/core/core';\r\n\r\nconst $ = (el: VNode) => {\r\n\tif (!Core.$?.ui?.tooltip) {\r\n\t\tconsole.info('Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\treturn Core.$(el);\r\n};\r\n\r\nconst tvTooltipGenOptions = (binding: DirectiveBinding, vnode: VNode) => {\r\n\tconst options = binding.value ?? {};\r\n\r\n\toptions.content ??= vnode.props?.title;\r\n\toptions.content = String(options.content).replace(/\\r\\n|\\r|\\n/g, '<br>');\r\n\r\n\toptions.position ??= {\r\n\t\tmy: 'bottom-18px',\r\n\t\tat: 'top center',\r\n\t};\r\n\r\n\treturn options;\r\n};\r\n\r\n/**\r\n * Добавление всплывающей подсказки к элементу.\r\n */\r\nconst tooltip = {\r\n\tmounted(el: VNode, binding: DirectiveBinding, vnode: VNode) {\r\n\t\t$(el)?.tooltip(tvTooltipGenOptions(binding, vnode));\r\n\t},\r\n\r\n\tupdated(el: VNode, binding: DirectiveBinding, vnode: VNode, _prevVnode: VNode) {\r\n\t\t/**\r\n\t\t * В результате обновления может быть открыто несколько тултипов поэтому изменить опции, без перерисовки тултипа\r\n\t\t */\r\n\t\tconst options = tvTooltipGenOptions(binding, vnode);\r\n\t\tconst instance = $(el)?.tooltip('instance') as { options: JQueryUI.TooltipOptions } | undefined;\r\n\t\tif (!instance) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tinstance.options = {\r\n\t\t\t...instance.options,\r\n\t\t\t...options,\r\n\t\t};\r\n\t},\r\n\r\n\tunmounted(el: VNode, _binding: DirectiveBinding, _vnode: VNode) {\r\n\t\t$(el)?.tooltip('destroy');\r\n\t},\r\n} satisfies ObjectDirective;\r\n\r\nexport default tooltip;","import type { DirectiveBinding, ObjectDirective } from 'vue';\r\n\r\n/**\r\n * Фокусировка на элементе сразу после его отображения\r\n */\r\nconst focus = {\r\n\tmounted: function (el: HTMLElement, binding: DirectiveBinding) {\r\n\t\tif (binding.value || binding.value === undefined) el.focus();\r\n\t}\r\n} satisfies ObjectDirective;\r\n\r\nexport default focus;","import type { DirectiveBinding, ObjectDirective, VNode } from 'vue';\r\n\r\nlet appStickyObserver: IntersectionObserver;\r\n\r\n/**\r\n * Добавление sticky\r\n * К элементу добляется класс переданный как значение диррективы либо **'top-sticky'** по умолчанию\r\n */\r\nconst sticky = {\r\n\tmounted(el: HTMLElement, binding: DirectiveBinding, _vnode: VNode){\r\n\t\tconst className = binding.value || 'top-sticky';\r\n\r\n\t\tappStickyObserver = new IntersectionObserver(entries => {\r\n\t\t\tlet condition = entries[0].intersectionRatio < 1;\r\n\t\t\tif(condition){\r\n\t\t\t\tif(binding.arg === 'bottom' && entries[0].intersectionRect.y === 0) condition = false;\r\n\t\t\t}\r\n\r\n\t\t\tel.classList.toggle(className, condition);\r\n\t\t}, {\r\n\t\t\tthreshold:[1]\r\n\t\t});\r\n\r\n\t\tappStickyObserver.observe(el);\r\n\t},\r\n\r\n\tunmounted(_el: HTMLElement, _binding: DirectiveBinding, _vnode: VNode){\r\n\t\tappStickyObserver?.disconnect();\r\n\t},\r\n} satisfies ObjectDirective;\r\n\r\nexport default sticky;","import type { DirectiveBinding, ObjectDirective, VNode } from 'vue';\r\nimport Core from '@/core/core/core';\r\n\r\ninterface SwipUpOptions {\r\n\tdistance: number,\r\n\tpercent: number,\r\n}\r\n\r\nlet appSwimUpInited = false;\r\nlet appSwimUpObserver: IntersectionObserver;\r\nlet directiveSwipUpOptions: SwipUpOptions;\r\nconst appSwimUpEls = new Map();\r\n\r\n\r\n/**\r\n * Отодвинуть блок в зависимости от скролла старинцы\r\n * @param el\r\n * @param windowHeight\r\n */\r\nconst swimUpElTransform = (el: HTMLElement, windowHeight: number): void => {\r\n\tconst { distance, percent } = directiveSwipUpOptions;\r\n\r\n\tconst elTop = el.getBoundingClientRect().top;\r\n\r\n\t// во столько раз triggerHeight должен быть меньше, чтобы закончить подплытие к нужной высоте экрана\r\n\tconst triggerHeightReducer = windowHeight * percent / 100 / distance;\r\n\tconst triggerHeight = (windowHeight - elTop) / triggerHeightReducer;\r\n\r\n\tif (triggerHeight <= distance) {\r\n\t\tel.style.transform = `translateY(${distance - triggerHeight}px)`;\r\n\t} else {\r\n\t\tel.style.transform = 'translateY(0px)';\r\n\t}\r\n}\r\n\r\nconst swimUpInit = (el: HTMLElement): void => {\r\n\tlet windowHeight = window.innerHeight;\r\n\r\n\twindow.addEventListener('scroll', () => {\r\n\t\tappSwimUpEls.forEach((el) => swimUpElTransform(el, windowHeight));\r\n\t}, { passive: true });\r\n\r\n\t// проверка того, что элемент в зоне видимости\r\n\tappSwimUpObserver = new IntersectionObserver(entries => {\r\n\t\twindowHeight = window.innerHeight;\r\n\r\n\t\tentries.forEach((entry) => {\r\n\t\t\tconst el = entry.target as HTMLElement;\r\n\r\n\t\t\tif (entry.intersectionRatio < 0.1) {\r\n\t\t\t\t// элемент за областью видимости\r\n\t\t\t\tappSwimUpEls.delete(el);\r\n\t\t\t} else {\r\n\t\t\t\t// элемент на экране\r\n\t\t\t\tappSwimUpEls.set(el, el);\r\n\t\t\t}\r\n\r\n\t\t\tif (entry.intersectionRatio === 0) {\r\n\t\t\t\tconst { distance, percent } = directiveSwipUpOptions;\r\n\t\t\t\tel.style.transform = `translateY(${distance}px)`;\r\n\t\t\t}\r\n\t\t});\r\n\t}, {\r\n\t\tthreshold: 0.1,\r\n\t});\r\n}\r\n\r\n/**\r\n * Добавление анимации подплытия вверх для блока\r\n */\r\nconst swimUp = {\r\n\tmounted(el: HTMLElement, binding: DirectiveBinding, _vnode: VNode): void {\r\n\t\tif (Core.state.isMobileUA) return;\r\n\r\n\t\tconst args = binding.arg?.split(':');\r\n\r\n\t\tlet distance = Number(args?.[0] ?? 100); // количество px на которые блок изначально смещен вниз\r\n\t\tlet percent = Number(args?.[1] ?? 30); // процент высоты экрана поднявшись на который блок закончит подплытие\r\n\r\n\t\tdirectiveSwipUpOptions = {\r\n\t\t\tdistance,\r\n\t\t\tpercent\r\n\t\t}\r\n\r\n\t\tif (!appSwimUpInited) {\r\n\t\t\tswimUpInit(el);\r\n\r\n\t\t\tappSwimUpInited = true;\r\n\t\t}\r\n\r\n\t\tappSwimUpObserver.observe(el);\r\n\t},\r\n\r\n\tunmounted(el: HTMLElement, _binding: DirectiveBinding, _vnode: VNode) {\r\n\t\tappSwimUpEls.delete(el);\r\n\t\tappSwimUpObserver?.unobserve(el);\r\n\t}\r\n} satisfies ObjectDirective;\r\n\r\nexport default swimUp;","/**\r\n * Генерация объекта window\r\n *\r\n * На backend объекта window не существует\r\n */\r\nconst genWindow = (): any => {\r\n\tif (typeof window === 'undefined') {\r\n\t\treturn {};\r\n\t}\r\n\r\n\treturn window;\r\n};\r\n\r\nexport const _window = genWindow();","import { reactive } from 'vue';\r\nimport { isMobile, isRetina, isApp } from '@/core/utils/device';\r\nimport Page from '@/core/core/page';\r\nimport Events from '@/core/core/events';\r\nimport options from '@/core/core/options';\r\nimport state from '@/core/core/state';\r\nimport directiveTooltip from '@/core/directives/tooltip';\r\nimport directiveFocus from '@/core/directives/focus';\r\nimport directiveSticky from '@/core/directives/sticky';\r\nimport directiveSwimUp from '@/core/directives/swimUp';\r\nimport { _window } from '@/core/utils/window';\r\n\r\nclass Core {\r\n\r\n\t/**\r\n\t * Настройки словаря\r\n\t */\r\n\tstatic L = reactive({\r\n\t\tNot_date: 'Not date',\r\n\t});\r\n\r\n\tstatic page = _window.page ?? {};\r\n\r\n\tstatic Page = Page;\r\n\r\n\tstatic options = options;\r\n\r\n\tstatic state = reactive({ ...state });\r\n\r\n\tstatic matchMediaIsMobile?: MediaQueryList;\r\n\r\n\tstatic $ = _window.$ as typeof $ | undefined;\r\n\r\n\t/**\r\n\t * Добавить на страницу стили, используется для загрузки стилей из js\r\n\t *\r\n\t * Условная загрузка стилей m и pc отключена в пользу производительсности, стили грузятся всегда, но применяются по условию\r\n\t * @param style - css стили в строке\r\n\t * @param type - если указать 'm' или 'pc', то стили будут применяться по условию в зависимости от настройки this.options.widthForMobile\r\n\t */\r\n\tstatic appendStyle(style: string, type: '' | 'm' | 'pc' = ''): void {\r\n\t\tlet media = 'all';\r\n\r\n\t\tif (type === 'm') {\r\n\t\t\tmedia = '(max-width: ' + this.options.widthForMobile + 'px)';\r\n\t\t}\r\n\r\n\t\tif (type === 'pc') {\r\n\t\t\tmedia = '(min-width: ' + this.options.widthForMobile + 'px)';\r\n\t\t}\r\n\r\n\t\tconst elStyle = document.createElement('style');\r\n\t\telStyle.innerHTML = style;\r\n\t\telStyle.media = media;\r\n\r\n\t\tdocument.head.append(elStyle);\r\n\t}\r\n\r\n\t/**\r\n\t * Установить как плагин в прилоежнии Vue\r\n\t * Core.state является общим для всех приложений Vue на странице\r\n\t * Core.options является общим для всех приложений Vue на странице\r\n\t * @param app - Vue App\r\n\t * @param {typeof options} options - параметры UI\r\n\t */\r\n\tstatic install(app: any, options: typeof this.options) {\r\n\t\tCore.defineOptions(options);\r\n\r\n\t\tapp.provide('top-core', Core);\r\n\r\n\t\tthis.installDirectives(app);\r\n\t}\r\n\r\n\tstatic installDirectives(app: any) {\r\n\t\tapp.directive('top-tooltip', directiveTooltip);\r\n\t\tapp.directive('top-focus', directiveFocus);\r\n\t\tapp.directive('top-sticky', directiveSticky);\r\n\t\tapp.directive('top-swim-up', directiveSwimUp);\r\n\t}\r\n\r\n\t/**\r\n\t * Установить конфигурацию UI\r\n\t * @param {typeof options} options\r\n\t */\r\n\tstatic defineOptions(options: typeof this.options) {\r\n\t\tif (options?.widthForMobile) {\r\n\t\t\tthis.options.widthForMobile = options.widthForMobile;\r\n\t\t}\r\n\r\n\t\tif (options?.dateFormat) {\r\n\t\t\tthis.options.dateFormat = options.dateFormat;\r\n\t\t}\r\n\r\n\t\tif (options?.gmt) {\r\n\t\t\tthis.options.gmt = options.gmt;\r\n\t\t}\r\n\r\n\t\tCore.setState();\r\n\t}\r\n\r\n\tstatic setState() {\r\n\t\tCore.matchMediaIsMobile = window.matchMedia(`(max-width: ${Core.options.widthForMobile}px)`);\r\n\r\n\t\tCore.state.isMobileUA = isMobile();\r\n\t\tCore.state.isRetina = isRetina();\r\n\t\tCore.state.isApp = isApp();\r\n\t\tCore.state.dateFormat = this.options.dateFormat;\r\n\t\tCore.state.gmt = this.options.gmt;\r\n\r\n\t\tCore.setStateByWindowSize();\r\n\r\n\t\t// пересчет значений, зависящих от рамзеров окна\r\n\t\tEvents.addOnReize(Core.onResize);\r\n\r\n\t\tCore.onResize();\r\n\r\n\t\tCore.saveToCookie();\r\n\t}\r\n\r\n\tstatic onResize() {\r\n\t\tCore.setStateByWindowSize();\r\n\r\n\t\t// честный vh\r\n\t\tdocument.documentElement.style.setProperty('--100vh', window.innerHeight + 'px');\r\n\t}\r\n\r\n\tstatic setStateByWindowSize() {\r\n\t\tCore.state.isMobile = !!Core.matchMediaIsMobile?.matches;\r\n\t\tCore.state.isLandscape = (window.innerWidth > window.innerHeight);\r\n\t\tCore.state.isPortrait = !Core.state.isLandscape;\r\n\t\tCore.state.size = (window.innerWidth > window.innerHeight) ? window.innerWidth : window.innerHeight;\r\n\r\n\t\tCore.saveToCookie();\r\n\t}\r\n\r\n\t/**\r\n\t * Сохранить информацию об устройстве в cookie\r\n\t */\r\n\tstatic saveToCookie() {\r\n\t\tconst device = [\r\n\t\t\t1,\r\n\t\t\twindow.innerWidth,\r\n\t\t\twindow.innerHeight,\r\n\t\t\twindow.devicePixelRatio,\r\n\t\t\tNumber(Core.state.isMobile),\r\n\t\t\tNumber(Core.state.isRetina),\r\n\t\t];\r\n\r\n\t\tdocument.cookie = 'device=' + device.join(',') + '; path=/;';\r\n\t}\r\n\r\n}\r\n\r\nexport default Core;","import Core from '@/core/core/core';\r\n\r\nconst L = (window as any).L ?? {};\r\n\r\n/**\r\n * Получить день недели\r\n */\r\nexport const getDayOfWeek = (y: number, m: number, d: number): string => {\r\n\tswitch ((new Date(y, m, d)).getDay()) {\r\n\t\tcase 0:\r\n\t\t\treturn L.Vs + '.';\r\n\t\tcase 1:\r\n\t\t\treturn L.Pn + '.';\r\n\t\tcase 2:\r\n\t\t\treturn L.Vt + '.';\r\n\t\tcase 3:\r\n\t\t\treturn L.Sr + '.';\r\n\t\tcase 4:\r\n\t\t\treturn L.Ct + '.';\r\n\t\tcase 5:\r\n\t\t\treturn L.Pt + '.';\r\n\t\tcase 6:\r\n\t\t\treturn L.Sb + '.';\r\n\t\tdefault:\r\n\t\t\treturn '';\r\n\t}\r\n};\r\n\r\n/**\r\n * Преобразовать дату в строку формата Y-m-d H:i:s\r\n * @param dateObject - объект Date\r\n * @param langFormat - если true, формат даты будет взят из Core.state.dateFormat\r\n * @param timeFormat - 0-только дата | 1-дата и часы | 2-дата и часы с минутами | 3-дата и часы с минутами и секундами\r\n */\r\nexport const dateToString = (dateObject: Date, langFormat: boolean = true, timeFormat: 0 | 1 | 2 | 3 = 2): string => {\r\n\tlet Y = String(dateObject.getFullYear());\r\n\tlet d = String(dateObject.getDate()).padStart(2, '0');\r\n\tlet m = String(dateObject.getMonth() + 1).padStart(2, '0');\r\n\tlet H = String(dateObject.getHours()).padStart(2, '0');\r\n\tlet i = String(dateObject.getMinutes()).padStart(2, '0');\r\n\tlet s = String(dateObject.getSeconds()).padStart(2, '0');\r\n\r\n\tlet date = Y + '-' + m + '-' + d;\r\n\tif (timeFormat >= 1) date += ' ' + H;\r\n\tif (timeFormat >= 2) date += ':' + i;\r\n\tif (timeFormat === 3) date += ':' + s;\r\n\tif (langFormat) date = dateFormat(date, timeFormat);\r\n\r\n\treturn date;\r\n};\r\n\r\n/**\r\n * Получить объект Date из строки\r\n * @param date - строка с датой\r\n */\r\nexport function stringToDate(date: string): Date {\r\n\tif (date.indexOf('T') === -1) {\r\n\t\tif (date.length == 10) {\r\n\t\t\tdate += ' 00:00:00';\r\n\t\t}\r\n\r\n\t\tdate = date.replace(' ', 'T') + Core.state.gmt;\r\n\t}\r\n\r\n\treturn new Date(date);\r\n}\r\n\r\n/**\r\n * Генерация даты-строки из миллисекунд (UTC), в формате Y-m-d H:i:s\r\n * @param timestamp - дата в мс, если не передана, берется дата на момент вызова функции\r\n * @param useFormat - если true, формат даты будет взят из Core.state.dateFormat\r\n * @param time - 0-только дата | 1-дата и часы | 2-дата и часы с минутами | 3-дата и часы с минутами и секундами\r\n */\r\nexport function genDate(timestamp: number | undefined, useFormat: boolean = true, time: 0 | 1 | 2 | 3 = 0): string {\r\n\tlet date;\r\n\tif (timestamp != undefined) {\r\n\t\tdate = new Date(timestamp);\r\n\t} else {\r\n\t\tdate = new Date();\r\n\t}\r\n\r\n\tconst Y = date.getFullYear();\r\n\tconst m = String(date.getMonth() + 1).padStart(2, '0');\r\n\tconst d = date.getDate().toString().padStart(2, '0');\r\n\r\n\tconst H = date.getHours().toString().padStart(2, '0');\r\n\tconst i = date.getMinutes().toString().padStart(2, '0');\r\n\tconst s = date.getSeconds().toString().padStart(2, '0');\r\n\r\n\tdate = Y + '-' + m + '-' + d;\r\n\r\n\tif (time) date += ' ';\r\n\tif (time >= 1) date += H;\r\n\tif (time >= 2) date += ':' + i;\r\n\tif (time >= 3) date += ':' + s;\r\n\r\n\tif (useFormat) {\r\n\t\tdate = dateFormat(date, time);\r\n\t}\r\n\r\n\treturn date;\r\n}\r\n\r\n/**\r\n * Генерация даты-строки (время московское) из миллисекунд (UTC), в формате Y-m-d H:i:s\r\n * @param ms - дата в мс, если не передана, берется дата на момент вызова функции\r\n * @param langFormat - если true, формат даты будет взят из Core.state.dateFormat\r\n */\r\nexport function genDateMoscow(ms: number | undefined, langFormat: boolean = true): string {\r\n\tconst time_zone = (new Date().getTimezoneOffset() / 60) * (-1);\r\n\tconst dateoffset = time_zone * 60 * 60 * 1000;\r\n\tconst moscow_dateoffset = 3 * 60 * 60 * 1000;\r\n\r\n\tlet date: Date;\r\n\tif (ms !== undefined) {\r\n\t\tdate = new Date(ms);\r\n\t} else {\r\n\t\tdate = new Date();\r\n\t}\r\n\r\n\tdate.setTime(date.getTime() - dateoffset + moscow_dateoffset);\r\n\r\n\tlet Y = String(date.getFullYear());\r\n\tlet d = String(date.getDate()).padStart(2, '0');\r\n\tlet m = String(date.getMonth() + 1).padStart(2, '0');\r\n\tlet H = String(date.getHours()).padStart(2, '0');\r\n\tlet i = String(date.getMinutes()).padStart(2, '0');\r\n\tlet s = String(date.getSeconds()).padStart(2, '0');\r\n\r\n\tlet dateStr = Y + '-' + m + '-' + d + ' ' + H + ':' + i + ':' + s;\r\n\tif (langFormat) {\r\n\t\tdateStr = dateFormat(dateStr);\r\n\t}\r\n\r\n\treturn dateStr;\r\n}\r\n\r\n/**\r\n * Перевод даты в формат пользователя\r\n * @param date - объект даты или строка в формате Y-m-d H:i:s\r\n * @param time - 0-только дата | 1-дата и часы | 2-дата и часы с минутами | 3-дата и часы с минутами и секундами\r\n * @param dateformat -\r\n * @param emptyValue - значение, которое надо вернуть, если дата не указана\r\n */\r\nexport function dateFormat(dateMixed: string | Date, time: 0 | 1 | 2 | 3 = 2, dateFormat?: string, emptyValue: string = Core.L.Not_date): string {\r\n\tif (typeof dateMixed === 'string') {\r\n\t\tif (!dateMixed || dateMixed.substring(0, 10) === '0000-00-00') {\r\n\t\t\tif (emptyValue && emptyValue !== '0000-00-00') {\r\n\t\t\t\treturn emptyValue;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (!dateMixed) return emptyValue;\r\n\r\n\tif (!dateFormat) {\r\n\t\tdateFormat = Core.state.dateFormat.toLowerCase().toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd');\r\n\t}\r\n\r\n\tlet date: Date;\r\n\tif (dateMixed instanceof Date) {\r\n\t\tdate = dateMixed;\r\n\t} else {\r\n\t\tlet dateForObj = dateMixed.substring(0, 10);\r\n\t\tif (dateForObj.length === 7) dateForObj += '-01';\r\n\t\tdateForObj += ' 00:00';\r\n\t\tdateForObj = dateForObj.replace(/-/g, '/'); // safari fix\r\n\r\n\t\tdate = new Date(dateForObj);\r\n\t\tif (isNaN(Number(date))) return emptyValue;\r\n\t}\r\n\r\n\tlet result = '';\r\n\r\n\tif (dateFormat && window['$']) {\r\n\t\tresult = $.datepicker.formatDate(dateFormat, date);\r\n\t}\r\n\r\n\tif (time && typeof dateMixed === 'string' && dateMixed.length > 10 || time && dateMixed instanceof Date) {\r\n\t\tlet timeStr: string = '';\r\n\t\tif (dateMixed instanceof Date) {\r\n\t\t\ttimeStr = new Date().toLocaleTimeString('en-US', {\r\n\t\t\t\thour12: false,\r\n\t\t\t\thour: 'numeric',\r\n\t\t\t\tminute: time >= 2 ? 'numeric' : undefined,\r\n\t\t\t\tsecond: time >= 3 ? 'numeric' : undefined,\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tswitch (time) {\r\n\t\t\t\t// часы\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\ttimeStr = dateMixed.substring(11, 13);\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// часы и минуты\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\ttimeStr = dateMixed.substring(11, 16);\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// часы, минуты и секунды\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\ttimeStr = dateMixed.substring(11, 19);\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tresult += ' ' + timeStr;\r\n\t}\r\n\r\n\tresult = result.trim();\r\n\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Перевод даты из формата пользователя в системный формат Y-m-d H:i:s\r\n * @param date - строка с датой\r\n * @param emptyValue - значение, которое надо вернуть, если дата не указана\r\n */\r\nexport function dateUnformat(date: string, emptyValue: string = Core.L.Not_date): string {\r\n\tif (!date) {\r\n\t\treturn emptyValue;\r\n\t}\r\n\r\n\tif (date.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/)) {\r\n\t\treturn date;\r\n\t}\r\n\r\n\tconst dateFormat = Core.state.dateFormat.toLowerCase();\r\n\r\n\tconst dateChunks = date.split(/\\W/);\r\n\tconst dateFormatChunks = dateFormat.split(/\\W/);\r\n\r\n\tlet d = '';\r\n\tlet m = '';\r\n\tlet y = '';\r\n\r\n\tdateFormatChunks.forEach((type, index) => {\r\n\t\tswitch (type) {\r\n\t\t\tcase 'd':\r\n\t\t\t\td = dateChunks[index];\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'm':\r\n\t\t\t\tm = dateChunks[index];\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'y':\r\n\t\t\t\ty = dateChunks[index];\r\n\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tlet result = y + '-' + m + '-' + d;\r\n\r\n\tif (!result.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/)) {\r\n\t\tconsole.info('Неверный формат даты, будет возращена текущая дата, ' + result);\r\n\r\n\t\tresult = genDate((new Date()).getTime(), false).substring(0, 10);\r\n\t}\r\n\r\n\treturn result;\r\n}","<script lang=\"ts\" setup>\r\nimport { computed } from 'vue';\r\nimport type { Props } from './avatar';\r\nimport { dateFormat } from '@/core/utils/date';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: 64,\r\n\ti18n: () => ({\r\n\t\tOnline: 'Online',\r\n\t\tLastSeen: 'Last seen',\r\n\t}),\r\n});\r\n\r\nconst titleStatus = computed(() => {\r\n\tif (props.isOnline) {\r\n\t\treturn props.i18n?.Online;\r\n\t}\r\n\r\n\tif (props.lastActiveTime) {\r\n\t\treturn props.i18n?.LastSeen + ': ' + dateFormat(props.lastActiveTime, 2);\r\n\t}\r\n});\r\n\r\nconst titleImage = computed(() => {\r\n\tif (!props.nickname) return titleStatus.value;\r\n\r\n\treturn props.nickname + (titleStatus.value ? `\\n${titleStatus.value}` : '');\r\n})\r\n</script>\r\n\r\n<template>\r\n\t<div class=\"top-avatar\">\r\n\t\t<img\r\n\t\t\tclass=\"top-avatar_image\"\r\n\t\t\t:src=\"image\"\r\n\t\t\t:title=\"titleImage\"\r\n\t\t\talt=\"\"\r\n\t\t>\r\n\r\n\t\t<div\r\n\t\t\tv-if=\"isOnline\"\r\n\t\t\tclass=\"top-avatar_status\"\r\n\t\t\t:title=\"titleStatus\"\r\n\t\t>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<style module>\r\n.top-avatar {\r\n\twidth: v-bind(size+ \"px\");\r\n\theight: v-bind(size+ \"px\");\r\n\tdisplay: flex;\r\n\tflex-grow: 0;\r\n\tflex-shrink: 0;\r\n\tposition: relative;\r\n\ttop: 0;\r\n\tleft: 0;\r\n}\r\n\r\n.top-avatar_image {\r\n\tborder-radius: 50%;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}\r\n\r\n.top-avatar_status {\r\n\tborder-radius: 50%;\r\n\tborder: 2px solid var(--content-background-color);\r\n\tbackground-color: var(--color-bg-positive-2);\r\n\twidth: 25%;\r\n\theight: 25%;\r\n\tposition: absolute;\r\n\tright: 0;\r\n\tbottom: 0;\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props } from './button';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tcolor: 'blue',\r\n\tstyling: '',\r\n\tsize: 's',\r\n});\r\n\r\nconst tagName = computed(() => props.href ? 'a' : 'button');\r\n\r\nconst type = computed(() => props.isSubmit ? 'submit' : undefined);\r\n</script>\r\n\r\n<template>\r\n\t<component\r\n\t\t:is=\"tagName\"\r\n\t\t:class=\"{\r\n\t\t\t['top-active']: isActive,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t['top-button']: true,\r\n\t\t\t['top-button-progress']: isProgress,\r\n\t\t\t[`top-size_${size}`]: !!size,\r\n\t\t\t[`top-color_${color}`]: true,\r\n\t\t\t[`top-style_${styling}`]: !!styling,\r\n\t\t\t['top-button-withoutText']: !$slots.default,\r\n\t\t}\"\r\n\t\t:name=\"name\"\r\n\t\t:title=\"title\"\r\n\t\t:href=\"href\"\r\n\t\t:type=\"type\"\r\n\t\t:data-top-icon=\"icon || undefined\"\r\n\t\t:data-top-icon2=\"icon2 || undefined\"\r\n\t\t:disabled=\"disabled || undefined\"\r\n\t\t:inProgress=\"isProgress\"\r\n\t>\r\n\t\t<span\r\n\t\t\tv-if=\"$slots.default\"\r\n\t\t\tclass=\"top-ellipsis\"\r\n\t\t>\r\n\t\t\t<!-- @slot Текст в кнопке -->\r\n\t\t\t<slot>\r\n\t\t\t\t{{ !icon ? 'Button' : '' }}\r\n\t\t\t</slot>\r\n\t\t</span>\r\n\r\n\t\t<!-- @slot HTML в кнопке -->\r\n\t\t<slot name=\"html\"></slot>\r\n\t</component>\r\n</template>\r\n\r\n<style module>\r\n@import \"./style/button.css\";\r\n@import \"./style/style-outline.css\";\r\n@import \"./style/style-soft.css\";\r\n@import \"./style/style-transparent.css\";\r\n\r\n.top-button {\r\n\t--top-button-color: var(--color-white);\r\n\t--top-button-background-color: transparent;\r\n\t--top-button-background-color-hover: var(--top-button-background-color);\r\n\t--top-button-background-color-active: var(--top-button-background-color-hover);\r\n\t--top-button-background-color-selected: var(--top-button-background-color-hover);\r\n\t--top-button-box-shadow: none;\r\n\t--top-button-box-shadow-hover: var(--top-shadow-darken-2);\r\n\t--top-button-box-shadow-active: var(--top-shadow-darken-3);\r\n\t--top-button-box-shadow-selected: var(--top-shadow-darken-3);\r\n\t--top-forms-border-width: 0px;\r\n\t--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));\r\n\t--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding));\r\n}\r\n\r\n.top-button.top-size_l {\r\n\t--top-forms-padding: var(--top-forms-padding_l);\r\n\t--top-forms-base-height: var(--top-forms-base-height_l);\r\n}\r\n\r\n.top-button.top-size_xl {\r\n\t--top-forms-padding: var(--top-forms-padding_xl);\r\n\t--top-forms-base-height: var(--top-forms-base-height_xl);\r\n}\r\n</style>","<script lang=\"ts\">\r\nconst useNativeDatepicker = !!document.documentElement.ontouchstart && !!document.createElement('input').showPicker;\r\n\r\nlet onInputLazy = (_e: any) => { };\r\n</script>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref, computed, onUnmounted } from 'vue';\r\nimport { dateFormat, dateUnformat } from '@/core/utils/date';\r\nimport type { Props, Emits } from './inputDate';\r\nimport { Input } from '@/components/forms/forms';\r\nimport Core from '@/core/core/core';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\ticon2: '',\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nonUnmounted(() => {\r\n\tif ($el) {\r\n\t\t$el.datepicker('destroy');\r\n\t}\r\n});\r\n\r\nconst el = ref();\r\nlet $el: any;\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn dateFormat(props.modelValue, 2, undefined, '0000-00-00');\r\n\t},\r\n\r\n\tset(value) {\r\n\t\tvalue = dateUnformat(value, '0000-00-00');\r\n\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\nlet oninput = (e: any) => {\r\n\tonInputLazy(e);\r\n};\r\n\r\nlet onchange = (e: any) => {\r\n\tconst date = dateUnformat(e.target.value);\r\n\tconst dateFormatted = dateFormat(date);\r\n\r\n\tif (!dateFormatted || dateFormatted === Core.L.Not_date || e.target.value !== dateFormatted) {\r\n\t\te.target.value = localValue.value;\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tlocalValue.value = e.target.value;\r\n};\r\n\r\n/**\r\n * Инициализпация функций выбора дат\r\n *\r\n * Для не нативного datepicker\r\n */\r\nasync function init(e: any) {\r\n\tconst datepicker = await import('./datepicker');\r\n\r\n\t// формат ввода\r\n\tonInputLazy = datepicker.oninput;\r\n\r\n\t// datepicker\r\n\t$el = datepicker.connectDatepicker(e.target, {\r\n\t\tonSelect: () => onchange(e),\r\n\t});\r\n\r\n\tif ($el) {\r\n\t\t$el.datepicker('show');\r\n\t}\r\n}\r\n</script>\r\n\r\n<template>\r\n\t<Input\r\n\t\tv-if=\"useNativeDatepicker\"\r\n\t\t:=\"$props\"\r\n\t\t:modelValue=\"localValue\"\r\n\t\treadonly\r\n\t\t@click=\"el.showPicker()\"\r\n\t>\r\n\t\t<input\r\n\t\t\tref=\"el\"\r\n\t\t\ttype=\"date\"\r\n\t\t\tclass=\"top-input_input-date\"\r\n\t\t\t:modelValue=\"modelValue\"\r\n\t\t\t@change=\"(e: any) => localValue = e.target.value\"\r\n\t\t\ttabindex=\"-1\"\r\n\t\t/>\r\n\t</Input>\r\n\r\n\t<Input\r\n\t\tv-else\r\n\t\t:=\"$props\"\r\n\t\t:modelValue=\"localValue\"\r\n\t\t@update:modelValue=\"(newValue) => (newValue === '') ? localValue = '' : ''\"\r\n\t\t@input.date=\"oninput\"\r\n\t\t@focus.once.date=\"init\"\r\n\t\t@change.date=\"onchange\"\r\n\t\tmodificator=\"datepicker\"\r\n\t/>\r\n</template>\r\n\r\n<style module>\r\n.top-input-datepicker {\r\n\twidth: calc(105px + var(--top-icon-width) + var(--top-icon2-width));\r\n}\r\n\r\n.top-input_input-date {\r\n\topacity: 0;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tright: 0;\r\n\tbottom: 0;\r\n\tleft: 0;\r\n\tz-index: -1;\r\n}\r\n\r\n.top-input_input-date::-webkit-inner-spin-button {\r\n\tdisplay: none;\r\n}\r\n\r\n.top-input_input-date::-webkit-calendar-picker-indicator {\r\n\topacity: 0;\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './radio';\r\nimport ControlLabel from '../controlLabel/controlLabel.vue';\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-forms-optionWrapper']: true,\r\n\t\t\t['top-radio']: true,\r\n\t\t\t['top-radio_' + name]: name !== '',\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-error']: isError && !disabled,\r\n\t\t}\"\r\n\t>\r\n\t\t<input\r\n\t\t\ttype=\"radio\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-forms-option']: true,\r\n\t\t\t\t['top-radio_input']: true,\r\n\t\t\t\t['top-error']: isError && !disabled,\r\n\t\t\t}\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t\t:name=\"name\"\r\n\t\t\t:value=\"value\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\r\n\t\t<ControlLabel\r\n\t\t\tv-if=\"$slots.default\"\r\n\t\t\t:description=\"description\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\t\t\t<!-- @slot Слот с заголовком -->\r\n\t\t\t<slot></slot>\r\n\t\t</ControlLabel>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n:root {\r\n\t--top-radio-background-color: var(--content-background-color);\r\n\t--top-radio-background-color-hover: var(--top-radio-background-color);\r\n\t--top-radio-background-color-active: var(--top-radio-background-color);\r\n}\r\n\r\n.top-radio {\r\n\tcursor: pointer;\r\n}\r\n\r\n.top-radio_input {\r\n\tborder-radius: 50%;\r\n\tbackground: var(--content-background-color);\r\n\tborder: 1px solid var(--color-line-3);\r\n\twidth: calc(var(--top-forms-option-height) - 3px * 2);\r\n\theight: calc(var(--top-forms-option-height) - 3px * 2);\r\n}\r\n\r\n.top-radio_input:hover {\r\n\tborder-color: var(--color-line-3);\r\n\tbackground: var(--color-layer-secondary-1);\r\n}\r\n\r\n.top-radio_input:checked {\r\n\tborder-color: var(--color-line-primary-1);\r\n\tborder-width: 5px;\r\n}\r\n\r\n.top-radio_input:checked:hover {\r\n\tborder-color: var(--color-line-primary-2);\r\n}\r\n\r\n/* disabled */\r\n.top-radio_input:disabled {\r\n\tborder-color: var(--color-line-1-opacity);\r\n\tbackground: var(--color-theme-100);\r\n}\r\n\r\n/* disabled selected */\r\n.top-radio_input:checked:disabled {\r\n\tborder-color: var(--color-theme-400);\r\n}\r\n\r\n/* isError */\r\n.top-radio_input.top-error {\r\n\tborder-color: var(--color-line-negative-1);\r\n}\r\n\r\n.top-radio_input.top-error:hover {\r\n\tborder-color: var(--color-line-negative-2);\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './switcher';\r\nimport ControlLabel from '../controlLabel/controlLabel.vue';\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t['top-forms-optionWrapper']: true,\r\n\t\t['top-checkboxSwitcher']: true,\r\n\t\t['top-disabled']: disabled,\r\n\t\t['top-error']: isError && !disabled,\r\n\t}\"\r\n\t>\r\n\t\t<input\r\n\t\t\ttype=\"checkbox\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-forms-option']: true,\r\n\t\t\t\t['top-checkboxSwitcher_input']: true,\r\n\t\t\t\t['top-error']: isError && !disabled,\r\n\t\t\t}\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t\t:name=\"name\"\r\n\t\t\t:value=\"value\" \r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\r\n\t\t<ControlLabel\r\n\t\t\tv-if=\"$slots.default\"\r\n\t\t\t:description=\"description\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t>\r\n\t\t\t<!-- @slot Слот с заголовком -->\r\n\t\t\t<slot></slot>\r\n\t\t</ControlLabel>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-checkboxSwitcher {\r\n\tcursor: pointer;\r\n\tdisplay: inline-flex;\r\n\tgap: 4px;\r\n}\r\n\r\n.top-checkboxSwitcher_input {\r\n\tborder-radius: 9px;\r\n\tborder: none;\r\n\tbackground: var(--color-layer-secondary-2);\r\n\twidth: 36px;\r\n\theight: 18px;\r\n\tposition: relative;\r\n}\r\n\r\n.top-checkboxSwitcher_input:before {\r\n\tcontent: '';\r\n\tborder-radius: 50%;\r\n\tbackground: var(--color-white);\r\n\twidth: 12px;\r\n\theight: 12px;\r\n\tmargin: 3px;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\r\n\ttransition: left 0.1s;\r\n}\r\n\r\n.top-checkboxSwitcher_input:hover {\r\n\tbackground: var(--color-layer-secondary-4);\r\n}\r\n\r\n/* checked */\r\n.top-checkboxSwitcher_input:checked {\r\n\tbackground: var(--color-bg-primary-2);\r\n}\r\n\r\n.top-checkboxSwitcher_input:checked:hover {\r\n\tbackground: var(--color-bg-primary-1);\r\n}\r\n\r\n.top-checkboxSwitcher_input:checked:before {\r\n\tleft: 50%;\r\n}\r\n\r\n/* disabled */\r\n.top-checkboxSwitcher_input:disabled {\r\n\tbackground: var(--color-theme-400);\r\n}\r\n\r\n/* isError */\r\n.top-checkboxSwitcher_input.top-error {\r\n\tbackground: var(--color-layer-negative-3);\r\n}\r\n\r\n.top-checkboxSwitcher_input.top-error:hover {\r\n\tbackground: var(--color-layer-negative-4);\r\n}\r\n\r\n.top-checkboxSwitcher_input.top-error:checked {\r\n\tbackground: var(--color-bg-negative-2);\r\n}\r\n\r\n.top-checkboxSwitcher_input.top-error:checked:hover {\r\n\tbackground: var(--color-bg-negative-1);\r\n}\r\n\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport Hint from '@/components/forms/hint/hint.vue';\r\nimport type { Props, Emits } from './textarea';\r\n\r\ndefineOptions({\r\n\tinheritAttrs: false,\r\n});\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\trows: 5,\r\n\tminHeight: 120,\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst value = computed({\r\n\tget () {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset (value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-textarea']: true,\r\n\t\t\t['top-textarea-' + name]: name,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t}\"\r\n\t>\r\n\t\t<textarea\r\n\t\t\ttype=\"text\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-textarea_textarea']: true,\r\n\t\t\t\t['top-textarea_textarea-expandable']: expandable,\r\n\t\t\t\t['top-error']: isError,\r\n\t\t\t}\"\r\n\t\t\tautocomplete=\"off_always\"\r\n\t\t\t:name=\"name\"\r\n\t\t\t:placeholder=\"placeholder\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t\t:readonly=\"readonly\"\r\n\t\t\t:rows=\"!expandable ? rows : undefined\"\r\n\t\t\t:=\"$attrs\"\r\n\t\t\tv-model=\"value\"\r\n\t\t/>\r\n\r\n\t\t<div\r\n\t\t\tv-if=\"expandable\"\r\n\t\t\tclass=\"top-textarea_pseudoContent\"\r\n\t\t>\r\n\t\t\t{{ value + ' ' }}\r\n\t\t</div>\r\n\r\n\t\t<Hint\r\n\t\t\tv-if=\"hint\"\r\n\t\t\tclass=\"top-textarea_hint\"\r\n\t\t\t:hint=\"hint\"\r\n\t\t\tv-top-tooltip\r\n\t\t/>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-textarea {\r\n\twidth: 180px;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tposition: relative;\r\n}\r\n\r\n.top-textarea_textarea {\r\n\tcolor: var(--color-text-1);\r\n\tbackground: var(--top-forms-background-color);\r\n\twidth: 100%;\r\n\tpadding: var(--top-forms-padding);\r\n\tresize: none;\r\n}\r\n\r\n.top-textarea_textarea:hover {\r\n\tbackground: var(--top-forms-background-color-hover);\r\n}\r\n\r\n.top-textarea_textarea:focus {\r\n\tborder-color: var(--color-line-primary-1);\r\n\toutline: none;\r\n}\r\n\r\n.top-textarea_textarea.top-textarea_textarea-expandable {\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\toverflow: hidden;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n}\r\n\r\n.top-textarea_pseudoContent {\r\n\tbox-sizing: border-box;\r\n\tmin-height: v-bind(minHeight + 'px');\r\n\tpadding: var(--top-forms-padding);\r\n\tfont-size: 14px;\r\n\twhite-space: pre-wrap;\r\n\toverflow-wrap: anywhere;\r\n\tpointer-events: none;\r\n\topacity: 0;\r\n\tz-index: -1;\r\n}\r\n\r\n.top-textarea_hint {\r\n\tposition: absolute;\r\n\ttop: 2px;\r\n\tright: 2px;\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed, watch } from 'vue';\r\nimport type { ComputedRef } from 'vue';\r\nimport type { Props, Emits, Option, LocalOptions } from './select';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: 's',\r\n});\r\n\r\nconst model = defineModel<Props['modelValue']>({\r\n\trequired: true,\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\n/**\r\n * Словарь с учетом вложенных Props['options']\r\n *\r\n * Этот словарь должен использовать в логике компонента, чтобы она не зависила от типа входных данных\r\n */\r\nconst optionByValue: ComputedRef<LocalOptions> = computed(() => {\r\n\t/**\r\n\t * Преобразование:\r\n\t * - Array => Map\r\n\t * - string => Option\r\n\t */\r\n\tconst res = new Map();\r\n\r\n\tprops.options.forEach((option, index) => {\r\n\t\t// базовый Options со строками\r\n\t\tif (typeof option === 'string') option = genOption(index, option);\r\n\r\n\t\tif (option.children) {\r\n\t\t\t// вложенные элементы Option для <optgroup>\r\n\t\t\tconst children = new Map();\r\n\r\n\t\t\toption.children.forEach((subOption, subIndex) => {\r\n\t\t\t\t// базовый Options со строками\r\n\t\t\t\tif (typeof subOption === 'string') subOption = genOption(subIndex, subOption);\r\n\r\n\t\t\t\tchildren.set(subOption.value, subOption);\r\n\t\t\t});\r\n\r\n\t\t\toption = { ...option };\r\n\t\t\toption.children = children;\r\n\r\n\t\t\tres.set(option.value, option);\r\n\t\t} else {\r\n\t\t\t// самостоятельный элемент Option\r\n\t\t\tres.set(option.value, option);\r\n\t\t}\r\n\t});\r\n\r\n\treturn res;\r\n});\r\n\r\n/**\r\n * Словарь со всеми не disabled значениями Props['options'] в порядке следования с учетом вложенных Props['options']\r\n */\r\nconst flatOptionByValue: ComputedRef<Map<Props['modelValue'], Option>> = computed(() => {\r\n\tconst res = new Map();\r\n\r\n\toptionByValue.value.forEach(option => {\r\n\t\tif (option.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// вложенные элементы Option для <optgroup>\r\n\t\tif (option.children) {\r\n\t\t\toption.children.forEach(subOption => {\r\n\t\t\t\tif (subOption.disabled) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tres.set(subOption.value, subOption);\r\n\t\t\t});\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tres.set(option.value, option);\r\n\t});\r\n\r\n\treturn res;\r\n});\r\n\r\n/**\r\n * Генерация Объекта option из строки\r\n *\r\n * Для базового способа указания props\r\n */\r\nconst genOption = (value: Props['modelValue'], title: string): Option => {\r\n\treturn {\r\n\t\tvalue,\r\n\t\ttitle,\r\n\t};\r\n};\r\n\r\n/**\r\n * Логика для обртаной своместимости:\r\n * - null - заменить на первое доступное значение\r\n * - undefined - заменить на первое доступное значение\r\n */\r\nwatch([\r\n\t() => props.modelValue,\r\n\tflatOptionByValue,\r\n], () => {\r\n\tif ((model.value === null || model.value === undefined) && flatOptionByValue.value.size) {\r\n\t\tconsole.warn('Пожалуйста, не передавайте в компонент Select значения null и undefined');\r\n\r\n\t\tmodel.value = flatOptionByValue.value.keys().next().value;\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Иконка выбранного option\r\n */\r\nconst optionIcon = computed(() => {\r\n\treturn flatOptionByValue.value.get(model.value)?.icon;\r\n});\r\n\r\n/**\r\n * Выбрать следующее доступное значение\r\n */\r\nconst selectNextValue = () => {\r\n\tconst listEnabledValues = [...flatOptionByValue.value.keys()];\r\n\tconst currentIndex = listEnabledValues.indexOf(model.value);\r\n\tconst nextIndex = (currentIndex + 1) % listEnabledValues.length;\r\n\r\n\tmodel.value = listEnabledValues[nextIndex];\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-select']:true,\r\n\t\t\t['top-select-' + name]:name,\r\n\t\t\t['top-size_' + size]: true,\r\n\t\t\t['top-formsCaptionWrapper']: !!title,\r\n\t\t\t['top-select-error']: isError,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t}\"\r\n\t\t:data-value=\"model\"\r\n\t\t:data-top-icon=\"icon\"\r\n\t\t:data-top-icon2=\"optionIcon\"\r\n\t>\r\n\t\t<select\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-select_select']: true,\r\n\t\t\t\t['top-select_arrow']: true,\r\n\t\t\t\t['top-error']: isError,\r\n\t\t\t}\"\r\n\t\t\t:name=\"name\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t\tv-model=\"model\"\r\n\t\t>\r\n\t\t\t<template v-for=\"[value, option] of optionByValue\">\r\n\t\t\t\t<optgroup\r\n\t\t\t\t\tv-if=\"option.children\"\r\n\t\t\t\t\t:key=\"'group_' + value\"\r\n\t\t\t\t\t:label=\"option.title\"\r\n\t\t\t\t\t:disabled=\"option.disabled\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<option\r\n\t\t\t\t\t\tv-for=\"[subValue, subOption] of option.children\"\r\n\t\t\t\t\t\t:key=\"subValue\"\r\n\t\t\t\t\t\t:value=\"subValue\"\r\n\t\t\t\t\t\t:selected=\"subValue === model\"\r\n\t\t\t\t\t\t:disabled=\"subOption.disabled\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ subOption.title }}\r\n\t\t\t\t\t</option>\r\n\t\t\t\t</optgroup>\r\n\r\n\t\t\t\t<option\r\n\t\t\t\t\tv-else\r\n\t\t\t\t\t:key=\"value ?? undefined\"\r\n\t\t\t\t\t:value=\"value\"\r\n\t\t\t\t\t:selected=\"value === model\"\r\n\t\t\t\t\t:disabled=\"option.disabled\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ option.title }}\r\n\t\t\t\t</option>\r\n\t\t\t</template>\r\n\t\t</select>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"addChanger && flatOptionByValue.size && !disabled\"\r\n\t\t\tclass=\"top-changer\"\r\n\t\t\t@click=\"selectNextValue\"\r\n\t\t></span>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"title\"\r\n\t\t\tclass=\"top-formsCaption\"\r\n\t\t>\r\n\t\t\t{{ title }}\r\n\t\t</span>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-select {\r\n\tcolor: var(--color-text-1);\r\n\t--top-icon-color: var(--color-icon-2);\r\n\t--top-icon2-color: var(--color-icon-2);\r\n\r\n\talign-items: center;\r\n\twidth: 180px;\r\n\tmax-width: 100%;\r\n\tdisplay: inline-flex;\r\n}\r\n\r\n.top-select-error {\r\n\t--top-icon-color: var(--color-icon-negative-1);\r\n\t--top-icon2-color: var(--color-icon-negative-1);\r\n}\r\n\r\n.top-select_select {\r\n\tbackground-color: var(--top-forms-background-color);\r\n\t/* для select вместо padding нужно использовать text-indent */\r\n\tpadding-left: var(--top-forms-padding);\r\n\r\n\t/* если есть значки, добавить отступ на их ширину с учетом уже добавленного padding */\r\n\ttext-indent: calc(clamp(0px, calc(var(--top-icon-both-width) - var(--top-forms-padding)), calc(var(--top-icon-both-width) - var(--top-forms-padding))));\r\n\r\n\twidth: 100%;\r\n\theight: var(--top-forms-base-height);\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: nowrap;\r\n\tflex-grow: 1;\r\n\toverflow: hidden;\r\n}\r\n\r\n.top-select_select:disabled {\r\n\tcolor: var(--color-text-3);\r\n}\r\n\r\n.top-select optgroup {\r\n\tcolor: var(--color-text-1);\r\n\tfont-style: normal;\r\n}\r\n\r\n.top-select option:not(:disabled) {\r\n\tbackground: var(--content-background-color);\r\n\tcolor: var(--color-text-1);\r\n}\r\n\r\n.top-select option:disabled {\r\n\tbackground: unset;\r\n\tcolor: unset;\r\n}\r\n\r\n/* хром не мерняет цвет для optgroup option, стили оставлены по умолчанию */\r\n/*\r\n.top-select optgroup:disabled,\r\n.top-select optgroup option,\r\n.top-select option:disabled {\r\n\r\n}\r\n*/\r\n\r\n/* https://bugzilla.mozilla.org/show_bug.cgi?id=1743066 */\r\n@-moz-document url-prefix() {\r\n\t.top-select_select {\r\n\t\ttext-indent: calc(clamp(0px, calc(var(--top-icon-both-width) - var(--top-forms-padding)), calc(var(--top-icon-both-width) - var(--top-forms-padding))) / 2);\r\n\t}\r\n}\r\n\r\n@media only screen and (min-width: 900px) {\r\n\t/* changer */\r\n\t.top-changer {\r\n\t\tcursor: pointer;\r\n\t\tborder-radius: 100%;\r\n\t\twidth: 0;\r\n\t\ttransform: translateX(-44px);\r\n\t\tcolor: var(--color-text-2);\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1;\r\n\t\tdisplay: none;\r\n\t\tz-index: 2;\r\n\t\torder: 4;\r\n\t}\r\n\r\n\t.top-changer:hover {\r\n\t\tcolor: var(--color-primary);\r\n\t}\r\n\r\n\t.top-changer:after {\r\n\t\tcontent: \"\";\r\n\t\tbackground-color: var(--top-forms-background-color);\r\n\t\tfont-family: \"Topvisor-2\";\r\n\t}\r\n\r\n\t*:hover > .top-changer {\r\n\t\tdisplay: block;\r\n\t}\r\n}\r\n</style>","<template>\r\n\t<div class=\"top-loadbar\"></div>\r\n</template>\r\n\r\n<style module>\r\n:root {\r\n\t--top-loadbar-duration: 10s;\r\n\t--top-loadbar-color: var(--color-line-primary-2);\r\n}\r\n \r\n.top-loadbar {\r\n\tbackground: var(--top-loadbar-color);\r\n\twidth: 0;\r\n\theight: 4px;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\r\n\tanimation: top-loadbar var(--top-loadbar-duration) forwards;\r\n}\r\n\r\n@keyframes top-loadbar {\r\n\tfrom {\r\n\t\t/* fix render pixels */\r\n\t\twidth: 4px;\r\n\t}\r\n\t4% {\r\n\t\twidth: calc(4%);\r\n\t}\r\n\t5% {\r\n\t\twidth: 5%;\r\n\t}\r\n\tto {\r\n\t\twidth: 95%;\r\n\t}\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './input';\r\nimport { Loadbar } from '@/components/forms/forms';\r\n\r\ndefineOptions({\r\n\tinheritAttrs: false,\r\n});\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: 's',\r\n\tcaptionType: '',\r\n});\r\n\r\nconst emit = defineEmits<Emits>();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn props.modelValue;\r\n\t},\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\nconst placeholder = computed(() => {\r\n\tif (props.addCleaner && !props.title) {\r\n\t\treturn '';\r\n\t}\r\n\tif (props.captionType !== '') {\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn props.title;\r\n});\r\n\r\nconst clean = (event: Event) => {\r\n\tif(props.modelValue){\r\n\t\tevent.stopPropagation();\r\n\t}\r\n\r\n\temit('update:modelValue', '');\r\n};\r\n</script>\r\n\r\n<template>\r\n\t<label\r\n\t\t:class=\"{\r\n\t\t\t['top-input']: true,\r\n\t\t\t['top-size_' + size]: true,\r\n\t\t\t['top-disabled']: disabled,\r\n\t\t\t['top-input-' + modificator]: !!modificator,\r\n\t\t\t['top-input-withCleaner']: addCleaner && localValue && localValue !== '0000-00-00',\r\n\t\t\t['top-formsCaptionWrapper']: captionType !== '',\r\n\t\t\t['top-formsCaptionWrapper-always']: captionType === 'top',\r\n\t\t}\"\r\n\t\t:data-top-icon=\"icon\"\r\n\t\t:data-top-icon2=\"icon2\"\r\n\t>\r\n\t\t<Loadbar v-if=\"isLoading\"/>\r\n\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\t:class=\"{\r\n\t\t\t\t['top-input_input']: true,\r\n\t\t\t\t['top-input_input-' + modificator]: !!modificator,\r\n\t\t\t\t['top-forms-focusable']: !disabled,\r\n\t\t\t\t['top-error']: isError,\r\n\t\t\t}\"\r\n\t\t\tautocomplete=\"off_always\"\r\n\t\t\t:name=\"name\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t\t:title=\"title\"\r\n\t\t\t:placeholder=\"placeholder\"\r\n\t\t\t:disabled=\"disabled\"\r\n\t\t\t:readonly=\"readonly\"\r\n\t\t\t@keydown.esc=\"(event) => (addCleaner || !!$slots.btn) && clean(event)\"\r\n\t\t\t:=\"$attrs\"\r\n\t\t>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"addCleaner && localValue && localValue !== '0000-00-00'\"\r\n\t\t\tclass=\"top-input_cleaner\"\r\n\t\t\tdata-top-icon=\"\"\r\n\t\t\t@click.prevent=\"clean\"\r\n\t\t></span>\r\n\r\n\t\t<span\r\n\t\t\tv-if=\"captionType !== ''\"\r\n\t\t\tclass=\"top-formsCaption\"\r\n\t\t>\r\n\t\t\t{{ title }}\r\n\t\t</span>\r\n\r\n\t\t<!-- @slot Слот для вставки произвольного кода в label -->\r\n\t\t<slot></slot>\r\n\t</label>\r\n</template>\r\n\r\n<style module>\r\n.top-input {\r\n\t--top-forms_clear-width: 0px;\r\n\r\n\tborder-radius: var(--top-forms-radius);\r\n\twidth: 180px;\r\n\tposition: relative;\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tgap: var(--top-gap-1);\r\n}\r\n\r\n.top-input_input {\r\n\tcolor: var(--color-text-2);\r\n\tbackground: var(--top-forms-background-color);\r\n\theight: var(--top-forms-base-height);\r\n\tpadding: 0;\r\n\tpadding-right: calc(max(var(--top-forms-padding), calc(var(--top-icon2-width) + var(--top-forms_clear-width))));\r\n\tpadding-left: calc(max(var(--top-forms-padding), var(--top-icon-width)));\r\n}\r\n\r\n.top-input_input:hover {\r\n\tbackground: var(--top-forms-background-color-hover);\r\n}\r\n\r\n.top-input_input:focus {\r\n\tcolor: var(--color-text-1);\r\n\tborder-color: var(--color-line-primary-1);\r\n\toutline: none;\r\n}\r\n\r\n/* значки */\r\n.top-input[data-top-icon]:before,\r\n.top-input[data-top-icon2]:after {\r\n\t--top-icon-color: var(--color-icon-2);\r\n\t--top-icon2-color: var(--color-icon-2);\r\n\r\n\tposition: absolute;\r\n\tz-index: 3;\r\n\tfont-size: 20px;\r\n}\r\n\r\n.top-input[data-top-icon]:before {\r\n\tleft: 0;\r\n}\r\n\r\n.top-input[data-top-icon2]:after {\r\n\tright: 0;\r\n}\r\n\r\n/* cleaner */\r\n.top-input-withCleaner {\r\n\t--top-forms_clear-width: 24px;\r\n}\r\n\r\n.top-input_cleaner {\r\n\t--top-icon-size: 16px;\r\n\t--top-icon-width: 20px;\r\n\t--top-icon-color: var(--color-icon-3);\r\n\r\n\tcursor: pointer;\r\n\tborder-radius: 50%;\r\n\twidth: 20px;\r\n\theight: 16px;\r\n\tposition: absolute;\r\n\tright: calc(var(--top-forms-border-width) + max(var(--top-icon2-width), var(--top-forms-padding) / 2));\r\n\tz-index: 1;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n\r\n.top-input_cleaner:hover {\r\n\t--top-icon-color: var(--color-icon-2);\r\n}\r\n\r\n/* TODO: перенести в inputsRange */\r\n.top-input_input {\r\n\twidth: 50%;\r\n\tflex-grow: 1;\r\n}\r\n\r\n/* top-loadbar */\r\n.top-input .top-loadbar{\r\n\tborder-radius: var(--top-forms-radius) 0 0 0;\r\n}\r\n</style>"],"names":["isRetina","isMobile","isApp","isMacOS","isSafari","isChrome","isSafari2","getCommandKeyLabel","getScrollTop","get$scroll","getElsScroll","res","i","os","getOSAsync","getOS","platformVersion","_a","Page","onResizeTimer","onResizeListeners","windowSize","listener","callback","e","onResize","Events","addOnReize","removeOnResize","options","state","_b","$$1","el","Core","tvTooltipGenOptions","binding","vnode","tooltip","instance","_binding","_vnode","focus","appStickyObserver","sticky","entries","_el","appSwimUpObserver","directiveSwipUpOptions","appSwimUpEls","swimUpElTransform","windowHeight","triggerHeight","distance","swimUpInit","el2","entry","swimUp","args","percent","_window","vue","media","type","elStyle","style","app","options2","device","L","getDayOfWeek","y","m","d","dateToString","dateObject","langFormat","timeFormat","H","s","date","Y","timestamp","time","genDateMoscow","ms","dateoffset","moscow_dateoffset","dateStr","dateFormat","dateMixed","dateFormat2","emptyValue","dateForObj","result","timeStr","dateChunks","index","props","__props","titleStatus","titleImage","tagName","onInputLazy","_e","emit","__emit","$el","localValue","value","oninput","onchange","dateFormatted","init","datepicker","resolve","reject","require","value2","optionByValue","option","genOption","children","subOption","subIndex","flatOptionByValue","title","model","optionIcon","listEnabledValues","_sfc_render","_ctx","_cache","placeholder","clean","event"],"mappings":"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"}
|
|
@@ -328,8 +328,7 @@ function po(t, e = !0) {
|
|
|
328
328
|
return e && (b = L(b)), b;
|
|
329
329
|
}
|
|
330
330
|
function L(t, e = 2, s, n = p.L.Not_date) {
|
|
331
|
-
if (typeof t == "string" && (!t || t.substring(0, 10) === "0000-00-00") && n && n !== "0000-00-00")
|
|
332
|
-
return n;
|
|
331
|
+
if (typeof t == "string" && (!t || t.substring(0, 10) === "0000-00-00") && n && n !== "0000-00-00" || !t) return n;
|
|
333
332
|
s || (s = p.state.dateFormat.toLowerCase().toLowerCase().replace("m", "mm").replace("y", "yy").replace("d", "dd"));
|
|
334
333
|
let a;
|
|
335
334
|
if (t instanceof Date)
|
|
@@ -662,7 +661,7 @@ const pt = /* @__PURE__ */ y({
|
|
|
662
661
|
i.value = d.target.value;
|
|
663
662
|
};
|
|
664
663
|
async function r(d) {
|
|
665
|
-
const c = await import("./datepicker-
|
|
664
|
+
const c = await import("./datepicker-xygATX84.es.js");
|
|
666
665
|
Z = c.oninput, o = c.connectDatepicker(d.target, {
|
|
667
666
|
onSelect: () => f(d)
|
|
668
667
|
}), o && o.datepicker("show");
|
|
@@ -1168,4 +1167,4 @@ export {
|
|
|
1168
1167
|
go as y,
|
|
1169
1168
|
vo as z
|
|
1170
1169
|
};
|
|
1171
|
-
//# sourceMappingURL=forms-
|
|
1170
|
+
//# sourceMappingURL=forms-CSYOiIP2.es.js.map
|