0.7.1 • Published 9 months ago

carbis-config-component v0.7.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Instructions

Модуль для отображения и работы с конфигурацией, взаимодействующий с Parametrica

<Config
  :metaConfig="metaConfig"
  v-model="localConfig"
  :isDev="false"
  :exclude="[]"
  :loading="loading"
  @validate="(v) => showValidate(v)">
</Config>

Installation

npm i carbis-config-component
import { CarbisConfig } from "carbis-config-component";

Table of contents

Props

metaConfig          - Объект метаданных конфигурации
value               - Объект данных конфигурации
isDev               - Режим разработчика
exclude             - Список полей, которые не должны отображаться
loading             - Состояние загрузки
defaultOpened       - Список ключей для раскрытия панели по дефолту

Events

validate           - Событие, происходящее при изменении поля
update             - Событие, которое возвращает объект, содержащий исключительно изменённые поля

Slots

Данный модуль позволяет переопределить компонент любого поля, для удобства необходимо перейти в режим разработчика isDev="true"

[FieldSet]-slot                 - Переопределение компонента FieldSet 
[FieldSet-Field]-slot           - Переопределние поля в FieldSet
[FieldSet.FieldSet-Field]-slot  - Переопределение поля во вложенном FieldSet
[FieldSet]-action-slot          - Переопределение действия в компоненте FieldSet
[FieldSet]-footer-slot          - Переопределение подвала компонента в FieldSet
[FieldSet]-header-slot          - Переопределение верхней части компонента в FieldSet
[Field]-slot                    - Переопределение примтивного поля на верхнем уровне
action-slot                     - Переопределение действия основного компонента настроек

При переиспользовании слотов, которые привязаны к Field или FieldSet , вы можете получить аттрибуты

{
  item: [Object, String, Number, Boolean],
  currentKey: String,
  meta: Object,
  relativeKey: String,
  currentKey: String,
  setattr: function (newValue) 
}

Example

Примеры использования

from .ext.parametrica import Field, Fieldset, Parametrica, InRange, io

#Let`s define a Server fieldset
class Server(Fieldset):
    host = Field[str](default='0.0.0.0').label('Server address')
    port = Field[int](default=0).label('Server port').rule(InRange(0, 65535))

#Inheritance is also supported
class AuthServer(Server):
    user = Field[str]('admin').label('Username')
    password = Field[str]('P@55\/\/0rd').label('Password').password()

#Finally, define a configuration root
class Config(Parametrica):
    api_server = Field[AuthServer](host="any.api.com", port="443").label('API Server')
    local_server = Field[Server](port=8080).label('Local server')

    #of course, you can define any field in the config root
    deferred_startup = Field[bool](False).label('Start server after 10 secs')

config = Config(io.YAMLFileConfigIO('config.yaml'))

Далее мы можем получить метаданные конфигурации , вызвав метод __metadata__() - данные отсюда передаём в metaConfig Для получения данных конфигурации используем метод export() - данные отсюда передаём в v-model

<Config
  :metaConfig="metaConfig"
  v-model="localConfig"
  :exclude="[]"
  :loading="loading"
  @validate="(v) => showValidate(v)"
>
  <template #api_server-action-slot>
    <v-btn color="primary">Проверить соединение</v-btn>
  </template>
  <template v-slot:action-slot>
    <v-spacer></v-spacer>
    <v-btn @click="updateConfig(localConfig)" class="primary"
      >Сохранить</v-btn
    >
  </template>
</Config>

В данном примере мы переопределяем action-slot у основного компонента и у FieldSet'а AuthServer Для удобства разработки необходимо переключить компонент в режим разработки, передав параметр isDev="true", что даёт возможность увидеть слоты, которые можно переиспользовать Если нам необходимо скрыть поле, например deferred_startup мы передаём в поле :exclude="'deferred_startup'"

0.7.1

9 months ago

0.7.0

9 months ago

0.6.0

12 months ago

0.5.0

12 months ago

0.4.0

12 months ago

0.3.0

12 months ago

0.2.0

12 months ago

0.1.0

12 months ago

0.0.1

12 months ago

1.0.5

12 months ago

1.0.4

12 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago