@topvisor/ui 0.0.33 → 0.0.34
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-48f2fa8d.es.js → datepicker-0b648b9f.es.js} +2 -2
- package/.chunks/{datepicker-48f2fa8d.es.js.map → datepicker-0b648b9f.es.js.map} +1 -1
- package/.chunks/{datepicker-f94ba423.amd.js → datepicker-0e9a0541.amd.js} +2 -2
- package/.chunks/{datepicker-f94ba423.amd.js.map → datepicker-0e9a0541.amd.js.map} +1 -1
- package/.chunks/{forms-cab135c7.amd.js → forms-02202302.amd.js} +3 -3
- package/.chunks/forms-02202302.amd.js.map +1 -0
- package/.chunks/{forms-6c397f5a.es.js → forms-eb00d0c1.es.js} +128 -117
- package/.chunks/forms-eb00d0c1.es.js.map +1 -0
- package/.chunks/{popup-04c385e0.es.js → popup-6f73b4b2.es.js} +3 -4
- package/.chunks/popup-6f73b4b2.es.js.map +1 -0
- package/.chunks/{popup-33f53a1c.amd.js → popup-e1f34511.amd.js} +3 -4
- package/.chunks/popup-e1f34511.amd.js.map +1 -0
- package/core/core.amd.js +1 -1
- package/core/core.js +1 -1
- package/core.css +1 -1
- package/forms/forms.amd.js +1 -1
- package/forms/forms.js +1 -1
- package/forms.css +1 -1
- package/formsExt/formsExt.amd.js +1 -1
- package/formsExt/formsExt.js +1 -1
- package/package.json +1 -1
- package/popup/popup.amd.js +1 -1
- package/popup/popup.js +1 -1
- package/popup/worker.amd.js +1 -1
- package/popup/worker.js +2 -2
- package/tabs/tabs.amd.js +1 -1
- package/tabs/tabs.js +1 -1
- 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/.chunks/forms-6c397f5a.es.js.map +0 -1
- package/.chunks/forms-cab135c7.amd.js.map +0 -1
- package/.chunks/popup-04c385e0.es.js.map +0 -1
- package/.chunks/popup-33f53a1c.amd.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { watch as g, toRef as m } from "vue";
|
|
2
|
-
import { C as k, U as h } from "./forms-
|
|
2
|
+
import { C as k, U as h } from "./forms-eb00d0c1.es.js";
|
|
3
3
|
const b = `/* ui-datepicker */\r
|
|
4
4
|
.ui-datepicker {\r
|
|
5
5
|
--datepicker-day-color: #FFF;\r
|
|
@@ -272,4 +272,4 @@ export {
|
|
|
272
272
|
y as connectDatepicker,
|
|
273
273
|
F as oninput
|
|
274
274
|
};
|
|
275
|
-
//# sourceMappingURL=datepicker-
|
|
275
|
+
//# sourceMappingURL=datepicker-0b648b9f.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-48f2fa8d.es.js","sources":["../../src/components/forms/inputDate/datepicker.css?raw","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: #FFF;\\r\\n\\t--datepicker-day-color-hover: var(--color-blue-150);\\r\\n\\t--datepicker-selected-color: var(--color-blue-500);\\r\\n\\t--datepicker-selected-color-hover: var(--color-blue-550);\\r\\n\\t--datepicker-range-color: var(--color-blue-100);\\r\\n\\t--datepicker-range-color-hover: var(--color-blue-150);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-gray-300);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: #B3BEBF;\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-blue-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-red-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\"","import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport UtilsDate from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst _window: any = window;\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!_window?.jQuery?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\t_window.jQuery.datepicker._defaults.dateFormat = Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd');\r\n\r\n\treturn _window.jQuery(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = UtilsDate.dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}"],"names":["css","Core","_window","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","toRef","UtilsDate","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":";;AAAA,MAAeA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACMfC,EAAK,YAAYD,CAAG;AAEpB,MAAME,IAAe,QAEfC,IAAI,CAACC,MAAyB;;AACnC,MAAI,GAACC,KAAAC,IAAAJ,KAAA,gBAAAA,EAAS,WAAT,gBAAAI,EAAiB,OAAjB,QAAAD,EAAqB,aAAY;AACrC,YAAQ,KAAK,0EAA0E;AAEvF;AAAA,EACD;AAEA,SAAAH,EAAQ,OAAO,WAAW,UAAU,aAAaD,EAAK,MAAM,WAAW,YAAY,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,GAErIC,EAAQ,OAAOE,CAAE;AACzB;AAEgB,SAAAG,EAAkBH,GAAsBI,GAAc;;AACrE,UAAOF,IAAAH,EAAEC,CAAE,MAAJ,gBAAAE,EAAO,WAAWE;AAC1B;AAEA,IAAIC,GACAC,GACAC,GACAC;AAEJC,EAAMC,EAAMb,EAAK,MAAM,UAAU,GAAG,MAAM;;AAEzB,EAAAQ,IAAAM,EAAU,WAAW,YAAY,GACjDL,MAAYJ,IAAAG,EAAc,MAAM,IAAI,MAAxB,gBAAAH,EAA4B,OAAM,KAC9CK,IAAmBF,EAAc,QAAQ,QAAQ,EAAE,EAAE,QACrDG,IAAoB,CAAA;AAEpB,WAASI,IAAI,GAAGA,IAAIP,EAAc,QAAQO;AACrC,IAAAP,EAAcO,CAAC,MAAMN,KACxBE,EAAkB,KAAKI,CAAC;AAG3B,GAAG,EAAE,WAAW,GAAA,CAAM;AAKf,SAASC,EAAQC,GAAQ;AAC3B,MAAAC,IAAeD,EAAE,OAAO,cACxBE,IAAQF,EAAE,OAAO,OAIjBG,IAAiBD,EAAM,UAAU,GAAGD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GACpEG,IAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GAElEI,IAAoBF,EAAe,SAASC,EAAgB,SAASX;AACzE,MAAIY,IAAoB,GAAG;AAET,IAAAF,IAAAA,EAAe,UAAU,GAAGV,CAAgB;AAEvD,UAAAa,IAA2Bb,IAAmBU,EAAe;AACnE,IAAAC,IAAkBA,EAAgB,UAAUA,EAAgB,SAASE,CAAwB;AAAA,EAAA;AAC9F,IAAWD,IAAoB,MAE1BL,EAAE,cAAc,yBAEDG,KAAA,IAAI,OAAO,CAACE,CAAiB,IAE/CD,IAAkB,IAAI,OAAO,CAACC,CAAiB,IAAID;AAIrD,EAAAH,IAAeE,EAAe,QAC9BD,IAAQC,IAAiBC;AAGzB,WAASN,IAAI,GAAGA,IAAIJ,EAAkB,QAAQI,KAAK;AAC5C,UAAAS,IAAiBb,EAAkBI,CAAC;AAElC,IAAAI,IAAAA,EAAM,UAAU,GAAGK,CAAc,IAAIf,IAAYU,EAAM,UAAUK,CAAc,GAGnFN,KAAgBM,KACnBN;AAAA,EAEF;AAGA,EAAID,EAAE,cAAc,2BAA2BE,EAAMD,IAAe,CAAC,MAAMT,KAC1ES,KAIGC,MAAUF,EAAE,OAAO,UACtBA,EAAE,OAAO,QAAQE,GACjBF,EAAE,OAAO,iBAAiBC,GAC1BD,EAAE,OAAO,eAAeC;AAE1B;"}
|
|
1
|
+
{"version":3,"file":"datepicker-0b648b9f.es.js","sources":["../../src/components/forms/inputDate/datepicker.css?raw","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: #FFF;\\r\\n\\t--datepicker-day-color-hover: var(--color-blue-150);\\r\\n\\t--datepicker-selected-color: var(--color-blue-500);\\r\\n\\t--datepicker-selected-color-hover: var(--color-blue-550);\\r\\n\\t--datepicker-range-color: var(--color-blue-100);\\r\\n\\t--datepicker-range-color-hover: var(--color-blue-150);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-gray-300);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: #B3BEBF;\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-blue-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-red-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\"","import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport UtilsDate from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst _window: any = window;\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!_window?.jQuery?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\t_window.jQuery.datepicker._defaults.dateFormat = Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd');\r\n\r\n\treturn _window.jQuery(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = UtilsDate.dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}"],"names":["css","Core","_window","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","watch","toRef","UtilsDate","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":";;AAAA,MAAeA,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACMfC,EAAK,YAAYD,CAAG;AAEpB,MAAME,IAAe,QAEfC,IAAI,CAACC,MAAyB;;AACnC,MAAI,GAACC,KAAAC,IAAAJ,KAAA,gBAAAA,EAAS,WAAT,gBAAAI,EAAiB,OAAjB,QAAAD,EAAqB,aAAY;AACrC,YAAQ,KAAK,0EAA0E;AAEvF;AAAA,EACD;AAEA,SAAAH,EAAQ,OAAO,WAAW,UAAU,aAAaD,EAAK,MAAM,WAAW,YAAY,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,KAAK,IAAI,GAErIC,EAAQ,OAAOE,CAAE;AACzB;AAEgB,SAAAG,EAAkBH,GAAsBI,GAAc;;AACrE,UAAOF,IAAAH,EAAEC,CAAE,MAAJ,gBAAAE,EAAO,WAAWE;AAC1B;AAEA,IAAIC,GACAC,GACAC,GACAC;AAEJC,EAAMC,EAAMb,EAAK,MAAM,UAAU,GAAG,MAAM;;AAEzB,EAAAQ,IAAAM,EAAU,WAAW,YAAY,GACjDL,MAAYJ,IAAAG,EAAc,MAAM,IAAI,MAAxB,gBAAAH,EAA4B,OAAM,KAC9CK,IAAmBF,EAAc,QAAQ,QAAQ,EAAE,EAAE,QACrDG,IAAoB,CAAA;AAEpB,WAASI,IAAI,GAAGA,IAAIP,EAAc,QAAQO;AACrC,IAAAP,EAAcO,CAAC,MAAMN,KACxBE,EAAkB,KAAKI,CAAC;AAG3B,GAAG,EAAE,WAAW,GAAA,CAAM;AAKf,SAASC,EAAQC,GAAQ;AAC3B,MAAAC,IAAeD,EAAE,OAAO,cACxBE,IAAQF,EAAE,OAAO,OAIjBG,IAAiBD,EAAM,UAAU,GAAGD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GACpEG,IAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,QAAQ,EAAE,GAElEI,IAAoBF,EAAe,SAASC,EAAgB,SAASX;AACzE,MAAIY,IAAoB,GAAG;AAET,IAAAF,IAAAA,EAAe,UAAU,GAAGV,CAAgB;AAEvD,UAAAa,IAA2Bb,IAAmBU,EAAe;AACnE,IAAAC,IAAkBA,EAAgB,UAAUA,EAAgB,SAASE,CAAwB;AAAA,EAAA;AAC9F,IAAWD,IAAoB,MAE1BL,EAAE,cAAc,yBAEDG,KAAA,IAAI,OAAO,CAACE,CAAiB,IAE/CD,IAAkB,IAAI,OAAO,CAACC,CAAiB,IAAID;AAIrD,EAAAH,IAAeE,EAAe,QAC9BD,IAAQC,IAAiBC;AAGzB,WAASN,IAAI,GAAGA,IAAIJ,EAAkB,QAAQI,KAAK;AAC5C,UAAAS,IAAiBb,EAAkBI,CAAC;AAElC,IAAAI,IAAAA,EAAM,UAAU,GAAGK,CAAc,IAAIf,IAAYU,EAAM,UAAUK,CAAc,GAGnFN,KAAgBM,KACnBN;AAAA,EAEF;AAGA,EAAID,EAAE,cAAc,2BAA2BE,EAAMD,IAAe,CAAC,MAAMT,KAC1ES,KAIGC,MAAUF,EAAE,OAAO,UACtBA,EAAE,OAAO,QAAQE,GACjBF,EAAE,OAAO,iBAAiBC,GAC1BD,EAAE,OAAO,eAAeC;AAE1B;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
define(["exports","vue","./forms-
|
|
1
|
+
define(["exports","vue","./forms-02202302.amd"],function(k,h,c){"use strict";const m=`/* ui-datepicker */\r
|
|
2
2
|
.ui-datepicker {\r
|
|
3
3
|
--datepicker-day-color: #FFF;\r
|
|
4
4
|
--datepicker-day-color-hover: var(--color-blue-150);\r
|
|
@@ -231,4 +231,4 @@ td.ui-datepicker-today a {\r
|
|
|
231
231
|
.ui-datepicker-row-break {\r
|
|
232
232
|
display: none;\r
|
|
233
233
|
}`;c.Core.appendStyle(m);const a=window,b=t=>{var r,e;if(!((e=(r=a==null?void 0:a.jQuery)==null?void 0:r.ui)!=null&&e.datepicker)){console.info("Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker");return}return a.jQuery.datepicker._defaults.dateFormat=c.Core.state.dateFormat.toLowerCase().replace("m","mm").replace("y","yy").replace("d","dd"),a.jQuery(t)};function f(t,r){var e;return(e=b(t))==null?void 0:e.datepicker(r)}let o,p,l,u;h.watch(h.toRef(c.Core.state.dateFormat),()=>{var t;o=c.UtilsDate.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,n=e.substring(0,r).replace(/\D+/g,""),i=e.substring(r).replace(/\D+/g,""),s=n.length+i.length-l;if(s>0){n=n.substring(0,l);const d=l-n.length;i=i.substring(i.length-d)}else s<0&&(t.inputType==="deleteContentForward"?n+="0".repeat(-s):i="0".repeat(-s)+i);r=n.length,e=n+i;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=f,k.oninput=v,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
|
234
|
-
//# sourceMappingURL=datepicker-
|
|
234
|
+
//# sourceMappingURL=datepicker-0e9a0541.amd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-f94ba423.amd.js","sources":["../../src/components/forms/inputDate/datepicker.css?raw","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: #FFF;\\r\\n\\t--datepicker-day-color-hover: var(--color-blue-150);\\r\\n\\t--datepicker-selected-color: var(--color-blue-500);\\r\\n\\t--datepicker-selected-color-hover: var(--color-blue-550);\\r\\n\\t--datepicker-range-color: var(--color-blue-100);\\r\\n\\t--datepicker-range-color-hover: var(--color-blue-150);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-gray-300);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: #B3BEBF;\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-blue-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-red-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\"","import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport UtilsDate from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst _window: any = window;\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!_window?.jQuery?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\t_window.jQuery.datepicker._defaults.dateFormat = Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd');\r\n\r\n\treturn _window.jQuery(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = UtilsDate.dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}"],"names":["css","Core","_window","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","vue","toRef","UtilsDate","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":"6EAAe,MAAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCMfC,EAAAA,KAAK,YAAYD,CAAG,EAEpB,MAAME,EAAe,OAEfC,EAAKC,GAAyB,SACnC,GAAI,GAACC,GAAAC,EAAAJ,GAAA,YAAAA,EAAS,SAAT,YAAAI,EAAiB,KAAjB,MAAAD,EAAqB,YAAY,CACrC,QAAQ,KAAK,0EAA0E,EAEvF,MACD,CAEA,OAAAH,EAAQ,OAAO,WAAW,UAAU,WAAaD,OAAK,MAAM,WAAW,YAAY,EAAE,QAAQ,IAAK,IAAI,EAAE,QAAQ,IAAK,IAAI,EAAE,QAAQ,IAAK,IAAI,EAErIC,EAAQ,OAAOE,CAAE,CACzB,EAEgB,SAAAG,EAAkBH,EAAsBI,EAAc,OACrE,OAAOF,EAAAH,EAAEC,CAAE,IAAJ,YAAAE,EAAO,WAAWE,EAC1B,CAEA,IAAIC,EACAC,EACAC,EACAC,EAEJC,EAAA,MAAMC,EAAM,MAAAb,EAAA,KAAK,MAAM,UAAU,EAAG,IAAM,OAEzBQ,EAAAM,EAAA,UAAU,WAAW,YAAY,EACjDL,IAAYJ,EAAAG,EAAc,MAAM,IAAI,IAAxB,YAAAH,EAA4B,KAAM,IAC9CK,EAAmBF,EAAc,QAAQ,OAAQ,EAAE,EAAE,OACrDG,EAAoB,CAAA,EAEpB,QAASI,EAAI,EAAGA,EAAIP,EAAc,OAAQO,IACrCP,EAAcO,CAAC,IAAMN,GACxBE,EAAkB,KAAKI,CAAC,CAG3B,EAAG,CAAE,UAAW,EAAA,CAAM,EAKf,SAASC,EAAQC,EAAQ,CAC3B,IAAAC,EAAeD,EAAE,OAAO,aACxBE,EAAQF,EAAE,OAAO,MAIjBG,EAAiBD,EAAM,UAAU,EAAGD,CAAY,EAAE,QAAQ,OAAQ,EAAE,EACpEG,EAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,OAAQ,EAAE,EAElEI,EAAoBF,EAAe,OAASC,EAAgB,OAASX,EACzE,GAAIY,EAAoB,EAAG,CAETF,EAAAA,EAAe,UAAU,EAAGV,CAAgB,EAEvD,MAAAa,EAA2Bb,EAAmBU,EAAe,OACnEC,EAAkBA,EAAgB,UAAUA,EAAgB,OAASE,CAAwB,CAAA,MACnFD,EAAoB,IAE1BL,EAAE,YAAc,uBAEDG,GAAA,IAAI,OAAO,CAACE,CAAiB,EAE/CD,EAAkB,IAAI,OAAO,CAACC,CAAiB,EAAID,GAIrDH,EAAeE,EAAe,OAC9BD,EAAQC,EAAiBC,EAGzB,QAASN,EAAI,EAAGA,EAAIJ,EAAkB,OAAQI,IAAK,CAC5C,MAAAS,EAAiBb,EAAkBI,CAAC,EAElCI,EAAAA,EAAM,UAAU,EAAGK,CAAc,EAAIf,EAAYU,EAAM,UAAUK,CAAc,EAGnFN,GAAgBM,GACnBN,GAEF,CAGID,EAAE,YAAc,yBAA2BE,EAAMD,EAAe,CAAC,IAAMT,GAC1ES,IAIGC,IAAUF,EAAE,OAAO,QACtBA,EAAE,OAAO,MAAQE,EACjBF,EAAE,OAAO,eAAiBC,EAC1BD,EAAE,OAAO,aAAeC,EAE1B"}
|
|
1
|
+
{"version":3,"file":"datepicker-0e9a0541.amd.js","sources":["../../src/components/forms/inputDate/datepicker.css?raw","../../src/components/forms/inputDate/datepicker.ts"],"sourcesContent":["export default \"/* ui-datepicker */\\r\\n.ui-datepicker {\\r\\n\\t--datepicker-day-color: #FFF;\\r\\n\\t--datepicker-day-color-hover: var(--color-blue-150);\\r\\n\\t--datepicker-selected-color: var(--color-blue-500);\\r\\n\\t--datepicker-selected-color-hover: var(--color-blue-550);\\r\\n\\t--datepicker-range-color: var(--color-blue-100);\\r\\n\\t--datepicker-range-color-hover: var(--color-blue-150);\\r\\n\\r\\n\\tuser-select: none;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker:before,\\r\\n.ui-datepicker:after {\\r\\n\\tdisplay: none;\\r\\n}\\r\\n\\r\\n/* на странице */\\r\\n.ui-datepicker-inline {\\r\\n\\tdisplay: inline-block !important;\\r\\n}\\r\\n\\r\\n/* в popup */\\r\\n.ui-datepicker:not(.ui-datepicker-inline) {\\r\\n\\tborder-radius: 8px;\\r\\n\\tbackground: var(--content-background-color);\\r\\n\\tbox-shadow: var(--top-shadow);\\r\\n\\tz-index: 10000000 !important;\\r\\n\\tpadding: 8px;\\r\\n}\\r\\n\\r\\n.ui-datepicker a {\\r\\n\\ttext-decoration: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker option {\\r\\n\\tcolor: var(--color-text);\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header {\\r\\n\\tpadding: 0 !important;\\r\\n\\tmargin: 0 0 18px 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-header > * {\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-title {\\r\\n\\twidth: 100% !important;\\r\\n\\theight: 24px;\\r\\n\\tmargin: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month,\\r\\n.ui-datepicker-year {\\r\\n\\toutline: none !important;\\r\\n\\twidth: auto !important;\\r\\n\\tborder: none;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 0 6px !important;\\r\\n\\ttext-align: center;\\r\\n\\tfont-size: 16px !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-month {\\r\\n\\tcolor: var(--color-text);\\r\\n}\\r\\n\\r\\n.ui-datepicker-year {\\r\\n\\tcolor: var(--color-gray-300);\\r\\n}\\r\\n\\r\\n/*\\tselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year{ cursor: pointer; color: var(--color-blue-500); }*/\\r\\nselect.ui-datepicker-month,\\r\\nselect.ui-datepicker-year {\\r\\n\\tcursor: pointer;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev,\\r\\n.ui-datepicker-next {\\r\\n\\tcursor: pointer;\\r\\n\\twidth: 24px !important;\\r\\n\\theight: 24px !important;\\r\\n\\tfont-size: 24px;\\r\\n\\tfont-family: 'Topvisor-2';\\r\\n\\tposition: static !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-next {\\r\\n\\torder: 1;\\r\\n}\\r\\n\\r\\n.ui-datepicker-next:before {\\r\\n\\tcontent: '';\\r\\n}\\r\\n\\r\\n.ui-datepicker-prev > *,\\r\\n.ui-datepicker-next > * {\\r\\n\\tdisplay: none !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker thead th {\\r\\n\\twidth: auto !important;\\r\\n\\tpadding: 0 !important;\\r\\n\\tcolor: #B3BEBF;\\r\\n\\tfont-size: 14px;\\r\\n\\tfont-weight: 400 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker table {\\r\\n\\tmargin: 0 !important;\\r\\n\\tfont-size: 14px;\\r\\n}\\r\\n\\r\\n.ui-datepicker td {\\r\\n\\tbackground: none;\\r\\n\\tpadding: 0 !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td span,\\r\\n.ui-datepicker td a {\\r\\n\\tborder-radius: 8px;\\r\\n\\tborder: none;\\r\\n\\tmin-width: 32px;\\r\\n\\theight: 32px;\\r\\n\\tpadding: 0;\\r\\n\\tmargin: 1px;\\r\\n\\tcolor: var(--color-text) !important;\\r\\n\\tline-height: 32px;\\r\\n\\ttext-align: center;\\r\\n\\tposition: relative;\\r\\n\\tdisplay: block;\\r\\n}\\r\\n\\r\\n/* обычные даты */\\r\\n.ui-datepicker td a {\\r\\n\\tbackground: var(--datepicker-day-color);\\r\\n}\\r\\n\\r\\n.ui-datepicker td a:hover {\\r\\n\\tbackground: var(--datepicker-day-color-hover);\\r\\n}\\r\\n\\r\\n/* текущий день */\\r\\ntd.ui-datepicker-today span,\\r\\ntd.ui-datepicker-today a {\\r\\n\\tbackground: none;\\r\\n\\tposition: relative;\\r\\n}\\r\\n\\r\\n/* выбранные даты */\\r\\n.ui-datepicker td.selected a {\\r\\n\\tbackground: var(--datepicker-range-color);\\r\\n\\tpadding-right: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-right: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected a:hover {\\r\\n\\tbackground: var(--datepicker-range-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-start):not(:first-child):not(.first-of-month) a {\\r\\n\\tborder-top-left-radius: 0;\\r\\n\\tborder-bottom-left-radius: 0;\\r\\n\\tpadding-left: 1px;\\r\\n\\tmargin-left: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected:not(.selected-end):not(:last-child):not(.last-of-month) a {\\r\\n\\tborder-top-right-radius: 0;\\r\\n\\tborder-bottom-right-radius: 0;\\r\\n\\tpadding-right: 1px;\\r\\n\\tmargin-right: 0;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a,\\r\\n.ui-datepicker td.selected-end a,\\r\\n.ui-datepicker td.ui-datepicker-current-day a {\\r\\n\\tbackground: var(--datepicker-selected-color);\\r\\n\\tcolor: #FFF !important;\\r\\n}\\r\\n\\r\\n.ui-datepicker td.selected-start a:hover,\\r\\n.ui-datepicker td.selected-end a:hover,\\r\\n.ui-datepicker td.ui-datepicker-current-day a:hover {\\r\\n\\tbackground: var(--datepicker-selected-color-hover);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks {\\r\\n\\tline-height: normal;\\r\\n\\tposition: absolute;\\r\\n\\tright: 0;\\r\\n\\tbottom: 3px;\\r\\n\\tleft: 0;\\r\\n\\tdisplay: flex;\\r\\n\\talign-items: center;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks > i {\\r\\n\\tborder-radius: 50%;\\r\\n\\tborder: 1px solid #FFF;\\r\\n\\twidth: 4px;\\r\\n\\theight: 4px;\\r\\n\\tmargin: 0 2px;\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-exists {\\r\\n\\tbackground: var(--color-blue-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-day-marks-update {\\r\\n\\tbackground: var(--color-red-500);\\r\\n}\\r\\n\\r\\n.ui-datepicker-row-break {\\r\\n\\tdisplay: none;\\r\\n}\"","import { toRef, watch } from 'vue';\r\nimport Core from '@/core/core/core';\r\nimport UtilsDate from '@/core/utils/date';\r\n\r\nimport css from '@/components/forms/inputDate/datepicker.css?raw';\r\n\r\nCore.appendStyle(css);\r\n\r\nconst _window: any = window;\r\n\r\nconst $ = (el: HTMLInputElement) => {\r\n\tif (!_window?.jQuery?.ui?.datepicker) {\r\n\t\tconsole.info('Для работы datepicker требуется глобальная загрузка jQuery UI Datepicker');\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\t_window.jQuery.datepicker._defaults.dateFormat = Core.state.dateFormat.toLowerCase().replace('m', 'mm').replace('y', 'yy').replace('d', 'dd');\r\n\r\n\treturn _window.jQuery(el);\r\n};\r\n\r\nexport function connectDatepicker(el: HTMLInputElement, options: any) {\r\n\treturn $(el)?.datepicker(options);\r\n}\r\n\r\nlet dateFormatted;\r\nlet delimiter: string;\r\nlet dateNumbersCount: number;\r\nlet delimitersIndexes: number[];\r\n\r\nwatch(toRef(Core.state.dateFormat), () => {\r\n\t// генерация отформатированной даты, извлечение из нее разделителей и их индексов\r\n\tdateFormatted = UtilsDate.dateFormat('2000-01-01');\r\n\tdelimiter = dateFormatted.match(/\\D/)?.[0] ?? '-';\r\n\tdateNumbersCount = dateFormatted.replace(/\\D+/g, '').length;\r\n\tdelimitersIndexes = [];\r\n\r\n\tfor (let i = 0; i < dateFormatted.length; i++) {\r\n\t\tif (dateFormatted[i] === delimiter) {\r\n\t\t\tdelimitersIndexes.push(i);\r\n\t\t}\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Автоформат при вводе в поле с датой\r\n */\r\nexport function oninput(e: any) {\r\n\tlet selectionPos = e.target.selectionEnd;\r\n\tlet value = e.target.value;\r\n\r\n\t// разбить занчение на две половины - до и после каретки\r\n\t// удалить все символы, кроме цифр\r\n\tlet valueChunkLeft = value.substring(0, selectionPos).replace(/\\D+/g, '');\r\n\tlet valueChunkRight = value.substring(selectionPos).replace(/\\D+/g, '');\r\n\r\n\tlet extraNumbersCount = valueChunkLeft.length + valueChunkRight.length - dateNumbersCount;\r\n\tif (extraNumbersCount > 0) {\r\n\t\t// // количество цифр больше требуемого - удалить лишние\r\n\t\tvalueChunkLeft = valueChunkLeft.substring(0, dateNumbersCount);\r\n\r\n\t\tconst valueChunkRightMaxLength = dateNumbersCount - valueChunkLeft.length;\r\n\t\tvalueChunkRight = valueChunkRight.substring(valueChunkRight.length - valueChunkRightMaxLength);\r\n\t} else if (extraNumbersCount < 0) {\r\n\t\t// количество цифр меньше требуемого - добавить 0\r\n\t\tif (e.inputType === 'deleteContentForward') {\r\n\t\t\t// нажатие на delete - добавить к левой части для правильного позиционирования каретки\r\n\t\t\tvalueChunkLeft += '0'.repeat(-extraNumbersCount);\r\n\t\t} else {\r\n\t\t\tvalueChunkRight = '0'.repeat(-extraNumbersCount) + valueChunkRight;\r\n\t\t}\r\n\t}\r\n\r\n\tselectionPos = valueChunkLeft.length;\r\n\tvalue = valueChunkLeft + valueChunkRight;\r\n\r\n\t// вставить разделители\r\n\tfor (let i = 0; i < delimitersIndexes.length; i++) {\r\n\t\tconst delimiterIndex = delimitersIndexes[i];\r\n\r\n\t\tvalue = value.substring(0, delimiterIndex) + delimiter + value.substring(delimiterIndex);\r\n\r\n\t\t// сдвинуть каретку, если разделитель вставлен левее ее\r\n\t\tif (selectionPos >= delimiterIndex) {\r\n\t\t\tselectionPos++;\r\n\t\t}\r\n\t}\r\n\r\n\t// нажатие на backspace - если слева символ разделителя, перенести каретку за него\r\n\tif (e.inputType === 'deleteContentBackward' && value[selectionPos - 1] === delimiter) {\r\n\t\tselectionPos--;\r\n\t}\r\n\r\n\t// если значение изменилось - вставить его и переместить каретку\r\n\tif (value !== e.target.value) {\r\n\t\te.target.value = value;\r\n\t\te.target.selectionStart = selectionPos;\r\n\t\te.target.selectionEnd = selectionPos;\r\n\t}\r\n}"],"names":["css","Core","_window","$","el","_b","_a","connectDatepicker","options","dateFormatted","delimiter","dateNumbersCount","delimitersIndexes","vue","toRef","UtilsDate","i","oninput","e","selectionPos","value","valueChunkLeft","valueChunkRight","extraNumbersCount","valueChunkRightMaxLength","delimiterIndex"],"mappings":"6EAAe,MAAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCMfC,EAAAA,KAAK,YAAYD,CAAG,EAEpB,MAAME,EAAe,OAEfC,EAAKC,GAAyB,SACnC,GAAI,GAACC,GAAAC,EAAAJ,GAAA,YAAAA,EAAS,SAAT,YAAAI,EAAiB,KAAjB,MAAAD,EAAqB,YAAY,CACrC,QAAQ,KAAK,0EAA0E,EAEvF,MACD,CAEA,OAAAH,EAAQ,OAAO,WAAW,UAAU,WAAaD,OAAK,MAAM,WAAW,YAAY,EAAE,QAAQ,IAAK,IAAI,EAAE,QAAQ,IAAK,IAAI,EAAE,QAAQ,IAAK,IAAI,EAErIC,EAAQ,OAAOE,CAAE,CACzB,EAEgB,SAAAG,EAAkBH,EAAsBI,EAAc,OACrE,OAAOF,EAAAH,EAAEC,CAAE,IAAJ,YAAAE,EAAO,WAAWE,EAC1B,CAEA,IAAIC,EACAC,EACAC,EACAC,EAEJC,EAAA,MAAMC,EAAM,MAAAb,EAAA,KAAK,MAAM,UAAU,EAAG,IAAM,OAEzBQ,EAAAM,EAAA,UAAU,WAAW,YAAY,EACjDL,IAAYJ,EAAAG,EAAc,MAAM,IAAI,IAAxB,YAAAH,EAA4B,KAAM,IAC9CK,EAAmBF,EAAc,QAAQ,OAAQ,EAAE,EAAE,OACrDG,EAAoB,CAAA,EAEpB,QAASI,EAAI,EAAGA,EAAIP,EAAc,OAAQO,IACrCP,EAAcO,CAAC,IAAMN,GACxBE,EAAkB,KAAKI,CAAC,CAG3B,EAAG,CAAE,UAAW,EAAA,CAAM,EAKf,SAASC,EAAQC,EAAQ,CAC3B,IAAAC,EAAeD,EAAE,OAAO,aACxBE,EAAQF,EAAE,OAAO,MAIjBG,EAAiBD,EAAM,UAAU,EAAGD,CAAY,EAAE,QAAQ,OAAQ,EAAE,EACpEG,EAAkBF,EAAM,UAAUD,CAAY,EAAE,QAAQ,OAAQ,EAAE,EAElEI,EAAoBF,EAAe,OAASC,EAAgB,OAASX,EACzE,GAAIY,EAAoB,EAAG,CAETF,EAAAA,EAAe,UAAU,EAAGV,CAAgB,EAEvD,MAAAa,EAA2Bb,EAAmBU,EAAe,OACnEC,EAAkBA,EAAgB,UAAUA,EAAgB,OAASE,CAAwB,CAAA,MACnFD,EAAoB,IAE1BL,EAAE,YAAc,uBAEDG,GAAA,IAAI,OAAO,CAACE,CAAiB,EAE/CD,EAAkB,IAAI,OAAO,CAACC,CAAiB,EAAID,GAIrDH,EAAeE,EAAe,OAC9BD,EAAQC,EAAiBC,EAGzB,QAASN,EAAI,EAAGA,EAAIJ,EAAkB,OAAQI,IAAK,CAC5C,MAAAS,EAAiBb,EAAkBI,CAAC,EAElCI,EAAAA,EAAM,UAAU,EAAGK,CAAc,EAAIf,EAAYU,EAAM,UAAUK,CAAc,EAGnFN,GAAgBM,GACnBN,GAEF,CAGID,EAAE,YAAc,yBAA2BE,EAAMD,EAAe,CAAC,IAAMT,GAC1ES,IAIGC,IAAUF,EAAE,OAAO,QACtBA,EAAE,OAAO,MAAQE,EACjBF,EAAE,OAAO,eAAiBC,EAC1BD,EAAE,OAAO,aAAeC,EAE1B"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
define(["require","exports","vue"],function(N,b,o){var D,L;"use strict";var M=document.createElement("style");M.textContent=`.top-button{cursor:pointer;box-sizing:border-box;box-shadow:var(--top-button-box-shadow);border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-button-background-color);height:var(--top-forms-base-height);padding:0 var(--top-forms-padding);color:var(--top-button-color);line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,box-shadow .15s}.top-button:hover{box-shadow:var(--top-button-box-shadow-hover);background-color:var(--top-button-background-color-hover)}.top-button:active{box-shadow:var(--top-button-box-shadow-active);background-color:var(--top-button-background-color-active)}.top-button.top-active{box-shadow:var(--top-button-box-shadow-selected);background-color:var(--top-button-background-color-selected)}.top-button.top-button-progress{cursor:help;box-shadow:inset #00000080 0 0 64px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:32px 32px;animation:_progress_1f1nw_1 1s linear infinite}@keyframes _progress_1f1nw_1{0%{background-position-x:0px}to{background-position-x:32px}}a.top-button,button.top-button{min-width:100px;text-decoration:none}a.top-button,a.top-button:hover{min-width:var(--top-forms-base-height);text-decoration:none}.top-button[data-top-icon]:not(:empty),.top-button[data-top-icon2]:not(:empty){justify-content:flex-start;text-align:left}.top-button[data-top-icon]{padding-left:0}.top-button[data-top-icon2]{padding-right:var(--top-select_arrow-width)}.top-button[data-top-icon2]:after{margin-left:auto}.top-button:empty{min-width:var(--top-forms-base-height)}.top-button[data-top-icon]:empty,.top-button[data-top-icon2]:empty{padding:0}.top-button.top-color_blue{--top-button-background-color: var(--color-blue-500)}.top-button.top-color_green{--top-button-background-color: var(--color-green-500)}.top-button.top-color_orange{--top-button-background-color: var(--color-orange-500)}.top-button.top-color_red{--top-button-background-color: var(--color-red-500)}.top-button.top-color_pink{--top-button-background-color: var(--color-pink-500)}.top-button.top-color_theme{--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-color: var(--color-text-1);--top-button-background-color: transparent;--top-button-background-color-hover: var(--color-secondary-opacity);--top-button-background-color-active: var(--color-secondary-2-opacity);--top-button-background-color-selected: var(--color-secondary-2-opacity)}.top-button.top-color_theme.top-active{--top-icon-color: var(--color-text-2)}.top-button.top-style_outline{--top-button-box-shadow: none;--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-forms-border-color: var(--top-style_outline-color);--top-style_outline-color: var(--color-steel-400);--top-button-color: var(--top-style_outline-color);--top-button-background-color: var(--content-background-color);--top-button-background-color-hover: var(--color-theme-100);--top-button-background-color-active: var(--color-theme-150);--top-button-background-color-selected: var(--color-theme-125);--top-forms-border-width: 1px}.top-button.top-style_outline.top-color_theme{--top-button-color: var(--color-text)}.top-button.top-style_outline.top-color_blue{--top-style_outline-color: var(--color-blue-500)}.top-button.top-style_outline.top-color_green{--top-style_outline-color: var(--color-green-500)}.top-button.top-style_outline.top-color_orange{--top-style_outline-color: var(--color-orange-500)}.top-button.top-style_outline.top-color_red{--top-style_outline-color: var(--color-red-500)}.top-button.top-style_outline.top-color_pink{--top-style_outline-color: var(--color-pink-500)}.top-button.top-style_soft{--top-shadow-darken: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: var(--color-secondary-opacity);--top-button-background-color-hover: var(--color-secondary-2-opacity);--top-button-background-color-active: var(--color-secondary-3-opacity);--top-button-background-color-selected: var(--color-secondary-3-opacity)}.top-button.top-style_soft.top-color_blue{--top-button-color: var(--color-blue-500)}.top-button.top-style_soft.top-color_orange{--top-button-color: var(--color-orange-500)}.top-button.top-style_soft.top-color_green{--top-button-color: var(--color-green-500)}.top-button.top-style_soft.top-color_red{--top-button-color: var(--color-red-500)}.top-button.top-style_soft.top-color_pink{--top-button-color: var(--color-pink-500)}.top-button.top-style_transparent{--top-shadow-darken: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: transparent;--top-button-background-color-hover: transparent;--top-button-background-color-active: transparent;--top-button-background-color-selected: var(--color-steel-200)}.top-button.top-style_transparent:hover{opacity:.8}.top-button.top-style_transparent.top-color_blue{--top-button-color: var(--color-blue-450)}.top-button.top-style_transparent.top-color_green{--top-button-color: var(--color-green-450)}.top-button.top-style_transparent.top-color_orange{--top-button-color: var(--color-orange-450)}.top-button.top-style_transparent.top-color_red{--top-button-color: var(--color-red-450)}.top-button.top-style_transparent.top-color_pink{--top-button-color: var(--color-pink-450)}.top-button{--top-button-color: var(--color-white);--top-button-background-color: transparent;--top-button-background-color-hover: var(--top-button-background-color);--top-button-background-color-active: var(--top-button-background-color-hover);--top-button-background-color-selected: var(--top-button-background-color-hover);--top-button-box-shadow: none;--top-button-box-shadow-hover: var(--top-shadow-darken-2);--top-button-box-shadow-active: var(--top-shadow-darken-3);--top-button-box-shadow-selected: var(--top-shadow-darken-3);--top-forms-border-width: 0px;--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding))}.top-button.top-size_l{--top-forms-padding: var(--top-forms-padding_l);--top-forms-base-height: var(--top-forms-base-height_l)}.top-button.top-size_xl{--top-forms-padding: var(--top-forms-padding_xl);--top-forms-base-height: var(--top-forms-base-height_xl)}.top-forms-optionLabel{flex-grow:1}.top-forms-optionLabel_title{min-height:var(--top-forms-option-height);display:flex;align-items:center}.top-forms-optionLabel_title-disabled{color:var(--color-text-3)}.top-forms-optionLabel_description{color:var(--color-text-3);font-size:.85em;line-height:var(--top-forms-option-height)}.top-checkbox{cursor:pointer;display:inline-flex}.top-checkbox_input{cursor:inherit;border-radius:4px;background:var(--content-background-color);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-checkbox_input:before{content:" ";color:#fff;font-family:Topvisor-2;font-size:16px}.top-checkbox_input:hover{border-color:var(--top-forms-option-color);background:var(--color-theme-50)}.top-checkbox_input:checked,.top-checkbox_input:indeterminate{border-color:var(--top-forms-option-color);background:var(--top-forms-option-color)}.top-checkbox_input:checked:before{content:""}.top-checkbox_input:indeterminate:before{content:""}.top-checkbox_input:checked:hover,.top-checkbox_input:indeterminate:hover{border-color:var(--top-forms-option-color-hover);background:var(--top-forms-option-color-hover)}.top-checkbox_input:disabled{border-color:var(--color-line-1-opacity);background:var(--color-theme-50)}.top-checkbox_input:checked:disabled,.top-checkbox_input:indeterminate:disabled{border-color:transparent;background:var(--color-theme-400)}.top-checkbox_input.top-error{border-color:var(--color-negative)}.top-checkbox_input.top-error:hover{border-color:var(--color-negative-2)}.top-checkbox_input:checked.top-error,.top-checkbox_input:indeterminate.top-error{background:var(--color-negative)}.top-checkbox_input:checked.top-error:hover,.top-checkbox_input:indeterminate.top-error:hover{background:var(--color-negative-2)}.top-hint{--top-icon-size: 16px;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--content-background-color);padding:1px;color:var(--color-text-4);line-height:1;z-index:1;pointer-events:all}.top-hint:hover{color:var(--color-text-3)}.top-input{--top-forms_clear-width: 0px;width:180px;position:relative;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-input_input{background:var(--top-forms-background-color);height:var(--top-forms-base-height);padding:0;padding-right:max(var(--top-forms-padding),calc(var(--top-icon2-width) + var(--top-forms_clear-width)));padding-left:max(var(--top-forms-padding),var(--top-icon-width))}.top-input_input:hover{background:var(--top-forms-background-color-hover)}.top-input_input:focus{outline-color:var(--color-theme-75);outline-offset:0}.top-input[data-top-icon]:before,.top-input[data-top-icon2]:after{--top-icon-color: var(--color-text-secondary);--top-icon2-color: var(--color-text-secondary);position:absolute;z-index:3}.top-input[data-top-icon]:before{left:0}.top-input[data-top-icon2]:after{right:0}.top-input-withCleaner{--top-forms_clear-width: 24px}.top-input_cleaner{--top-icon-size: 20px;--top-icon-width: 20px;--top-icon-color: var(--color-text-3);cursor:pointer;border-radius:50%;width:24px;height:24px;position:absolute;right:calc(var(--top-forms-border-width) + max(var(--top-icon2-width),var(--top-forms-padding) / 2));z-index:1;display:flex;align-items:center;justify-content:center}.top-input_cleaner:hover{--top-icon-color: var(--color-text-2)}.top-input_input{width:50%;flex-grow:1}.top-input-datepicker{width:calc(105px + var(--top-icon-width) + var(--top-icon2-width))}.top-input_input-date{opacity:0;position:absolute;inset:0;z-index:-1}.top-input_input-date::-webkit-inner-spin-button{display:none}.top-input_input-date::-webkit-calendar-picker-indicator{opacity:0}:root{--top-radio-background-color: var(--content-background-color);--top-radio-background-color-hover: var(--top-radio-background-color);--top-radio-background-color-active: var(--top-radio-background-color)}.top-radio{cursor:pointer}.top-radio_input{border-radius:50%;background:var(--content-background-color);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radio_input:hover{border-color:var(--top-forms-option-color);background:var(--color-theme-50)}.top-radio_input:checked{border-color:var(--top-forms-option-color);border-width:5px}.top-radio_input:checked:hover{border-color:var(--top-forms-option-color-hover)}.top-radio_input:disabled{border-color:var(--color-line-1-opacity);background:var(--color-theme-50)}.top-radio_input:checked:disabled{border-color:var(--color-theme-400)}.top-radio_input.top-error{border-color:var(--color-negative)}.top-radio_input.top-error:hover{border-color:var(--color-negative-2)}.top-checkboxSwitcher{cursor:pointer;display:inline-flex;gap:4px}.top-checkboxSwitcher_input{border-radius:9px;border:none;background:var(--color-theme-100);width:36px;height:18px;position:relative}.top-checkboxSwitcher_input:before{content:"";border-radius:50%;background:var(--color-white);width:12px;height:12px;margin:3px;position:absolute;top:0;left:0;transition:left .1s}.top-checkboxSwitcher_input:hover{background:var(--color-theme-150)}.top-checkboxSwitcher_input:checked{background:var(--top-forms-option-color)}.top-checkboxSwitcher_input:checked:hover{background:var(--top-forms-option-color-hover)}.top-checkboxSwitcher_input:checked:before{left:50%}.top-checkboxSwitcher_input:disabled{background:var(--color-theme-400)}.top-checkboxSwitcher_input.top-error{background:var(--color-negative)}.top-checkboxSwitcher_input.top-error:hover{background:var(--color-negative-2)}.top-textarea{width:180px;display:inline-flex;align-items:center;position:relative}.top-textarea_textarea{background:var(--top-forms-background-color);width:100%;padding:var(--top-forms-padding);resize:none}.top-textarea_textarea:hover{background:var(--top-forms-background-color-hover)}.top-textarea_textarea:focus{outline-color:var(--color-theme-75);outline-offset:0px}.top-textarea_textarea.top-textarea_textarea-expandable{width:100%;height:100%;overflow:hidden;position:absolute;top:0;left:0}.top-textarea_pseudoContent{box-sizing:border-box;min-height:var(--c838a038);padding:var(--top-forms-padding);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;opacity:0;z-index:-1}.top-textarea_hint{position:absolute;top:2px;right:2px}.top-select{--top-icon-color: var(--color-text-3);--top-icon2-color: var(--color-text-2);height:auto;width:180px;min-height:var(--top-forms-base-height);max-width:100%;vertical-align:middle;display:inline-flex;align-items:center;cursor:pointer}.top-select-error{--top-icon-color: var(--color-negative);--top-icon2-color: var(--color-negative)}.top-select_select{background-color:var(--top-forms-background-color);padding-left:var(--top-forms-padding);text-indent:clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)));width:100%;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;overflow:hidden}.top-select_select:focus{outline-color:var(--color-theme-75);outline-offset:0px}.top-select_select:disabled{background:var(--color-theme-50)}.top-select optgroup{color:var(--color-text-1);font-style:normal}.top-select option{background:var(--content-background-color);color:var(--color-text-1)}@-moz-document url-prefix(){.top-select_select{text-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)}}@media only screen and (min-width: 900px){.top-select_changer{border-radius:100%;width:0;transform:translate(-44px);color:var(--color-text-secondary-2);font-size:16px;line-height:1;display:none;z-index:2;order:4}.top-select_changer:hover{color:var(--color-primary)}.top-select_changer:after{content:"";background-color:var(--top-forms-background-color);font-family:Topvisor-2}.top-select:hover>.top-select_changer{display:block}}
|
|
2
|
-
`,document.head.appendChild(M);class k{static isRetina(){return"devicePixelRatio"in window&&window.devicePixelRatio>1}static isMobile(){return!!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i)}static isApp(){return navigator.userAgent.indexOf("Topvisor_App")!=-1}static isMacOS(){return navigator.userAgent.indexOf("Mac OS X")!==-1}static isSafari(){const e=/Chrome|Android/.test(navigator.userAgent);let a=/Safari/.test(navigator.userAgent);return e&&a&&(a=!1),a}static getCommandKeyLabel(){return this.isMacOS()?"⌘":"Ctrl"}}const F=100;let S;const _=new Map,v={width:window.innerWidth,height:window.innerHeight};function T(l){_.set(l,l)}function P(l){_.delete(l)}function A(l){clearTimeout(S),S=setTimeout(function(){l.topEvent={widthDiff:v.width-window.innerWidth,hightDiff:v.height-window.innerHeight},v.width=window.innerWidth,v.height=window.innerHeight,_.forEach(e=>e(l))},F)}window.addEventListener("resize",A);const V={addOnReize:T,removeOnResize:P},R={widthForMobile:900,dateFormat:"Y-m-d",gmt:(D=new Date().toString().match(/GMT(\S+)/))==null?void 0:D[1]},W={isMobile:!1,isMobileUA:!1,isRetina:!1,isApp:!1,isLandscape:!0,isPortrait:!1,size:0,dateFormat:"Y-m-d",gmt:(L=new Date().toString().match(/GMT(\S+)/))==null?void 0:L[1]},y=window,x=l=>{var e,a;if(!((a=(e=y==null?void 0:y.jQuery)==null?void 0:e.ui)!=null&&a.tooltip)){console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");return}return y.jQuery(l)},z=(l,e)=>{var r;const a=l.value??{};return a.content??=(r=e.props)==null?void 0:r.title,a.content=String(a.content).replace(/\r\n|\r|\n/g,"<br>"),a.position??={my:"bottom-18px",at:"top center"},a},U={mounted(l,e,a){var r;(r=x(l))==null||r.tooltip(z(e,a))},updated(l,e,a,r){var n;const t=z(e,a),s=(n=x(l))==null?void 0:n.tooltip("instance");s&&(s.options={...s.options,...t})},unmounted(l,e,a){var r;(r=x(l))==null||r.tooltip("destroy")}},B=window;class c{static L=o.reactive({Not_date:"Not date"});static page=(B==null?void 0:B.page)||{};static options=R;static state=o.reactive({...W});static matchMediaIsMobile;static appendStyle(e,a=""){let r="all";a==="m"&&(r="(max-width: "+this.options.widthForMobile+"px)"),a==="pc"&&(r="(min-width: "+this.options.widthForMobile+"px)");const t=document.createElement("style");t.innerHTML=e,t.media=r,document.head.append(t)}static install(e,a){c.defineOptions(a),e.provide("top-core",c),this.installDirectives(e)}static installDirectives(e){e.directive("top-tooltip",U)}static defineOptions(e){e!=null&&e.widthForMobile&&(this.options.widthForMobile=e.widthForMobile),e!=null&&e.dateFormat&&(this.options.dateFormat=e.dateFormat),e!=null&&e.gmt&&(this.options.gmt=e.gmt),c.setState()}static setState(){c.matchMediaIsMobile=window.matchMedia(`(max-width: ${c.options.widthForMobile}px)`),c.state.isMobileUA=k.isMobile(),c.state.isRetina=k.isRetina(),c.state.isApp=k.isApp(),c.state.dateFormat=this.options.dateFormat,c.state.gmt=this.options.gmt,c.setStateByWindowSize(),V.addOnReize(c.onResize),c.onResize(),c.saveToCookie()}static onResize(){c.setStateByWindowSize(),document.documentElement.style.setProperty("--100vh",window.innerHeight+"px")}static setStateByWindowSize(){var e;c.state.isMobile=!!((e=c.matchMediaIsMobile)!=null&&e.matches),c.state.isLandscape=window.innerWidth>window.innerHeight,c.state.isPortrait=!c.state.isLandscape,c.state.size=window.innerWidth>window.innerHeight?window.innerWidth:window.innerHeight,c.saveToCookie()}static saveToCookie(){const e=[1,window.innerWidth,window.innerHeight,window.devicePixelRatio,Number(c.state.isMobile),Number(c.state.isRetina)];document.cookie="device="+e.join(",")+"; path=/;"}}class g{static stringToDate(e){return e.indexOf("T")===-1&&(e.length==10&&(e+=" 00:00:00"),e=e.replace(" ","T")+c.state.gmt),new Date(e)}static ms2Date(e,a=!0){let r;e!=null?r=new Date(e):r=new Date;const t=r.getDate().toString().padStart(2,"0"),s=String(r.getMonth()+1).padStart(2,"0"),n=r.getFullYear(),i=r.getHours().toString().padStart(2,"0"),p=r.getMinutes().toString().padStart(2,"0"),d=r.getSeconds().toString().padStart(2,"0");return r=n+"-"+s+"-"+t+" "+i+":"+p+":"+d,a&&(r=this.dateFormat(r)),r}static dateFormat(e,a=2,r=c.L.Not_date){if((!e||e.substring(0,10)==="0000-00-00")&&r&&r!=="0000-00-00")return r;const t=c.state.dateFormat.toLowerCase();let s=e.substring(0,10);s.length===7&&(s+="-01"),s+=" 00:00",s=s.replace(/-/g,"/");const n=new Date(s);if(isNaN(Number(n)))return r;let i=t.replace("y",String(n.getFullYear()).padStart(2,"0")).replace("m",String(n.getMonth()+1).padStart(2,"0")).replace("d",String(n.getDate()).padStart(2,"0"));if(e.length>10)switch(a){case 1:i+=" "+e.substring(11,13);break;case 2:i+=" "+e.substring(11,16);break;case 3:i+=" "+e.substring(11,19);break}return i}static dateUnformat(e,a=c.L.Not_date){if(!e)return a;if(e.match(/\d\d\d\d-\d\d-\d\d/))return e;const r=c.state.dateFormat.toLowerCase(),t=e.split(/\W/),s=r.split(/\W/);let n="",i="",p="";s.forEach((u,h)=>{switch(u){case"d":n=t[h];break;case"m":i=t[h];break;case"y":p=t[h];break}});let d=p+"-"+i+"-"+n;return d.match(/\d\d\d\d-\d\d-\d\d/)||(console.info("Неверный формат даты, будет возращена текущая дата, "+d),d=this.ms2Date(new Date().getTime(),!1).substring(0,10)),d}}const H=o.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(l){const e=l,a=o.computed(()=>e.href?"a":"button"),r=o.computed(()=>e.isSubmit?"submit":void 0);return(t,s)=>(o.openBlock(),o.createBlock(o.resolveDynamicComponent(a.value),{class:o.normalizeClass({"top-active":t.isActive,"top-disabled":t.disabled,"top-forms-focusable":!t.disabled,"top-button":!0,"top-button-progress":t.isProgress,[`top-size_${t.size}`]:!!t.size,[`top-color_${t.color}`]:!0,[`top-style_${t.styling}`]:!!t.styling}),name:t.name,title:t.title,href:t.href,type:r.value,"data-top-icon":t.icon||void 0,"data-top-icon2":t.icon2||void 0,disabled:t.disabled||void 0,inProgress:t.isProgress},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default",{},()=>[o.createTextVNode(o.toDisplayString(t.icon?"":"Button"),1)])]),_:3},8,["class","name","title","href","type","data-top-icon","data-top-icon2","disabled","inProgress"]))}}),I={"top-button":"top-button","top-active":"top-active","top-button-progress":"top-button-progress",progress:"_progress_1f1nw_1","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"},m=(l,e)=>{const a=l.__vccOpts||l;for(const[r,t]of e)a[r]=t;return a},O=m(H,[["__cssModules",{$style:I}]]),j={class:"top-forms-optionLabel"},Y={key:0,class:"top-forms-optionLabel_description"},w=m(o.defineComponent({__name:"controlLabel",props:{title:{},description:{},disabled:{type:Boolean}},setup(l){return(e,a)=>(o.openBlock(),o.createElementBlock("div",j,[o.createElementVNode("div",{class:o.normalizeClass({"top-forms-optionLabel_title":!0,"top-forms-optionLabel_title-disabled":e.disabled})},o.toDisplayString(e.title),3),e.description?(o.openBlock(),o.createElementBlock("div",Y,o.toDisplayString(e.description),1)):o.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"}}]]),G=["name","value","indeterminate","disabled"],K=m(o.defineComponent({__name:"checkbox",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},title:{},description:{},disabled:{type:Boolean},indeterminate:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-checkbox":!0,["top-checkbox_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"checkbox",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkbox_input":!0,"top-error":t.isError&&!t.disabled}),name:t.name,"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),value:t.value,indeterminate:t.indeterminate,disabled:t.disabled},null,10,G),[[o.vModelCheckbox,r.value]]),t.title?(o.openBlock(),o.createBlock(w,{key:0,title:t.title,description:t.description,disabled:t.disabled},null,8,["title","description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkbox":"top-checkbox","top-checkbox_input":"top-checkbox_input","top-error":"top-error"}}]]),Q=["title"],E=m(o.defineComponent({__name:"hint",props:{hint:{}},setup(l){return(e,a)=>(o.openBlock(),o.createElementBlock("span",{class:"top-hint","data-top-icon":"",title:e.hint},null,8,Q))}}),[["__cssModules",{$style:{"top-hint":"top-hint"}}]]),q=["data-top-icon","data-top-icon2"],X=["name","title","placeholder","disabled","readonly"],J=["onClick"],Z={key:1,class:"top-formsCaption"},$=m(o.defineComponent({inheritAttrs:!1,__name:"input",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},title:{},captionType:{default:""},size:{default:"s"},icon:{},icon2:{},addCleaner:{type:Boolean},isError:{type:Boolean},modificator:{}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(n){e("update:modelValue",n)}}),t=o.computed(()=>a.addCleaner&&!a.title||a.captionType!==""?"":a.title),s=()=>{e("update:modelValue","")};return(n,i)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-input":!0,["top-size_"+n.size]:!0,"top-disabled":n.disabled,["top-input-"+n.modificator]:!!n.modificator,"top-input-withCleaner":n.addCleaner&&r.value&&r.value!=="0000-00-00","top-formsCaptionWrapper":n.captionType!=="","top-formsCaptionWrapper-always":n.captionType==="top"}),"data-top-icon":n.icon,"data-top-icon2":n.icon2},[o.withDirectives(o.createElementVNode("input",o.mergeProps({type:"text",class:{"top-input_input":!0,["top-input_input-"+n.modificator]:!!n.modificator,"top-forms-focusable":!n.disabled,"top-error":n.isError},autocomplete:"off_always",name:n.name,"onUpdate:modelValue":i[0]||(i[0]=p=>r.value=p),title:n.title,placeholder:t.value,disabled:n.disabled,readonly:n.readonly,onKeydown:i[1]||(i[1]=o.withKeys(o.withModifiers(()=>(n.addCleaner||!!n.$slots.btn)&&s(),["stop"]),["esc"]))},n.$attrs),null,16,X),[[o.vModelText,r.value]]),n.addCleaner&&r.value&&r.value!=="0000-00-00"?(o.openBlock(),o.createElementBlock("span",{key:0,class:"top-input_cleaner","data-top-icon":"",onClick:o.withModifiers(s,["prevent"])},null,8,J)):o.createCommentVNode("",!0),n.captionType!==""?(o.openBlock(),o.createElementBlock("span",Z,o.toDisplayString(n.title),1)):o.createCommentVNode("",!0),o.renderSlot(n.$slots,"default")],10,q))}}),[["__cssModules",{$style:{"top-input":"top-input","top-input_input":"top-input_input","top-input-withCleaner":"top-input-withCleaner","top-input_cleaner":"top-input_cleaner"}}]]),oo=["modelValue"],to=!!document.documentElement.ontouchstart&&!!document.createElement("input").showPicker;let C=l=>{};const eo=m(o.defineComponent({__name:"inputDate",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},title:{},captionType:{},size:{},icon:{},icon2:{default:""},addCleaner:{type:Boolean},isError:{type:Boolean},modificator:{}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.ref(),t=o.computed({get(){return g.dateFormat(a.modelValue,2,"0000-00-00")},set(p){p=g.dateUnformat(p,"0000-00-00"),e("update:modelValue",p)}});let s=p=>{C(p)},n=p=>{const d=g.dateUnformat(p.target.value),u=g.dateFormat(d);if(!u||u===c.L.Not_date||p.target.value!==u){p.target.value=t.value;return}t.value=p.target.value};async function i(p){const d=await new Promise((h,f)=>N(["./datepicker-f94ba423.amd"],h,f));C=d.oninput;const u=d.connectDatepicker(p.target,{onSelect:()=>n(p)});u&&(u.datepicker("show"),o.onUnmounted(()=>u.datepicker("destroy")))}return(p,d)=>o.unref(to)?(o.openBlock(),o.createBlock(o.unref($),o.mergeProps({key:0},p.$props,{modelValue:t.value,readonly:"",onClick:d[1]||(d[1]=u=>r.value.showPicker())}),{default:o.withCtx(()=>[o.createElementVNode("input",{ref_key:"el",ref:r,type:"date",class:"top-input_input-date",modelValue:p.modelValue,onChange:d[0]||(d[0]=u=>t.value=u.target.value),tabindex:"-1"},null,40,oo)]),_:1},16,["modelValue"])):(o.openBlock(),o.createBlock(o.unref($),o.mergeProps({key:1},p.$props,{modelValue:t.value,"onUpdate:modelValue":d[2]||(d[2]=u=>u===""?t.value="":""),onInput:o.unref(s),onFocusOnce:i,onChange:o.unref(n),modificator:"datepicker"}),null,16,["modelValue","onInput","onChange"]))}}),[["__cssModules",{$style:{"top-input-datepicker":"top-input-datepicker","top-input_input-date":"top-input_input-date"}}]]),ro=["name","value","disabled"],ao=m(o.defineComponent({__name:"radio",props:{modelValue:{},value:{},name:{},title:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-radio":!0,["top-radio_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"radio",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-radio_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),name:t.name,value:t.value,disabled:t.disabled},null,10,ro),[[o.vModelRadio,r.value]]),t.title?(o.openBlock(),o.createBlock(w,{key:0,title:t.title,description:t.description,disabled:t.disabled},null,8,["title","description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-radio":"top-radio","top-radio_input":"top-radio_input","top-error":"top-error"}}]]),no=["name","value","disabled"],io=m(o.defineComponent({__name:"switcher",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},title:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-checkboxSwitcher":!0,"top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"checkbox",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkboxSwitcher_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),name:t.name,value:t.value,disabled:t.disabled},null,10,no),[[o.vModelCheckbox,r.value]]),t.title?(o.openBlock(),o.createBlock(w,{key:0,title:t.title,description:t.description,disabled:t.disabled},null,8,["title","description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkboxSwitcher":"top-checkboxSwitcher","top-checkboxSwitcher_input":"top-checkboxSwitcher_input","top-error":"top-error"}}]]),lo=["name","placeholder","disabled","readonly","rows"],so={key:0,class:"top-textarea_pseudoContent"},po=m(o.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(l,{emit:e}){const a=l;o.useCssVars(t=>({c838a038:t.minHeight+"px"}));const r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>{const n=o.resolveDirective("top-tooltip");return o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-textarea":!0,["top-textarea-"+t.name]:t.name,"top-disabled":t.disabled})},[o.withDirectives(o.createElementVNode("textarea",o.mergeProps({type:"text",class:{"top-forms-focusable":!t.disabled,"top-textarea_textarea":!0,"top-textarea_textarea-expandable":t.expandable,"top-error":t.isError},autocomplete:"off_always",name:t.name,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,rows:t.expandable?void 0:t.rows},t.$attrs,{"onUpdate:modelValue":s[0]||(s[0]=i=>r.value=i)}),null,16,lo),[[o.vModelText,r.value]]),t.expandable?(o.openBlock(),o.createElementBlock("div",so,o.toDisplayString(r.value+" "),1)):o.createCommentVNode("",!0),t.hint?o.withDirectives((o.openBlock(),o.createBlock(E,{key:1,class:"top-textarea_hint",hint:t.hint},null,8,["hint"])),[[n]]):o.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"}}]]),co=["data-value","data-top-icon","data-top-icon2"],uo=["name","disabled"],bo=["label","disabled"],mo=["value","disabled"],ho=["value","disabled","selected"],go={key:1,class:"top-formsCaption"},fo=m(o.defineComponent({__name:"select",props:{modelValue:{},options:{},name:{},disabled:{type:Boolean},icon:{},size:{default:"s"},addChanger:{type:Boolean},title:{},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(i){e("update:modelValue",i)}}),t=o.computed(()=>{var i;return(i=s.value.get(r.value))==null?void 0:i.icon}),s=o.computed(()=>{const i=new Map;return a.options.forEach(p=>{if(!p.disabled){if(p.children){p.children.forEach(d=>{d.disabled||i.set(d.value,d)});return}i.set(p.value,p)}}),i});o.watch([o.toRef(a.modelValue),s],()=>{(r.value===null||r.value===void 0)&&s.value.size&&(console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"),r.value=s.value.keys().next().value)},{immediate:!0});const n=()=>{const i=[...s.value.keys()],d=(i.indexOf(r.value)+1)%i.length;r.value=i[d]};return(i,p)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-select":!0,["top-select-"+i.name]:i.name,["top-size_"+i.size]:!0,"top-formsCaptionWrapper":!!i.title,"top-select-error":i.isError,"top-disabled":i.disabled}),"data-value":r.value,"data-top-icon":i.icon,"data-top-icon2":t.value},[o.withDirectives(o.createElementVNode("select",{class:o.normalizeClass({"top-forms-focusable":!i.disabled,"top-select_select":!0,"top-select_arrow":!0,"top-error":i.isError}),name:i.name,disabled:i.disabled,"onUpdate:modelValue":p[0]||(p[0]=d=>r.value=d)},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.options,([d,u])=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[u.children?(o.openBlock(),o.createElementBlock("optgroup",{key:"group_"+u.value,label:u.title,disabled:u.disabled},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(u.children,([h,f])=>(o.openBlock(),o.createElementBlock("option",{key:h,value:f.value,disabled:f.disabled},o.toDisplayString(f.title),9,mo))),128))],8,bo)):(o.openBlock(),o.createElementBlock("option",{key:d,value:u.value,disabled:u.disabled,selected:u.value===r.value},o.toDisplayString(u.title),9,ho))],64))),256))],10,uo),[[o.vModelSelect,r.value]]),i.addChanger&&s.value.size&&!i.disabled?(o.openBlock(),o.createElementBlock("span",{key:0,class:"top-select_changer",onClick:n})):o.createCommentVNode("",!0),i.title?(o.openBlock(),o.createElementBlock("span",go,o.toDisplayString(i.title),1)):o.createCommentVNode("",!0)],10,co))}}),[["__cssModules",{$style:{"top-select":"top-select","top-select-error":"top-select-error","top-select_select":"top-select_select","top-select_changer":"top-select_changer"}}]]);b.Button=O,b.ControlLabel=w,b.Core=c,b.Device=k,b.Events=V,b.Hint=E,b.Input=$,b.Textarea=po,b.UtilsDate=g,b._export_sfc=m,b.checkbox=K,b.inputDate=eo,b.radio=ao,b.select=fo,b.switcher=io});
|
|
3
|
-
//# sourceMappingURL=forms-
|
|
1
|
+
define(["require","exports","vue"],function(N,b,o){var D,L;"use strict";var S=document.createElement("style");S.textContent=`.top-button{cursor:pointer;box-sizing:border-box;box-shadow:var(--top-button-box-shadow);border-radius:var(--top-forms-radius);border:var(--top-forms-border-width) solid var(--top-forms-border-color);background-color:var(--top-button-background-color);height:var(--top-forms-base-height);padding:0 var(--top-forms-padding);color:var(--top-button-color);line-height:1;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,box-shadow .15s}.top-button:hover{box-shadow:var(--top-button-box-shadow-hover);background-color:var(--top-button-background-color-hover)}.top-button:active{box-shadow:var(--top-button-box-shadow-active);background-color:var(--top-button-background-color-active)}.top-button.top-active{box-shadow:var(--top-button-box-shadow-selected);background-color:var(--top-button-background-color-selected)}.top-button.top-button-progress{cursor:help;box-shadow:inset #00000080 0 0 64px;background-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-size:32px 32px;animation:_progress_1f1nw_1 1s linear infinite}@keyframes _progress_1f1nw_1{0%{background-position-x:0px}to{background-position-x:32px}}a.top-button,button.top-button{min-width:100px;text-decoration:none}a.top-button,a.top-button:hover{min-width:var(--top-forms-base-height);text-decoration:none}.top-button[data-top-icon]:not(:empty),.top-button[data-top-icon2]:not(:empty){justify-content:flex-start;text-align:left}.top-button[data-top-icon]{padding-left:0}.top-button[data-top-icon2]{padding-right:var(--top-select_arrow-width)}.top-button[data-top-icon2]:after{margin-left:auto}.top-button:empty{min-width:var(--top-forms-base-height)}.top-button[data-top-icon]:empty,.top-button[data-top-icon2]:empty{padding:0}.top-button.top-color_blue{--top-button-background-color: var(--color-blue-500)}.top-button.top-color_green{--top-button-background-color: var(--color-green-500)}.top-button.top-color_orange{--top-button-background-color: var(--color-orange-500)}.top-button.top-color_red{--top-button-background-color: var(--color-red-500)}.top-button.top-color_pink{--top-button-background-color: var(--color-pink-500)}.top-button.top-color_theme{--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-icon-color: var(--color-text-2);--top-icon2-color: var(--color-text-2);--top-button-color: var(--color-text-1);--top-button-background-color: transparent;--top-button-background-color-hover: var(--color-secondary-opacity);--top-button-background-color-active: var(--color-secondary-2-opacity);--top-button-background-color-selected: var(--color-secondary-2-opacity)}.top-button.top-color_theme.top-active{--top-icon-color: var(--color-text-2)}.top-button.top-style_outline{--top-button-box-shadow: none;--top-button-box-shadow-hover: none;--top-button-box-shadow-active: none;--top-button-box-shadow-selected: none;--top-forms-border-color: var(--top-style_outline-color);--top-style_outline-color: var(--color-steel-400);--top-button-color: var(--top-style_outline-color);--top-button-background-color: var(--content-background-color);--top-button-background-color-hover: var(--color-theme-100);--top-button-background-color-active: var(--color-theme-150);--top-button-background-color-selected: var(--color-theme-125);--top-forms-border-width: 1px}.top-button.top-style_outline.top-color_theme{--top-button-color: var(--color-text)}.top-button.top-style_outline.top-color_blue{--top-style_outline-color: var(--color-blue-500)}.top-button.top-style_outline.top-color_green{--top-style_outline-color: var(--color-green-500)}.top-button.top-style_outline.top-color_orange{--top-style_outline-color: var(--color-orange-500)}.top-button.top-style_outline.top-color_red{--top-style_outline-color: var(--color-red-500)}.top-button.top-style_outline.top-color_pink{--top-style_outline-color: var(--color-pink-500)}.top-button.top-style_soft{--top-shadow-darken: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: var(--color-secondary-opacity);--top-button-background-color-hover: var(--color-secondary-2-opacity);--top-button-background-color-active: var(--color-secondary-3-opacity);--top-button-background-color-selected: var(--color-secondary-3-opacity)}.top-button.top-style_soft.top-color_blue{--top-button-color: var(--color-blue-500)}.top-button.top-style_soft.top-color_orange{--top-button-color: var(--color-orange-500)}.top-button.top-style_soft.top-color_green{--top-button-color: var(--color-green-500)}.top-button.top-style_soft.top-color_red{--top-button-color: var(--color-red-500)}.top-button.top-style_soft.top-color_pink{--top-button-color: var(--color-pink-500)}.top-button.top-style_transparent{--top-shadow-darken: none;--top-shadow-darken-2: none;--top-shadow-darken-3: none;--top-button-color: var(--color-text);--top-button-background-color: transparent;--top-button-background-color-hover: transparent;--top-button-background-color-active: transparent;--top-button-background-color-selected: var(--color-steel-200)}.top-button.top-style_transparent:hover{opacity:.8}.top-button.top-style_transparent.top-color_blue{--top-button-color: var(--color-blue-450)}.top-button.top-style_transparent.top-color_green{--top-button-color: var(--color-green-450)}.top-button.top-style_transparent.top-color_orange{--top-button-color: var(--color-orange-450)}.top-button.top-style_transparent.top-color_red{--top-button-color: var(--color-red-450)}.top-button.top-style_transparent.top-color_pink{--top-button-color: var(--color-pink-450)}.top-button{--top-button-color: var(--color-white);--top-button-background-color: transparent;--top-button-background-color-hover: var(--top-button-background-color);--top-button-background-color-active: var(--top-button-background-color-hover);--top-button-background-color-selected: var(--top-button-background-color-hover);--top-button-box-shadow: none;--top-button-box-shadow-hover: var(--top-shadow-darken-2);--top-button-box-shadow-active: var(--top-shadow-darken-3);--top-button-box-shadow-selected: var(--top-shadow-darken-3);--top-forms-border-width: 0px;--top-icon-width: calc(var(--top-icon-size) + var(--top-forms-padding));--top-icon2-width: calc(var(--top-icon2-size) + var(--top-forms-padding))}.top-button.top-size_l{--top-forms-padding: var(--top-forms-padding_l);--top-forms-base-height: var(--top-forms-base-height_l)}.top-button.top-size_xl{--top-forms-padding: var(--top-forms-padding_xl);--top-forms-base-height: var(--top-forms-base-height_xl)}.top-forms-optionLabel{flex-grow:1}.top-forms-optionLabel_title{min-height:var(--top-forms-option-height);display:flex;align-items:center}.top-forms-optionLabel_title-disabled{color:var(--color-text-3)}.top-forms-optionLabel_description{color:var(--color-text-3);font-size:.85em;line-height:var(--top-forms-option-height)}.top-checkbox{cursor:pointer;display:inline-flex}.top-checkbox_input{cursor:inherit;border-radius:4px;background:var(--content-background-color);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-checkbox_input:before{content:" ";color:#fff;font-family:Topvisor-2;font-size:16px}.top-checkbox_input:hover{border-color:var(--top-forms-option-color);background:var(--color-theme-50)}.top-checkbox_input:checked,.top-checkbox_input:indeterminate{border-color:var(--top-forms-option-color);background:var(--top-forms-option-color)}.top-checkbox_input:checked:before{content:""}.top-checkbox_input:indeterminate:before{content:""}.top-checkbox_input:checked:hover,.top-checkbox_input:indeterminate:hover{border-color:var(--top-forms-option-color-hover);background:var(--top-forms-option-color-hover)}.top-checkbox_input:disabled{border-color:var(--color-line-1-opacity);background:var(--color-theme-50)}.top-checkbox_input:checked:disabled,.top-checkbox_input:indeterminate:disabled{border-color:transparent;background:var(--color-theme-400)}.top-checkbox_input.top-error{border-color:var(--color-negative)}.top-checkbox_input.top-error:hover{border-color:var(--color-negative-2)}.top-checkbox_input:checked.top-error,.top-checkbox_input:indeterminate.top-error{background:var(--color-negative)}.top-checkbox_input:checked.top-error:hover,.top-checkbox_input:indeterminate.top-error:hover{background:var(--color-negative-2)}.top-hint{--top-icon-size: 16px;--top-icon-width: var(--top-icon-size);border-radius:50%;background:var(--content-background-color);padding:1px;color:var(--color-text-4);line-height:1;z-index:1;pointer-events:all}.top-hint:hover{color:var(--color-text-3)}.top-input{--top-forms_clear-width: 0px;width:180px;position:relative;display:inline-flex;align-items:center;gap:var(--top-gap-1)}.top-input_input{background:var(--top-forms-background-color);height:var(--top-forms-base-height);padding:0;padding-right:max(var(--top-forms-padding),calc(var(--top-icon2-width) + var(--top-forms_clear-width)));padding-left:max(var(--top-forms-padding),var(--top-icon-width))}.top-input_input:hover{background:var(--top-forms-background-color-hover)}.top-input_input:focus{outline-color:var(--color-theme-75);outline-offset:0}.top-input[data-top-icon]:before,.top-input[data-top-icon2]:after{--top-icon-color: var(--color-text-secondary);--top-icon2-color: var(--color-text-secondary);position:absolute;z-index:3}.top-input[data-top-icon]:before{left:0}.top-input[data-top-icon2]:after{right:0}.top-input-withCleaner{--top-forms_clear-width: 24px}.top-input_cleaner{--top-icon-size: 20px;--top-icon-width: 20px;--top-icon-color: var(--color-text-3);cursor:pointer;border-radius:50%;width:24px;height:24px;position:absolute;right:calc(var(--top-forms-border-width) + max(var(--top-icon2-width),var(--top-forms-padding) / 2));z-index:1;display:flex;align-items:center;justify-content:center}.top-input_cleaner:hover{--top-icon-color: var(--color-text-2)}.top-input_input{width:50%;flex-grow:1}.top-input-datepicker{width:calc(105px + var(--top-icon-width) + var(--top-icon2-width))}.top-input_input-date{opacity:0;position:absolute;inset:0;z-index:-1}.top-input_input-date::-webkit-inner-spin-button{display:none}.top-input_input-date::-webkit-calendar-picker-indicator{opacity:0}:root{--top-radio-background-color: var(--content-background-color);--top-radio-background-color-hover: var(--top-radio-background-color);--top-radio-background-color-active: var(--top-radio-background-color)}.top-radio{cursor:pointer}.top-radio_input{border-radius:50%;background:var(--content-background-color);border:1px solid var(--top-forms-border-color);width:calc(var(--top-forms-option-height) - 3px * 2);height:calc(var(--top-forms-option-height) - 3px * 2)}.top-radio_input:hover{border-color:var(--top-forms-option-color);background:var(--color-theme-50)}.top-radio_input:checked{border-color:var(--top-forms-option-color);border-width:5px}.top-radio_input:checked:hover{border-color:var(--top-forms-option-color-hover)}.top-radio_input:disabled{border-color:var(--color-line-1-opacity);background:var(--color-theme-50)}.top-radio_input:checked:disabled{border-color:var(--color-theme-400)}.top-radio_input.top-error{border-color:var(--color-negative)}.top-radio_input.top-error:hover{border-color:var(--color-negative-2)}.top-checkboxSwitcher{cursor:pointer;display:inline-flex;gap:4px}.top-checkboxSwitcher_input{border-radius:9px;border:none;background:var(--color-theme-100);width:36px;height:18px;position:relative}.top-checkboxSwitcher_input:before{content:"";border-radius:50%;background:var(--color-white);width:12px;height:12px;margin:3px;position:absolute;top:0;left:0;transition:left .1s}.top-checkboxSwitcher_input:hover{background:var(--color-theme-150)}.top-checkboxSwitcher_input:checked{background:var(--top-forms-option-color)}.top-checkboxSwitcher_input:checked:hover{background:var(--top-forms-option-color-hover)}.top-checkboxSwitcher_input:checked:before{left:50%}.top-checkboxSwitcher_input:disabled{background:var(--color-theme-400)}.top-checkboxSwitcher_input.top-error{background:var(--color-negative)}.top-checkboxSwitcher_input.top-error:hover{background:var(--color-negative-2)}.top-textarea{width:180px;display:inline-flex;align-items:center;position:relative}.top-textarea_textarea{background:var(--top-forms-background-color);width:100%;padding:var(--top-forms-padding);resize:none}.top-textarea_textarea:hover{background:var(--top-forms-background-color-hover)}.top-textarea_textarea:focus{outline-color:var(--color-theme-75);outline-offset:0px}.top-textarea_textarea.top-textarea_textarea-expandable{width:100%;height:100%;overflow:hidden;position:absolute;top:0;left:0}.top-textarea_pseudoContent{box-sizing:border-box;min-height:var(--c838a038);padding:var(--top-forms-padding);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;opacity:0;z-index:-1}.top-textarea_hint{position:absolute;top:2px;right:2px}.top-select{--top-icon-color: var(--color-text-3);--top-icon2-color: var(--color-text-2);align-items:center;width:180px;max-width:100%;vertical-align:middle;display:inline-flex}.top-select-error{--top-icon-color: var(--color-negative);--top-icon2-color: var(--color-negative)}.top-select_select{background-color:var(--top-forms-background-color);padding-left:var(--top-forms-padding);text-indent:clamp(0px,calc(var(--top-icon-both-width) - var(--top-forms-padding)),calc(var(--top-icon-both-width) - var(--top-forms-padding)));width:100%;height:var(--top-forms-base-height);text-overflow:ellipsis;white-space:nowrap;flex-grow:1;overflow:hidden}.top-select_select:focus{outline-color:var(--color-theme-75);outline-offset:0}.top-select_select:disabled{background:var(--color-theme-50)}.top-select optgroup{color:var(--color-text-1);font-style:normal}.top-select option{background:var(--content-background-color);color:var(--color-text-1)}@-moz-document url-prefix(){.top-select_select{text-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)}}@media only screen and (min-width: 900px){.top-changer{cursor:pointer;border-radius:100%;width:0;transform:translate(-44px);color:var(--color-text-secondary-2);font-size:16px;line-height:1;display:none;z-index:2;order:4}.top-changer:hover{color:var(--color-primary)}.top-changer:after{content:"";background-color:var(--top-forms-background-color);font-family:Topvisor-2}*:hover>.top-changer{display:block}}
|
|
2
|
+
`,document.head.appendChild(S);class k{static isRetina(){return"devicePixelRatio"in window&&window.devicePixelRatio>1}static isMobile(){return!!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i)}static isApp(){return navigator.userAgent.indexOf("Topvisor_App")!=-1}static isMacOS(){return navigator.userAgent.indexOf("Mac OS X")!==-1}static isSafari(){const e=/Chrome|Android/.test(navigator.userAgent);let a=/Safari/.test(navigator.userAgent);return e&&a&&(a=!1),a}static getCommandKeyLabel(){return this.isMacOS()?"⌘":"Ctrl"}}const F=100;let M;const _=new Map,v={width:window.innerWidth,height:window.innerHeight};function T(l){_.set(l,l)}function P(l){_.delete(l)}function A(l){clearTimeout(M),M=setTimeout(function(){l.topEvent={widthDiff:v.width-window.innerWidth,hightDiff:v.height-window.innerHeight},v.width=window.innerWidth,v.height=window.innerHeight,_.forEach(e=>e(l))},F)}window.addEventListener("resize",A);const V={addOnReize:T,removeOnResize:P},R={widthForMobile:900,dateFormat:"Y-m-d",gmt:(D=new Date().toString().match(/GMT(\S+)/))==null?void 0:D[1]},W={isMobile:!1,isMobileUA:!1,isRetina:!1,isApp:!1,isLandscape:!0,isPortrait:!1,size:0,dateFormat:"Y-m-d",gmt:(L=new Date().toString().match(/GMT(\S+)/))==null?void 0:L[1]},y=window,x=l=>{var e,a;if(!((a=(e=y==null?void 0:y.jQuery)==null?void 0:e.ui)!=null&&a.tooltip)){console.info("Для работы v-top-tooltip требуется глобальная загрузка jQuery UI Tooltip");return}return y.jQuery(l)},z=(l,e)=>{var r;const a=l.value??{};return a.content??=(r=e.props)==null?void 0:r.title,a.content=String(a.content).replace(/\r\n|\r|\n/g,"<br>"),a.position??={my:"bottom-18px",at:"top center"},a},U={mounted(l,e,a){var r;(r=x(l))==null||r.tooltip(z(e,a))},updated(l,e,a,r){var n;const t=z(e,a),s=(n=x(l))==null?void 0:n.tooltip("instance");s&&(s.options={...s.options,...t})},unmounted(l,e,a){var r;(r=x(l))==null||r.tooltip("destroy")}},$=window;class c{static L=o.reactive({Not_date:"Not date"});static page=($==null?void 0:$.page)||{};static options=R;static state=o.reactive({...W});static matchMediaIsMobile;static appendStyle(e,a=""){let r="all";a==="m"&&(r="(max-width: "+this.options.widthForMobile+"px)"),a==="pc"&&(r="(min-width: "+this.options.widthForMobile+"px)");const t=document.createElement("style");t.innerHTML=e,t.media=r,document.head.append(t)}static install(e,a){c.defineOptions(a),e.provide("top-core",c),this.installDirectives(e)}static installDirectives(e){e.directive("top-tooltip",U)}static defineOptions(e){e!=null&&e.widthForMobile&&(this.options.widthForMobile=e.widthForMobile),e!=null&&e.dateFormat&&(this.options.dateFormat=e.dateFormat),e!=null&&e.gmt&&(this.options.gmt=e.gmt),c.setState()}static setState(){c.matchMediaIsMobile=window.matchMedia(`(max-width: ${c.options.widthForMobile}px)`),c.state.isMobileUA=k.isMobile(),c.state.isRetina=k.isRetina(),c.state.isApp=k.isApp(),c.state.dateFormat=this.options.dateFormat,c.state.gmt=this.options.gmt,c.setStateByWindowSize(),V.addOnReize(c.onResize),c.onResize(),c.saveToCookie()}static onResize(){c.setStateByWindowSize(),document.documentElement.style.setProperty("--100vh",window.innerHeight+"px")}static setStateByWindowSize(){var e;c.state.isMobile=!!((e=c.matchMediaIsMobile)!=null&&e.matches),c.state.isLandscape=window.innerWidth>window.innerHeight,c.state.isPortrait=!c.state.isLandscape,c.state.size=window.innerWidth>window.innerHeight?window.innerWidth:window.innerHeight,c.saveToCookie()}static saveToCookie(){const e=[1,window.innerWidth,window.innerHeight,window.devicePixelRatio,Number(c.state.isMobile),Number(c.state.isRetina)];document.cookie="device="+e.join(",")+"; path=/;"}}class f{static stringToDate(e){return e.indexOf("T")===-1&&(e.length==10&&(e+=" 00:00:00"),e=e.replace(" ","T")+c.state.gmt),new Date(e)}static ms2Date(e,a=!0){let r;e!=null?r=new Date(e):r=new Date;const t=r.getDate().toString().padStart(2,"0"),s=String(r.getMonth()+1).padStart(2,"0"),n=r.getFullYear(),i=r.getHours().toString().padStart(2,"0"),p=r.getMinutes().toString().padStart(2,"0"),d=r.getSeconds().toString().padStart(2,"0");return r=n+"-"+s+"-"+t+" "+i+":"+p+":"+d,a&&(r=this.dateFormat(r)),r}static dateFormat(e,a=2,r=c.L.Not_date){if((!e||e.substring(0,10)==="0000-00-00")&&r&&r!=="0000-00-00")return r;const t=c.state.dateFormat.toLowerCase();let s=e.substring(0,10);s.length===7&&(s+="-01"),s+=" 00:00",s=s.replace(/-/g,"/");const n=new Date(s);if(isNaN(Number(n)))return r;let i=t.replace("y",String(n.getFullYear()).padStart(2,"0")).replace("m",String(n.getMonth()+1).padStart(2,"0")).replace("d",String(n.getDate()).padStart(2,"0"));if(e.length>10)switch(a){case 1:i+=" "+e.substring(11,13);break;case 2:i+=" "+e.substring(11,16);break;case 3:i+=" "+e.substring(11,19);break}return i}static dateUnformat(e,a=c.L.Not_date){if(!e)return a;if(e.match(/\d\d\d\d-\d\d-\d\d/))return e;const r=c.state.dateFormat.toLowerCase(),t=e.split(/\W/),s=r.split(/\W/);let n="",i="",p="";s.forEach((u,h)=>{switch(u){case"d":n=t[h];break;case"m":i=t[h];break;case"y":p=t[h];break}});let d=p+"-"+i+"-"+n;return d.match(/\d\d\d\d-\d\d-\d\d/)||(console.info("Неверный формат даты, будет возращена текущая дата, "+d),d=this.ms2Date(new Date().getTime(),!1).substring(0,10)),d}}const H=o.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(l){const e=l,a=o.computed(()=>e.href?"a":"button"),r=o.computed(()=>e.isSubmit?"submit":void 0);return(t,s)=>(o.openBlock(),o.createBlock(o.resolveDynamicComponent(a.value),{class:o.normalizeClass({"top-active":t.isActive,"top-disabled":t.disabled,"top-forms-focusable":!t.disabled,"top-button":!0,"top-button-progress":t.isProgress,[`top-size_${t.size}`]:!!t.size,[`top-color_${t.color}`]:!0,[`top-style_${t.styling}`]:!!t.styling}),name:t.name,title:t.title,href:t.href,type:r.value,"data-top-icon":t.icon||void 0,"data-top-icon2":t.icon2||void 0,disabled:t.disabled||void 0,inProgress:t.isProgress},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default",{},()=>[o.createTextVNode(o.toDisplayString(t.icon?"":"Button"),1)])]),_:3},8,["class","name","title","href","type","data-top-icon","data-top-icon2","disabled","inProgress"]))}}),I={"top-button":"top-button","top-active":"top-active","top-button-progress":"top-button-progress",progress:"_progress_1f1nw_1","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"},m=(l,e)=>{const a=l.__vccOpts||l;for(const[r,t]of e)a[r]=t;return a},O=m(H,[["__cssModules",{$style:I}]]),j={class:"top-forms-optionLabel"},Y={key:0,class:"top-forms-optionLabel_description"},w=m(o.defineComponent({__name:"controlLabel",props:{description:{},disabled:{type:Boolean}},setup(l){return(e,a)=>(o.openBlock(),o.createElementBlock("div",j,[o.createElementVNode("div",{class:o.normalizeClass({"top-forms-optionLabel_title":!0,"top-forms-optionLabel_title-disabled":e.disabled})},[o.renderSlot(e.$slots,"default")],2),e.description?(o.openBlock(),o.createElementBlock("div",Y,o.toDisplayString(e.description),1)):o.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"}}]]),G=["name","value","indeterminate","disabled"],K=m(o.defineComponent({__name:"checkbox",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},indeterminate:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-checkbox":!0,["top-checkbox_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"checkbox",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkbox_input":!0,"top-error":t.isError&&!t.disabled}),name:t.name,"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),value:t.value,indeterminate:t.indeterminate,disabled:t.disabled},null,10,G),[[o.vModelCheckbox,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkbox":"top-checkbox","top-checkbox_input":"top-checkbox_input","top-error":"top-error"}}]]),Q=["title"],C=m(o.defineComponent({__name:"hint",props:{hint:{}},setup(l){return(e,a)=>(o.openBlock(),o.createElementBlock("span",{class:"top-hint","data-top-icon":"",title:e.hint},null,8,Q))}}),[["__cssModules",{$style:{"top-hint":"top-hint"}}]]),q=["data-top-icon","data-top-icon2"],X=["name","title","placeholder","disabled","readonly"],J=["onClick"],Z={key:1,class:"top-formsCaption"},B=m(o.defineComponent({inheritAttrs:!1,__name:"input",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},title:{},captionType:{default:""},size:{default:"s"},icon:{},icon2:{},addCleaner:{type:Boolean},isError:{type:Boolean},modificator:{}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(n){e("update:modelValue",n)}}),t=o.computed(()=>a.addCleaner&&!a.title||a.captionType!==""?"":a.title),s=()=>{e("update:modelValue","")};return(n,i)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-input":!0,["top-size_"+n.size]:!0,"top-disabled":n.disabled,["top-input-"+n.modificator]:!!n.modificator,"top-input-withCleaner":n.addCleaner&&r.value&&r.value!=="0000-00-00","top-formsCaptionWrapper":n.captionType!=="","top-formsCaptionWrapper-always":n.captionType==="top"}),"data-top-icon":n.icon,"data-top-icon2":n.icon2},[o.withDirectives(o.createElementVNode("input",o.mergeProps({type:"text",class:{"top-input_input":!0,["top-input_input-"+n.modificator]:!!n.modificator,"top-forms-focusable":!n.disabled,"top-error":n.isError},autocomplete:"off_always",name:n.name,"onUpdate:modelValue":i[0]||(i[0]=p=>r.value=p),title:n.title,placeholder:t.value,disabled:n.disabled,readonly:n.readonly,onKeydown:i[1]||(i[1]=o.withKeys(o.withModifiers(()=>(n.addCleaner||!!n.$slots.btn)&&s(),["stop"]),["esc"]))},n.$attrs),null,16,X),[[o.vModelText,r.value]]),n.addCleaner&&r.value&&r.value!=="0000-00-00"?(o.openBlock(),o.createElementBlock("span",{key:0,class:"top-input_cleaner","data-top-icon":"",onClick:o.withModifiers(s,["prevent"])},null,8,J)):o.createCommentVNode("",!0),n.captionType!==""?(o.openBlock(),o.createElementBlock("span",Z,o.toDisplayString(n.title),1)):o.createCommentVNode("",!0),o.renderSlot(n.$slots,"default")],10,q))}}),[["__cssModules",{$style:{"top-input":"top-input","top-input_input":"top-input_input","top-input-withCleaner":"top-input-withCleaner","top-input_cleaner":"top-input_cleaner"}}]]),oo=["modelValue"],to=!!document.documentElement.ontouchstart&&!!document.createElement("input").showPicker;let E=l=>{};const eo=m(o.defineComponent({__name:"inputDate",props:{modelValue:{},name:{},disabled:{type:Boolean},readonly:{type:Boolean},title:{},captionType:{},size:{},icon:{},icon2:{default:""},addCleaner:{type:Boolean},isError:{type:Boolean},modificator:{}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.ref(),t=o.computed({get(){return f.dateFormat(a.modelValue,2,"0000-00-00")},set(p){p=f.dateUnformat(p,"0000-00-00"),e("update:modelValue",p)}});let s=p=>{E(p)},n=p=>{const d=f.dateUnformat(p.target.value),u=f.dateFormat(d);if(!u||u===c.L.Not_date||p.target.value!==u){p.target.value=t.value;return}t.value=p.target.value};async function i(p){const d=await new Promise((h,g)=>N(["./datepicker-0e9a0541.amd"],h,g));E=d.oninput;const u=d.connectDatepicker(p.target,{onSelect:()=>n(p)});u&&(u.datepicker("show"),o.onUnmounted(()=>u.datepicker("destroy")))}return(p,d)=>o.unref(to)?(o.openBlock(),o.createBlock(o.unref(B),o.mergeProps({key:0},p.$props,{modelValue:t.value,readonly:"",onClick:d[1]||(d[1]=u=>r.value.showPicker())}),{default:o.withCtx(()=>[o.createElementVNode("input",{ref_key:"el",ref:r,type:"date",class:"top-input_input-date",modelValue:p.modelValue,onChange:d[0]||(d[0]=u=>t.value=u.target.value),tabindex:"-1"},null,40,oo)]),_:1},16,["modelValue"])):(o.openBlock(),o.createBlock(o.unref(B),o.mergeProps({key:1},p.$props,{modelValue:t.value,"onUpdate:modelValue":d[2]||(d[2]=u=>u===""?t.value="":""),onInput:o.unref(s),onFocusOnce:i,onChange:o.unref(n),modificator:"datepicker"}),null,16,["modelValue","onInput","onChange"]))}}),[["__cssModules",{$style:{"top-input-datepicker":"top-input-datepicker","top-input_input-date":"top-input_input-date"}}]]),ro=["name","value","disabled"],ao=m(o.defineComponent({__name:"radio",props:{modelValue:{},value:{},name:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-radio":!0,["top-radio_"+t.name]:t.name!=="","top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"radio",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-radio_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),name:t.name,value:t.value,disabled:t.disabled},null,10,ro),[[o.vModelRadio,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-radio":"top-radio","top-radio_input":"top-radio_input","top-error":"top-error"}}]]),no=["name","value","disabled"],io=m(o.defineComponent({__name:"switcher",props:{modelValue:{type:[Boolean,Array,Set]},name:{},value:{},description:{},disabled:{type:Boolean},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-forms-optionWrapper":!0,"top-checkboxSwitcher":!0,"top-disabled":t.disabled,"top-error":t.isError&&!t.disabled})},[o.withDirectives(o.createElementVNode("input",{type:"checkbox",class:o.normalizeClass({"top-forms-focusable":!t.disabled,"top-forms-option":!0,"top-checkboxSwitcher_input":!0,"top-error":t.isError&&!t.disabled}),"onUpdate:modelValue":s[0]||(s[0]=n=>r.value=n),name:t.name,value:t.value,disabled:t.disabled},null,10,no),[[o.vModelCheckbox,r.value]]),t.$slots.default?(o.openBlock(),o.createBlock(w,{key:0,description:t.description,disabled:t.disabled},{default:o.withCtx(()=>[o.renderSlot(t.$slots,"default")]),_:3},8,["description","disabled"])):o.createCommentVNode("",!0)],2))}}),[["__cssModules",{$style:{"top-checkboxSwitcher":"top-checkboxSwitcher","top-checkboxSwitcher_input":"top-checkboxSwitcher_input","top-error":"top-error"}}]]),lo=["name","placeholder","disabled","readonly","rows"],so={key:0,class:"top-textarea_pseudoContent"},po=m(o.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(l,{emit:e}){const a=l;o.useCssVars(t=>({c838a038:t.minHeight+"px"}));const r=o.computed({get(){return a.modelValue},set(t){e("update:modelValue",t)}});return(t,s)=>{const n=o.resolveDirective("top-tooltip");return o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-textarea":!0,["top-textarea-"+t.name]:t.name,"top-disabled":t.disabled})},[o.withDirectives(o.createElementVNode("textarea",o.mergeProps({type:"text",class:{"top-forms-focusable":!t.disabled,"top-textarea_textarea":!0,"top-textarea_textarea-expandable":t.expandable,"top-error":t.isError},autocomplete:"off_always",name:t.name,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,rows:t.expandable?void 0:t.rows},t.$attrs,{"onUpdate:modelValue":s[0]||(s[0]=i=>r.value=i)}),null,16,lo),[[o.vModelText,r.value]]),t.expandable?(o.openBlock(),o.createElementBlock("div",so,o.toDisplayString(r.value+" "),1)):o.createCommentVNode("",!0),t.hint?o.withDirectives((o.openBlock(),o.createBlock(C,{key:1,class:"top-textarea_hint",hint:t.hint},null,8,["hint"])),[[n]]):o.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"}}]]),co=["data-value","data-top-icon","data-top-icon2"],uo=["name","disabled"],bo=["label","disabled"],mo=["value","selected","disabled"],ho=["value","selected","disabled"],go={key:1,class:"top-formsCaption"},fo=m(o.defineComponent({__name:"select",props:{modelValue:{},options:{},name:{},disabled:{type:Boolean},icon:{},size:{default:"s"},addChanger:{type:Boolean},title:{},isError:{type:Boolean}},emits:["update:modelValue"],setup(l,{emit:e}){const a=l,r=o.computed({get(){return a.modelValue},set(i){e("update:modelValue",i)}}),t=o.computed(()=>{var i;return(i=s.value.get(r.value))==null?void 0:i.icon}),s=o.computed(()=>{const i=new Map;return a.options.forEach(p=>{if(!p.disabled){if(p.children){p.children.forEach(d=>{d.disabled||i.set(d.value,d)});return}i.set(p.value,p)}}),i});o.watch([o.toRef(a.modelValue),s],()=>{(r.value===null||r.value===void 0)&&s.value.size&&(console.warn("Пожалуйста, не передавайте в компонент Select значения null и undefined"),r.value=s.value.keys().next().value)},{immediate:!0});const n=()=>{const i=[...s.value.keys()],d=(i.indexOf(r.value)+1)%i.length;r.value=i[d]};return(i,p)=>(o.openBlock(),o.createElementBlock("label",{class:o.normalizeClass({"top-select":!0,["top-select-"+i.name]:i.name,["top-size_"+i.size]:!0,"top-formsCaptionWrapper":!!i.title,"top-select-error":i.isError,"top-disabled":i.disabled}),"data-value":r.value,"data-top-icon":i.icon,"data-top-icon2":t.value},[o.withDirectives(o.createElementVNode("select",{class:o.normalizeClass({"top-forms-focusable":!i.disabled,"top-select_select":!0,"top-select_arrow":!0,"top-error":i.isError}),name:i.name,disabled:i.disabled,"onUpdate:modelValue":p[0]||(p[0]=d=>r.value=d)},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(i.options.entries(),([d,u])=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[u.children?(o.openBlock(),o.createElementBlock("optgroup",{key:"group_"+u.value,label:u.title,disabled:u.disabled},[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(u.children.entries(),([h,g])=>(o.openBlock(),o.createElementBlock("option",{key:u.value,value:g.value,selected:g.value===r.value,disabled:g.disabled},o.toDisplayString(g.title),9,mo))),128))],8,bo)):(o.openBlock(),o.createElementBlock("option",{key:u.value,value:u.value,selected:u.value===r.value,disabled:u.disabled},o.toDisplayString(u.title),9,ho))],64))),256))],10,uo),[[o.vModelSelect,r.value]]),i.addChanger&&s.value.size&&!i.disabled?(o.openBlock(),o.createElementBlock("span",{key:0,class:"top-changer",onClick:n})):o.createCommentVNode("",!0),i.title?(o.openBlock(),o.createElementBlock("span",go,o.toDisplayString(i.title),1)):o.createCommentVNode("",!0)],10,co))}}),[["__cssModules",{$style:{"top-select":"top-select","top-select-error":"top-select-error","top-select_select":"top-select_select","top-changer":"top-changer"}}]]);b.Button=O,b.ControlLabel=w,b.Core=c,b.Device=k,b.Events=V,b.Hint=C,b.Input=B,b.Textarea=po,b.UtilsDate=f,b._export_sfc=m,b.checkbox=K,b.inputDate=eo,b.radio=ao,b.select=fo,b.switcher=io});
|
|
3
|
+
//# sourceMappingURL=forms-02202302.amd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms-02202302.amd.js","sources":["../../src/core/utils/device.ts","../../src/core/core/events.ts","../../src/core/core/options.ts","../../src/core/core/state.ts","../../src/core/directives/tooltip.ts","../../src/core/core/core.ts","../../src/core/utils/date.ts","../../src/components/forms/button/button.vue","../../src/components/forms/checkbox/checkbox.vue","../../src/components/forms/input/input.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"],"sourcesContent":["class Device {\r\n\r\n\tstatic isRetina () {\r\n\t\treturn ('devicePixelRatio' in window && window.devicePixelRatio > 1);\r\n\t}\r\n\r\n\t// определить, является ли устройство мобильным\r\n\tstatic isMobile (): boolean {\r\n\t\treturn !!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|IEMobile|Opera Mini/i);\r\n\t}\r\n\r\n\t// определить, открыт ли сайт в приложении\r\n\tstatic isApp () {\r\n\t\treturn (navigator.userAgent.indexOf('Topvisor_App') != -1);\r\n\t}\r\n\r\n\t// определить, является ли OS пользователя macOS\r\n\tstatic isMacOS () {\r\n\t\treturn navigator.userAgent.indexOf('Mac OS X') !== -1;\r\n\t}\r\n\r\n\t// определить, является ли текущий браузер пользователя Safari\r\n\tstatic isSafari () {\r\n\t\tconst isChrome = /Chrome|Android/.test(navigator.userAgent);\r\n\r\n\t\tlet isSafari = /Safari/.test(navigator.userAgent);\r\n\t\tif (isChrome && isSafari) {\r\n\t\t\tisSafari = false;\r\n\t\t}\r\n\r\n\t\treturn isSafari;\r\n\t};\r\n\r\n\t/**\r\n\t * Вернуть текст для обозначения клавиши Ctrl / Command в зависимости от OS\r\n\t * @returns {'Ctrl'|'⌘'}\r\n\t */\r\n\tstatic getCommandKeyLabel (): 'Ctrl' | '⌘' {\r\n\t\tif (this.isMacOS()) {\r\n\t\t\treturn '⌘';\r\n\t\t} else {\r\n\t\t\treturn 'Ctrl';\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\nexport default Device;\r\n","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\n\r\nconst _window: any = window;\r\n\r\nconst $ = (el: VNode) => {\r\n\tif (!_window?.jQuery?.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 _window.jQuery(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\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');\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 { reactive } from 'vue';\r\nimport Device from '@/core/utils/device';\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\n\r\nconst _window: any = 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 options = options;\r\n\r\n\tstatic state = reactive({ ...state });\r\n\r\n\tstatic matchMediaIsMobile?: MediaQueryList;\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}\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 = Device.isMobile();\r\n\t\tCore.state.isRetina = Device.isRetina();\r\n\t\tCore.state.isApp = Device.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\nclass UtilsDate {\r\n\r\n\t/**\r\n\t * Получить объект Date из строки\r\n\t * @param date - строка с датой\r\n\t */\r\n\tstatic stringToDate(date: string) {\r\n\t\tif (date.indexOf('T') === -1) {\r\n\t\t\tif (date.length == 10) {\r\n\t\t\t\tdate += ' 00:00:00';\r\n\t\t\t}\r\n\r\n\t\t\tdate = date.replace(' ', 'T') + Core.state.gmt;\r\n\t\t}\r\n\r\n\t\treturn new Date(date);\r\n\t}\r\n\r\n\t// Перевод миллисекунд (UTC) в дату-строку (время локальное)\r\n\r\n\t/**\r\n\t * Перевод миллисекунд (UTC) в дату-строку (время локальное)\r\n\t * @param {?number} ms\r\n\t * @param {?boolean} useFormat\r\n\t */\r\n\tstatic ms2Date(ms: number, useFormat: boolean = true): string {\r\n\t\tlet date;\r\n\t\tif (ms != undefined) {\r\n\t\t\tdate = new Date(ms);\r\n\t\t} else {\r\n\t\t\tdate = new Date();\r\n\t\t}\r\n\r\n\t\tconst d = date.getDate().toString().padStart(2, '0');\r\n\t\tconst m = String(date.getMonth() + 1).padStart(2, '0');\r\n\t\tconst Y = date.getFullYear();\r\n\t\tconst H = date.getHours().toString().padStart(2, '0');\r\n\t\tconst i = date.getMinutes().toString().padStart(2, '0');\r\n\t\tconst s = date.getSeconds().toString().padStart(2, '0');\r\n\r\n\t\tdate = Y + '-' + m + '-' + d + ' ' + H + ':' + i + ':' + s;\r\n\r\n\t\tif (useFormat) {\r\n\t\t\tdate = this.dateFormat(date);\r\n\t\t}\r\n\r\n\t\treturn date;\r\n\t}\r\n\r\n\t/**\r\n\t * Перевод даты в формат пользователя\r\n\t * @param {string} date\r\n\t * @param {0|1|2|3} time - 0: только дата, 1: дата и часы, 2: дата и часы с минутами, 3: дата и часы с минутами и секундами\r\n\t */\r\n\tstatic dateFormat(date: string, time: 0 | 1 | 2 | 3 = 2, emptyValue: string = Core.L.Not_date): string {\r\n\t\tif (!date || date.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\r\n\t\tconst dateFormat = Core.state.dateFormat.toLowerCase();\r\n\r\n\t\tlet dateForObj = date.substring(0, 10);\r\n\r\n\t\tif (dateForObj.length === 7) {\r\n\t\t\tdateForObj += '-01';\r\n\t\t}\r\n\r\n\t\tdateForObj += ' 00:00';\r\n\r\n\t\t// safari fix\r\n\t\tdateForObj = dateForObj.replace(/-/g, '/');\r\n\r\n\t\tconst dateObject = new Date(dateForObj);\r\n\t\tif (isNaN(Number(dateObject))) {\r\n\t\t\treturn emptyValue;\r\n\t\t}\r\n\r\n\t\tlet result = dateFormat.\r\n\t\t\treplace('y', String(dateObject.getFullYear()).padStart(2, '0')).\r\n\t\t\treplace('m', String(dateObject.getMonth() + 1).padStart(2, '0')).\r\n\t\t\treplace('d', String(dateObject.getDate()).padStart(2, '0'));\r\n\r\n\t\tif (date.length > 10) {\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\tresult += ' ' + date.substring(11, 13);\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t// часы и минуты\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tresult += ' ' + date.substring(11, 16);\r\n\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t// часы, минуты и секунды\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\tresult += ' ' + date.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\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t * Перевод даты из формата пользователя в системный формат\r\n\t * @param {string} date\r\n\t */\r\n\tstatic dateUnformat(date: string, emptyValue: string = Core.L.Not_date): string {\r\n\t\tif (!date) {\r\n\t\t\treturn emptyValue;\r\n\t\t}\r\n\r\n\t\tif (date.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/)) {\r\n\t\t\treturn date;\r\n\t\t}\r\n\r\n\t\tconst dateFormat = Core.state.dateFormat.toLowerCase();\r\n\r\n\t\tconst dateChunks = date.split(/\\W/);\r\n\t\tconst dateFormatChunks = dateFormat.split(/\\W/);\r\n\r\n\t\tlet d = '';\r\n\t\tlet m = '';\r\n\t\tlet y = '';\r\n\r\n\t\tdateFormatChunks.forEach((type, index) => {\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase 'd':\r\n\t\t\t\t\td = dateChunks[index];\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'm':\r\n\t\t\t\t\tm = dateChunks[index];\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'y':\r\n\t\t\t\t\ty = dateChunks[index];\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet result = y + '-' + m + '-' + d;\r\n\r\n\t\tif (!result.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/)) {\r\n\t\t\tconsole.info('Неверный формат даты, будет возращена текущая дата, ' + result);\r\n\r\n\t\t\tresult = this.ms2Date((new Date()).getTime(), false).substring(0, 10);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n}\r\n\r\nexport default UtilsDate;","<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}\"\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<!-- @slot Текст или HTML в кнопке -->\r\n\t\t<slot>\r\n\t\t\t{{ !icon ? 'Button' : '' }}\r\n\t\t</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 setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './checkbox';\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-checkbox']: true,\r\n\t\t\t['top-checkbox_' + 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=\"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-checkbox_input']: true,\r\n\t\t\t\t['top-error']: isError && !disabled,\r\n\t\t\t}\"\r\n\t\t\t:name=\"name\"\r\n\t\t\tv-model=\"localValue\"\r\n\t\t\t:value=\"value\"\r\n\t\t\t:indeterminate=\"indeterminate\"\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-checkbox {\r\n\tcursor: pointer;\r\n\tdisplay: inline-flex;\r\n}\r\n\r\n.top-checkbox_input {\r\n\tcursor: inherit;\r\n\tborder-radius: 4px;\r\n\tbackground: var(--content-background-color);\r\n\tborder: 1px solid var(--top-forms-border-color);\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-checkbox_input:before {\r\n\tcontent: ' ';\r\n\tcolor: #FFF;\r\n\tfont-family: 'Topvisor-2';\r\n\tfont-size: 16px;\r\n}\r\n\r\n.top-checkbox_input:hover {\r\n\tborder-color: var(--top-forms-option-color);\r\n\tbackground: var(--color-theme-50)\r\n}\r\n\r\n/* checked / indeterminate */\r\n.top-checkbox_input:checked,\r\n.top-checkbox_input:indeterminate {\r\n\tborder-color: var(--top-forms-option-color);\r\n\tbackground: var(--top-forms-option-color);\r\n}\r\n\r\n.top-checkbox_input:checked:before {\r\n\tcontent: '';\r\n}\r\n\r\n.top-checkbox_input:indeterminate:before {\r\n\tcontent: '';\r\n}\r\n\r\n.top-checkbox_input:checked:hover,\r\n.top-checkbox_input:indeterminate:hover {\r\n\tborder-color: var(--top-forms-option-color-hover);\r\n\tbackground: var(--top-forms-option-color-hover);\r\n}\r\n\r\n/* disabled selected */\r\n.top-checkbox_input:disabled {\r\n\tborder-color: var(--color-line-1-opacity);\r\n\tbackground: var(--color-theme-50);\r\n}\r\n\r\n.top-checkbox_input:checked:disabled,\r\n.top-checkbox_input:indeterminate:disabled {\r\n\tborder-color: transparent;\r\n\tbackground: var(--color-theme-400);\r\n}\r\n\r\n/* isError */\r\n.top-checkbox_input.top-error {\r\n\tborder-color: var(--color-negative);\r\n}\r\n\r\n.top-checkbox_input.top-error:hover {\r\n\tborder-color: var(--color-negative-2);\r\n}\r\n\r\n/* isError selected */\r\n.top-checkbox_input:checked.top-error,\r\n.top-checkbox_input:indeterminate.top-error {\r\n\tbackground: var(--color-negative);\r\n}\r\n\r\n.top-checkbox_input:checked.top-error:hover,\r\n.top-checkbox_input:indeterminate.top-error:hover {\r\n\tbackground: var(--color-negative-2);\r\n}\r\n</style>","<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\nimport type { Props, Emits } from './input';\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 = () => {\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<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.stop=\"() => (addCleaner || !!$slots.btn) && clean()\"\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\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\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\toutline-color: var(--color-theme-75);\r\n\toutline-offset: 0;\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-text-secondary);\r\n\t--top-icon2-color: var(--color-text-secondary);\r\n\r\n\tposition: absolute;\r\n\tz-index: 3;\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: 20px;\r\n\t--top-icon-width: 20px;\r\n\t--top-icon-color: var(--color-text-3);\r\n\r\n\tcursor: pointer;\r\n\tborder-radius: 50%;\r\n\twidth: 24px;\r\n\theight: 24px;\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-text-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</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 UtilsDate 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\nconst el = ref();\r\n\r\nconst localValue = computed({\r\n\tget() {\r\n\t\treturn UtilsDate.dateFormat(props.modelValue, 2, '0000-00-00');\r\n\t},\r\n\r\n\tset(value) {\r\n\t\tvalue = UtilsDate.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 dateUnformat = UtilsDate.dateUnformat(e.target.value);\r\n\tconst dateFormat = UtilsDate.dateFormat(dateUnformat);\r\n\r\n\tif (!dateFormat || dateFormat === Core.L.Not_date || e.target.value !== dateFormat) {\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\tconst $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\r\n\t\tonUnmounted(() => $el.datepicker('destroy'));\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(--top-forms-border-color);\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(--top-forms-option-color);\r\n\tbackground: var(--color-theme-50)\r\n}\r\n\r\n.top-radio_input:checked {\r\n\tborder-color: var(--top-forms-option-color);\r\n\tborder-width: 5px;\r\n}\r\n\r\n.top-radio_input:checked:hover {\r\n\tborder-color: var(--top-forms-option-color-hover);\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-50);\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-negative);\r\n}\r\n\r\n.top-radio_input.top-error:hover {\r\n\tborder-color: var(--color-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-theme-100);\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-theme-150);\r\n}\r\n\r\n/* checked */\r\n.top-checkboxSwitcher_input:checked {\r\n\tbackground: var(--top-forms-option-color);\r\n}\r\n\r\n.top-checkboxSwitcher_input:checked:hover {\r\n\tbackground: var(--top-forms-option-color-hover);\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-negative);\r\n}\r\n\r\n.top-checkboxSwitcher_input.top-error:hover {\r\n\tbackground: var(--color-negative-2);\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\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\toutline-color: var(--color-theme-75);\r\n\toutline-offset: 0px;\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 { toRef, computed, watch } from 'vue';\r\nimport type { Props, Emits } from './select';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tsize: 's',\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\r\n\tset(value) {\r\n\t\temit('update:modelValue', value);\r\n\t},\r\n});\r\n\r\n/**\r\n * Иконка выбранного option\r\n */\r\nconst optionIcon = computed(() => {\r\n\treturn optionByValue.value.get(localValue.value)?.icon;\r\n});\r\n\r\n/**\r\n * Словарь с доступными options\r\n */\r\nconst optionByValue = computed(() => {\r\n\tconst res = new Map();\r\n\r\n\tprops.options.forEach((option) => {\r\n\t\tif (option.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\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 * Логика для обртаной своместимости:\r\n * - null - заменить на первое доступное значение\r\n * - undefined - заменить на первое доступное значение\r\n */\r\nwatch([\r\n\ttoRef(props.modelValue),\r\n\toptionByValue,\r\n], () => {\r\n\tif ((localValue.value === null || localValue.value === undefined) && optionByValue.value.size) {\r\n\t\tconsole.warn('Пожалуйста, не передавайте в компонент Select значения null и undefined');\r\n\r\n\t\tlocalValue.value = optionByValue.value.keys().next().value;\r\n\t}\r\n}, { immediate: true });\r\n\r\n/**\r\n * Выбрать следующее доступное значение\r\n */\r\nconst selectNextValue = () => {\r\n\tconst listEnabledValues = [...optionByValue.value.keys()];\r\n\tconst currentIndex = listEnabledValues.indexOf(localValue.value);\r\n\tconst nextIndex = (currentIndex + 1) % listEnabledValues.length;\r\n\r\n\tlocalValue.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=\"localValue\"\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=\"localValue\"\r\n\t\t>\r\n\t\t\t<template v-for=\"[_index, option] of options.entries()\">\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_' + option.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=\"[_index, subOption] of option.children.entries()\"\r\n\t\t\t\t\t\t:key=\"option.value\"\r\n\t\t\t\t\t\t:value=\"subOption.value\"\r\n\t\t\t\t\t\t:selected=\"subOption.value === localValue\"\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=\"option.value\"\r\n\t\t\t\t\t:value=\"option.value\"\r\n\t\t\t\t\t:selected=\"option.value === localValue\"\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 && optionByValue.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\t--top-icon-color: var(--color-text-3);\r\n\t--top-icon2-color: var(--color-text-2);\r\n\r\n\talign-items: center;\r\n\twidth: 180px;\r\n\tmax-width: 100%;\r\n\tvertical-align: middle;\r\n\tdisplay: inline-flex;\r\n}\r\n\r\n.top-select-error {\r\n\t--top-icon-color: var(--color-negative);\r\n\t--top-icon2-color: var(--color-negative);\r\n}\r\n\r\n.top-select_select {\r\n\tbackground-color: var(--top-forms-background-color);\r\n\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:focus {\r\n\toutline-color: var(--color-theme-75);\r\n\toutline-offset: 0;\r\n}\r\n\r\n.top-select_select:disabled {\r\n\tbackground: var(--color-theme-50);\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 {\r\n\tbackground: var(--content-background-color);\r\n\tcolor: var(--color-text-1);\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-secondary-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>"],"names":["Device","isChrome","isSafari","onResizeDelay","onResizeTimer","onResizeListeners","windowSize","addOnReize","listener","removeOnResize","onResize","e","callback","Events","options","state","_window","$","el","tvTooltipGenOptions","binding","vnode","_a","tooltip","_prevVnode","instance","Core","reactive","style","type","media","elStyle","app","directiveTooltip","device","UtilsDate","date","ms","useFormat","d","m","Y","H","i","s","time","emptyValue","dateFormat","dateForObj","dateObject","result","dateChunks","dateFormatChunks","y","index","tagName","computed","props","localValue","value","emit","placeholder","clean","useNativeDatepicker","onInputLazy","_e","ref","oninput","onchange","dateUnformat","init","datepicker","resolve","reject","require","$el","onUnmounted","optionIcon","optionByValue","res","option","subOption","watch","toRef","selectNextValue","listEnabledValues","nextIndex"],"mappings":"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"}
|