@dxtmisha/scripts 0.11.8 → 1.0.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 +57 -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 +12 -2
- 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 +22 -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-x3CInynJ.js +232 -0
- package/dist/PropertiesConfig-ChizwW5y.js +250 -0
- package/{src/config.ts → dist/config.d.ts} +179 -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 +4677 -0
- package/dist/library.js +1436 -0
- package/dist/propertyTypes-DflziKuR.js +236 -0
- package/package.json +69 -20
- 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,672 +0,0 @@
|
|
|
1
|
-
// export:none
|
|
2
|
-
|
|
3
|
-
import { forEach, getColumn, toCamelCase, toCamelCaseFirst } from '@dxtmisha/functional-basic'
|
|
4
|
-
|
|
5
|
-
import { DesignStructure } from './DesignStructure'
|
|
6
|
-
|
|
7
|
-
import type {
|
|
8
|
-
DesignStructureClassesItem,
|
|
9
|
-
DesignStructureItem,
|
|
10
|
-
DesignStructureItemSub,
|
|
11
|
-
DesignStructureList
|
|
12
|
-
} from '../../types/designTypes'
|
|
13
|
-
|
|
14
|
-
import { UI_KEY_CUSTOM } from '../../config'
|
|
15
|
-
import { PropertiesConfig } from '../Properties/PropertiesConfig'
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Engine for systematic text replacement within file templates based on component structure.
|
|
19
|
-
* It manages the transformation of labels (marks) into actual code segments, including property types, default values, and CSS class mappings.
|
|
20
|
-
*
|
|
21
|
-
* Движок для систематической замены текста в шаблонах файлов на основе структуры компонента.
|
|
22
|
-
* Управляет преобразованием меток (marks) в реальные сегменты кода, включая типы свойств, значения по умолчанию и маппинг CSS-классов.
|
|
23
|
-
*/
|
|
24
|
-
export class DesignReplace {
|
|
25
|
-
protected readonly component: string
|
|
26
|
-
protected readonly mark: string
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Constructor for DesignReplace.
|
|
30
|
-
*
|
|
31
|
-
* Конструктор для DesignReplace.
|
|
32
|
-
* @param structure object containing component metadata and design logic / объект, содержащий метаданные компонента и логику дизайна
|
|
33
|
-
* @param mark the identifier used in templates for replacement (e.g., 'button') / идентификатор, используемый в шаблонах для замены
|
|
34
|
-
* @param sample the raw template content to be processed / необработанное содержимое шаблона для обработки
|
|
35
|
-
*/
|
|
36
|
-
constructor(
|
|
37
|
-
protected structure: DesignStructure,
|
|
38
|
-
mark: string,
|
|
39
|
-
protected sample: string
|
|
40
|
-
) {
|
|
41
|
-
this.mark = toCamelCaseFirst(mark)
|
|
42
|
-
this.component = this.structure.getComponentNameFirst()
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Returns the modified template.
|
|
47
|
-
*
|
|
48
|
-
* Возвращает изменённый шаблон.
|
|
49
|
-
*/
|
|
50
|
-
get(): string {
|
|
51
|
-
return this.sample
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Returns the path for importing the module.
|
|
56
|
-
*
|
|
57
|
-
* Возвращает путь для подключения модуля.
|
|
58
|
-
*/
|
|
59
|
-
getRoot(): string {
|
|
60
|
-
// const path = __filename.match(/node_modules\/([^/]+)/)
|
|
61
|
-
|
|
62
|
-
// if (path) {
|
|
63
|
-
// return `${path?.[1]}/`
|
|
64
|
-
// }
|
|
65
|
-
|
|
66
|
-
return '../../'
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Changes the names in accordance with the component name.
|
|
71
|
-
*
|
|
72
|
-
* Изменяет названия в соответствии с названием компонента.
|
|
73
|
-
* @param name the name of a file/ название файла
|
|
74
|
-
*/
|
|
75
|
-
getNameFile(name: string): string {
|
|
76
|
-
return name
|
|
77
|
-
.replace(/\[project]/g, PropertiesConfig.getProjectName())
|
|
78
|
-
.replace(/\[design]/g, this.structure.getDesign())
|
|
79
|
-
.replace(/\[Design]/g, toCamelCaseFirst(this.structure.getDesign()))
|
|
80
|
-
.replace(/\[component]/g, this.structure.getComponentName())
|
|
81
|
-
.replace(/DesignComponent/g, this.structure.getFileName())
|
|
82
|
-
.replace(new RegExp(this.mark, 'g'), this.component)
|
|
83
|
-
.replace(new RegExp(`DefineSetupFn${this.component}`, 'g'), 'DefineSetupFnComponent')
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Changing the name of the component.
|
|
88
|
-
*
|
|
89
|
-
* Изменение названия компонента.
|
|
90
|
-
*/
|
|
91
|
-
replaceName(): this {
|
|
92
|
-
this.sample = this.getNameFile(this.sample)
|
|
93
|
-
return this
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Change the path to the file.
|
|
98
|
-
*
|
|
99
|
-
* Изменение пути к файлу.
|
|
100
|
-
*/
|
|
101
|
-
replacePath(): this {
|
|
102
|
-
this.sample = this.sample.replace(/..\/..\/..\//g, this.getRoot())
|
|
103
|
-
return this
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Replaces values with selected label.
|
|
108
|
-
*
|
|
109
|
-
* Заменяет значения на выбранную метку.
|
|
110
|
-
* @param name label name/ название метки
|
|
111
|
-
* @param data data for replacement/ данные для замены
|
|
112
|
-
* @param end symbol at the end of the line/ символ в конце строки
|
|
113
|
-
*/
|
|
114
|
-
replaceMark(
|
|
115
|
-
name: string,
|
|
116
|
-
data: string[],
|
|
117
|
-
end = ''
|
|
118
|
-
): this {
|
|
119
|
-
let regName = `\\[?\\/\\/[\\]: #\\(]+:${name} `
|
|
120
|
-
let space = this.sample.match(new RegExp(`^( *)(${regName})`, 'm'))?.[1]
|
|
121
|
-
|
|
122
|
-
if (
|
|
123
|
-
typeof space !== 'string'
|
|
124
|
-
&& this.sample.match(name)
|
|
125
|
-
) {
|
|
126
|
-
regName = `<!-- :${name} `
|
|
127
|
-
space = this.sample.match(new RegExp(`^( *)(${regName})`, 'm'))?.[1]
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if (typeof space === 'string') {
|
|
131
|
-
const inString = `\r\n${space}`
|
|
132
|
-
const value = data
|
|
133
|
-
.join(`${end}${inString}`)
|
|
134
|
-
.replace(/\[space]/g, inString)
|
|
135
|
-
.replace(/\$/g, '$$$$')
|
|
136
|
-
|
|
137
|
-
if (value.trim() !== '') {
|
|
138
|
-
this.sample = this.sample
|
|
139
|
-
.replace(
|
|
140
|
-
new RegExp(`(^ *)(${regName}.*?$)([\\S\\s]+)(^ *${regName})`, 'gm'),
|
|
141
|
-
`$1$2${inString}${value}\r\n$4`
|
|
142
|
-
)
|
|
143
|
-
} else {
|
|
144
|
-
this.sample = this.sample
|
|
145
|
-
.replace(
|
|
146
|
-
new RegExp(`(^ *)(${regName}.*?$)([\\S\\s]+)(^ *${regName})`, 'gm'),
|
|
147
|
-
'$1$2\r\n$4'
|
|
148
|
-
)
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
return this
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Replaces values with the selected label only once.
|
|
157
|
-
*
|
|
158
|
-
* Заменяет значения на выбранную метку только 1 раз.
|
|
159
|
-
* @param name label name/ название метки
|
|
160
|
-
* @param removeReplacement data deletion/ удаление данных
|
|
161
|
-
*/
|
|
162
|
-
replaceOnce(
|
|
163
|
-
name = toCamelCase(this.mark),
|
|
164
|
-
removeReplacement: boolean | ((data: string) => string) = false
|
|
165
|
-
): this {
|
|
166
|
-
const exp1 = new RegExp(`\\/\\/ :${name}\\.once ([^\r\n]+)([\r\n ]*)`, 'g')
|
|
167
|
-
const exp2 = new RegExp(`\\/\\* :${name}\\.once \\*\\/([\\S\\s]*?)\\/\\* :${name}\\.once\\.end \\*\\/([\r\n ]*)`, 'g')
|
|
168
|
-
const exp3 = new RegExp(`\\/\\* :${name}\\.once (.*?) \\*\\/([\r\n ]*)`, 'g')
|
|
169
|
-
const exp4 = new RegExp(`<!-- :${name}\\.once -->([\\S\\s]*?)<!-- :${name}\\.once\\.end -->([\r\n ]*)`, 'g')
|
|
170
|
-
const exp5 = new RegExp(`<!-- :${name}\\.once (.*?) -->([\r\n ]*)`, 'g')
|
|
171
|
-
|
|
172
|
-
const replacement = (...data: string[]) => {
|
|
173
|
-
if (typeof removeReplacement === 'function') {
|
|
174
|
-
return `${removeReplacement(data[1] as string)}${data[2]}`
|
|
175
|
-
} else if (removeReplacement) {
|
|
176
|
-
return ''
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
return `${data[1]}${data[2]}`
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
this.sample = this.sample
|
|
183
|
-
.replace(exp1, replacement)
|
|
184
|
-
.replace(exp2, replacement)
|
|
185
|
-
.replace(exp3, replacement)
|
|
186
|
-
.replace(exp4, replacement)
|
|
187
|
-
.replace(exp5, replacement)
|
|
188
|
-
|
|
189
|
-
return this
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Adding types for properties.
|
|
194
|
-
*
|
|
195
|
-
* Добавление типов для свойств.
|
|
196
|
-
* @param constructor additional data for processing/ дополнительные данные для обработки
|
|
197
|
-
*/
|
|
198
|
-
replaceType(constructor?: string): this {
|
|
199
|
-
const mark = 'type'
|
|
200
|
-
const props = this.structure.get()
|
|
201
|
-
const templates: string[] = []
|
|
202
|
-
|
|
203
|
-
if (constructor) {
|
|
204
|
-
templates.push(...this.getTypeForConstructor(constructor))
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
forEach(props, ({
|
|
208
|
-
name,
|
|
209
|
-
valueAll,
|
|
210
|
-
style
|
|
211
|
-
}) => {
|
|
212
|
-
const types = this.getPropTypeByValue(valueAll, style)
|
|
213
|
-
|
|
214
|
-
if (
|
|
215
|
-
!this.initMarkAddValue(mark, name, types)
|
|
216
|
-
&& !this.isNoMark(mark, name)
|
|
217
|
-
) {
|
|
218
|
-
const typesString = !constructor && !types.match(/string|boolean/) && types.match(/'/)
|
|
219
|
-
? `${types}` // string |
|
|
220
|
-
: types
|
|
221
|
-
|
|
222
|
-
templates.push(`${name}?: ${typesString}`)
|
|
223
|
-
}
|
|
224
|
-
})
|
|
225
|
-
|
|
226
|
-
return this.replaceMark(mark, templates)
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Adding default values for properties.
|
|
231
|
-
*
|
|
232
|
-
* Добавление значения по умолчанию для свойств.
|
|
233
|
-
*/
|
|
234
|
-
replaceDefault(): this {
|
|
235
|
-
const mark = 'default'
|
|
236
|
-
const props = this.structure.get()
|
|
237
|
-
const templates: string[] = []
|
|
238
|
-
|
|
239
|
-
forEach(props, (item) => {
|
|
240
|
-
if (
|
|
241
|
-
item.default
|
|
242
|
-
&& !this.isNoMark(mark, item.name)
|
|
243
|
-
) {
|
|
244
|
-
templates.push(`${item.name}: ${this.getDefault(item.default)}`)
|
|
245
|
-
}
|
|
246
|
-
})
|
|
247
|
-
|
|
248
|
-
return this.replaceMark(mark, templates, ',')
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Adding types for properties.
|
|
253
|
-
*
|
|
254
|
-
* Добавление самих свойств.
|
|
255
|
-
*/
|
|
256
|
-
replaceProps(): this {
|
|
257
|
-
const mark = 'prop'
|
|
258
|
-
const props = this.structure.get()
|
|
259
|
-
const templates: string[] = []
|
|
260
|
-
const indexDefault = this.getIndexDefault()
|
|
261
|
-
|
|
262
|
-
forEach(props, (item) => {
|
|
263
|
-
if (!this.isNoMark('type', item.name)) {
|
|
264
|
-
const type = this.getPropByValue(item.name, item.valueAll)
|
|
265
|
-
|
|
266
|
-
if (item.default) {
|
|
267
|
-
templates.push(
|
|
268
|
-
`${item.name}: {`
|
|
269
|
-
+ `[space] type: ${type},`
|
|
270
|
-
+ `[space] default: ${indexDefault}?.${item.name}`
|
|
271
|
-
+ '[space]}'
|
|
272
|
-
)
|
|
273
|
-
} else {
|
|
274
|
-
templates.push(`${item.name}: ${type}`)
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
})
|
|
278
|
-
|
|
279
|
-
return this.replaceMark(mark, templates, ',')
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* Transforms the given value into a list.
|
|
284
|
-
*
|
|
285
|
-
* Преобразовывает данное значение в список.
|
|
286
|
-
*/
|
|
287
|
-
replacePropsValues(): this {
|
|
288
|
-
const mark = 'values'
|
|
289
|
-
const props = this.structure.get()
|
|
290
|
-
const templates: string[] = []
|
|
291
|
-
|
|
292
|
-
forEach(props, (item) => {
|
|
293
|
-
if (!this.isNoMark('type', item.name)) {
|
|
294
|
-
const values = this.getPropValuesByValue(item.valueAll)
|
|
295
|
-
|
|
296
|
-
if (values) {
|
|
297
|
-
templates.push(`${item.name}: [${values}]`)
|
|
298
|
-
} else if (item.valueAll?.indexOf(UI_KEY_CUSTOM) !== -1) {
|
|
299
|
-
templates.push(`${item.name}: []`)
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
})
|
|
303
|
-
|
|
304
|
-
return this.replaceMark(mark, templates, ',')
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/**
|
|
308
|
-
* Adding a list of available classes.
|
|
309
|
-
*
|
|
310
|
-
* Добавление списка доступных классов.
|
|
311
|
-
* @param template a function that returns a template/ функция, которая возвращает шаблон
|
|
312
|
-
* @param end symbol at the end of the line/ символ в конце строки
|
|
313
|
-
*/
|
|
314
|
-
replaceClasses(
|
|
315
|
-
template: (item: DesignStructureClassesItem) => string = (item: DesignStructureClassesItem) => `${item.index}: string`,
|
|
316
|
-
end = ''
|
|
317
|
-
): this {
|
|
318
|
-
const mark = 'classes'
|
|
319
|
-
const classes = this.structure.getClasses()
|
|
320
|
-
const templates: string[] = []
|
|
321
|
-
|
|
322
|
-
forEach(classes, item => templates.push(template(item)))
|
|
323
|
-
|
|
324
|
-
return this.replaceMark(mark, templates, end)
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
/**
|
|
328
|
-
* Transformation for active status classes.
|
|
329
|
-
*
|
|
330
|
-
* Преобразование для активных классов статуса.
|
|
331
|
-
*/
|
|
332
|
-
replaceClassesValues(): this {
|
|
333
|
-
const mark = 'classes-values'
|
|
334
|
-
const templates: string[] = [
|
|
335
|
-
`'${this.structure?.getPathName()}': true`,
|
|
336
|
-
...this.initClassesValues()
|
|
337
|
-
]
|
|
338
|
-
|
|
339
|
-
return this.replaceMark(mark, templates, ',')
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* Transformation for active status classes.
|
|
344
|
-
*
|
|
345
|
-
* Преобразование для активных классов статуса.
|
|
346
|
-
*/
|
|
347
|
-
replaceStylesValues(): this {
|
|
348
|
-
const mark = 'styles-values'
|
|
349
|
-
const templates: string[] = this.initStylesValues()
|
|
350
|
-
|
|
351
|
-
return this.replaceMark(mark, templates, ',')
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
/**
|
|
355
|
-
* Adding a list of available classes for a constructor.
|
|
356
|
-
*
|
|
357
|
-
* Добавление списка доступных классов для конструктора.
|
|
358
|
-
*/
|
|
359
|
-
replaceConstructorClasses(): this {
|
|
360
|
-
return this.replaceClasses(
|
|
361
|
-
(item: DesignStructureClassesItem) => {
|
|
362
|
-
if (item.full) {
|
|
363
|
-
return `${item.index}: '${item.className}'`
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
return `${item.index}: this.getSubClass('${item.className}')`
|
|
367
|
-
},
|
|
368
|
-
','
|
|
369
|
-
)
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
/**
|
|
373
|
-
* Checks if the data type is boolean.
|
|
374
|
-
*
|
|
375
|
-
* Проверяет, является ли тип данных булевым.
|
|
376
|
-
* @param value values to check/ значения для проверки
|
|
377
|
-
*/
|
|
378
|
-
protected isBoolean(value: DesignStructureItem['value']): boolean {
|
|
379
|
-
return value.indexOf(true) !== -1
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* Checks if the data type is string.
|
|
384
|
-
*
|
|
385
|
-
* Проверяет, является ли тип данных строковым.
|
|
386
|
-
* @param value values to check/ значения для проверки
|
|
387
|
-
*/
|
|
388
|
-
protected isString(value: DesignStructureItem['value']): boolean {
|
|
389
|
-
return value.length > 0 && value[0] !== true
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/**
|
|
393
|
-
* Checks whether the current property should be excluded by its label.
|
|
394
|
-
*
|
|
395
|
-
* Проверяет, следует ли исключить текущее свойство по его метке.
|
|
396
|
-
* @param mark label property/ метка свойства
|
|
397
|
-
* @param name property name/ название свойства
|
|
398
|
-
*/
|
|
399
|
-
protected isNoMark(
|
|
400
|
-
mark: string,
|
|
401
|
-
name: string
|
|
402
|
-
): boolean {
|
|
403
|
-
return Boolean(this.sample.match(`:${mark}.${name}.none`))
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
/**
|
|
407
|
-
* Returns default values.
|
|
408
|
-
*
|
|
409
|
-
* Возвращает значения по умолчанию.
|
|
410
|
-
* @param value default values/ значения по умолчанию
|
|
411
|
-
*/
|
|
412
|
-
protected getDefault(value: DesignStructureItem['default']): string {
|
|
413
|
-
if (typeof value === 'string') {
|
|
414
|
-
return `'${value}'`
|
|
415
|
-
} else {
|
|
416
|
-
return `${value}`
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
/**
|
|
421
|
-
* Returns available types for property.
|
|
422
|
-
*
|
|
423
|
-
* Возвращает доступные типы для свойства.
|
|
424
|
-
* @param name property name/ название свойства
|
|
425
|
-
* @param value values to check/ значения для проверки
|
|
426
|
-
*/
|
|
427
|
-
protected getPropByValue(
|
|
428
|
-
name: string,
|
|
429
|
-
value: DesignStructureItem['value']
|
|
430
|
-
): string {
|
|
431
|
-
if (!this.isString(value)) {
|
|
432
|
-
return 'Boolean'
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
const type = this.isBoolean(value) ? '[String, Boolean]' : 'String'
|
|
436
|
-
const index = this.getIndexProp()
|
|
437
|
-
|
|
438
|
-
if (index) {
|
|
439
|
-
return `${type} as PropType<${index}['${name}']>`
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
return type
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
/**
|
|
446
|
-
* Returns a string with the data type.
|
|
447
|
-
*
|
|
448
|
-
* Возвращает строку с типом данных.
|
|
449
|
-
* @param value values to check/ значения для проверки
|
|
450
|
-
* @param style is the property style present/ является ли свойство style
|
|
451
|
-
*/
|
|
452
|
-
protected getPropTypeByValue(
|
|
453
|
-
value: DesignStructureItem['value'],
|
|
454
|
-
style?: boolean
|
|
455
|
-
): string {
|
|
456
|
-
const types: string[] = []
|
|
457
|
-
|
|
458
|
-
if (this.isBoolean(value)) {
|
|
459
|
-
types.push('boolean')
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
if (style) {
|
|
463
|
-
types.push('string')
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
if (this.isString(value)) {
|
|
467
|
-
value.forEach(item => types.push(item === true ? 'true' : `'${item}'`))
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
if (types.length === 0) {
|
|
471
|
-
types.push('boolean')
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
return types.join(' | ')
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
/**
|
|
478
|
-
* Getting a list of available data for the property.
|
|
479
|
-
*
|
|
480
|
-
* Получение списка доступных данных у свойства.
|
|
481
|
-
* @param value values to check/ значения для проверки
|
|
482
|
-
*/
|
|
483
|
-
protected getPropValuesByValue(
|
|
484
|
-
value: DesignStructureItem['value']
|
|
485
|
-
): string | undefined {
|
|
486
|
-
if (this.isString(value)) {
|
|
487
|
-
const types: string[] = []
|
|
488
|
-
|
|
489
|
-
value.forEach((item) => {
|
|
490
|
-
if (item !== UI_KEY_CUSTOM) {
|
|
491
|
-
types.push(item === true ? 'true' : `'${item}'`)
|
|
492
|
-
}
|
|
493
|
-
})
|
|
494
|
-
return types.join(', ')
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
return undefined
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
/**
|
|
501
|
-
* Returns the names of parameters.
|
|
502
|
-
*
|
|
503
|
-
* Возвращает названия параметров переменных.
|
|
504
|
-
*/
|
|
505
|
-
protected getIndexProp(): string | undefined {
|
|
506
|
-
return this.sample.match(/type ([a-zA-Z]*Props[a-zA-Z]*) =/)?.[1]
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
/**
|
|
510
|
-
* Returns the names of parameters and their default values.
|
|
511
|
-
*
|
|
512
|
-
* Возвращает названия параметров и значения по умолчанию.
|
|
513
|
-
*/
|
|
514
|
-
protected getIndexDefault(): string | undefined {
|
|
515
|
-
return this.sample.match(/const ([a-zA-Z]*defaults[a-zA-Z]*)[ :]/)?.[1]
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
* Getting base properties from a constructor.
|
|
520
|
-
*
|
|
521
|
-
* Получение базовых свойств из конструктора.
|
|
522
|
-
* @param constructor data for processing/ данные для обработки
|
|
523
|
-
*/
|
|
524
|
-
protected getTypeForConstructor(constructor: string): string[] {
|
|
525
|
-
const props = getColumn(this.structure.get(), 'name')
|
|
526
|
-
const templates: string[] = []
|
|
527
|
-
|
|
528
|
-
constructor
|
|
529
|
-
.match(/(?<=type[^{]+Props[^{]+{[^{}]+)(^[^\n{}/]+$)(?=[^{}]+^})/igm)
|
|
530
|
-
?.forEach((string) => {
|
|
531
|
-
const name = string.match(/[a-z0-9]+(?=[?:])/i)?.[0]
|
|
532
|
-
|
|
533
|
-
if (name && props.indexOf(name) === -1) {
|
|
534
|
-
templates.push(`// [constructor] ${string.trim()}`)
|
|
535
|
-
}
|
|
536
|
-
})
|
|
537
|
-
|
|
538
|
-
return templates
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
/**
|
|
542
|
-
* Adds new data from tokens to existing data.
|
|
543
|
-
*
|
|
544
|
-
* Добавляет новые данные из токенов к уже существующим.
|
|
545
|
-
* @param mark label property/ метка свойства
|
|
546
|
-
* @param name property name/ название свойства
|
|
547
|
-
* @param value property value/ значение свойства
|
|
548
|
-
*/
|
|
549
|
-
protected initMarkAddValue(
|
|
550
|
-
mark: string,
|
|
551
|
-
name: string,
|
|
552
|
-
value: string
|
|
553
|
-
): boolean {
|
|
554
|
-
if (
|
|
555
|
-
this.sample.match(`:${mark}.${name}`)
|
|
556
|
-
) {
|
|
557
|
-
this.sample = this.sample
|
|
558
|
-
.replace(
|
|
559
|
-
new RegExp(`(/[*] ?:${mark}[.]${name} ?[*]/)[^\r\n]*`, 'g'),
|
|
560
|
-
`$1 | ${value}`
|
|
561
|
-
)
|
|
562
|
-
|
|
563
|
-
return true
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
return false
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
/**
|
|
570
|
-
* Getting an array with all classes and conditions of activity status.
|
|
571
|
-
*
|
|
572
|
-
* Получение массива со всеми классами и условиями статуса активности.
|
|
573
|
-
* @param items data list/ список данных
|
|
574
|
-
* @param parent ancestor data/ данные о предке
|
|
575
|
-
* @param values activity conditions/ условия активности
|
|
576
|
-
* @protected
|
|
577
|
-
*/
|
|
578
|
-
protected initClassesValues(
|
|
579
|
-
items: DesignStructureList | DesignStructureItemSub[] = this.structure.get(),
|
|
580
|
-
parent: string = this.structure?.getPathName() ?? '',
|
|
581
|
-
values: string[] = []
|
|
582
|
-
): string[] {
|
|
583
|
-
const templates: string[] = []
|
|
584
|
-
|
|
585
|
-
forEach(items, (item) => {
|
|
586
|
-
const {
|
|
587
|
-
name,
|
|
588
|
-
value,
|
|
589
|
-
state
|
|
590
|
-
} = item
|
|
591
|
-
|
|
592
|
-
const index = `props.${name}`
|
|
593
|
-
const newParent = ('className' in item && item?.className as string) || `${parent}--${name}`
|
|
594
|
-
const newValues = [
|
|
595
|
-
...values,
|
|
596
|
-
this.isString(value) ? `Boolean(${index})` : index,
|
|
597
|
-
...this.initClassesCategory(item)
|
|
598
|
-
]
|
|
599
|
-
|
|
600
|
-
if (this.isBoolean(value)) {
|
|
601
|
-
templates.push(
|
|
602
|
-
`'${newParent}': ${newValues.join(' && ')}`,
|
|
603
|
-
...this.initClassesValues(state, newParent, newValues)
|
|
604
|
-
)
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
if ('style' in item && item.style) {
|
|
608
|
-
templates.push(`'${newParent}--${UI_KEY_CUSTOM}': isFilled(${index}) && !inArray(propsValues.${name}, ${index})`)
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
if (
|
|
612
|
-
this.isString(value)
|
|
613
|
-
&& !(value.length === 1 && value[0] === UI_KEY_CUSTOM)
|
|
614
|
-
) {
|
|
615
|
-
templates.push(`[\`${newParent.match(/-palette$/) ? `${newParent} ` : ''}${newParent}--\${${index}}\`]: inArray(propsValues.${name}, ${index})`)
|
|
616
|
-
}
|
|
617
|
-
})
|
|
618
|
-
|
|
619
|
-
return templates
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
/**
|
|
623
|
-
* Adding an exception for the current property.
|
|
624
|
-
*
|
|
625
|
-
* Добавление исключения для текущего свойства.
|
|
626
|
-
* @param item object for checking/ объект для проверки
|
|
627
|
-
*/
|
|
628
|
-
protected initClassesCategory(item: DesignStructureItem | DesignStructureItemSub): string[] {
|
|
629
|
-
const values: string[] = []
|
|
630
|
-
|
|
631
|
-
if (
|
|
632
|
-
'category' in item
|
|
633
|
-
&& item.category
|
|
634
|
-
&& Boolean(item.default)
|
|
635
|
-
) {
|
|
636
|
-
forEach(this.structure.get(), ({
|
|
637
|
-
name,
|
|
638
|
-
category
|
|
639
|
-
}) => {
|
|
640
|
-
if (item.name !== name && item.category === category) {
|
|
641
|
-
values.push(`!props.${name}`)
|
|
642
|
-
}
|
|
643
|
-
})
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
return values
|
|
647
|
-
}
|
|
648
|
-
|
|
649
|
-
/**
|
|
650
|
-
* Getting an array with all component styles.
|
|
651
|
-
*
|
|
652
|
-
* Получение массива со всеми стилями компонента.
|
|
653
|
-
* @param items data list/ список данных
|
|
654
|
-
*/
|
|
655
|
-
protected initStylesValues(
|
|
656
|
-
items: DesignStructureList = this.structure.get()
|
|
657
|
-
): string[] {
|
|
658
|
-
const templates: string[] = []
|
|
659
|
-
const className = this.structure?.getPathName()
|
|
660
|
-
|
|
661
|
-
forEach(items, ({
|
|
662
|
-
name,
|
|
663
|
-
style
|
|
664
|
-
}) => {
|
|
665
|
-
if (style) {
|
|
666
|
-
templates.push(`'--${className}-sys-${name}': props.${name} ?? null`)
|
|
667
|
-
}
|
|
668
|
-
})
|
|
669
|
-
|
|
670
|
-
return templates
|
|
671
|
-
}
|
|
672
|
-
}
|