sf-i-events 1.0.27 → 1.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dev/index.html CHANGED
@@ -135,6 +135,31 @@
135
135
  border-right: solid 1px rgba(0, 0, 0, 0.1);
136
136
  font-weight: 900;
137
137
  }
138
+
139
+ sf-i-events::part(calendar-tab-button-selected) {
140
+ border-width: 0px;
141
+ border-radius: 5px;
142
+ color: #666;
143
+ background: #efefef;
144
+ box-shadow: inset 3px 3px 5px #bbbbbb,
145
+ inset -5px -5px 8px #ffffff;
146
+ border-top: solid 1px rgba(255, 255, 255, 0.3);
147
+ border-left: solid 1px rgba(255, 255, 255, 0.3);
148
+ border-bottom: solid 1px rgba(0, 0, 0, 0.1);
149
+ border-right: solid 1px rgba(0, 0, 0, 0.1);
150
+ font-weight: 900;
151
+ }
152
+
153
+ sf-i-events::part(calendar-tab-button-not-selected) {
154
+ border-width: 0px;
155
+ border-radius: 5px;
156
+ color: #aaa;
157
+ background: #efefef;
158
+ border-top: solid 1px rgba(255, 255, 255, 0.3);
159
+ border-left: solid 1px rgba(255, 255, 255, 0.3);
160
+ border-bottom: solid 1px rgba(0, 0, 0, 0.1);
161
+ border-right: solid 1px rgba(0, 0, 0, 0.1);
162
+ }
138
163
 
139
164
  sf-i-events::part(stream-month-selected) {
140
165
  border-width: 0px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sf-i-events",
3
3
  "private": false,
4
- "version": "1.0.27",
4
+ "version": "1.0.28",
5
5
  "description": "Superflows Navigation Component",
6
6
  "main": "sf-i-events.js",
7
7
  "module": "sf-i-events.js",
package/sf-i-events.d.ts CHANGED
@@ -38,7 +38,6 @@ export declare class SfIEvents extends LitElement {
38
38
  mode: string;
39
39
  flow: string;
40
40
  static styles: import("lit").CSSResult;
41
- _SfButtonStreamCancel: any;
42
41
  _SfRowError: any;
43
42
  _SfRowErrorMessage: any;
44
43
  _SfRowSuccess: any;
@@ -46,6 +45,7 @@ export declare class SfIEvents extends LitElement {
46
45
  _SfLoader: any;
47
46
  _SfCalendarContainer: any;
48
47
  _SfStreamContainer: any;
48
+ _SfTabContainer: any;
49
49
  getEventField: (field: string) => any;
50
50
  getParentFieldFromDepedencies: (field: string) => any;
51
51
  getEventTexts: (field: string, selectedId: Array<string>, row: any) => string;
@@ -62,6 +62,7 @@ export declare class SfIEvents extends LitElement {
62
62
  renderStreamEvents: (index: number, month: number, year: number) => string;
63
63
  renderStream: (index?: number) => void;
64
64
  renderCalendar: () => void;
65
+ renderTabs: (enableStream: boolean) => void;
65
66
  processEvent: (value: any) => void;
66
67
  fetchDetail: (value: any) => Promise<void>;
67
68
  fetchList: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sf-i-events.d.ts","sourceRoot":"","sources":["src/sf-i-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAa,gBAAgB,EAAC,MAAM,KAAK,CAAC;AAe5D;;;;;;;;;;GAUG;AACH,qBACa,SAAU,SAAQ,UAAU;IAGvC,SAAS,EAAG,MAAM,CAAC;IAGnB,WAAW,EAAG,MAAM,CAAC;IAGrB,aAAa,EAAG,MAAM,CAAC;IAGvB,eAAe,EAAG,MAAM,CAAC;IAGzB,WAAW,EAAG,MAAM,CAAC;IAGrB,aAAa,EAAG,MAAM,CAAC;IAGvB,oBAAoB,EAAG,MAAM,CAAC;IAG9B,eAAe,EAAG,MAAM,CAAC;IAGzB,eAAe,EAAG,MAAM,CAAC;IAGzB,iBAAiB,EAAG,MAAM,CAAC;IAG3B,QAAQ,EAAE,IAAI,EAAG,CAAM;IAGvB,UAAU,EAAE,MAAM,EAAG,CAA+H;IAGpJ,MAAM,EAAE,GAAG,CAAQ;IAGnB,WAAW,EAAE,GAAG,CAAQ;IAExB,cAAc,YAEb;IAGD,sBAAsB,EAAE,GAAG,CAAQ;IAEnC,yBAAyB,YAExB;IAED,cAAc,YAOb;IAED,gBAAgB,YAEf;IAGD,IAAI,EAAG,MAAM,CAAC;IAGd,IAAI,EAAE,MAAM,CAAM;IAElB,OAAgB,MAAM,0BA+TpB;IAGF,qBAAqB,EAAE,GAAG,CAAC;IAG3B,WAAW,EAAE,GAAG,CAAC;IAGjB,kBAAkB,EAAE,GAAG,CAAC;IAGxB,aAAa,EAAE,GAAG,CAAC;IAGnB,oBAAoB,EAAE,GAAG,CAAC;IAG1B,SAAS,EAAE,GAAG,CAAC;IAGf,oBAAoB,EAAE,GAAG,CAAC;IAG1B,kBAAkB,EAAE,GAAG,CAAC;IAExB,aAAa,UAAW,MAAM,SAU7B;IAED,6BAA6B,UAAW,MAAM,SAY7C;IAED,aAAa,UAAW,MAAM,cAAc,MAAM,MAAM,CAAC,OAAO,GAAG,YAsDlE;IAED,YAAY,CAAC,KAAK,EAAE,OAAO;IAc3B,UAAU,SAAgB,GAAG,OAAO,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,sBAQjF;IAED,aAAa,aAKZ;IAED,QAAQ,QAAS,MAAM,UAKtB;IAED,UAAU,QAAS,MAAM,UAKxB;IAED,qBAAqB,UAAW,MAAM,QAAQ,MAAM,YAGnD;IAED,iBAAiB,UAAW,MAAM,QAAQ,MAAM,YAG/C;IAED,SAAS,UAAW,MAAM,QAAQ,MAAM,YAMvC;IAED,WAAW,UAAW,MAAM,QAAQ,MAAM,YAqDzC;IAED,cAAc,eAsCb;IAED,kBAAkB,UAAW,MAAM,SAAS,MAAM,QAAQ,MAAM,YAoD/D;IAED,YAAY,WAAW,MAAM,UAoD5B;IAED,cAAc,aAqCb;IAED,YAAY,UAAW,GAAG,UAoEzB;IAED,WAAW,UAAiB,GAAG,mBAqB9B;IAED,SAAS,sBAmCR;IAED,YAAY,sBAsBX;IAED,UAAU,aAKT;IAED,aAAa,aAMZ;IAED,QAAQ,sBAgBP;;cAMkB,YAAY,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IAMnG,iBAAiB;IAIjB,MAAM;CAsChB;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,SAAS,CAAC;KAC1B;CACF"}
1
+ {"version":3,"file":"sf-i-events.d.ts","sourceRoot":"","sources":["src/sf-i-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAa,gBAAgB,EAAC,MAAM,KAAK,CAAC;AAe5D;;;;;;;;;;GAUG;AACH,qBACa,SAAU,SAAQ,UAAU;IAGvC,SAAS,EAAG,MAAM,CAAC;IAGnB,WAAW,EAAG,MAAM,CAAC;IAGrB,aAAa,EAAG,MAAM,CAAC;IAGvB,eAAe,EAAG,MAAM,CAAC;IAGzB,WAAW,EAAG,MAAM,CAAC;IAGrB,aAAa,EAAG,MAAM,CAAC;IAGvB,oBAAoB,EAAG,MAAM,CAAC;IAG9B,eAAe,EAAG,MAAM,CAAC;IAGzB,eAAe,EAAG,MAAM,CAAC;IAGzB,iBAAiB,EAAG,MAAM,CAAC;IAG3B,QAAQ,EAAE,IAAI,EAAG,CAAM;IAGvB,UAAU,EAAE,MAAM,EAAG,CAA+H;IAGpJ,MAAM,EAAE,GAAG,CAAQ;IAGnB,WAAW,EAAE,GAAG,CAAQ;IAExB,cAAc,YAEb;IAGD,sBAAsB,EAAE,GAAG,CAAQ;IAEnC,yBAAyB,YAExB;IAED,cAAc,YAOb;IAED,gBAAgB,YAEf;IAGD,IAAI,EAAG,MAAM,CAAC;IAGd,IAAI,EAAE,MAAM,CAAM;IAElB,OAAgB,MAAM,0BA4UpB;IAGF,WAAW,EAAE,GAAG,CAAC;IAGjB,kBAAkB,EAAE,GAAG,CAAC;IAGxB,aAAa,EAAE,GAAG,CAAC;IAGnB,oBAAoB,EAAE,GAAG,CAAC;IAG1B,SAAS,EAAE,GAAG,CAAC;IAGf,oBAAoB,EAAE,GAAG,CAAC;IAG1B,kBAAkB,EAAE,GAAG,CAAC;IAGxB,eAAe,EAAE,GAAG,CAAC;IAErB,aAAa,UAAW,MAAM,SAU7B;IAED,6BAA6B,UAAW,MAAM,SAY7C;IAED,aAAa,UAAW,MAAM,cAAc,MAAM,MAAM,CAAC,OAAO,GAAG,YAsDlE;IAED,YAAY,CAAC,KAAK,EAAE,OAAO;IAY3B,UAAU,SAAgB,GAAG,OAAO,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,sBAQjF;IAED,aAAa,aAKZ;IAED,QAAQ,QAAS,MAAM,UAKtB;IAED,UAAU,QAAS,MAAM,UAKxB;IAED,qBAAqB,UAAW,MAAM,QAAQ,MAAM,YAGnD;IAED,iBAAiB,UAAW,MAAM,QAAQ,MAAM,YAG/C;IAED,SAAS,UAAW,MAAM,QAAQ,MAAM,YAMvC;IAED,WAAW,UAAW,MAAM,QAAQ,MAAM,YAqDzC;IAED,cAAc,eAsCb;IAED,kBAAkB,UAAW,MAAM,SAAS,MAAM,QAAQ,MAAM,YAoD/D;IAED,YAAY,WAAW,MAAM,UAoD5B;IAED,cAAc,aAsCb;IAED,UAAU,iBAAkB,OAAO,UAmBlC;IAED,YAAY,UAAW,GAAG,UAoEzB;IAED,WAAW,UAAiB,GAAG,mBAqB9B;IAED,SAAS,sBAmCR;IAED,YAAY,sBAsBX;IAED,UAAU,aAKT;IAED,aAAa,aAGZ;IAED,QAAQ,sBAiBP;;cAMkB,YAAY,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IAMnG,iBAAiB;IAIjB,MAAM;CAsChB;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,SAAS,CAAC;KAC1B;CACF"}
package/sf-i-events.js CHANGED
@@ -320,9 +320,25 @@ let SfIEvents = class SfIEvents extends LitElement {
320
320
  const id = ev.target.id.split("-")[2];
321
321
  this.enableStream(true);
322
322
  this.renderStream(parseInt(id));
323
+ this.renderTabs(true);
323
324
  });
324
325
  }
325
326
  };
327
+ this.renderTabs = (enableStream) => {
328
+ var _a, _b;
329
+ var html = '';
330
+ html += '<button class="tab-button" id="calendar-tab-year" part="' + (enableStream ? 'calendar-tab-button-not-selected' : 'calendar-tab-button-selected') + '">Year</button>';
331
+ html += '<button class="tab-button" id="calendar-tab-month" part="' + (enableStream ? 'calendar-tab-button-selected' : 'calendar-tab-button-not-selected') + '">Month</button>';
332
+ this._SfTabContainer.innerHTML = html;
333
+ (_a = this._SfTabContainer.querySelector('#calendar-tab-year')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
334
+ this.enableStream(false);
335
+ this.renderTabs(false);
336
+ });
337
+ (_b = this._SfTabContainer.querySelector('#calendar-tab-month')) === null || _b === void 0 ? void 0 : _b.addEventListener('click', () => {
338
+ this.enableStream(true);
339
+ this.renderTabs(true);
340
+ });
341
+ };
326
342
  this.processEvent = (value) => {
327
343
  console.log('processing due date', value.duedate.replace(/['"]+/g, ''));
328
344
  const duedateArr = value.duedate.replace(/['"]+/g, '').split(",");
@@ -431,9 +447,6 @@ let SfIEvents = class SfIEvents extends LitElement {
431
447
  this.calendarStartMM = ("0" + this.calendarStartMM).slice(-2);
432
448
  };
433
449
  this.initListeners = () => {
434
- this._SfButtonStreamCancel.addEventListener('click', () => {
435
- this.enableStream(false);
436
- });
437
450
  };
438
451
  this.loadMode = async () => {
439
452
  this.enableStream(false);
@@ -443,6 +456,7 @@ let SfIEvents = class SfIEvents extends LitElement {
443
456
  console.log('calendar init done');
444
457
  await this.fetchList();
445
458
  if (this.events != null) {
459
+ this.renderTabs(false);
446
460
  this.renderCalendar();
447
461
  this.renderStream();
448
462
  }
@@ -450,12 +464,10 @@ let SfIEvents = class SfIEvents extends LitElement {
450
464
  }
451
465
  enableStream(value) {
452
466
  if (value) {
453
- this._SfButtonStreamCancel.style.display = "inline";
454
467
  this._SfCalendarContainer.style.display = 'none';
455
468
  this._SfStreamContainer.style.display = 'flex';
456
469
  }
457
470
  else {
458
- this._SfButtonStreamCancel.style.display = "none";
459
471
  this._SfCalendarContainer.style.display = 'flex';
460
472
  this._SfStreamContainer.style.display = 'none';
461
473
  }
@@ -475,8 +487,8 @@ let SfIEvents = class SfIEvents extends LitElement {
475
487
  <div class="d-flex justify-center">
476
488
  <div class="loader-element"></div>
477
489
  </div>
478
- <div class="d-flex">
479
- <button id="button-stream-cancel" part="button-icon" class="material-icons">keyboard_backspace</button>
490
+ <div class="d-flex justify-center" id="tab-container">
491
+
480
492
  </div>
481
493
  <div class="d-flex justify-center">
482
494
  <div class="d-flex flex-grow flex-wrap justify-center align-stretch" id="calendar-container">
@@ -546,6 +558,10 @@ SfIEvents.styles = css `
546
558
  width: 90%;
547
559
  }
548
560
 
561
+ #stream-container {
562
+ padding: 1%;
563
+ }
564
+
549
565
  .stream-event-list {
550
566
  margin-left: 10px;
551
567
  padding: 10px;
@@ -624,6 +640,15 @@ SfIEvents.styles = css `
624
640
  text-transform: capitalize;
625
641
  }
626
642
 
643
+ .tab-button {
644
+ padding: 10px;
645
+ padding-left: 15px;
646
+ padding-right: 15px;
647
+ font-size: 105%;
648
+ margin-left: 5px;
649
+ margin-right: 5px;
650
+ }
651
+
627
652
  .td-body {
628
653
  padding: 5px;
629
654
  }
@@ -874,9 +899,6 @@ __decorate([
874
899
  __decorate([
875
900
  property()
876
901
  ], SfIEvents.prototype, "flow", void 0);
877
- __decorate([
878
- query('#button-stream-cancel')
879
- ], SfIEvents.prototype, "_SfButtonStreamCancel", void 0);
880
902
  __decorate([
881
903
  query('.div-row-error')
882
904
  ], SfIEvents.prototype, "_SfRowError", void 0);
@@ -898,6 +920,9 @@ __decorate([
898
920
  __decorate([
899
921
  query('#stream-container')
900
922
  ], SfIEvents.prototype, "_SfStreamContainer", void 0);
923
+ __decorate([
924
+ query('#tab-container')
925
+ ], SfIEvents.prototype, "_SfTabContainer", void 0);
901
926
  SfIEvents = __decorate([
902
927
  customElement('sf-i-events')
903
928
  ], SfIEvents);
@@ -1 +1 @@
1
- {"version":3,"file":"sf-i-events.js","sourceRoot":"","sources":["src/sf-i-events.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2022 Superflow.dev\n * SPDX-License-Identifier: MIT\n */\n\nimport {LitElement, html, css, PropertyValueMap} from 'lit';\n// import {customElement, query, queryAssignedElements, property} from 'lit/decorators.js';\nimport {customElement, query, property} from 'lit/decorators.js';\nimport Util from './util';\n// import {LitElement, html, css} from 'lit';\n// import {customElement} from 'lit/decorators.js';\n\n\n/*\n\nModes: View, Add, Edit, Delete, Admin\nDB: partitionKey, rangeKey, values\n\n*/\n\n/**\n * SfIEvents element.\n * @fires renderComplete - When the list is populated\n * @fires valueChanged - When the value is changed\n * @property apiId - backend api id\n * @property label - input label\n * @property name - name of the input\n * @property mode - mode of operation\n * @property selectedId - id to preselect\n * @property selectedValue - callback function\n */\n@customElement('sf-i-events')\nexport class SfIEvents extends LitElement {\n \n @property()\n apiIdList!: string;\n\n @property()\n apiIdDetail!: string;\n\n @property()\n apiMethodList!: string;\n\n @property()\n apiMethodDetail!: string;\n\n @property()\n apiBodyList!: string;\n\n @property()\n apiBodyDetail!: string;\n\n @property()\n apiResponseFieldList!: string;\n\n @property()\n calendarStartDD!: string;\n\n @property()\n calendarStartMM!: string;\n\n @property()\n calendarStartYYYY!: string;\n\n @property()\n calendar: Date [] = [];\n\n @property()\n monthNames: string [] = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\n @property()\n events: any = null;\n\n @property()\n eventFields: any = null;\n\n getEventFields = () => {\n return JSON.parse(this.eventFields);\n }\n\n @property()\n eventFieldDependencies: any = null;\n\n getEventFieldDependencies = () => {\n return JSON.parse(this.eventFieldDependencies);\n }\n\n getApiBodyList = () => {\n console.log('calendar api body list', this.apiBodyList);\n try {\n return JSON.parse(this.apiBodyList);\n } catch (e: any) {\n return {};\n }\n }\n\n getApiBodyDetail = () => {\n return JSON.parse(this.apiBodyDetail);\n }\n\n @property()\n mode!: string;\n\n @property()\n flow: string = \"\";\n\n static override styles = css`\n\n \n .SfIEventsC {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n justify-content: space-between;\n }\n\n .flex-grow {\n flex-grow: 1;\n }\n\n .flex-wrap {\n flex-wrap: wrap;\n }\n\n .left-sticky {\n left: 0px;\n position: sticky;\n }\n\n .link {\n text-decoration: underline;\n cursor: pointer;\n }\n\n .gone {\n display: none\n }\n\n .loader-element {\n position: fixed;\n right: 10px;\n top: 10px;\n margin-left: 5px;\n }\n\n #calendar-container {\n width: 90%;\n }\n\n .stream-event-list {\n margin-left: 10px;\n padding: 10px;\n }\n\n .stream-events-container {\n overflow-x: auto;\n width: 200px;\n }\n .stream-event-selected {\n padding-left: 20px;\n padding-right: 10px;\n padding-top: 5px;\n padding-bottom: 5px;\n }\n \n .stream-event-not-selected {\n padding-left: 20px;\n padding-right: 10px;\n padding-top: 5px;\n padding-bottom: 5px;\n color: #aaa;\n }\n\n .stream-month-selected {\n padding: 10px;\n text-align: center;\n }\n\n .stream-month-not-selected {\n padding: 10px;\n text-align: center;\n }\n\n .calendar-left-col {\n width: 30%;\n }\n\n .calendar-right-data {\n width: 70%;\n }\n\n .day-item {\n width: 14%;\n margin-bottom: 5px;\n text-align: center;\n }\n\n .date-item {\n font-size: 80%;\n color: #333;\n }\n\n .date-item-before {\n font-size: 80%;\n color: #999;\n }\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 3px;\n }\n\n .title-item {\n padding: 5px;\n margin-bottom: 20px;\n }\n\n .calendar-item {\n width: 90%;\n margin-bottom: 20px;\n }\n\n .td-head {\n text-transform: capitalize;\n }\n\n .td-body {\n padding: 5px;\n }\n\n .td-dark {\n background-color: #e9e9e9;\n }\n\n .td-highlight {\n background-color: black;\n color: white;\n }\n\n .td-light {\n background-color: #f6f6f6;\n }\n\n td {\n white-space: nowrap;\n }\n\n .fw-100 {\n font-weight: 100;\n }\n\n .fw-200 {\n font-weight: 200;\n }\n\n .fw-300 {\n font-weight: 300;\n }\n\n .fw-600 {\n font-weight: 600;\n }\n\n .align-start {\n align-items: flex-start;\n }\n\n .align-stretch {\n align-items: stretch;\n }\n\n .align-baseline {\n align-items: baseline;\n }\n\n .align-end {\n align-items: flex-end;\n }\n\n .align-center {\n align-items: center;\n }\n \n .lds-dual-ring {\n display: inline-block;\n width: 50px;\n height: 50px;\n }\n .lds-dual-ring:after {\n content: \" \";\n display: block;\n width: 50px;\n height: 50px;\n margin: 0px;\n border-radius: 50%;\n border: 2px solid #fff;\n border-color: #888 #ddd #888 #ddd;\n background-color: white;\n animation: lds-dual-ring 0.8s linear infinite;\n }\n\n .lds-dual-ring-lg {\n display: inline-block;\n width: 30px;\n height: 30px;\n }\n .lds-dual-ring-lg:after {\n content: \" \";\n display: block;\n width: 30px;\n height: 30px;\n margin: 0px;\n border-radius: 50%;\n border: 3px solid #fff;\n border-color: #888 #ddd #888 #ddd;\n animation: lds-dual-ring 0.8s linear infinite;\n }\n\n .div-row-error {\n display: flex;\n justify-content: center;\n position: fixed;\n position: fixed;\n top: 0px;\n right: 0px;\n margin-top: 20px;\n margin-right: 20px;\n display: none;\n align-items:center;\n background-color: white;\n border: dashed 1px red;\n padding: 20px;\n }\n\n .div-row-error-message {\n color: red;\n padding: 5px;\n background-color: white;\n text-align: center;\n }\n\n .div-row-success {\n display: flex;\n justify-content: center;\n position: fixed;\n top: 0px;\n right: 0px;\n margin-top: 20px;\n margin-right: 20px;\n display: none;\n align-items:center;\n background-color: white;\n border: dashed 1px green;\n padding: 20px;\n }\n\n .div-row-success-message {\n color: green;\n padding: 5px;\n background-color: white;\n text-align: center;\n }\n\n .d-flex {\n display: flex;\n }\n\n .flex-col {\n flex-direction: column;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .justify-end {\n justify-content: flex-end;\n }\n\n @keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n } \n\n .hide {\n display: none;\n }\n\n .lb {\n width: 5%\n }\n .rb {\n width: 5%\n }\n\n @media (orientation: landscape) {\n\n .lb {\n width: 30%\n }\n .rb {\n width: 30%\n }\n\n #calendar-container {\n width: 40%;\n }\n\n .calendar-item {\n width: 20%;\n margin: 1%;\n padding: 1.5%;\n }\n\n }\n\n `;\n \n @query('#button-stream-cancel')\n _SfButtonStreamCancel: any;\n\n @query('.div-row-error')\n _SfRowError: any;\n\n @query('.div-row-error-message')\n _SfRowErrorMessage: any;\n\n @query('.div-row-success')\n _SfRowSuccess: any;\n\n @query('.div-row-success-message')\n _SfRowSuccessMessage: any;\n\n @query('.loader-element')\n _SfLoader: any;\n\n @query('#calendar-container')\n _SfCalendarContainer: any;\n\n @query('#stream-container')\n _SfStreamContainer: any;\n\n getEventField = (field: string) => {\n\n for(var i = 0; i < this.getEventFields().length; i++) {\n\n if(this.getEventFields()[i].field == field) {\n return this.getEventFields()[i];\n }\n\n }\n\n }\n\n getParentFieldFromDepedencies = (field: string) => {\n\n for(var i = 0; i < this.getEventFieldDependencies().length; i++) {\n\n if(this.getEventFieldDependencies()[i].type == \"foreignkey\" && this.getEventFieldDependencies()[i].child == field) {\n return this.getEventFieldDependencies()[i].parent;\n }\n\n }\n\n return null;\n\n }\n\n getEventTexts = (field: string, selectedId: Array<string>, row: any) => {\n\n console.log('get event texts', field, selectedId, row);\n\n if(this.getEventField(field) != null && this.getEventField(field).type == \"sf-i-select\") {\n\n var selectedIds = \"\";\n selectedIds += '[';\n for(var i = 0; i < selectedId.length; i++) {\n selectedIds += ('&quot;'+selectedId[i]+'&quot;');\n if(i < selectedId.length - 1) {\n selectedIds += ',';\n }\n }\n selectedIds += ']';\n\n return '<sf-i-select apiId=\"'+this.getEventField(field).apiId+'\" name=\"Select\" label=\"Select\" mode=\"text\" selectedId=\"'+selectedIds+'\"></sf-i-select>'\n\n }\n\n if(this.getEventField(field) != null && this.getEventField(field).type == \"sf-i-sub-select\") {\n\n const parentField = this.getParentFieldFromDepedencies(field);\n\n console.log('parentfield', parentField);\n\n var selectedIds = \"\";\n selectedIds += '[';\n for(var i = 0; i < selectedId.length; i++) {\n selectedIds += ('&quot;'+selectedId[i]+'&quot;');\n if(i < selectedId.length - 1) {\n selectedIds += ',';\n }\n }\n selectedIds += ']';\n\n const filterId = JSON.parse(row[parentField])[0];\n\n console.log('<sf-i-sub-select apiId=\"'+this.getEventField(field).apiId+'\" name=\"Select\" label=\"Select\" mode=\"text\" selectedId=\"'+selectedIds+'\" filterId=\"'+filterId+'\"></sf-i-sub-select>');\n\n return '<sf-i-sub-select apiId=\"'+this.getEventField(field).apiId+'\" name=\"Select\" label=\"Select\" mode=\"text\" selectedId=\"'+selectedIds+'\" filterId=\"'+filterId+'\"></sf-i-sub-select>'\n\n }\n\n if(this.getEventField(field) != null && this.getEventField(field).type == \"sf-i-form\") {\n\n console.log('<sf-i-form name=\"Select\" apiId=\"'+this.getEventField(field).apiId+'\" selectedId=\"'+selectedId[0]+'\" projectField=\"'+this.getEventField(field).projectField+'\" mode=\"text\"></sf-i-form>');\n\n return '<sf-i-form name=\"Select\" apiId=\"'+this.getEventField(field).apiId+'\" selectedId=\"'+selectedId[0]+'\" projectField=\"'+this.getEventField(field).projectField+'\" mode=\"text\"></sf-i-form>'\n }\n\n \n\n return \"\";\n }\n\n enableStream(value: boolean) {\n\n if(value) {\n (this._SfButtonStreamCancel as HTMLButtonElement).style.display = \"inline\";\n (this._SfCalendarContainer as HTMLDivElement).style.display = 'none';\n (this._SfStreamContainer as HTMLDivElement).style.display = 'flex';\n } else {\n (this._SfButtonStreamCancel as HTMLButtonElement).style.display = \"none\";\n (this._SfCalendarContainer as HTMLDivElement).style.display = 'flex';\n (this._SfStreamContainer as HTMLDivElement).style.display = 'none';\n }\n\n }\n\n prepareXhr = async (data: any, url: string, loaderElement: any, authorization: any) => {\n\n \n if(loaderElement != null) {\n loaderElement.innerHTML = '<div class=\"lds-dual-ring\"></div>';\n }\n return await Util.callApi(url, data, authorization);\n\n }\n\n clearMessages = () => {\n this._SfRowError.style.display = 'none';\n this._SfRowErrorMessage.innerHTML = '';\n this._SfRowSuccess.style.display = 'none';\n this._SfRowSuccessMessage.innerHTML = '';\n }\n\n setError = (msg: string) => {\n this._SfRowError.style.display = 'flex';\n this._SfRowErrorMessage.innerHTML = msg;\n this._SfRowSuccess.style.display = 'none';\n this._SfRowSuccessMessage.innerHTML = '';\n }\n\n setSuccess = (msg: string) => {\n this._SfRowError.style.display = 'none';\n this._SfRowErrorMessage.innerHTML = '';\n this._SfRowSuccess.style.display = 'flex';\n this._SfRowSuccessMessage.innerHTML = msg;\n }\n\n getLastDayOfLastMonth = (month: number, year: number) => {\n const date = new Date(year, month, 0);\n return date.getDate()\n }\n\n getLastDayOfMonth = (month: number, year: number) => {\n const date = new Date(year, month + 1, 0);\n return date.getDate()\n }\n\n getBlanks = (month: number, year: number) => {\n\n const date = new Date((\"0\" + (month+1)).slice(-2) + '/01/' + year);\n const day = date.getDay();\n return day;\n\n }\n\n insertDates = (month: number, year: number) => {\n\n var html = \"\";\n\n html += '<div class=\"d-flex align-baseline flex-grow flex-wrap\">';\n\n const dateNumber = this.getLastDayOfLastMonth(month, year);\n\n for(var i = 0; i < this.getBlanks(month, year); i++) {\n\n html += '<div class=\"day-item date-item-before fw-100\">';\n html += dateNumber-(this.getBlanks(month, year) - i - 1);\n html += '</div>'; \n\n }\n\n for(i = 0; i < this.getLastDayOfMonth(month, year); i++) {\n\n const mmdd = (\"0\" + (month+1)).slice(-2) + \"/\" + (\"0\" + (i+1)).slice(-2);\n\n var partName = \"\";\n\n if(this.events[mmdd] != null) {\n partName = \"compliance-calendar-day-with-compliance\";\n html += '<div part=\"' + partName + '\" class=\"day-item date-item fw-600\">';\n html += '<div>'\n html += (i + 1);\n html += '</div>'\n html += '<div class=\"d-flex justify-center\">'\n html += '<div part=\"compliance-date-indicator-primary\" class=\"dot\"></div>'\n html += '</div>'\n html += '</div>'; \n } else {\n partName = \"compliance-calendar-day-without-compliance\";\n html += '<div part=\"' + partName + '\" class=\"day-item date-item fw-100\">';\n html += '<div>'\n html += (i + 1);\n html += '</div>'\n html += '</div>'; \n }\n\n }\n\n for(i = 0; i < 42 - (this.getBlanks(month, year) + this.getLastDayOfMonth(month, year)); i++) {\n html += '<div class=\"day-item date-item-before fw-100\">';\n html += (i+1);\n html += '</div>'; \n }\n\n html += '</div>';\n\n return html;\n\n }\n\n insertDayNames = () => {\n\n var html = \"\";\n\n html += '<div class=\"d-flex align-center flex-grow\">';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'S';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'M';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'T';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'W';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'T';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'F';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'S';\n html += '</div>';\n\n html += '</div>';\n\n return html;\n\n }\n\n renderStreamEvents = (index: number, month: number, year: number) => {\n\n const lastDay = this.getLastDayOfMonth(month, year);\n\n var html = '<div id=\"stream-event-'+index+'\" part=\"stream-event-list\" class=\"stream-event-list\">';\n\n for(var i = 1; i <= lastDay; i++) {\n\n const mmdd = (\"0\" + (month+1)).slice(-2) + \"/\" + (\"0\" + i).slice(-2);\n if(this.events[mmdd] != null) {\n //html += '<div>'+month + ',' + year + ',' + i+'</div>'\n html += '<div part=\"stream-event-selected\" class=\"d-flex stream-event-selected\">';\n html += '<div>'+(\"0\" + i).slice(-2)+' |</div>';\n for(var j = 0; j < (this.events[mmdd] as Array<any>).length; j++) {\n html += '<div class=\"stream-events-container flex-grow\">';\n html += '<table>';\n html += '<thead>';\n for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {\n html += '<th part=\"td-head\">';\n html += Object.keys(this.events[mmdd][j])[k];\n html += '</th>';\n }\n html += '</thead>';\n html += '<tbody>';\n for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {\n html += '<th part=\"td-body\">';\n if(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].indexOf(\"[\") >= 0) {\n html += this.getEventTexts(Object.keys(this.events[mmdd][j])[k], JSON.parse(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]]), this.events[mmdd][j]);\n } else {\n html += this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].replace(/\"/g, \"\");\n }\n \n html += '</th>';\n }\n html += '</tbody>';\n html += '</table>';\n html += '</div>';\n }\n html += '</div>';\n } else {\n html += '<div part=\"stream-event-not-selected\" class=\"d-flex stream-event-not-selected\">';\n html += '<div>'+(\"0\" + i).slice(-2)+' | ---</div>';\n html += '</div>';\n }\n \n\n }\n\n html += '</div>'\n\n return html;\n\n }\n\n renderStream = (index: number = 0) => {\n\n console.log('renderstream', index);\n\n var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n\n var html = '';\n\n html += '<div class=\"d-flex flex-grow\">';\n html += '<div class=\"calendar-left-col\">';\n\n var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n\n for(var i = 0; i < 12; i++) {\n\n var part = \"\";\n\n if(i === index) {\n part = \"stream-month-selected\";\n } else {\n part = \"stream-month-not-selected\";\n }\n\n html += '<div part=\"'+part+'\" id=\"stream-month-'+i+'\" part=\"month-title\" class=\"title-item '+part+'\">' + this.monthNames[startDate.getMonth()] + '&nbsp;&nbsp;' + startDate.getFullYear() + '</div>';\n startDate.setMonth(startDate.getMonth() + 1);\n }\n\n html += '</div>';\n html += '<div class=\"calendar-right-data\">';\n\n startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n for(i = 0; i < 12; i++) {\n if(i === index) {\n console.log(i, index)\n html += this.renderStreamEvents(i, startDate.getMonth(), startDate.getFullYear())\n }\n startDate.setMonth(startDate.getMonth() + 1);\n }\n html += '</div>';\n html += '</div>';\n\n (this._SfStreamContainer as HTMLDivElement).innerHTML = html;\n\n for(var i = 0; i < 12; i++) {\n (this._SfStreamContainer as HTMLDivElement).querySelector('#stream-month-' + i)?.addEventListener('click', (ev: any)=> {\n\n const target = parseInt((ev.target as HTMLDivElement).id.split('-')[2]);\n this.renderStream(target);\n\n })\n }\n\n }\n\n renderCalendar = () => {\n\n console.log('redering calendar', this.events);\n\n var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n\n var html = '';\n\n for(var i = 0; i < 12; i++) {\n\n html += '<div class=\"calendar-item d-flex flex-col flex-grow\" part=\"calendar-month\">';\n html += '<div class=\"d-flex justify-between align-center\">';\n html += '<div part=\"month-title\" class=\"title-item\">' + this.monthNames[startDate.getMonth()] + '&nbsp;&nbsp;' + startDate.getFullYear() + '</div>';\n html += '<button id=\"calendar-button-'+i+'\" part=\"button-icon-small\" class=\"title-item material-icons\">open_in_new</button>'\n html += '</div>';\n html += this.insertDayNames();\n html += this.insertDates(startDate.getMonth(), startDate.getFullYear());\n html += '</div>';\n\n startDate.setMonth(startDate.getMonth() + 1);\n \n }\n\n (this._SfCalendarContainer as HTMLDivElement).innerHTML = html;\n\n for(var i = 0; i < 12; i++) {\n\n (this._SfCalendarContainer as HTMLDivElement).querySelector('#calendar-button-' + i)?.addEventListener('click', (ev: any) => {\n\n const id = (ev.target as HTMLButtonElement).id.split(\"-\")[2];\n this.enableStream(true);\n this.renderStream(parseInt(id));\n\n })\n\n }\n\n }\n\n processEvent = (value: any) => {\n\n console.log('processing due date', value.duedate.replace(/['\"]+/g, ''));\n const duedateArr = value.duedate.replace(/['\"]+/g, '').split(\",\") as Array<string>;\n\n const startMonth = parseInt(this.calendarStartMM);\n\n for(var i = 0; i < duedateArr.length; i++) {\n\n const dateArr = duedateArr[i].split(\"/\");\n console.log('datearr', dateArr);\n\n if(dateArr[2] == \"*\") {\n if(dateArr[1] == \"*\") {\n\n var j = startMonth;\n\n while(true) {\n\n console.log('processing event',dateArr[2],dateArr[1],j);\n\n const mmdd = (\"0\" +j).slice(-2) + \"/\" + (\"0\" + dateArr[0]).slice(-2);\n\n if(this.events == null) {\n this.events = {};\n }\n if(this.events[mmdd] == null) {\n this.events[mmdd] = [];\n }\n (this.events[mmdd] as Array<any>).push(value);\n\n\n if(startMonth !== 12) {\n\n if(j === (startMonth - 1)) {\n break;\n }\n }\n\n\n j++;\n\n if(j === 13) {\n j = 0;\n }\n\n } \n\n } else {\n\n const mmdd = (\"0\" +(parseInt(dateArr[1]))).slice(-2) + \"/\" + (\"0\" + dateArr[0]).slice(-2);\n\n if(this.events == null) {\n this.events = {};\n }\n if(this.events[mmdd] == null) {\n this.events[mmdd] = [];\n }\n (this.events[mmdd] as Array<any>).push(value);\n\n }\n }\n\n }\n\n console.log('calendar processed', this.calendar);\n console.log('event processed', this.events);\n\n }\n\n fetchDetail = async (value: any) => {\n\n const body: any = this.getApiBodyList();\n body.id = value;\n console.log('detail', value, body);\n let url = \"https://\"+this.apiIdDetail+\".execute-api.us-east-1.amazonaws.com/test/\" + this.apiMethodDetail;\n\n const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\n const xhr : any = (await this.prepareXhr(body, url, this._SfLoader, authorization)) as any;\n this._SfLoader.innerHTML = '';\n if(xhr.status == 200) {\n\n const jsonRespose = JSON.parse(xhr.responseText);\n console.log('jsonResponse', jsonRespose);\n this.processEvent(jsonRespose.data.value)\n \n } else {\n const jsonRespose = JSON.parse(xhr.responseText);\n this.setError(jsonRespose.error);\n }\n\n }\n\n fetchList = async () => {\n\n console.log('calendar fetching list', this.apiIdList);\n\n const body: any = this.getApiBodyList();\n\n if(this.apiIdList != null) {\n\n let url = \"https://\"+this.apiIdList+\".execute-api.us-east-1.amazonaws.com/test/\" + this.apiMethodList;\n\n console.log('calendar request body', body);\n console.log('calendar request url', url);\n\n const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\n const xhr : any = (await this.prepareXhr(body, url, this._SfLoader, authorization)) as any;\n this._SfLoader.innerHTML = '';\n if(xhr.status == 200) {\n\n const jsonRespose = JSON.parse(xhr.responseText);\n const fieldArr = JSON.parse(jsonRespose.data.value[this.apiResponseFieldList]) as Array<string>;\n\n for(var i = 0; i < fieldArr.length; i++) {\n\n console.log('events', fieldArr[i]);\n await this.fetchDetail(fieldArr[i])\n\n }\n \n } else {\n const jsonRespose = JSON.parse(xhr.responseText);\n this.setError(jsonRespose.error);\n }\n\n }\n\n }\n\n initCalendar = async () => {\n\n var newDate = null;\n var newMonth = null;\n var newYear = null;\n var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n\n console.log('startDate', startDate);\n \n do {\n\n this.calendar.push(startDate);\n startDate.setDate(startDate.getDate() + 1);\n\n newDate = (\"0\" + startDate.getDate()).slice(-2);\n newMonth = (\"0\" + startDate.getMonth()).slice(-2);\n newYear = (startDate.getFullYear());\n\n } while(!(newDate == this.calendarStartDD && newMonth == ((\"0\" + ((parseInt(this.calendarStartMM) - 1) + \"\")).slice(-2)) && newYear === (parseInt(this.calendarStartYYYY) + 1)));\n\n console.log(this.calendar);\n\n }\n\n initInputs = () => {\n\n this.calendarStartDD = (\"0\" + this.calendarStartDD).slice(-2);\n this.calendarStartMM = (\"0\" + this.calendarStartMM).slice(-2);\n\n }\n\n initListeners = () => {\n\n (this._SfButtonStreamCancel as HTMLButtonElement).addEventListener('click', () => {\n this.enableStream(false);\n });\n\n }\n\n loadMode = async () => {\n\n this.enableStream(false);\n this.initListeners();\n this.initInputs();\n this.initCalendar();\n\n console.log('calendar init done');\n\n await this.fetchList();\n \n if(this.events != null) {\n this.renderCalendar();\n this.renderStream();\n }\n\n }\n\n constructor() {\n super();\n }\n\n protected override firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\n this.loadMode();\n\n }\n \n override connectedCallback() {\n super.connectedCallback()\n }\n \n override render() {\n\n return html`\n \n <link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\">\n <div class=\"SfIEventsC\">\n \n <div class=\"d-flex justify-center\">\n <div class=\"loader-element\"></div>\n </div>\n <div class=\"d-flex\">\n <button id=\"button-stream-cancel\" part=\"button-icon\" class=\"material-icons\">keyboard_backspace</button>\n </div>\n <div class=\"d-flex justify-center\">\n <div class=\"d-flex flex-grow flex-wrap justify-center align-stretch\" id=\"calendar-container\">\n \n </div>\n <div class=\"d-flex flex-grow flex-wrap justify-center align-stretch\" id=\"stream-container\">\n \n </div>\n </div>\n <div class=\"d-flex justify-between\">\n <div class=\"lb\"></div>\n <div>\n <div class=\"div-row-error div-row-submit gone\">\n <div part=\"errormsg\" class=\"div-row-error-message\"></div>\n </div>\n <div class=\"div-row-success div-row-submit gone\">\n <div part=\"successmsg\" class=\"div-row-success-message\"></div>\n </div>\n </div>\n <div class=\"rb\"></div>\n </div>\n </div>\n\n `;\n }\n\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sf-i-events': SfIEvents;\n }\n}\n"]}
1
+ {"version":3,"file":"sf-i-events.js","sourceRoot":"","sources":["src/sf-i-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;;;AAEH,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAmB,MAAM,KAAK,CAAC;AAC5D,2FAA2F;AAC3F,OAAO,EAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,6CAA6C;AAC7C,mDAAmD;AAGnD;;;;;EAKE;AAEF;;;;;;;;;;GAUG;AAEH,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,UAAU;IAggCvC;QACE,KAAK,EAAE,CAAC;QAh+BV,aAAQ,GAAY,EAAE,CAAC;QAGvB,eAAU,GAAe,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAGpJ,WAAM,GAAQ,IAAI,CAAC;QAGnB,gBAAW,GAAQ,IAAI,CAAC;QAExB,mBAAc,GAAG,GAAG,EAAE;YACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,CAAA;QAGD,2BAAsB,GAAQ,IAAI,CAAC;QAEnC,8BAAyB,GAAG,GAAG,EAAE;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACjD,CAAC,CAAA;QAED,mBAAc,GAAG,GAAG,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACrC;YAAC,OAAO,CAAM,EAAE;gBACf,OAAO,EAAE,CAAC;aACX;QACH,CAAC,CAAA;QAED,qBAAgB,GAAG,GAAG,EAAE;YACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC,CAAA;QAMD,SAAI,GAAW,EAAE,CAAC;QAwWlB,kBAAa,GAAG,CAAC,KAAa,EAAE,EAAE;YAEhC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEpD,IAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE;oBAC1C,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;iBACjC;aAEF;QAEH,CAAC,CAAA;QAED,kCAA6B,GAAG,CAAC,KAAa,EAAE,EAAE;YAEhD,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAE/D,IAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE;oBACjH,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACnD;aAEF;YAED,OAAO,IAAI,CAAC;QAEd,CAAC,CAAA;QAED,kBAAa,GAAG,CAAC,KAAa,EAAE,UAAyB,EAAE,GAAQ,EAAE,EAAE;YAErE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAEvD,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,aAAa,EAAE;gBAEvF,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,WAAW,IAAI,GAAG,CAAC;gBACnB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,WAAW,IAAI,CAAC,QAAQ,GAAC,UAAU,CAAC,CAAC,CAAC,GAAC,QAAQ,CAAC,CAAC;oBACjD,IAAG,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,WAAW,IAAI,GAAG,CAAC;qBACpB;iBACF;gBACD,WAAW,IAAI,GAAG,CAAC;gBAEnB,OAAO,sBAAsB,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,GAAC,yDAAyD,GAAC,WAAW,GAAC,kBAAkB,CAAA;aAEvJ;YAED,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,iBAAiB,EAAE;gBAE3F,MAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;gBAE9D,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;gBAExC,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,WAAW,IAAI,GAAG,CAAC;gBACnB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,WAAW,IAAI,CAAC,QAAQ,GAAC,UAAU,CAAC,CAAC,CAAC,GAAC,QAAQ,CAAC,CAAC;oBACjD,IAAG,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,WAAW,IAAI,GAAG,CAAC;qBACpB;iBACF;gBACD,WAAW,IAAI,GAAG,CAAC;gBAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEjD,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,GAAC,yDAAyD,GAAC,WAAW,GAAC,cAAc,GAAC,QAAQ,GAAC,sBAAsB,CAAC,CAAC;gBAE7L,OAAO,0BAA0B,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,GAAC,yDAAyD,GAAC,WAAW,GAAC,cAAc,GAAC,QAAQ,GAAC,sBAAsB,CAAA;aAEvL;YAED,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,WAAW,EAAE;gBAErF,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,GAAC,gBAAgB,GAAC,UAAU,CAAC,CAAC,CAAC,GAAC,kBAAkB,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,GAAC,4BAA4B,CAAC,CAAC;gBAEtM,OAAO,kCAAkC,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,GAAC,gBAAgB,GAAC,UAAU,CAAC,CAAC,CAAC,GAAC,kBAAkB,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,GAAC,4BAA4B,CAAA;aAChM;YAID,OAAO,EAAE,CAAC;QACZ,CAAC,CAAA;QAcD,eAAU,GAAG,KAAK,EAAE,IAAS,EAAE,GAAW,EAAE,aAAkB,EAAE,aAAkB,EAAE,EAAE;YAGpF,IAAG,aAAa,IAAI,IAAI,EAAE;gBACxB,aAAa,CAAC,SAAS,GAAG,mCAAmC,CAAC;aAC/D;YACD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAEtD,CAAC,CAAA;QAED,kBAAa,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,EAAE,CAAC;QAC3C,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,EAAE,CAAC;QAC3C,CAAC,CAAA;QAED,eAAU,GAAG,CAAC,GAAW,EAAE,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,GAAG,CAAC;QAC5C,CAAC,CAAA;QAED,0BAAqB,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC,CAAA;QAED,sBAAiB,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC,CAAA;QAED,cAAS,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YAE1C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;YACnE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC;QAEb,CAAC,CAAA;QAED,gBAAW,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;YAE5C,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,IAAI,IAAI,yDAAyD,CAAC;YAElE,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE3D,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAEnD,IAAI,IAAI,gDAAgD,CAAC;gBACzD,IAAI,IAAI,UAAU,GAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzD,IAAI,IAAI,QAAQ,CAAC;aAElB;YAED,KAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAEvD,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzE,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAElB,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;oBAC5B,QAAQ,GAAG,yCAAyC,CAAC;oBACrD,IAAI,IAAI,aAAa,GAAG,QAAQ,GAAG,sCAAsC,CAAC;oBACxE,IAAI,IAAI,OAAO,CAAA;oBACb,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClB,IAAI,IAAI,QAAQ,CAAA;oBAChB,IAAI,IAAI,qCAAqC,CAAA;oBAC3C,IAAI,IAAI,kEAAkE,CAAA;oBAC5E,IAAI,IAAI,QAAQ,CAAA;oBAClB,IAAI,IAAI,QAAQ,CAAC;iBAClB;qBAAM;oBACL,QAAQ,GAAG,4CAA4C,CAAC;oBACxD,IAAI,IAAI,aAAa,GAAG,QAAQ,GAAG,sCAAsC,CAAC;oBACxE,IAAI,IAAI,OAAO,CAAA;oBACb,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClB,IAAI,IAAI,QAAQ,CAAA;oBAClB,IAAI,IAAI,QAAQ,CAAC;iBAClB;aAEF;YAED,KAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC5F,IAAI,IAAI,gDAAgD,CAAC;gBACzD,IAAI,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;gBACd,IAAI,IAAI,QAAQ,CAAC;aAClB;YAED,IAAI,IAAI,QAAQ,CAAC;YAEjB,OAAO,IAAI,CAAC;QAEd,CAAC,CAAA;QAED,mBAAc,GAAG,GAAG,EAAE;YAEpB,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,IAAI,IAAI,6CAA6C,CAAC;YAEtD,IAAI,IAAI,wDAAwD,CAAC;YACjE,IAAI,IAAI,GAAG,CAAC;YACZ,IAAI,IAAI,QAAQ,CAAC;YAEjB,IAAI,IAAI,wDAAwD,CAAC;YACjE,IAAI,IAAI,GAAG,CAAC;YACZ,IAAI,IAAI,QAAQ,CAAC;YAEjB,IAAI,IAAI,wDAAwD,CAAC;YACjE,IAAI,IAAI,GAAG,CAAC;YACZ,IAAI,IAAI,QAAQ,CAAC;YAEjB,IAAI,IAAI,wDAAwD,CAAC;YACjE,IAAI,IAAI,GAAG,CAAC;YACZ,IAAI,IAAI,QAAQ,CAAC;YAEjB,IAAI,IAAI,wDAAwD,CAAC;YACjE,IAAI,IAAI,GAAG,CAAC;YACZ,IAAI,IAAI,QAAQ,CAAC;YAEjB,IAAI,IAAI,wDAAwD,CAAC;YACjE,IAAI,IAAI,GAAG,CAAC;YACZ,IAAI,IAAI,QAAQ,CAAC;YAEjB,IAAI,IAAI,wDAAwD,CAAC;YACjE,IAAI,IAAI,GAAG,CAAC;YACZ,IAAI,IAAI,QAAQ,CAAC;YAEjB,IAAI,IAAI,QAAQ,CAAC;YAEjB,OAAO,IAAI,CAAC;QAEd,CAAC,CAAA;QAED,uBAAkB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;YAElE,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAEpD,IAAI,IAAI,GAAG,wBAAwB,GAAC,KAAK,GAAC,uDAAuD,CAAC;YAElG,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;gBAEhC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;oBAC5B,uDAAuD;oBACvD,IAAI,IAAI,yEAAyE,CAAC;oBAChF,IAAI,IAAI,OAAO,GAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,UAAU,CAAC;oBAC/C,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAChE,IAAI,IAAI,iDAAiD,CAAC;wBACxD,IAAI,IAAI,SAAS,CAAC;wBAClB,IAAI,IAAI,SAAS,CAAC;wBAClB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAChE,IAAI,IAAI,qBAAqB,CAAC;4BAC9B,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC7C,IAAI,IAAI,OAAO,CAAC;yBACjB;wBACD,IAAI,IAAI,UAAU,CAAC;wBACnB,IAAI,IAAI,SAAS,CAAC;wBAClB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAChE,IAAI,IAAI,qBAAqB,CAAC;4BAC9B,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gCAC/E,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;6BAChK;iCAAM;gCACL,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;6BACtF;4BAED,IAAI,IAAI,OAAO,CAAC;yBACjB;wBACD,IAAI,IAAI,UAAU,CAAC;wBACnB,IAAI,IAAI,UAAU,CAAC;wBACrB,IAAI,IAAI,QAAQ,CAAC;qBAClB;oBACH,IAAI,IAAI,QAAQ,CAAC;iBAClB;qBAAM;oBACL,IAAI,IAAI,iFAAiF,CAAC;oBAC1F,IAAI,IAAI,OAAO,GAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,cAAc,CAAC;oBACnD,IAAI,IAAI,QAAQ,CAAC;iBAClB;aAGF;YAED,IAAI,IAAI,QAAQ,CAAA;YAEhB,OAAO,IAAI,CAAC;QAEd,CAAC,CAAA;QAED,iBAAY,GAAG,CAAC,QAAgB,CAAC,EAAE,EAAE;;YAEnC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAEnC,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE3G,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,IAAI,IAAI,gCAAgC,CAAC;YACvC,IAAI,IAAI,iCAAiC,CAAC;YAExC,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE3G,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBAE1B,IAAI,IAAI,GAAG,EAAE,CAAC;gBAEd,IAAG,CAAC,KAAK,KAAK,EAAE;oBACd,IAAI,GAAG,uBAAuB,CAAC;iBAChC;qBAAM;oBACL,IAAI,GAAG,2BAA2B,CAAC;iBACpC;gBAED,IAAI,IAAI,aAAa,GAAC,IAAI,GAAC,qBAAqB,GAAC,CAAC,GAAC,yCAAyC,GAAC,IAAI,GAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC;gBACrM,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;aAC9C;YAEH,IAAI,IAAI,QAAQ,CAAC;YACjB,IAAI,IAAI,mCAAmC,CAAC;YAE1C,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvG,KAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBACtB,IAAG,CAAC,KAAK,KAAK,EAAE;oBACd,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;oBACrB,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;iBAClF;gBACD,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;aAC9C;YACH,IAAI,IAAI,QAAQ,CAAC;YACnB,IAAI,IAAI,QAAQ,CAAC;YAEhB,IAAI,CAAC,kBAAqC,CAAC,SAAS,GAAG,IAAI,CAAC;YAE7D,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAC,IAAI,CAAC,kBAAqC,CAAC,aAAa,CAAC,gBAAgB,GAAG,CAAC,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAO,EAAC,EAAE;oBAEpH,MAAM,MAAM,GAAG,QAAQ,CAAE,EAAE,CAAC,MAAyB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAE5B,CAAC,CAAC,CAAA;aACH;QAEH,CAAC,CAAA;QAED,mBAAc,GAAG,GAAG,EAAE;;YAEpB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAE9C,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE3G,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBAE1B,IAAI,IAAI,6EAA6E,CAAC;gBACtF,IAAI,IAAI,mDAAmD,CAAC;gBAC5D,IAAI,IAAI,6CAA6C,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC;gBACpJ,IAAI,IAAI,8BAA8B,GAAC,CAAC,GAAC,mFAAmF,CAAA;gBAC5H,IAAI,IAAI,QAAQ,CAAC;gBACjB,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC9B,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxE,IAAI,IAAI,QAAQ,CAAC;gBAEjB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;aAE9C;YAEA,IAAI,CAAC,oBAAuC,CAAC,SAAS,GAAG,IAAI,CAAC;YAE/D,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBAE1B,MAAC,IAAI,CAAC,oBAAuC,CAAC,aAAa,CAAC,mBAAmB,GAAG,CAAC,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAO,EAAE,EAAE;oBAE1H,MAAM,EAAE,GAAI,EAAE,CAAC,MAA4B,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBACxB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAExB,CAAC,CAAC,CAAA;aAEH;QAEH,CAAC,CAAA;QAED,eAAU,GAAG,CAAC,YAAqB,EAAE,EAAE;;YAErC,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,IAAI,IAAI,0DAA0D,GAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAC,iBAAiB,CAAC;YAC1K,IAAI,IAAI,2DAA2D,GAAC,CAAC,YAAY,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,kCAAkC,CAAC,GAAC,kBAAkB,CAAC;YAE3K,IAAI,CAAC,eAAkC,CAAC,SAAS,GAAG,IAAI,CAAC;YAE1D,MAAC,IAAI,CAAC,eAAkC,CAAC,aAAa,CAAC,oBAAoB,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC3G,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,MAAC,IAAI,CAAC,eAAkC,CAAC,aAAa,CAAC,qBAAqB,CAAC,0CAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC5G,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;QAEL,CAAC,CAAA;QAED,iBAAY,GAAG,CAAC,KAAU,EAAE,EAAE;YAE5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACxE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;YAEnF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAElD,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAEzC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAEhC,IAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBACpB,IAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBAEpB,IAAI,CAAC,GAAG,UAAU,CAAC;wBAEnB,OAAM,IAAI,EAAE;4BAEV,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAC,OAAO,CAAC,CAAC,CAAC,EAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;4BAExD,MAAM,IAAI,GAAI,CAAC,GAAG,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAEtE,IAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gCACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;6BAClB;4BACD,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;gCAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;6BACxB;4BACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAG9C,IAAG,UAAU,KAAK,EAAE,EAAE;gCAEpB,IAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE;oCACzB,MAAM;iCACP;6BACF;4BAGD,CAAC,EAAE,CAAC;4BAEJ,IAAG,CAAC,KAAK,EAAE,EAAE;gCACX,CAAC,GAAG,CAAC,CAAC;6BACP;yBAEF;qBAEF;yBAAM;wBAEH,MAAM,IAAI,GAAI,CAAC,GAAG,GAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBAE3F,IAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;4BACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;yBAClB;wBACD,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;4BAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;yBACxB;wBACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAEjD;iBACF;aAEF;YAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9C,CAAC,CAAA;QAED,gBAAW,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;YAEjC,MAAM,IAAI,GAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,GAAG,GAAG,UAAU,GAAC,IAAI,CAAC,WAAW,GAAC,4CAA4C,GAAG,IAAI,CAAC,eAAe,CAAC;YAE1G,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5F,MAAM,GAAG,GAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAQ,CAAC;YAC3F,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;YAC9B,IAAG,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBAEpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aAE1C;iBAAM;gBACL,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAClC;QAEH,CAAC,CAAA;QAED,cAAS,GAAG,KAAK,IAAI,EAAE;YAErB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtD,MAAM,IAAI,GAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;YAExC,IAAG,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAEzB,IAAI,GAAG,GAAG,UAAU,GAAC,IAAI,CAAC,SAAS,GAAC,4CAA4C,GAAG,IAAI,CAAC,aAAa,CAAC;gBAEtG,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;gBAEzC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC5F,MAAM,GAAG,GAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAQ,CAAC;gBAC3F,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;gBAC9B,IAAG,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;oBAEpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAkB,CAAC;oBAEhG,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAEvC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;qBAEpC;iBAEF;qBAAM;oBACL,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAClC;aAEF;QAEH,CAAC,CAAA;QAED,iBAAY,GAAG,KAAK,IAAI,EAAE;YAExB,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,IAAI,QAAQ,GAAG,IAAI,CAAC;YACpB,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE3G,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAEpC,GAAG;gBAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE3C,OAAO,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,QAAQ,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,OAAO,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;aAErC,QAAO,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,IAAI,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAEjL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7B,CAAC,CAAA;QAED,eAAU,GAAG,GAAG,EAAE;YAEhB,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,CAAC,CAAA;QAED,kBAAa,GAAG,GAAG,EAAE;QAGrB,CAAC,CAAA;QAED,aAAQ,GAAG,KAAK,IAAI,EAAE;YAEpB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAElC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAEvB,IAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;QAEH,CAAC,CAAA;IAID,CAAC;IAhgBD,YAAY,CAAC,KAAc;QAEzB,IAAG,KAAK,EAAE;YACP,IAAI,CAAC,oBAAuC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACpE,IAAI,CAAC,kBAAqC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;SACpE;aAAM;YACJ,IAAI,CAAC,oBAAuC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACpE,IAAI,CAAC,kBAAqC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;SACpE;IAEH,CAAC;IAwfkB,YAAY,CAAC,kBAAqE;QAEnG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAElB,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAA;IAC3B,CAAC;IAEQ,MAAM;QAEb,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCV,CAAC;IACJ,CAAC;CAEF,CAAA;AA1+BiB,gBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4U1B,CAAA;AAnZF;IADC,QAAQ,EAAE;4CACQ;AAGnB;IADC,QAAQ,EAAE;8CACU;AAGrB;IADC,QAAQ,EAAE;gDACY;AAGvB;IADC,QAAQ,EAAE;kDACc;AAGzB;IADC,QAAQ,EAAE;8CACU;AAGrB;IADC,QAAQ,EAAE;gDACY;AAGvB;IADC,QAAQ,EAAE;uDACmB;AAG9B;IADC,QAAQ,EAAE;kDACc;AAGzB;IADC,QAAQ,EAAE;kDACc;AAGzB;IADC,QAAQ,EAAE;oDACgB;AAG3B;IADC,QAAQ,EAAE;2CACY;AAGvB;IADC,QAAQ,EAAE;6CACyI;AAGpJ;IADC,QAAQ,EAAE;yCACQ;AAGnB;IADC,QAAQ,EAAE;8CACa;AAOxB;IADC,QAAQ,EAAE;yDACwB;AAoBnC;IADC,QAAQ,EAAE;uCACG;AAGd;IADC,QAAQ,EAAE;uCACO;AAiVlB;IADC,KAAK,CAAC,gBAAgB,CAAC;8CACP;AAGjB;IADC,KAAK,CAAC,wBAAwB,CAAC;qDACR;AAGxB;IADC,KAAK,CAAC,kBAAkB,CAAC;gDACP;AAGnB;IADC,KAAK,CAAC,0BAA0B,CAAC;uDACR;AAG1B;IADC,KAAK,CAAC,iBAAiB,CAAC;4CACV;AAGf;IADC,KAAK,CAAC,qBAAqB,CAAC;uDACH;AAG1B;IADC,KAAK,CAAC,mBAAmB,CAAC;qDACH;AAGxB;IADC,KAAK,CAAC,gBAAgB,CAAC;kDACH;AA9aV,SAAS;IADrB,aAAa,CAAC,aAAa,CAAC;GAChB,SAAS,CAojCrB;SApjCY,SAAS","sourcesContent":["/**\n * @license\n * Copyright 2022 Superflow.dev\n * SPDX-License-Identifier: MIT\n */\n\nimport {LitElement, html, css, PropertyValueMap} from 'lit';\n// import {customElement, query, queryAssignedElements, property} from 'lit/decorators.js';\nimport {customElement, query, property} from 'lit/decorators.js';\nimport Util from './util';\n// import {LitElement, html, css} from 'lit';\n// import {customElement} from 'lit/decorators.js';\n\n\n/*\n\nModes: View, Add, Edit, Delete, Admin\nDB: partitionKey, rangeKey, values\n\n*/\n\n/**\n * SfIEvents element.\n * @fires renderComplete - When the list is populated\n * @fires valueChanged - When the value is changed\n * @property apiId - backend api id\n * @property label - input label\n * @property name - name of the input\n * @property mode - mode of operation\n * @property selectedId - id to preselect\n * @property selectedValue - callback function\n */\n@customElement('sf-i-events')\nexport class SfIEvents extends LitElement {\n \n @property()\n apiIdList!: string;\n\n @property()\n apiIdDetail!: string;\n\n @property()\n apiMethodList!: string;\n\n @property()\n apiMethodDetail!: string;\n\n @property()\n apiBodyList!: string;\n\n @property()\n apiBodyDetail!: string;\n\n @property()\n apiResponseFieldList!: string;\n\n @property()\n calendarStartDD!: string;\n\n @property()\n calendarStartMM!: string;\n\n @property()\n calendarStartYYYY!: string;\n\n @property()\n calendar: Date [] = [];\n\n @property()\n monthNames: string [] = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\n @property()\n events: any = null;\n\n @property()\n eventFields: any = null;\n\n getEventFields = () => {\n return JSON.parse(this.eventFields);\n }\n\n @property()\n eventFieldDependencies: any = null;\n\n getEventFieldDependencies = () => {\n return JSON.parse(this.eventFieldDependencies);\n }\n\n getApiBodyList = () => {\n console.log('calendar api body list', this.apiBodyList);\n try {\n return JSON.parse(this.apiBodyList);\n } catch (e: any) {\n return {};\n }\n }\n\n getApiBodyDetail = () => {\n return JSON.parse(this.apiBodyDetail);\n }\n\n @property()\n mode!: string;\n\n @property()\n flow: string = \"\";\n\n static override styles = css`\n\n \n .SfIEventsC {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n justify-content: space-between;\n }\n\n .flex-grow {\n flex-grow: 1;\n }\n\n .flex-wrap {\n flex-wrap: wrap;\n }\n\n .left-sticky {\n left: 0px;\n position: sticky;\n }\n\n .link {\n text-decoration: underline;\n cursor: pointer;\n }\n\n .gone {\n display: none\n }\n\n .loader-element {\n position: fixed;\n right: 10px;\n top: 10px;\n margin-left: 5px;\n }\n\n #calendar-container {\n width: 90%;\n }\n\n #stream-container {\n padding: 1%;\n }\n\n .stream-event-list {\n margin-left: 10px;\n padding: 10px;\n }\n\n .stream-events-container {\n overflow-x: auto;\n width: 200px;\n }\n .stream-event-selected {\n padding-left: 20px;\n padding-right: 10px;\n padding-top: 5px;\n padding-bottom: 5px;\n }\n \n .stream-event-not-selected {\n padding-left: 20px;\n padding-right: 10px;\n padding-top: 5px;\n padding-bottom: 5px;\n color: #aaa;\n }\n\n .stream-month-selected {\n padding: 10px;\n text-align: center;\n }\n\n .stream-month-not-selected {\n padding: 10px;\n text-align: center;\n }\n\n .calendar-left-col {\n width: 30%;\n }\n\n .calendar-right-data {\n width: 70%;\n }\n\n .day-item {\n width: 14%;\n margin-bottom: 5px;\n text-align: center;\n }\n\n .date-item {\n font-size: 80%;\n color: #333;\n }\n\n .date-item-before {\n font-size: 80%;\n color: #999;\n }\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 3px;\n }\n\n .title-item {\n padding: 5px;\n margin-bottom: 20px;\n }\n\n .calendar-item {\n width: 90%;\n margin-bottom: 20px;\n }\n\n .td-head {\n text-transform: capitalize;\n }\n\n .tab-button {\n padding: 10px;\n padding-left: 15px;\n padding-right: 15px;\n font-size: 105%;\n margin-left: 5px;\n margin-right: 5px;\n }\n\n .td-body {\n padding: 5px;\n }\n\n .td-dark {\n background-color: #e9e9e9;\n }\n\n .td-highlight {\n background-color: black;\n color: white;\n }\n\n .td-light {\n background-color: #f6f6f6;\n }\n\n td {\n white-space: nowrap;\n }\n\n .fw-100 {\n font-weight: 100;\n }\n\n .fw-200 {\n font-weight: 200;\n }\n\n .fw-300 {\n font-weight: 300;\n }\n\n .fw-600 {\n font-weight: 600;\n }\n\n .align-start {\n align-items: flex-start;\n }\n\n .align-stretch {\n align-items: stretch;\n }\n\n .align-baseline {\n align-items: baseline;\n }\n\n .align-end {\n align-items: flex-end;\n }\n\n .align-center {\n align-items: center;\n }\n \n .lds-dual-ring {\n display: inline-block;\n width: 50px;\n height: 50px;\n }\n .lds-dual-ring:after {\n content: \" \";\n display: block;\n width: 50px;\n height: 50px;\n margin: 0px;\n border-radius: 50%;\n border: 2px solid #fff;\n border-color: #888 #ddd #888 #ddd;\n background-color: white;\n animation: lds-dual-ring 0.8s linear infinite;\n }\n\n .lds-dual-ring-lg {\n display: inline-block;\n width: 30px;\n height: 30px;\n }\n .lds-dual-ring-lg:after {\n content: \" \";\n display: block;\n width: 30px;\n height: 30px;\n margin: 0px;\n border-radius: 50%;\n border: 3px solid #fff;\n border-color: #888 #ddd #888 #ddd;\n animation: lds-dual-ring 0.8s linear infinite;\n }\n\n .div-row-error {\n display: flex;\n justify-content: center;\n position: fixed;\n position: fixed;\n top: 0px;\n right: 0px;\n margin-top: 20px;\n margin-right: 20px;\n display: none;\n align-items:center;\n background-color: white;\n border: dashed 1px red;\n padding: 20px;\n }\n\n .div-row-error-message {\n color: red;\n padding: 5px;\n background-color: white;\n text-align: center;\n }\n\n .div-row-success {\n display: flex;\n justify-content: center;\n position: fixed;\n top: 0px;\n right: 0px;\n margin-top: 20px;\n margin-right: 20px;\n display: none;\n align-items:center;\n background-color: white;\n border: dashed 1px green;\n padding: 20px;\n }\n\n .div-row-success-message {\n color: green;\n padding: 5px;\n background-color: white;\n text-align: center;\n }\n\n .d-flex {\n display: flex;\n }\n\n .flex-col {\n flex-direction: column;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .justify-end {\n justify-content: flex-end;\n }\n\n @keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n } \n\n .hide {\n display: none;\n }\n\n .lb {\n width: 5%\n }\n .rb {\n width: 5%\n }\n\n @media (orientation: landscape) {\n\n .lb {\n width: 30%\n }\n .rb {\n width: 30%\n }\n\n #calendar-container {\n width: 40%;\n }\n\n .calendar-item {\n width: 20%;\n margin: 1%;\n padding: 1.5%;\n }\n\n }\n\n `;\n \n @query('.div-row-error')\n _SfRowError: any;\n\n @query('.div-row-error-message')\n _SfRowErrorMessage: any;\n\n @query('.div-row-success')\n _SfRowSuccess: any;\n\n @query('.div-row-success-message')\n _SfRowSuccessMessage: any;\n\n @query('.loader-element')\n _SfLoader: any;\n\n @query('#calendar-container')\n _SfCalendarContainer: any;\n\n @query('#stream-container')\n _SfStreamContainer: any;\n\n @query('#tab-container')\n _SfTabContainer: any;\n\n getEventField = (field: string) => {\n\n for(var i = 0; i < this.getEventFields().length; i++) {\n\n if(this.getEventFields()[i].field == field) {\n return this.getEventFields()[i];\n }\n\n }\n\n }\n\n getParentFieldFromDepedencies = (field: string) => {\n\n for(var i = 0; i < this.getEventFieldDependencies().length; i++) {\n\n if(this.getEventFieldDependencies()[i].type == \"foreignkey\" && this.getEventFieldDependencies()[i].child == field) {\n return this.getEventFieldDependencies()[i].parent;\n }\n\n }\n\n return null;\n\n }\n\n getEventTexts = (field: string, selectedId: Array<string>, row: any) => {\n\n console.log('get event texts', field, selectedId, row);\n\n if(this.getEventField(field) != null && this.getEventField(field).type == \"sf-i-select\") {\n\n var selectedIds = \"\";\n selectedIds += '[';\n for(var i = 0; i < selectedId.length; i++) {\n selectedIds += ('&quot;'+selectedId[i]+'&quot;');\n if(i < selectedId.length - 1) {\n selectedIds += ',';\n }\n }\n selectedIds += ']';\n\n return '<sf-i-select apiId=\"'+this.getEventField(field).apiId+'\" name=\"Select\" label=\"Select\" mode=\"text\" selectedId=\"'+selectedIds+'\"></sf-i-select>'\n\n }\n\n if(this.getEventField(field) != null && this.getEventField(field).type == \"sf-i-sub-select\") {\n\n const parentField = this.getParentFieldFromDepedencies(field);\n\n console.log('parentfield', parentField);\n\n var selectedIds = \"\";\n selectedIds += '[';\n for(var i = 0; i < selectedId.length; i++) {\n selectedIds += ('&quot;'+selectedId[i]+'&quot;');\n if(i < selectedId.length - 1) {\n selectedIds += ',';\n }\n }\n selectedIds += ']';\n\n const filterId = JSON.parse(row[parentField])[0];\n\n console.log('<sf-i-sub-select apiId=\"'+this.getEventField(field).apiId+'\" name=\"Select\" label=\"Select\" mode=\"text\" selectedId=\"'+selectedIds+'\" filterId=\"'+filterId+'\"></sf-i-sub-select>');\n\n return '<sf-i-sub-select apiId=\"'+this.getEventField(field).apiId+'\" name=\"Select\" label=\"Select\" mode=\"text\" selectedId=\"'+selectedIds+'\" filterId=\"'+filterId+'\"></sf-i-sub-select>'\n\n }\n\n if(this.getEventField(field) != null && this.getEventField(field).type == \"sf-i-form\") {\n\n console.log('<sf-i-form name=\"Select\" apiId=\"'+this.getEventField(field).apiId+'\" selectedId=\"'+selectedId[0]+'\" projectField=\"'+this.getEventField(field).projectField+'\" mode=\"text\"></sf-i-form>');\n\n return '<sf-i-form name=\"Select\" apiId=\"'+this.getEventField(field).apiId+'\" selectedId=\"'+selectedId[0]+'\" projectField=\"'+this.getEventField(field).projectField+'\" mode=\"text\"></sf-i-form>'\n }\n\n \n\n return \"\";\n }\n\n enableStream(value: boolean) {\n\n if(value) {\n (this._SfCalendarContainer as HTMLDivElement).style.display = 'none';\n (this._SfStreamContainer as HTMLDivElement).style.display = 'flex';\n } else {\n (this._SfCalendarContainer as HTMLDivElement).style.display = 'flex';\n (this._SfStreamContainer as HTMLDivElement).style.display = 'none';\n }\n\n }\n\n prepareXhr = async (data: any, url: string, loaderElement: any, authorization: any) => {\n\n \n if(loaderElement != null) {\n loaderElement.innerHTML = '<div class=\"lds-dual-ring\"></div>';\n }\n return await Util.callApi(url, data, authorization);\n\n }\n\n clearMessages = () => {\n this._SfRowError.style.display = 'none';\n this._SfRowErrorMessage.innerHTML = '';\n this._SfRowSuccess.style.display = 'none';\n this._SfRowSuccessMessage.innerHTML = '';\n }\n\n setError = (msg: string) => {\n this._SfRowError.style.display = 'flex';\n this._SfRowErrorMessage.innerHTML = msg;\n this._SfRowSuccess.style.display = 'none';\n this._SfRowSuccessMessage.innerHTML = '';\n }\n\n setSuccess = (msg: string) => {\n this._SfRowError.style.display = 'none';\n this._SfRowErrorMessage.innerHTML = '';\n this._SfRowSuccess.style.display = 'flex';\n this._SfRowSuccessMessage.innerHTML = msg;\n }\n\n getLastDayOfLastMonth = (month: number, year: number) => {\n const date = new Date(year, month, 0);\n return date.getDate()\n }\n\n getLastDayOfMonth = (month: number, year: number) => {\n const date = new Date(year, month + 1, 0);\n return date.getDate()\n }\n\n getBlanks = (month: number, year: number) => {\n\n const date = new Date((\"0\" + (month+1)).slice(-2) + '/01/' + year);\n const day = date.getDay();\n return day;\n\n }\n\n insertDates = (month: number, year: number) => {\n\n var html = \"\";\n\n html += '<div class=\"d-flex align-baseline flex-grow flex-wrap\">';\n\n const dateNumber = this.getLastDayOfLastMonth(month, year);\n\n for(var i = 0; i < this.getBlanks(month, year); i++) {\n\n html += '<div class=\"day-item date-item-before fw-100\">';\n html += dateNumber-(this.getBlanks(month, year) - i - 1);\n html += '</div>'; \n\n }\n\n for(i = 0; i < this.getLastDayOfMonth(month, year); i++) {\n\n const mmdd = (\"0\" + (month+1)).slice(-2) + \"/\" + (\"0\" + (i+1)).slice(-2);\n\n var partName = \"\";\n\n if(this.events[mmdd] != null) {\n partName = \"compliance-calendar-day-with-compliance\";\n html += '<div part=\"' + partName + '\" class=\"day-item date-item fw-600\">';\n html += '<div>'\n html += (i + 1);\n html += '</div>'\n html += '<div class=\"d-flex justify-center\">'\n html += '<div part=\"compliance-date-indicator-primary\" class=\"dot\"></div>'\n html += '</div>'\n html += '</div>'; \n } else {\n partName = \"compliance-calendar-day-without-compliance\";\n html += '<div part=\"' + partName + '\" class=\"day-item date-item fw-100\">';\n html += '<div>'\n html += (i + 1);\n html += '</div>'\n html += '</div>'; \n }\n\n }\n\n for(i = 0; i < 42 - (this.getBlanks(month, year) + this.getLastDayOfMonth(month, year)); i++) {\n html += '<div class=\"day-item date-item-before fw-100\">';\n html += (i+1);\n html += '</div>'; \n }\n\n html += '</div>';\n\n return html;\n\n }\n\n insertDayNames = () => {\n\n var html = \"\";\n\n html += '<div class=\"d-flex align-center flex-grow\">';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'S';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'M';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'T';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'W';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'T';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'F';\n html += '</div>';\n\n html += '<div part=\"calendar-day-name\" class=\"day-item fw-100\">';\n html += 'S';\n html += '</div>';\n\n html += '</div>';\n\n return html;\n\n }\n\n renderStreamEvents = (index: number, month: number, year: number) => {\n\n const lastDay = this.getLastDayOfMonth(month, year);\n\n var html = '<div id=\"stream-event-'+index+'\" part=\"stream-event-list\" class=\"stream-event-list\">';\n\n for(var i = 1; i <= lastDay; i++) {\n\n const mmdd = (\"0\" + (month+1)).slice(-2) + \"/\" + (\"0\" + i).slice(-2);\n if(this.events[mmdd] != null) {\n //html += '<div>'+month + ',' + year + ',' + i+'</div>'\n html += '<div part=\"stream-event-selected\" class=\"d-flex stream-event-selected\">';\n html += '<div>'+(\"0\" + i).slice(-2)+' |</div>';\n for(var j = 0; j < (this.events[mmdd] as Array<any>).length; j++) {\n html += '<div class=\"stream-events-container flex-grow\">';\n html += '<table>';\n html += '<thead>';\n for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {\n html += '<th part=\"td-head\">';\n html += Object.keys(this.events[mmdd][j])[k];\n html += '</th>';\n }\n html += '</thead>';\n html += '<tbody>';\n for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {\n html += '<th part=\"td-body\">';\n if(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].indexOf(\"[\") >= 0) {\n html += this.getEventTexts(Object.keys(this.events[mmdd][j])[k], JSON.parse(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]]), this.events[mmdd][j]);\n } else {\n html += this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].replace(/\"/g, \"\");\n }\n \n html += '</th>';\n }\n html += '</tbody>';\n html += '</table>';\n html += '</div>';\n }\n html += '</div>';\n } else {\n html += '<div part=\"stream-event-not-selected\" class=\"d-flex stream-event-not-selected\">';\n html += '<div>'+(\"0\" + i).slice(-2)+' | ---</div>';\n html += '</div>';\n }\n \n\n }\n\n html += '</div>'\n\n return html;\n\n }\n\n renderStream = (index: number = 0) => {\n\n console.log('renderstream', index);\n\n var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n\n var html = '';\n\n html += '<div class=\"d-flex flex-grow\">';\n html += '<div class=\"calendar-left-col\">';\n\n var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n\n for(var i = 0; i < 12; i++) {\n\n var part = \"\";\n\n if(i === index) {\n part = \"stream-month-selected\";\n } else {\n part = \"stream-month-not-selected\";\n }\n\n html += '<div part=\"'+part+'\" id=\"stream-month-'+i+'\" part=\"month-title\" class=\"title-item '+part+'\">' + this.monthNames[startDate.getMonth()] + '&nbsp;&nbsp;' + startDate.getFullYear() + '</div>';\n startDate.setMonth(startDate.getMonth() + 1);\n }\n\n html += '</div>';\n html += '<div class=\"calendar-right-data\">';\n\n startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n for(i = 0; i < 12; i++) {\n if(i === index) {\n console.log(i, index)\n html += this.renderStreamEvents(i, startDate.getMonth(), startDate.getFullYear())\n }\n startDate.setMonth(startDate.getMonth() + 1);\n }\n html += '</div>';\n html += '</div>';\n\n (this._SfStreamContainer as HTMLDivElement).innerHTML = html;\n\n for(var i = 0; i < 12; i++) {\n (this._SfStreamContainer as HTMLDivElement).querySelector('#stream-month-' + i)?.addEventListener('click', (ev: any)=> {\n\n const target = parseInt((ev.target as HTMLDivElement).id.split('-')[2]);\n this.renderStream(target);\n\n })\n }\n\n }\n\n renderCalendar = () => {\n\n console.log('redering calendar', this.events);\n\n var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n\n var html = '';\n\n for(var i = 0; i < 12; i++) {\n\n html += '<div class=\"calendar-item d-flex flex-col flex-grow\" part=\"calendar-month\">';\n html += '<div class=\"d-flex justify-between align-center\">';\n html += '<div part=\"month-title\" class=\"title-item\">' + this.monthNames[startDate.getMonth()] + '&nbsp;&nbsp;' + startDate.getFullYear() + '</div>';\n html += '<button id=\"calendar-button-'+i+'\" part=\"button-icon-small\" class=\"title-item material-icons\">open_in_new</button>'\n html += '</div>';\n html += this.insertDayNames();\n html += this.insertDates(startDate.getMonth(), startDate.getFullYear());\n html += '</div>';\n\n startDate.setMonth(startDate.getMonth() + 1);\n \n }\n\n (this._SfCalendarContainer as HTMLDivElement).innerHTML = html;\n\n for(var i = 0; i < 12; i++) {\n\n (this._SfCalendarContainer as HTMLDivElement).querySelector('#calendar-button-' + i)?.addEventListener('click', (ev: any) => {\n\n const id = (ev.target as HTMLButtonElement).id.split(\"-\")[2];\n this.enableStream(true);\n this.renderStream(parseInt(id));\n this.renderTabs(true);\n\n })\n\n }\n\n }\n\n renderTabs = (enableStream: boolean) => {\n\n var html = '';\n\n html += '<button class=\"tab-button\" id=\"calendar-tab-year\" part=\"'+(enableStream ? 'calendar-tab-button-not-selected' : 'calendar-tab-button-selected')+'\">Year</button>';\n html += '<button class=\"tab-button\" id=\"calendar-tab-month\" part=\"'+(enableStream ? 'calendar-tab-button-selected' : 'calendar-tab-button-not-selected')+'\">Month</button>';\n\n (this._SfTabContainer as HTMLDivElement).innerHTML = html;\n\n (this._SfTabContainer as HTMLDivElement).querySelector('#calendar-tab-year')?.addEventListener('click', () => {\n this.enableStream(false);\n this.renderTabs(false);\n });\n\n (this._SfTabContainer as HTMLDivElement).querySelector('#calendar-tab-month')?.addEventListener('click', () => {\n this.enableStream(true);\n this.renderTabs(true);\n });\n\n }\n\n processEvent = (value: any) => {\n\n console.log('processing due date', value.duedate.replace(/['\"]+/g, ''));\n const duedateArr = value.duedate.replace(/['\"]+/g, '').split(\",\") as Array<string>;\n\n const startMonth = parseInt(this.calendarStartMM);\n\n for(var i = 0; i < duedateArr.length; i++) {\n\n const dateArr = duedateArr[i].split(\"/\");\n console.log('datearr', dateArr);\n\n if(dateArr[2] == \"*\") {\n if(dateArr[1] == \"*\") {\n\n var j = startMonth;\n\n while(true) {\n\n console.log('processing event',dateArr[2],dateArr[1],j);\n\n const mmdd = (\"0\" +j).slice(-2) + \"/\" + (\"0\" + dateArr[0]).slice(-2);\n\n if(this.events == null) {\n this.events = {};\n }\n if(this.events[mmdd] == null) {\n this.events[mmdd] = [];\n }\n (this.events[mmdd] as Array<any>).push(value);\n\n\n if(startMonth !== 12) {\n\n if(j === (startMonth - 1)) {\n break;\n }\n }\n\n\n j++;\n\n if(j === 13) {\n j = 0;\n }\n\n } \n\n } else {\n\n const mmdd = (\"0\" +(parseInt(dateArr[1]))).slice(-2) + \"/\" + (\"0\" + dateArr[0]).slice(-2);\n\n if(this.events == null) {\n this.events = {};\n }\n if(this.events[mmdd] == null) {\n this.events[mmdd] = [];\n }\n (this.events[mmdd] as Array<any>).push(value);\n\n }\n }\n\n }\n\n console.log('calendar processed', this.calendar);\n console.log('event processed', this.events);\n\n }\n\n fetchDetail = async (value: any) => {\n\n const body: any = this.getApiBodyList();\n body.id = value;\n console.log('detail', value, body);\n let url = \"https://\"+this.apiIdDetail+\".execute-api.us-east-1.amazonaws.com/test/\" + this.apiMethodDetail;\n\n const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\n const xhr : any = (await this.prepareXhr(body, url, this._SfLoader, authorization)) as any;\n this._SfLoader.innerHTML = '';\n if(xhr.status == 200) {\n\n const jsonRespose = JSON.parse(xhr.responseText);\n console.log('jsonResponse', jsonRespose);\n this.processEvent(jsonRespose.data.value)\n \n } else {\n const jsonRespose = JSON.parse(xhr.responseText);\n this.setError(jsonRespose.error);\n }\n\n }\n\n fetchList = async () => {\n\n console.log('calendar fetching list', this.apiIdList);\n\n const body: any = this.getApiBodyList();\n\n if(this.apiIdList != null) {\n\n let url = \"https://\"+this.apiIdList+\".execute-api.us-east-1.amazonaws.com/test/\" + this.apiMethodList;\n\n console.log('calendar request body', body);\n console.log('calendar request url', url);\n\n const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\n const xhr : any = (await this.prepareXhr(body, url, this._SfLoader, authorization)) as any;\n this._SfLoader.innerHTML = '';\n if(xhr.status == 200) {\n\n const jsonRespose = JSON.parse(xhr.responseText);\n const fieldArr = JSON.parse(jsonRespose.data.value[this.apiResponseFieldList]) as Array<string>;\n\n for(var i = 0; i < fieldArr.length; i++) {\n\n console.log('events', fieldArr[i]);\n await this.fetchDetail(fieldArr[i])\n\n }\n \n } else {\n const jsonRespose = JSON.parse(xhr.responseText);\n this.setError(jsonRespose.error);\n }\n\n }\n\n }\n\n initCalendar = async () => {\n\n var newDate = null;\n var newMonth = null;\n var newYear = null;\n var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);\n\n console.log('startDate', startDate);\n \n do {\n\n this.calendar.push(startDate);\n startDate.setDate(startDate.getDate() + 1);\n\n newDate = (\"0\" + startDate.getDate()).slice(-2);\n newMonth = (\"0\" + startDate.getMonth()).slice(-2);\n newYear = (startDate.getFullYear());\n\n } while(!(newDate == this.calendarStartDD && newMonth == ((\"0\" + ((parseInt(this.calendarStartMM) - 1) + \"\")).slice(-2)) && newYear === (parseInt(this.calendarStartYYYY) + 1)));\n\n console.log(this.calendar);\n\n }\n\n initInputs = () => {\n\n this.calendarStartDD = (\"0\" + this.calendarStartDD).slice(-2);\n this.calendarStartMM = (\"0\" + this.calendarStartMM).slice(-2);\n\n }\n\n initListeners = () => {\n\n \n }\n\n loadMode = async () => {\n\n this.enableStream(false);\n this.initListeners();\n this.initInputs();\n this.initCalendar();\n\n console.log('calendar init done');\n\n await this.fetchList();\n \n if(this.events != null) {\n this.renderTabs(false);\n this.renderCalendar();\n this.renderStream();\n }\n\n }\n\n constructor() {\n super();\n }\n\n protected override firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n\n this.loadMode();\n\n }\n \n override connectedCallback() {\n super.connectedCallback()\n }\n \n override render() {\n\n return html`\n \n <link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\">\n <div class=\"SfIEventsC\">\n \n <div class=\"d-flex justify-center\">\n <div class=\"loader-element\"></div>\n </div>\n <div class=\"d-flex justify-center\" id=\"tab-container\">\n\n </div>\n <div class=\"d-flex justify-center\">\n <div class=\"d-flex flex-grow flex-wrap justify-center align-stretch\" id=\"calendar-container\">\n \n </div>\n <div class=\"d-flex flex-grow flex-wrap justify-center align-stretch\" id=\"stream-container\">\n \n </div>\n </div>\n <div class=\"d-flex justify-between\">\n <div class=\"lb\"></div>\n <div>\n <div class=\"div-row-error div-row-submit gone\">\n <div part=\"errormsg\" class=\"div-row-error-message\"></div>\n </div>\n <div class=\"div-row-success div-row-submit gone\">\n <div part=\"successmsg\" class=\"div-row-success-message\"></div>\n </div>\n </div>\n <div class=\"rb\"></div>\n </div>\n </div>\n\n `;\n }\n\n}\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sf-i-events': SfIEvents;\n }\n}\n"]}
@@ -148,6 +148,10 @@ export class SfIEvents extends LitElement {
148
148
  width: 90%;
149
149
  }
150
150
 
151
+ #stream-container {
152
+ padding: 1%;
153
+ }
154
+
151
155
  .stream-event-list {
152
156
  margin-left: 10px;
153
157
  padding: 10px;
@@ -226,6 +230,15 @@ export class SfIEvents extends LitElement {
226
230
  text-transform: capitalize;
227
231
  }
228
232
 
233
+ .tab-button {
234
+ padding: 10px;
235
+ padding-left: 15px;
236
+ padding-right: 15px;
237
+ font-size: 105%;
238
+ margin-left: 5px;
239
+ margin-right: 5px;
240
+ }
241
+
229
242
  .td-body {
230
243
  padding: 5px;
231
244
  }
@@ -426,9 +439,6 @@ export class SfIEvents extends LitElement {
426
439
 
427
440
  `;
428
441
 
429
- @query('#button-stream-cancel')
430
- _SfButtonStreamCancel: any;
431
-
432
442
  @query('.div-row-error')
433
443
  _SfRowError: any;
434
444
 
@@ -450,6 +460,9 @@ export class SfIEvents extends LitElement {
450
460
  @query('#stream-container')
451
461
  _SfStreamContainer: any;
452
462
 
463
+ @query('#tab-container')
464
+ _SfTabContainer: any;
465
+
453
466
  getEventField = (field: string) => {
454
467
 
455
468
  for(var i = 0; i < this.getEventFields().length; i++) {
@@ -535,11 +548,9 @@ export class SfIEvents extends LitElement {
535
548
  enableStream(value: boolean) {
536
549
 
537
550
  if(value) {
538
- (this._SfButtonStreamCancel as HTMLButtonElement).style.display = "inline";
539
551
  (this._SfCalendarContainer as HTMLDivElement).style.display = 'none';
540
552
  (this._SfStreamContainer as HTMLDivElement).style.display = 'flex';
541
553
  } else {
542
- (this._SfButtonStreamCancel as HTMLButtonElement).style.display = "none";
543
554
  (this._SfCalendarContainer as HTMLDivElement).style.display = 'flex';
544
555
  (this._SfStreamContainer as HTMLDivElement).style.display = 'none';
545
556
  }
@@ -830,6 +841,7 @@ export class SfIEvents extends LitElement {
830
841
  const id = (ev.target as HTMLButtonElement).id.split("-")[2];
831
842
  this.enableStream(true);
832
843
  this.renderStream(parseInt(id));
844
+ this.renderTabs(true);
833
845
 
834
846
  })
835
847
 
@@ -837,6 +849,27 @@ export class SfIEvents extends LitElement {
837
849
 
838
850
  }
839
851
 
852
+ renderTabs = (enableStream: boolean) => {
853
+
854
+ var html = '';
855
+
856
+ html += '<button class="tab-button" id="calendar-tab-year" part="'+(enableStream ? 'calendar-tab-button-not-selected' : 'calendar-tab-button-selected')+'">Year</button>';
857
+ html += '<button class="tab-button" id="calendar-tab-month" part="'+(enableStream ? 'calendar-tab-button-selected' : 'calendar-tab-button-not-selected')+'">Month</button>';
858
+
859
+ (this._SfTabContainer as HTMLDivElement).innerHTML = html;
860
+
861
+ (this._SfTabContainer as HTMLDivElement).querySelector('#calendar-tab-year')?.addEventListener('click', () => {
862
+ this.enableStream(false);
863
+ this.renderTabs(false);
864
+ });
865
+
866
+ (this._SfTabContainer as HTMLDivElement).querySelector('#calendar-tab-month')?.addEventListener('click', () => {
867
+ this.enableStream(true);
868
+ this.renderTabs(true);
869
+ });
870
+
871
+ }
872
+
840
873
  processEvent = (value: any) => {
841
874
 
842
875
  console.log('processing due date', value.duedate.replace(/['"]+/g, ''));
@@ -1000,10 +1033,7 @@ export class SfIEvents extends LitElement {
1000
1033
 
1001
1034
  initListeners = () => {
1002
1035
 
1003
- (this._SfButtonStreamCancel as HTMLButtonElement).addEventListener('click', () => {
1004
- this.enableStream(false);
1005
- });
1006
-
1036
+
1007
1037
  }
1008
1038
 
1009
1039
  loadMode = async () => {
@@ -1018,6 +1048,7 @@ export class SfIEvents extends LitElement {
1018
1048
  await this.fetchList();
1019
1049
 
1020
1050
  if(this.events != null) {
1051
+ this.renderTabs(false);
1021
1052
  this.renderCalendar();
1022
1053
  this.renderStream();
1023
1054
  }
@@ -1048,8 +1079,8 @@ export class SfIEvents extends LitElement {
1048
1079
  <div class="d-flex justify-center">
1049
1080
  <div class="loader-element"></div>
1050
1081
  </div>
1051
- <div class="d-flex">
1052
- <button id="button-stream-cancel" part="button-icon" class="material-icons">keyboard_backspace</button>
1082
+ <div class="d-flex justify-center" id="tab-container">
1083
+
1053
1084
  </div>
1054
1085
  <div class="d-flex justify-center">
1055
1086
  <div class="d-flex flex-grow flex-wrap justify-center align-stretch" id="calendar-container">