@topvisor/ui 0.0.35 → 0.0.37
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-6d57a408.es.js +275 -0
- package/.chunks/datepicker-6d57a408.es.js.map +1 -0
- package/.chunks/datepicker-a0840577.amd.js +234 -0
- package/.chunks/datepicker-a0840577.amd.js.map +1 -0
- package/.chunks/forms-1aa30229.amd.js +3 -0
- package/.chunks/forms-1aa30229.amd.js.map +1 -0
- package/.chunks/forms-7be951a7.es.js +962 -0
- package/.chunks/forms-7be951a7.es.js.map +1 -0
- package/.chunks/popup-604c0a49.amd.js +341 -0
- package/.chunks/popup-604c0a49.amd.js.map +1 -0
- package/.chunks/popup-b9517276.es.js +700 -0
- package/.chunks/popup-b9517276.es.js.map +1 -0
- package/README.md +52 -19
- package/common/common.amd.js +2 -0
- package/common/common.amd.js.map +1 -0
- package/common/common.js +2 -0
- package/common/common.js.map +1 -0
- package/core/core.amd.js +2 -0
- package/core/core.amd.js.map +1 -0
- package/core/core.js +6 -0
- package/core/core.js.map +1 -0
- package/core.css +1 -0
- package/dark.css +1 -0
- package/forms/forms.amd.js +2 -0
- package/forms/forms.amd.js.map +1 -0
- package/forms/forms.js +16 -0
- package/forms/forms.js.map +1 -0
- package/forms/helpers.amd.js +2 -0
- package/forms/helpers.amd.js.map +1 -0
- package/forms/helpers.js +9 -0
- package/forms/helpers.js.map +1 -0
- package/forms.css +1 -0
- package/formsExt/formsExt.amd.js +3 -0
- package/formsExt/formsExt.amd.js.map +1 -0
- package/formsExt/formsExt.js +220 -0
- package/formsExt/formsExt.js.map +1 -0
- package/formsExt.css +1 -0
- package/{src/resources/icomoon → icomoon}/demo-files/demo.css +161 -161
- package/{src/resources/icomoon → icomoon}/demo-files/demo.js +30 -30
- package/{src/resources/icomoon → icomoon}/demo.html +2945 -2945
- package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.svg +232 -232
- package/{src/resources/icomoon → icomoon}/style.css +647 -647
- package/light.css +1 -0
- package/package.json +19 -68
- package/popup/popup.amd.js +3 -0
- package/popup/popup.amd.js.map +1 -0
- package/popup/popup.js +144 -0
- package/popup/popup.js.map +1 -0
- package/popup/worker.amd.js +2 -0
- package/popup/worker.amd.js.map +1 -0
- package/popup/worker.js +154 -0
- package/popup/worker.js.map +1 -0
- package/popup.css +1 -0
- package/tabs/tabs.amd.js +3 -0
- package/tabs/tabs.amd.js.map +1 -0
- package/tabs/tabs.js +97 -0
- package/tabs/tabs.js.map +1 -0
- package/tabs.css +1 -0
- package/utils/date.amd.js +2 -0
- package/utils/date.amd.js.map +1 -0
- package/utils/date.js +6 -0
- package/utils/date.js.map +1 -0
- package/utils/device.amd.js +2 -0
- package/utils/device.amd.js.map +1 -0
- package/utils/device.js +6 -0
- package/utils/device.js.map +1 -0
- package/utils/dom.amd.js +2 -0
- package/utils/dom.amd.js.map +1 -0
- package/utils/dom.js +64 -0
- package/utils/dom.js.map +1 -0
- package/.storybook/TopTheme.js +0 -82
- package/.storybook/TopThemeManager.js +0 -44
- package/.storybook/main.ts +0 -43
- package/.storybook/manager.ts +0 -28
- package/.storybook/preview-head.html +0 -16
- package/.storybook/preview.ts +0 -48
- package/.storybook/vue/coreDecorator.ts +0 -19
- package/.storybook/vue/vModelDecorator.ts +0 -27
- package/.vscode/extensions.json +0 -11
- package/.vscode/keybindings.example.json +0 -121
- package/.vscode/settings.json +0 -46
- package/Dockerfile +0 -3
- package/NPM.md +0 -25
- package/PUBLISH.md +0 -18
- package/STORYBOOK.md +0 -27
- package/USE_IN_PROJECT.md +0 -29
- package/build/afterBuild.sh +0 -12
- package/build/cssModules.ts +0 -39
- package/build/plugin/amdFix.ts +0 -46
- package/build/rollup.config.ts +0 -18
- package/nbproject/project.properties +0 -11
- package/nbproject/project.xml +0 -9
- package/public/README.md +0 -63
- package/src/components/common/common.ts +0 -1
- package/src/components/common/icon/icon.ts +0 -4
- package/src/components/common/icon/icon.vue +0 -15
- package/src/components/component.ts +0 -133
- package/src/components/forms/button/button.stories.ts +0 -112
- package/src/components/forms/button/button.ts +0 -51
- package/src/components/forms/button/button.vue +0 -75
- package/src/components/forms/button/stories/README.md +0 -35
- package/src/components/forms/button/stories/overview.vue +0 -33
- package/src/components/forms/button/style/button.css +0 -124
- package/src/components/forms/button/style/style-outline.css +0 -42
- package/src/components/forms/button/style/style-soft.css +0 -31
- package/src/components/forms/button/style/style-transparent.css +0 -35
- package/src/components/forms/checkbox/checkbox.stories.ts +0 -33
- package/src/components/forms/checkbox/checkbox.ts +0 -23
- package/src/components/forms/checkbox/checkbox.vue +0 -135
- package/src/components/forms/checkbox/stories/overview.vue +0 -171
- package/src/components/forms/controlLabel/controlLabel.stories.ts +0 -38
- package/src/components/forms/controlLabel/controlLabel.ts +0 -4
- package/src/components/forms/controlLabel/controlLabel.vue +0 -48
- package/src/components/forms/forms.ts +0 -10
- package/src/components/forms/helpers.ts +0 -10
- package/src/components/forms/hint/hint.stories.ts +0 -46
- package/src/components/forms/hint/hint.ts +0 -8
- package/src/components/forms/hint/hint.vue +0 -32
- package/src/components/forms/input/input.stories.ts +0 -31
- package/src/components/forms/input/input.ts +0 -34
- package/src/components/forms/input/input.vue +0 -170
- package/src/components/forms/input/stories/overview.vue +0 -61
- package/src/components/forms/inputDate/datepicker.css +0 -233
- package/src/components/forms/inputDate/datepicker.ts +0 -101
- package/src/components/forms/inputDate/inputDate.stories.ts +0 -41
- package/src/components/forms/inputDate/inputDate.ts +0 -4
- package/src/components/forms/inputDate/inputDate.vue +0 -127
- package/src/components/forms/inputDate/stories/overview.vue +0 -35
- package/src/components/forms/radio/radio.stories.ts +0 -34
- package/src/components/forms/radio/radio.ts +0 -15
- package/src/components/forms/radio/radio.vue +0 -107
- package/src/components/forms/radio/stories/overview.vue +0 -79
- package/src/components/forms/select/select.stories.ts +0 -34
- package/src/components/forms/select/select.ts +0 -36
- package/src/components/forms/select/select.vue +0 -253
- package/src/components/forms/select/stories/exampleOptions.ts +0 -71
- package/src/components/forms/select/stories/overview.vue +0 -60
- package/src/components/forms/switcher/stories/overview.vue +0 -139
- package/src/components/forms/switcher/switcher.stories.ts +0 -33
- package/src/components/forms/switcher/switcher.ts +0 -22
- package/src/components/forms/switcher/switcher.vue +0 -113
- package/src/components/forms/textarea/stories/overview.vue +0 -62
- package/src/components/forms/textarea/textarea.stories.ts +0 -33
- package/src/components/forms/textarea/textarea.ts +0 -38
- package/src/components/forms/textarea/textarea.vue +0 -119
- package/src/components/formsExt/editArea/editArea.stories.ts +0 -72
- package/src/components/formsExt/editArea/editArea.ts +0 -25
- package/src/components/formsExt/editArea/editArea.vue +0 -172
- package/src/components/formsExt/editArea/stories/README.md +0 -17
- package/src/components/formsExt/editArea/stories/overview.vue +0 -66
- package/src/components/formsExt/editInput/editInput.stories.ts +0 -36
- package/src/components/formsExt/editInput/editInput.ts +0 -20
- package/src/components/formsExt/editInput/editInput.vue +0 -57
- package/src/components/formsExt/editInput/stories/overview.vue +0 -54
- package/src/components/formsExt/formsExt.ts +0 -3
- package/src/components/formsExt/radioGroup/radioGroup.stories.ts +0 -51
- package/src/components/formsExt/radioGroup/radioGroup.ts +0 -28
- package/src/components/formsExt/radioGroup/radioGroup.vue +0 -143
- package/src/components/formsExt/radioGroup/stories/overview.vue +0 -78
- package/src/components/formsExt/radioGroup/styles/top-scrollBar.css +0 -52
- package/src/components/helper.js +0 -10
- package/src/components/helpersStories.ts +0 -151
- package/src/components/popup/lib/popup.globalEvents.js +0 -205
- package/src/components/popup/lib/popup.js +0 -702
- package/src/components/popup/lib/worker.globalEvents.js +0 -78
- package/src/components/popup/lib/worker.js +0 -232
- package/src/components/popup/popup/listItem.vue +0 -42
- package/src/components/popup/popup/opener.vue +0 -74
- package/src/components/popup/popup/popup.stories.ts +0 -68
- package/src/components/popup/popup/popup.ts +0 -93
- package/src/components/popup/popup/popup.vue +0 -95
- package/src/components/popup/popup/stories/README.md +0 -34
- package/src/components/popup/popup/stories/listItems.vue +0 -44
- package/src/components/popup/popup/stories/listSubItems.vue +0 -52
- package/src/components/popup/popup/stories/overview.vue +0 -208
- package/src/components/popup/popup/style/popup.css +0 -243
- package/src/components/popup/popup/style/popup.m.css +0 -71
- package/src/components/popup/popup/style/popup.pc.css +0 -28
- package/src/components/popup/popup.ts +0 -3
- package/src/components/popup/worker.ts +0 -1
- package/src/components/tabs/tabs/content.vue +0 -24
- package/src/components/tabs/tabs/stories/README.md +0 -10
- package/src/components/tabs/tabs/tab.vue +0 -52
- package/src/components/tabs/tabs/tabs.stories.ts +0 -171
- package/src/components/tabs/tabs/tabs.ts +0 -22
- package/src/components/tabs/tabs/tabs.vue +0 -64
- package/src/components/tabs/tabs.ts +0 -3
- package/src/core/base/Colors.stories.ts +0 -15
- package/src/core/base/Layout.stories.ts +0 -15
- package/src/core/base/Properties.stories.ts +0 -15
- package/src/core/base/base.mdx +0 -21
- package/src/core/core/core.ts +0 -144
- package/src/core/core/events.ts +0 -54
- package/src/core/core/options.ts +0 -15
- package/src/core/core/state.ts +0 -44
- package/src/core/directives/tooltip.ts +0 -55
- package/src/core/theme/Colors.stories.ts +0 -15
- package/src/core/theme/Properties.stories.ts +0 -15
- package/src/core/theme/theme.mdx +0 -15
- package/src/core/utils/date.ts +0 -164
- package/src/core/utils/device.ts +0 -48
- package/src/core/utils/dom.ts +0 -185
- package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272/gallery.vue" +0 -72
- package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272.mdx" +0 -31
- package/src/core//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272//320/235/320/260/320/261/320/276/321/200 /320/270/320/272/320/276/320/275/320/276/320/272.stories.ts" +0 -14
- package/src/docs/CSS/FAQ.mdx +0 -43
- package/src/docs/CSS//320/236/320/261/321/211/320/270/320/265 /320/274/320/276/320/264/320/270/321/204/320/270/320/272/320/260/321/202/320/276/321/200/321/213.mdx" +0 -156
- package/src/docs/CSS//320/237/320/265/321/200/320/265/320/274/320/265/320/275/320/275/321/213/320/265.mdx +0 -47
- package/src/docs/CSS//320/237/321/200/320/265/320/264/320/277/321/200/320/276/321/206/320/265/321/201/321/201/320/276/321/200/321/213.mdx +0 -15
- package/src/docs/CSS//320/240/320/265/320/272/320/276/320/274/320/265/320/275/320/264/320/260/321/206/320/270/320/270 /320/221/320/255/320/234.mdx" +0 -49
- package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.md +0 -53
- package/src/docs/CSS//320/241/321/202/320/270/320/273/320/270.mdx +0 -4
- package/src/docs/CSS//320/247/321/202/320/276 /321/202/320/260/320/272/320/276/320/265 css /320/274/320/276/320/264/321/203/320/273/321/214.mdx" +0 -53
- package/src/docs/ROADMAP.md +0 -17
- package/src/docs/Roadmap.mdx +0 -4
- package/src/docs//320/222/320/262/320/265/320/264/320/265/320/275/320/270/320/265 /320/262 Storybook.mdx" +0 -323
- package/src/docs//320/232/320/276/320/274/320/277/320/276/320/275/320/265/320/275/321/202/321/213.mdx +0 -20
- package/src/docs//320/237/320/276/320/273/320/265/320/267/320/275/320/260/321/217 /320/270/320/275/321/204/320/276/321/200/320/274/320/260/321/206/320/270/321/217.mdx" +0 -8
- package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260/IDE.mdx" +0 -42
- package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260//320/233/320/270/320/275/321/202/320/265/321/200.mdx" +0 -72
- package/src/docs//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260//320/241/321/202/320/260/320/275/320/264/320/260/321/200/321/202/321/213 /320/272/320/276/320/264/320/260.mdx" +0 -29
- package/src/globals.d.ts +0 -1
- package/src/resources/styles/core/colors.css +0 -204
- package/src/resources/styles/core/components.css +0 -70
- package/src/resources/styles/core/core.ts +0 -10
- package/src/resources/styles/core/forms/clear.css +0 -19
- package/src/resources/styles/core/forms/controls.css +0 -20
- package/src/resources/styles/core/forms/focusable.css +0 -26
- package/src/resources/styles/core/forms/forms.css +0 -100
- package/src/resources/styles/core/icon.css +0 -58
- package/src/resources/styles/core/layout.css +0 -40
- package/src/resources/styles/core/modifiers/as.css +0 -9
- package/src/resources/styles/core/modifiers/ellipsis.css +0 -18
- package/src/resources/styles/core/modifiers/modifiers.css +0 -81
- package/src/resources/styles/core/modifiers/only.css +0 -19
- package/src/resources/styles/core/select.css +0 -16
- package/src/resources/styles/jquery-ui.min.css +0 -6
- package/src/resources/styles/storybook.css +0 -11
- package/src/resources/styles/themes/dark/theme.css +0 -139
- package/src/resources/styles/themes/dark.ts +0 -1
- package/src/resources/styles/themes/light/theme.css +0 -139
- package/src/resources/styles/themes/light.ts +0 -1
- package/src/storybook/components/color.vue +0 -45
- package/src/storybook/components/colors.vue +0 -34
- package/src/storybook/components/icomoon.ts +0 -38
- package/src/storybook/components/properties.vue +0 -82
- package/src/storybook/resources/accessibility.png +0 -0
- package/src/storybook/resources/accessibility.svg +0 -5
- package/src/storybook/resources/addon-library.png +0 -0
- package/src/storybook/resources/assets.png +0 -0
- package/src/storybook/resources/context.png +0 -0
- package/src/storybook/resources/discord.svg +0 -15
- package/src/storybook/resources/docs.png +0 -0
- package/src/storybook/resources/figma-plugin.png +0 -0
- package/src/storybook/resources/github.svg +0 -3
- package/src/storybook/resources/share.png +0 -0
- package/src/storybook/resources/styling.png +0 -0
- package/src/storybook/resources/testing.png +0 -0
- package/src/storybook/resources/theming.png +0 -0
- package/src/storybook/resources/tutorials.svg +0 -12
- package/src/storybook/resources/youtube.svg +0 -4
- package/src//320/224/320/276/320/261/321/200/320/276 /320/277/320/276/320/266/320/260/320/273/320/276/320/262/320/260/321/202/321/214.mdx" +0 -3
- package/tsconfig.json +0 -62
- package/vite.config.ts +0 -91
- /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.ttf +0 -0
- /package/{src/resources/icomoon → icomoon}/fonts/Topvisor-2.woff +0 -0
- /package/{src/resources/icomoon → icomoon}/selection.json +0 -0
package/tabs/tabs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/tabs.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.top-tabs{background:var(--content-background-color);border-radius:8px;border:1px solid var(--color-line-2-opacity);padding:0;display:flex;flex-wrap:wrap;align-items:stretch}.top-tabs_header{padding:6px;margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.top-tabs_contents{border-top:1px solid var(--color-line-2-opacity);width:100%;margin-top:-1px}.top-tabs_tabInput:checked:nth-child(1)~.top-tabs_contents>.top-tabs_content:nth-child(1),.top-tabs_tabInput:checked:nth-child(3)~.top-tabs_contents>.top-tabs_content:nth-child(2),.top-tabs_tabInput:checked:nth-child(5)~.top-tabs_contents>.top-tabs_content:nth-child(3),.top-tabs_tabInput:checked:nth-child(7)~.top-tabs_contents>.top-tabs_content:nth-child(4),.top-tabs_tabInput:checked:nth-child(9)~.top-tabs_contents>.top-tabs_content:nth-child(5),.top-tabs_tabInput:checked:nth-child(11)~.top-tabs_contents>.top-tabs_content:nth-child(6){display:block}.top-tabs_tabLabel{cursor:pointer;border-bottom:2px solid transparent;padding:14px 20px;position:relative;display:flex;align-items:center}.top-tabs_tabLabel:hover{border-color:var(--color-line-2-opacity)}.top-tabs_tabInput:checked+.top-tabs_tabLabel{border-color:var(--color-primary);color:var(--color-primary)}.top-tabs_tabLabel.top-disabled{color:var(--color-text-3)}.top-tabs_content{padding:14px;overflow:auto;display:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.amd.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/utils/date.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.amd.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/utils/device.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
package/utils/dom.amd.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(function(){"use strict"; if(typeof vue === "undefined") var vue = window.Vue;function f(t,e,...n){const i=document.createElement(t);for(const r in e)r.indexOf("on")===0?i[r]=e[r]:i.setAttribute(r,e[r]);return n.forEach(r=>{typeof r=="string"?i.insertAdjacentHTML("beforeend",r):i.append(r)}),i}function o(t){if(!t)return!1;const e=t.getBoundingClientRect();return!!(e.width||e.height)}function c(t){const e=t.getBoundingClientRect();return{top:e.top+window.scrollY,left:e.left+window.scrollX}}function l(t,e){return window.getComputedStyle(t).getPropertyValue(e)}function s(t,e){const n=document.createElement(e);return t.after(n),n.append(t),n}function a(t,e){return u(t,e).find(o)||null}function d(t,e){return u(t,e).findLast(o)||null}function p(t,e){return u(t,e).filter(o)}function u(t,e){return t?[...t.querySelectorAll(e)]:[]}function g(t,e="common",n=void 0){if(t)return t.topData||(t.topData={}),n&&(t.topData[e]=n),n===null&&delete t.topData[e],t.topData[e]}function y(t){t&&delete t.topData}return{genEl:f,isVisible:o,offset:c,css:l,wrap:s,querySelectorVisible:a,querySelectorVisibleLast:d,querySelectorAllVisible:p,querySelectorAllArray:u,storage:g,storageClear:y}});
|
|
2
|
+
//# sourceMappingURL=dom.amd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.amd.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\r\n * Функции для работы с работы с Document Object Model (DOM)\r\n */\r\n\r\n/**\r\n * Создать элемент\r\n * @param {string} tagName\r\n * @param {any} attrs - атрибуты\r\n * @param {Element[]} elsChildrens\r\n * @returns {Element} - созданный элемент\r\n */\r\nfunction genEl (tagName: string, attrs: any, ...elsChildrens: Element[]): Element {\r\n\tconst el: any = document.createElement(tagName);\r\n\r\n\tfor (const name in attrs) {\r\n\t\tif (name.indexOf('on') === 0) {\r\n\t\t\t// events\r\n\t\t\tel[name] = attrs[name];\r\n\t\t} else {\r\n\t\t\tel.setAttribute(name, attrs[name]);\r\n\t\t}\r\n\t}\r\n\r\n\telsChildrens.forEach((elChildren) => {\r\n\t\tif (typeof (elChildren) === 'string') {\r\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\r\n\t\t} else {\r\n\t\t\tel.append(elChildren);\r\n\t\t}\r\n\t});\r\n\r\n\treturn el;\r\n}\r\n\r\n/**\r\n * Проверить видимость элемента\r\n * @param {?Element} el\r\n * @returns boolean - вернет true, если элемент считается видимым\r\n */\r\nfunction isVisible (el?: Element) {\r\n\tif (!el) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\r\n}\r\n\r\n/**\r\n * Получить координаты элемента относительно документа\r\n * @param {Element} el\r\n * @returns {{top: number, left: number}} - координаты элемента относительно документа\r\n */\r\nfunction offset (el: Element): { top: number, left: number } {\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\r\n\treturn {\r\n\t\ttop: boundingClientRect.top + window.scrollY,\r\n\t\tleft: boundingClientRect.left + window.scrollX,\r\n\t};\r\n}\r\n\r\n/**\r\n * Получить значение css свойства элемента\r\n * @param {Element} el\r\n * @param {string} property - имя свойства\r\n * @return {string} - значение css стиля\r\n */\r\nfunction css (el: Element, property: string): string {\r\n\treturn window.getComputedStyle(el).getPropertyValue(property);\r\n}\r\n\r\n/**\r\n * Обернуть элемент и вернуть только что созданный элемент\r\n * @param {Element} el - элемент, который требуется обернуть\r\n * @param {string} tagName - имя тега элемента, в который треубется обернуть элемент\r\n * @returns {Element}\r\n */\r\nfunction wrap (el: Element, tagName: string): Element {\r\n\tconst elWrapper = document.createElement(tagName);\r\n\tel.after(elWrapper);\r\n\r\n\telWrapper.append(el);\r\n\r\n\treturn elWrapper;\r\n}\r\n\r\n/**\r\n * Найти и вернуть первый видимый элемент\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element|null}\r\n */\r\nfunction querySelectorVisible (el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти и вернуть последний видимый элемент\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element|null}\r\n */\r\nfunction querySelectorVisibleLast (el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти видимые элементы\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element[]} - обратите внимание, возвращается не NodeList[], а Element[]\r\n */\r\nfunction querySelectorAllVisible (el: Element, selectors: string): Element[] {\r\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\r\n}\r\n\r\n/**\r\n * Найти элементы и вернуть в виде массива\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element[]}\r\n */\r\nfunction querySelectorAllArray (el: Element, selectors: string): Element[] {\r\n\tif (!el) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn [...el.querySelectorAll(selectors)];\r\n}\r\n\r\n/**\r\n * Хранилище данных элемента\r\n * @param {Element} el\r\n * @param {string} contextName - контекст, обычно используется имя компонента\r\n * @param {?object | null} contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\r\n * @returns {?object} - вернет объект контекста или undefined, если данные контекста не найдены\r\n */\r\nfunction storage (\r\n\tel?: Element & { topData?: any },\r\n\tcontextName: string = 'common', contextData: object | null | undefined = undefined,\r\n): object | undefined {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!el.topData) {\r\n\t\tel.topData = {};\r\n\t}\r\n\r\n\tif (contextData) {\r\n\t\tel.topData[contextName] = contextData;\r\n\t}\r\n\r\n\tif (contextData === null) {\r\n\t\tdelete el.topData[contextName];\r\n\t}\r\n\r\n\treturn el.topData[contextName];\r\n}\r\n\r\n/**\r\n * Очистить хранилище элемента\r\n */\r\nfunction storageClear (el?: Element & { topData?: any }) {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdelete el.topData;\r\n}\r\n\r\nexport default {\r\n\tgenEl,\r\n\tisVisible,\r\n\toffset,\r\n\tcss,\r\n\twrap,\r\n\tquerySelectorVisible,\r\n\tquerySelectorVisibleLast,\r\n\tquerySelectorAllVisible,\r\n\tquerySelectorAllArray,\r\n\tstorage,\r\n\tstorageClear,\r\n};\r\n"],"names":["genEl","tagName","attrs","elsChildrens","el","name","elChildren","isVisible","boundingClientRect","offset","css","property","wrap","elWrapper","querySelectorVisible","selectors","querySelectorAllArray","querySelectorVisibleLast","querySelectorAllVisible","storage","contextName","contextData","storageClear"],"mappings":"+BAWA,SAASA,EAAOC,EAAiBC,KAAeC,EAAkC,CAC3E,MAAAC,EAAU,SAAS,cAAcH,CAAO,EAE9C,UAAWI,KAAQH,EACdG,EAAK,QAAQ,IAAI,IAAM,EAEvBD,EAAAC,CAAI,EAAIH,EAAMG,CAAI,EAErBD,EAAG,aAAaC,EAAMH,EAAMG,CAAI,CAAC,EAItB,OAAAF,EAAA,QAASG,GAAe,CAChC,OAAQA,GAAgB,SACxBF,EAAA,mBAAmB,YAAaE,CAAU,EAE7CF,EAAG,OAAOE,CAAU,CACrB,CACA,EAEMF,CACR,CAOA,SAASG,EAAWH,EAAc,CACjC,GAAI,CAACA,EACG,MAAA,GAGF,MAAAI,EAAqBJ,EAAG,wBAC9B,MAAO,CAAC,EAAEI,EAAmB,OAASA,EAAmB,OAC1D,CAOA,SAASC,EAAQL,EAA4C,CACtD,MAAAI,EAAqBJ,EAAG,wBAEvB,MAAA,CACN,IAAKI,EAAmB,IAAM,OAAO,QACrC,KAAMA,EAAmB,KAAO,OAAO,OAAA,CAEzC,CAQA,SAASE,EAAKN,EAAaO,EAA0B,CACpD,OAAO,OAAO,iBAAiBP,CAAE,EAAE,iBAAiBO,CAAQ,CAC7D,CAQA,SAASC,EAAMR,EAAaH,EAA0B,CAC/C,MAAAY,EAAY,SAAS,cAAcZ,CAAO,EAChD,OAAAG,EAAG,MAAMS,CAAS,EAElBA,EAAU,OAAOT,CAAE,EAEZS,CACR,CAQA,SAASC,EAAsBV,EAAaW,EAAmC,CAC9E,OAAOC,EAAsBZ,EAAIW,CAAS,EAAE,KAAKR,CAAS,GAAK,IAChE,CAQA,SAASU,EAA0Bb,EAAaW,EAAmC,CAClF,OAAOC,EAAsBZ,EAAIW,CAAS,EAAE,SAASR,CAAS,GAAK,IACpE,CAQA,SAASW,EAAyBd,EAAaW,EAA8B,CAC5E,OAAOC,EAAsBZ,EAAIW,CAAS,EAAE,OAAOR,CAAS,CAC7D,CAQA,SAASS,EAAuBZ,EAAaW,EAA8B,CAC1E,OAAKX,EAIE,CAAC,GAAGA,EAAG,iBAAiBW,CAAS,CAAC,EAHjC,EAIT,CASA,SAASI,EACRf,EACAgB,EAAsB,SAAUC,EAAyC,OACpD,CACrB,GAAKjB,EAID,OAACA,EAAG,UACPA,EAAG,QAAU,IAGViB,IACAjB,EAAA,QAAQgB,CAAW,EAAIC,GAGvBA,IAAgB,MACZ,OAAAjB,EAAG,QAAQgB,CAAW,EAGvBhB,EAAG,QAAQgB,CAAW,CAC9B,CAKA,SAASE,EAAclB,EAAkC,CACnDA,GAIL,OAAOA,EAAG,OACX,OAEe,CACd,MAAAJ,EACA,UAAAO,EACA,OAAAE,EACA,IAAAC,EACA,KAAAE,EACA,qBAAAE,EACA,yBAAAG,EACA,wBAAAC,EACA,sBAAAF,EACA,QAAAG,EACA,aAAAG,CACD"}
|
package/utils/dom.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
function f(t, e, ...n) {
|
|
2
|
+
const o = document.createElement(t);
|
|
3
|
+
for (const r in e)
|
|
4
|
+
r.indexOf("on") === 0 ? o[r] = e[r] : o.setAttribute(r, e[r]);
|
|
5
|
+
return n.forEach((r) => {
|
|
6
|
+
typeof r == "string" ? o.insertAdjacentHTML("beforeend", r) : o.append(r);
|
|
7
|
+
}), o;
|
|
8
|
+
}
|
|
9
|
+
function i(t) {
|
|
10
|
+
if (!t)
|
|
11
|
+
return !1;
|
|
12
|
+
const e = t.getBoundingClientRect();
|
|
13
|
+
return !!(e.width || e.height);
|
|
14
|
+
}
|
|
15
|
+
function l(t) {
|
|
16
|
+
const e = t.getBoundingClientRect();
|
|
17
|
+
return {
|
|
18
|
+
top: e.top + window.scrollY,
|
|
19
|
+
left: e.left + window.scrollX
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function c(t, e) {
|
|
23
|
+
return window.getComputedStyle(t).getPropertyValue(e);
|
|
24
|
+
}
|
|
25
|
+
function s(t, e) {
|
|
26
|
+
const n = document.createElement(e);
|
|
27
|
+
return t.after(n), n.append(t), n;
|
|
28
|
+
}
|
|
29
|
+
function a(t, e) {
|
|
30
|
+
return u(t, e).find(i) || null;
|
|
31
|
+
}
|
|
32
|
+
function d(t, e) {
|
|
33
|
+
return u(t, e).findLast(i) || null;
|
|
34
|
+
}
|
|
35
|
+
function p(t, e) {
|
|
36
|
+
return u(t, e).filter(i);
|
|
37
|
+
}
|
|
38
|
+
function u(t, e) {
|
|
39
|
+
return t ? [...t.querySelectorAll(e)] : [];
|
|
40
|
+
}
|
|
41
|
+
function g(t, e = "common", n = void 0) {
|
|
42
|
+
if (t)
|
|
43
|
+
return t.topData || (t.topData = {}), n && (t.topData[e] = n), n === null && delete t.topData[e], t.topData[e];
|
|
44
|
+
}
|
|
45
|
+
function y(t) {
|
|
46
|
+
t && delete t.topData;
|
|
47
|
+
}
|
|
48
|
+
const b = {
|
|
49
|
+
genEl: f,
|
|
50
|
+
isVisible: i,
|
|
51
|
+
offset: l,
|
|
52
|
+
css: c,
|
|
53
|
+
wrap: s,
|
|
54
|
+
querySelectorVisible: a,
|
|
55
|
+
querySelectorVisibleLast: d,
|
|
56
|
+
querySelectorAllVisible: p,
|
|
57
|
+
querySelectorAllArray: u,
|
|
58
|
+
storage: g,
|
|
59
|
+
storageClear: y
|
|
60
|
+
};
|
|
61
|
+
export {
|
|
62
|
+
b as default
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=dom.js.map
|
package/utils/dom.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.js","sources":["../../src/core/utils/dom.ts"],"sourcesContent":["/**\r\n * Функции для работы с работы с Document Object Model (DOM)\r\n */\r\n\r\n/**\r\n * Создать элемент\r\n * @param {string} tagName\r\n * @param {any} attrs - атрибуты\r\n * @param {Element[]} elsChildrens\r\n * @returns {Element} - созданный элемент\r\n */\r\nfunction genEl (tagName: string, attrs: any, ...elsChildrens: Element[]): Element {\r\n\tconst el: any = document.createElement(tagName);\r\n\r\n\tfor (const name in attrs) {\r\n\t\tif (name.indexOf('on') === 0) {\r\n\t\t\t// events\r\n\t\t\tel[name] = attrs[name];\r\n\t\t} else {\r\n\t\t\tel.setAttribute(name, attrs[name]);\r\n\t\t}\r\n\t}\r\n\r\n\telsChildrens.forEach((elChildren) => {\r\n\t\tif (typeof (elChildren) === 'string') {\r\n\t\t\tel.insertAdjacentHTML('beforeend', elChildren);\r\n\t\t} else {\r\n\t\t\tel.append(elChildren);\r\n\t\t}\r\n\t});\r\n\r\n\treturn el;\r\n}\r\n\r\n/**\r\n * Проверить видимость элемента\r\n * @param {?Element} el\r\n * @returns boolean - вернет true, если элемент считается видимым\r\n */\r\nfunction isVisible (el?: Element) {\r\n\tif (!el) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\treturn !!(boundingClientRect.width || boundingClientRect.height);\r\n}\r\n\r\n/**\r\n * Получить координаты элемента относительно документа\r\n * @param {Element} el\r\n * @returns {{top: number, left: number}} - координаты элемента относительно документа\r\n */\r\nfunction offset (el: Element): { top: number, left: number } {\r\n\tconst boundingClientRect = el.getBoundingClientRect();\r\n\r\n\treturn {\r\n\t\ttop: boundingClientRect.top + window.scrollY,\r\n\t\tleft: boundingClientRect.left + window.scrollX,\r\n\t};\r\n}\r\n\r\n/**\r\n * Получить значение css свойства элемента\r\n * @param {Element} el\r\n * @param {string} property - имя свойства\r\n * @return {string} - значение css стиля\r\n */\r\nfunction css (el: Element, property: string): string {\r\n\treturn window.getComputedStyle(el).getPropertyValue(property);\r\n}\r\n\r\n/**\r\n * Обернуть элемент и вернуть только что созданный элемент\r\n * @param {Element} el - элемент, который требуется обернуть\r\n * @param {string} tagName - имя тега элемента, в который треубется обернуть элемент\r\n * @returns {Element}\r\n */\r\nfunction wrap (el: Element, tagName: string): Element {\r\n\tconst elWrapper = document.createElement(tagName);\r\n\tel.after(elWrapper);\r\n\r\n\telWrapper.append(el);\r\n\r\n\treturn elWrapper;\r\n}\r\n\r\n/**\r\n * Найти и вернуть первый видимый элемент\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element|null}\r\n */\r\nfunction querySelectorVisible (el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).find(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти и вернуть последний видимый элемент\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element|null}\r\n */\r\nfunction querySelectorVisibleLast (el: Element, selectors: string): Element | null {\r\n\treturn querySelectorAllArray(el, selectors).findLast(isVisible) || null;\r\n}\r\n\r\n/**\r\n * Найти видимые элементы\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element[]} - обратите внимание, возвращается не NodeList[], а Element[]\r\n */\r\nfunction querySelectorAllVisible (el: Element, selectors: string): Element[] {\r\n\treturn querySelectorAllArray(el, selectors).filter(isVisible);\r\n}\r\n\r\n/**\r\n * Найти элементы и вернуть в виде массива\r\n * @param {?Document|Element} el - корневой элемент поиска\r\n * @param selectors - см. параметр selectors в Document.querySelectorAll()\r\n * @returns {Element[]}\r\n */\r\nfunction querySelectorAllArray (el: Element, selectors: string): Element[] {\r\n\tif (!el) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn [...el.querySelectorAll(selectors)];\r\n}\r\n\r\n/**\r\n * Хранилище данных элемента\r\n * @param {Element} el\r\n * @param {string} contextName - контекст, обычно используется имя компонента\r\n * @param {?object | null} contextData - установить объект с данными, предыдущие данные будут заменены, установите null для удаления данных\r\n * @returns {?object} - вернет объект контекста или undefined, если данные контекста не найдены\r\n */\r\nfunction storage (\r\n\tel?: Element & { topData?: any },\r\n\tcontextName: string = 'common', contextData: object | null | undefined = undefined,\r\n): object | undefined {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (!el.topData) {\r\n\t\tel.topData = {};\r\n\t}\r\n\r\n\tif (contextData) {\r\n\t\tel.topData[contextName] = contextData;\r\n\t}\r\n\r\n\tif (contextData === null) {\r\n\t\tdelete el.topData[contextName];\r\n\t}\r\n\r\n\treturn el.topData[contextName];\r\n}\r\n\r\n/**\r\n * Очистить хранилище элемента\r\n */\r\nfunction storageClear (el?: Element & { topData?: any }) {\r\n\tif (!el) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdelete el.topData;\r\n}\r\n\r\nexport default {\r\n\tgenEl,\r\n\tisVisible,\r\n\toffset,\r\n\tcss,\r\n\twrap,\r\n\tquerySelectorVisible,\r\n\tquerySelectorVisibleLast,\r\n\tquerySelectorAllVisible,\r\n\tquerySelectorAllArray,\r\n\tstorage,\r\n\tstorageClear,\r\n};\r\n"],"names":["genEl","tagName","attrs","elsChildrens","el","name","elChildren","isVisible","boundingClientRect","offset","css","property","wrap","elWrapper","querySelectorVisible","selectors","querySelectorAllArray","querySelectorVisibleLast","querySelectorAllVisible","storage","contextName","contextData","storageClear","DOM"],"mappings":"AAWA,SAASA,EAAOC,GAAiBC,MAAeC,GAAkC;AAC3E,QAAAC,IAAU,SAAS,cAAcH,CAAO;AAE9C,aAAWI,KAAQH;AAClB,IAAIG,EAAK,QAAQ,IAAI,MAAM,IAEvBD,EAAAC,CAAI,IAAIH,EAAMG,CAAI,IAErBD,EAAG,aAAaC,GAAMH,EAAMG,CAAI,CAAC;AAItB,SAAAF,EAAA,QAAQ,CAACG,MAAe;AAChC,IAAA,OAAQA,KAAgB,WACxBF,EAAA,mBAAmB,aAAaE,CAAU,IAE7CF,EAAG,OAAOE,CAAU;AAAA,EACrB,CACA,GAEMF;AACR;AAOA,SAASG,EAAWH,GAAc;AACjC,MAAI,CAACA;AACG,WAAA;AAGF,QAAAI,IAAqBJ,EAAG;AAC9B,SAAO,CAAC,EAAEI,EAAmB,SAASA,EAAmB;AAC1D;AAOA,SAASC,EAAQL,GAA4C;AACtD,QAAAI,IAAqBJ,EAAG;AAEvB,SAAA;AAAA,IACN,KAAKI,EAAmB,MAAM,OAAO;AAAA,IACrC,MAAMA,EAAmB,OAAO,OAAO;AAAA,EAAA;AAEzC;AAQA,SAASE,EAAKN,GAAaO,GAA0B;AACpD,SAAO,OAAO,iBAAiBP,CAAE,EAAE,iBAAiBO,CAAQ;AAC7D;AAQA,SAASC,EAAMR,GAAaH,GAA0B;AAC/C,QAAAY,IAAY,SAAS,cAAcZ,CAAO;AAChD,SAAAG,EAAG,MAAMS,CAAS,GAElBA,EAAU,OAAOT,CAAE,GAEZS;AACR;AAQA,SAASC,EAAsBV,GAAaW,GAAmC;AAC9E,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,KAAKR,CAAS,KAAK;AAChE;AAQA,SAASU,EAA0Bb,GAAaW,GAAmC;AAClF,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,SAASR,CAAS,KAAK;AACpE;AAQA,SAASW,EAAyBd,GAAaW,GAA8B;AAC5E,SAAOC,EAAsBZ,GAAIW,CAAS,EAAE,OAAOR,CAAS;AAC7D;AAQA,SAASS,EAAuBZ,GAAaW,GAA8B;AAC1E,SAAKX,IAIE,CAAC,GAAGA,EAAG,iBAAiBW,CAAS,CAAC,IAHjC;AAIT;AASA,SAASI,EACRf,GACAgB,IAAsB,UAAUC,IAAyC,QACpD;AACrB,MAAKjB;AAID,WAACA,EAAG,YACPA,EAAG,UAAU,KAGViB,MACAjB,EAAA,QAAQgB,CAAW,IAAIC,IAGvBA,MAAgB,QACZ,OAAAjB,EAAG,QAAQgB,CAAW,GAGvBhB,EAAG,QAAQgB,CAAW;AAC9B;AAKA,SAASE,EAAclB,GAAkC;AACxD,EAAKA,KAIL,OAAOA,EAAG;AACX;AAEA,MAAemB,IAAA;AAAA,EACd,OAAAvB;AAAA,EACA,WAAAO;AAAA,EACA,QAAAE;AAAA,EACA,KAAAC;AAAA,EACA,MAAAE;AAAA,EACA,sBAAAE;AAAA,EACA,0BAAAG;AAAA,EACA,yBAAAC;AAAA,EACA,uBAAAF;AAAA,EACA,SAAAG;AAAA,EACA,cAAAG;AACD;"}
|
package/.storybook/TopTheme.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { global } from '@storybook/global';
|
|
2
|
-
|
|
3
|
-
import light from '@/resources/styles/themes/light/theme.css?raw';
|
|
4
|
-
import dark from '@/resources/styles/themes/dark/theme.css?raw';
|
|
5
|
-
|
|
6
|
-
export const themes = {
|
|
7
|
-
light,
|
|
8
|
-
dark,
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Загрузка выбранной темы
|
|
13
|
-
* Тема, указанная в адресной строке приоритетна
|
|
14
|
-
* @returns {keyof themes} - имя темы
|
|
15
|
-
*/
|
|
16
|
-
function load() {
|
|
17
|
-
let theme = location.search.match(/topTheme:(\w+)/)?.[1];
|
|
18
|
-
if (!theme) theme = localStorage.getItem('topTheme');
|
|
19
|
-
if (!theme) theme = 'light';
|
|
20
|
-
|
|
21
|
-
setCSS(theme);
|
|
22
|
-
|
|
23
|
-
return theme;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Сохранение выбранной темы
|
|
28
|
-
* @param {keyof themes} theme
|
|
29
|
-
*/
|
|
30
|
-
function save(theme) {
|
|
31
|
-
localStorage.setItem('topTheme', theme);
|
|
32
|
-
|
|
33
|
-
setCSS(theme);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Установить тему
|
|
38
|
-
* @param {keyof themes} theme
|
|
39
|
-
*/
|
|
40
|
-
function setCSS(theme) {
|
|
41
|
-
// см. preview-head.html
|
|
42
|
-
if (global.topThemeStyle.dataset.theme !== theme) {
|
|
43
|
-
global.topThemeStyle.dataset.theme = theme;
|
|
44
|
-
|
|
45
|
-
global.topThemeStyle.innerHTML = themes[theme];
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Получить стили текущей темы
|
|
51
|
-
* @returns css стили
|
|
52
|
-
*/
|
|
53
|
-
export function getCurrentCSS() {
|
|
54
|
-
return global.topThemeStyle.innerHTML;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export const decorator = (story, context) => {
|
|
58
|
-
save(context.globals.topTheme);
|
|
59
|
-
|
|
60
|
-
return story(context);
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
export const type = {
|
|
64
|
-
description: 'Выбор темы',
|
|
65
|
-
defaultValue: load(),
|
|
66
|
-
toolbar: {
|
|
67
|
-
title: 'Выбор темы',
|
|
68
|
-
items: [
|
|
69
|
-
{
|
|
70
|
-
icon: 'sun',
|
|
71
|
-
title: 'light',
|
|
72
|
-
value: 'light'
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
icon: 'moon',
|
|
76
|
-
title: 'dark',
|
|
77
|
-
value: 'dark'
|
|
78
|
-
}
|
|
79
|
-
],
|
|
80
|
-
dynamicTitle: true
|
|
81
|
-
},
|
|
82
|
-
};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { create } from '@storybook/theming/create';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Получение имени выбранной темы
|
|
5
|
-
*/
|
|
6
|
-
function getName() {
|
|
7
|
-
let theme = location.search.match(/topTheme:(\w+)/)?.[1];
|
|
8
|
-
if (!theme) theme = localStorage.getItem('topTheme');
|
|
9
|
-
if (!theme) theme = 'light';
|
|
10
|
-
|
|
11
|
-
return theme;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Получение настроек выбранной темы
|
|
16
|
-
* Для смены темы Storybook надо перезагружать страницу
|
|
17
|
-
*/
|
|
18
|
-
export function get() {
|
|
19
|
-
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
20
|
-
return themes.dark;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return themes.light;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// https://storybook.js.org/docs/vue/configure/theming
|
|
27
|
-
const themeBase = {
|
|
28
|
-
brandTitle: 'Topvisor Princip',
|
|
29
|
-
brandUrl: 'https://topvisor.com',
|
|
30
|
-
brandTarget: '_blank',
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export const themes = {
|
|
34
|
-
light: create({
|
|
35
|
-
...themeBase,
|
|
36
|
-
base: 'light',
|
|
37
|
-
brandImage: 'https://topvisor.com/images/ru/logo/mods/light/tv.svg',
|
|
38
|
-
}),
|
|
39
|
-
dark: create({
|
|
40
|
-
...themeBase,
|
|
41
|
-
base: 'dark',
|
|
42
|
-
brandImage: 'https://topvisor.com/images/ru/logo/mods/dark/tv.svg',
|
|
43
|
-
})
|
|
44
|
-
}
|
package/.storybook/main.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type { StorybookConfig } from '@storybook/vue3-vite';
|
|
2
|
-
import { dirname, join } from 'path';
|
|
3
|
-
|
|
4
|
-
function getAbsolutePath (value: string): string {
|
|
5
|
-
return dirname(require.resolve(join(value, 'package.json')));
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const config = {
|
|
9
|
-
stories: [
|
|
10
|
-
'../src/**/*.mdx',
|
|
11
|
-
'../src/**/*.stories.@(js|jsx|mjs|ts|tsx)',
|
|
12
|
-
],
|
|
13
|
-
addons: [
|
|
14
|
-
// https://storybook.js.org/docs/react/essentials/introduction
|
|
15
|
-
// getAbsolutePath("@storybook/addon-backgrounds"),
|
|
16
|
-
getAbsolutePath('@storybook/addon-controls'),
|
|
17
|
-
|
|
18
|
-
// https://github.com/storybookjs/storybook/issues/23787
|
|
19
|
-
getAbsolutePath('@storybook/addon-actions'),
|
|
20
|
-
getAbsolutePath('@storybook/addon-docs'),
|
|
21
|
-
getAbsolutePath('@storybook/addon-highlight'),
|
|
22
|
-
getAbsolutePath('@storybook/addon-measure'),
|
|
23
|
-
getAbsolutePath('@storybook/addon-outline'),
|
|
24
|
-
getAbsolutePath('@storybook/addon-toolbars'),
|
|
25
|
-
getAbsolutePath('@storybook/addon-viewport'),
|
|
26
|
-
|
|
27
|
-
getAbsolutePath('@storybook/addon-links'),
|
|
28
|
-
getAbsolutePath('@storybook/addon-interactions'),
|
|
29
|
-
getAbsolutePath('@storybook/addon-a11y'),
|
|
30
|
-
getAbsolutePath('@storybook/addon-designs'),
|
|
31
|
-
getAbsolutePath('@storybook/theming'),
|
|
32
|
-
getAbsolutePath('storybook-addon-pseudo-states'),
|
|
33
|
-
],
|
|
34
|
-
framework: {
|
|
35
|
-
name: '@storybook/vue3-vite',
|
|
36
|
-
options: {},
|
|
37
|
-
},
|
|
38
|
-
docs: {
|
|
39
|
-
autodocs: 'tag',
|
|
40
|
-
},
|
|
41
|
-
} satisfies StorybookConfig;
|
|
42
|
-
|
|
43
|
-
export default config;
|
package/.storybook/manager.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { addons } from '@storybook/manager-api';
|
|
2
|
-
import * as TopThemeManager from './TopThemeManager';
|
|
3
|
-
|
|
4
|
-
addons.setConfig({
|
|
5
|
-
isFullscreen2: false,
|
|
6
|
-
showNav: true,
|
|
7
|
-
showPanel: true,
|
|
8
|
-
panelPosition: 'right',
|
|
9
|
-
enableShortcuts: true,
|
|
10
|
-
showToolbar: true,
|
|
11
|
-
theme: TopThemeManager.get(),
|
|
12
|
-
selectedPanel: undefined,
|
|
13
|
-
initialActive: 'sidebar',
|
|
14
|
-
sidebar: {
|
|
15
|
-
showRoots: true,
|
|
16
|
-
collapsedRoots: [
|
|
17
|
-
'docs',
|
|
18
|
-
'core',
|
|
19
|
-
],
|
|
20
|
-
},
|
|
21
|
-
toolbar: {
|
|
22
|
-
title: { hidden: false },
|
|
23
|
-
zoom: { hidden: false },
|
|
24
|
-
eject: { hidden: false },
|
|
25
|
-
copy: { hidden: false },
|
|
26
|
-
fullscreen: { hidden: false },
|
|
27
|
-
},
|
|
28
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<link
|
|
2
|
-
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300..800&display=swap"
|
|
3
|
-
rel="stylesheet"
|
|
4
|
-
crossorigin="anonymous"
|
|
5
|
-
>
|
|
6
|
-
|
|
7
|
-
<link
|
|
8
|
-
href="/src/resources/styles/jquery-ui.min.css"
|
|
9
|
-
rel="stylesheet"
|
|
10
|
-
crossorigin="anonymous"
|
|
11
|
-
>
|
|
12
|
-
|
|
13
|
-
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
|
14
|
-
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>
|
|
15
|
-
|
|
16
|
-
<style id="topThemeStyle"></style>
|
package/.storybook/preview.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { Preview } from '@storybook/vue3';
|
|
2
|
-
import * as TopTheme from './TopTheme';
|
|
3
|
-
import * as TopThemeManager from './TopThemeManager';
|
|
4
|
-
import vModelDecorator from './vue/vModelDecorator';
|
|
5
|
-
import coreDecorator from './vue/coreDecorator';
|
|
6
|
-
import Core from '@/core/core/core';
|
|
7
|
-
|
|
8
|
-
Core.defineOptions({});
|
|
9
|
-
|
|
10
|
-
import '@/resources/styles/storybook.css';
|
|
11
|
-
import '@/resources/styles/core/core';
|
|
12
|
-
import '@/resources/icomoon/style.css';
|
|
13
|
-
|
|
14
|
-
const preview = {
|
|
15
|
-
parameters: {
|
|
16
|
-
actions: { argTypesRegex: '^on[A-Z].*' },
|
|
17
|
-
controls: {
|
|
18
|
-
matchers: {
|
|
19
|
-
color: /(background|color)$/i,
|
|
20
|
-
date: /Date$/,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
docs: {
|
|
24
|
-
theme: TopThemeManager.get(),
|
|
25
|
-
},
|
|
26
|
-
options: {
|
|
27
|
-
storySort: {
|
|
28
|
-
order: [
|
|
29
|
-
'Добро пожаловать',
|
|
30
|
-
'docs',
|
|
31
|
-
'core',
|
|
32
|
-
'components',
|
|
33
|
-
],
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
decorators: [
|
|
38
|
-
// если декораторы меняют args, то show code перестает работать и выводит {} satisfies Story
|
|
39
|
-
TopTheme.decorator,
|
|
40
|
-
coreDecorator,
|
|
41
|
-
vModelDecorator,
|
|
42
|
-
],
|
|
43
|
-
globalTypes: {
|
|
44
|
-
topTheme: TopTheme.type,
|
|
45
|
-
},
|
|
46
|
-
} satisfies Preview;
|
|
47
|
-
|
|
48
|
-
export default preview;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Preview } from '@storybook/vue3';
|
|
2
|
-
import { getCurrentInstance } from 'vue';
|
|
3
|
-
import Core from '@/core/core/core';
|
|
4
|
-
|
|
5
|
-
type Decorator = Required<Preview>['decorators'][number];
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Подключение Core UI
|
|
9
|
-
*/
|
|
10
|
-
const coreDecorator: Decorator = (story, context) => {
|
|
11
|
-
const app = getCurrentInstance()?.appContext.app;
|
|
12
|
-
app?.use(Core, {
|
|
13
|
-
dateFormat: 'd.m.Y',
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
return story(context);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export default coreDecorator;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { Preview } from '@storybook/vue3';
|
|
2
|
-
import { useArgs } from '@storybook/preview-api';
|
|
3
|
-
|
|
4
|
-
type Decorator = Required<Preview>['decorators'][number];
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Двусторонняя привязка v-model vue и args storybook
|
|
8
|
-
*/
|
|
9
|
-
const vModelDecorator: Decorator = (story, context) => {
|
|
10
|
-
const [args, updateArgs] = useArgs();
|
|
11
|
-
|
|
12
|
-
if ('modelValue' in args) {
|
|
13
|
-
const onUpdate = args['onUpdate:model-value'] || args['onUpdate:modelValue'];
|
|
14
|
-
args['onUpdate:model-value'] = undefined;
|
|
15
|
-
|
|
16
|
-
args['onUpdate:modelValue'] = (...params) => {
|
|
17
|
-
onUpdate?.(...params);
|
|
18
|
-
|
|
19
|
-
const modelValue = params[0] === undefined ? null : params[0];
|
|
20
|
-
updateArgs({ modelValue });
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return story(context);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export default vModelDecorator;
|
package/.vscode/extensions.json
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"key": "ctrl+shift+alt+u",
|
|
4
|
-
"command": "git.pull"
|
|
5
|
-
},
|
|
6
|
-
{
|
|
7
|
-
"key": "ctrl+alt+r",
|
|
8
|
-
"command": "git.cleanAll"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"key": "ctrl+alt+s",
|
|
12
|
-
"command": "git.commit"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"key": "ctrl+shift+alt+s",
|
|
16
|
-
"command": "git.push"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"key": "ctrl+shift+alt+e",
|
|
20
|
-
"command": "git.openChange"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"key": "ctrl+q",
|
|
24
|
-
"command": "workbench.action.navigateToLastEditLocation"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"key": "f4",
|
|
28
|
-
"command": "workbench.action.toggleZenMode"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"key": "f7",
|
|
32
|
-
"command": "outline.focus"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"key": "alt+1",
|
|
36
|
-
"command": "workbench.files.action.showActiveFileInExplorer"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"key": "alt+2",
|
|
40
|
-
"command": "copyRelativeFilePath"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"key": "alt+3",
|
|
44
|
-
"command": "revealFileInOS"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"key": "ctrl+c",
|
|
48
|
-
"command": "-gitlens.views.commits.copy",
|
|
49
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.commits/"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"key": "ctrl+c",
|
|
53
|
-
"command": "-gitlens.views.branches.copy",
|
|
54
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.branches/"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"key": "ctrl+c",
|
|
58
|
-
"command": "-gitlens.views.fileHistory.copy",
|
|
59
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.fileHistory/"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"key": "ctrl+c",
|
|
63
|
-
"command": "-gitlens.views.contributors.copy",
|
|
64
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.contributors/"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"key": "ctrl+c",
|
|
68
|
-
"command": "-gitlens.views.lineHistory.copy",
|
|
69
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.lineHistory/"
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"key": "ctrl+c",
|
|
73
|
-
"command": "-gitlens.views.remotes.copy",
|
|
74
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.remotes/"
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"key": "ctrl+c",
|
|
78
|
-
"command": "-gitlens.views.repositories.copy",
|
|
79
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.repositories/"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"key": "ctrl+c",
|
|
83
|
-
"command": "-gitlens.views.searchAndCompare.copy",
|
|
84
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.searchAndCompare\\b/"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"key": "ctrl+c",
|
|
88
|
-
"command": "-gitlens.views.stashes.copy",
|
|
89
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.stashes/"
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"key": "ctrl+c",
|
|
93
|
-
"command": "-gitlens.views.tags.copy",
|
|
94
|
-
"when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.tags/"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"key": "ctrl+shift+d",
|
|
98
|
-
"command": "ftpkr.download"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
"key": "ctrl+shift+u",
|
|
102
|
-
"command": "ftpkr.upload"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"key": "ctrl+shift+alt+r",
|
|
106
|
-
"command": "git.revertSelectedRanges"
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"key": "ctrl+k ctrl+r",
|
|
110
|
-
"command": "-git.revertSelectedRanges",
|
|
111
|
-
"when": "isInDiffEditor && !operationInProgress"
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"key": "alt+4",
|
|
115
|
-
"command": "-workbench.action.openEditorAtIndex4"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"key": "alt+4",
|
|
119
|
-
"command": "gl.openActiveFile"
|
|
120
|
-
}
|
|
121
|
-
]
|
package/.vscode/settings.json
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"git.autofetch": true,
|
|
3
|
-
"git.confirmSync": false,
|
|
4
|
-
"git.enableSmartCommit": true,
|
|
5
|
-
"zenMode.hideActivityBar": false,
|
|
6
|
-
"zenMode.hideLineNumbers": false,
|
|
7
|
-
"[json]": {
|
|
8
|
-
"editor.defaultFormatter": "vscode.json-language-features"
|
|
9
|
-
},
|
|
10
|
-
"[javascript]": {
|
|
11
|
-
"editor.defaultFormatter": "vscode.typescript-language-features"
|
|
12
|
-
},
|
|
13
|
-
"intelephense.phpdoc.useFullyQualifiedNames": true,
|
|
14
|
-
"intelephense.format.braces": "k&r",
|
|
15
|
-
"explorer.confirmDelete": false,
|
|
16
|
-
"zenMode.hideStatusBar": false,
|
|
17
|
-
"zenMode.hideTabs": false,
|
|
18
|
-
"zenMode.centerLayout": false,
|
|
19
|
-
"zenMode.fullScreen": false,
|
|
20
|
-
"editor.lineHeight": 17,
|
|
21
|
-
// "editor.hover.enabled": false,
|
|
22
|
-
"editor.hover.delay": 1000,
|
|
23
|
-
"workbench.tree.indent": 24,
|
|
24
|
-
"workbench.editor.pinnedTabSizing": "shrink",
|
|
25
|
-
"workbench.editor.highlightModifiedTabs": true,
|
|
26
|
-
"editor.rulers": [
|
|
27
|
-
150
|
|
28
|
-
],
|
|
29
|
-
"editor.formatOnType": true,
|
|
30
|
-
"git.allowForcePush": false,
|
|
31
|
-
"npm.packageManager": "npm",
|
|
32
|
-
"files.eol": "auto",
|
|
33
|
-
"html.format.wrapAttributes": "force-expand-multiline",
|
|
34
|
-
"css.format.newlineBetweenRules": false,
|
|
35
|
-
"css.format.maxPreserveNewLines": 2,
|
|
36
|
-
"css.format.spaceAroundSelectorSeparator": true,
|
|
37
|
-
"css.lint.emptyRules": "ignore",
|
|
38
|
-
"vue.codeLens.enabled": false,
|
|
39
|
-
"git.useEditorAsCommitInput": false,
|
|
40
|
-
"git.postCommitCommand": "sync",
|
|
41
|
-
"files.exclude": {
|
|
42
|
-
"**/nbproject": true,
|
|
43
|
-
"**/node_modules": true,
|
|
44
|
-
},
|
|
45
|
-
"typescript.tsdk": "node_modules/typescript/lib"
|
|
46
|
-
}
|
package/Dockerfile
DELETED