m2m-components 2.0.10-alpha-b3108a7.0 → 2.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.
@@ -0,0 +1,20 @@
1
+ import { LitElement } from "lit";
2
+ export declare type MenuAdditionalItem = {
3
+ label: string;
4
+ href: string;
5
+ };
6
+ export interface MenuBaseElementProps {
7
+ expanded: boolean;
8
+ additinalItems: MenuAdditionalItem[];
9
+ }
10
+ export declare class MenuBaseElement extends LitElement {
11
+ static styles: import("lit").CSSResult;
12
+ handleClickOutside: (event: MouseEvent | TouchEvent) => void;
13
+ additinalItems: MenuBaseElementProps["additinalItems"];
14
+ expanded?: boolean;
15
+ handleToggleDrawer: (event: Event) => void;
16
+ protected updated(): void;
17
+ disconnectedCallback(): void;
18
+ listRef: import("lit-html/directives/ref").Ref<Element>;
19
+ }
20
+ //# sourceMappingURL=MenuBaseElement.d.ts.map
@@ -43,8 +43,8 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
43
43
  import { css, LitElement } from "lit";
44
44
  import { property } from "lit/decorators.js";
45
45
  import { createRef } from "lit/directives/ref.js";
46
- export var LitMenuBaseElement = _decorate(null, function (_initialize, _LitElement) {
47
- class LitMenuBaseElement extends _LitElement {
46
+ export var MenuBaseElement = _decorate(null, function (_initialize, _LitElement) {
47
+ class MenuBaseElement extends _LitElement {
48
48
  constructor() {
49
49
  super(...arguments);
50
50
 
@@ -54,7 +54,7 @@ export var LitMenuBaseElement = _decorate(null, function (_initialize, _LitEleme
54
54
  }
55
55
 
56
56
  return {
57
- F: LitMenuBaseElement,
57
+ F: MenuBaseElement,
58
58
  d: [{
59
59
  kind: "field",
60
60
  static: true,
@@ -78,6 +78,18 @@ export var LitMenuBaseElement = _decorate(null, function (_initialize, _LitEleme
78
78
  };
79
79
  }
80
80
 
81
+ }, {
82
+ kind: "field",
83
+ decorators: [property({
84
+ type: Object,
85
+ attribute: "additional-items"
86
+ })],
87
+ key: "additinalItems",
88
+
89
+ value() {
90
+ return [];
91
+ }
92
+
81
93
  }, {
82
94
  kind: "field",
83
95
  decorators: [property()],
@@ -115,7 +127,7 @@ export var LitMenuBaseElement = _decorate(null, function (_initialize, _LitEleme
115
127
  kind: "method",
116
128
  key: "disconnectedCallback",
117
129
  value: function disconnectedCallback() {
118
- _get(_getPrototypeOf(LitMenuBaseElement.prototype), "disconnectedCallback", this).call(this);
130
+ _get(_getPrototypeOf(MenuBaseElement.prototype), "disconnectedCallback", this).call(this);
119
131
 
120
132
  window.removeEventListener("click", this.handleClickOutside, false);
121
133
  }
@@ -130,4 +142,4 @@ export var LitMenuBaseElement = _decorate(null, function (_initialize, _LitEleme
130
142
  }]
131
143
  };
132
144
  }, LitElement);
133
- //# sourceMappingURL=LitMenuBaseElement.js.map
145
+ //# sourceMappingURL=MenuBaseElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuBaseElement.js","names":["css","LitElement","property","createRef","MenuBaseElement","event","listRef","value","contains","composedPath","expanded","type","Object","attribute","preventDefault","stopPropagation","window","addEventListener","handleClickOutside","removeEventListener"],"sources":["src/MenuBaseElement.ts"],"sourcesContent":["import { css, LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { createRef } from \"lit/directives/ref.js\";\n\nexport type MenuAdditionalItem = {\n label: string;\n href: string;\n};\n\nexport interface MenuBaseElementProps {\n expanded: boolean;\n additinalItems: MenuAdditionalItem[];\n}\n\nexport class MenuBaseElement extends LitElement {\n static styles = css`\n nav {\n position: relative;\n display: flex;\n }\n .navigation-drawer-controll-button {\n background-color: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n appearance: none;\n\n height: 42px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.2s;\n }\n .navigation-drawer-controll-button.navigation-drawer-controll-button--icon {\n width: 42px;\n }\n .navigation-drawer-controll-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n }\n .navigation-drawer-controll-button:active {\n background-color: rgba(0, 0, 0, 0.075);\n }\n\n .navigation-drawer {\n position: absolute;\n top: 100%;\n right: 0px;\n min-width: 200px;\n white-space: nowrap;\n box-sizing: border-box;\n list-style: none;\n padding: 0px;\n margin: 0px;\n z-index: 1;\n box-shadow: 0px 1px 3px 0px rgb(0 0 0 / 20%),\n 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 2px 1px -1px rgb(0 0 0 / 12%);\n background-color: #fff;\n color: rgba(0, 0, 0, 0.87);\n border-radius: 5px;\n }\n .navigation-drawer-controll-button[aria-expanded=\"false\"]\n ~ .navigation-drawer {\n display: none;\n }\n\n .navigation-drawer li {\n border-bottom: 1px solid #eeeeee;\n }\n .navigation-drawer li:last-of-type {\n border-bottom: none;\n }\n .navigation-drawer li > a,\n .navigation-drawer li > button {\n width: 100%;\n text-align: left;\n background-color: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n appearance: none;\n cursor: pointer;\n font: inherit;\n display: block;\n box-sizing: border-box;\n padding: 0.6em 1em;\n color: inherit;\n text-decoration: none;\n transition: 0.2s;\n }\n .navigation-drawer li > a:hover,\n .navigation-drawer li > button:hover {\n background-color: #ededed;\n }\n .navigation-drawer li > a:active,\n .navigation-drawer li > button:active {\n background-color: #dadada;\n }\n `;\n\n handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (\n !this.listRef.value ||\n this.listRef.value.contains(event.composedPath()[0] as Node)\n ) {\n return;\n }\n this.expanded = false;\n };\n\n @property({\n type: Object,\n attribute: \"additional-items\",\n })\n additinalItems: MenuBaseElementProps[\"additinalItems\"] = [];\n\n @property()\n expanded?: boolean = false;\n\n handleToggleDrawer = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n this.expanded = !this.expanded;\n if (this.expanded) {\n window.addEventListener(\"click\", this.handleClickOutside, false);\n }\n };\n\n protected updated() {\n if (this.expanded === false) {\n window.removeEventListener(\"click\", this.handleClickOutside, false);\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\"click\", this.handleClickOutside, false);\n }\n\n listRef = createRef();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,GAAT,EAAcC,UAAd,QAAgC,KAAhC;AACA,SAASC,QAAT,QAAyB,mBAAzB;AACA,SAASC,SAAT,QAA0B,uBAA1B;AAYA,WAAaC,eAAb;EAAO,MAAMA,eAAN,qBAAyC;IAAA;MAAA;;MAAA;IAAA;;EAAA;;EAAhD;IAAA,GAAaA,eAAb;IAAA;MAAA;MAAA;MAAA;;MAAA;QAAA,OACkBJ,GADlB;MAAA;;IAAA;MAAA;MAAA;;MAAA;QAAA,OAqFwBK,KAAD,IAAoC;UACvD,IACE,CAAC,KAAKC,OAAL,CAAaC,KAAd,IACA,KAAKD,OAAL,CAAaC,KAAb,CAAmBC,QAAnB,CAA4BH,KAAK,CAACI,YAAN,GAAqB,CAArB,CAA5B,CAFF,EAGE;YACA;UACD;;UACD,KAAKC,QAAL,GAAgB,KAAhB;QACD,CA7FH;MAAA;;IAAA;MAAA;MAAA,aA+FGR,QAAQ,CAAC;QACRS,IAAI,EAAEC,MADE;QAERC,SAAS,EAAE;MAFH,CAAD,CA/FX;MAAA;;MAAA;QAAA,OAmG2D,EAnG3D;MAAA;;IAAA;MAAA;MAAA,aAqGGX,QAAQ,EArGX;MAAA;;MAAA;QAAA,OAsGuB,KAtGvB;MAAA;;IAAA;MAAA;MAAA;;MAAA;QAAA,OAwGwBG,KAAD,IAAkB;UACrCA,KAAK,CAACS,cAAN;UACAT,KAAK,CAACU,eAAN;UAEA,KAAKL,QAAL,GAAgB,CAAC,KAAKA,QAAtB;;UACA,IAAI,KAAKA,QAAT,EAAmB;YACjBM,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiC,KAAKC,kBAAtC,EAA0D,KAA1D;UACD;QACF,CAhHH;MAAA;;IAAA;MAAA;MAAA;MAAA,OAkHE,mBAAoB;QAClB,IAAI,KAAKR,QAAL,KAAkB,KAAtB,EAA6B;UAC3BM,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoC,KAAKD,kBAAzC,EAA6D,KAA7D;QACD;MACF;IAtHH;MAAA;MAAA;MAAA,OAwHE,gCAA6B;QAC3B,qBAzHSd,eAyHT;;QACAY,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoC,KAAKD,kBAAzC,EAA6D,KAA7D;MACD;IA3HH;MAAA;MAAA;;MAAA;QAAA,OA6HYf,SAAS,EA7HrB;MAAA;;IAAA;EAAA;AAAA,GAAqCF,UAArC"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.LitMenuBaseElement = void 0;
6
+ exports.MenuBaseElement = void 0;
7
7
 
8
8
  var _lit = require("lit");
9
9
 
@@ -49,8 +49,8 @@ function _superPropBase(object, property) { while (!Object.prototype.hasOwnPrope
49
49
 
50
50
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
51
51
 
52
- let LitMenuBaseElement = _decorate(null, function (_initialize, _LitElement) {
53
- class LitMenuBaseElement extends _LitElement {
52
+ let MenuBaseElement = _decorate(null, function (_initialize, _LitElement) {
53
+ class MenuBaseElement extends _LitElement {
54
54
  constructor(...args) {
55
55
  super(...args);
56
56
 
@@ -60,7 +60,7 @@ let LitMenuBaseElement = _decorate(null, function (_initialize, _LitElement) {
60
60
  }
61
61
 
62
62
  return {
63
- F: LitMenuBaseElement,
63
+ F: MenuBaseElement,
64
64
  d: [{
65
65
  kind: "field",
66
66
  static: true,
@@ -166,6 +166,18 @@ let LitMenuBaseElement = _decorate(null, function (_initialize, _LitElement) {
166
166
  };
167
167
  }
168
168
 
169
+ }, {
170
+ kind: "field",
171
+ decorators: [(0, _decorators.property)({
172
+ type: Object,
173
+ attribute: "additional-items"
174
+ })],
175
+ key: "additinalItems",
176
+
177
+ value() {
178
+ return [];
179
+ }
180
+
169
181
  }, {
170
182
  kind: "field",
171
183
  decorators: [(0, _decorators.property)()],
@@ -203,7 +215,7 @@ let LitMenuBaseElement = _decorate(null, function (_initialize, _LitElement) {
203
215
  kind: "method",
204
216
  key: "disconnectedCallback",
205
217
  value: function disconnectedCallback() {
206
- _get(_getPrototypeOf(LitMenuBaseElement.prototype), "disconnectedCallback", this).call(this);
218
+ _get(_getPrototypeOf(MenuBaseElement.prototype), "disconnectedCallback", this).call(this);
207
219
 
208
220
  window.removeEventListener("click", this.handleClickOutside, false);
209
221
  }
@@ -219,5 +231,5 @@ let LitMenuBaseElement = _decorate(null, function (_initialize, _LitElement) {
219
231
  };
220
232
  }, _lit.LitElement);
221
233
 
222
- exports.LitMenuBaseElement = LitMenuBaseElement;
223
- //# sourceMappingURL=LitMenuBaseElement.js.map
234
+ exports.MenuBaseElement = MenuBaseElement;
235
+ //# sourceMappingURL=MenuBaseElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuBaseElement.js","names":["MenuBaseElement","css","event","listRef","value","contains","composedPath","expanded","property","type","Object","attribute","preventDefault","stopPropagation","window","addEventListener","handleClickOutside","removeEventListener","createRef","LitElement"],"sources":["../src/MenuBaseElement.ts"],"sourcesContent":["import { css, LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { createRef } from \"lit/directives/ref.js\";\n\nexport type MenuAdditionalItem = {\n label: string;\n href: string;\n};\n\nexport interface MenuBaseElementProps {\n expanded: boolean;\n additinalItems: MenuAdditionalItem[];\n}\n\nexport class MenuBaseElement extends LitElement {\n static styles = css`\n nav {\n position: relative;\n display: flex;\n }\n .navigation-drawer-controll-button {\n background-color: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n appearance: none;\n\n height: 42px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.2s;\n }\n .navigation-drawer-controll-button.navigation-drawer-controll-button--icon {\n width: 42px;\n }\n .navigation-drawer-controll-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n }\n .navigation-drawer-controll-button:active {\n background-color: rgba(0, 0, 0, 0.075);\n }\n\n .navigation-drawer {\n position: absolute;\n top: 100%;\n right: 0px;\n min-width: 200px;\n white-space: nowrap;\n box-sizing: border-box;\n list-style: none;\n padding: 0px;\n margin: 0px;\n z-index: 1;\n box-shadow: 0px 1px 3px 0px rgb(0 0 0 / 20%),\n 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 2px 1px -1px rgb(0 0 0 / 12%);\n background-color: #fff;\n color: rgba(0, 0, 0, 0.87);\n border-radius: 5px;\n }\n .navigation-drawer-controll-button[aria-expanded=\"false\"]\n ~ .navigation-drawer {\n display: none;\n }\n\n .navigation-drawer li {\n border-bottom: 1px solid #eeeeee;\n }\n .navigation-drawer li:last-of-type {\n border-bottom: none;\n }\n .navigation-drawer li > a,\n .navigation-drawer li > button {\n width: 100%;\n text-align: left;\n background-color: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n appearance: none;\n cursor: pointer;\n font: inherit;\n display: block;\n box-sizing: border-box;\n padding: 0.6em 1em;\n color: inherit;\n text-decoration: none;\n transition: 0.2s;\n }\n .navigation-drawer li > a:hover,\n .navigation-drawer li > button:hover {\n background-color: #ededed;\n }\n .navigation-drawer li > a:active,\n .navigation-drawer li > button:active {\n background-color: #dadada;\n }\n `;\n\n handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (\n !this.listRef.value ||\n this.listRef.value.contains(event.composedPath()[0] as Node)\n ) {\n return;\n }\n this.expanded = false;\n };\n\n @property({\n type: Object,\n attribute: \"additional-items\",\n })\n additinalItems: MenuBaseElementProps[\"additinalItems\"] = [];\n\n @property()\n expanded?: boolean = false;\n\n handleToggleDrawer = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n this.expanded = !this.expanded;\n if (this.expanded) {\n window.addEventListener(\"click\", this.handleClickOutside, false);\n }\n };\n\n protected updated() {\n if (this.expanded === false) {\n window.removeEventListener(\"click\", this.handleClickOutside, false);\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\"click\", this.handleClickOutside, false);\n }\n\n listRef = createRef();\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYaA,e;EAAN,MAAMA,eAAN,qBAAyC;IAAA;MAAA;;MAAA;IAAA;;EAAA;;;OAAnCA,e;;;;;;;eACK,IAAAC,QAAA,CAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;eAEwBC,KAAD,IAAoC;UACvD,IACE,CAAC,KAAKC,OAAL,CAAaC,KAAd,IACA,KAAKD,OAAL,CAAaC,KAAb,CAAmBC,QAAnB,CAA4BH,KAAK,CAACI,YAAN,GAAqB,CAArB,CAA5B,CAFF,EAGE;YACA;UACD;;UACD,KAAKC,QAAL,GAAgB,KAAhB;QACD,C;;;;;mBAEA,IAAAC,oBAAA,EAAS;QACRC,IAAI,EAAEC,MADE;QAERC,SAAS,EAAE;MAFH,CAAT,C;;;;eAIwD,E;;;;;mBAExD,IAAAH,oBAAA,G;;;;eACoB,K;;;;;;;;eAECN,KAAD,IAAkB;UACrCA,KAAK,CAACU,cAAN;UACAV,KAAK,CAACW,eAAN;UAEA,KAAKN,QAAL,GAAgB,CAAC,KAAKA,QAAtB;;UACA,IAAI,KAAKA,QAAT,EAAmB;YACjBO,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiC,KAAKC,kBAAtC,EAA0D,KAA1D;UACD;QACF,C;;;;;;aAED,mBAAoB;QAClB,IAAI,KAAKT,QAAL,KAAkB,KAAtB,EAA6B;UAC3BO,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoC,KAAKD,kBAAzC,EAA6D,KAA7D;QACD;MACF;;;;aAED,gCAA6B;QAC3B,qBAzHShB,eAyHT;;QACAc,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoC,KAAKD,kBAAzC,EAA6D,KAA7D;MACD;;;;;;eAES,IAAAE,cAAA,G;;;;;GA7HyBC,e"}
package/cjs/domains.js CHANGED
@@ -13,11 +13,11 @@ const domains = process.env.NODE_ENV === "production" ? {
13
13
  checkin: "https://manage.checkin.m2msystems.cloud",
14
14
  systems: "https://m2msystems.cloud/"
15
15
  } : {
16
- core: "https://master--m2m-core-manager-front.netlify.app",
16
+ core: "https://dev--m2m-core-manager-front.netlify.app",
17
17
  sumyca: "https://master--sumyca-manager-front.netlify.app",
18
18
  cleaning: "https://master--m2m-cleaning-manager-front.netlify.app",
19
19
  users: "https://master--manage-users.netlify.app",
20
- inspection: "https://master--m2m-inspection-manager-front.netlify.app",
20
+ inspection: "https://dev--m2m-inspection-manager-front.netlify.app",
21
21
  checkin: "https://manage.dev.checkin.m2msystems.cloud",
22
22
  systems: "https://dev.m2msystems.cloud"
23
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"domains.js","names":["domains","process","env","NODE_ENV","core","sumyca","cleaning","users","inspection","checkin","systems"],"sources":["../src/domains.ts"],"sourcesContent":["export const domains =\n process.env.NODE_ENV === \"production\"\n ? {\n core: \"https://core.m2msystems.cloud\",\n sumyca: \"https://manage.sumyca.com\",\n cleaning: \"https://manager-cleaning.m2msystems.cloud\",\n users: \"https://manage-users.m2msystems.cloud\",\n inspection: \"https://inspection.m2msystems.cloud\",\n checkin: \"https://manage.checkin.m2msystems.cloud\",\n systems: \"https://m2msystems.cloud/\",\n }\n : {\n core: \"https://master--m2m-core-manager-front.netlify.app\",\n sumyca: \"https://master--sumyca-manager-front.netlify.app\",\n cleaning: \"https://master--m2m-cleaning-manager-front.netlify.app\",\n users: \"https://master--manage-users.netlify.app\",\n inspection: \"https://master--m2m-inspection-manager-front.netlify.app\",\n checkin: \"https://manage.dev.checkin.m2msystems.cloud\",\n systems: \"https://dev.m2msystems.cloud\",\n };\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAClBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GACI;EACEC,IAAI,EAAE,+BADR;EAEEC,MAAM,EAAE,2BAFV;EAGEC,QAAQ,EAAE,2CAHZ;EAIEC,KAAK,EAAE,uCAJT;EAKEC,UAAU,EAAE,qCALd;EAMEC,OAAO,EAAE,yCANX;EAOEC,OAAO,EAAE;AAPX,CADJ,GAUI;EACEN,IAAI,EAAE,oDADR;EAEEC,MAAM,EAAE,kDAFV;EAGEC,QAAQ,EAAE,wDAHZ;EAIEC,KAAK,EAAE,0CAJT;EAKEC,UAAU,EAAE,0DALd;EAMEC,OAAO,EAAE,6CANX;EAOEC,OAAO,EAAE;AAPX,CAXC"}
1
+ {"version":3,"file":"domains.js","names":["domains","process","env","NODE_ENV","core","sumyca","cleaning","users","inspection","checkin","systems"],"sources":["../src/domains.ts"],"sourcesContent":["export const domains =\n process.env.NODE_ENV === \"production\"\n ? {\n core: \"https://core.m2msystems.cloud\",\n sumyca: \"https://manage.sumyca.com\",\n cleaning: \"https://manager-cleaning.m2msystems.cloud\",\n users: \"https://manage-users.m2msystems.cloud\",\n inspection: \"https://inspection.m2msystems.cloud\",\n checkin: \"https://manage.checkin.m2msystems.cloud\",\n systems: \"https://m2msystems.cloud/\",\n }\n : {\n core: \"https://dev--m2m-core-manager-front.netlify.app\",\n sumyca: \"https://master--sumyca-manager-front.netlify.app\",\n cleaning: \"https://master--m2m-cleaning-manager-front.netlify.app\",\n users: \"https://master--manage-users.netlify.app\",\n inspection: \"https://dev--m2m-inspection-manager-front.netlify.app\",\n checkin: \"https://manage.dev.checkin.m2msystems.cloud\",\n systems: \"https://dev.m2msystems.cloud\",\n };\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAClBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GACI;EACEC,IAAI,EAAE,+BADR;EAEEC,MAAM,EAAE,2BAFV;EAGEC,QAAQ,EAAE,2CAHZ;EAIEC,KAAK,EAAE,uCAJT;EAKEC,UAAU,EAAE,qCALd;EAMEC,OAAO,EAAE,yCANX;EAOEC,OAAO,EAAE;AAPX,CADJ,GAUI;EACEN,IAAI,EAAE,iDADR;EAEEC,MAAM,EAAE,kDAFV;EAGEC,QAAQ,EAAE,wDAHZ;EAIEC,KAAK,EAAE,0CAJT;EAKEC,UAAU,EAAE,uDALd;EAMEC,OAAO,EAAE,6CANX;EAOEC,OAAO,EAAE;AAPX,CAXC"}
@@ -13,7 +13,7 @@ var _decorators = require("lit/decorators.js");
13
13
 
14
14
  var _ref = require("lit/directives/ref.js");
15
15
 
16
- var _LitMenuBaseElement2 = require("./LitMenuBaseElement");
16
+ var _MenuBaseElement2 = require("./MenuBaseElement");
17
17
 
18
18
  function _decorate(decorators, factory, superClass, mixins) { var api = _getDecoratorsApi(); if (mixins) { for (var i = 0; i < mixins.length; i++) { api = mixins[i](api); } } var r = factory(function initialize(O) { api.initializeInstanceElements(O, decorated.elements); }, superClass); var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); api.initializeClassElements(r.F, decorated.elements); return api.runClassFinishers(r.F, decorated.finishers); }
19
19
 
@@ -47,8 +47,8 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
47
47
 
48
48
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
49
49
 
50
- let M2MAppsMenu = _decorate([(0, _decorators.customElement)("m2m-apps-menu")], function (_initialize, _LitMenuBaseElement) {
51
- class M2MAppsMenu extends _LitMenuBaseElement {
50
+ let M2MAppsMenu = _decorate([(0, _decorators.customElement)("m2m-apps-menu")], function (_initialize, _MenuBaseElement) {
51
+ class M2MAppsMenu extends _MenuBaseElement {
52
52
  constructor(...args) {
53
53
  super(...args);
54
54
 
@@ -60,34 +60,10 @@ let M2MAppsMenu = _decorate([(0, _decorators.customElement)("m2m-apps-menu")], f
60
60
  return {
61
61
  F: M2MAppsMenu,
62
62
  d: [{
63
- kind: "field",
64
- decorators: [(0, _decorators.property)({
65
- type: Object,
66
- converter: {
67
- fromAttribute(value) {
68
- console.log("from", value);
69
- },
70
-
71
- toAttribute(value) {
72
- console.log("to", value);
73
- }
74
-
75
- }
76
- })],
77
- key: "items",
78
-
79
- value() {
80
- return [];
81
- }
82
-
83
- }, {
84
63
  kind: "method",
85
64
  key: "render",
86
65
  value: function render() {
87
- var _this$items;
88
-
89
- console.log(this);
90
- const additionalMenuItems = (_this$items = this.items) === null || _this$items === void 0 ? void 0 : _this$items.map(item => {
66
+ const additionalItems = this.additinalItems?.map(item => {
91
67
  return (0, _lit.html)`
92
68
  <li>
93
69
  <a href="${item.href}">${item.label}</a>
@@ -130,13 +106,13 @@ let M2MAppsMenu = _decorate([(0, _decorators.customElement)("m2m-apps-menu")], f
130
106
  <li>
131
107
  <a href="${_domains.domains.sumyca}">Sumyca マンスリープラットフォーム</a>
132
108
  </li>
133
- ${additionalMenuItems}
109
+ ${additionalItems}
134
110
  </ul>
135
111
  </nav>`;
136
112
  }
137
113
  }]
138
114
  };
139
- }, _LitMenuBaseElement2.LitMenuBaseElement);
115
+ }, _MenuBaseElement2.MenuBaseElement);
140
116
 
141
117
  exports.M2MAppsMenu = M2MAppsMenu;
142
118
  //# sourceMappingURL=m2m-apps-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"m2m-apps-menu.js","names":["M2MAppsMenu","customElement","property","type","Object","converter","fromAttribute","value","console","log","toAttribute","additionalMenuItems","items","map","item","html","href","label","expanded","handleToggleDrawer","ref","listRef","domains","core","checkin","systems","cleaning","inspection","users","sumyca","LitMenuBaseElement"],"sources":["../src/m2m-apps-menu.ts"],"sourcesContent":["import { domains } from \"./domains\";\nimport { html } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { property } from \"lit/decorators.js\";\nimport {\n LitMenuBaseElement,\n LitMenuBaseElementProps,\n} from \"./LitMenuBaseElement\";\n\nexport interface M2MAppsMenuProps extends LitMenuBaseElementProps {}\n\n@customElement(\"m2m-apps-menu\")\nexport class M2MAppsMenu extends LitMenuBaseElement {\n @property({\n type: Object,\n converter: {\n fromAttribute(value) {\n console.log(\"from\", value);\n },\n toAttribute(value) {\n console.log(\"to\", value);\n },\n },\n })\n items: LitMenuBaseElementProps[\"items\"] = [];\n\n render() {\n console.log(this);\n const additionalMenuItems = this.items?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-apps-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-apps-menu__navigation-drawer\"\n aria-hidden=${!this.expanded}\n class=\"navigation-drawer\"\n >\n <li><a href=\"${domains.core}\">m2m-core 施設管理</a></li>\n <li><a href=\"${domains.checkin}\">m2m-checkin ゲストチェックイン</a></li>\n <li><a href=\"${domains.systems}\">m2m-systems Airbnb連携</a></li>\n <li><a href=\"${domains.cleaning}\">m2m-cleaning 清掃管理</a></li>\n <li>\n <a href=\"${domains.inspection}\">m2m-inspection 内見チェック</a>\n </li>\n <li><a href=\"${domains.users}\">m2m-users アカウント管理</a></li>\n <li>\n <a href=\"${domains.sumyca}\">Sumyca マンスリープラットフォーム</a>\n </li>\n ${additionalMenuItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-apps-menu\": M2MAppsMenu;\n }\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQaA,W,cADZ,IAAAC,yBAAA,EAAc,eAAd,C;EAAD,MACaD,WADb,6BACoD;IAAA;MAAA;;MAAA;IAAA;;EAAA;;;OAAvCA,W;;;mBACV,IAAAE,oBAAA,EAAS;QACRC,IAAI,EAAEC,MADE;QAERC,SAAS,EAAE;UACTC,aAAa,CAACC,KAAD,EAAQ;YACnBC,OAAO,CAACC,GAAR,CAAY,MAAZ,EAAoBF,KAApB;UACD,CAHQ;;UAITG,WAAW,CAACH,KAAD,EAAQ;YACjBC,OAAO,CAACC,GAAR,CAAY,IAAZ,EAAkBF,KAAlB;UACD;;QANQ;MAFH,CAAT,C;;;;eAWyC,E;;;;;;aAE1C,kBAAS;QAAA;;QACPC,OAAO,CAACC,GAAR,CAAY,IAAZ;QACA,MAAME,mBAAmB,kBAAG,KAAKC,KAAR,gDAAG,YAAYC,GAAZ,CAAiBC,IAAD,IAAU;UACpD,OAAO,IAAAC,SAAA,CAAK;AAClB;AACA,qBAAqBD,IAAI,CAACE,IAAK,KAAIF,IAAI,CAACG,KAAM;AAC9C;AACA,OAJM;QAKD,CAN2B,CAA5B;QAOA,OAAO,IAAAF,SAAA,CAAK;AAChB;AACA;AACA;AACA;AACA,wBAAwB,KAAKG,QAAS;AACtC,iBAAiB,KAAKC,kBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAAC,QAAA,EAAI,KAAKC,OAAT,CAAkB;AAC5B;AACA,sBAAsB,CAAC,KAAKH,QAAS;AACrC;AACA;AACA,uBAAuBI,gBAAA,CAAQC,IAAK;AACpC,uBAAuBD,gBAAA,CAAQE,OAAQ;AACvC,uBAAuBF,gBAAA,CAAQG,OAAQ;AACvC,uBAAuBH,gBAAA,CAAQI,QAAS;AACxC;AACA,qBAAqBJ,gBAAA,CAAQK,UAAW;AACxC;AACA,uBAAuBL,gBAAA,CAAQM,KAAM;AACrC;AACA,qBAAqBN,gBAAA,CAAQO,MAAO;AACpC;AACA,UAAUlB,mBAAoB;AAC9B;AACA,WAtCI;MAuCD;;;GA9D8BmB,uC"}
1
+ {"version":3,"file":"m2m-apps-menu.js","names":["M2MAppsMenu","customElement","additionalItems","additinalItems","map","item","html","href","label","expanded","handleToggleDrawer","ref","listRef","domains","core","checkin","systems","cleaning","inspection","users","sumyca","MenuBaseElement"],"sources":["../src/m2m-apps-menu.ts"],"sourcesContent":["import { domains } from \"./domains\";\nimport { html } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { MenuBaseElement, MenuBaseElementProps } from \"./MenuBaseElement\";\n\nexport type M2MAppsMenuProps = MenuBaseElementProps;\n\n@customElement(\"m2m-apps-menu\")\nexport class M2MAppsMenu extends MenuBaseElement {\n render() {\n const additionalItems = this.additinalItems?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-apps-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-apps-menu__navigation-drawer\"\n aria-hidden=${!this.expanded}\n class=\"navigation-drawer\"\n >\n <li><a href=\"${domains.core}\">m2m-core 施設管理</a></li>\n <li><a href=\"${domains.checkin}\">m2m-checkin ゲストチェックイン</a></li>\n <li><a href=\"${domains.systems}\">m2m-systems Airbnb連携</a></li>\n <li><a href=\"${domains.cleaning}\">m2m-cleaning 清掃管理</a></li>\n <li>\n <a href=\"${domains.inspection}\">m2m-inspection 内見チェック</a>\n </li>\n <li><a href=\"${domains.users}\">m2m-users アカウント管理</a></li>\n <li>\n <a href=\"${domains.sumyca}\">Sumyca マンスリープラットフォーム</a>\n </li>\n ${additionalItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-apps-menu\": M2MAppsMenu;\n }\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKaA,W,cADZ,IAAAC,yBAAA,EAAc,eAAd,C;EAAD,MACaD,WADb,0BACiD;IAAA;MAAA;;MAAA;IAAA;;EAAA;;;OAApCA,W;;;;aACX,kBAAS;QACP,MAAME,eAAe,GAAG,KAAKC,cAAL,EAAqBC,GAArB,CAA0BC,IAAD,IAAU;UACzD,OAAO,IAAAC,SAAA,CAAK;AAClB;AACA,qBAAqBD,IAAI,CAACE,IAAK,KAAIF,IAAI,CAACG,KAAM;AAC9C;AACA,OAJM;QAKD,CANuB,CAAxB;QAOA,OAAO,IAAAF,SAAA,CAAK;AAChB;AACA;AACA;AACA;AACA,wBAAwB,KAAKG,QAAS;AACtC,iBAAiB,KAAKC,kBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAAC,QAAA,EAAI,KAAKC,OAAT,CAAkB;AAC5B;AACA,sBAAsB,CAAC,KAAKH,QAAS;AACrC;AACA;AACA,uBAAuBI,gBAAA,CAAQC,IAAK;AACpC,uBAAuBD,gBAAA,CAAQE,OAAQ;AACvC,uBAAuBF,gBAAA,CAAQG,OAAQ;AACvC,uBAAuBH,gBAAA,CAAQI,QAAS;AACxC;AACA,qBAAqBJ,gBAAA,CAAQK,UAAW;AACxC;AACA,uBAAuBL,gBAAA,CAAQM,KAAM;AACrC;AACA,qBAAqBN,gBAAA,CAAQO,MAAO;AACpC;AACA,UAAUlB,eAAgB;AAC1B;AACA,WAtCI;MAuCD;;;GAhD8BmB,iC"}
@@ -15,7 +15,7 @@ var _decorators = require("lit/decorators.js");
15
15
 
16
16
  var _ref = require("lit/directives/ref.js");
17
17
 
18
- var _LitMenuBaseElement2 = require("./LitMenuBaseElement");
18
+ var _MenuBaseElement2 = require("./MenuBaseElement");
19
19
 
20
20
  function _decorate(decorators, factory, superClass, mixins) { var api = _getDecoratorsApi(); if (mixins) { for (var i = 0; i < mixins.length; i++) { api = mixins[i](api); } } var r = factory(function initialize(O) { api.initializeInstanceElements(O, decorated.elements); }, superClass); var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); api.initializeClassElements(r.F, decorated.elements); return api.runClassFinishers(r.F, decorated.finishers); }
21
21
 
@@ -49,8 +49,8 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
49
49
 
50
50
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
51
51
 
52
- let M2MUserMenu = _decorate([(0, _decorators.customElement)("m2m-user-menu")], function (_initialize, _LitMenuBaseElement) {
53
- class M2MUserMenu extends _LitMenuBaseElement {
52
+ let M2MUserMenu = _decorate([(0, _decorators.customElement)("m2m-user-menu")], function (_initialize, _MenuBaseElement) {
53
+ class M2MUserMenu extends _MenuBaseElement {
54
54
  constructor(...args) {
55
55
  super(...args);
56
56
 
@@ -62,17 +62,6 @@ let M2MUserMenu = _decorate([(0, _decorators.customElement)("m2m-user-menu")], f
62
62
  return {
63
63
  F: M2MUserMenu,
64
64
  d: [{
65
- kind: "field",
66
- decorators: [(0, _decorators.property)({
67
- type: Object
68
- })],
69
- key: "items",
70
-
71
- value() {
72
- return [];
73
- }
74
-
75
- }, {
76
65
  kind: "field",
77
66
  key: "handleLogout",
78
67
 
@@ -88,9 +77,7 @@ let M2MUserMenu = _decorate([(0, _decorators.customElement)("m2m-user-menu")], f
88
77
  kind: "method",
89
78
  key: "render",
90
79
  value: function render() {
91
- var _this$items;
92
-
93
- const additionalMenuItems = (_this$items = this.items) === null || _this$items === void 0 ? void 0 : _this$items.map(item => {
80
+ const additionalItems = this.additinalItems?.map(item => {
94
81
  return (0, _lit.html)`
95
82
  <li>
96
83
  <a href="${item.href}">${item.label}</a>
@@ -122,13 +109,13 @@ let M2MUserMenu = _decorate([(0, _decorators.customElement)("m2m-user-menu")], f
122
109
  <li @click=${this.handleLogout}>
123
110
  <button type="button">ログアウト</button>
124
111
  </li>
125
- ${additionalMenuItems}
112
+ ${additionalItems}
126
113
  </ul>
127
114
  </nav>`;
128
115
  }
129
116
  }]
130
117
  };
131
- }, _LitMenuBaseElement2.LitMenuBaseElement);
118
+ }, _MenuBaseElement2.MenuBaseElement);
132
119
 
133
120
  exports.M2MUserMenu = M2MUserMenu;
134
121
  //# sourceMappingURL=m2m-user-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"m2m-user-menu.js","names":["M2MUserMenu","customElement","property","type","Object","m2mAuthTokenApi","clear","window","location","reload","additionalMenuItems","items","map","item","html","href","label","expanded","handleToggleDrawer","ref","listRef","domains","users","handleLogout","LitMenuBaseElement"],"sources":["../src/m2m-user-menu.ts"],"sourcesContent":["import { m2mAuthTokenApi } from \"./storage/client\";\nimport { domains } from \"./domains\";\nimport { html } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport {\n LitMenuBaseElement,\n LitMenuBaseElementProps,\n} from \"./LitMenuBaseElement\";\n\nexport interface M2MUserMenuProps extends LitMenuBaseElementProps {}\n\n@customElement(\"m2m-user-menu\")\nexport class M2MUserMenu extends LitMenuBaseElement {\n @property({ type: Object })\n items: LitMenuBaseElementProps[\"items\"] = [];\n\n handleLogout = () => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n };\n\n render() {\n const additionalMenuItems = this.items?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-user-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg viewBox=\"0 0 24 24\" width=\"32px\" height=\"32px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-user-menu__navigation-drawer\"\n aria-hidden=${!this.expanded}\n class=\"navigation-drawer\"\n >\n <li><a href=\"${domains.users}\">アカウント情報</a></li>\n <li @click=${this.handleLogout}>\n <button type=\"button\">ログアウト</button>\n </li>\n ${additionalMenuItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-user-menu\": M2MUserMenu;\n }\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQaA,W,cADZ,IAAAC,yBAAA,EAAc,eAAd,C;EAAD,MACaD,WADb,6BACoD;IAAA;MAAA;;MAAA;IAAA;;EAAA;;;OAAvCA,W;;;mBACV,IAAAE,oBAAA,EAAS;QAAEC,IAAI,EAAEC;MAAR,CAAT,C;;;;eACyC,E;;;;;;;;eAE3B,MAAM;UACnBC,uBAAA,CAAgBC,KAAhB;;UACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;QACD,C;;;;;;aAED,kBAAS;QAAA;;QACP,MAAMC,mBAAmB,kBAAG,KAAKC,KAAR,gDAAG,YAAYC,GAAZ,CAAiBC,IAAD,IAAU;UACpD,OAAO,IAAAC,SAAA,CAAK;AAClB;AACA,qBAAqBD,IAAI,CAACE,IAAK,KAAIF,IAAI,CAACG,KAAM;AAC9C;AACA,OAJM;QAKD,CAN2B,CAA5B;QAOA,OAAO,IAAAF,SAAA,CAAK;AAChB;AACA;AACA;AACA;AACA,wBAAwB,KAAKG,QAAS;AACtC,iBAAiB,KAAKC,kBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAAC,QAAA,EAAI,KAAKC,OAAT,CAAkB;AAC5B;AACA,sBAAsB,CAAC,KAAKH,QAAS;AACrC;AACA;AACA,uBAAuBI,gBAAA,CAAQC,KAAM;AACrC,qBAAqB,KAAKC,YAAa;AACvC;AACA;AACA,UAAUb,mBAAoB;AAC9B;AACA,WA3BI;MA4BD;;;GA7C8Bc,uC"}
1
+ {"version":3,"file":"m2m-user-menu.js","names":["M2MUserMenu","customElement","m2mAuthTokenApi","clear","window","location","reload","additionalItems","additinalItems","map","item","html","href","label","expanded","handleToggleDrawer","ref","listRef","domains","users","handleLogout","MenuBaseElement"],"sources":["../src/m2m-user-menu.ts"],"sourcesContent":["import { m2mAuthTokenApi } from \"./storage/client\";\nimport { domains } from \"./domains\";\nimport { html } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { MenuBaseElement, MenuBaseElementProps } from \"./MenuBaseElement\";\n\nexport type M2MUserMenuProps = MenuBaseElementProps;\n\n@customElement(\"m2m-user-menu\")\nexport class M2MUserMenu extends MenuBaseElement {\n handleLogout = () => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n };\n\n render() {\n const additionalItems = this.additinalItems?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-user-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg viewBox=\"0 0 24 24\" width=\"32px\" height=\"32px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-user-menu__navigation-drawer\"\n aria-hidden=${!this.expanded}\n class=\"navigation-drawer\"\n >\n <li><a href=\"${domains.users}\">アカウント情報</a></li>\n <li @click=${this.handleLogout}>\n <button type=\"button\">ログアウト</button>\n </li>\n ${additionalItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-user-menu\": M2MUserMenu;\n }\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKaA,W,cADZ,IAAAC,yBAAA,EAAc,eAAd,C;EAAD,MACaD,WADb,0BACiD;IAAA;MAAA;;MAAA;IAAA;;EAAA;;;OAApCA,W;;;;;;eACI,MAAM;UACnBE,uBAAA,CAAgBC,KAAhB;;UACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;QACD,C;;;;;;aAED,kBAAS;QACP,MAAMC,eAAe,GAAG,KAAKC,cAAL,EAAqBC,GAArB,CAA0BC,IAAD,IAAU;UACzD,OAAO,IAAAC,SAAA,CAAK;AAClB;AACA,qBAAqBD,IAAI,CAACE,IAAK,KAAIF,IAAI,CAACG,KAAM;AAC9C;AACA,OAJM;QAKD,CANuB,CAAxB;QAOA,OAAO,IAAAF,SAAA,CAAK;AAChB;AACA;AACA;AACA;AACA,wBAAwB,KAAKG,QAAS;AACtC,iBAAiB,KAAKC,kBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAAC,QAAA,EAAI,KAAKC,OAAT,CAAkB;AAC5B;AACA,sBAAsB,CAAC,KAAKH,QAAS;AACrC;AACA;AACA,uBAAuBI,gBAAA,CAAQC,KAAM;AACrC,qBAAqB,KAAKC,YAAa;AACvC;AACA;AACA,UAAUb,eAAgB;AAC1B;AACA,WA3BI;MA4BD;;;GA1C8Bc,iC"}
@@ -28,10 +28,10 @@ const NotificationsProvider = ({
28
28
  refetch: refetchSubscriptions
29
29
  } = (0, _matsuriHooks.useAuthFetch)(token, _m2mNotifications.m2mNotifications_v1.findMySubscriptions(), {});
30
30
  const checkPermission = (0, _react.useCallback)(notificationType => {
31
- const subscription = subscriptions === null || subscriptions === void 0 ? void 0 : subscriptions.find(item => {
31
+ const subscription = subscriptions?.find(item => {
32
32
  return item.serviceId === serviceId && item.notificationType === notificationType && item.resourceSubscription.resourceSelectType === "any";
33
33
  });
34
- return subscription === null || subscription === void 0 ? void 0 : subscription.status;
34
+ return subscription?.status;
35
35
  }, [serviceId, subscriptions]);
36
36
  const {
37
37
  data: notifications,
@@ -58,11 +58,11 @@ const NotificationsProvider = ({
58
58
  }, [checkPermission, refetchSubscriptions]);
59
59
  const notificationsContextState = (0, _react.useMemo)(() => {
60
60
  return {
61
- notifications: (notifications === null || notifications === void 0 ? void 0 : notifications.data) ?? [],
62
- isAllRead: (notifications === null || notifications === void 0 ? void 0 : notifications.data.every(n => n.status === "read")) ?? true,
61
+ notifications: notifications?.data ?? [],
62
+ isAllRead: notifications?.data.every(n => n.status === "read") ?? true,
63
63
  refetch: refetchNotifications
64
64
  };
65
- }, [refetchNotifications, notifications === null || notifications === void 0 ? void 0 : notifications.data]);
65
+ }, [refetchNotifications, notifications?.data]);
66
66
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(NotificationPermissionContext.Provider, {
67
67
  value: permissionContextState,
68
68
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(NotificationsContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationProvider.js","names":["NotificationPermissionContext","createContext","undefined","NotificationsContext","NotificationsProvider","token","children","serviceId","useServiceId","data","subscriptions","refetch","refetchSubscriptions","useAuthFetch","m2mNotifications_v1","findMySubscriptions","checkPermission","useCallback","notificationType","subscription","find","item","resourceSubscription","resourceSelectType","status","notifications","error","refetchNotifications","findNotificationsByServiceId","id","swrConfig","refreshInterval","console","permissionContextState","useMemo","notificationsContextState","isAllRead","every","n","useNotifications","ctx","useContext","Error","useNotificationPermission"],"sources":["../../src/notification/NotificationProvider.tsx"],"sourcesContent":["import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n} from \"react\";\nimport { useAuthFetch } from \"matsuri-hooks\";\nimport { useMemo } from \"react\";\nimport { m2mNotifications_v1 } from \"../endpoints/m2m-notifications.v1\";\nimport { useServiceId } from \"./ServiceIdProvider\";\nimport { SubscriptionStatus, Subscription, Notification } from \"./domain\";\n\nconst NotificationPermissionContext = createContext<\n | {\n checkPermission: (\n notificationType: string\n ) => SubscriptionStatus | undefined;\n refetch: () => void;\n }\n | undefined\n>(undefined);\n\nconst NotificationsContext = createContext<\n | { notifications: Notification[]; isAllRead: boolean; refetch: () => void }\n | undefined\n>(undefined);\n\n// ServiceIdProviderの中で使うこと\nexport const NotificationsProvider = ({\n token,\n children,\n}: PropsWithChildren<{ token: string }>) => {\n const serviceId = useServiceId();\n\n const { data: subscriptions, refetch: refetchSubscriptions } = useAuthFetch<\n Subscription[]\n >(token, m2mNotifications_v1.findMySubscriptions(), {});\n const checkPermission = useCallback(\n (notificationType: string) => {\n const subscription = subscriptions?.find((item) => {\n return (\n item.serviceId === serviceId &&\n item.notificationType === notificationType &&\n item.resourceSubscription.resourceSelectType === \"any\"\n );\n });\n\n return subscription?.status;\n },\n [serviceId, subscriptions]\n );\n\n const {\n data: notifications,\n error,\n refetch: refetchNotifications,\n } = useAuthFetch<{ data: Notification[] }>(\n token,\n m2mNotifications_v1.findNotificationsByServiceId({ id: serviceId }),\n { swrConfig: { refreshInterval: 1000 * 60 * 5 } }\n );\n if (error) {\n // エラーが出てもユーザーは特に困らないので、ユーザーに伝える必要はないが、監視は必要。\n console.error(error);\n }\n\n const permissionContextState = useMemo(() => {\n return {\n checkPermission,\n refetch: refetchSubscriptions,\n };\n }, [checkPermission, refetchSubscriptions]);\n\n const notificationsContextState = useMemo(() => {\n return {\n notifications: notifications?.data ?? [],\n isAllRead: notifications?.data.every((n) => n.status === \"read\") ?? true,\n refetch: refetchNotifications,\n };\n }, [refetchNotifications, notifications?.data]);\n\n return (\n <NotificationPermissionContext.Provider value={permissionContextState}>\n <NotificationsContext.Provider value={notificationsContextState}>\n {children}\n </NotificationsContext.Provider>\n </NotificationPermissionContext.Provider>\n );\n};\n\nexport const useNotifications = () => {\n const ctx = useContext(NotificationsContext);\n if (!ctx) {\n throw new Error(\"NotificatoinProvider is not found\");\n }\n\n return ctx;\n};\n\nexport const useNotificationPermission = () => {\n const ctx = useContext(NotificationPermissionContext);\n if (!ctx) {\n throw new Error(\"NotificatoinProvider is not found\");\n }\n\n return ctx;\n};\n"],"mappings":";;;;;;;AAAA;;AAMA;;AAEA;;AACA;;;;AAGA,MAAMA,6BAA6B,gBAAG,IAAAC,oBAAA,EAQpCC,SARoC,CAAtC;AAUA,MAAMC,oBAAoB,gBAAG,IAAAF,oBAAA,EAG3BC,SAH2B,CAA7B,C,CAKA;;AACO,MAAME,qBAAqB,GAAG,CAAC;EACpCC,KADoC;EAEpCC;AAFoC,CAAD,KAGO;EAC1C,MAAMC,SAAS,GAAG,IAAAC,+BAAA,GAAlB;EAEA,MAAM;IAAEC,IAAI,EAAEC,aAAR;IAAuBC,OAAO,EAAEC;EAAhC,IAAyD,IAAAC,0BAAA,EAE7DR,KAF6D,EAEtDS,qCAAA,CAAoBC,mBAApB,EAFsD,EAEX,EAFW,CAA/D;EAGA,MAAMC,eAAe,GAAG,IAAAC,kBAAA,EACrBC,gBAAD,IAA8B;IAC5B,MAAMC,YAAY,GAAGT,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAEU,IAAf,CAAqBC,IAAD,IAAU;MACjD,OACEA,IAAI,CAACd,SAAL,KAAmBA,SAAnB,IACAc,IAAI,CAACH,gBAAL,KAA0BA,gBAD1B,IAEAG,IAAI,CAACC,oBAAL,CAA0BC,kBAA1B,KAAiD,KAHnD;IAKD,CANoB,CAArB;IAQA,OAAOJ,YAAP,aAAOA,YAAP,uBAAOA,YAAY,CAAEK,MAArB;EACD,CAXqB,EAYtB,CAACjB,SAAD,EAAYG,aAAZ,CAZsB,CAAxB;EAeA,MAAM;IACJD,IAAI,EAAEgB,aADF;IAEJC,KAFI;IAGJf,OAAO,EAAEgB;EAHL,IAIF,IAAAd,0BAAA,EACFR,KADE,EAEFS,qCAAA,CAAoBc,4BAApB,CAAiD;IAAEC,EAAE,EAAEtB;EAAN,CAAjD,CAFE,EAGF;IAAEuB,SAAS,EAAE;MAAEC,eAAe,EAAE,OAAO,EAAP,GAAY;IAA/B;EAAb,CAHE,CAJJ;;EASA,IAAIL,KAAJ,EAAW;IACT;IACAM,OAAO,CAACN,KAAR,CAAcA,KAAd;EACD;;EAED,MAAMO,sBAAsB,GAAG,IAAAC,cAAA,EAAQ,MAAM;IAC3C,OAAO;MACLlB,eADK;MAELL,OAAO,EAAEC;IAFJ,CAAP;EAID,CAL8B,EAK5B,CAACI,eAAD,EAAkBJ,oBAAlB,CAL4B,CAA/B;EAOA,MAAMuB,yBAAyB,GAAG,IAAAD,cAAA,EAAQ,MAAM;IAC9C,OAAO;MACLT,aAAa,EAAE,CAAAA,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEhB,IAAf,KAAuB,EADjC;MAEL2B,SAAS,EAAE,CAAAX,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEhB,IAAf,CAAoB4B,KAApB,CAA2BC,CAAD,IAAOA,CAAC,CAACd,MAAF,KAAa,MAA9C,MAAyD,IAF/D;MAGLb,OAAO,EAAEgB;IAHJ,CAAP;EAKD,CANiC,EAM/B,CAACA,oBAAD,EAAuBF,aAAvB,aAAuBA,aAAvB,uBAAuBA,aAAa,CAAEhB,IAAtC,CAN+B,CAAlC;EAQA,oBACE,qBAAC,6BAAD,CAA+B,QAA/B;IAAwC,KAAK,EAAEwB,sBAA/C;IAAA,uBACE,qBAAC,oBAAD,CAAsB,QAAtB;MAA+B,KAAK,EAAEE,yBAAtC;MAAA,UACG7B;IADH;EADF,EADF;AAOD,CA5DM;;;;AA8DA,MAAMiC,gBAAgB,GAAG,MAAM;EACpC,MAAMC,GAAG,GAAG,IAAAC,iBAAA,EAAWtC,oBAAX,CAAZ;;EACA,IAAI,CAACqC,GAAL,EAAU;IACR,MAAM,IAAIE,KAAJ,CAAU,mCAAV,CAAN;EACD;;EAED,OAAOF,GAAP;AACD,CAPM;;;;AASA,MAAMG,yBAAyB,GAAG,MAAM;EAC7C,MAAMH,GAAG,GAAG,IAAAC,iBAAA,EAAWzC,6BAAX,CAAZ;;EACA,IAAI,CAACwC,GAAL,EAAU;IACR,MAAM,IAAIE,KAAJ,CAAU,mCAAV,CAAN;EACD;;EAED,OAAOF,GAAP;AACD,CAPM"}
1
+ {"version":3,"file":"NotificationProvider.js","names":["NotificationPermissionContext","createContext","undefined","NotificationsContext","NotificationsProvider","token","children","serviceId","useServiceId","data","subscriptions","refetch","refetchSubscriptions","useAuthFetch","m2mNotifications_v1","findMySubscriptions","checkPermission","useCallback","notificationType","subscription","find","item","resourceSubscription","resourceSelectType","status","notifications","error","refetchNotifications","findNotificationsByServiceId","id","swrConfig","refreshInterval","console","permissionContextState","useMemo","notificationsContextState","isAllRead","every","n","useNotifications","ctx","useContext","Error","useNotificationPermission"],"sources":["../../src/notification/NotificationProvider.tsx"],"sourcesContent":["import {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n} from \"react\";\nimport { useAuthFetch } from \"matsuri-hooks\";\nimport { useMemo } from \"react\";\nimport { m2mNotifications_v1 } from \"../endpoints/m2m-notifications.v1\";\nimport { useServiceId } from \"./ServiceIdProvider\";\nimport { SubscriptionStatus, Subscription, Notification } from \"./domain\";\n\nconst NotificationPermissionContext = createContext<\n | {\n checkPermission: (\n notificationType: string\n ) => SubscriptionStatus | undefined;\n refetch: () => void;\n }\n | undefined\n>(undefined);\n\nconst NotificationsContext = createContext<\n | { notifications: Notification[]; isAllRead: boolean; refetch: () => void }\n | undefined\n>(undefined);\n\n// ServiceIdProviderの中で使うこと\nexport const NotificationsProvider = ({\n token,\n children,\n}: PropsWithChildren<{ token: string }>) => {\n const serviceId = useServiceId();\n\n const { data: subscriptions, refetch: refetchSubscriptions } = useAuthFetch<\n Subscription[]\n >(token, m2mNotifications_v1.findMySubscriptions(), {});\n const checkPermission = useCallback(\n (notificationType: string) => {\n const subscription = subscriptions?.find((item) => {\n return (\n item.serviceId === serviceId &&\n item.notificationType === notificationType &&\n item.resourceSubscription.resourceSelectType === \"any\"\n );\n });\n\n return subscription?.status;\n },\n [serviceId, subscriptions]\n );\n\n const {\n data: notifications,\n error,\n refetch: refetchNotifications,\n } = useAuthFetch<{ data: Notification[] }>(\n token,\n m2mNotifications_v1.findNotificationsByServiceId({ id: serviceId }),\n { swrConfig: { refreshInterval: 1000 * 60 * 5 } }\n );\n if (error) {\n // エラーが出てもユーザーは特に困らないので、ユーザーに伝える必要はないが、監視は必要。\n console.error(error);\n }\n\n const permissionContextState = useMemo(() => {\n return {\n checkPermission,\n refetch: refetchSubscriptions,\n };\n }, [checkPermission, refetchSubscriptions]);\n\n const notificationsContextState = useMemo(() => {\n return {\n notifications: notifications?.data ?? [],\n isAllRead: notifications?.data.every((n) => n.status === \"read\") ?? true,\n refetch: refetchNotifications,\n };\n }, [refetchNotifications, notifications?.data]);\n\n return (\n <NotificationPermissionContext.Provider value={permissionContextState}>\n <NotificationsContext.Provider value={notificationsContextState}>\n {children}\n </NotificationsContext.Provider>\n </NotificationPermissionContext.Provider>\n );\n};\n\nexport const useNotifications = () => {\n const ctx = useContext(NotificationsContext);\n if (!ctx) {\n throw new Error(\"NotificatoinProvider is not found\");\n }\n\n return ctx;\n};\n\nexport const useNotificationPermission = () => {\n const ctx = useContext(NotificationPermissionContext);\n if (!ctx) {\n throw new Error(\"NotificatoinProvider is not found\");\n }\n\n return ctx;\n};\n"],"mappings":";;;;;;;AAAA;;AAMA;;AAEA;;AACA;;;;AAGA,MAAMA,6BAA6B,gBAAG,IAAAC,oBAAA,EAQpCC,SARoC,CAAtC;AAUA,MAAMC,oBAAoB,gBAAG,IAAAF,oBAAA,EAG3BC,SAH2B,CAA7B,C,CAKA;;AACO,MAAME,qBAAqB,GAAG,CAAC;EACpCC,KADoC;EAEpCC;AAFoC,CAAD,KAGO;EAC1C,MAAMC,SAAS,GAAG,IAAAC,+BAAA,GAAlB;EAEA,MAAM;IAAEC,IAAI,EAAEC,aAAR;IAAuBC,OAAO,EAAEC;EAAhC,IAAyD,IAAAC,0BAAA,EAE7DR,KAF6D,EAEtDS,qCAAA,CAAoBC,mBAApB,EAFsD,EAEX,EAFW,CAA/D;EAGA,MAAMC,eAAe,GAAG,IAAAC,kBAAA,EACrBC,gBAAD,IAA8B;IAC5B,MAAMC,YAAY,GAAGT,aAAa,EAAEU,IAAf,CAAqBC,IAAD,IAAU;MACjD,OACEA,IAAI,CAACd,SAAL,KAAmBA,SAAnB,IACAc,IAAI,CAACH,gBAAL,KAA0BA,gBAD1B,IAEAG,IAAI,CAACC,oBAAL,CAA0BC,kBAA1B,KAAiD,KAHnD;IAKD,CANoB,CAArB;IAQA,OAAOJ,YAAY,EAAEK,MAArB;EACD,CAXqB,EAYtB,CAACjB,SAAD,EAAYG,aAAZ,CAZsB,CAAxB;EAeA,MAAM;IACJD,IAAI,EAAEgB,aADF;IAEJC,KAFI;IAGJf,OAAO,EAAEgB;EAHL,IAIF,IAAAd,0BAAA,EACFR,KADE,EAEFS,qCAAA,CAAoBc,4BAApB,CAAiD;IAAEC,EAAE,EAAEtB;EAAN,CAAjD,CAFE,EAGF;IAAEuB,SAAS,EAAE;MAAEC,eAAe,EAAE,OAAO,EAAP,GAAY;IAA/B;EAAb,CAHE,CAJJ;;EASA,IAAIL,KAAJ,EAAW;IACT;IACAM,OAAO,CAACN,KAAR,CAAcA,KAAd;EACD;;EAED,MAAMO,sBAAsB,GAAG,IAAAC,cAAA,EAAQ,MAAM;IAC3C,OAAO;MACLlB,eADK;MAELL,OAAO,EAAEC;IAFJ,CAAP;EAID,CAL8B,EAK5B,CAACI,eAAD,EAAkBJ,oBAAlB,CAL4B,CAA/B;EAOA,MAAMuB,yBAAyB,GAAG,IAAAD,cAAA,EAAQ,MAAM;IAC9C,OAAO;MACLT,aAAa,EAAEA,aAAa,EAAEhB,IAAf,IAAuB,EADjC;MAEL2B,SAAS,EAAEX,aAAa,EAAEhB,IAAf,CAAoB4B,KAApB,CAA2BC,CAAD,IAAOA,CAAC,CAACd,MAAF,KAAa,MAA9C,KAAyD,IAF/D;MAGLb,OAAO,EAAEgB;IAHJ,CAAP;EAKD,CANiC,EAM/B,CAACA,oBAAD,EAAuBF,aAAa,EAAEhB,IAAtC,CAN+B,CAAlC;EAQA,oBACE,qBAAC,6BAAD,CAA+B,QAA/B;IAAwC,KAAK,EAAEwB,sBAA/C;IAAA,uBACE,qBAAC,oBAAD,CAAsB,QAAtB;MAA+B,KAAK,EAAEE,yBAAtC;MAAA,UACG7B;IADH;EADF,EADF;AAOD,CA5DM;;;;AA8DA,MAAMiC,gBAAgB,GAAG,MAAM;EACpC,MAAMC,GAAG,GAAG,IAAAC,iBAAA,EAAWtC,oBAAX,CAAZ;;EACA,IAAI,CAACqC,GAAL,EAAU;IACR,MAAM,IAAIE,KAAJ,CAAU,mCAAV,CAAN;EACD;;EAED,OAAOF,GAAP;AACD,CAPM;;;;AASA,MAAMG,yBAAyB,GAAG,MAAM;EAC7C,MAAMH,GAAG,GAAG,IAAAC,iBAAA,EAAWzC,6BAAX,CAAZ;;EACA,IAAI,CAACwC,GAAL,EAAU;IACR,MAAM,IAAIE,KAAJ,CAAU,mCAAV,CAAN;EACD;;EAED,OAAOF,GAAP;AACD,CAPM"}
@@ -50,7 +50,7 @@ const initStorageClient = options => {
50
50
  throw new Error("M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.");
51
51
  }
52
52
 
53
- const storage = new M2mStorageClient((options === null || options === void 0 ? void 0 : options.env) === "production" ? M2M_STORAGE_HUB_URL : M2M_STORAGE_HUB_URL_DEV);
53
+ const storage = new M2mStorageClient(options?.env === "production" ? M2M_STORAGE_HUB_URL : M2M_STORAGE_HUB_URL_DEV);
54
54
  context.storage = storage;
55
55
  };
56
56
 
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","names":["M2mStorageClient","StorageClient","context","getStorage","timeout","storage","Promise","resolve","reject","rejectTimer","window","setTimeout","Error","clearTimeout","timer","setInterval","clearInterval","onConnect","M2M_STORAGE_HUB_URL","M2M_STORAGE_HUB_URL_DEV","initStorageClient","options","env","m2mStorageClient","init","M2M_AUTH_TOKEN_KEY","getAuthTokenCache","localStorage","getItem","getAuthToken","autuToken","get","error","console","warn","setAuthToken","token","setItem","set","clearAuthToken","removeItem","del","m2mAuthTokenApi","getCache","clear"],"sources":["../../src/storage/client.ts"],"sourcesContent":["import { StorageClient } from \"./lib/client\";\n\nclass M2mStorageClient extends StorageClient {}\n\nexport type { M2mStorageClient };\n\nconst context: {\n storage?: M2mStorageClient;\n} = {};\n\n/**\n * Get the connected storage client.\n * @param timeout\n * @default 5000\n */\nconst getStorage = async (timeout = 5000) => {\n const storage = await new Promise<M2mStorageClient>((resolve, reject) => {\n const rejectTimer = window.setTimeout(function () {\n reject(\n new Error(\n \"Timeout: M2mStorageClient could not connect. Please call m2mStorageClient.init() before using m2mStorageClient.\"\n )\n );\n }, timeout);\n\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n resolve(storage);\n }\n\n const timer = window.setInterval(() => {\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n window.clearInterval(timer);\n resolve(storage);\n }\n }, 200);\n });\n\n await storage.onConnect();\n\n return storage;\n};\n\nconst M2M_STORAGE_HUB_URL = \"https://hub.m2msystems.cloud/\";\n\nconst M2M_STORAGE_HUB_URL_DEV =\n \"https://m2m-components-storage-hub-dev.netlify.app/\";\n\nconst initStorageClient = (options?: {\n env?: \"development\" | \"production\";\n}) => {\n if (context.storage) {\n throw new Error(\n \"M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.\"\n );\n }\n const storage = new M2mStorageClient(\n options?.env === \"production\"\n ? M2M_STORAGE_HUB_URL\n : M2M_STORAGE_HUB_URL_DEV\n );\n context.storage = storage;\n};\n\nexport const m2mStorageClient = {\n init: initStorageClient,\n getStorage: getStorage,\n};\n\nexport const M2M_AUTH_TOKEN_KEY = \"M2M_APP_AUTH_TOKEN\";\n\nconst getAuthTokenCache = () => {\n return window.localStorage.getItem(M2M_AUTH_TOKEN_KEY);\n};\n\nconst getAuthToken = async () => {\n try {\n const storage = await getStorage();\n const autuToken = (await storage.get(M2M_AUTH_TOKEN_KEY)) as string;\n return autuToken || getAuthTokenCache();\n } catch (error) {\n console.warn(error);\n return getAuthTokenCache();\n }\n};\n\nconst setAuthToken = async (token: string) => {\n window.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);\n try {\n const storage = await getStorage();\n await storage.set(M2M_AUTH_TOKEN_KEY, token);\n } catch (error) {\n console.warn(error);\n }\n};\n\nconst clearAuthToken = async () => {\n window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);\n try {\n const storage = await getStorage();\n await storage.del(M2M_AUTH_TOKEN_KEY);\n } catch (error) {\n console.warn(error);\n }\n};\n\nexport const m2mAuthTokenApi = {\n get: getAuthToken,\n getCache: getAuthTokenCache,\n set: setAuthToken,\n clear: clearAuthToken,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"client.js","names":["M2mStorageClient","StorageClient","context","getStorage","timeout","storage","Promise","resolve","reject","rejectTimer","window","setTimeout","Error","clearTimeout","timer","setInterval","clearInterval","onConnect","M2M_STORAGE_HUB_URL","M2M_STORAGE_HUB_URL_DEV","initStorageClient","options","env","m2mStorageClient","init","M2M_AUTH_TOKEN_KEY","getAuthTokenCache","localStorage","getItem","getAuthToken","autuToken","get","error","console","warn","setAuthToken","token","setItem","set","clearAuthToken","removeItem","del","m2mAuthTokenApi","getCache","clear"],"sources":["../../src/storage/client.ts"],"sourcesContent":["import { StorageClient } from \"./lib/client\";\n\nclass M2mStorageClient extends StorageClient {}\n\nexport type { M2mStorageClient };\n\nconst context: {\n storage?: M2mStorageClient;\n} = {};\n\n/**\n * Get the connected storage client.\n * @param timeout\n * @default 5000\n */\nconst getStorage = async (timeout = 5000) => {\n const storage = await new Promise<M2mStorageClient>((resolve, reject) => {\n const rejectTimer = window.setTimeout(function () {\n reject(\n new Error(\n \"Timeout: M2mStorageClient could not connect. Please call m2mStorageClient.init() before using m2mStorageClient.\"\n )\n );\n }, timeout);\n\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n resolve(storage);\n }\n\n const timer = window.setInterval(() => {\n const storage = context.storage;\n if (storage) {\n window.clearTimeout(rejectTimer);\n window.clearInterval(timer);\n resolve(storage);\n }\n }, 200);\n });\n\n await storage.onConnect();\n\n return storage;\n};\n\nconst M2M_STORAGE_HUB_URL = \"https://hub.m2msystems.cloud/\";\n\nconst M2M_STORAGE_HUB_URL_DEV =\n \"https://m2m-components-storage-hub-dev.netlify.app/\";\n\nconst initStorageClient = (options?: {\n env?: \"development\" | \"production\";\n}) => {\n if (context.storage) {\n throw new Error(\n \"M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.\"\n );\n }\n const storage = new M2mStorageClient(\n options?.env === \"production\"\n ? M2M_STORAGE_HUB_URL\n : M2M_STORAGE_HUB_URL_DEV\n );\n context.storage = storage;\n};\n\nexport const m2mStorageClient = {\n init: initStorageClient,\n getStorage: getStorage,\n};\n\nexport const M2M_AUTH_TOKEN_KEY = \"M2M_APP_AUTH_TOKEN\";\n\nconst getAuthTokenCache = () => {\n return window.localStorage.getItem(M2M_AUTH_TOKEN_KEY);\n};\n\nconst getAuthToken = async () => {\n try {\n const storage = await getStorage();\n const autuToken = (await storage.get(M2M_AUTH_TOKEN_KEY)) as string;\n return autuToken || getAuthTokenCache();\n } catch (error) {\n console.warn(error);\n return getAuthTokenCache();\n }\n};\n\nconst setAuthToken = async (token: string) => {\n window.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);\n try {\n const storage = await getStorage();\n await storage.set(M2M_AUTH_TOKEN_KEY, token);\n } catch (error) {\n console.warn(error);\n }\n};\n\nconst clearAuthToken = async () => {\n window.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);\n try {\n const storage = await getStorage();\n await storage.del(M2M_AUTH_TOKEN_KEY);\n } catch (error) {\n console.warn(error);\n }\n};\n\nexport const m2mAuthTokenApi = {\n get: getAuthToken,\n getCache: getAuthTokenCache,\n set: setAuthToken,\n clear: clearAuthToken,\n};\n"],"mappings":"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"}
@@ -53,7 +53,7 @@ const M2mAuthenticationProvider = ({
53
53
  const login = (0, _react.useCallback)(async input => {
54
54
  const {
55
55
  data,
56
- ...fetcherResult
56
+ error
57
57
  } = await (0, _matsuriHooks.fetcher)((0, _m2mUsers.login)(), {
58
58
  method: "POST",
59
59
  body: JSON.stringify(input)
@@ -67,21 +67,38 @@ const M2mAuthenticationProvider = ({
67
67
  setToken(authToken);
68
68
  }
69
69
 
70
- return fetcherResult;
70
+ return {
71
+ error,
72
+ token: data ? data.accessToken : undefined
73
+ };
71
74
  }, []);
72
75
  const logout = (0, _react.useCallback)(() => {
73
76
  _client.m2mAuthTokenApi.clear();
74
77
 
75
78
  window.location.reload();
76
79
  }, []);
80
+ const updateToken = (0, _react.useCallback)(async token => {
81
+ if (checkJwtExpiration(token)) {
82
+ return {
83
+ error: new Error("M2MAuthToken is expired")
84
+ };
85
+ }
86
+
87
+ await _client.m2mAuthTokenApi.set(token);
88
+ setToken(token);
89
+ return {
90
+ error: undefined
91
+ };
92
+ }, []);
77
93
  const state = (0, _react.useMemo)(() => {
78
94
  return {
79
95
  login,
80
96
  logout,
81
97
  token,
82
- authenticated
98
+ authenticated,
99
+ updateToken
83
100
  };
84
- }, [authenticated, login, logout, token]);
101
+ }, [authenticated, login, logout, token, updateToken]);
85
102
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(AuthenticationContext.Provider, {
86
103
  value: state,
87
104
  children: children
@@ -1 +1 @@
1
- {"version":3,"file":"useM2mAuth.js","names":["AuthenticationContext","createContext","undefined","checkJwtExpiration","jwt","splitted","split","length","payload","exp","JSON","parse","atob","Date","M2mAuthenticationProvider","children","token","setToken","useState","m2mAuthTokenApi","getCache","authenticated","useMemo","tryCheckAuth","useCallback","authToken","get","clear","set","useEffect","login","input","data","fetcherResult","fetcher","m2mUsers_v1_login","method","body","stringify","accessToken","logout","window","location","reload","state","useAuth","ctx","useContext","Error"],"sources":["../../src/storage/useM2mAuth.tsx"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { fetcher } from \"matsuri-hooks\";\nimport { m2mAuthTokenApi } from \"./client\";\nimport { login as m2mUsers_v1_login } from \"../endpoints/m2m-users.v1\";\n\ninterface LoginInput {\n email: string;\n password: string;\n}\n\ntype AuthenticationState = {\n token: string;\n authenticated: boolean;\n login: (input: LoginInput) => Promise<{ error?: Error }>;\n logout: () => void;\n};\n\nconst AuthenticationContext = createContext<AuthenticationState | undefined>(\n undefined\n);\n\nconst checkJwtExpiration = (jwt: string): boolean => {\n const splitted = jwt.split(\".\");\n if (splitted.length !== 3) return false;\n\n const [, payload] = splitted;\n const exp = JSON.parse(atob(payload))[\"exp\"];\n return new Date() < new Date(exp * 1000);\n};\n\nexport const M2mAuthenticationProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const [token, setToken] = useState(m2mAuthTokenApi.getCache() || \"\");\n\n const authenticated = useMemo(() => !!token, [token]);\n\n const tryCheckAuth = useCallback(async () => {\n const authToken = await m2mAuthTokenApi.get();\n if (!(authToken && checkJwtExpiration(authToken))) {\n m2mAuthTokenApi.clear();\n setToken(\"\");\n } else {\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n }, []);\n\n useEffect(() => {\n tryCheckAuth();\n }, [tryCheckAuth]);\n\n const login = useCallback(async (input: LoginInput) => {\n const { data, ...fetcherResult } = await fetcher<{\n accessToken: string;\n }>(m2mUsers_v1_login(), {\n method: \"POST\",\n body: JSON.stringify(input),\n });\n if (data) {\n const authToken = data.accessToken;\n\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n return fetcherResult;\n }, []);\n\n const logout = useCallback(() => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n }, []);\n\n const state = useMemo(() => {\n return {\n login,\n logout,\n token,\n authenticated,\n };\n }, [authenticated, login, logout, token]);\n return (\n <AuthenticationContext.Provider value={state}>\n {children}\n </AuthenticationContext.Provider>\n );\n};\n\nexport const useAuth = () => {\n const ctx = useContext(AuthenticationContext);\n if (!ctx) {\n throw new Error(\"AuthenticationProvider is not found\");\n }\n return ctx;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useM2mAuth.js","names":["AuthenticationContext","createContext","undefined","checkJwtExpiration","jwt","splitted","split","length","payload","exp","JSON","parse","atob","Date","M2mAuthenticationProvider","children","token","setToken","useState","m2mAuthTokenApi","getCache","authenticated","useMemo","tryCheckAuth","useCallback","authToken","get","clear","set","useEffect","login","input","data","error","fetcher","m2mUsers_v1_login","method","body","stringify","accessToken","logout","window","location","reload","updateToken","Error","state","useAuth","ctx","useContext"],"sources":["../../src/storage/useM2mAuth.tsx"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { fetcher } from \"matsuri-hooks\";\nimport { m2mAuthTokenApi } from \"./client\";\nimport { login as m2mUsers_v1_login } from \"../endpoints/m2m-users.v1\";\n\ninterface LoginInput {\n email: string;\n password: string;\n}\n\ntype AuthenticationState = {\n token: string;\n authenticated: boolean;\n login: (input: LoginInput) => Promise<{ token?: string; error?: Error }>;\n logout: () => void;\n updateToken: (token: string) => Promise<{ error?: Error }>;\n};\n\nconst AuthenticationContext = createContext<AuthenticationState | undefined>(\n undefined\n);\n\nconst checkJwtExpiration = (jwt: string): boolean => {\n const splitted = jwt.split(\".\");\n if (splitted.length !== 3) return false;\n\n const [, payload] = splitted;\n const exp = JSON.parse(atob(payload))[\"exp\"];\n return new Date() < new Date(exp * 1000);\n};\n\nexport const M2mAuthenticationProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const [token, setToken] = useState(m2mAuthTokenApi.getCache() || \"\");\n\n const authenticated = useMemo(() => !!token, [token]);\n\n const tryCheckAuth = useCallback(async () => {\n const authToken = await m2mAuthTokenApi.get();\n if (!(authToken && checkJwtExpiration(authToken))) {\n m2mAuthTokenApi.clear();\n setToken(\"\");\n } else {\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n }, []);\n\n useEffect(() => {\n tryCheckAuth();\n }, [tryCheckAuth]);\n\n const login = useCallback(async (input: LoginInput) => {\n const { data, error } = await fetcher<{\n accessToken: string;\n }>(m2mUsers_v1_login(), {\n method: \"POST\",\n body: JSON.stringify(input),\n });\n if (data) {\n const authToken = data.accessToken;\n\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n return {\n error,\n token: data ? data.accessToken : undefined,\n };\n }, []);\n\n const logout = useCallback(() => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n }, []);\n\n const updateToken = useCallback(async (token: string) => {\n if (checkJwtExpiration(token)) {\n return {\n error: new Error(\"M2MAuthToken is expired\"),\n };\n }\n await m2mAuthTokenApi.set(token);\n setToken(token);\n return { error: undefined };\n }, []);\n\n const state = useMemo(() => {\n return {\n login,\n logout,\n token,\n authenticated,\n updateToken,\n };\n }, [authenticated, login, logout, token, updateToken]);\n return (\n <AuthenticationContext.Provider value={state}>\n {children}\n </AuthenticationContext.Provider>\n );\n};\n\nexport const useAuth = () => {\n const ctx = useContext(AuthenticationContext);\n if (!ctx) {\n throw new Error(\"AuthenticationProvider is not found\");\n }\n return ctx;\n};\n"],"mappings":"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"}
package/domains.js CHANGED
@@ -7,11 +7,11 @@ export var domains = process.env.NODE_ENV === "production" ? {
7
7
  checkin: "https://manage.checkin.m2msystems.cloud",
8
8
  systems: "https://m2msystems.cloud/"
9
9
  } : {
10
- core: "https://master--m2m-core-manager-front.netlify.app",
10
+ core: "https://dev--m2m-core-manager-front.netlify.app",
11
11
  sumyca: "https://master--sumyca-manager-front.netlify.app",
12
12
  cleaning: "https://master--m2m-cleaning-manager-front.netlify.app",
13
13
  users: "https://master--manage-users.netlify.app",
14
- inspection: "https://master--m2m-inspection-manager-front.netlify.app",
14
+ inspection: "https://dev--m2m-inspection-manager-front.netlify.app",
15
15
  checkin: "https://manage.dev.checkin.m2msystems.cloud",
16
16
  systems: "https://dev.m2msystems.cloud"
17
17
  };
package/domains.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"domains.js","names":["domains","process","env","NODE_ENV","core","sumyca","cleaning","users","inspection","checkin","systems"],"sources":["src/domains.ts"],"sourcesContent":["export const domains =\n process.env.NODE_ENV === \"production\"\n ? {\n core: \"https://core.m2msystems.cloud\",\n sumyca: \"https://manage.sumyca.com\",\n cleaning: \"https://manager-cleaning.m2msystems.cloud\",\n users: \"https://manage-users.m2msystems.cloud\",\n inspection: \"https://inspection.m2msystems.cloud\",\n checkin: \"https://manage.checkin.m2msystems.cloud\",\n systems: \"https://m2msystems.cloud/\",\n }\n : {\n core: \"https://master--m2m-core-manager-front.netlify.app\",\n sumyca: \"https://master--sumyca-manager-front.netlify.app\",\n cleaning: \"https://master--m2m-cleaning-manager-front.netlify.app\",\n users: \"https://master--manage-users.netlify.app\",\n inspection: \"https://master--m2m-inspection-manager-front.netlify.app\",\n checkin: \"https://manage.dev.checkin.m2msystems.cloud\",\n systems: \"https://dev.m2msystems.cloud\",\n };\n"],"mappings":"AAAA,OAAO,IAAMA,OAAO,GAClBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GACI;EACEC,IAAI,EAAE,+BADR;EAEEC,MAAM,EAAE,2BAFV;EAGEC,QAAQ,EAAE,2CAHZ;EAIEC,KAAK,EAAE,uCAJT;EAKEC,UAAU,EAAE,qCALd;EAMEC,OAAO,EAAE,yCANX;EAOEC,OAAO,EAAE;AAPX,CADJ,GAUI;EACEN,IAAI,EAAE,oDADR;EAEEC,MAAM,EAAE,kDAFV;EAGEC,QAAQ,EAAE,wDAHZ;EAIEC,KAAK,EAAE,0CAJT;EAKEC,UAAU,EAAE,0DALd;EAMEC,OAAO,EAAE,6CANX;EAOEC,OAAO,EAAE;AAPX,CAXC"}
1
+ {"version":3,"file":"domains.js","names":["domains","process","env","NODE_ENV","core","sumyca","cleaning","users","inspection","checkin","systems"],"sources":["src/domains.ts"],"sourcesContent":["export const domains =\n process.env.NODE_ENV === \"production\"\n ? {\n core: \"https://core.m2msystems.cloud\",\n sumyca: \"https://manage.sumyca.com\",\n cleaning: \"https://manager-cleaning.m2msystems.cloud\",\n users: \"https://manage-users.m2msystems.cloud\",\n inspection: \"https://inspection.m2msystems.cloud\",\n checkin: \"https://manage.checkin.m2msystems.cloud\",\n systems: \"https://m2msystems.cloud/\",\n }\n : {\n core: \"https://dev--m2m-core-manager-front.netlify.app\",\n sumyca: \"https://master--sumyca-manager-front.netlify.app\",\n cleaning: \"https://master--m2m-cleaning-manager-front.netlify.app\",\n users: \"https://master--manage-users.netlify.app\",\n inspection: \"https://dev--m2m-inspection-manager-front.netlify.app\",\n checkin: \"https://manage.dev.checkin.m2msystems.cloud\",\n systems: \"https://dev.m2msystems.cloud\",\n };\n"],"mappings":"AAAA,OAAO,IAAMA,OAAO,GAClBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GACI;EACEC,IAAI,EAAE,+BADR;EAEEC,MAAM,EAAE,2BAFV;EAGEC,QAAQ,EAAE,2CAHZ;EAIEC,KAAK,EAAE,uCAJT;EAKEC,UAAU,EAAE,qCALd;EAMEC,OAAO,EAAE,yCANX;EAOEC,OAAO,EAAE;AAPX,CADJ,GAUI;EACEN,IAAI,EAAE,iDADR;EAEEC,MAAM,EAAE,kDAFV;EAGEC,QAAQ,EAAE,wDAHZ;EAIEC,KAAK,EAAE,0CAJT;EAKEC,UAAU,EAAE,uDALd;EAMEC,OAAO,EAAE,6CANX;EAOEC,OAAO,EAAE;AAPX,CAXC"}
package/jsx.d.ts CHANGED
@@ -1,25 +1,12 @@
1
- type AdditionalItems = (
2
- | {
3
- href: string;
4
- label: string;
5
- element?: never;
6
- }
7
- | {
8
- href?: never;
9
- label?: never;
10
- element: any;
11
- }
12
- )[];
13
-
14
1
  declare namespace JSX {
15
2
  interface IntrinsicElements {
16
3
  "m2m-apps-menu": {
17
4
  expanded?: boolean;
18
- additionalItems?: AdditionalItems;
5
+ "additional-items"?: string;
19
6
  };
20
7
  "m2m-user-menu": {
21
8
  expanded?: boolean;
22
- additionalItems?: AdditionalItems;
9
+ "additional-items"?: string;
23
10
  };
24
11
  }
25
12
  }
@@ -1,8 +1,6 @@
1
- import { LitMenuBaseElement, LitMenuBaseElementProps } from "./LitMenuBaseElement";
2
- export interface M2MAppsMenuProps extends LitMenuBaseElementProps {
3
- }
4
- export declare class M2MAppsMenu extends LitMenuBaseElement {
5
- items: LitMenuBaseElementProps["items"];
1
+ import { MenuBaseElement, MenuBaseElementProps } from "./MenuBaseElement";
2
+ export declare type M2MAppsMenuProps = MenuBaseElementProps;
3
+ export declare class M2MAppsMenu extends MenuBaseElement {
6
4
  render(): import("lit-html").TemplateResult<1>;
7
5
  }
8
6
  declare global {
package/m2m-apps-menu.js CHANGED
@@ -38,10 +38,9 @@ import { domains } from "./domains";
38
38
  import { html } from "lit";
39
39
  import { customElement } from "lit/decorators.js";
40
40
  import { ref } from "lit/directives/ref.js";
41
- import { property } from "lit/decorators.js";
42
- import { LitMenuBaseElement } from "./LitMenuBaseElement";
43
- export var M2MAppsMenu = _decorate([customElement("m2m-apps-menu")], function (_initialize, _LitMenuBaseElement) {
44
- class M2MAppsMenu extends _LitMenuBaseElement {
41
+ import { MenuBaseElement } from "./MenuBaseElement";
42
+ export var M2MAppsMenu = _decorate([customElement("m2m-apps-menu")], function (_initialize, _MenuBaseElement) {
43
+ class M2MAppsMenu extends _MenuBaseElement {
45
44
  constructor() {
46
45
  super(...arguments);
47
46
 
@@ -53,39 +52,17 @@ export var M2MAppsMenu = _decorate([customElement("m2m-apps-menu")], function (_
53
52
  return {
54
53
  F: M2MAppsMenu,
55
54
  d: [{
56
- kind: "field",
57
- decorators: [property({
58
- type: Object,
59
- converter: {
60
- fromAttribute(value) {
61
- console.log("from", value);
62
- },
63
-
64
- toAttribute(value) {
65
- console.log("to", value);
66
- }
67
-
68
- }
69
- })],
70
- key: "items",
71
-
72
- value() {
73
- return [];
74
- }
75
-
76
- }, {
77
55
  kind: "method",
78
56
  key: "render",
79
57
  value: function render() {
80
- var _this$items;
58
+ var _this$additinalItems;
81
59
 
82
- console.log(this);
83
- var additionalMenuItems = (_this$items = this.items) === null || _this$items === void 0 ? void 0 : _this$items.map(item => {
60
+ var additionalItems = (_this$additinalItems = this.additinalItems) === null || _this$additinalItems === void 0 ? void 0 : _this$additinalItems.map(item => {
84
61
  return html(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n <li>\n <a href=\"", "\">", "</a>\n </li>\n "])), item.href, item.label);
85
62
  });
86
- return html(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-apps-menu__navigation-drawer\"\n aria-expanded=", "\n @click=", "\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"\n />\n </svg>\n </button>\n <ul\n ", "\n id=\"m2m-apps-menu__navigation-drawer\"\n aria-hidden=", "\n class=\"navigation-drawer\"\n >\n <li><a href=\"", "\">m2m-core \u65BD\u8A2D\u7BA1\u7406</a></li>\n <li><a href=\"", "\">m2m-checkin \u30B2\u30B9\u30C8\u30C1\u30A7\u30C3\u30AF\u30A4\u30F3</a></li>\n <li><a href=\"", "\">m2m-systems Airbnb\u9023\u643A</a></li>\n <li><a href=\"", "\">m2m-cleaning \u6E05\u6383\u7BA1\u7406</a></li>\n <li>\n <a href=\"", "\">m2m-inspection \u5185\u898B\u30C1\u30A7\u30C3\u30AF</a>\n </li>\n <li><a href=\"", "\">m2m-users \u30A2\u30AB\u30A6\u30F3\u30C8\u7BA1\u7406</a></li>\n <li>\n <a href=\"", "\">Sumyca \u30DE\u30F3\u30B9\u30EA\u30FC\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0</a>\n </li>\n ", "\n </ul>\n </nav>"])), this.expanded, this.handleToggleDrawer, ref(this.listRef), !this.expanded, domains.core, domains.checkin, domains.systems, domains.cleaning, domains.inspection, domains.users, domains.sumyca, additionalMenuItems);
63
+ return html(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-apps-menu__navigation-drawer\"\n aria-expanded=", "\n @click=", "\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"\n />\n </svg>\n </button>\n <ul\n ", "\n id=\"m2m-apps-menu__navigation-drawer\"\n aria-hidden=", "\n class=\"navigation-drawer\"\n >\n <li><a href=\"", "\">m2m-core \u65BD\u8A2D\u7BA1\u7406</a></li>\n <li><a href=\"", "\">m2m-checkin \u30B2\u30B9\u30C8\u30C1\u30A7\u30C3\u30AF\u30A4\u30F3</a></li>\n <li><a href=\"", "\">m2m-systems Airbnb\u9023\u643A</a></li>\n <li><a href=\"", "\">m2m-cleaning \u6E05\u6383\u7BA1\u7406</a></li>\n <li>\n <a href=\"", "\">m2m-inspection \u5185\u898B\u30C1\u30A7\u30C3\u30AF</a>\n </li>\n <li><a href=\"", "\">m2m-users \u30A2\u30AB\u30A6\u30F3\u30C8\u7BA1\u7406</a></li>\n <li>\n <a href=\"", "\">Sumyca \u30DE\u30F3\u30B9\u30EA\u30FC\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0</a>\n </li>\n ", "\n </ul>\n </nav>"])), this.expanded, this.handleToggleDrawer, ref(this.listRef), !this.expanded, domains.core, domains.checkin, domains.systems, domains.cleaning, domains.inspection, domains.users, domains.sumyca, additionalItems);
87
64
  }
88
65
  }]
89
66
  };
90
- }, LitMenuBaseElement);
67
+ }, MenuBaseElement);
91
68
  //# sourceMappingURL=m2m-apps-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"m2m-apps-menu.js","names":["domains","html","customElement","ref","property","LitMenuBaseElement","M2MAppsMenu","type","Object","converter","fromAttribute","value","console","log","toAttribute","additionalMenuItems","items","map","item","href","label","expanded","handleToggleDrawer","listRef","core","checkin","systems","cleaning","inspection","users","sumyca"],"sources":["src/m2m-apps-menu.ts"],"sourcesContent":["import { domains } from \"./domains\";\nimport { html } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { property } from \"lit/decorators.js\";\nimport {\n LitMenuBaseElement,\n LitMenuBaseElementProps,\n} from \"./LitMenuBaseElement\";\n\nexport interface M2MAppsMenuProps extends LitMenuBaseElementProps {}\n\n@customElement(\"m2m-apps-menu\")\nexport class M2MAppsMenu extends LitMenuBaseElement {\n @property({\n type: Object,\n converter: {\n fromAttribute(value) {\n console.log(\"from\", value);\n },\n toAttribute(value) {\n console.log(\"to\", value);\n },\n },\n })\n items: LitMenuBaseElementProps[\"items\"] = [];\n\n render() {\n console.log(this);\n const additionalMenuItems = this.items?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-apps-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-apps-menu__navigation-drawer\"\n aria-hidden=${!this.expanded}\n class=\"navigation-drawer\"\n >\n <li><a href=\"${domains.core}\">m2m-core 施設管理</a></li>\n <li><a href=\"${domains.checkin}\">m2m-checkin ゲストチェックイン</a></li>\n <li><a href=\"${domains.systems}\">m2m-systems Airbnb連携</a></li>\n <li><a href=\"${domains.cleaning}\">m2m-cleaning 清掃管理</a></li>\n <li>\n <a href=\"${domains.inspection}\">m2m-inspection 内見チェック</a>\n </li>\n <li><a href=\"${domains.users}\">m2m-users アカウント管理</a></li>\n <li>\n <a href=\"${domains.sumyca}\">Sumyca マンスリープラットフォーム</a>\n </li>\n ${additionalMenuItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-apps-menu\": M2MAppsMenu;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,OAAT,QAAwB,WAAxB;AACA,SAASC,IAAT,QAAqB,KAArB;AACA,SAASC,aAAT,QAA8B,mBAA9B;AACA,SAASC,GAAT,QAAoB,uBAApB;AACA,SAASC,QAAT,QAAyB,mBAAzB;AACA,SACEC,kBADF,QAGO,sBAHP;AAQA,WAAaC,WAAb,cADCJ,aAAa,CAAC,eAAD,CACd;EADA,MACaI,WADb,6BACoD;IAAA;MAAA;;MAAA;IAAA;;EAAA;;EAApD;IAAA,GAAaA,WAAb;IAAA;MAAA;MAAA,aACGF,QAAQ,CAAC;QACRG,IAAI,EAAEC,MADE;QAERC,SAAS,EAAE;UACTC,aAAa,CAACC,KAAD,EAAQ;YACnBC,OAAO,CAACC,GAAR,CAAY,MAAZ,EAAoBF,KAApB;UACD,CAHQ;;UAITG,WAAW,CAACH,KAAD,EAAQ;YACjBC,OAAO,CAACC,GAAR,CAAY,IAAZ,EAAkBF,KAAlB;UACD;;QANQ;MAFH,CAAD,CADX;MAAA;;MAAA;QAAA,OAY4C,EAZ5C;MAAA;;IAAA;MAAA;MAAA;MAAA,OAcE,kBAAS;QAAA;;QACPC,OAAO,CAACC,GAAR,CAAY,IAAZ;QACA,IAAME,mBAAmB,kBAAG,KAAKC,KAAR,gDAAG,YAAYC,GAAZ,CAAiBC,IAAD,IAAU;UACpD,OAAOjB,IAAP,gJAEeiB,IAAI,CAACC,IAFpB,EAE6BD,IAAI,CAACE,KAFlC;QAKD,CAN2B,CAA5B;QAOA,OAAOnB,IAAP,2hDAKoB,KAAKoB,QALzB,EAMa,KAAKC,kBANlB,EAoBMnB,GAAG,CAAC,KAAKoB,OAAN,CApBT,EAsBkB,CAAC,KAAKF,QAtBxB,EAyBmBrB,OAAO,CAACwB,IAzB3B,EA0BmBxB,OAAO,CAACyB,OA1B3B,EA2BmBzB,OAAO,CAAC0B,OA3B3B,EA4BmB1B,OAAO,CAAC2B,QA5B3B,EA8BiB3B,OAAO,CAAC4B,UA9BzB,EAgCmB5B,OAAO,CAAC6B,KAhC3B,EAkCiB7B,OAAO,CAAC8B,MAlCzB,EAoCMf,mBApCN;MAuCD;IA9DH;EAAA;AAAA,GAAiCV,kBAAjC"}
1
+ {"version":3,"file":"m2m-apps-menu.js","names":["domains","html","customElement","ref","MenuBaseElement","M2MAppsMenu","additionalItems","additinalItems","map","item","href","label","expanded","handleToggleDrawer","listRef","core","checkin","systems","cleaning","inspection","users","sumyca"],"sources":["src/m2m-apps-menu.ts"],"sourcesContent":["import { domains } from \"./domains\";\nimport { html } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { MenuBaseElement, MenuBaseElementProps } from \"./MenuBaseElement\";\n\nexport type M2MAppsMenuProps = MenuBaseElementProps;\n\n@customElement(\"m2m-apps-menu\")\nexport class M2MAppsMenu extends MenuBaseElement {\n render() {\n const additionalItems = this.additinalItems?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-apps-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-apps-menu__navigation-drawer\"\n aria-hidden=${!this.expanded}\n class=\"navigation-drawer\"\n >\n <li><a href=\"${domains.core}\">m2m-core 施設管理</a></li>\n <li><a href=\"${domains.checkin}\">m2m-checkin ゲストチェックイン</a></li>\n <li><a href=\"${domains.systems}\">m2m-systems Airbnb連携</a></li>\n <li><a href=\"${domains.cleaning}\">m2m-cleaning 清掃管理</a></li>\n <li>\n <a href=\"${domains.inspection}\">m2m-inspection 内見チェック</a>\n </li>\n <li><a href=\"${domains.users}\">m2m-users アカウント管理</a></li>\n <li>\n <a href=\"${domains.sumyca}\">Sumyca マンスリープラットフォーム</a>\n </li>\n ${additionalItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-apps-menu\": M2MAppsMenu;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,OAAT,QAAwB,WAAxB;AACA,SAASC,IAAT,QAAqB,KAArB;AACA,SAASC,aAAT,QAA8B,mBAA9B;AACA,SAASC,GAAT,QAAoB,uBAApB;AACA,SAASC,eAAT,QAAsD,mBAAtD;AAKA,WAAaC,WAAb,cADCH,aAAa,CAAC,eAAD,CACd;EADA,MACaG,WADb,0BACiD;IAAA;MAAA;;MAAA;IAAA;;EAAA;;EAAjD;IAAA,GAAaA,WAAb;IAAA;MAAA;MAAA;MAAA,OACE,kBAAS;QAAA;;QACP,IAAMC,eAAe,2BAAG,KAAKC,cAAR,yDAAG,qBAAqBC,GAArB,CAA0BC,IAAD,IAAU;UACzD,OAAOR,IAAP,gJAEeQ,IAAI,CAACC,IAFpB,EAE6BD,IAAI,CAACE,KAFlC;QAKD,CANuB,CAAxB;QAOA,OAAOV,IAAP,2hDAKoB,KAAKW,QALzB,EAMa,KAAKC,kBANlB,EAoBMV,GAAG,CAAC,KAAKW,OAAN,CApBT,EAsBkB,CAAC,KAAKF,QAtBxB,EAyBmBZ,OAAO,CAACe,IAzB3B,EA0BmBf,OAAO,CAACgB,OA1B3B,EA2BmBhB,OAAO,CAACiB,OA3B3B,EA4BmBjB,OAAO,CAACkB,QA5B3B,EA8BiBlB,OAAO,CAACmB,UA9BzB,EAgCmBnB,OAAO,CAACoB,KAhC3B,EAkCiBpB,OAAO,CAACqB,MAlCzB,EAoCMf,eApCN;MAuCD;IAhDH;EAAA;AAAA,GAAiCF,eAAjC"}
@@ -1,8 +1,6 @@
1
- import { LitMenuBaseElement, LitMenuBaseElementProps } from "./LitMenuBaseElement";
2
- export interface M2MUserMenuProps extends LitMenuBaseElementProps {
3
- }
4
- export declare class M2MUserMenu extends LitMenuBaseElement {
5
- items: LitMenuBaseElementProps["items"];
1
+ import { MenuBaseElement, MenuBaseElementProps } from "./MenuBaseElement";
2
+ export declare type M2MUserMenuProps = MenuBaseElementProps;
3
+ export declare class M2MUserMenu extends MenuBaseElement {
6
4
  handleLogout: () => void;
7
5
  render(): import("lit-html").TemplateResult<1>;
8
6
  }
package/m2m-user-menu.js CHANGED
@@ -37,11 +37,11 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
37
37
  import { m2mAuthTokenApi } from "./storage/client";
38
38
  import { domains } from "./domains";
39
39
  import { html } from "lit";
40
- import { customElement, property } from "lit/decorators.js";
40
+ import { customElement } from "lit/decorators.js";
41
41
  import { ref } from "lit/directives/ref.js";
42
- import { LitMenuBaseElement } from "./LitMenuBaseElement";
43
- export var M2MUserMenu = _decorate([customElement("m2m-user-menu")], function (_initialize, _LitMenuBaseElement) {
44
- class M2MUserMenu extends _LitMenuBaseElement {
42
+ import { MenuBaseElement } from "./MenuBaseElement";
43
+ export var M2MUserMenu = _decorate([customElement("m2m-user-menu")], function (_initialize, _MenuBaseElement) {
44
+ class M2MUserMenu extends _MenuBaseElement {
45
45
  constructor() {
46
46
  super(...arguments);
47
47
 
@@ -53,17 +53,6 @@ export var M2MUserMenu = _decorate([customElement("m2m-user-menu")], function (_
53
53
  return {
54
54
  F: M2MUserMenu,
55
55
  d: [{
56
- kind: "field",
57
- decorators: [property({
58
- type: Object
59
- })],
60
- key: "items",
61
-
62
- value() {
63
- return [];
64
- }
65
-
66
- }, {
67
56
  kind: "field",
68
57
  key: "handleLogout",
69
58
 
@@ -78,14 +67,14 @@ export var M2MUserMenu = _decorate([customElement("m2m-user-menu")], function (_
78
67
  kind: "method",
79
68
  key: "render",
80
69
  value: function render() {
81
- var _this$items;
70
+ var _this$additinalItems;
82
71
 
83
- var additionalMenuItems = (_this$items = this.items) === null || _this$items === void 0 ? void 0 : _this$items.map(item => {
72
+ var additionalItems = (_this$additinalItems = this.additinalItems) === null || _this$additinalItems === void 0 ? void 0 : _this$additinalItems.map(item => {
84
73
  return html(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n <li>\n <a href=\"", "\">", "</a>\n </li>\n "])), item.href, item.label);
85
74
  });
86
- return html(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-user-menu__navigation-drawer\"\n aria-expanded=", "\n @click=", "\n >\n <svg viewBox=\"0 0 24 24\" width=\"32px\" height=\"32px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z\"\n />\n </svg>\n </button>\n <ul\n ", "\n id=\"m2m-user-menu__navigation-drawer\"\n aria-hidden=", "\n class=\"navigation-drawer\"\n >\n <li><a href=\"", "\">\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831</a></li>\n <li @click=", ">\n <button type=\"button\">\u30ED\u30B0\u30A2\u30A6\u30C8</button>\n </li>\n ", "\n </ul>\n </nav>"])), this.expanded, this.handleToggleDrawer, ref(this.listRef), !this.expanded, domains.users, this.handleLogout, additionalMenuItems);
75
+ return html(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-user-menu__navigation-drawer\"\n aria-expanded=", "\n @click=", "\n >\n <svg viewBox=\"0 0 24 24\" width=\"32px\" height=\"32px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z\"\n />\n </svg>\n </button>\n <ul\n ", "\n id=\"m2m-user-menu__navigation-drawer\"\n aria-hidden=", "\n class=\"navigation-drawer\"\n >\n <li><a href=\"", "\">\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831</a></li>\n <li @click=", ">\n <button type=\"button\">\u30ED\u30B0\u30A2\u30A6\u30C8</button>\n </li>\n ", "\n </ul>\n </nav>"])), this.expanded, this.handleToggleDrawer, ref(this.listRef), !this.expanded, domains.users, this.handleLogout, additionalItems);
87
76
  }
88
77
  }]
89
78
  };
90
- }, LitMenuBaseElement);
79
+ }, MenuBaseElement);
91
80
  //# sourceMappingURL=m2m-user-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"m2m-user-menu.js","names":["m2mAuthTokenApi","domains","html","customElement","property","ref","LitMenuBaseElement","M2MUserMenu","type","Object","clear","window","location","reload","additionalMenuItems","items","map","item","href","label","expanded","handleToggleDrawer","listRef","users","handleLogout"],"sources":["src/m2m-user-menu.ts"],"sourcesContent":["import { m2mAuthTokenApi } from \"./storage/client\";\nimport { domains } from \"./domains\";\nimport { html } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport {\n LitMenuBaseElement,\n LitMenuBaseElementProps,\n} from \"./LitMenuBaseElement\";\n\nexport interface M2MUserMenuProps extends LitMenuBaseElementProps {}\n\n@customElement(\"m2m-user-menu\")\nexport class M2MUserMenu extends LitMenuBaseElement {\n @property({ type: Object })\n items: LitMenuBaseElementProps[\"items\"] = [];\n\n handleLogout = () => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n };\n\n render() {\n const additionalMenuItems = this.items?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-user-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg viewBox=\"0 0 24 24\" width=\"32px\" height=\"32px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-user-menu__navigation-drawer\"\n aria-hidden=${!this.expanded}\n class=\"navigation-drawer\"\n >\n <li><a href=\"${domains.users}\">アカウント情報</a></li>\n <li @click=${this.handleLogout}>\n <button type=\"button\">ログアウト</button>\n </li>\n ${additionalMenuItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-user-menu\": M2MUserMenu;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,eAAT,QAAgC,kBAAhC;AACA,SAASC,OAAT,QAAwB,WAAxB;AACA,SAASC,IAAT,QAAqB,KAArB;AACA,SAASC,aAAT,EAAwBC,QAAxB,QAAwC,mBAAxC;AACA,SAASC,GAAT,QAAoB,uBAApB;AACA,SACEC,kBADF,QAGO,sBAHP;AAQA,WAAaC,WAAb,cADCJ,aAAa,CAAC,eAAD,CACd;EADA,MACaI,WADb,6BACoD;IAAA;MAAA;;MAAA;IAAA;;EAAA;;EAApD;IAAA,GAAaA,WAAb;IAAA;MAAA;MAAA,aACGH,QAAQ,CAAC;QAAEI,IAAI,EAAEC;MAAR,CAAD,CADX;MAAA;;MAAA;QAAA,OAE4C,EAF5C;MAAA;;IAAA;MAAA;MAAA;;MAAA;QAAA,OAIiB,MAAM;UACnBT,eAAe,CAACU,KAAhB;UACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;QACD,CAPH;MAAA;;IAAA;MAAA;MAAA;MAAA,OASE,kBAAS;QAAA;;QACP,IAAMC,mBAAmB,kBAAG,KAAKC,KAAR,gDAAG,YAAYC,GAAZ,CAAiBC,IAAD,IAAU;UACpD,OAAOf,IAAP,gJAEee,IAAI,CAACC,IAFpB,EAE6BD,IAAI,CAACE,KAFlC;QAKD,CAN2B,CAA5B;QAOA,OAAOjB,IAAP,yoCAKoB,KAAKkB,QALzB,EAMa,KAAKC,kBANlB,EAgBMhB,GAAG,CAAC,KAAKiB,OAAN,CAhBT,EAkBkB,CAAC,KAAKF,QAlBxB,EAqBmBnB,OAAO,CAACsB,KArB3B,EAsBiB,KAAKC,YAtBtB,EAyBMV,mBAzBN;MA4BD;IA7CH;EAAA;AAAA,GAAiCR,kBAAjC"}
1
+ {"version":3,"file":"m2m-user-menu.js","names":["m2mAuthTokenApi","domains","html","customElement","ref","MenuBaseElement","M2MUserMenu","clear","window","location","reload","additionalItems","additinalItems","map","item","href","label","expanded","handleToggleDrawer","listRef","users","handleLogout"],"sources":["src/m2m-user-menu.ts"],"sourcesContent":["import { m2mAuthTokenApi } from \"./storage/client\";\nimport { domains } from \"./domains\";\nimport { html } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { ref } from \"lit/directives/ref.js\";\nimport { MenuBaseElement, MenuBaseElementProps } from \"./MenuBaseElement\";\n\nexport type M2MUserMenuProps = MenuBaseElementProps;\n\n@customElement(\"m2m-user-menu\")\nexport class M2MUserMenu extends MenuBaseElement {\n handleLogout = () => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n };\n\n render() {\n const additionalItems = this.additinalItems?.map((item) => {\n return html`\n <li>\n <a href=\"${item.href}\">${item.label}</a>\n </li>\n `;\n });\n return html`<nav>\n <button\n type=\"button\"\n class=\"navigation-drawer-controll-button navigation-drawer-controll-button--icon\"\n aria-controls=\"m2m-user-menu__navigation-drawer\"\n aria-expanded=${this.expanded}\n @click=${this.handleToggleDrawer}\n >\n <svg viewBox=\"0 0 24 24\" width=\"32px\" height=\"32px\" fill=\"#000000\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z\"\n />\n </svg>\n </button>\n <ul\n ${ref(this.listRef)}\n id=\"m2m-user-menu__navigation-drawer\"\n aria-hidden=${!this.expanded}\n class=\"navigation-drawer\"\n >\n <li><a href=\"${domains.users}\">アカウント情報</a></li>\n <li @click=${this.handleLogout}>\n <button type=\"button\">ログアウト</button>\n </li>\n ${additionalItems}\n </ul>\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"m2m-user-menu\": M2MUserMenu;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,eAAT,QAAgC,kBAAhC;AACA,SAASC,OAAT,QAAwB,WAAxB;AACA,SAASC,IAAT,QAAqB,KAArB;AACA,SAASC,aAAT,QAA8B,mBAA9B;AACA,SAASC,GAAT,QAAoB,uBAApB;AACA,SAASC,eAAT,QAAsD,mBAAtD;AAKA,WAAaC,WAAb,cADCH,aAAa,CAAC,eAAD,CACd;EADA,MACaG,WADb,0BACiD;IAAA;MAAA;;MAAA;IAAA;;EAAA;;EAAjD;IAAA,GAAaA,WAAb;IAAA;MAAA;MAAA;;MAAA;QAAA,OACiB,MAAM;UACnBN,eAAe,CAACO,KAAhB;UACAC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;QACD,CAJH;MAAA;;IAAA;MAAA;MAAA;MAAA,OAME,kBAAS;QAAA;;QACP,IAAMC,eAAe,2BAAG,KAAKC,cAAR,yDAAG,qBAAqBC,GAArB,CAA0BC,IAAD,IAAU;UACzD,OAAOZ,IAAP,gJAEeY,IAAI,CAACC,IAFpB,EAE6BD,IAAI,CAACE,KAFlC;QAKD,CANuB,CAAxB;QAOA,OAAOd,IAAP,yoCAKoB,KAAKe,QALzB,EAMa,KAAKC,kBANlB,EAgBMd,GAAG,CAAC,KAAKe,OAAN,CAhBT,EAkBkB,CAAC,KAAKF,QAlBxB,EAqBmBhB,OAAO,CAACmB,KArB3B,EAsBiB,KAAKC,YAtBtB,EAyBMV,eAzBN;MA4BD;IA1CH;EAAA;AAAA,GAAiCN,eAAjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "m2m-components",
3
- "version": "2.0.10-alpha-b3108a7.0",
3
+ "version": "2.1.0",
4
4
  "main": "cjs/index.js",
5
5
  "module": "index.js",
6
6
  "typings": "index.d.ts",
@@ -41,7 +41,7 @@
41
41
  "files": [
42
42
  "/domains.{d.ts, d.ts.map,js,js.map}",
43
43
  "/index.{d.ts, d.ts.map,js,js.map}",
44
- "/LitMenuBaseElement.{d.ts, d.ts.map,js,js.map}",
44
+ "/MenuBaseElement.{d.ts, d.ts.map,js,js.map}",
45
45
  "/m2m-apps-menu.{d.ts, d.ts.map,js,js.map}",
46
46
  "/m2m-user-menu.{d.ts, d.ts.map,js,js.map}",
47
47
  "/notification/",
@@ -60,7 +60,7 @@
60
60
  "build-app:clients": "vite build website/clients/ --out-dir ../../build -c vite.config.clients.ts -m development",
61
61
  "build-app:hub": "vite build website/hub/ --out-dir ../../build",
62
62
  "build-app:hub:dev": "vite build website/hub/ --out-dir ../../build -m development",
63
- "clean": "rm -rf {m2m-apps-menu,m2m-user-menu,LitMenuBaseElement,domains,index}.{d.ts.map,d.ts,js.map,js} storage/ notification/ endpoints/ cjs/",
63
+ "clean": "rm -rf {m2m-apps-menu,m2m-user-menu,MenuBaseElement,domains,index}.{d.ts.map,d.ts,js.map,js} storage/ notification/ endpoints/ cjs/",
64
64
  "build": "concurrently yarn:build:*",
65
65
  "build:esm": "NODE_ENV=production BABEL_ENV=esm babel src --extensions .ts,.tsx -d ./ --source-maps",
66
66
  "build:cjs": "NODE_ENV=production BABEL_ENV=cjs babel src --extensions .ts,.tsx -d ./cjs --source-maps",
@@ -7,9 +7,13 @@ declare type AuthenticationState = {
7
7
  token: string;
8
8
  authenticated: boolean;
9
9
  login: (input: LoginInput) => Promise<{
10
+ token?: string;
10
11
  error?: Error;
11
12
  }>;
12
13
  logout: () => void;
14
+ updateToken: (token: string) => Promise<{
15
+ error?: Error;
16
+ }>;
13
17
  };
14
18
  export declare const M2mAuthenticationProvider: ({ children, }: {
15
19
  children: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"useM2mAuth.d.ts","sourceRoot":"","sources":["../src/storage/useM2mAuth.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,aAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAeF,eAAO,MAAM,yBAAyB;cAG1B,MAAM,SAAS;iBAuD1B,CAAC;AAEF,eAAO,MAAM,OAAO,2BAMnB,CAAC"}
1
+ {"version":3,"file":"useM2mAuth.d.ts","sourceRoot":"","sources":["../src/storage/useM2mAuth.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,aAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CAC5D,CAAC;AAeF,eAAO,MAAM,yBAAyB;cAG1B,MAAM,SAAS;iBAsE1B,CAAC;AAEF,eAAO,MAAM,OAAO,2BAMnB,CAAC"}
@@ -1,9 +1,3 @@
1
- var _excluded = ["data"];
2
-
3
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
-
5
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
6
-
7
1
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
8
2
 
9
3
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -45,14 +39,13 @@ export var M2mAuthenticationProvider = _ref => {
45
39
  }, [tryCheckAuth]);
46
40
  var login = useCallback( /*#__PURE__*/function () {
47
41
  var _ref3 = _asyncToGenerator(function* (input) {
48
- var _yield$fetcher = yield fetcher(m2mUsers_v1_login(), {
42
+ var {
43
+ data,
44
+ error
45
+ } = yield fetcher(m2mUsers_v1_login(), {
49
46
  method: "POST",
50
47
  body: JSON.stringify(input)
51
- }),
52
- {
53
- data
54
- } = _yield$fetcher,
55
- fetcherResult = _objectWithoutProperties(_yield$fetcher, _excluded);
48
+ });
56
49
 
57
50
  if (data) {
58
51
  var authToken = data.accessToken;
@@ -60,7 +53,10 @@ export var M2mAuthenticationProvider = _ref => {
60
53
  setToken(authToken);
61
54
  }
62
55
 
63
- return fetcherResult;
56
+ return {
57
+ error,
58
+ token: data ? data.accessToken : undefined
59
+ };
64
60
  });
65
61
 
66
62
  return function (_x) {
@@ -71,14 +67,34 @@ export var M2mAuthenticationProvider = _ref => {
71
67
  m2mAuthTokenApi.clear();
72
68
  window.location.reload();
73
69
  }, []);
70
+ var updateToken = useCallback( /*#__PURE__*/function () {
71
+ var _ref4 = _asyncToGenerator(function* (token) {
72
+ if (checkJwtExpiration(token)) {
73
+ return {
74
+ error: new Error("M2MAuthToken is expired")
75
+ };
76
+ }
77
+
78
+ yield m2mAuthTokenApi.set(token);
79
+ setToken(token);
80
+ return {
81
+ error: undefined
82
+ };
83
+ });
84
+
85
+ return function (_x2) {
86
+ return _ref4.apply(this, arguments);
87
+ };
88
+ }(), []);
74
89
  var state = useMemo(() => {
75
90
  return {
76
91
  login,
77
92
  logout,
78
93
  token,
79
- authenticated
94
+ authenticated,
95
+ updateToken
80
96
  };
81
- }, [authenticated, login, logout, token]);
97
+ }, [authenticated, login, logout, token, updateToken]);
82
98
  return /*#__PURE__*/_jsx(AuthenticationContext.Provider, {
83
99
  value: state,
84
100
  children: children
@@ -1 +1 @@
1
- {"version":3,"file":"useM2mAuth.js","names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","fetcher","m2mAuthTokenApi","login","m2mUsers_v1_login","AuthenticationContext","undefined","checkJwtExpiration","jwt","splitted","split","length","payload","exp","JSON","parse","atob","Date","M2mAuthenticationProvider","children","token","setToken","getCache","authenticated","tryCheckAuth","authToken","get","clear","set","input","method","body","stringify","data","fetcherResult","accessToken","logout","window","location","reload","state","useAuth","ctx","Error"],"sources":["../src/storage/useM2mAuth.tsx"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { fetcher } from \"matsuri-hooks\";\nimport { m2mAuthTokenApi } from \"./client\";\nimport { login as m2mUsers_v1_login } from \"../endpoints/m2m-users.v1\";\n\ninterface LoginInput {\n email: string;\n password: string;\n}\n\ntype AuthenticationState = {\n token: string;\n authenticated: boolean;\n login: (input: LoginInput) => Promise<{ error?: Error }>;\n logout: () => void;\n};\n\nconst AuthenticationContext = createContext<AuthenticationState | undefined>(\n undefined\n);\n\nconst checkJwtExpiration = (jwt: string): boolean => {\n const splitted = jwt.split(\".\");\n if (splitted.length !== 3) return false;\n\n const [, payload] = splitted;\n const exp = JSON.parse(atob(payload))[\"exp\"];\n return new Date() < new Date(exp * 1000);\n};\n\nexport const M2mAuthenticationProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const [token, setToken] = useState(m2mAuthTokenApi.getCache() || \"\");\n\n const authenticated = useMemo(() => !!token, [token]);\n\n const tryCheckAuth = useCallback(async () => {\n const authToken = await m2mAuthTokenApi.get();\n if (!(authToken && checkJwtExpiration(authToken))) {\n m2mAuthTokenApi.clear();\n setToken(\"\");\n } else {\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n }, []);\n\n useEffect(() => {\n tryCheckAuth();\n }, [tryCheckAuth]);\n\n const login = useCallback(async (input: LoginInput) => {\n const { data, ...fetcherResult } = await fetcher<{\n accessToken: string;\n }>(m2mUsers_v1_login(), {\n method: \"POST\",\n body: JSON.stringify(input),\n });\n if (data) {\n const authToken = data.accessToken;\n\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n return fetcherResult;\n }, []);\n\n const logout = useCallback(() => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n }, []);\n\n const state = useMemo(() => {\n return {\n login,\n logout,\n token,\n authenticated,\n };\n }, [authenticated, login, logout, token]);\n return (\n <AuthenticationContext.Provider value={state}>\n {children}\n </AuthenticationContext.Provider>\n );\n};\n\nexport const useAuth = () => {\n const ctx = useContext(AuthenticationContext);\n if (!ctx) {\n throw new Error(\"AuthenticationProvider is not found\");\n }\n return ctx;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useM2mAuth.js","names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","fetcher","m2mAuthTokenApi","login","m2mUsers_v1_login","AuthenticationContext","undefined","checkJwtExpiration","jwt","splitted","split","length","payload","exp","JSON","parse","atob","Date","M2mAuthenticationProvider","children","token","setToken","getCache","authenticated","tryCheckAuth","authToken","get","clear","set","input","data","error","method","body","stringify","accessToken","logout","window","location","reload","updateToken","Error","state","useAuth","ctx"],"sources":["../src/storage/useM2mAuth.tsx"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { fetcher } from \"matsuri-hooks\";\nimport { m2mAuthTokenApi } from \"./client\";\nimport { login as m2mUsers_v1_login } from \"../endpoints/m2m-users.v1\";\n\ninterface LoginInput {\n email: string;\n password: string;\n}\n\ntype AuthenticationState = {\n token: string;\n authenticated: boolean;\n login: (input: LoginInput) => Promise<{ token?: string; error?: Error }>;\n logout: () => void;\n updateToken: (token: string) => Promise<{ error?: Error }>;\n};\n\nconst AuthenticationContext = createContext<AuthenticationState | undefined>(\n undefined\n);\n\nconst checkJwtExpiration = (jwt: string): boolean => {\n const splitted = jwt.split(\".\");\n if (splitted.length !== 3) return false;\n\n const [, payload] = splitted;\n const exp = JSON.parse(atob(payload))[\"exp\"];\n return new Date() < new Date(exp * 1000);\n};\n\nexport const M2mAuthenticationProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const [token, setToken] = useState(m2mAuthTokenApi.getCache() || \"\");\n\n const authenticated = useMemo(() => !!token, [token]);\n\n const tryCheckAuth = useCallback(async () => {\n const authToken = await m2mAuthTokenApi.get();\n if (!(authToken && checkJwtExpiration(authToken))) {\n m2mAuthTokenApi.clear();\n setToken(\"\");\n } else {\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n }, []);\n\n useEffect(() => {\n tryCheckAuth();\n }, [tryCheckAuth]);\n\n const login = useCallback(async (input: LoginInput) => {\n const { data, error } = await fetcher<{\n accessToken: string;\n }>(m2mUsers_v1_login(), {\n method: \"POST\",\n body: JSON.stringify(input),\n });\n if (data) {\n const authToken = data.accessToken;\n\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n return {\n error,\n token: data ? data.accessToken : undefined,\n };\n }, []);\n\n const logout = useCallback(() => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n }, []);\n\n const updateToken = useCallback(async (token: string) => {\n if (checkJwtExpiration(token)) {\n return {\n error: new Error(\"M2MAuthToken is expired\"),\n };\n }\n await m2mAuthTokenApi.set(token);\n setToken(token);\n return { error: undefined };\n }, []);\n\n const state = useMemo(() => {\n return {\n login,\n logout,\n token,\n authenticated,\n updateToken,\n };\n }, [authenticated, login, logout, token, updateToken]);\n return (\n <AuthenticationContext.Provider value={state}>\n {children}\n </AuthenticationContext.Provider>\n );\n};\n\nexport const useAuth = () => {\n const ctx = useContext(AuthenticationContext);\n if (!ctx) {\n throw new Error(\"AuthenticationProvider is not found\");\n }\n return ctx;\n};\n"],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { LitElement } from "lit";
2
- export interface LitMenuBaseElementProps {
3
- expanded: boolean;
4
- items: {
5
- href: string;
6
- label: string;
7
- }[];
8
- }
9
- export declare class LitMenuBaseElement extends LitElement {
10
- static styles: import("lit").CSSResult;
11
- handleClickOutside: (event: MouseEvent | TouchEvent) => void;
12
- expanded?: LitMenuBaseElementProps["expanded"];
13
- handleToggleDrawer: (event: Event) => void;
14
- protected updated(): void;
15
- disconnectedCallback(): void;
16
- listRef: import("lit-html/directives/ref").Ref<Element>;
17
- }
18
- //# sourceMappingURL=LitMenuBaseElement.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LitMenuBaseElement.js","names":["css","LitElement","property","createRef","LitMenuBaseElement","event","listRef","value","contains","composedPath","expanded","preventDefault","stopPropagation","window","addEventListener","handleClickOutside","removeEventListener"],"sources":["src/LitMenuBaseElement.ts"],"sourcesContent":["import { css, LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { createRef } from \"lit/directives/ref.js\";\n\nexport interface LitMenuBaseElementProps {\n expanded: boolean;\n items: {\n href: string;\n label: string;\n }[];\n}\n\nexport class LitMenuBaseElement extends LitElement {\n static styles = css`\n nav {\n position: relative;\n display: flex;\n }\n .navigation-drawer-controll-button {\n background-color: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n appearance: none;\n\n height: 42px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.2s;\n }\n .navigation-drawer-controll-button.navigation-drawer-controll-button--icon {\n width: 42px;\n }\n .navigation-drawer-controll-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n }\n .navigation-drawer-controll-button:active {\n background-color: rgba(0, 0, 0, 0.075);\n }\n\n .navigation-drawer {\n position: absolute;\n top: 100%;\n right: 0px;\n min-width: 200px;\n white-space: nowrap;\n box-sizing: border-box;\n list-style: none;\n padding: 0px;\n margin: 0px;\n z-index: 1;\n box-shadow: 0px 1px 3px 0px rgb(0 0 0 / 20%),\n 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 2px 1px -1px rgb(0 0 0 / 12%);\n background-color: #fff;\n color: rgba(0, 0, 0, 0.87);\n border-radius: 5px;\n }\n .navigation-drawer-controll-button[aria-expanded=\"false\"]\n ~ .navigation-drawer {\n display: none;\n }\n\n .navigation-drawer li {\n border-bottom: 1px solid #eeeeee;\n }\n .navigation-drawer li:last-of-type {\n border-bottom: none;\n }\n .navigation-drawer li > a,\n .navigation-drawer li > button {\n width: 100%;\n text-align: left;\n background-color: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n appearance: none;\n cursor: pointer;\n font: inherit;\n display: block;\n box-sizing: border-box;\n padding: 0.6em 1em;\n color: inherit;\n text-decoration: none;\n transition: 0.2s;\n }\n .navigation-drawer li > a:hover,\n .navigation-drawer li > button:hover {\n background-color: #ededed;\n }\n .navigation-drawer li > a:active,\n .navigation-drawer li > button:active {\n background-color: #dadada;\n }\n `;\n\n handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (\n !this.listRef.value ||\n this.listRef.value.contains(event.composedPath()[0] as Node)\n ) {\n return;\n }\n this.expanded = false;\n };\n\n @property()\n expanded?: LitMenuBaseElementProps[\"expanded\"] = false;\n\n handleToggleDrawer = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n this.expanded = !this.expanded;\n if (this.expanded) {\n window.addEventListener(\"click\", this.handleClickOutside, false);\n }\n };\n\n protected updated() {\n if (this.expanded === false) {\n window.removeEventListener(\"click\", this.handleClickOutside, false);\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\"click\", this.handleClickOutside, false);\n }\n\n listRef = createRef();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,GAAT,EAAcC,UAAd,QAAgC,KAAhC;AACA,SAASC,QAAT,QAAyB,mBAAzB;AACA,SAASC,SAAT,QAA0B,uBAA1B;AAUA,WAAaC,kBAAb;EAAO,MAAMA,kBAAN,qBAA4C;IAAA;MAAA;;MAAA;IAAA;;EAAA;;EAAnD;IAAA,GAAaA,kBAAb;IAAA;MAAA;MAAA;MAAA;;MAAA;QAAA,OACkBJ,GADlB;MAAA;;IAAA;MAAA;MAAA;;MAAA;QAAA,OAqFwBK,KAAD,IAAoC;UACvD,IACE,CAAC,KAAKC,OAAL,CAAaC,KAAd,IACA,KAAKD,OAAL,CAAaC,KAAb,CAAmBC,QAAnB,CAA4BH,KAAK,CAACI,YAAN,GAAqB,CAArB,CAA5B,CAFF,EAGE;YACA;UACD;;UACD,KAAKC,QAAL,GAAgB,KAAhB;QACD,CA7FH;MAAA;;IAAA;MAAA;MAAA,aA+FGR,QAAQ,EA/FX;MAAA;;MAAA;QAAA,OAgGmD,KAhGnD;MAAA;;IAAA;MAAA;MAAA;;MAAA;QAAA,OAkGwBG,KAAD,IAAkB;UACrCA,KAAK,CAACM,cAAN;UACAN,KAAK,CAACO,eAAN;UAEA,KAAKF,QAAL,GAAgB,CAAC,KAAKA,QAAtB;;UACA,IAAI,KAAKA,QAAT,EAAmB;YACjBG,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiC,KAAKC,kBAAtC,EAA0D,KAA1D;UACD;QACF,CA1GH;MAAA;;IAAA;MAAA;MAAA;MAAA,OA4GE,mBAAoB;QAClB,IAAI,KAAKL,QAAL,KAAkB,KAAtB,EAA6B;UAC3BG,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoC,KAAKD,kBAAzC,EAA6D,KAA7D;QACD;MACF;IAhHH;MAAA;MAAA;MAAA,OAkHE,gCAA6B;QAC3B,qBAnHSX,kBAmHT;;QACAS,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoC,KAAKD,kBAAzC,EAA6D,KAA7D;MACD;IArHH;MAAA;MAAA;;MAAA;QAAA,OAuHYZ,SAAS,EAvHrB;MAAA;;IAAA;EAAA;AAAA,GAAwCF,UAAxC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LitMenuBaseElement.js","names":["LitMenuBaseElement","css","event","listRef","value","contains","composedPath","expanded","property","preventDefault","stopPropagation","window","addEventListener","handleClickOutside","removeEventListener","createRef","LitElement"],"sources":["../src/LitMenuBaseElement.ts"],"sourcesContent":["import { css, LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { createRef } from \"lit/directives/ref.js\";\n\nexport interface LitMenuBaseElementProps {\n expanded: boolean;\n items: {\n href: string;\n label: string;\n }[];\n}\n\nexport class LitMenuBaseElement extends LitElement {\n static styles = css`\n nav {\n position: relative;\n display: flex;\n }\n .navigation-drawer-controll-button {\n background-color: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n appearance: none;\n\n height: 42px;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.2s;\n }\n .navigation-drawer-controll-button.navigation-drawer-controll-button--icon {\n width: 42px;\n }\n .navigation-drawer-controll-button:hover {\n background-color: rgba(0, 0, 0, 0.05);\n }\n .navigation-drawer-controll-button:active {\n background-color: rgba(0, 0, 0, 0.075);\n }\n\n .navigation-drawer {\n position: absolute;\n top: 100%;\n right: 0px;\n min-width: 200px;\n white-space: nowrap;\n box-sizing: border-box;\n list-style: none;\n padding: 0px;\n margin: 0px;\n z-index: 1;\n box-shadow: 0px 1px 3px 0px rgb(0 0 0 / 20%),\n 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 2px 1px -1px rgb(0 0 0 / 12%);\n background-color: #fff;\n color: rgba(0, 0, 0, 0.87);\n border-radius: 5px;\n }\n .navigation-drawer-controll-button[aria-expanded=\"false\"]\n ~ .navigation-drawer {\n display: none;\n }\n\n .navigation-drawer li {\n border-bottom: 1px solid #eeeeee;\n }\n .navigation-drawer li:last-of-type {\n border-bottom: none;\n }\n .navigation-drawer li > a,\n .navigation-drawer li > button {\n width: 100%;\n text-align: left;\n background-color: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n appearance: none;\n cursor: pointer;\n font: inherit;\n display: block;\n box-sizing: border-box;\n padding: 0.6em 1em;\n color: inherit;\n text-decoration: none;\n transition: 0.2s;\n }\n .navigation-drawer li > a:hover,\n .navigation-drawer li > button:hover {\n background-color: #ededed;\n }\n .navigation-drawer li > a:active,\n .navigation-drawer li > button:active {\n background-color: #dadada;\n }\n `;\n\n handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (\n !this.listRef.value ||\n this.listRef.value.contains(event.composedPath()[0] as Node)\n ) {\n return;\n }\n this.expanded = false;\n };\n\n @property()\n expanded?: LitMenuBaseElementProps[\"expanded\"] = false;\n\n handleToggleDrawer = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n\n this.expanded = !this.expanded;\n if (this.expanded) {\n window.addEventListener(\"click\", this.handleClickOutside, false);\n }\n };\n\n protected updated() {\n if (this.expanded === false) {\n window.removeEventListener(\"click\", this.handleClickOutside, false);\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\"click\", this.handleClickOutside, false);\n }\n\n listRef = createRef();\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUaA,kB;EAAN,MAAMA,kBAAN,qBAA4C;IAAA;MAAA;;MAAA;IAAA;;EAAA;;;OAAtCA,kB;;;;;;;eACK,IAAAC,QAAA,CAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;eAEwBC,KAAD,IAAoC;UACvD,IACE,CAAC,KAAKC,OAAL,CAAaC,KAAd,IACA,KAAKD,OAAL,CAAaC,KAAb,CAAmBC,QAAnB,CAA4BH,KAAK,CAACI,YAAN,GAAqB,CAArB,CAA5B,CAFF,EAGE;YACA;UACD;;UACD,KAAKC,QAAL,GAAgB,KAAhB;QACD,C;;;;;mBAEA,IAAAC,oBAAA,G;;;;eACgD,K;;;;;;;;eAE3BN,KAAD,IAAkB;UACrCA,KAAK,CAACO,cAAN;UACAP,KAAK,CAACQ,eAAN;UAEA,KAAKH,QAAL,GAAgB,CAAC,KAAKA,QAAtB;;UACA,IAAI,KAAKA,QAAT,EAAmB;YACjBI,MAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiC,KAAKC,kBAAtC,EAA0D,KAA1D;UACD;QACF,C;;;;;;aAED,mBAAoB;QAClB,IAAI,KAAKN,QAAL,KAAkB,KAAtB,EAA6B;UAC3BI,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoC,KAAKD,kBAAzC,EAA6D,KAA7D;QACD;MACF;;;;aAED,gCAA6B;QAC3B,qBAnHSb,kBAmHT;;QACAW,MAAM,CAACG,mBAAP,CAA2B,OAA3B,EAAoC,KAAKD,kBAAzC,EAA6D,KAA7D;MACD;;;;;;eAES,IAAAE,cAAA,G;;;;;GAvH4BC,e"}