@mptw/skylens-ui 1.2.18 → 1.2.20

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.
@@ -1,7 +1,7 @@
1
1
  <template lang="pug">
2
2
  .site-page
3
3
  slot(name="site-page-header")
4
- .site-page-header
4
+ .site-page-header(:class='{ empty: isHeaderEmpty }', ref='pageHeaderEl')
5
5
  .site-page-header-left
6
6
  .site-page-header-left-top
7
7
  #breadcrumbs
@@ -30,9 +30,12 @@ export default defineComponent({
30
30
  },
31
31
  },
32
32
  setup() {
33
+ const pageHeaderEl = shallowRef<HTMLElement | null>(null);
33
34
  const dataSourcesTarget = shallowRef<HTMLElement | null>(null);
34
35
  const dataSourcesMargin = ref(0);
36
+ const isHeaderEmpty = ref(true);
35
37
 
38
+ let headerMutationObserver: MutationObserver | null = null;
36
39
  let mutationObserver: MutationObserver | null = null;
37
40
 
38
41
  function onDataSourcesTargetChange() {
@@ -45,6 +48,29 @@ export default defineComponent({
45
48
  }
46
49
 
47
50
  onMounted(() => {
51
+ if (pageHeaderEl.value) {
52
+ headerMutationObserver = new MutationObserver(() => {
53
+ const breadcrumbs = pageHeaderEl.value.querySelector("#breadcrumbs");
54
+ const pageDataSources = pageHeaderEl.value.querySelector(
55
+ "#site-page-datasources"
56
+ );
57
+ const headerLeftBottom = pageHeaderEl.value.querySelector(
58
+ "#site-page-header-left-bottom"
59
+ )
60
+
61
+ if (breadcrumbs?.children.length || pageDataSources?.children.length || headerLeftBottom?.children.length) {
62
+ isHeaderEmpty.value = false;
63
+ } else {
64
+ isHeaderEmpty.value = true;
65
+ }
66
+ });
67
+
68
+ headerMutationObserver.observe(pageHeaderEl.value, {
69
+ childList: true,
70
+ subtree: true,
71
+ });
72
+ }
73
+
48
74
  if (dataSourcesTarget.value) {
49
75
  mutationObserver = new MutationObserver(() => {
50
76
  onDataSourcesTargetChange();
@@ -59,15 +85,21 @@ export default defineComponent({
59
85
  });
60
86
 
61
87
  onBeforeUnmount(() => {
88
+ if (headerMutationObserver) {
89
+ headerMutationObserver.disconnect();
90
+ }
62
91
  if (mutationObserver) {
63
92
  mutationObserver.disconnect();
64
93
  }
94
+ headerMutationObserver = null;
65
95
  mutationObserver = null;
66
96
  });
67
97
 
68
98
  return {
99
+ pageHeaderEl,
69
100
  dataSourcesTarget,
70
101
  dataSourcesMargin,
102
+ isHeaderEmpty,
71
103
  onDataSourcesTargetChange,
72
104
  };
73
105
  },
@@ -81,6 +113,13 @@ export default defineComponent({
81
113
  &-header
82
114
  @apply flex justify-between mb-4
83
115
 
116
+ &.empty
117
+ @apply mb-0
118
+
119
+ .site-page-header-left
120
+ #site-page-header-left-bottom
121
+ @apply mt-0
122
+
84
123
  &-left
85
124
  &-top
86
125
  @apply flex items-center justify-start
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mptw/skylens-ui",
3
3
  "type": "module",
4
- "version": "1.2.18",
4
+ "version": "1.2.20",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",