druxt-views 0.17.1 → 0.18.1
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/dist/components/DruxtView.vue +40 -5
- package/dist/druxt-views.esm.js +25 -18
- package/dist/druxt-views.ssr.js +25 -18
- package/package.json +5 -5
- package/templates/druxt-views.instance.stories.js +45 -0
- package/templates/druxt-views.stories.js +62 -22
- package/CHANGELOG.md +0 -311
- package/dist/components/DruxtView.stories.mjs +0 -15
|
@@ -7,16 +7,40 @@ import { parse, stringify } from 'qs'
|
|
|
7
7
|
import { mapActions } from 'vuex'
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
* the Drupal JSON:API Views module.
|
|
10
|
+
* The DruxtView component renders Drupal Views using configuration and
|
|
11
|
+
* results provided by the Drupal View and the JSON:API Views module.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
13
|
+
* The component renders slots for the View's headers, footers, entity results,
|
|
14
|
+
* exposed sorts and filters, and supports contextual filters.
|
|
14
15
|
*
|
|
15
|
-
* @example
|
|
16
|
+
* @example @lang vue
|
|
17
|
+
* <DruxtView display-id="block_1" view-id="promoted_items" />
|
|
18
|
+
*
|
|
19
|
+
* @example <caption>View with contextual filter</caption> @lang vue
|
|
16
20
|
* <DruxtView
|
|
21
|
+
* :arguments="[entity.attributes.drupal_internal__nid]"
|
|
17
22
|
* display-id="block_1"
|
|
18
|
-
* view-id="
|
|
23
|
+
* view-id="articles_aside"
|
|
19
24
|
* />
|
|
25
|
+
*
|
|
26
|
+
* @example <caption>DruxtView Wrapper component boilerplate</caption> @lang vue
|
|
27
|
+
* <template>
|
|
28
|
+
* <DruxtDebug :json="results" />
|
|
29
|
+
* </template>
|
|
30
|
+
*
|
|
31
|
+
* <script>
|
|
32
|
+
* import { DruxtViewsViewMixin } from 'druxt-views'
|
|
33
|
+
* export default {
|
|
34
|
+
* mixins: [DruxtViewsViewMixin]
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* @example <caption>DruxtView with template injection</caption> @lang vue
|
|
38
|
+
* <DruxtView>
|
|
39
|
+
* <template #default="{ results }">
|
|
40
|
+
* <!-- Do whatever you want here -->
|
|
41
|
+
* <DruxtDebug :json="results" />
|
|
42
|
+
* </template>
|
|
43
|
+
* </DruxtView>
|
|
20
44
|
*/
|
|
21
45
|
export default {
|
|
22
46
|
name: 'DruxtView',
|
|
@@ -475,6 +499,17 @@ export default {
|
|
|
475
499
|
// Build scoped slots.
|
|
476
500
|
const scopedSlots = {}
|
|
477
501
|
|
|
502
|
+
// Ensure an ID or UUID.
|
|
503
|
+
if (!this.viewId && !this.uuid) {
|
|
504
|
+
return {
|
|
505
|
+
default: () => h(
|
|
506
|
+
'DruxtDebug',
|
|
507
|
+
{ props: { summary: "Missing required 'uuid' or 'viewId' prop.", }},
|
|
508
|
+
[h('p', "The DruxtView component requires either the 'uuid' or 'viewId' prop to be set.")]
|
|
509
|
+
)
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
|
|
478
513
|
// Headers.
|
|
479
514
|
scopedSlots.header = () => Object.entries(this.headers).map(([key, header]) => h('span', {
|
|
480
515
|
domProps: { innerHTML: (header.content || {}).value }, key
|
package/dist/druxt-views.esm.js
CHANGED
|
@@ -10,32 +10,40 @@ async function DruxtViewsStorybook({ stories }) {
|
|
|
10
10
|
const druxt = new DruxtClient(options.druxt.baseUrl, { ...options.druxt, proxy: { api: false } });
|
|
11
11
|
const resourceType = "view--view";
|
|
12
12
|
const query = new DrupalJsonApiParams().addFilter("status", 1).addFields(resourceType, ["display", "description", "drupal_internal__id", "label"]);
|
|
13
|
-
const collections = await druxt.getCollectionAll(resourceType, query);
|
|
13
|
+
const collections = (await druxt.getCollectionAll(resourceType, query)).map((collection) => collection.data).flat();
|
|
14
14
|
const views = {};
|
|
15
|
-
for (const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
15
|
+
for (const view of collections) {
|
|
16
|
+
const { description, display, drupal_internal__id, label } = view.attributes;
|
|
17
|
+
const displays = Object.values(display).filter((item) => {
|
|
18
|
+
const options2 = item.id === "default" ? item : merge(display.default, item);
|
|
19
|
+
const extenders = options2.display_options.display_extenders;
|
|
20
|
+
const enabled = !(!Array.isArray(extenders) && !(extenders.jsonapi_views || {}).enabled);
|
|
21
|
+
return enabled ? options2.display_options.row.type.startsWith("entity:") : false;
|
|
22
|
+
});
|
|
23
|
+
if (displays.length) {
|
|
24
|
+
views[drupal_internal__id] = {
|
|
25
|
+
description,
|
|
26
|
+
displays,
|
|
27
|
+
uuid: view.id,
|
|
28
|
+
viewId: drupal_internal__id,
|
|
29
|
+
label
|
|
30
|
+
};
|
|
29
31
|
}
|
|
30
32
|
}
|
|
33
|
+
addTemplate({
|
|
34
|
+
src: resolve(__dirname, `../templates/druxt-views.stories.js`),
|
|
35
|
+
fileName: `stories/druxt-views.stories.js`,
|
|
36
|
+
options: { views }
|
|
37
|
+
});
|
|
38
|
+
stories.push(resolve(options.buildDir, "./stories/druxt-views.stories.js"));
|
|
31
39
|
for (const viewId of Object.keys(views)) {
|
|
32
40
|
const { description, displays, label, uuid } = views[viewId];
|
|
33
41
|
displays.sort((a) => a.id === "default" ? -1 : 0);
|
|
34
42
|
const title = ["Druxt", "Views", label].join("/");
|
|
35
43
|
addTemplate({
|
|
36
|
-
src: resolve(__dirname, "../templates/druxt-views.stories.js"),
|
|
44
|
+
src: resolve(__dirname, "../templates/druxt-views.instance.stories.js"),
|
|
37
45
|
fileName: `stories/druxt-views.${viewId}.stories.js`,
|
|
38
|
-
options: { description, displays, title, uuid, viewId }
|
|
46
|
+
options: { description, displays, label, title, uuid, viewId }
|
|
39
47
|
});
|
|
40
48
|
}
|
|
41
49
|
stories.push(resolve(options.buildDir, "./stories/druxt-views.*.stories.js"));
|
|
@@ -67,7 +75,6 @@ const DruxtViewsNuxtModule = function(moduleOptions = {}) {
|
|
|
67
75
|
});
|
|
68
76
|
options.store = true;
|
|
69
77
|
this.nuxt.hook("storybook:config", async ({ stories }) => {
|
|
70
|
-
stories.push("druxt-views/dist/components/*.stories.mjs");
|
|
71
78
|
await DruxtViewsStorybook.call(this, { stories });
|
|
72
79
|
});
|
|
73
80
|
};
|
package/dist/druxt-views.ssr.js
CHANGED
|
@@ -19,32 +19,40 @@ async function DruxtViewsStorybook({ stories }) {
|
|
|
19
19
|
const druxt$1 = new druxt.DruxtClient(options.druxt.baseUrl, { ...options.druxt, proxy: { api: false } });
|
|
20
20
|
const resourceType = "view--view";
|
|
21
21
|
const query = new drupalJsonapiParams.DrupalJsonApiParams().addFilter("status", 1).addFields(resourceType, ["display", "description", "drupal_internal__id", "label"]);
|
|
22
|
-
const collections = await druxt$1.getCollectionAll(resourceType, query);
|
|
22
|
+
const collections = (await druxt$1.getCollectionAll(resourceType, query)).map((collection) => collection.data).flat();
|
|
23
23
|
const views = {};
|
|
24
|
-
for (const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
for (const view of collections) {
|
|
25
|
+
const { description, display, drupal_internal__id, label } = view.attributes;
|
|
26
|
+
const displays = Object.values(display).filter((item) => {
|
|
27
|
+
const options2 = item.id === "default" ? item : merge__default['default'](display.default, item);
|
|
28
|
+
const extenders = options2.display_options.display_extenders;
|
|
29
|
+
const enabled = !(!Array.isArray(extenders) && !(extenders.jsonapi_views || {}).enabled);
|
|
30
|
+
return enabled ? options2.display_options.row.type.startsWith("entity:") : false;
|
|
31
|
+
});
|
|
32
|
+
if (displays.length) {
|
|
33
|
+
views[drupal_internal__id] = {
|
|
34
|
+
description,
|
|
35
|
+
displays,
|
|
36
|
+
uuid: view.id,
|
|
37
|
+
viewId: drupal_internal__id,
|
|
38
|
+
label
|
|
39
|
+
};
|
|
38
40
|
}
|
|
39
41
|
}
|
|
42
|
+
addTemplate({
|
|
43
|
+
src: path.resolve(__dirname, `../templates/druxt-views.stories.js`),
|
|
44
|
+
fileName: `stories/druxt-views.stories.js`,
|
|
45
|
+
options: { views }
|
|
46
|
+
});
|
|
47
|
+
stories.push(path.resolve(options.buildDir, "./stories/druxt-views.stories.js"));
|
|
40
48
|
for (const viewId of Object.keys(views)) {
|
|
41
49
|
const { description, displays, label, uuid } = views[viewId];
|
|
42
50
|
displays.sort((a) => a.id === "default" ? -1 : 0);
|
|
43
51
|
const title = ["Druxt", "Views", label].join("/");
|
|
44
52
|
addTemplate({
|
|
45
|
-
src: path.resolve(__dirname, "../templates/druxt-views.stories.js"),
|
|
53
|
+
src: path.resolve(__dirname, "../templates/druxt-views.instance.stories.js"),
|
|
46
54
|
fileName: `stories/druxt-views.${viewId}.stories.js`,
|
|
47
|
-
options: { description, displays, title, uuid, viewId }
|
|
55
|
+
options: { description, displays, label, title, uuid, viewId }
|
|
48
56
|
});
|
|
49
57
|
}
|
|
50
58
|
stories.push(path.resolve(options.buildDir, "./stories/druxt-views.*.stories.js"));
|
|
@@ -76,7 +84,6 @@ const DruxtViewsNuxtModule = function(moduleOptions = {}) {
|
|
|
76
84
|
});
|
|
77
85
|
options.store = true;
|
|
78
86
|
this.nuxt.hook("storybook:config", async ({ stories }) => {
|
|
79
|
-
stories.push("druxt-views/dist/components/*.stories.mjs");
|
|
80
87
|
await DruxtViewsStorybook.call(this, { stories });
|
|
81
88
|
});
|
|
82
89
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "druxt-views",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.1",
|
|
4
4
|
"description": "Drupal Views components for Druxt with support for filters, pagination and sorting.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cms",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"axios": "^0.21.1",
|
|
45
45
|
"deepmerge": "^4.2.2",
|
|
46
46
|
"drupal-jsonapi-params": "^1.1.12",
|
|
47
|
-
"druxt": "^0.
|
|
48
|
-
"druxt-blocks": "^0.
|
|
49
|
-
"druxt-entity": "^0.
|
|
50
|
-
"druxt-router": "^0.
|
|
47
|
+
"druxt": "^0.18.0",
|
|
48
|
+
"druxt-blocks": "^0.15.1",
|
|
49
|
+
"druxt-entity": "^0.24.2",
|
|
50
|
+
"druxt-router": "^0.26.1",
|
|
51
51
|
"md5": "^2.3.0"
|
|
52
52
|
},
|
|
53
53
|
"optionalDependencies": {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import DruxtView from 'druxt-views/dist/components/DruxtView.vue'
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: <%= devalue(options.title) %>,
|
|
5
|
+
component: DruxtView,
|
|
6
|
+
argTypes: {
|
|
7
|
+
displayId: {
|
|
8
|
+
options: [<%= options.displays.map(({ id }) => `'${id}'`).join(', ') %>],
|
|
9
|
+
control: {
|
|
10
|
+
type: 'select',
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
type: { table: { disable: true }},
|
|
14
|
+
viewId: { table: { disable: true }},
|
|
15
|
+
uuid: { table: { disable: true }},
|
|
16
|
+
},
|
|
17
|
+
parameters: {
|
|
18
|
+
docs: {
|
|
19
|
+
description: {
|
|
20
|
+
component: <%= options.description ? devalue(options.description) : `"Renders the **${options.label}** view."` %> + '\n\n```jsx\n\n<DruxtView view-id="<%= options.viewId %>" />\n```'
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const Template = (args, { argTypes }) => ({
|
|
27
|
+
props: Object.keys(args),
|
|
28
|
+
template: '<DruxtView v-bind="$props" v-on="$props" />',
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
<% for (display of options.displays) { %>
|
|
32
|
+
export const <%= display.id.charAt(0).toUpperCase() + display.id.slice(1) %> = Template.bind({})
|
|
33
|
+
<%= display.id.charAt(0).toUpperCase() + display.id.slice(1) %>.args = {
|
|
34
|
+
displayId: '<%= display.id %>',
|
|
35
|
+
viewId: '<%= options.viewId %>',
|
|
36
|
+
}
|
|
37
|
+
<%= display.id.charAt(0).toUpperCase() + display.id.slice(1) %>.storyName = '<%= display.display_title %>'
|
|
38
|
+
<%= display.id.charAt(0).toUpperCase() + display.id.slice(1) %>.parameters = {
|
|
39
|
+
docs: {
|
|
40
|
+
source: {
|
|
41
|
+
code: '<DruxtView display-id="<%= display.id %>" view-id="<%= options.viewId %>" />'
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
<% } %>
|
|
@@ -1,42 +1,82 @@
|
|
|
1
1
|
import DruxtView from 'druxt-views/dist/components/DruxtView.vue'
|
|
2
2
|
|
|
3
3
|
export default {
|
|
4
|
-
title:
|
|
4
|
+
title: 'Druxt/Views/DruxtView',
|
|
5
5
|
component: DruxtView,
|
|
6
6
|
argTypes: {
|
|
7
|
-
|
|
7
|
+
uuid: {
|
|
8
|
+
options: [<%= (Object.values(options.views) || []).map((o) => `'${o.uuid}'`).join(', ') %>],
|
|
8
9
|
control: {
|
|
9
10
|
type: 'select',
|
|
10
|
-
|
|
11
|
+
labels: Object.fromEntries([<%= (Object.values(options.views) || []).map((o) => `['${o.uuid}', "${o.label} (${o.uuid})"]`).join(', ') %>])
|
|
11
12
|
},
|
|
12
13
|
},
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
14
|
+
viewId: {
|
|
15
|
+
options: [<%= (Object.keys(options.views) || []).map((s) => `'${s}'`).join(', ') %>],
|
|
16
|
+
control: {
|
|
17
|
+
type: 'select',
|
|
18
|
+
labels: Object.fromEntries([<%= (Object.values(options.views) || []).map((o) => `['${o.viewId}', "${o.label} (${o.viewId})"]`).join(', ') %>])
|
|
19
|
+
},
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
const Template = (args, { argTypes }) => ({
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
components: { DruxtView },
|
|
26
|
+
props: Object.keys(argTypes),
|
|
27
|
+
template: `<DruxtView v-bind="$props" />`
|
|
26
28
|
})
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
export const Default = Template.bind({})
|
|
31
|
+
Default.storyName = 'DruxtView'
|
|
32
|
+
|
|
33
|
+
let code
|
|
34
|
+
|
|
35
|
+
// Wrapper story.
|
|
36
|
+
code = `<template>
|
|
37
|
+
<DruxtDebug :json="results" />
|
|
38
|
+
</template>
|
|
39
|
+
|
|
40
|
+
<script>
|
|
41
|
+
import { DruxtViewsViewMixin } from 'druxt-views'
|
|
42
|
+
export default {
|
|
43
|
+
mixins: [DruxtViewsViewMixin]
|
|
33
44
|
}
|
|
34
|
-
|
|
35
|
-
|
|
45
|
+
</script>`
|
|
46
|
+
export const Wrapper = (args, { argTypes }) => ({
|
|
47
|
+
components: { DruxtView },
|
|
48
|
+
props: Object.keys(argTypes),
|
|
49
|
+
template: `<DruxtView v-bind="$props" ref="module">
|
|
50
|
+
<template #default>
|
|
51
|
+
Component options:
|
|
52
|
+
<ul>
|
|
53
|
+
<li v-for="option of $refs.module.getModuleComponents()" :key="option.name">{{ option.name }}</li>
|
|
54
|
+
</ul>
|
|
55
|
+
</template>
|
|
56
|
+
</DruxtView>`
|
|
57
|
+
})
|
|
58
|
+
Wrapper.parameters = {
|
|
36
59
|
docs: {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
60
|
+
storyDescription: 'The DruxtView component can be themed by using a Druxt Wrapper component.\n\nCreate an appropriately named component, using the relevant component option, with the following boilerplate:\n\n```jsx\n' + code + '\n```',
|
|
61
|
+
source: { code }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Template injection story.
|
|
66
|
+
code = `<DruxtView viewId="">
|
|
67
|
+
<template #default="{ results }">
|
|
68
|
+
<!-- Do whatever you want here -->
|
|
69
|
+
<DruxtDebug :json="results" open />
|
|
70
|
+
</template>
|
|
71
|
+
</DruxtView>`
|
|
72
|
+
export const TemplateInjection = (args, { argTypes }) => ({
|
|
73
|
+
components: { DruxtView },
|
|
74
|
+
props: Object.keys(argTypes),
|
|
75
|
+
template: code.replace('viewId=""', 'v-bind="$props"')
|
|
76
|
+
})
|
|
77
|
+
TemplateInjection.parameters = {
|
|
78
|
+
docs: {
|
|
79
|
+
storyDescription: 'The DruxtView component can be themed by injecting the default template into the compomnent.\n\n```jsx\n' + code + '\n```',
|
|
80
|
+
source: { code }
|
|
40
81
|
}
|
|
41
82
|
}
|
|
42
|
-
<% } %>
|
package/CHANGELOG.md
DELETED
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
# druxt-views
|
|
2
|
-
|
|
3
|
-
## 0.17.1
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- Updated dependencies [7b749bd]
|
|
8
|
-
- druxt@0.16.0
|
|
9
|
-
- druxt-entity@0.22.0
|
|
10
|
-
- druxt-router@0.25.0
|
|
11
|
-
- druxt-blocks@0.14.4
|
|
12
|
-
|
|
13
|
-
## 0.17.0
|
|
14
|
-
|
|
15
|
-
### Minor Changes
|
|
16
|
-
|
|
17
|
-
- 7709ece: Fixed DruxtViewsFilter render method
|
|
18
|
-
|
|
19
|
-
⚠ Potential breaking change
|
|
20
|
-
|
|
21
|
-
_**Note:** This may change the markup of a Druxt View filter component._
|
|
22
|
-
|
|
23
|
-
### Patch Changes
|
|
24
|
-
|
|
25
|
-
- Updated dependencies [2ae1d6d]
|
|
26
|
-
- druxt@0.15.0
|
|
27
|
-
- druxt-blocks@0.14.3
|
|
28
|
-
- druxt-entity@0.21.4
|
|
29
|
-
- druxt-router@0.24.2
|
|
30
|
-
|
|
31
|
-
## 0.16.2
|
|
32
|
-
|
|
33
|
-
### Patch Changes
|
|
34
|
-
|
|
35
|
-
- Updated dependencies [45bc0b9]
|
|
36
|
-
- druxt@0.14.0
|
|
37
|
-
- druxt-blocks@0.14.2
|
|
38
|
-
- druxt-entity@0.21.3
|
|
39
|
-
- druxt-router@0.24.1
|
|
40
|
-
|
|
41
|
-
## 0.16.1
|
|
42
|
-
|
|
43
|
-
### Patch Changes
|
|
44
|
-
|
|
45
|
-
- Updated dependencies [9161b38]
|
|
46
|
-
- druxt-router@0.24.0
|
|
47
|
-
- druxt-blocks@0.14.1
|
|
48
|
-
- druxt-entity@0.21.2
|
|
49
|
-
|
|
50
|
-
## 0.16.0
|
|
51
|
-
|
|
52
|
-
### Minor Changes
|
|
53
|
-
|
|
54
|
-
- e7b1533: Refactored DruxtModule fetch hooks
|
|
55
|
-
|
|
56
|
-
### Patch Changes
|
|
57
|
-
|
|
58
|
-
- d80f5d4: Fixed issue with undefined wrapper in DruxtViewsFilter
|
|
59
|
-
- Updated dependencies [025315a]
|
|
60
|
-
- druxt-entity@0.21.0
|
|
61
|
-
- druxt-blocks@0.14.0
|
|
62
|
-
- druxt@0.13.0
|
|
63
|
-
- druxt-router@0.23.0
|
|
64
|
-
|
|
65
|
-
## 0.15.0
|
|
66
|
-
|
|
67
|
-
### Minor Changes
|
|
68
|
-
|
|
69
|
-
- c769243: Added support for Contextual filters (arguments)
|
|
70
|
-
|
|
71
|
-
```vue
|
|
72
|
-
<DruxtView
|
|
73
|
-
:arguments="[1, 2, 3]"
|
|
74
|
-
displayid="block_1"
|
|
75
|
-
view-id="articles_aside"
|
|
76
|
-
/>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Patch Changes
|
|
80
|
-
|
|
81
|
-
- Updated dependencies [4504a2f]
|
|
82
|
-
- druxt@0.12.0
|
|
83
|
-
- druxt-router@0.22.0
|
|
84
|
-
- druxt-entity@0.20.0
|
|
85
|
-
- druxt-blocks@0.13.1
|
|
86
|
-
|
|
87
|
-
## 0.14.1
|
|
88
|
-
|
|
89
|
-
### Patch Changes
|
|
90
|
-
|
|
91
|
-
- b9e5839: Fixed missing templates in package
|
|
92
|
-
|
|
93
|
-
## 0.14.0
|
|
94
|
-
|
|
95
|
-
### Minor Changes
|
|
96
|
-
|
|
97
|
-
- dae345e: Moved `$druxtViews` plugin settings to `$druxt.settings.views`
|
|
98
|
-
- dae345e: Added module level options
|
|
99
|
-
- 8d28c18: Updated storybook integration
|
|
100
|
-
|
|
101
|
-
### Patch Changes
|
|
102
|
-
|
|
103
|
-
- 4da7fd3: Fixed errors when no props provided to component
|
|
104
|
-
- Updated dependencies [9d905e8]
|
|
105
|
-
- druxt-router@0.21.0
|
|
106
|
-
- druxt-blocks@0.13.0
|
|
107
|
-
- druxt-entity@0.19.0
|
|
108
|
-
- druxt@0.11.0
|
|
109
|
-
|
|
110
|
-
## 0.13.0
|
|
111
|
-
|
|
112
|
-
### Minor Changes
|
|
113
|
-
|
|
114
|
-
- 715e5ef: Updated component registration method to use the Nuxt `components:dirs` hook
|
|
115
|
-
|
|
116
|
-
### Patch Changes
|
|
117
|
-
|
|
118
|
-
- 49454cb: Fixed path to components in Storybook
|
|
119
|
-
- Updated dependencies [1ab762c]
|
|
120
|
-
- druxt-router@0.20.0
|
|
121
|
-
- druxt-blocks@0.12.0
|
|
122
|
-
- druxt@0.10.0
|
|
123
|
-
- druxt-entity@0.18.0
|
|
124
|
-
|
|
125
|
-
## 0.12.1
|
|
126
|
-
|
|
127
|
-
### Patch Changes
|
|
128
|
-
|
|
129
|
-
- c4616df: Fixed dependencies
|
|
130
|
-
- Updated dependencies [c4616df]
|
|
131
|
-
- druxt-blocks@0.11.1
|
|
132
|
-
- druxt-entity@0.17.1
|
|
133
|
-
- druxt-router@0.19.1
|
|
134
|
-
|
|
135
|
-
## 0.12.0
|
|
136
|
-
|
|
137
|
-
### Minor Changes
|
|
138
|
-
|
|
139
|
-
- 21170fb: Moved Vue components out of bundle
|
|
140
|
-
|
|
141
|
-
⚠ Potential breaking change
|
|
142
|
-
|
|
143
|
-
_**Note:** This only effects custom Druxt modules and implementations._
|
|
144
|
-
|
|
145
|
-
```diff
|
|
146
|
-
-import { DruxtView } from 'druxt-views'
|
|
147
|
-
+import DruxtView from 'druxt-views/dist/components/DruxtView.vue'
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
### Patch Changes
|
|
151
|
-
|
|
152
|
-
- Updated dependencies [21170fb]
|
|
153
|
-
- druxt-blocks@0.11.0
|
|
154
|
-
- druxt@0.9.0
|
|
155
|
-
- druxt-entity@0.17.0
|
|
156
|
-
- druxt-router@0.19.0
|
|
157
|
-
|
|
158
|
-
## 0.11.0
|
|
159
|
-
|
|
160
|
-
### Minor Changes
|
|
161
|
-
|
|
162
|
-
- Added support for default template injection
|
|
163
|
-
|
|
164
|
-
- For details, see the [Druxt 0.8.0 release notes](/api/packages/druxt/CHANGELOG#080)
|
|
165
|
-
|
|
166
|
-
- Added ability to load by UUID or View ID
|
|
167
|
-
|
|
168
|
-
## 0.10.0
|
|
169
|
-
|
|
170
|
-
### Minor Changes
|
|
171
|
-
|
|
172
|
-
- Added empty content to results slot if no results
|
|
173
|
-
|
|
174
|
-
## 0.9.3
|
|
175
|
-
|
|
176
|
-
### Patch Changes
|
|
177
|
-
|
|
178
|
-
- Fixed issue with model filter forcing a refresh
|
|
179
|
-
|
|
180
|
-
## 0.9.2
|
|
181
|
-
|
|
182
|
-
### Patch Changes
|
|
183
|
-
|
|
184
|
-
- Added fetchKey to fix hydration issues
|
|
185
|
-
|
|
186
|
-
## 0.9.1
|
|
187
|
-
|
|
188
|
-
### Patch Changes
|
|
189
|
-
|
|
190
|
-
- Fixed issue with default view mode value
|
|
191
|
-
|
|
192
|
-
## 0.9.0
|
|
193
|
-
|
|
194
|
-
### Minor Changes
|
|
195
|
-
|
|
196
|
-
- Added ability to filter JSON:API fields
|
|
197
|
-
- Refactored components to use DruxtModule
|
|
198
|
-
- Fixed issues with Storybook integration
|
|
199
|
-
|
|
200
|
-
## 0.8.3
|
|
201
|
-
|
|
202
|
-
### Patch Changes
|
|
203
|
-
|
|
204
|
-
- Fixed missing attachement Views
|
|
205
|
-
|
|
206
|
-
## 0.8.2
|
|
207
|
-
|
|
208
|
-
### Patch Changes
|
|
209
|
-
|
|
210
|
-
- Fixed issues with Storybook integration
|
|
211
|
-
|
|
212
|
-
## 0.8.1
|
|
213
|
-
|
|
214
|
-
### Patch Changes
|
|
215
|
-
|
|
216
|
-
- Fixed issues with Storybook integration
|
|
217
|
-
- Fixed missing attachements Views
|
|
218
|
-
|
|
219
|
-
## 0.8.0
|
|
220
|
-
|
|
221
|
-
### Minor Changes
|
|
222
|
-
|
|
223
|
-
- Added Storybook intergration
|
|
224
|
-
- Fixed broken View results
|
|
225
|
-
|
|
226
|
-
## 0.7.2
|
|
227
|
-
|
|
228
|
-
### Patch Changes
|
|
229
|
-
|
|
230
|
-
- Fixed broken View results
|
|
231
|
-
|
|
232
|
-
## 0.7.1
|
|
233
|
-
|
|
234
|
-
### Patch Changes
|
|
235
|
-
|
|
236
|
-
- Fixed deprecation notice
|
|
237
|
-
|
|
238
|
-
## 0.7.0
|
|
239
|
-
|
|
240
|
-
### Minor Changes
|
|
241
|
-
|
|
242
|
-
- Refactored module to use DruxtClient/DruxtStore
|
|
243
|
-
- Added pagination
|
|
244
|
-
- Added exposed sorts
|
|
245
|
-
- Added exposed filters
|
|
246
|
-
- Added Views Vuex store
|
|
247
|
-
|
|
248
|
-
## 0.6.2
|
|
249
|
-
|
|
250
|
-
### Patch Changes
|
|
251
|
-
|
|
252
|
-
- Fixed issue with View display data
|
|
253
|
-
|
|
254
|
-
## 0.6.1
|
|
255
|
-
|
|
256
|
-
### Patch Changes
|
|
257
|
-
|
|
258
|
-
- Updated dependencies
|
|
259
|
-
|
|
260
|
-
## 0.6.0
|
|
261
|
-
|
|
262
|
-
### Minor Changes
|
|
263
|
-
|
|
264
|
-
- Added DruxtRouter View component
|
|
265
|
-
- Updated dependencies
|
|
266
|
-
|
|
267
|
-
## 0.5.1
|
|
268
|
-
|
|
269
|
-
### Patch Changes
|
|
270
|
-
|
|
271
|
-
- Updated dependencies
|
|
272
|
-
|
|
273
|
-
## 0.5.0
|
|
274
|
-
|
|
275
|
-
### Minor Changes
|
|
276
|
-
|
|
277
|
-
- Added support for DruxtComponentMixin
|
|
278
|
-
- Updated dependencies
|
|
279
|
-
|
|
280
|
-
## 0.4.2
|
|
281
|
-
|
|
282
|
-
### Patch Changes
|
|
283
|
-
|
|
284
|
-
- Updated attachment_before/after slots
|
|
285
|
-
- Updated dependencies
|
|
286
|
-
|
|
287
|
-
## 0.4.1
|
|
288
|
-
|
|
289
|
-
### Patch Changes
|
|
290
|
-
|
|
291
|
-
- Added attachment_before/after slots
|
|
292
|
-
|
|
293
|
-
## 0.4.0
|
|
294
|
-
|
|
295
|
-
### Minor Changes
|
|
296
|
-
|
|
297
|
-
## 0.3.0
|
|
298
|
-
|
|
299
|
-
### Minor Changes
|
|
300
|
-
|
|
301
|
-
## 0.2.1
|
|
302
|
-
|
|
303
|
-
### Patch Changes
|
|
304
|
-
|
|
305
|
-
## 0.2.0
|
|
306
|
-
|
|
307
|
-
### Minor Changes
|
|
308
|
-
|
|
309
|
-
## 0.1.0
|
|
310
|
-
|
|
311
|
-
### Initial release
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import DruxtView from './DruxtView.vue'
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
title: 'Druxt/Views/DruxtView',
|
|
5
|
-
component: DruxtView
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const Template = (args, { argTypes }) => ({
|
|
9
|
-
components: { DruxtView },
|
|
10
|
-
props: Object.keys(argTypes),
|
|
11
|
-
template: `<DruxtView v-bind="$props" />`
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
export const Default = Template.bind({})
|
|
15
|
-
Default.storyName = 'DruxtView'
|