@dxtmisha/scripts 0.11.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -0
- package/ai-resources/componentMaterials.md +19 -0
- package/ai-resources/componentPrompt.md +381 -0
- package/ai-resources/componentWiki.md +13 -0
- package/bin/arguments.ts +168 -0
- package/bin/build-packages.ts +34 -3
- package/bin/build-publish-packages.ts +12 -2
- package/bin/design-component.ts +7 -1
- package/bin/design-constructor.ts +22 -3
- package/bin/design-figma.ts +26 -4
- package/bin/design-flags.ts +14 -2
- package/bin/design-library.ts +7 -1
- package/bin/design-package.ts +29 -5
- package/bin/design-prompt.ts +27 -3
- package/bin/design-screenshot.ts +12 -2
- package/bin/design-types-save.ts +32 -5
- package/bin/design-types.ts +32 -6
- package/bin/design-ui.ts +21 -3
- package/bin/design-wiki-storm.ts +11 -3
- package/dist/AiZAi-BiLAcdFy.js +232 -0
- package/dist/PropertiesConfig-BKZz_FWW.js +262 -0
- package/{src/config.ts → dist/config.d.ts} +185 -158
- package/dist/config.js +20 -0
- package/dist/figmaApiTypes-CArSsNW8.js +6 -0
- package/dist/library-ai.d.ts +482 -0
- package/dist/library-ai.js +2 -0
- package/dist/library-figma.d.ts +462 -0
- package/dist/library-figma.js +75 -0
- package/dist/library-ui.d.ts +586 -0
- package/dist/library-ui.js +3760 -0
- package/dist/library.d.ts +4910 -0
- package/dist/library.js +1568 -0
- package/dist/propertyTypes-C64u6rT3.js +236 -0
- package/package.json +76 -27
- package/bin/ai-doc.ts +0 -7
- package/bin/build-functional.ts +0 -5
- package/bin/design-component-wiki.ts +0 -11
- package/src/classes/Ai/AiAbstract.ts +0 -242
- package/src/classes/Ai/AiClaude.ts +0 -26
- package/src/classes/Ai/AiClaudeAgent.ts +0 -16
- package/src/classes/Ai/AiClaudeAgentLite.ts +0 -86
- package/src/classes/Ai/AiClaudeCli.ts +0 -24
- package/src/classes/Ai/AiClaudeCliLite.ts +0 -108
- package/src/classes/Ai/AiClaudeLite.ts +0 -112
- package/src/classes/Ai/AiDoc.ts +0 -81
- package/src/classes/Ai/AiDocItem.ts +0 -27
- package/src/classes/Ai/AiDocItemAbstract.ts +0 -209
- package/src/classes/Ai/AiDocItemClasses.ts +0 -27
- package/src/classes/Ai/AiDocItemComposables.ts +0 -20
- package/src/classes/Ai/AiDocType.ts +0 -45
- package/src/classes/Ai/AiGoogle.ts +0 -26
- package/src/classes/Ai/AiGoogleCli.ts +0 -24
- package/src/classes/Ai/AiGoogleCliLite.ts +0 -108
- package/src/classes/Ai/AiGoogleLite.ts +0 -78
- package/src/classes/Ai/AiOpenAi.ts +0 -26
- package/src/classes/Ai/AiOpenAiLite.ts +0 -107
- package/src/classes/Ai/AiZAi.ts +0 -17
- package/src/classes/Ai/AiZAiLite.ts +0 -77
- package/src/classes/Ai/ApiTmp.ts +0 -43
- package/src/classes/BrowserItem.ts +0 -408
- package/src/classes/Build/BuildFunctional.ts +0 -54
- package/src/classes/Build/BuildPackages.ts +0 -137
- package/src/classes/Build/BuildPublishPackages.ts +0 -105
- package/src/classes/BuildItem.ts +0 -187
- package/src/classes/Component/ComponentCreator.ts +0 -45
- package/src/classes/Component/ComponentItem.ts +0 -161
- package/src/classes/Component/ComponentWiki.ts +0 -258
- package/src/classes/Component/ComponentWikiFile.ts +0 -138
- package/src/classes/Design/DesignCommand.ts +0 -243
- package/src/classes/Design/DesignComponent.ts +0 -824
- package/src/classes/Design/DesignConstructor.ts +0 -222
- package/src/classes/Design/DesignConstructors.ts +0 -101
- package/src/classes/Design/DesignFigma.ts +0 -61
- package/src/classes/Design/DesignFlags.ts +0 -215
- package/src/classes/Design/DesignReplace.ts +0 -672
- package/src/classes/Design/DesignScreenshot.ts +0 -140
- package/src/classes/Design/DesignStructure.ts +0 -201
- package/src/classes/Design/DesignStructureClasses.ts +0 -105
- package/src/classes/Design/DesignStructureItemAbstract.ts +0 -52
- package/src/classes/Design/DesignStructureRead.ts +0 -349
- package/src/classes/Design/DesignStructureStyles.ts +0 -45
- package/src/classes/Design/DesignTypes.ts +0 -94
- package/src/classes/Design/DesignTypesAi.ts +0 -135
- package/src/classes/Design/DesignTypesDescription.ts +0 -121
- package/src/classes/Design/DesignTypesMake.ts +0 -460
- package/src/classes/Design/DesignTypesMcp.ts +0 -90
- package/src/classes/Design/DesignTypesPrompts.ts +0 -332
- package/src/classes/Design/DesignTypescript.ts +0 -244
- package/src/classes/Design/DesignUi.ts +0 -143
- package/src/classes/Design/DesignWiki.ts +0 -52
- package/src/classes/Design/DesignWikiStorm.ts +0 -95
- package/src/classes/Design/DesignWikiStormItem.ts +0 -316
- package/src/classes/FigmaApi.ts +0 -190
- package/src/classes/Git/GitRead.ts +0 -261
- package/src/classes/Library/LibraryAiMcpItem.ts +0 -67
- package/src/classes/Library/LibraryAiPrompt.ts +0 -268
- package/src/classes/Library/LibraryAiPromptItem.ts +0 -331
- package/src/classes/Library/LibraryAiWiki.ts +0 -127
- package/src/classes/Library/LibraryAiWikiItem.ts +0 -79
- package/src/classes/Library/LibraryExport.ts +0 -167
- package/src/classes/Library/LibraryFlags.ts +0 -62
- package/src/classes/Library/LibraryItems.ts +0 -138
- package/src/classes/Library/LibraryList.ts +0 -189
- package/src/classes/Library/LibraryMedia.ts +0 -139
- package/src/classes/Library/LibraryPlugin.ts +0 -73
- package/src/classes/Library/LibraryTypes.ts +0 -130
- package/src/classes/Package/PackageFile.ts +0 -154
- package/src/classes/Package/PackageInit.ts +0 -54
- package/src/classes/Package/PackageItem.ts +0 -329
- package/src/classes/Properties/Properties.ts +0 -175
- package/src/classes/Properties/PropertiesCache.ts +0 -248
- package/src/classes/Properties/PropertiesConfig.ts +0 -213
- package/src/classes/Properties/PropertiesConvector.ts +0 -52
- package/src/classes/Properties/PropertiesFile.ts +0 -522
- package/src/classes/Properties/PropertiesImport.ts +0 -182
- package/src/classes/Properties/PropertiesItems.ts +0 -605
- package/src/classes/Properties/PropertiesKeys.ts +0 -121
- package/src/classes/Properties/PropertiesMain.ts +0 -138
- package/src/classes/Properties/PropertiesPalette.ts +0 -149
- package/src/classes/Properties/PropertiesPath.ts +0 -193
- package/src/classes/Properties/PropertiesScss.ts +0 -261
- package/src/classes/Properties/PropertiesSeparator.ts +0 -118
- package/src/classes/Properties/PropertiesSettings.ts +0 -104
- package/src/classes/Properties/PropertiesStandard.ts +0 -180
- package/src/classes/Properties/PropertiesTool.ts +0 -80
- package/src/classes/Properties/PropertiesTypes.ts +0 -147
- package/src/classes/Properties/PropertiesValues.ts +0 -75
- package/src/classes/Properties/PropertiesWrap.ts +0 -187
- package/src/classes/Properties/convector/convectorColor.ts +0 -27
- package/src/classes/Properties/convector/convectorFontFamilies.ts +0 -18
- package/src/classes/Properties/convector/convectorShadow.ts +0 -61
- package/src/classes/Properties/convector/convectorTypography.ts +0 -19
- package/src/classes/Properties/to/PropertiesToAbstract.ts +0 -51
- package/src/classes/Properties/to/PropertiesToAnimate.ts +0 -59
- package/src/classes/Properties/to/PropertiesToClass.ts +0 -49
- package/src/classes/Properties/to/PropertiesToClone.ts +0 -114
- package/src/classes/Properties/to/PropertiesToComponent.ts +0 -52
- package/src/classes/Properties/to/PropertiesToDrag.ts +0 -231
- package/src/classes/Properties/to/PropertiesToDuplicate.ts +0 -165
- package/src/classes/Properties/to/PropertiesToFull.ts +0 -36
- package/src/classes/Properties/to/PropertiesToLink.ts +0 -259
- package/src/classes/Properties/to/PropertiesToMedia.ts +0 -187
- package/src/classes/Properties/to/PropertiesToMulti.ts +0 -101
- package/src/classes/Properties/to/PropertiesToNone.ts +0 -46
- package/src/classes/Properties/to/PropertiesToPalette.ts +0 -241
- package/src/classes/Properties/to/PropertiesToProperty.ts +0 -31
- package/src/classes/Properties/to/PropertiesToRemove.ts +0 -33
- package/src/classes/Properties/to/PropertiesToReplace.ts +0 -77
- package/src/classes/Properties/to/PropertiesToRoot.ts +0 -40
- package/src/classes/Properties/to/PropertiesToSimilar.ts +0 -128
- package/src/classes/Properties/to/PropertiesToSort.ts +0 -146
- package/src/classes/Properties/to/PropertiesToState.ts +0 -65
- package/src/classes/Properties/to/PropertiesToStyle.ts +0 -52
- package/src/classes/Properties/to/PropertiesToSub.ts +0 -95
- package/src/classes/Properties/to/PropertiesToSubclass.ts +0 -76
- package/src/classes/Properties/to/PropertiesToVar.ts +0 -194
- package/src/classes/Properties/to/PropertiesToVariable.ts +0 -176
- package/src/classes/Styles/Styles.ts +0 -247
- package/src/classes/Styles/StylesClasses.ts +0 -86
- package/src/classes/Styles/StylesProperties.ts +0 -197
- package/src/classes/Styles/StylesRoot.ts +0 -103
- package/src/classes/Styles/StylesTool.ts +0 -112
- package/src/classes/Styles/to/StylesToAbstract.ts +0 -93
- package/src/classes/Styles/to/StylesToAnimate.ts +0 -19
- package/src/classes/Styles/to/StylesToClass.ts +0 -25
- package/src/classes/Styles/to/StylesToClassFull.ts +0 -19
- package/src/classes/Styles/to/StylesToContainer.ts +0 -24
- package/src/classes/Styles/to/StylesToMedia.ts +0 -19
- package/src/classes/Styles/to/StylesToProperty.ts +0 -123
- package/src/classes/Styles/to/StylesToRoot.ts +0 -14
- package/src/classes/Styles/to/StylesToSelector.ts +0 -71
- package/src/classes/Styles/to/StylesToVar.ts +0 -105
- package/src/classes/Styles/to/StylesToVirtual.ts +0 -33
- package/src/composables/useAi.ts +0 -38
- package/src/demo/ai.ts +0 -10
- package/src/functions/getComponentPaths.ts +0 -13
- package/src/functions/getConfigAi.ts +0 -14
- package/src/functions/getConstructorProperties.ts +0 -54
- package/src/functions/getDirname.ts +0 -17
- package/src/functions/getNameDirByPaths.ts +0 -16
- package/src/functions/getPackageJson.ts +0 -19
- package/src/functions/hasNativeDirname.ts +0 -8
- package/src/functions/run.ts +0 -47
- package/src/functions/toPathStandardSep.ts +0 -14
- package/src/library-ai.ts +0 -10
- package/src/library.ts +0 -73
- package/src/media/ai/ai-doc-types.ts +0 -21
- package/src/media/properties/css.ts +0 -634
- package/src/media/properties/cssSelector.ts +0 -74
- package/src/media/properties/cssVirtual.ts +0 -12
- package/src/media/properties/listSort.ts +0 -113
- package/src/media/properties/style.ts +0 -81
- package/src/media/templates/component/DesignComponent.mdx +0 -30
- package/src/media/templates/component/DesignComponent.stories.ts +0 -34
- package/src/media/templates/component/DesignComponent.vue +0 -54
- package/src/media/templates/component/DesignComponentAiWiki.vue +0 -25
- package/src/media/templates/component/index.ts +0 -13
- package/src/media/templates/component/props.ts +0 -27
- package/src/media/templates/component/styleToken.scss +0 -17
- package/src/media/templates/component/wiki.ts +0 -13
- package/src/media/templates/component/wikiData.ts +0 -28
- package/src/media/templates/componentDoc/ComponentDoc.vue +0 -26
- package/src/media/templates/componentDoc/index.ts +0 -12
- package/src/media/templates/componentDoc/materials/README.md +0 -8
- package/src/media/templates/componentDoc/materials/prompt.md +0 -38
- package/src/media/templates/componentDoc/subcomponents/_.gitignore.txt +0 -0
- package/src/media/templates/componentDoc/types.ts +0 -15
- package/src/media/templates/componentDoc/wiki/ComponentDoc.mdx +0 -13
- package/src/media/templates/componentDoc/wiki/ComponentDoc.stories.ts +0 -24
- package/src/media/templates/componentDoc/wiki/prompt.md +0 -41
- package/src/media/templates/constructors/Constructors.ts +0 -33
- package/src/media/templates/constructors/ConstructorsDesign.tsx +0 -129
- package/src/media/templates/constructors/basicTypes.ts +0 -0
- package/src/media/templates/constructors/index.ts +0 -5
- package/src/media/templates/constructors/props.ts +0 -28
- package/src/media/templates/constructors/style.scss +0 -5
- package/src/media/templates/constructors/types.ts +0 -47
- package/src/media/templates/packages/figma/README.md +0 -1
- package/src/media/templates/packages/figma/_.gitignore.txt +0 -29
- package/src/media/templates/packages/figma/ai.sample.config.ts +0 -2
- package/src/media/templates/packages/figma/design.config.json +0 -3
- package/src/media/templates/packages/figma/index.html +0 -12
- package/src/media/templates/packages/figma/manifest.json +0 -25
- package/src/media/templates/packages/figma/package.json +0 -37
- package/src/media/templates/packages/figma/src/App.vue +0 -9
- package/src/media/templates/packages/figma/src/classes/_.gitignore.txt +0 -1
- package/src/media/templates/packages/figma/src/code.ts +0 -16
- package/src/media/templates/packages/figma/src/components/_.gitignore.txt +0 -1
- package/src/media/templates/packages/figma/src/composables/_.gitignore.txt +0 -1
- package/src/media/templates/packages/figma/src/config.ts +0 -0
- package/src/media/templates/packages/figma/src/functions/_.gitignore.txt +0 -1
- package/src/media/templates/packages/figma/src/library.ts +0 -0
- package/src/media/templates/packages/figma/src/main.ts +0 -4
- package/src/media/templates/packages/figma/src/media/_.gitignore.txt +0 -1
- package/src/media/templates/packages/figma/src/storybook/_.gitignore.txt +0 -1
- package/src/media/templates/packages/figma/src/types/_.gitignore.txt +0 -1
- package/src/media/templates/packages/figma/src/vite-env.d.ts +0 -1
- package/src/media/templates/packages/figma/tsconfig.app.json +0 -12
- package/src/media/templates/packages/figma/tsconfig.json +0 -7
- package/src/media/templates/packages/figma/tsconfig.node.json +0 -8
- package/src/media/templates/packages/figma/vite.config.ts +0 -7
- package/src/media/templates/packages/library/README.md +0 -1
- package/src/media/templates/packages/library/_.gitignore.txt +0 -27
- package/src/media/templates/packages/library/ai-description.md +0 -15
- package/src/media/templates/packages/library/design.config.json +0 -3
- package/src/media/templates/packages/library/index.html +0 -12
- package/src/media/templates/packages/library/materials/README.md +0 -8
- package/src/media/templates/packages/library/materials/prompt.md +0 -45
- package/src/media/templates/packages/library/package.json +0 -46
- package/src/media/templates/packages/library/src/App.vue +0 -8
- package/src/media/templates/packages/library/src/classes/_.gitignore.txt +0 -1
- package/src/media/templates/packages/library/src/components/_.gitignore.txt +0 -1
- package/src/media/templates/packages/library/src/composables/_.gitignore.txt +0 -1
- package/src/media/templates/packages/library/src/functions/_.gitignore.txt +0 -1
- package/src/media/templates/packages/library/src/library.ts +0 -0
- package/src/media/templates/packages/library/src/main.ts +0 -6
- package/src/media/templates/packages/library/src/style.scss +0 -0
- package/src/media/templates/packages/library/src/types/_.gitignore.txt +0 -1
- package/src/media/templates/packages/library/src/vite-env.d.ts +0 -1
- package/src/media/templates/packages/library/tsconfig.app.json +0 -11
- package/src/media/templates/packages/library/tsconfig.json +0 -7
- package/src/media/templates/packages/library/tsconfig.node.json +0 -7
- package/src/media/templates/packages/library/vite.config.ts +0 -14
- package/src/media/templates/packages/nitro/README.md +0 -1
- package/src/media/templates/packages/nitro/_.gitignore.txt +0 -28
- package/src/media/templates/packages/nitro/index.html +0 -2
- package/src/media/templates/packages/nitro/package.json +0 -25
- package/src/media/templates/packages/nitro/server/plugins/ui-plugin.ts +0 -7
- package/src/media/templates/packages/nitro/server/routes/api/hello.ts +0 -13
- package/src/media/templates/packages/nitro/src/App.vue +0 -10
- package/src/media/templates/packages/nitro/src/assets/_.gitignore.txt +0 -0
- package/src/media/templates/packages/nitro/src/components/_.gitignore.txt +0 -0
- package/src/media/templates/packages/nitro/src/composables/_.gitignore.txt +0 -0
- package/src/media/templates/packages/nitro/src/entry-client.ts +0 -13
- package/src/media/templates/packages/nitro/src/entry-server.ts +0 -29
- package/src/media/templates/packages/nitro/src/main.ts +0 -14
- package/src/media/templates/packages/nitro/src/pages/HomePage.vue +0 -8
- package/src/media/templates/packages/nitro/src/router.ts +0 -11
- package/src/media/templates/packages/nitro/src/style.scss +0 -0
- package/src/media/templates/packages/nitro/src/templates/main.html +0 -21
- package/src/media/templates/packages/nitro/src/vite-env.d.ts +0 -11
- package/src/media/templates/packages/nitro/tsconfig.app.json +0 -14
- package/src/media/templates/packages/nitro/tsconfig.json +0 -7
- package/src/media/templates/packages/nitro/tsconfig.node.json +0 -12
- package/src/media/templates/packages/nitro/vite.config.ts +0 -17
- package/src/media/templates/packages/project/README.md +0 -1
- package/src/media/templates/packages/project/_.gitignore.txt +0 -28
- package/src/media/templates/packages/project/design.config.json +0 -3
- package/src/media/templates/packages/project/index.html +0 -12
- package/src/media/templates/packages/project/materials/README.md +0 -8
- package/src/media/templates/packages/project/materials/prompt.md +0 -41
- package/src/media/templates/packages/project/package.json +0 -13
- package/src/media/templates/packages/project/public/_.gitignore.txt +0 -0
- package/src/media/templates/packages/project/src/App.vue +0 -12
- package/src/media/templates/packages/project/src/assets/_.gitignore.txt +0 -0
- package/src/media/templates/packages/project/src/components/_.gitignore.txt +0 -0
- package/src/media/templates/packages/project/src/composables/_.gitignore.txt +0 -0
- package/src/media/templates/packages/project/src/main.ts +0 -6
- package/src/media/templates/packages/project/src/style.scss +0 -0
- package/src/media/templates/packages/project/src/vite-env.d.ts +0 -1
- package/src/media/templates/packages/project/tsconfig.app.json +0 -11
- package/src/media/templates/packages/project/tsconfig.json +0 -7
- package/src/media/templates/packages/project/tsconfig.node.json +0 -7
- package/src/media/templates/packages/project/vite.config.ts +0 -7
- package/src/media/templates/prompts/aiCodeGlobalPrompt.en.md +0 -22
- package/src/media/templates/prompts/aiCodeGlobalPrompt.ru.md +0 -21
- package/src/media/templates/prompts/aiCodeVuePrompt.en.md +0 -17
- package/src/media/templates/prompts/aiCodeVuePrompt.ru.md +0 -17
- package/src/media/templates/prompts/aiDocClassPrompt.en.txt +0 -63
- package/src/media/templates/prompts/aiDocClassPrompt.ru.txt +0 -63
- package/src/media/templates/prompts/aiDocComposablePrompt.en.txt +0 -67
- package/src/media/templates/prompts/aiDocComposablePrompt.ru.txt +0 -67
- package/src/media/templates/prompts/aiDocFunctionPrompt.en.txt +0 -57
- package/src/media/templates/prompts/aiDocFunctionPrompt.ru.txt +0 -57
- package/src/media/templates/prompts/componentPrompt.en.txt +0 -182
- package/src/media/templates/prompts/componentPrompt.ru.txt +0 -182
- package/src/media/templates/prompts/demoClassEn.mdx +0 -111
- package/src/media/templates/prompts/demoClassRu.mdx +0 -111
- package/src/media/templates/prompts/demoComponentEn.mdx +0 -282
- package/src/media/templates/prompts/demoComponentRu.mdx +0 -282
- package/src/media/templates/prompts/demoComposableEn.mdx +0 -103
- package/src/media/templates/prompts/demoComposableRu.mdx +0 -103
- package/src/media/templates/prompts/demoDocEn.mdx +0 -30
- package/src/media/templates/prompts/demoDocRu.mdx +0 -30
- package/src/media/templates/viteComponentTemplateConfig.ts +0 -14
- package/src/types/aiTypes.ts +0 -19
- package/src/types/configTypes.ts +0 -69
- package/src/types/designTypes.ts +0 -167
- package/src/types/figmaApiTypes.ts +0 -337
- package/src/types/gitTypes.ts +0 -59
- package/src/types/libraryTypes.ts +0 -49
- package/src/types/propertyTypes.ts +0 -586
- package/src/types/screenshotTypes.ts +0 -55
- package/src/types/webTypes.ts +0 -134
- package/src/vite-env.d.ts +0 -1
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
// export:none
|
|
2
|
-
|
|
3
|
-
import { forEach, isFilled, isObjectNotArray } from '@dxtmisha/functional-basic'
|
|
4
|
-
|
|
5
|
-
import { Properties } from '../Properties/Properties'
|
|
6
|
-
import { PropertiesFile } from '../Properties/PropertiesFile'
|
|
7
|
-
import { PropertiesItems } from '../Properties/PropertiesItems'
|
|
8
|
-
import { PropertiesScss } from '../Properties/PropertiesScss'
|
|
9
|
-
|
|
10
|
-
import { StylesTool } from './StylesTool'
|
|
11
|
-
|
|
12
|
-
import { StylesRoot } from './StylesRoot'
|
|
13
|
-
import { StylesClasses } from './StylesClasses'
|
|
14
|
-
|
|
15
|
-
import {
|
|
16
|
-
PropertyKey,
|
|
17
|
-
type PropertyList,
|
|
18
|
-
PropertyType
|
|
19
|
-
} from '../../types/propertyTypes'
|
|
20
|
-
|
|
21
|
-
import { UI_KEY_CONSTRUCTOR, UI_EXTENSION_STYLE } from '../../config'
|
|
22
|
-
|
|
23
|
-
const FILE_VAR = 'vars'
|
|
24
|
-
const FILE_CLASS = 'classes'
|
|
25
|
-
const FILE_PROPERTIES = 'properties'
|
|
26
|
-
const FILE_LIST = 'list'
|
|
27
|
-
const FILE_BASIC = 'basic'
|
|
28
|
-
const FILE_STYLE = 'style'
|
|
29
|
-
const FILE_MAIN = 'main'
|
|
30
|
-
|
|
31
|
-
const DIR_CLASS = 'classes'
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Base class for generating basic properties.
|
|
35
|
-
*
|
|
36
|
-
* Базовый класс для генерации базовых свойств.
|
|
37
|
-
*/
|
|
38
|
-
export class Styles {
|
|
39
|
-
private readonly properties: Properties
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Constructor
|
|
43
|
-
*/
|
|
44
|
-
constructor() {
|
|
45
|
-
this.properties = new Properties()
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Generating all basic data.
|
|
50
|
-
*
|
|
51
|
-
* Генерация всех базовых данных.
|
|
52
|
-
*/
|
|
53
|
-
make(): this {
|
|
54
|
-
this.getByDesigns((
|
|
55
|
-
design,
|
|
56
|
-
items
|
|
57
|
-
) => {
|
|
58
|
-
this.initRoot(items)
|
|
59
|
-
this.initClasses(items)
|
|
60
|
-
this.initProperties(items)
|
|
61
|
-
this.initList(items)
|
|
62
|
-
this.initBasic(design)
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
return this
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Generating basic variables.
|
|
70
|
-
*
|
|
71
|
-
* Генерация базовых переменных.
|
|
72
|
-
* @param items current element/ текущий элемент
|
|
73
|
-
*/
|
|
74
|
-
protected initRoot(
|
|
75
|
-
items: PropertiesItems
|
|
76
|
-
): this {
|
|
77
|
-
const data = StylesTool.join(new StylesRoot(items).init())
|
|
78
|
-
|
|
79
|
-
PropertiesFile.write(
|
|
80
|
-
StylesTool.getDir(),
|
|
81
|
-
FILE_VAR,
|
|
82
|
-
data,
|
|
83
|
-
UI_EXTENSION_STYLE
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
return this
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Generating all base classes.
|
|
91
|
-
*
|
|
92
|
-
* Генерация всех базовых классов.
|
|
93
|
-
* @param items current element/ текущий элемент
|
|
94
|
-
*/
|
|
95
|
-
protected initClasses(
|
|
96
|
-
items: PropertiesItems
|
|
97
|
-
): this {
|
|
98
|
-
const {
|
|
99
|
-
data,
|
|
100
|
-
classes
|
|
101
|
-
} = new StylesClasses(items).init()
|
|
102
|
-
|
|
103
|
-
forEach(classes, (item, name) => {
|
|
104
|
-
PropertiesFile.write(
|
|
105
|
-
[...StylesTool.getDir(), DIR_CLASS],
|
|
106
|
-
name,
|
|
107
|
-
StylesTool.join(item),
|
|
108
|
-
UI_EXTENSION_STYLE
|
|
109
|
-
)
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
PropertiesFile.write(
|
|
113
|
-
StylesTool.getDir(),
|
|
114
|
-
FILE_CLASS,
|
|
115
|
-
StylesTool.join(data),
|
|
116
|
-
UI_EXTENSION_STYLE
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
return this
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
protected initProperties(
|
|
123
|
-
items: PropertiesItems
|
|
124
|
-
): this {
|
|
125
|
-
const scss = new PropertiesScss(items)
|
|
126
|
-
|
|
127
|
-
PropertiesFile.write(
|
|
128
|
-
StylesTool.getDir(),
|
|
129
|
-
FILE_PROPERTIES,
|
|
130
|
-
scss.get(),
|
|
131
|
-
UI_EXTENSION_STYLE
|
|
132
|
-
)
|
|
133
|
-
|
|
134
|
-
return this
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
protected initList(
|
|
138
|
-
items: PropertiesItems
|
|
139
|
-
): this {
|
|
140
|
-
PropertiesFile.write(
|
|
141
|
-
StylesTool.getDir(),
|
|
142
|
-
FILE_LIST,
|
|
143
|
-
this.removeExcess(items.get())
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
return this
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Creates files for connection.
|
|
151
|
-
*
|
|
152
|
-
* Создает файлы для подключения.
|
|
153
|
-
* @param design design name/ название дизайна
|
|
154
|
-
*/
|
|
155
|
-
protected initBasic(design: string): this {
|
|
156
|
-
const dir = StylesTool.getDir()
|
|
157
|
-
|
|
158
|
-
PropertiesFile.write(
|
|
159
|
-
dir,
|
|
160
|
-
FILE_BASIC,
|
|
161
|
-
[
|
|
162
|
-
`@use "./${FILE_VAR}";`,
|
|
163
|
-
`@use "./${FILE_PROPERTIES}";`,
|
|
164
|
-
`@use "./${FILE_CLASS}";`
|
|
165
|
-
].join('\r\n'),
|
|
166
|
-
UI_EXTENSION_STYLE
|
|
167
|
-
)
|
|
168
|
-
|
|
169
|
-
PropertiesFile.write(
|
|
170
|
-
dir,
|
|
171
|
-
FILE_STYLE,
|
|
172
|
-
[
|
|
173
|
-
`@use "@dxtmisha/styles" as variables;`,
|
|
174
|
-
`@use "./${FILE_PROPERTIES}";`,
|
|
175
|
-
'',
|
|
176
|
-
`@forward "@dxtmisha/styles/${FILE_PROPERTIES}";`,
|
|
177
|
-
'',
|
|
178
|
-
`@include variables.setDesignsDesign('${design}');`,
|
|
179
|
-
''
|
|
180
|
-
].join('\r\n'),
|
|
181
|
-
UI_EXTENSION_STYLE
|
|
182
|
-
)
|
|
183
|
-
|
|
184
|
-
if (!PropertiesFile.is([...dir, `${FILE_MAIN}.${UI_EXTENSION_STYLE}`])) {
|
|
185
|
-
PropertiesFile.write(
|
|
186
|
-
dir,
|
|
187
|
-
FILE_MAIN,
|
|
188
|
-
[
|
|
189
|
-
`@use "./${FILE_BASIC}";`,
|
|
190
|
-
`@use "@dxtmisha/styles/${FILE_PROPERTIES}" as ui;`,
|
|
191
|
-
`@use "@dxtmisha/media/style.css";`,
|
|
192
|
-
'',
|
|
193
|
-
'@include ui.initGlobal;',
|
|
194
|
-
`@include ui.initDesignBody('${design}.main');`
|
|
195
|
-
].join('\r\n'),
|
|
196
|
-
UI_EXTENSION_STYLE
|
|
197
|
-
)
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return this
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Generating a list of properties from a design.
|
|
205
|
-
*
|
|
206
|
-
* Получение списка свойств по дизайну.
|
|
207
|
-
* @param callback data processing function/ функция для обработки данных
|
|
208
|
-
*/
|
|
209
|
-
private getByDesigns(callback: (design: string, items: PropertiesItems) => void): void {
|
|
210
|
-
const properties = this.properties.get().get()
|
|
211
|
-
|
|
212
|
-
this.properties
|
|
213
|
-
.get()
|
|
214
|
-
.getDesigns()
|
|
215
|
-
.forEach((design) => {
|
|
216
|
-
if (design !== UI_KEY_CONSTRUCTOR) {
|
|
217
|
-
callback(
|
|
218
|
-
design,
|
|
219
|
-
new PropertiesItems(properties).setFocusDesign(design)
|
|
220
|
-
)
|
|
221
|
-
}
|
|
222
|
-
})
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
private removeExcess(data: PropertyList) {
|
|
226
|
-
const list: Record<string, any> = {}
|
|
227
|
-
|
|
228
|
-
forEach(data, (item, key) => {
|
|
229
|
-
if (
|
|
230
|
-
item[PropertyKey.variable] === PropertyType.var
|
|
231
|
-
|| isObjectNotArray(item.value)
|
|
232
|
-
) {
|
|
233
|
-
const value = isObjectNotArray(item.value) ? this.removeExcess(item.value) : item.value
|
|
234
|
-
|
|
235
|
-
if (isFilled(value)) {
|
|
236
|
-
list[key] = {
|
|
237
|
-
name: item[PropertyKey.name],
|
|
238
|
-
type: item[PropertyKey.variable],
|
|
239
|
-
value
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
})
|
|
244
|
-
|
|
245
|
-
return list
|
|
246
|
-
}
|
|
247
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
// export:none
|
|
2
|
-
|
|
3
|
-
import { isFilled, isObjectNotArray, toKebabCase } from '@dxtmisha/functional-basic'
|
|
4
|
-
|
|
5
|
-
import { PropertiesItems } from '../Properties/PropertiesItems'
|
|
6
|
-
|
|
7
|
-
import { StylesTool } from './StylesTool'
|
|
8
|
-
import { StylesProperties } from './StylesProperties'
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
PropertyCategory,
|
|
12
|
-
type PropertyItemsItem,
|
|
13
|
-
PropertyKey
|
|
14
|
-
} from '../../types/propertyTypes'
|
|
15
|
-
|
|
16
|
-
export type StylesClassesItem = {
|
|
17
|
-
data: string[]
|
|
18
|
-
classes: Record<string, string[]>
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* A class for generating base classes.
|
|
23
|
-
*
|
|
24
|
-
* Класс для генерации базовых классов.
|
|
25
|
-
*/
|
|
26
|
-
export class StylesClasses {
|
|
27
|
-
/**
|
|
28
|
-
* Constructor
|
|
29
|
-
* @param items
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
constructor(private items: PropertiesItems) {
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Generating all base classes.
|
|
37
|
-
*
|
|
38
|
-
* Генерация всех базовых классов.
|
|
39
|
-
*/
|
|
40
|
-
init(): StylesClassesItem {
|
|
41
|
-
const data: StylesClassesItem['data'] = []
|
|
42
|
-
const classes: StylesClassesItem['classes'] = {}
|
|
43
|
-
const space = StylesTool.addSpace(1)
|
|
44
|
-
|
|
45
|
-
this.getList().forEach((property) => {
|
|
46
|
-
const {
|
|
47
|
-
value,
|
|
48
|
-
item
|
|
49
|
-
} = property
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
-
isFilled(value)
|
|
53
|
-
&& isObjectNotArray(value)
|
|
54
|
-
) {
|
|
55
|
-
const name = item[PropertyKey.name] as string
|
|
56
|
-
|
|
57
|
-
data.push(StylesTool.addUse(`./classes/${toKebabCase(name)}`))
|
|
58
|
-
|
|
59
|
-
classes[name] = [
|
|
60
|
-
StylesTool.addImportProperties(),
|
|
61
|
-
'',
|
|
62
|
-
`.${name} {`,
|
|
63
|
-
...(new StylesProperties(space, property)).make(),
|
|
64
|
-
'}'
|
|
65
|
-
]
|
|
66
|
-
}
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
return {
|
|
70
|
-
data,
|
|
71
|
-
classes
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Getting all properties from base variables.
|
|
77
|
-
*
|
|
78
|
-
* Получение всех свойств из базовых переменных.
|
|
79
|
-
*/
|
|
80
|
-
private getList(): PropertyItemsItem[] {
|
|
81
|
-
return this.items.findCategory([
|
|
82
|
-
PropertyCategory.class,
|
|
83
|
-
PropertyCategory.theme
|
|
84
|
-
])
|
|
85
|
-
}
|
|
86
|
-
}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
// export:none
|
|
2
|
-
|
|
3
|
-
import { PropertiesItems } from '../Properties/PropertiesItems'
|
|
4
|
-
|
|
5
|
-
import { StylesTool } from './StylesTool'
|
|
6
|
-
|
|
7
|
-
import { StylesToClass } from './to/StylesToClass'
|
|
8
|
-
import { StylesToClassFull } from './to/StylesToClassFull'
|
|
9
|
-
import { StylesToVar } from './to/StylesToVar'
|
|
10
|
-
import { StylesToProperty } from './to/StylesToProperty'
|
|
11
|
-
import { StylesToSelector } from './to/StylesToSelector'
|
|
12
|
-
import { StylesToVirtual } from './to/StylesToVirtual'
|
|
13
|
-
import { StylesToMedia } from './to/StylesToMedia'
|
|
14
|
-
import { StylesToContainer } from './to/StylesToContainer'
|
|
15
|
-
import { StylesToAnimate } from './to/StylesToAnimate'
|
|
16
|
-
import { StylesToRoot } from './to/StylesToRoot'
|
|
17
|
-
|
|
18
|
-
import {
|
|
19
|
-
type PropertyItem,
|
|
20
|
-
type PropertyItemsItem,
|
|
21
|
-
PropertyKey,
|
|
22
|
-
PropertyType
|
|
23
|
-
} from '../../types/propertyTypes'
|
|
24
|
-
|
|
25
|
-
const TYPE_AUXILIARY = [
|
|
26
|
-
'selector',
|
|
27
|
-
'virtual'
|
|
28
|
-
]
|
|
29
|
-
|
|
30
|
-
const TYPE_BASIC = [
|
|
31
|
-
'var',
|
|
32
|
-
'property',
|
|
33
|
-
'scss'
|
|
34
|
-
]
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* A class for converting all property types in SCSS.
|
|
38
|
-
*
|
|
39
|
-
* Класс для преобразования всех тип свойство в виде scss.
|
|
40
|
-
*/
|
|
41
|
-
export class StylesProperties {
|
|
42
|
-
private readonly item: PropertyItem
|
|
43
|
-
private readonly data: string[] = []
|
|
44
|
-
|
|
45
|
-
private first: boolean = false
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Constructor
|
|
49
|
-
* @param space пробелы
|
|
50
|
-
* @param property array with all property records/ массив со всеми записями свойств
|
|
51
|
-
* @param parent object of ancestor/ объект предка
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
constructor(
|
|
55
|
-
private space: string,
|
|
56
|
-
private property: PropertyItemsItem,
|
|
57
|
-
private parent?: PropertyItem
|
|
58
|
-
) {
|
|
59
|
-
this.item = property.item
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Generating all properties and variables.
|
|
64
|
-
*
|
|
65
|
-
* Генерация всех свойств и переменных.
|
|
66
|
-
*/
|
|
67
|
-
make(): string[] {
|
|
68
|
-
(new PropertiesItems({})).eachMainOnly((property) => {
|
|
69
|
-
const { item } = property
|
|
70
|
-
|
|
71
|
-
if (
|
|
72
|
-
this.isAuxiliary()
|
|
73
|
-
&& this.isAuxiliary(item)
|
|
74
|
-
&& this.isNotBasic(item)
|
|
75
|
-
) {
|
|
76
|
-
const data: string[] = new StylesProperties(
|
|
77
|
-
StylesTool.increaseSpace(this.space),
|
|
78
|
-
property,
|
|
79
|
-
this.item
|
|
80
|
-
).make()
|
|
81
|
-
|
|
82
|
-
this.data.push(
|
|
83
|
-
`${this.space}& {`,
|
|
84
|
-
...data,
|
|
85
|
-
`${this.space}}`
|
|
86
|
-
)
|
|
87
|
-
} else {
|
|
88
|
-
const data = this.toByType(property)
|
|
89
|
-
|
|
90
|
-
if (data.length > 0) {
|
|
91
|
-
this.first = true
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
this.data.push(...data)
|
|
95
|
-
}
|
|
96
|
-
}, this.property)
|
|
97
|
-
|
|
98
|
-
return this.data
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Checks if the type is one that requires a space at the beginning.
|
|
103
|
-
*
|
|
104
|
-
* Проверяет, является ли тип тот, для которого надо пробел поставить в начале.
|
|
105
|
-
* @param item element for checking/ элемент для проверки
|
|
106
|
-
*/
|
|
107
|
-
private isAuxiliary(
|
|
108
|
-
item = this.parent
|
|
109
|
-
): boolean {
|
|
110
|
-
return Boolean(item && TYPE_AUXILIARY.indexOf(item?.[PropertyKey.variable] as string) !== -1)
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Checks if the type is a base property of variables.
|
|
115
|
-
*
|
|
116
|
-
* Проверяет, является ли тип базовым свойством переменных.
|
|
117
|
-
* @param item element for checking/ элемент для проверки
|
|
118
|
-
*/
|
|
119
|
-
private isNotBasic(item: PropertyItem): boolean {
|
|
120
|
-
return !(item && TYPE_BASIC.indexOf(item?.[PropertyKey.variable] as string) !== -1)
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Returns a function for iterating over all records.
|
|
125
|
-
*
|
|
126
|
-
* Возвращает функцию для обхода всех записей.
|
|
127
|
-
* @param property initial variables for processing/ начальные переменные для обработки
|
|
128
|
-
*/
|
|
129
|
-
private getContent(
|
|
130
|
-
property: PropertyItemsItem
|
|
131
|
-
): () => string[] {
|
|
132
|
-
return () => new StylesProperties(
|
|
133
|
-
this.space,
|
|
134
|
-
property,
|
|
135
|
-
this.item
|
|
136
|
-
).make()
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Parameters for a class that converts data by type.
|
|
141
|
-
*
|
|
142
|
-
* Параметры для класса, который преобразует данные по типу.
|
|
143
|
-
* @param property initial variables for processing/ начальные переменные для обработки
|
|
144
|
-
*/
|
|
145
|
-
private getArgumentsForTo(
|
|
146
|
-
property: PropertyItemsItem
|
|
147
|
-
): [PropertyItemsItem, string, () => string[], boolean] {
|
|
148
|
-
return [
|
|
149
|
-
property,
|
|
150
|
-
this.space,
|
|
151
|
-
this.getContent(property),
|
|
152
|
-
this.first
|
|
153
|
-
]
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Converting a value to a string depending on the type.
|
|
158
|
-
*
|
|
159
|
-
* Преобразования значения в строка в зависимости от типа.
|
|
160
|
-
* @param property initial variables for processing/ начальные переменные для обработки
|
|
161
|
-
*/
|
|
162
|
-
private toByType(
|
|
163
|
-
property: PropertyItemsItem
|
|
164
|
-
): string[] {
|
|
165
|
-
const argumentsValue = this.getArgumentsForTo(property)
|
|
166
|
-
|
|
167
|
-
switch (property.item?.[PropertyKey.variable]) {
|
|
168
|
-
case PropertyType.var:
|
|
169
|
-
return new StylesToVar(...argumentsValue).make()
|
|
170
|
-
case PropertyType.property:
|
|
171
|
-
return new StylesToProperty(...argumentsValue).make()
|
|
172
|
-
case PropertyType.selector:
|
|
173
|
-
return new StylesToSelector(...argumentsValue).make()
|
|
174
|
-
case PropertyType.virtual:
|
|
175
|
-
return new StylesToVirtual(...argumentsValue).make()
|
|
176
|
-
case PropertyType.media:
|
|
177
|
-
case PropertyType.mediaMax:
|
|
178
|
-
return new StylesToMedia(...argumentsValue).make()
|
|
179
|
-
case PropertyType.container:
|
|
180
|
-
case PropertyType.containerMax:
|
|
181
|
-
return new StylesToContainer(...argumentsValue).make()
|
|
182
|
-
case PropertyType.animate:
|
|
183
|
-
return new StylesToAnimate(...argumentsValue).make()
|
|
184
|
-
case PropertyType.root:
|
|
185
|
-
return new StylesToRoot(...argumentsValue).make()
|
|
186
|
-
case PropertyType.state:
|
|
187
|
-
case PropertyType.subclass:
|
|
188
|
-
case PropertyType.classType:
|
|
189
|
-
case PropertyType.scss:
|
|
190
|
-
return new StylesToClass(...argumentsValue).make()
|
|
191
|
-
case PropertyType.animateFrame:
|
|
192
|
-
return new StylesToClassFull(...argumentsValue).make()
|
|
193
|
-
default:
|
|
194
|
-
return []
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
// export:none
|
|
2
|
-
|
|
3
|
-
import * as sass from 'sass'
|
|
4
|
-
|
|
5
|
-
import { PropertiesItems } from '../Properties/PropertiesItems'
|
|
6
|
-
|
|
7
|
-
import { StylesTool } from './StylesTool'
|
|
8
|
-
import { StylesToVar } from './to/StylesToVar'
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
PropertyCategory,
|
|
12
|
-
type PropertyItemsItem
|
|
13
|
-
} from '../../types/propertyTypes'
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Class for generating base properties from tokens.
|
|
17
|
-
*
|
|
18
|
-
* Класс для генерации базовых свойств из токенов.
|
|
19
|
-
*/
|
|
20
|
-
export class StylesRoot {
|
|
21
|
-
/**
|
|
22
|
-
* Constructor
|
|
23
|
-
* @param items
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
constructor(
|
|
27
|
-
private items: PropertiesItems
|
|
28
|
-
) {
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Generating all basic token values.
|
|
33
|
-
*
|
|
34
|
-
* Генерация всех базовых значений токенов.
|
|
35
|
-
*/
|
|
36
|
-
init(): string[] {
|
|
37
|
-
const space = StylesTool.addSpace(1)
|
|
38
|
-
const data: string[] = [
|
|
39
|
-
':root {'
|
|
40
|
-
]
|
|
41
|
-
|
|
42
|
-
this.getList().forEach(
|
|
43
|
-
property => data.push(...(new StylesToVar(property, space).make()))
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
data.push('}')
|
|
47
|
-
|
|
48
|
-
return [
|
|
49
|
-
StylesTool.addImportProperties(),
|
|
50
|
-
'',
|
|
51
|
-
this.initCalc(data.join('\r\n'))
|
|
52
|
-
]
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Getting all properties from base variables.
|
|
57
|
-
*
|
|
58
|
-
* Получение всех свойств из базовых переменных.
|
|
59
|
-
*/
|
|
60
|
-
private getList(): PropertyItemsItem[] {
|
|
61
|
-
return this.items.findCategory(PropertyCategory.root)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
private getValue(value: string): string {
|
|
65
|
-
if (value.match(/calc\(/) && !value.match(/var\(/)) {
|
|
66
|
-
const result = sass.compileString(`a{height: ${value};}`)
|
|
67
|
-
const read = result.css?.match(/height: ([^;]+);/)?.[1]
|
|
68
|
-
|
|
69
|
-
if (read) {
|
|
70
|
-
return read
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return value
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
private initCalc(data: string): string {
|
|
78
|
-
let update = false
|
|
79
|
-
|
|
80
|
-
const list = data.replace(
|
|
81
|
-
/(?<=calc\(.*?)var\(([^)]+)\)/img,
|
|
82
|
-
(_: string, value: string) => {
|
|
83
|
-
const newValue = data.match(new RegExp(`(?<=${value}:)[^;\r\n]+`, 'im'))?.[0].trim()
|
|
84
|
-
|
|
85
|
-
if (newValue) {
|
|
86
|
-
update = true
|
|
87
|
-
return this.getValue(newValue)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return value
|
|
91
|
-
}
|
|
92
|
-
)
|
|
93
|
-
|
|
94
|
-
if (update) {
|
|
95
|
-
return this.initCalc(list)
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return list.replace(
|
|
99
|
-
/calc\([^;\r\n]+/ig,
|
|
100
|
-
value => this.getValue(value)
|
|
101
|
-
)
|
|
102
|
-
}
|
|
103
|
-
}
|