@triptease/tt-navbar 0.0.45 → 0.0.47

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.
Files changed (41) hide show
  1. package/dist/src/Config.d.ts +6 -0
  2. package/dist/src/Config.js +7 -0
  3. package/dist/src/Config.js.map +1 -0
  4. package/dist/src/TtNavbar.d.ts +3 -3
  5. package/dist/src/TtNavbar.js +26 -18
  6. package/dist/src/TtNavbar.js.map +1 -1
  7. package/dist/src/getInitialNavbarState.d.ts +2 -0
  8. package/dist/src/getInitialNavbarState.js +21 -0
  9. package/dist/src/getInitialNavbarState.js.map +1 -0
  10. package/dist/src/index.d.ts +2 -0
  11. package/dist/src/index.js +2 -0
  12. package/dist/src/index.js.map +1 -1
  13. package/dist/test/tt-navbar.test.js +32 -53
  14. package/dist/test/tt-navbar.test.js.map +1 -1
  15. package/dist/web/Config.js +14 -0
  16. package/dist/web/Config.js.map +7 -0
  17. package/dist/web/Routes.js +1 -1
  18. package/dist/web/TtNavbar.js +35 -66
  19. package/dist/web/TtNavbar.js.map +4 -4
  20. package/dist/web/getInitialNavbarState.js +31 -0
  21. package/dist/web/getInitialNavbarState.js.map +7 -0
  22. package/dist/web/global.d.js +1 -1
  23. package/dist/web/index.js +55 -67
  24. package/dist/web/index.js.map +4 -4
  25. package/dist/web/styles.js +1 -1
  26. package/dist/web/triptease-logo.js +1 -1
  27. package/dist/web/tt-navbar.js +35 -66
  28. package/dist/web/tt-navbar.js.map +4 -4
  29. package/dist/web/urlMappings.js +1 -1
  30. package/package.json +1 -1
  31. package/src/Config.ts +7 -0
  32. package/src/TtNavbar.ts +31 -18
  33. package/src/getInitialNavbarState.ts +30 -0
  34. package/src/index.ts +2 -0
  35. package/test/tt-navbar.test.ts +47 -58
  36. package/dist/src/NavbarController.d.ts +0 -12
  37. package/dist/src/NavbarController.js +0 -49
  38. package/dist/src/NavbarController.js.map +0 -1
  39. package/dist/web/NavbarController.js +0 -57
  40. package/dist/web/NavbarController.js.map +0 -7
  41. package/src/NavbarController.ts +0 -66
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @triptease/tt-navbar v0.0.45
2
+ * @triptease/tt-navbar v0.0.47
3
3
  */
4
4
 
5
5
  // ../../node_modules/@lit/reactive-element/css-tag.js
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @triptease/tt-navbar v0.0.45
2
+ * @triptease/tt-navbar v0.0.47
3
3
  */
4
4
 
5
5
  // src/triptease-logo.ts
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @triptease/tt-navbar v0.0.45
2
+ * @triptease/tt-navbar v0.0.47
3
3
  */
4
4
  var __defProp = Object.defineProperty;
5
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -2027,54 +2027,11 @@ var Routes = {
2027
2027
  CampaignManager: "CampaignManager"
2028
2028
  };
2029
2029
 
2030
- // src/NavbarController.ts
2031
- var NavbarController = class {
2032
- constructor(host) {
2033
- this._isOpen = true;
2034
- this._hasInitialized = false;
2035
- (this.host = host).addController(this);
2036
- }
2037
- get isOpen() {
2038
- return this._isOpen;
2039
- }
2040
- hostUpdate() {
2041
- if (!this._hasInitialized && window.Clerk) {
2042
- this._removeClerkListener = window.Clerk.addListener((resources) => {
2043
- const { user: user2 } = resources;
2044
- if (user2 && !this._hasInitialized) {
2045
- const navigationOpen = user2.unsafeMetadata?.preferences?.ui?.navigationOpen;
2046
- if (navigationOpen !== void 0) {
2047
- this._isOpen = navigationOpen;
2048
- this.host.requestUpdate();
2049
- }
2050
- this._hasInitialized = true;
2051
- }
2052
- });
2053
- }
2054
- }
2055
- hostDisconnected() {
2056
- if (this._removeClerkListener) {
2057
- this._removeClerkListener();
2058
- }
2059
- }
2060
- async toggle() {
2061
- this._isOpen = !this._isOpen;
2062
- if (window.Clerk) {
2063
- window.Clerk.user?.update({
2064
- unsafeMetadata: {
2065
- ...window.Clerk.user?.unsafeMetadata,
2066
- preferences: {
2067
- ...window.Clerk.user?.unsafeMetadata?.preferences,
2068
- ui: {
2069
- ...window.Clerk.user?.unsafeMetadata?.preferences?.ui,
2070
- navigationOpen: this.isOpen
2071
- }
2072
- }
2073
- }
2074
- });
2075
- }
2076
- this.host.requestUpdate();
2077
- }
2030
+ // src/Config.ts
2031
+ var Config = {
2032
+ NavbarStateCookieName: "tt-navbar-state",
2033
+ NavbarStateCookieOpenValue: "open",
2034
+ NavbarStateCookieClosedValue: "closed"
2078
2035
  };
2079
2036
 
2080
2037
  // src/TtNavbar.ts
@@ -2091,8 +2048,8 @@ var TtNavbar = class extends i4 {
2091
2048
  super(...arguments);
2092
2049
  this.campaignManagerUrl = "https://app.campaign-manager.triptease.io";
2093
2050
  this.clients = [];
2094
- this.sidebarOpen = true;
2095
- this.navbarController = new NavbarController(this);
2051
+ this.initialState = void 0;
2052
+ this.isOpen = true;
2096
2053
  /*
2097
2054
  * Set the active state for the current page.
2098
2055
  *
@@ -2167,14 +2124,20 @@ var TtNavbar = class extends i4 {
2167
2124
  };
2168
2125
  this.toggleSidebar = () => {
2169
2126
  this.closeAllDetails();
2170
- this.navbarController.toggle();
2127
+ this.isOpen = !this.isOpen;
2128
+ const {
2129
+ NavbarStateCookieName,
2130
+ NavbarStateCookieOpenValue,
2131
+ NavbarStateCookieClosedValue
2132
+ } = Config;
2133
+ document.cookie = `${NavbarStateCookieName}=${this.isOpen ? NavbarStateCookieOpenValue : NavbarStateCookieClosedValue}; path=/; max-age=31536000`;
2171
2134
  };
2172
- this.handleToggle = (e10) => {
2135
+ this.handleDetailsToggle = (e10) => {
2173
2136
  const { newState } = e10;
2174
2137
  const target = e10.currentTarget;
2175
2138
  if (newState === "open") {
2176
- if (!this.navbarController.isOpen) {
2177
- this.navbarController.toggle();
2139
+ if (!this.isOpen) {
2140
+ this.toggleSidebar();
2178
2141
  }
2179
2142
  this.closeAllDetails(target);
2180
2143
  }
@@ -2206,6 +2169,9 @@ var TtNavbar = class extends i4 {
2206
2169
  window.addEventListener("popstate", this.setActiveState);
2207
2170
  window.addEventListener("tetris:navigate", this.setActiveState);
2208
2171
  super.connectedCallback();
2172
+ if (this.initialState) {
2173
+ this.isOpen = this.initialState === "open";
2174
+ }
2209
2175
  }
2210
2176
  disconnectedCallback() {
2211
2177
  window.removeEventListener("popstate", this.setActiveState);
@@ -2214,8 +2180,8 @@ var TtNavbar = class extends i4 {
2214
2180
  }
2215
2181
  render() {
2216
2182
  return x`
2217
- <nav id=${this.id} class="${this.navbarController.isOpen ? "" : "sidebar-closed"}">
2218
- <div class="sidebar-header ${this.navbarController.isOpen ? "" : "sidebar-closed"}">
2183
+ <nav id=${this.id} class="${this.isOpen ? "" : "sidebar-closed"}">
2184
+ <div class="sidebar-header ${this.isOpen ? "" : "sidebar-closed"}">
2219
2185
  <div class="logo">
2220
2186
  ${o8(tripteaseLogo)}
2221
2187
  </div>
@@ -2228,7 +2194,7 @@ var TtNavbar = class extends i4 {
2228
2194
  </button>
2229
2195
  </div>
2230
2196
 
2231
- <div class="nav-items ${this.navbarController.isOpen ? "" : "sidebar-closed"}">
2197
+ <div class="nav-items ${this.isOpen ? "" : "sidebar-closed"}">
2232
2198
  <a
2233
2199
  class="nav-item"
2234
2200
  href=${this.buildUrl("/")}
@@ -2247,7 +2213,7 @@ var TtNavbar = class extends i4 {
2247
2213
  data-intercom-target="channels"
2248
2214
  >${o8(channels)}<span>Channels</span></a
2249
2215
  >
2250
- <details id="market-insights" @toggle=${this.handleToggle} data-intercom-target="market-insights">
2216
+ <details id="market-insights" @toggle=${this.handleDetailsToggle} data-intercom-target="market-insights">
2251
2217
  <summary>
2252
2218
  ${o8(graph)}
2253
2219
  <span>Market Insights</span>
@@ -2270,7 +2236,7 @@ var TtNavbar = class extends i4 {
2270
2236
  >
2271
2237
  </div>
2272
2238
  </details>
2273
- <details id="settings" @toggle=${this.handleToggle} data-intercom-target="settings">
2239
+ <details id="settings" @toggle=${this.handleDetailsToggle} data-intercom-target="settings">
2274
2240
  <summary>
2275
2241
  ${o8(gear)}
2276
2242
  <span>Settings</span>
@@ -2308,7 +2274,7 @@ var TtNavbar = class extends i4 {
2308
2274
  </div>
2309
2275
  </details>
2310
2276
  <hr />
2311
- <details id="account" @toggle=${this.handleToggle} data-intercom-target="account">
2277
+ <details id="account" @toggle=${this.handleDetailsToggle} data-intercom-target="account">
2312
2278
  <summary>
2313
2279
  ${o8(user)}
2314
2280
  <span>Account</span>
@@ -2331,7 +2297,7 @@ var TtNavbar = class extends i4 {
2331
2297
  >
2332
2298
  </div>
2333
2299
  </details>
2334
- <details id="billing-routes" @toggle=${this.handleToggle} data-intercom-target="billing">
2300
+ <details id="billing-routes" @toggle=${this.handleDetailsToggle} data-intercom-target="billing">
2335
2301
  <summary>
2336
2302
  ${o8(wallet)}
2337
2303
  <span>Billing</span>
@@ -2355,7 +2321,7 @@ var TtNavbar = class extends i4 {
2355
2321
  </div>
2356
2322
  </details>
2357
2323
  </div>
2358
- <div class="tertiary-nav ${this.navbarController.isOpen ? "" : "sidebar-closed"}">
2324
+ <div class="tertiary-nav ${this.isOpen ? "" : "sidebar-closed"}">
2359
2325
  <div id="external-links" class="nav-items">
2360
2326
  <a
2361
2327
  class="nav-item external-link"
@@ -2439,6 +2405,12 @@ __decorateClass([
2439
2405
  __decorateClass([
2440
2406
  n4({ type: Array, converter: jsonArrayConverter })
2441
2407
  ], TtNavbar.prototype, "clients", 2);
2408
+ __decorateClass([
2409
+ n4({ type: String, attribute: "initial-state" })
2410
+ ], TtNavbar.prototype, "initialState", 2);
2411
+ __decorateClass([
2412
+ r5()
2413
+ ], TtNavbar.prototype, "isOpen", 2);
2442
2414
  __decorateClass([
2443
2415
  n4({ type: Object })
2444
2416
  ], TtNavbar.prototype, "onClientChange", 2);
@@ -2448,9 +2420,6 @@ __decorateClass([
2448
2420
  __decorateClass([
2449
2421
  r6("a")
2450
2422
  ], TtNavbar.prototype, "allNavLinks", 2);
2451
- __decorateClass([
2452
- r5()
2453
- ], TtNavbar.prototype, "sidebarOpen", 2);
2454
2423
 
2455
2424
  // src/tt-navbar.ts
2456
2425
  if (typeof window !== "undefined") {