DruxtEntity
View source on GitHubModules
- 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.jsdruxt.entity, the Wrapper componentdruxtobject or the DruxtEntity componentsettingsproperty.- 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>
- DruxtEntity
- instance
- .getQuery(settings) ⇒
boolean|object - .isEmpty(value) ⇒
boolean
- .getQuery(settings) ⇒
- static
- instance
- static
- instance
.getQuery(settings) ⇒ boolean | object
Builds the query for the JSON:API request.
Kind: instance method of DruxtEntity
| Param | Type | Description |
|---|---|---|
| settings | ModuleSettings | The merged module and component settings object. |
.isEmpty(value) ⇒ boolean
Checks if an Entity field is empty.
Kind: instance method of DruxtEntity
| Param | Type | Description |
|---|---|---|
| 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
- .computed
- .entity ⇒
object - .fields ⇒
object - .classes() :
Array.<string>
- .entity ⇒
.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
| Param | Type | Description |
|---|---|---|
| context | object | The 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
| Param | Type | Description |
|---|---|---|
| context | object | The 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
| Name | Type | Description |
|---|---|---|
| model | object | The model object. |
| schema | object | The 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
| Param | Type | Description |
|---|---|---|
| component | string | The 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
| Param | Type | Description |
|---|---|---|
| query | object | Entity query settings: |
| query.bypassCache | boolean | function | Whether to pull the data from the Vuex store or from the JSON:API. |
| query.fields | Array.<string> | Array.<array> | An array or arrays of fields to filter from the JSON:API Resources. |
| query.include | Array.<string> | An array of relationships to include alongside the JSON:API Resource. |
| query.schema | boolean | Whether 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
| Param | Type | Description |
|---|---|---|
| entity | object | The Drupal Entity JSON:API resource data. |
| fields | object | Drupal Entity Fields data. |
| schema | object | DruxtJS Schema object. |
| value | object | The 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
| Param | Type | Description |
|---|---|---|
| * | function | Slot per field. |
| default | function | All 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
| Name | Type | Description |
|---|---|---|
| global | boolean | Component global registration state. |
| name | string | The component name. |
| parts | Array.<string> | The component naming parts. |
Example
[{
global: true,
pascal: 'DruxtTestModuleWrapper',
parts: ['Wrapper'],
}]
ComponentData : object
Kind: global typedef
Properties
| Name | Type | Default | Description |
|---|---|---|---|
| $attrs | object | propsData not registered by the Wrapper component. | |
| is | string | "DruxtWrapper" | The Wrapper component name. |
| options | Array.<string> | The Wrapper component options. | |
| props | object | propsData registered by the Wrapper component. | |
| propsData | object | The component propsData object. | |
| settings | object | Druxt 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
| Name | Type | Description |
|---|---|---|
| druxt | object | Druxt settings object for use by Druxt module. |
| props | object | Registered props oject. |
Example
{
druxt: { fooBar: true },
props: {
foo: {
type: String,
default: '',
}
}
}