Skip to content
entity

DruxtEntity

View source on GitHub

Modules

DruxtEntity

The DruxtEntity component renders a Drupal Content Entity by JSON:API resource type, UUID, view mode and schema type.

Fields are rendered as DruxtField components, based on the Drupal display mode configuration.

Typedefs

ComponentOptions : Array.<array>

Provides the available naming options for the Wrapper component.

ModuleSettings : object

Provides settings for the Entity module, via the nuxt.config.js druxt.entity, the Wrapper component druxt object or the DruxtEntity component settings property.

PropsData : object

Provides property data for use in the Wrapper component.

ScopedSlots : object

Provides scoped slots for use in the Wrapper component.

Components : Array.<object>
ComponentData : object
WrapperData : object

DruxtEntity

The DruxtEntity component renders a Drupal Content Entity by JSON:API resource type, UUID, view mode and schema type.

Fields are rendered as DruxtField components, based on the Drupal display mode configuration.

Example

<DruxtEntity
  type="node--article"
  :uuid="uuid"
  mode="teaser"
/>

Example (DruxtEntity Wrapper component boilerplate)

<template>
  <DruxtDebug :json="entity" />
</template>

<script>
import { DruxtEntityMixin } from 'druxt-entity'
export default {
  mixins: [DruxtEntityMixin]
}

Example (DruxtEntity with template injection)

<DruxtEntity type="" uuid="">
  <template #default="{ entity }">
    <!-- Do whatever you want here -->
    <DruxtDebug :json="entity" />
  </template>
</DruxtEntity>

.getQuery(settings) ⇒ boolean | object

Builds the query for the JSON:API request.

Kind: instance method of DruxtEntity

ParamTypeDescription
settingsModuleSettingsThe merged module and component settings object.

.isEmpty(value) ⇒ boolean

Checks if an Entity field is empty.

Kind: instance method of DruxtEntity

ParamTypeDescription
value*Field value.

.props

Kind: static property of DruxtEntity


.mode : string

Drupal display mode.

Kind: static property of props
Default: "default"


.settings : ModuleSettings

Module settings object.

Kind: static property of props
Default: {}


.schemaType : 'view' | 'form'

Drupal display schema type, 'view' or 'form'.

Kind: static property of props


.type : string

JSON:API resource type.

Kind: static property of props


.uuid : string

Entity UUID.

Kind: static property of props


.langcode : string

The resource langcode.

Kind: static property of props
Default: "undefined"
Example

<DruxtEntity langcode="en" />

.v-model : mixed

The module component model value.

Used to bypass the Drupal JSON:API fetch, setting the module data directly.

Kind: static property of props
Default: null
Example

<DruxtEntity v-model="{ foo: bar }" />

.wrapper : (boolean | object)

The wrapper component configuration.

Used to set the wrapper component, class, style and propsData.

Kind: static property of props
Default: () => undefined
Example

<DruxtEntity
  :wrapper="{
    component: 'MyWrapper',
    class: 'wrapper',
    propsData: { foo: 'bar' }
  }"
/>

.entity : object

The Drupal Entity JSON:API resource data.

Kind: static property of props


.fields : object

Drupal Entity Fields data.

Kind: static property of props


.schema : object

DruxtJS Schema object.

Kind: static property of props


.computed

Kind: static property of DruxtEntity


.entity ⇒ object

The Entity object.

Kind: static property of computed
Returns: object - .


.fields ⇒ object

Entity fields based on Display mode.

Kind: static property of computed


.classes() : Array.<string>

Array of CSS classes.

Kind: static method of computed


.druxt

DruxtModule settings

Kind: static property of DruxtEntity


.template

Druxt development template tool configuration.

Kind: static property of druxt


.componentOptions(context) ⇒ ComponentOptions

Provides the available component naming options for the Druxt Wrapper.

Kind: static method of druxt

ParamTypeDescription
contextobjectThe module component ViewModel.

.fetchConfig()

Fetches the Druxt schema object.

Kind: static method of druxt


.fetchData()

Fetches the content entity JSON:API resource.

Kind: static method of druxt


.propsData(context) ⇒ PropsData

Provides propsData for the DruxtWrapper.

Kind: static method of druxt

ParamTypeDescription
contextobjectThe module component ViewModel.

.settings()

Component settings.

Kind: static method of druxt


.slots() ⇒ ScopedSlots

Provides the scoped slots object for the Module render function.

A scoped slot is provided for each field being rendered, as per the current display mode.

Additionally, the default slot will render all fields as per the

Kind: static method of druxt
Returns: ScopedSlots - The Scoped slots object.
Example (DruxtEntityResourceType.vue)

<template>
  <div>
    <slot name="content" />
    <slot :name="field_name" />
  </div>
</template>

.data()

Kind: static method of DruxtEntity
Properties

NameTypeDescription
modelobjectThe model object.
schemaobjectThe DruxtSchema object.

.error()

Sets the component to render a DruxtDebug error message.

Kind: instance method of DruxtEntity


.getModuleComponents() ⇒ Components

Get list of module wrapper components.

Kind: instance method of DruxtEntity


.getModulePropsData() ⇒ object

Get module propsData via modules druxt.propsData() callback.

Kind: instance method of DruxtEntity
Example

{
  bar: 'foo',
  foo: 'bar',
}

.getScopedSlots() ⇒ object

Gets a Druxt modules scoped slots, and if there's no default slots, provides a develop mode debug default or passes through to a default template.

Kind: instance method of DruxtEntity


.getWrapperData(component) ⇒ WrapperData

Get wrapper component data.

Kind: instance method of DruxtEntity

ParamTypeDescription
componentstringThe Wrapper component name.

.methods

Kind: static property of DruxtEntity


.fetch()

Loads the Druxt module data and applies a wrapper component as required.

Important: If your component has an existing fetch method, you must manually invoke the DruxtModule.fetch() hook.

Kind: static method of DruxtEntity
Example (Manually invoking DruxtModule.fetch().)

import DruxtModule from 'druxt/dist/components/DruxtModule.vue'
export default {
  name: 'DruxtTestModule',
  extends: DruxtModule,
  async fetch() {
    await DruxtModule.fetch.call(this)
  }
  druxt: {
    componentOptions: () => ([['wrapper']]),
    propsData: (ctx) => ({
      bar: ctx.bar,
      foo: ctx.foo,
    }),
  }
}

.lang() ⇒ string

The current language code: the langcode prop if set, otherwise the route's langcode metadata.

Used by Druxt modules to fetch the correct resource translation.

Kind: static method of DruxtEntity
Returns: string - The current language code.


ComponentOptions : Array.<array>

Provides the available naming options for the Wrapper component.

Kind: global typedef
Example

[
  'DruxtEntity[ResourceType][DisplayMode][SchemaType][Langcode]',
  'DruxtEntity[ResourceType][DisplayMode][SchemaType]',
  'DruxtEntity[EntityType][DisplayMode][SchemaType][Langcode]',
  'DruxtEntity[EntityType][DisplayMode][SchemaType]',
  'DruxtEntity[ResourceType][DisplayMode][Langcode]',
  'DruxtEntity[ResourceType][DisplayMode]',
  'DruxtEntity[EntityType][DisplayMode][Langcode]',
  'DruxtEntity[EntityType][DisplayMode]',
  'DruxtEntity[ResourceType][Langcode]',
  'DruxtEntity[ResourceType]',
  'DruxtEntity[EntityType][Langcode]',
  'DruxtEntity[EntityType]',
  'DruxtEntity[DisplayMode][Langcode]',
  'DruxtEntity[DisplayMode]',
]

Example (Article Node (default))

[
  'DruxtEntityNodeArticleDefaultViewEn',
  'DruxtEntityNodeArticleDefaultView',
  'DruxtEntityNodeDefaultViewEn',
  'DruxtEntityNodeDefaultView',
  'DruxtEntityNodeArticleDefaultEn',
  'DruxtEntityNodeArticleDefault',
  'DruxtEntityNodeDefaultEn',
  'DruxtEntityNodeDefault',
  'DruxtEntityNodeArticleEn',
  'DruxtEntityNodeArticle',
  'DruxtEntityNodeEn',
  'DruxtEntityNode',
  'DruxtEntityDefaultEn',
  'DruxtEntityDefault',
]

ModuleSettings : object

Provides settings for the Entity module, via the nuxt.config.js druxt.entity, the Wrapper component druxt object or the DruxtEntity component settings property.

Kind: global typedef

ParamTypeDescription
queryobjectEntity query settings:
query.bypassCacheboolean | functionWhether to pull the data from the Vuex store or from the JSON:API.
query.fieldsArray.<string> | Array.<array>An array or arrays of fields to filter from the JSON:API Resources.
query.includeArray.<string>An array of relationships to include alongside the JSON:API Resource.
query.schemabooleanWhether to automatically detect fields to filter, per the Display mode.

Example (DruxtEntity Wrapper component)

<script>
export default {
  druxt: {
    query: {
      bypassCache: ({ $store }) => $store.$auth.loggedIn,
      fields: [['title'], ['user--user', ['display_name']]],
      include: ['uid']
      schema: true,
    },
  },
}

Example (DruxtEntity component with settings)

<template>
  <DruxtEntity
    type="node--article"
    :uuid="uuid"
    :settings="{
      query: {
        bypassCache: true,
        fields: [['title'], ['user--user', ['display_name']]],
        include: ['uid']
        schema: true,
      }
    }"
  />
</template>

PropsData : object

Provides property data for use in the Wrapper component.

Kind: global typedef

ParamTypeDescription
entityobjectThe Drupal Entity JSON:API resource data.
fieldsobjectDrupal Entity Fields data.
schemaobjectDruxtJS Schema object.
valueobjectThe Entity value.

Example

{
  entity: {
    attributes: {},
    id: '43118086-cca5-4c62-b11e-f1d870050ebd',
    links: {},
    relationships: {},
    type: 'node--article',
  },
  fields: {
    body: {},
    field_media_image: {},
    field_tags: {},
  },
  schema: {
    config: {},
    fields: {},
    groups: {},
    id: 'node--article--default--view',
    resourceType: 'node--article',
  },
  value: {},
}

ScopedSlots : object

Provides scoped slots for use in the Wrapper component.

Kind: global typedef

ParamTypeDescription
*functionSlot per field.
defaultfunctionAll fields per Display mode.

Example (DruxtEntityResourceType.vue)

<template>
  <div>
    <slot name="content" />
    <slot :name="field_name" />
  </div>
</template>

Components : Array.<object>

Kind: global typedef
Properties

NameTypeDescription
globalbooleanComponent global registration state.
namestringThe component name.
partsArray.<string>The component naming parts.

Example

[{
  global: true,
  pascal: 'DruxtTestModuleWrapper',
  parts: ['Wrapper'],
}]

ComponentData : object

Kind: global typedef
Properties

NameTypeDefaultDescription
$attrsobjectpropsData not registered by the Wrapper component.
isstring"DruxtWrapper"The Wrapper component name.
optionsArray.<string>The Wrapper component options.
propsobjectpropsData registered by the Wrapper component.
propsDataobjectThe component propsData object.
settingsobjectDruxt settings object provided by the Wrapper component.

Example

{
  $attrs: { bar: 'foo' },
  is: 'DruxtTestModuleWrapper',
  options: [
    'DruxtTestModuleWrapper',
  ],
  props: { foo: 'bar' },
  propsData: {
    bar: 'foo',
    foo: 'bar',
  },
  settings: { fooBar: true },
}

WrapperData : object

Kind: global typedef
Properties

NameTypeDescription
druxtobjectDruxt settings object for use by Druxt module.
propsobjectRegistered props oject.

Example

{
  druxt: { fooBar: true },
  props: {
    foo: {
      type: String,
      default: '',
    }
  }
}