@triptease/tt-navbar 0.0.96 → 0.1.0

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 (77) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/package.json +3 -0
  3. package/dist/cjs/src/Config.js +10 -0
  4. package/dist/cjs/src/Config.js.map +1 -0
  5. package/dist/cjs/src/Routes.js +8 -0
  6. package/dist/cjs/src/Routes.js.map +1 -0
  7. package/dist/cjs/src/TtNavbar.js +426 -0
  8. package/dist/cjs/src/TtNavbar.js.map +1 -0
  9. package/dist/cjs/src/getInitialNavbarState.js +21 -0
  10. package/dist/cjs/src/getInitialNavbarState.js.map +1 -0
  11. package/dist/cjs/src/index.js +12 -0
  12. package/dist/cjs/src/index.js.map +1 -0
  13. package/dist/cjs/src/styles.js +331 -0
  14. package/dist/cjs/src/styles.js.map +1 -0
  15. package/dist/cjs/src/triptease-logo.js +13 -0
  16. package/dist/cjs/src/triptease-logo.js.map +1 -0
  17. package/dist/cjs/src/tt-navbar.js +9 -0
  18. package/dist/cjs/src/tt-navbar.js.map +1 -0
  19. package/dist/cjs/src/urlMappings.js +36 -0
  20. package/dist/cjs/src/urlMappings.js.map +1 -0
  21. package/dist/esm/src/Config.js.map +1 -0
  22. package/dist/esm/src/Routes.js.map +1 -0
  23. package/dist/esm/src/TtNavbar.js.map +1 -0
  24. package/dist/esm/src/getInitialNavbarState.js.map +1 -0
  25. package/dist/esm/src/index.js.map +1 -0
  26. package/dist/esm/src/styles.js.map +1 -0
  27. package/dist/esm/src/triptease-logo.js.map +1 -0
  28. package/dist/esm/src/tt-navbar.js.map +1 -0
  29. package/dist/esm/src/urlMappings.js.map +1 -0
  30. package/dist/esm/test/tt-navbar.test.js.map +1 -0
  31. package/dist/web/Config.js +1 -1
  32. package/dist/web/Routes.js +1 -1
  33. package/dist/web/TtNavbar.js +19 -19
  34. package/dist/web/getInitialNavbarState.js +1 -1
  35. package/dist/web/global.d.js +1 -1
  36. package/dist/web/index.js +19 -19
  37. package/dist/web/styles.js +1 -1
  38. package/dist/web/triptease-logo.js +1 -1
  39. package/dist/web/tt-navbar.js +19 -19
  40. package/dist/web/urlMappings.js +1 -1
  41. package/package.json +18 -8
  42. package/tsconfig.cjs.json +9 -0
  43. package/tsconfig.json +3 -3
  44. package/web-test-runner.config.js +1 -1
  45. package/dist/src/Config.js.map +0 -1
  46. package/dist/src/Routes.js.map +0 -1
  47. package/dist/src/TtNavbar.js.map +0 -1
  48. package/dist/src/getInitialNavbarState.js.map +0 -1
  49. package/dist/src/index.js.map +0 -1
  50. package/dist/src/styles.js.map +0 -1
  51. package/dist/src/triptease-logo.js.map +0 -1
  52. package/dist/src/tt-navbar.js.map +0 -1
  53. package/dist/src/urlMappings.js.map +0 -1
  54. package/dist/stories/tt-navbar.stories.d.ts +0 -39
  55. package/dist/stories/tt-navbar.stories.js +0 -56
  56. package/dist/stories/tt-navbar.stories.js.map +0 -1
  57. package/dist/test/tt-navbar.test.js.map +0 -1
  58. /package/dist/{src → esm/src}/Config.d.ts +0 -0
  59. /package/dist/{src → esm/src}/Config.js +0 -0
  60. /package/dist/{src → esm/src}/Routes.d.ts +0 -0
  61. /package/dist/{src → esm/src}/Routes.js +0 -0
  62. /package/dist/{src → esm/src}/TtNavbar.d.ts +0 -0
  63. /package/dist/{src → esm/src}/TtNavbar.js +0 -0
  64. /package/dist/{src → esm/src}/getInitialNavbarState.d.ts +0 -0
  65. /package/dist/{src → esm/src}/getInitialNavbarState.js +0 -0
  66. /package/dist/{src → esm/src}/index.d.ts +0 -0
  67. /package/dist/{src → esm/src}/index.js +0 -0
  68. /package/dist/{src → esm/src}/styles.d.ts +0 -0
  69. /package/dist/{src → esm/src}/styles.js +0 -0
  70. /package/dist/{src → esm/src}/triptease-logo.d.ts +0 -0
  71. /package/dist/{src → esm/src}/triptease-logo.js +0 -0
  72. /package/dist/{src → esm/src}/tt-navbar.d.ts +0 -0
  73. /package/dist/{src → esm/src}/tt-navbar.js +0 -0
  74. /package/dist/{src → esm/src}/urlMappings.d.ts +0 -0
  75. /package/dist/{src → esm/src}/urlMappings.js +0 -0
  76. /package/dist/{test → esm/test}/tt-navbar.test.d.ts +0 -0
  77. /package/dist/{test → esm/test}/tt-navbar.test.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"triptease-logo.js","sourceRoot":"","sources":["../../src/triptease-logo.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;OAQtB,CAAC","sourcesContent":["export const tripteaseLogo = `<svg width=\"112\" height=\"32\" viewBox=\"0 0 112 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-label=\"Triptease Logo\">\n <rect width=\"112\" height=\"32\" fill=\"url(#pattern0_72_1169)\"/>\n <defs>\n <pattern id=\"pattern0_72_1169\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <use xlink:href=\"#image0_72_1169\" transform=\"matrix(0.000881057 0 0 0.0030837 0 -0.00110132)\"/>\n </pattern>\n <image id=\"image0_72_1169\" width=\"1135\" height=\"325\" preserveAspectRatio=\"none\" xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABG8AAAFFCAIAAADdPldRAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAEb6ADAAQAAAABAAABRQAAAACmZMhMAABAAElEQVR4Ae2dB4AkRdmwb9OFvQMOUAmSDyQoQbiABBVQ9AgKd0eWrCLZj4zir3yCYCCDKIgS5chJFBBE+QThOHJQkuSspMu36X+6a7e3d3Znb3d2dmd65mmavZruik9VV9Vb9VZVTVtb2zAvCUhAAhKQgAQkIAEJSEACEugngdp+2te6BCQgAQlIQAISkIAEJCABCUQElKYsBxKQgAQkIAEJSEACEpCABAohoDRVCDXdSEACEpCABCQgAQlIQAISUJqyDEhAAhKQgAQkIAEJSEACEiiEgNJUIdR0IwEJSEACEpCABCQgAQlIQGnKMiABCUhAAhKQgAQkIAEJSKAQAkpThVDTjQQkIAEJSEACEpCABCQgAaUpy4AEJCABCUhAAhKQgAQkIIFCCChNFUJNNxKQgAQkIAEJSEACEpCABJSmLAMSkIAEJCABCUhAAhKQgAQKIaA0VQg13UhAAhKQgAQkIAEJSEACElCasgxIQAISkIAEJCABCUhAAhIohIDSVCHUdCMBCUhAAhKQgAQkIAEJSEBpyjIgAQlIQAISkIAEJCABCUigEAJKU4VQ040EJCABCUhAAhKQgAQkIAGlKcuABCQgAQlIQAISkIAEJCCBQggoTRVCTTcSkIAEJCABCUhAAhKQgASUpiwDEpCABCQgAQlIQAISkIAECiGgNFUINd1IQAISkIAEJCABCUhAAhJQmrIMSEACEpCABCQgAQlIQAISKISA0lQh1HQjAQlIQAISkIAEJCABCUhAacoyIAEJSEACEpCABCQgAQlIoBACSlOFUNONBCQgAQlIQAISkIAEJCABpSnLgAQkIAEJSEACEpCABCQggUIIKE0VQk03EpCABCQgAQlIQAISkIAElKYsAxKQgAQkIAEJSEACEpCABAohoDRVCDXdSEACEpCABCQgAQlIQAISUJqyDEhAAhKQgAQkIAEJSEACEiiEgNJUIdR0IwEJSEACEpCABCQgAQlIQGnKMiABCUhAAhKQgAQkIAEJSKAQAkpThVDTjQQkIAEJSEACEpCABCQgAaUpy4AEJCABCUhAAhKQgAQkIIFCCChNFUJNNxKQgAQkIAEJSEACEpCABJSmLAMSkIAEJCABCUhAAhKQgAQKIaA0VQg13UhAAhKQgAQkIAEJSEACElCasgxIQAISkIAEJCABCUhAAhIohIDSVCHUdCMBCUhAAhKQgAQkIAEJSEBpyjIgAQlIQAISkIAEJCABCUigEAJKU4VQ040EJCABCUhAAhKQgAQkIAGlKcuABCQgAQlIQAISkIAEJCCBQggoTRVCTTcSkIAEJCABCUhAAhKQgASUpiwDEpCABCQgAQlIQAISkIAECiGgNFUINd1IQAISkIAEJCABCUhAAhJQmrIMSEACEpCABCQgAQlIQAISKISA0lQh1HQjAQlIQAISkIAEJCABCUhAacoyIAEJSEACEpCABCQgAQlIoBACSlOFUNONBCQgAQlIQAISkIAEJCABpSnLgAQkIAEJSEACEpCABCQggUIIKE0VQk03EpCABCQgAQlIQAISkIAElKYsAxKQgAQkIAEJSEACEpCABAohoDRVCDXdSEACEpCABCQgAQlIQAISUJqyDEhAAhKQgAQkIAEJSEACEiiEgNJUIdR0IwEJSEACEpCABCQgAQlIQGnKMiABCUhAAhKQgAQkIAEJSKAQAkpThVDTjQQkIAEJSEACEpCABCQgAaUpy4AEJCABCUhAAhKQgAQkIIFCCChNFUJNNxKQgAQkIAEJSEACEpCABJSmLAMSkIAEJCABCUhAAhKQgAQKIaA0VQg13UhAAhKQgAQkIAEJSEACElCasgxIQAISkIAEJCABCUhAAhIohIDSVCHUdCMBCUhAAhKQgAQkIAEJSEBpyjIgAQlIQAISkIAEJCABCUigEAJKU4VQ040EJCABCUhAAhKQgAQkIAGlKcuABCQgAQlIQAISkIAEJCCBQggoTRVCTTcSkIAEJCABCUhAAhKQgASUpiwDEpCABCQgAQlIQAISkIAECiGgNFUINd1IQAISkIAEJCABCUhAAhJQmrIMSEACEpCABCQgAQlIQAISKISA0lQh1HQjAQlIQAISkIAEJCABCUhAacoyIAEJSEACEpCABCQgAQlIoBACSlOFUNONBCQgAQlIQAISkIAEJCABpSnLgAQkIAEJSEACEpCABCQggUIIKE0VQk03EpCABCQgAQlIQAISkIAE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21ZeaaVe0sde2Gj6xcuo/L564VQtr9g8nRV3pJbzKPOlmTHysCtxTg8mn32fS0ACfSfAxBRiwK233hqOggxiUlgHxRohPr011lijR9+wed999z388EORXlZ1XPmqIEZ8XnjhBY61RKe9OkiYSgn0g4C9vX7AKjeriVpzuUWswuJD65JcyEjMM3zyk5/srumXpBotCcw4cT+ihElVG2qGseEvAlW83q/noZF4TXy0J2To51U1rkpPPCswk7vS01pG6bv55pvZ6yXaXAE17I5FQUgIHB279FJL33DDDUsvtRRT1tTb3XVATvvFadFS2CoQqCZNmhRm6qiI2DUnXR1xIvkdt9/+5muv929lchkVgdJEJayPTVbJ9hIJuuM5dy+WfVVuBJSmyi1HjE9ZE6hviA6emjtvXvc9/brEm9baw867EKnqH5QZjixjo7DeKSBO9W7BtxKQQAEEUPO76KKLRo8eHeajEh8494Jp4d123x2Vv7332Sc625clUpzinbqo8x+cOfONV19rKd3J2qnoDLpxxRVXamioh0y8eKpz9IcRH8jsvscec2fPJhIL5rWf9jvoETIACWSBgNJUFnIpTxwd4MwDZjAfs165ufmtN9/sPn45mKHqd7YJREO8NcPefvutbCfD2EsgmwTuv//+p556CjW/nOgjISz/yU9+4xvfQJdg3333GbPYYpEU0XWHoTA/89Of/jQ6Urair5Dw7bffjklyEso+8unkNjc3A5DTqI74nyPmzZmLyh+CaJA/09Y05xBgo8jkznnlz0oioDRVSblpWgadABtLcNrgG2++ydrlQQ/MACqCQLSEPT5y6rlnn6uIBJkICWSMwKWXXhqprrW0jBkzJh115IdtJk9uHDWKwQ627MPMBHLOqb7z589jBO2mm2569eVX0m4r1bz9dttzzjjnK+bMpbNpB4eAkOq777579912e/7Z55BF2SyxUjmYLgn0i4DSVL9wldJyUD5IBjkweA09gTB69+QTT9A2py8aYK6gaN65EXbXMc6hj60hlgOBaNF2tOlwzaOPPZovPoyIr7HGp+jtpQsV5nz2fS4BCSySQNBGe/vNt27/020o2rJciifDh0dTLigX8NGxbupb3/42kgNDHky2HHPssWH+KtTzwX+maPgSG0ePPu20X/AkR1dwkXHInIU1116b/XLYS4mpp5zlwYwhQgYt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BCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgygf8P8E5YI8a8mpEAAAAASUVORK5CYII=\"/>\n </defs>\n</svg>`;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tt-navbar.js","sourceRoot":"","sources":["../../src/tt-navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;AACH,CAAC","sourcesContent":["import { TtNavbar } from './TtNavbar.js';\n\nif (typeof window !== 'undefined') {\n if (!window.customElements.get('tt-navbar')) {\n window.customElements.define('tt-navbar', TtNavbar);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"urlMappings.js","sourceRoot":"","sources":["../../src/urlMappings.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAe;IAC9B,0BAA0B,EAAE,WAAW;IACvC,oBAAoB,EAAE,WAAW;IACjC,2BAA2B,EAAE,WAAW;IACxC,wBAAwB,EAAE,WAAW;IACrC,mBAAmB,EAAE,WAAW;IAChC,0BAA0B,EAAE,WAAW;IACvC,2BAA2B,EAAE,WAAW;IACxC,oBAAoB,EAAE,WAAW;IACjC,0BAA0B,EAAE,WAAW;IACvC,2BAA2B,EAAE,WAAW;IACxC,wBAAwB,EAAE,WAAW;IACrC,0BAA0B,EAAE,WAAW;IACvC,2BAA2B,EAAE,WAAW;IACxC,oBAAoB,EAAE,qBAAqB;IAC3C,sBAAsB,EAAE,qBAAqB;IAC7C,wDAAwD;IACxD,wBAAwB,EAAE,8BAA8B;IACxD,0FAA0F;IAC1F,+BAA+B,EAAE,8BAA8B;IAC/D,kCAAkC,EAAE,8BAA8B;IAClE,mCAAmC,EAAE,8BAA8B;IACnE,2CAA2C,EAAE,8BAA8B;IAC3E,0CAA0C,EAAE,8BAA8B;IAC1E,0BAA0B,EAAE,2BAA2B;IACvD,4BAA4B,EAAE,2BAA2B;IACzD,wCAAwC,EAAE,yCAAyC;IACnF,0CAA0C,EAAE,yCAAyC;IACrF,2BAA2B,EAAE,4BAA4B;IACzD,6BAA6B,EAAE,4BAA4B;CAC5D,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC","sourcesContent":["type UrlMapping = Record<string, string>;\n\nconst urlMappings: UrlMapping = {\n '/paidsearch/:clientKey/*': '/channels',\n '/meta/:clientKey/*': '/channels',\n '/retargeting/:clientKey/*': '/channels',\n '/messages/:clientKey/*': '/channels',\n '/:clientKey/email': '/channels',\n '/pricematch/:clientKey/*': '/channels',\n '/chat/insights/:clientKey': '/channels',\n '/:clientKey/meta/*': '/channels',\n '/:clientKey/paidsearch/*': '/channels',\n '/:clientKey/retargeting/*': '/channels',\n '/:clientKey/messages/*': '/channels',\n '/:clientKey/pricematch/*': '/channels',\n '/:clientKey/chat/insights': '/channels',\n '/:clientKey/parity': '/parity/$CLIENT_KEY',\n '/:clientKey/parity/*': '/parity/$CLIENT_KEY',\n // Settings routes - legacy paths map to new navbar link\n '/settings/:clientKey/*': '/$CLIENT_KEY/settings/guides',\n // Settings routes with :clientKey first (excluding guides/hotels which have direct links)\n '/:clientKey/settings/branding': '/$CLIENT_KEY/settings/guides',\n '/:clientKey/settings/price-check': '/$CLIENT_KEY/settings/guides',\n '/:clientKey/settings/price-config': '/$CLIENT_KEY/settings/guides',\n '/:clientKey/settings/hotel-details-finder': '/$CLIENT_KEY/settings/guides',\n '/:clientKey/settings/deactivation-center': '/$CLIENT_KEY/settings/guides',\n '/:clientKey/account/team': '/account/team/$CLIENT_KEY',\n '/:clientKey/account/team/*': '/account/team/$CLIENT_KEY',\n '/:clientKey/account/billing-management': '/account/billing-management/$CLIENT_KEY',\n '/:clientKey/account/billing-management/*': '/account/billing-management/$CLIENT_KEY',\n '/:clientKey/subscriptions': '/subscriptions/$CLIENT_KEY',\n '/:clientKey/subscriptions/*': '/subscriptions/$CLIENT_KEY',\n};\n\nexport { urlMappings };\n"]}
@@ -1,39 +0,0 @@
1
- import { TemplateResult } from 'lit';
2
- import '../src/tt-navbar.js';
3
- declare const meta: {
4
- title: string;
5
- component: string;
6
- argTypes: {
7
- clientKey: {
8
- control: string;
9
- };
10
- clients: {
11
- control: string;
12
- };
13
- campaignManagerUrl: {
14
- control: string;
15
- };
16
- onClientChange: {
17
- action: string;
18
- };
19
- };
20
- };
21
- export default meta;
22
- interface Story<T> {
23
- (args: T): TemplateResult;
24
- args?: Partial<T>;
25
- argTypes?: Record<string, unknown>;
26
- }
27
- interface Client {
28
- clientKey: string;
29
- displayName: string;
30
- }
31
- interface ArgTypes {
32
- clientKey?: string;
33
- clients?: Client[];
34
- campaignManagerUrl?: string;
35
- onClientChange: (clientKey: string) => void;
36
- }
37
- export declare const MultipleClients: Story<ArgTypes>;
38
- export declare const SingleClient: Story<ArgTypes>;
39
- export declare const SingleClientLongName: Story<ArgTypes>;
@@ -1,56 +0,0 @@
1
- import { html } from 'lit';
2
- import '../src/tt-navbar.js';
3
- const meta = {
4
- title: 'TtNavbar',
5
- component: 'tt-navbar',
6
- argTypes: {
7
- clientKey: { control: 'text' },
8
- clients: { control: 'object' },
9
- campaignManagerUrl: { control: 'text' },
10
- onClientChange: { action: 'clientChanged' },
11
- },
12
- };
13
- export default meta;
14
- const Template = ({ clientKey = 'zxd47KQGAP', clients = [], campaignManagerUrl = 'https://app.campaign-manager.triptease.io', onClientChange, }) => html `
15
- <div>
16
- <tt-navbar
17
- client-key=${clientKey}
18
- campaign-manager-url=${campaignManagerUrl}
19
- clients=${JSON.stringify(clients)}
20
- .onClientChange=${onClientChange}
21
- >
22
- </tt-navbar>
23
- </div>
24
- `;
25
- const clientChangeHandler = (clientKey) => {
26
- console.log('Client changed to:', clientKey);
27
- };
28
- export const MultipleClients = Template.bind({});
29
- MultipleClients.args = {
30
- clientKey: 'zxd47KQGAP',
31
- clients: [
32
- { clientKey: 'zxd47KQGAP', displayName: 'Demo Client' },
33
- { clientKey: 'a1b2c3d4e5', displayName: 'Another Client' },
34
- {
35
- clientKey: 'f6g7h8i9j0',
36
- displayName: 'Demo Client with an Exceptionally Long Name for Testing',
37
- },
38
- ],
39
- onClientChange: clientChangeHandler,
40
- };
41
- export const SingleClient = Template.bind({});
42
- SingleClient.args = {
43
- clientKey: 'zxd47KQGAP',
44
- clients: [{ clientKey: 'zxd47KQGAP', displayName: 'Demo Client' }],
45
- };
46
- export const SingleClientLongName = Template.bind({});
47
- SingleClientLongName.args = {
48
- clientKey: 'zxd47KQGAP',
49
- clients: [
50
- {
51
- clientKey: 'zxd47KQGAP',
52
- displayName: 'Demo Client with an Exceptionally Long Name for Testing',
53
- },
54
- ],
55
- };
56
- //# sourceMappingURL=tt-navbar.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tt-navbar.stories.js","sourceRoot":"","sources":["../../stories/tt-navbar.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAC3C,OAAO,qBAAqB,CAAC;AAE7B,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE;QACR,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC9B,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC9B,kBAAkB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QACvC,cAAc,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;KAC5C;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAqBpB,MAAM,QAAQ,GAAoB,CAAC,EACjC,SAAS,GAAG,YAAY,EACxB,OAAO,GAAG,EAAE,EACZ,kBAAkB,GAAG,2CAA2C,EAChE,cAAc,GACL,EAAE,EAAE,CAAC,IAAI,CAAA;;;mBAGD,SAAS;6BACC,kBAAkB;gBAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;wBACf,cAAc;;;;CAIrC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAChD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,eAAe,CAAC,IAAI,GAAG;IACrB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE;QACP,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE;QACvD,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAC1D;YACE,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,yDAAyD;SACvE;KACF;IACD,cAAc,EAAE,mBAAmB;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9C,YAAY,CAAC,IAAI,GAAG;IAClB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;CACnE,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtD,oBAAoB,CAAC,IAAI,GAAG;IAC1B,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE;QACP;YACE,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,yDAAyD;SACvE;KACF;CACF,CAAC","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport '../src/tt-navbar.js';\n\nconst meta = {\n title: 'TtNavbar',\n component: 'tt-navbar',\n argTypes: {\n clientKey: { control: 'text' },\n clients: { control: 'object' },\n campaignManagerUrl: { control: 'text' },\n onClientChange: { action: 'clientChanged' },\n },\n};\n\nexport default meta;\n\ninterface Story<T> {\n (args: T): TemplateResult;\n\n args?: Partial<T>;\n argTypes?: Record<string, unknown>;\n}\n\ninterface Client {\n clientKey: string;\n displayName: string;\n}\n\ninterface ArgTypes {\n clientKey?: string;\n clients?: Client[];\n campaignManagerUrl?: string;\n onClientChange: (clientKey: string) => void;\n}\n\nconst Template: Story<ArgTypes> = ({\n clientKey = 'zxd47KQGAP',\n clients = [],\n campaignManagerUrl = 'https://app.campaign-manager.triptease.io',\n onClientChange,\n}: ArgTypes) => html`\n <div>\n <tt-navbar\n client-key=${clientKey}\n campaign-manager-url=${campaignManagerUrl}\n clients=${JSON.stringify(clients)}\n .onClientChange=${onClientChange}\n >\n </tt-navbar>\n </div>\n`;\n\nconst clientChangeHandler = (clientKey: string) => {\n console.log('Client changed to:', clientKey);\n};\n\nexport const MultipleClients = Template.bind({});\nMultipleClients.args = {\n clientKey: 'zxd47KQGAP',\n clients: [\n { clientKey: 'zxd47KQGAP', displayName: 'Demo Client' },\n { clientKey: 'a1b2c3d4e5', displayName: 'Another Client' },\n {\n clientKey: 'f6g7h8i9j0',\n displayName: 'Demo Client with an Exceptionally Long Name for Testing',\n },\n ],\n onClientChange: clientChangeHandler,\n};\n\nexport const SingleClient = Template.bind({});\nSingleClient.args = {\n clientKey: 'zxd47KQGAP',\n clients: [{ clientKey: 'zxd47KQGAP', displayName: 'Demo Client' }],\n};\n\nexport const SingleClientLongName = Template.bind({});\nSingleClientLongName.args = {\n clientKey: 'zxd47KQGAP',\n clients: [\n {\n clientKey: 'zxd47KQGAP',\n displayName: 'Demo Client with an Exceptionally Long Name for Testing',\n },\n ],\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tt-navbar.test.js","sourceRoot":"","sources":["../../test/tt-navbar.test.ts"],"names":[],"mappings":"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","sourcesContent":["import '../src/tt-navbar.js';\nimport { elementUpdated, expect, fixture, nextFrame, waitUntil } from '@open-wc/testing';\nimport { TtOption } from '@triptease/tt-combobox/tt-option.js';\nimport { Config, getInitialNavbarState, TtNavbar } from '../src/index.js';\nimport { Routes } from '../src/Routes.js';\n\nconst getLinkByHref = (links: NodeListOf<HTMLAnchorElement>, href: string) => {\n for (const link of links) {\n if (link.getAttribute('href') === href) {\n return link;\n }\n }\n\n return undefined;\n};\n\nconst selectComboboxOption = async (combobox: Element, value: string) => {\n const input = combobox.shadowRoot!.querySelector('[role=\"combobox\"]') as HTMLInputElement;\n input.click();\n\n await elementUpdated(combobox);\n\n const option = combobox.shadowRoot!.querySelector(`tt-option[value=\"${value}\"]`) as TtOption;\n option.click();\n};\n\nconst isVisuallyHidden = (element: Element) => {\n const style = getComputedStyle(element);\n\n return Boolean(\n style.position === 'absolute' &&\n style.width === '1px' &&\n style.height === '1px' &&\n style.margin === '-1px' &&\n style.padding === '0px' &&\n style.borderWidth === '0px' &&\n style.overflow === 'hidden' &&\n style.clip === 'rect(0px, 0px, 0px, 0px)' &&\n style.clipPath === 'inset(50%)' &&\n style.whiteSpace === 'nowrap'\n );\n};\n\nconst CLIENT_KEY = 'zxd47KQGAP';\n\ndescribe('TtNavbar', () => {\n it('should throw an error if the clientKey is not provided', async () => {\n try {\n await fixture<TtNavbar>(`<tt-navbar></tt-navbar>`);\n } catch (e) {\n expect(e).to.match(/clientKey is required/);\n }\n });\n it('should render with the default links', async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n const links = navbar.shadowRoot?.querySelectorAll('a');\n\n if (links) {\n expect(getLinkByHref(links, '/')).to.exist;\n expect(getLinkByHref(links, 'https://app.campaign-manager.triptease.io')).to.exist;\n expect(getLinkByHref(links, `/${CLIENT_KEY}/channels`)).to.exist;\n expect(getLinkByHref(links, `/parity/${CLIENT_KEY}`)).to.exist;\n expect(getLinkByHref(links, `/${CLIENT_KEY}/guest-insights`)).to.exist;\n expect(getLinkByHref(links, `/${CLIENT_KEY}/guest-behavioural-data`)).to.exist;\n expect(getLinkByHref(links, `/${CLIENT_KEY}/crm-config`)).to.exist;\n expect(getLinkByHref(links, `/${CLIENT_KEY}/settings/guides`)).to.exist;\n expect(getLinkByHref(links, `/${CLIENT_KEY}/settings/hotels`)).to.exist;\n expect(getLinkByHref(links, `/account`)).to.exist;\n expect(getLinkByHref(links, `/account/team/${CLIENT_KEY}`)).to.exist;\n expect(getLinkByHref(links, `/account/billing-management/${CLIENT_KEY}`)).to.exist;\n expect(getLinkByHref(links, `/subscriptions/${CLIENT_KEY}`)).to.exist;\n }\n });\n\n it('should render platform URLs against the base URL when it is defined', async () => {\n const platformUrl = 'https://app.triptease.io';\n const navbar = await fixture<TtNavbar>(\n `<tt-navbar client-key=${CLIENT_KEY} platform-url=\"${platformUrl}\"></tt-navbar>`\n );\n const links = navbar.shadowRoot?.querySelectorAll('a');\n\n if (links) {\n expect(getLinkByHref(links, `${platformUrl}/`)).to.exist;\n expect(getLinkByHref(links, 'https://app.campaign-manager.triptease.io')).to.exist; // This shouldn't change\n expect(getLinkByHref(links, `${platformUrl}/${CLIENT_KEY}/channels`)).to.exist;\n }\n });\n\n it.skip('should allow navigation events to be handled externally', async () => {\n let navigateEventCount = 0;\n\n const onNavigate = (e: MouseEvent) => {\n e.preventDefault();\n navigateEventCount += 1;\n };\n\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n navbar.navigate = onNavigate;\n await navbar.updateComplete;\n\n const links = navbar.shadowRoot?.querySelectorAll('a');\n links?.forEach((l) => l.click());\n\n await waitUntil(() => expect(navigateEventCount).to.equal(13), 'navigate event did not fire');\n });\n\n it('should render a combobox when multiple clients are provided', async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n navbar.clients = [\n { clientKey: CLIENT_KEY, displayName: 'Client One' },\n { clientKey: 'abc123', displayName: 'Client Two' },\n ];\n await navbar.updateComplete;\n\n const combobox = navbar.shadowRoot?.querySelector('tt-combobox');\n const singleClientName = navbar.shadowRoot?.querySelector('.single-client-name');\n\n expect(combobox).to.exist;\n expect(singleClientName).to.not.exist;\n expect(combobox?.value).to.deep.equal([CLIENT_KEY]);\n });\n\n it('should render the client name when only one client is provided', async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n navbar.clients = [{ clientKey: CLIENT_KEY, displayName: 'Single Client' }];\n await navbar.updateComplete;\n\n const singleClientName = navbar.shadowRoot?.querySelector('.single-client-name');\n const combobox = navbar.shadowRoot?.querySelector('tt-combobox');\n\n expect(singleClientName).to.exist;\n expect(singleClientName?.textContent?.trim()).to.equal('Single Client');\n expect(combobox).to.not.exist;\n });\n\n it('should render the logout link', async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n const links = navbar.shadowRoot?.querySelectorAll('a');\n const logoutLink = getLinkByHref(links!, '/logout');\n\n expect(logoutLink).to.exist;\n });\n\n it('should close other details when one is being opened', async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n const allDetails = navbar.shadowRoot!.querySelectorAll('summary');\n const [marketInsights, settings] = allDetails;\n\n marketInsights.click();\n /*\n * Wait for the DOM to update before continuing. This is necessary because helpers like elementUpdated don't wait for\n * the browser to fire the $toggle handler as well as adding the open attribute.\n */\n await nextFrame();\n await nextFrame();\n\n expect(marketInsights.closest('details')?.open).to.be.true;\n\n settings.click();\n await nextFrame();\n await nextFrame();\n\n expect(settings.closest('details')?.open).to.be.true;\n expect(marketInsights.closest('details')?.open).to.be.false;\n });\n\n it('should collapse the navbar when toggle clicked', async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n const navbarToggleBtn = navbar.shadowRoot!.querySelector('#navbar-toggle-btn') as HTMLButtonElement;\n\n navbarToggleBtn.click();\n await elementUpdated(navbar);\n\n const logo = navbar.shadowRoot!.querySelector('.logo');\n const rootLinksHiddenElements = navbar.shadowRoot!.querySelectorAll('nav a span');\n const summaryHiddenElements = navbar.shadowRoot!.querySelectorAll('nav summary span');\n const externalLinks = navbar.shadowRoot!.querySelectorAll('#external-links a');\n const logoutLink = navbar.shadowRoot!.querySelector('#logout-link span');\n const clientSelector = navbar.shadowRoot!.querySelector('#client-selector');\n\n // Visually and accessibly hidden\n expect(logo?.checkVisibility()).to.be.false;\n expect(clientSelector?.checkVisibility()).to.be.false;\n for (const link of externalLinks) {\n expect(link.checkVisibility()).to.be.false;\n }\n\n // Visually hidden only\n expect(logoutLink).to.exist;\n expect(rootLinksHiddenElements.length).to.be.greaterThan(1);\n expect(summaryHiddenElements.length).to.be.greaterThan(1);\n for (const element of [...rootLinksHiddenElements, ...summaryHiddenElements, logoutLink!]) {\n expect(isVisuallyHidden(element)).to.be.true;\n }\n });\n\n const collapsibleIds: string[] = ['market-insights', 'settings', 'account', 'billing-routes'];\n collapsibleIds.forEach((id) => {\n it(`should open the nav bar when the ${id} collapsible is clicked`, async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n const navbarToggleBtn = navbar.shadowRoot!.querySelector('#navbar-toggle-btn') as HTMLButtonElement;\n\n navbarToggleBtn.click();\n await elementUpdated(navbar);\n\n const logo = navbar.shadowRoot!.querySelector('.logo');\n expect(logo?.checkVisibility()).to.be.false;\n\n const element: HTMLDetailsElement | null = navbar.shadowRoot!.querySelector(`#${id} summary`);\n\n expect(element).to.exist;\n\n element!.click();\n\n await waitUntil(() => logo?.checkVisibility(), 'navbar should be open', {\n timeout: 500,\n });\n });\n });\n\n const URLs = [\n ['/', 'Dashboard'],\n [`/${CLIENT_KEY}/channels`, 'Channels'],\n [`/parity/${CLIENT_KEY}`, 'Parity'],\n [`/parity/${CLIENT_KEY}/foo`, 'Parity'],\n\n [`/paidsearch/${CLIENT_KEY}/performance`, 'Channels'],\n [`/meta/${CLIENT_KEY}/performance`, 'Channels'],\n [`/retargeting/${CLIENT_KEY}/performance`, 'Channels'],\n [`/retargeting/${CLIENT_KEY}/ad-config`, 'Channels'],\n [`/messages/${CLIENT_KEY}/messages`, 'Channels'],\n [`/messages/${CLIENT_KEY}/messages/wizard`, 'Channels'],\n [`/messages/${CLIENT_KEY}/messages/type`, 'Channels'],\n [`/messages/${CLIENT_KEY}/messages/notifications`, 'Channels'],\n [`/messages/${CLIENT_KEY}/messages/templates/nudge`, 'Channels'],\n [`/${CLIENT_KEY}/email`, 'Channels'],\n [`/pricematch/${CLIENT_KEY}/performance`, 'Channels'],\n [`/chat/insights/${CLIENT_KEY}`, 'Channels'],\n [`/messages/${CLIENT_KEY}/messages/new/save-the-search`, 'Channels'],\n\n [`/${CLIENT_KEY}/meta/performance`, 'Channels'],\n [`/${CLIENT_KEY}/paidsearch/performance`, 'Channels'],\n [`/${CLIENT_KEY}/retargeting/performance`, 'Channels'],\n [`/${CLIENT_KEY}/messages/messages`, 'Channels'],\n [`/${CLIENT_KEY}/pricematch/performance`, 'Channels'],\n\n [`/${CLIENT_KEY}/guest-insights`, 'Guest insights'],\n [`/${CLIENT_KEY}/parity`, 'Parity'],\n\n [`/settings/${CLIENT_KEY}/guides`, 'Group settings'],\n [`/settings/${CLIENT_KEY}/branding`, 'Group settings'],\n [`/settings/${CLIENT_KEY}/price-check`, 'Group settings'],\n [`/settings/${CLIENT_KEY}/price-config`, 'Group settings'],\n [`/settings/${CLIENT_KEY}/hotel-details-finder`, 'Group settings'],\n [`/settings/${CLIENT_KEY}/deactivation-center`, 'Group settings'],\n [`/${CLIENT_KEY}/settings/guides`, 'Group settings'],\n [`/${CLIENT_KEY}/settings/branding`, 'Group settings'],\n [`/${CLIENT_KEY}/settings/price-check`, 'Group settings'],\n [`/${CLIENT_KEY}/settings/price-config`, 'Group settings'],\n [`/${CLIENT_KEY}/settings/hotel-details-finder`, 'Group settings'],\n [`/${CLIENT_KEY}/settings/deactivation-center`, 'Group settings'],\n\n [`/${CLIENT_KEY}/settings/hotels`, 'Property settings'],\n\n [`/account/team/${CLIENT_KEY}`, 'Team and permissions'],\n [`/account/billing-management/${CLIENT_KEY}`, 'Booking reconciliation'],\n [`/subscriptions/${CLIENT_KEY}`, 'Subscriptions'],\n\n [`/${CLIENT_KEY}/account/team`, 'Team and permissions'],\n [`/${CLIENT_KEY}/account/billing-management`, 'Booking reconciliation'],\n [`/${CLIENT_KEY}/subscriptions`, 'Subscriptions'],\n ];\n\n URLs.forEach(([route, text]) => {\n it(`should show the current page as active when link is ${route}`, async () => {\n history.pushState({}, '', route); // 👈 mock URL\n\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n const anchor = navbar.shadowRoot!.querySelector('a[aria-current=\"page\"]');\n\n expect(anchor).to.exist;\n expect(anchor!.textContent).to.include(text);\n });\n });\n\n it('should show the current page as campaign manager when on the given campaign manager url', async () => {\n const platformUrl = 'https://app.triptease.io';\n const campaignManagerUrl = 'http://localhost:8000';\n\n const navbar = await fixture<TtNavbar>(\n `<tt-navbar client-key=${CLIENT_KEY} platform-url=${platformUrl} campaign-manager-url=${campaignManagerUrl} active-route=\"${Routes.CampaignManager}\"></tt-navbar>`\n );\n const anchor = navbar.shadowRoot!.querySelector('a[aria-current=\"page\"]');\n expect(anchor).to.exist;\n expect(anchor!.textContent).to.include('Campaigns');\n });\n\n it('should fire an event when the client is changed', async () => {\n let selectedClientKey: string | undefined;\n const onClientChange = (clientKey: string) => {\n selectedClientKey = clientKey;\n };\n\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n navbar.clients = [\n { clientKey: CLIENT_KEY, displayName: 'Client One' },\n { clientKey: 'abc123', displayName: 'Client Two' },\n ];\n navbar.onClientChange = onClientChange;\n\n await navbar.updateComplete;\n\n const combobox = navbar.shadowRoot?.querySelector('tt-combobox');\n expect(combobox).to.exist;\n\n await selectComboboxOption(combobox!, 'abc123');\n\n expect(selectedClientKey).to.equal('abc123');\n });\n\n it('should set the --nav-bar-width css variable when collapsed', async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n await expect(getComputedStyle(navbar).getPropertyValue('--nav-bar-width').trim()).to.equal('260px');\n\n const navbarToggleBtn = navbar.shadowRoot!.querySelector('#navbar-toggle-btn') as HTMLButtonElement;\n\n navbarToggleBtn.click();\n await elementUpdated(navbar);\n\n await expect(getComputedStyle(navbar).getPropertyValue('--nav-bar-width').trim()).to.equal('fit-content');\n });\n\n it('should expand the details when the current page is within that section', async () => {\n history.pushState({}, '', `/parity/${CLIENT_KEY}`);\n\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n const marketInsightsDetails = navbar.shadowRoot!.querySelector('#market-insights') as HTMLDetailsElement;\n\n expect(marketInsightsDetails).to.exist;\n expect(marketInsightsDetails.open).to.be.true;\n });\n\n it('should set the active route when receives `tetris:navigate` event', async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n history.pushState({}, '', `/account/billing-management/${CLIENT_KEY}`);\n\n // Dispatch the event to change to Channels route\n const navigateEvent = new CustomEvent('tetris:navigate', {});\n window.dispatchEvent(navigateEvent);\n\n await elementUpdated(navbar);\n const anchor = navbar.shadowRoot!.querySelector('a[aria-current=\"page\"]');\n\n expect(anchor).to.exist;\n expect(anchor!.textContent).to.include('Booking reconciliation');\n });\n\n it(\"should default to 'open' when the 'initial-state' attribute is not provided\", async () => {\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n\n const logo = navbar.shadowRoot!.querySelector('.logo');\n\n expect(logo).to.exist;\n expect(logo!.checkVisibility()).to.be.true;\n });\n\n it(\"should default to 'open' when the 'initial-state' attribute is 'open\", async () => {\n const navbar = await fixture<TtNavbar>(\n `<tt-navbar client-key=${CLIENT_KEY} initial-state=${Config.NavbarStateCookieOpenValue}></tt-navbar>`\n );\n\n const logo = navbar.shadowRoot!.querySelector('.logo');\n\n expect(logo).to.exist;\n expect(logo!.checkVisibility()).to.be.true;\n });\n\n it(\"should default to 'closed' when the 'initial-state' attribute is 'closed\", async () => {\n const navbar = await fixture<TtNavbar>(\n `<tt-navbar client-key=${CLIENT_KEY} initial-state=${Config.NavbarStateCookieClosedValue}></tt-navbar>`\n );\n\n const logo = navbar.shadowRoot!.querySelector('.logo');\n\n expect(logo).to.exist;\n expect(logo!.checkVisibility()).to.be.false;\n });\n\n it('should create cookie containing navbar state onToggle if it is missing', async () => {\n document.cookie = `${Config.NavbarStateCookieName}=; max-age=0; path=/;`;\n const startingCookieValue = getInitialNavbarState();\n\n expect(startingCookieValue).to.be.undefined;\n\n const navbar = await fixture<TtNavbar>(`<tt-navbar client-key=${CLIENT_KEY}></tt-navbar>`);\n const navbarToggleBtn = navbar.shadowRoot!.querySelector('#navbar-toggle-btn') as HTMLButtonElement;\n\n navbarToggleBtn.click();\n await elementUpdated(navbar);\n\n const newState = getInitialNavbarState();\n\n await expect(newState).to.equal(Config.NavbarStateCookieClosedValue);\n });\n\n it('should update the cookie value when navbar is expanded', async () => {\n const navbar = await fixture<TtNavbar>(\n `<tt-navbar client-key=${CLIENT_KEY} initial-state=${Config.NavbarStateCookieClosedValue}></tt-navbar>`\n );\n const navbarToggleBtn = navbar.shadowRoot!.querySelector('#navbar-toggle-btn') as HTMLButtonElement;\n\n navbarToggleBtn.click();\n await elementUpdated(navbar);\n\n const newState = getInitialNavbarState();\n\n await expect(newState).to.equal(Config.NavbarStateCookieOpenValue);\n });\n\n it('should update the cookie value when navbar is collapsed', async () => {\n const navbar = await fixture<TtNavbar>(\n `<tt-navbar client-key=${CLIENT_KEY} initial-state=${Config.NavbarStateCookieOpenValue}></tt-navbar>`\n );\n const navbarToggleBtn = navbar.shadowRoot!.querySelector('#navbar-toggle-btn') as HTMLButtonElement;\n\n navbarToggleBtn.click();\n await elementUpdated(navbar);\n\n const newState = getInitialNavbarState();\n\n await expect(newState).to.equal(Config.NavbarStateCookieClosedValue);\n });\n});\n"]}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes