sf-i-events 1.0.22 → 1.0.24
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 +75 -15
- package/package.json +2 -2
- package/sf-i-events.d.ts +10 -0
- package/sf-i-events.d.ts.map +1 -1
- package/sf-i-events.js +212 -4
- package/sf-i-events.js.map +1 -1
- package/src/sf-i-events.ts +268 -4
package/dev/index.html
CHANGED
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
15
15
|
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@200;300;400;600&display=swap" rel="stylesheet">
|
|
16
16
|
<script type="module">
|
|
17
|
-
import {SfISelect} from 'https://unpkg.com/sf-i-select@1.0.
|
|
18
|
-
import {
|
|
17
|
+
import {SfISelect} from 'https://unpkg.com/sf-i-select@1.0.80/sf-i-select.js?module';
|
|
18
|
+
import {SfIForm} from 'https://unpkg.com/sf-i-form@1.0.44/sf-i-form.js?module';
|
|
19
|
+
import {SfISubSelect} from 'https://unpkg.com/sf-i-sub-select@1.0.81/sf-i-sub-select.js?module';
|
|
19
20
|
</script>
|
|
20
21
|
<style>
|
|
21
22
|
|
|
@@ -102,7 +103,76 @@
|
|
|
102
103
|
transition: 0.3s;
|
|
103
104
|
}
|
|
104
105
|
|
|
106
|
+
sf-i-events::part(td-head) {
|
|
107
|
+
color: #888;
|
|
108
|
+
font-weight: 400;
|
|
109
|
+
padding-left: 5px;
|
|
110
|
+
vertical-align: middle;
|
|
111
|
+
font-size: 80%;
|
|
112
|
+
text-transform: capitalize;
|
|
113
|
+
text-align: left;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
sf-i-events::part(td-body) {
|
|
117
|
+
color: #555;
|
|
118
|
+
font-weight: 400;
|
|
119
|
+
padding: 5px;
|
|
120
|
+
vertical-align: middle;
|
|
121
|
+
font-size: 80%;
|
|
122
|
+
white-space: nowrap;
|
|
123
|
+
text-align: left;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
sf-i-events::part(stream-event-selected) {
|
|
127
|
+
border-width: 0px;
|
|
128
|
+
border-radius: 5px;
|
|
129
|
+
color: #666;
|
|
130
|
+
background: #efefef;
|
|
131
|
+
box-shadow: 1px 1px 10px 0 rgba(0, 0, 0, 0.25), -1px -1px 10px 0 rgba(255, 255, 255, 0.6);
|
|
132
|
+
border-top: solid 1px rgba(255, 255, 255, 0.3);
|
|
133
|
+
border-left: solid 1px rgba(255, 255, 255, 0.3);
|
|
134
|
+
border-bottom: solid 1px rgba(0, 0, 0, 0.1);
|
|
135
|
+
border-right: solid 1px rgba(0, 0, 0, 0.1);
|
|
136
|
+
font-weight: 900;
|
|
137
|
+
}
|
|
105
138
|
|
|
139
|
+
sf-i-events::part(stream-month-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(stream-month-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
|
+
}
|
|
163
|
+
|
|
164
|
+
sf-i-events::part(stream-event-list) {
|
|
165
|
+
border-width: 0px;
|
|
166
|
+
border-radius: 5px;
|
|
167
|
+
background: #efefef;
|
|
168
|
+
box-shadow: inset 3px 3px 5px #bbbbbb,
|
|
169
|
+
inset -5px -5px 8px #ffffff;
|
|
170
|
+
border-top: solid 1px rgba(255, 255, 255, 0.3);
|
|
171
|
+
border-left: solid 1px rgba(255, 255, 255, 0.3);
|
|
172
|
+
border-bottom: solid 1px rgba(0, 0, 0, 0.1);
|
|
173
|
+
border-right: solid 1px rgba(0, 0, 0, 0.1);
|
|
174
|
+
}
|
|
175
|
+
|
|
106
176
|
|
|
107
177
|
sf-i-events::part(button-icon) {
|
|
108
178
|
|
|
@@ -244,19 +314,7 @@
|
|
|
244
314
|
font-weight: 400;
|
|
245
315
|
}
|
|
246
316
|
|
|
247
|
-
|
|
248
|
-
color: #888;
|
|
249
|
-
font-weight: 400;
|
|
250
|
-
padding: 5px;
|
|
251
|
-
vertical-align: middle;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
sf-i-events::part(td-body) {
|
|
255
|
-
color: #555;
|
|
256
|
-
font-weight: 400;
|
|
257
|
-
padding: 5px;
|
|
258
|
-
vertical-align: middle;
|
|
259
|
-
}
|
|
317
|
+
|
|
260
318
|
|
|
261
319
|
sf-i-events::part(td-action) {
|
|
262
320
|
color: #888;
|
|
@@ -329,6 +387,8 @@
|
|
|
329
387
|
apiIdDetail="r42gyc2xx1"
|
|
330
388
|
apiMethodDetail="detail"
|
|
331
389
|
apiBodyDetail="{"id": "ID-DETAIL"}"
|
|
390
|
+
eventFieldDependencies="[{"type": "foreignkey", "parent": "country", "child": "state"},{"type": "foreignkey", "parent": "category", "child": "subcategory"},{"type": "foreignkey", "parent": "frequency", "child": "subfrequency"}]"
|
|
391
|
+
eventFields="[{"type": "sf-i-select", "apiId": "3z3fiubz8e", "field": "riskarea"},{"type": "sf-i-select", "apiId": "5s7ih5uw4h", "field": "jurisdiction"},{"type": "sf-i-select", "apiId": "oqze24s784", "field": "updatetype"},{"type": "sf-i-select", "apiId": "zu3kh9cq2c", "field": "country"},{"type": "sf-i-select", "apiId": "8ijy7mze67", "field": "specificity"},{"type": "sf-i-select", "apiId": "et1hdzg882", "field": "risk"},{"type": "sf-i-select", "apiId": "lhpn6gh0il", "field": "frequency"},{"type": "sf-i-select", "apiId": "8an2d4j1gc", "field": "category"},{"type": "sf-i-select", "apiId": "vofssiq1t3", "field": "obligationtype"},{"type": "sf-i-sub-select", "apiId": "clnu4kk1ah", "field": "state"},{"type": "sf-i-sub-select", "apiId": "aysa6i6723", "field": "subfrequency"},{"type": "sf-i-sub-select", "apiId": "mdkc0e2bo5", "field": "subcategory"},{"type": "sf-i-form", "apiId": "4wb2x6fkga", "field": "statute", "projectField": "name"}]"
|
|
332
392
|
calendarStartDD="01"
|
|
333
393
|
calendarStartMM="04"
|
|
334
394
|
calendarStartYYYY="2023"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sf-i-events",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.24",
|
|
5
5
|
"description": "Superflows Navigation Component",
|
|
6
6
|
"main": "sf-i-events.js",
|
|
7
7
|
"module": "sf-i-events.js",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"fs": "^0.0.1-security",
|
|
55
55
|
"lit": "^2.2.4",
|
|
56
|
-
"sf-i-select": "^1.0.
|
|
56
|
+
"sf-i-select": "^1.0.80",
|
|
57
57
|
"sf-i-sub-select": "^1.0.68",
|
|
58
58
|
"sinon": "^15.0.1"
|
|
59
59
|
},
|
package/sf-i-events.d.ts
CHANGED
|
@@ -29,6 +29,10 @@ export declare class SfIEvents extends LitElement {
|
|
|
29
29
|
calendar: Date[];
|
|
30
30
|
monthNames: string[];
|
|
31
31
|
events: any;
|
|
32
|
+
eventFields: any;
|
|
33
|
+
getEventFields: () => any;
|
|
34
|
+
eventFieldDependencies: any;
|
|
35
|
+
getEventFieldDependencies: () => any;
|
|
32
36
|
getApiBodyList: () => any;
|
|
33
37
|
getApiBodyDetail: () => any;
|
|
34
38
|
mode: string;
|
|
@@ -42,6 +46,10 @@ export declare class SfIEvents extends LitElement {
|
|
|
42
46
|
_SfRowSuccessMessage: any;
|
|
43
47
|
_SfLoader: any;
|
|
44
48
|
_SfCalendarContainer: any;
|
|
49
|
+
_SfStreamContainer: any;
|
|
50
|
+
getEventField: (field: string) => any;
|
|
51
|
+
getParentFieldFromDepedencies: (field: string) => any;
|
|
52
|
+
getEventTexts: (field: string, selectedId: Array<string>, row: any) => string;
|
|
45
53
|
enableStream(value: boolean): void;
|
|
46
54
|
prepareXhr: (data: any, url: string, loaderElement: any, authorization: any) => Promise<unknown>;
|
|
47
55
|
clearMessages: () => void;
|
|
@@ -52,6 +60,8 @@ export declare class SfIEvents extends LitElement {
|
|
|
52
60
|
getBlanks: (month: number, year: number) => number;
|
|
53
61
|
insertDates: (month: number, year: number) => string;
|
|
54
62
|
insertDayNames: () => string;
|
|
63
|
+
renderStreamEvents: (index: number, month: number, year: number) => string;
|
|
64
|
+
renderStream: (index?: number) => void;
|
|
55
65
|
renderCalendar: () => void;
|
|
56
66
|
processEvent: (value: any) => void;
|
|
57
67
|
fetchDetail: (value: any) => Promise<void>;
|
package/sf-i-events.d.ts.map
CHANGED
|
@@ -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;
|
|
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,0BA8TpB;IAGF,eAAe,EAAE,GAAG,CAAC;IAGrB,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;IAgB3B,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,aAwBb;IAED,YAAY,UAAW,GAAG,UAoEzB;IAED,WAAW,UAAiB,GAAG,mBAqB9B;IAED,SAAS,sBAmCR;IAED,YAAY,sBAsBX;IAED,UAAU,aAKT;IAED,aAAa,aAUZ;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;CAuChB;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,SAAS,CAAC;KAC1B;CACF"}
|
package/sf-i-events.js
CHANGED
|
@@ -38,6 +38,14 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
38
38
|
this.calendar = [];
|
|
39
39
|
this.monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
40
40
|
this.events = null;
|
|
41
|
+
this.eventFields = null;
|
|
42
|
+
this.getEventFields = () => {
|
|
43
|
+
return JSON.parse(this.eventFields);
|
|
44
|
+
};
|
|
45
|
+
this.eventFieldDependencies = null;
|
|
46
|
+
this.getEventFieldDependencies = () => {
|
|
47
|
+
return JSON.parse(this.eventFieldDependencies);
|
|
48
|
+
};
|
|
41
49
|
this.getApiBodyList = () => {
|
|
42
50
|
console.log('calendar api body list', this.apiBodyList);
|
|
43
51
|
try {
|
|
@@ -51,6 +59,57 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
51
59
|
return JSON.parse(this.apiBodyDetail);
|
|
52
60
|
};
|
|
53
61
|
this.flow = "";
|
|
62
|
+
this.getEventField = (field) => {
|
|
63
|
+
for (var i = 0; i < this.getEventFields().length; i++) {
|
|
64
|
+
if (this.getEventFields()[i].field == field) {
|
|
65
|
+
return this.getEventFields()[i];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
this.getParentFieldFromDepedencies = (field) => {
|
|
70
|
+
for (var i = 0; i < this.getEventFieldDependencies().length; i++) {
|
|
71
|
+
if (this.getEventFieldDependencies()[i].type == "foreignkey" && this.getEventFieldDependencies()[i].child == field) {
|
|
72
|
+
return this.getEventFieldDependencies()[i].parent;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
};
|
|
77
|
+
this.getEventTexts = (field, selectedId, row) => {
|
|
78
|
+
console.log('get event texts', field, selectedId, row);
|
|
79
|
+
if (this.getEventField(field) != null && this.getEventField(field).type == "sf-i-select") {
|
|
80
|
+
var selectedIds = "";
|
|
81
|
+
selectedIds += '[';
|
|
82
|
+
for (var i = 0; i < selectedId.length; i++) {
|
|
83
|
+
selectedIds += ('"' + selectedId[i] + '"');
|
|
84
|
+
if (i < selectedId.length - 1) {
|
|
85
|
+
selectedIds += ',';
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
selectedIds += ']';
|
|
89
|
+
return '<sf-i-select apiId="' + this.getEventField(field).apiId + '" name="Select" label="Select" mode="text" selectedId="' + selectedIds + '"></sf-i-select>';
|
|
90
|
+
}
|
|
91
|
+
if (this.getEventField(field) != null && this.getEventField(field).type == "sf-i-sub-select") {
|
|
92
|
+
const parentField = this.getParentFieldFromDepedencies(field);
|
|
93
|
+
console.log('parentfield', parentField);
|
|
94
|
+
var selectedIds = "";
|
|
95
|
+
selectedIds += '[';
|
|
96
|
+
for (var i = 0; i < selectedId.length; i++) {
|
|
97
|
+
selectedIds += ('"' + selectedId[i] + '"');
|
|
98
|
+
if (i < selectedId.length - 1) {
|
|
99
|
+
selectedIds += ',';
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
selectedIds += ']';
|
|
103
|
+
const filterId = JSON.parse(row[parentField])[0];
|
|
104
|
+
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>');
|
|
105
|
+
return '<sf-i-sub-select apiId="' + this.getEventField(field).apiId + '" name="Select" label="Select" mode="text" selectedId="' + selectedIds + '" filterId="' + filterId + '"></sf-i-sub-select>';
|
|
106
|
+
}
|
|
107
|
+
if (this.getEventField(field) != null && this.getEventField(field).type == "sf-i-form") {
|
|
108
|
+
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>');
|
|
109
|
+
return '<sf-i-form name="Select" apiId="' + this.getEventField(field).apiId + '" selectedId="' + selectedId[0] + '" projectField="' + this.getEventField(field).projectField + '" mode="text"></sf-i-form>';
|
|
110
|
+
}
|
|
111
|
+
return "";
|
|
112
|
+
};
|
|
54
113
|
this.prepareXhr = async (data, url, loaderElement, authorization) => {
|
|
55
114
|
if (loaderElement != null) {
|
|
56
115
|
loaderElement.innerHTML = '<div class="lds-dual-ring"></div>';
|
|
@@ -155,6 +214,90 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
155
214
|
html += '</div>';
|
|
156
215
|
return html;
|
|
157
216
|
};
|
|
217
|
+
this.renderStreamEvents = (index, month, year) => {
|
|
218
|
+
const lastDay = this.getLastDayOfMonth(month, year);
|
|
219
|
+
var html = '<div id="stream-event-' + index + '" part="stream-event-list" class="stream-event-list">';
|
|
220
|
+
for (var i = 1; i <= lastDay; i++) {
|
|
221
|
+
const mmdd = ("0" + (month + 1)).slice(-2) + "/" + ("0" + i).slice(-2);
|
|
222
|
+
if (this.events[mmdd] != null) {
|
|
223
|
+
//html += '<div>'+month + ',' + year + ',' + i+'</div>'
|
|
224
|
+
html += '<div part="stream-event-selected" class="d-flex stream-event-selected">';
|
|
225
|
+
html += '<div>' + ("0" + i).slice(-2) + ' |</div>';
|
|
226
|
+
for (var j = 0; j < this.events[mmdd].length; j++) {
|
|
227
|
+
html += '<div class="stream-events-container flex-grow">';
|
|
228
|
+
html += '<table>';
|
|
229
|
+
html += '<thead>';
|
|
230
|
+
for (var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
|
|
231
|
+
html += '<th part="td-head">';
|
|
232
|
+
html += Object.keys(this.events[mmdd][j])[k];
|
|
233
|
+
html += '</th>';
|
|
234
|
+
}
|
|
235
|
+
html += '</thead>';
|
|
236
|
+
html += '<tbody>';
|
|
237
|
+
for (var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
|
|
238
|
+
html += '<th part="td-body">';
|
|
239
|
+
if (this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].indexOf("[") >= 0) {
|
|
240
|
+
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]);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
html += this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].replace(/"/g, "");
|
|
244
|
+
}
|
|
245
|
+
html += '</th>';
|
|
246
|
+
}
|
|
247
|
+
html += '</tbody>';
|
|
248
|
+
html += '</table>';
|
|
249
|
+
html += '</div>';
|
|
250
|
+
}
|
|
251
|
+
html += '</div>';
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
html += '<div part="stream-event-not-selected" class="d-flex stream-event-not-selected">';
|
|
255
|
+
html += '<div>' + ("0" + i).slice(-2) + ' | ---</div>';
|
|
256
|
+
html += '</div>';
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
html += '</div>';
|
|
260
|
+
return html;
|
|
261
|
+
};
|
|
262
|
+
this.renderStream = (index = 0) => {
|
|
263
|
+
var _a;
|
|
264
|
+
console.log('renderstream', index);
|
|
265
|
+
var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);
|
|
266
|
+
var html = '';
|
|
267
|
+
html += '<div class="d-flex flex-grow">';
|
|
268
|
+
html += '<div class="calendar-left-col">';
|
|
269
|
+
var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);
|
|
270
|
+
for (var i = 0; i < 12; i++) {
|
|
271
|
+
var part = "";
|
|
272
|
+
if (i === index) {
|
|
273
|
+
part = "stream-month-selected";
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
part = "stream-month-not-selected";
|
|
277
|
+
}
|
|
278
|
+
html += '<div part="' + part + '" id="stream-month-' + i + '" part="month-title" class="title-item ' + part + '">' + this.monthNames[startDate.getMonth()] + ' ' + startDate.getFullYear() + '</div>';
|
|
279
|
+
startDate.setMonth(startDate.getMonth() + 1);
|
|
280
|
+
}
|
|
281
|
+
html += '</div>';
|
|
282
|
+
html += '<div class="calendar-right-data">';
|
|
283
|
+
startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);
|
|
284
|
+
for (i = 0; i < 12; i++) {
|
|
285
|
+
if (i === index) {
|
|
286
|
+
console.log(i, index);
|
|
287
|
+
html += this.renderStreamEvents(i, startDate.getMonth(), startDate.getFullYear());
|
|
288
|
+
}
|
|
289
|
+
startDate.setMonth(startDate.getMonth() + 1);
|
|
290
|
+
}
|
|
291
|
+
html += '</div>';
|
|
292
|
+
html += '</div>';
|
|
293
|
+
this._SfStreamContainer.innerHTML = html;
|
|
294
|
+
for (var i = 0; i < 12; i++) {
|
|
295
|
+
(_a = this._SfStreamContainer.querySelector('#stream-month-' + i)) === null || _a === void 0 ? void 0 : _a.addEventListener('click', (ev) => {
|
|
296
|
+
const target = parseInt(ev.target.id.split('-')[2]);
|
|
297
|
+
this.renderStream(target);
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
};
|
|
158
301
|
this.renderCalendar = () => {
|
|
159
302
|
console.log('redering calendar', this.events);
|
|
160
303
|
var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);
|
|
@@ -187,7 +330,10 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
187
330
|
if (this.events == null) {
|
|
188
331
|
this.events = {};
|
|
189
332
|
}
|
|
190
|
-
this.events[mmdd]
|
|
333
|
+
if (this.events[mmdd] == null) {
|
|
334
|
+
this.events[mmdd] = [];
|
|
335
|
+
}
|
|
336
|
+
this.events[mmdd].push(value);
|
|
191
337
|
if (startMonth !== 12) {
|
|
192
338
|
if (j === (startMonth - 1)) {
|
|
193
339
|
break;
|
|
@@ -200,11 +346,14 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
200
346
|
}
|
|
201
347
|
}
|
|
202
348
|
else {
|
|
203
|
-
const mmdd = ("0" + dateArr[1]).slice(-2) + "/" + ("0" + dateArr[0]).slice(-2);
|
|
349
|
+
const mmdd = ("0" + (parseInt(dateArr[1]))).slice(-2) + "/" + ("0" + dateArr[0]).slice(-2);
|
|
204
350
|
if (this.events == null) {
|
|
205
351
|
this.events = {};
|
|
206
352
|
}
|
|
207
|
-
this.events[mmdd]
|
|
353
|
+
if (this.events[mmdd] == null) {
|
|
354
|
+
this.events[mmdd] = [];
|
|
355
|
+
}
|
|
356
|
+
this.events[mmdd].push(value);
|
|
208
357
|
}
|
|
209
358
|
}
|
|
210
359
|
}
|
|
@@ -289,6 +438,7 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
289
438
|
await this.fetchList();
|
|
290
439
|
if (this.events != null) {
|
|
291
440
|
this.renderCalendar();
|
|
441
|
+
this.renderStream();
|
|
292
442
|
}
|
|
293
443
|
};
|
|
294
444
|
}
|
|
@@ -296,10 +446,14 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
296
446
|
if (value) {
|
|
297
447
|
this._SfButtonStream.style.display = "none";
|
|
298
448
|
this._SfButtonStreamCancel.style.display = "inline";
|
|
449
|
+
this._SfCalendarContainer.style.display = 'none';
|
|
450
|
+
this._SfStreamContainer.style.display = 'flex';
|
|
299
451
|
}
|
|
300
452
|
else {
|
|
301
453
|
this._SfButtonStream.style.display = "inline";
|
|
302
454
|
this._SfButtonStreamCancel.style.display = "none";
|
|
455
|
+
this._SfCalendarContainer.style.display = 'flex';
|
|
456
|
+
this._SfStreamContainer.style.display = 'none';
|
|
303
457
|
}
|
|
304
458
|
}
|
|
305
459
|
firstUpdated(_changedProperties) {
|
|
@@ -319,11 +473,14 @@ let SfIEvents = class SfIEvents extends LitElement {
|
|
|
319
473
|
</div>
|
|
320
474
|
<div class="d-flex justify-end">
|
|
321
475
|
<button id="button-stream-cancel" part="button-icon" class="material-icons">close</button>
|
|
322
|
-
<button id="button-stream" part="button-icon" class="material-icons">
|
|
476
|
+
<button id="button-stream" part="button-icon" class="material-icons">stream</button>
|
|
323
477
|
</div>
|
|
324
478
|
<div class="d-flex justify-center">
|
|
325
479
|
<div class="d-flex flex-grow flex-wrap justify-center align-stretch" id="calendar-container">
|
|
326
480
|
|
|
481
|
+
</div>
|
|
482
|
+
<div class="d-flex flex-grow flex-wrap justify-center align-stretch" id="stream-container">
|
|
483
|
+
|
|
327
484
|
</div>
|
|
328
485
|
</div>
|
|
329
486
|
<div class="d-flex justify-between">
|
|
@@ -386,6 +543,48 @@ SfIEvents.styles = css `
|
|
|
386
543
|
width: 90%;
|
|
387
544
|
}
|
|
388
545
|
|
|
546
|
+
.stream-event-list {
|
|
547
|
+
margin-left: 10px;
|
|
548
|
+
padding: 10px;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
.stream-events-container {
|
|
552
|
+
overflow-x: auto;
|
|
553
|
+
width: 200px;
|
|
554
|
+
}
|
|
555
|
+
.stream-event-selected {
|
|
556
|
+
padding-left: 20px;
|
|
557
|
+
padding-right: 10px;
|
|
558
|
+
padding-top: 5px;
|
|
559
|
+
padding-bottom: 5px;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
.stream-event-not-selected {
|
|
563
|
+
padding-left: 20px;
|
|
564
|
+
padding-right: 10px;
|
|
565
|
+
padding-top: 5px;
|
|
566
|
+
padding-bottom: 5px;
|
|
567
|
+
color: #aaa;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.stream-month-selected {
|
|
571
|
+
padding: 10px;
|
|
572
|
+
text-align: center;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
.stream-month-not-selected {
|
|
576
|
+
padding: 10px;
|
|
577
|
+
text-align: center;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
.calendar-left-col {
|
|
581
|
+
width: 30%;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
.calendar-right-data {
|
|
585
|
+
width: 70%;
|
|
586
|
+
}
|
|
587
|
+
|
|
389
588
|
.day-item {
|
|
390
589
|
width: 14%;
|
|
391
590
|
margin-bottom: 5px;
|
|
@@ -659,6 +858,12 @@ __decorate([
|
|
|
659
858
|
__decorate([
|
|
660
859
|
property()
|
|
661
860
|
], SfIEvents.prototype, "events", void 0);
|
|
861
|
+
__decorate([
|
|
862
|
+
property()
|
|
863
|
+
], SfIEvents.prototype, "eventFields", void 0);
|
|
864
|
+
__decorate([
|
|
865
|
+
property()
|
|
866
|
+
], SfIEvents.prototype, "eventFieldDependencies", void 0);
|
|
662
867
|
__decorate([
|
|
663
868
|
property()
|
|
664
869
|
], SfIEvents.prototype, "mode", void 0);
|
|
@@ -689,6 +894,9 @@ __decorate([
|
|
|
689
894
|
__decorate([
|
|
690
895
|
query('#calendar-container')
|
|
691
896
|
], SfIEvents.prototype, "_SfCalendarContainer", void 0);
|
|
897
|
+
__decorate([
|
|
898
|
+
query('#stream-container')
|
|
899
|
+
], SfIEvents.prototype, "_SfStreamContainer", void 0);
|
|
692
900
|
SfIEvents = __decorate([
|
|
693
901
|
customElement('sf-i-events')
|
|
694
902
|
], SfIEvents);
|
package/sf-i-events.js.map
CHANGED
|
@@ -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 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 .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 margin-bottom: 10px;\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')\n _SfButtonStream: any;\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 enableStream(value: boolean) {\n\n if(value) {\n (this._SfButtonStream as HTMLButtonElement).style.display = \"none\";\n (this._SfButtonStreamCancel as HTMLButtonElement).style.display = \"inline\";\n } else {\n (this._SfButtonStream as HTMLButtonElement).style.display = \"inline\";\n (this._SfButtonStreamCancel as HTMLButtonElement).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 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\">';\n html += '<div part=\"month-title\" class=\"title-item\">' + this.monthNames[startDate.getMonth()] + ' ' + startDate.getFullYear() + '</div>';\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 }\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 this.events[mmdd] = 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\" +dateArr[1]).slice(-2) + \"/\" + (\"0\" + dateArr[0]).slice(-2);\n\n if(this.events == null) {\n this.events = {};\n }\n this.events[mmdd] = 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._SfButtonStream as HTMLButtonElement).addEventListener('click', () => {\n this.enableStream(true);\n });\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 }\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-end\">\n <button id=\"button-stream-cancel\" part=\"button-icon\" class=\"material-icons\">close</button>\n <button id=\"button-stream\" part=\"button-icon\" class=\"material-icons\">air</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>\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\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":"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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 margin-bottom: 10px;\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')\n _SfButtonStream: any;\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 += ('"'+selectedId[i]+'"');\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 += ('"'+selectedId[i]+'"');\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._SfButtonStream as HTMLButtonElement).style.display = \"none\";\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._SfButtonStream as HTMLButtonElement).style.display = \"inline\";\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()] + ' ' + 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\">';\n html += '<div part=\"month-title\" class=\"title-item\">' + this.monthNames[startDate.getMonth()] + ' ' + startDate.getFullYear() + '</div>';\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 }\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._SfButtonStream as HTMLButtonElement).addEventListener('click', () => {\n this.enableStream(true);\n });\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 justify-end\">\n <button id=\"button-stream-cancel\" part=\"button-icon\" class=\"material-icons\">close</button>\n <button id=\"button-stream\" part=\"button-icon\" class=\"material-icons\">stream</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"]}
|
package/src/sf-i-events.ts
CHANGED
|
@@ -72,6 +72,20 @@ export class SfIEvents extends LitElement {
|
|
|
72
72
|
@property()
|
|
73
73
|
events: any = null;
|
|
74
74
|
|
|
75
|
+
@property()
|
|
76
|
+
eventFields: any = null;
|
|
77
|
+
|
|
78
|
+
getEventFields = () => {
|
|
79
|
+
return JSON.parse(this.eventFields);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@property()
|
|
83
|
+
eventFieldDependencies: any = null;
|
|
84
|
+
|
|
85
|
+
getEventFieldDependencies = () => {
|
|
86
|
+
return JSON.parse(this.eventFieldDependencies);
|
|
87
|
+
}
|
|
88
|
+
|
|
75
89
|
getApiBodyList = () => {
|
|
76
90
|
console.log('calendar api body list', this.apiBodyList);
|
|
77
91
|
try {
|
|
@@ -134,6 +148,48 @@ export class SfIEvents extends LitElement {
|
|
|
134
148
|
width: 90%;
|
|
135
149
|
}
|
|
136
150
|
|
|
151
|
+
.stream-event-list {
|
|
152
|
+
margin-left: 10px;
|
|
153
|
+
padding: 10px;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.stream-events-container {
|
|
157
|
+
overflow-x: auto;
|
|
158
|
+
width: 200px;
|
|
159
|
+
}
|
|
160
|
+
.stream-event-selected {
|
|
161
|
+
padding-left: 20px;
|
|
162
|
+
padding-right: 10px;
|
|
163
|
+
padding-top: 5px;
|
|
164
|
+
padding-bottom: 5px;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.stream-event-not-selected {
|
|
168
|
+
padding-left: 20px;
|
|
169
|
+
padding-right: 10px;
|
|
170
|
+
padding-top: 5px;
|
|
171
|
+
padding-bottom: 5px;
|
|
172
|
+
color: #aaa;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.stream-month-selected {
|
|
176
|
+
padding: 10px;
|
|
177
|
+
text-align: center;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.stream-month-not-selected {
|
|
181
|
+
padding: 10px;
|
|
182
|
+
text-align: center;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.calendar-left-col {
|
|
186
|
+
width: 30%;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.calendar-right-data {
|
|
190
|
+
width: 70%;
|
|
191
|
+
}
|
|
192
|
+
|
|
137
193
|
.day-item {
|
|
138
194
|
width: 14%;
|
|
139
195
|
margin-bottom: 5px;
|
|
@@ -393,14 +449,103 @@ export class SfIEvents extends LitElement {
|
|
|
393
449
|
@query('#calendar-container')
|
|
394
450
|
_SfCalendarContainer: any;
|
|
395
451
|
|
|
452
|
+
@query('#stream-container')
|
|
453
|
+
_SfStreamContainer: any;
|
|
454
|
+
|
|
455
|
+
getEventField = (field: string) => {
|
|
456
|
+
|
|
457
|
+
for(var i = 0; i < this.getEventFields().length; i++) {
|
|
458
|
+
|
|
459
|
+
if(this.getEventFields()[i].field == field) {
|
|
460
|
+
return this.getEventFields()[i];
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
getParentFieldFromDepedencies = (field: string) => {
|
|
468
|
+
|
|
469
|
+
for(var i = 0; i < this.getEventFieldDependencies().length; i++) {
|
|
470
|
+
|
|
471
|
+
if(this.getEventFieldDependencies()[i].type == "foreignkey" && this.getEventFieldDependencies()[i].child == field) {
|
|
472
|
+
return this.getEventFieldDependencies()[i].parent;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
return null;
|
|
478
|
+
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
getEventTexts = (field: string, selectedId: Array<string>, row: any) => {
|
|
482
|
+
|
|
483
|
+
console.log('get event texts', field, selectedId, row);
|
|
484
|
+
|
|
485
|
+
if(this.getEventField(field) != null && this.getEventField(field).type == "sf-i-select") {
|
|
486
|
+
|
|
487
|
+
var selectedIds = "";
|
|
488
|
+
selectedIds += '[';
|
|
489
|
+
for(var i = 0; i < selectedId.length; i++) {
|
|
490
|
+
selectedIds += ('"'+selectedId[i]+'"');
|
|
491
|
+
if(i < selectedId.length - 1) {
|
|
492
|
+
selectedIds += ',';
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
selectedIds += ']';
|
|
496
|
+
|
|
497
|
+
return '<sf-i-select apiId="'+this.getEventField(field).apiId+'" name="Select" label="Select" mode="text" selectedId="'+selectedIds+'"></sf-i-select>'
|
|
498
|
+
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
if(this.getEventField(field) != null && this.getEventField(field).type == "sf-i-sub-select") {
|
|
502
|
+
|
|
503
|
+
const parentField = this.getParentFieldFromDepedencies(field);
|
|
504
|
+
|
|
505
|
+
console.log('parentfield', parentField);
|
|
506
|
+
|
|
507
|
+
var selectedIds = "";
|
|
508
|
+
selectedIds += '[';
|
|
509
|
+
for(var i = 0; i < selectedId.length; i++) {
|
|
510
|
+
selectedIds += ('"'+selectedId[i]+'"');
|
|
511
|
+
if(i < selectedId.length - 1) {
|
|
512
|
+
selectedIds += ',';
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
selectedIds += ']';
|
|
516
|
+
|
|
517
|
+
const filterId = JSON.parse(row[parentField])[0];
|
|
518
|
+
|
|
519
|
+
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>');
|
|
520
|
+
|
|
521
|
+
return '<sf-i-sub-select apiId="'+this.getEventField(field).apiId+'" name="Select" label="Select" mode="text" selectedId="'+selectedIds+'" filterId="'+filterId+'"></sf-i-sub-select>'
|
|
522
|
+
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
if(this.getEventField(field) != null && this.getEventField(field).type == "sf-i-form") {
|
|
526
|
+
|
|
527
|
+
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>');
|
|
528
|
+
|
|
529
|
+
return '<sf-i-form name="Select" apiId="'+this.getEventField(field).apiId+'" selectedId="'+selectedId[0]+'" projectField="'+this.getEventField(field).projectField+'" mode="text"></sf-i-form>'
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
return "";
|
|
535
|
+
}
|
|
536
|
+
|
|
396
537
|
enableStream(value: boolean) {
|
|
397
538
|
|
|
398
539
|
if(value) {
|
|
399
540
|
(this._SfButtonStream as HTMLButtonElement).style.display = "none";
|
|
400
541
|
(this._SfButtonStreamCancel as HTMLButtonElement).style.display = "inline";
|
|
542
|
+
(this._SfCalendarContainer as HTMLDivElement).style.display = 'none';
|
|
543
|
+
(this._SfStreamContainer as HTMLDivElement).style.display = 'flex';
|
|
401
544
|
} else {
|
|
402
545
|
(this._SfButtonStream as HTMLButtonElement).style.display = "inline";
|
|
403
546
|
(this._SfButtonStreamCancel as HTMLButtonElement).style.display = "none";
|
|
547
|
+
(this._SfCalendarContainer as HTMLDivElement).style.display = 'flex';
|
|
548
|
+
(this._SfStreamContainer as HTMLDivElement).style.display = 'none';
|
|
404
549
|
}
|
|
405
550
|
|
|
406
551
|
}
|
|
@@ -549,6 +694,114 @@ export class SfIEvents extends LitElement {
|
|
|
549
694
|
|
|
550
695
|
}
|
|
551
696
|
|
|
697
|
+
renderStreamEvents = (index: number, month: number, year: number) => {
|
|
698
|
+
|
|
699
|
+
const lastDay = this.getLastDayOfMonth(month, year);
|
|
700
|
+
|
|
701
|
+
var html = '<div id="stream-event-'+index+'" part="stream-event-list" class="stream-event-list">';
|
|
702
|
+
|
|
703
|
+
for(var i = 1; i <= lastDay; i++) {
|
|
704
|
+
|
|
705
|
+
const mmdd = ("0" + (month+1)).slice(-2) + "/" + ("0" + i).slice(-2);
|
|
706
|
+
if(this.events[mmdd] != null) {
|
|
707
|
+
//html += '<div>'+month + ',' + year + ',' + i+'</div>'
|
|
708
|
+
html += '<div part="stream-event-selected" class="d-flex stream-event-selected">';
|
|
709
|
+
html += '<div>'+("0" + i).slice(-2)+' |</div>';
|
|
710
|
+
for(var j = 0; j < (this.events[mmdd] as Array<any>).length; j++) {
|
|
711
|
+
html += '<div class="stream-events-container flex-grow">';
|
|
712
|
+
html += '<table>';
|
|
713
|
+
html += '<thead>';
|
|
714
|
+
for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
|
|
715
|
+
html += '<th part="td-head">';
|
|
716
|
+
html += Object.keys(this.events[mmdd][j])[k];
|
|
717
|
+
html += '</th>';
|
|
718
|
+
}
|
|
719
|
+
html += '</thead>';
|
|
720
|
+
html += '<tbody>';
|
|
721
|
+
for(var k = 0; k < Object.keys(this.events[mmdd][j]).length; k++) {
|
|
722
|
+
html += '<th part="td-body">';
|
|
723
|
+
if(this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].indexOf("[") >= 0) {
|
|
724
|
+
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]);
|
|
725
|
+
} else {
|
|
726
|
+
html += this.events[mmdd][j][Object.keys(this.events[mmdd][j])[k]].replace(/"/g, "");
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
html += '</th>';
|
|
730
|
+
}
|
|
731
|
+
html += '</tbody>';
|
|
732
|
+
html += '</table>';
|
|
733
|
+
html += '</div>';
|
|
734
|
+
}
|
|
735
|
+
html += '</div>';
|
|
736
|
+
} else {
|
|
737
|
+
html += '<div part="stream-event-not-selected" class="d-flex stream-event-not-selected">';
|
|
738
|
+
html += '<div>'+("0" + i).slice(-2)+' | ---</div>';
|
|
739
|
+
html += '</div>';
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
html += '</div>'
|
|
746
|
+
|
|
747
|
+
return html;
|
|
748
|
+
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
renderStream = (index: number = 0) => {
|
|
752
|
+
|
|
753
|
+
console.log('renderstream', index);
|
|
754
|
+
|
|
755
|
+
var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);
|
|
756
|
+
|
|
757
|
+
var html = '';
|
|
758
|
+
|
|
759
|
+
html += '<div class="d-flex flex-grow">';
|
|
760
|
+
html += '<div class="calendar-left-col">';
|
|
761
|
+
|
|
762
|
+
var startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);
|
|
763
|
+
|
|
764
|
+
for(var i = 0; i < 12; i++) {
|
|
765
|
+
|
|
766
|
+
var part = "";
|
|
767
|
+
|
|
768
|
+
if(i === index) {
|
|
769
|
+
part = "stream-month-selected";
|
|
770
|
+
} else {
|
|
771
|
+
part = "stream-month-not-selected";
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
html += '<div part="'+part+'" id="stream-month-'+i+'" part="month-title" class="title-item '+part+'">' + this.monthNames[startDate.getMonth()] + ' ' + startDate.getFullYear() + '</div>';
|
|
775
|
+
startDate.setMonth(startDate.getMonth() + 1);
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
html += '</div>';
|
|
779
|
+
html += '<div class="calendar-right-data">';
|
|
780
|
+
|
|
781
|
+
startDate = new Date(this.calendarStartMM + '/' + this.calendarStartDD + '/' + this.calendarStartYYYY);
|
|
782
|
+
for(i = 0; i < 12; i++) {
|
|
783
|
+
if(i === index) {
|
|
784
|
+
console.log(i, index)
|
|
785
|
+
html += this.renderStreamEvents(i, startDate.getMonth(), startDate.getFullYear())
|
|
786
|
+
}
|
|
787
|
+
startDate.setMonth(startDate.getMonth() + 1);
|
|
788
|
+
}
|
|
789
|
+
html += '</div>';
|
|
790
|
+
html += '</div>';
|
|
791
|
+
|
|
792
|
+
(this._SfStreamContainer as HTMLDivElement).innerHTML = html;
|
|
793
|
+
|
|
794
|
+
for(var i = 0; i < 12; i++) {
|
|
795
|
+
(this._SfStreamContainer as HTMLDivElement).querySelector('#stream-month-' + i)?.addEventListener('click', (ev: any)=> {
|
|
796
|
+
|
|
797
|
+
const target = parseInt((ev.target as HTMLDivElement).id.split('-')[2]);
|
|
798
|
+
this.renderStream(target);
|
|
799
|
+
|
|
800
|
+
})
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
}
|
|
804
|
+
|
|
552
805
|
renderCalendar = () => {
|
|
553
806
|
|
|
554
807
|
console.log('redering calendar', this.events);
|
|
@@ -601,7 +854,10 @@ export class SfIEvents extends LitElement {
|
|
|
601
854
|
if(this.events == null) {
|
|
602
855
|
this.events = {};
|
|
603
856
|
}
|
|
604
|
-
this.events[mmdd]
|
|
857
|
+
if(this.events[mmdd] == null) {
|
|
858
|
+
this.events[mmdd] = [];
|
|
859
|
+
}
|
|
860
|
+
(this.events[mmdd] as Array<any>).push(value);
|
|
605
861
|
|
|
606
862
|
|
|
607
863
|
if(startMonth !== 12) {
|
|
@@ -622,12 +878,15 @@ export class SfIEvents extends LitElement {
|
|
|
622
878
|
|
|
623
879
|
} else {
|
|
624
880
|
|
|
625
|
-
const mmdd = ("0" +dateArr[1]).slice(-2) + "/" + ("0" + dateArr[0]).slice(-2);
|
|
881
|
+
const mmdd = ("0" +(parseInt(dateArr[1]))).slice(-2) + "/" + ("0" + dateArr[0]).slice(-2);
|
|
626
882
|
|
|
627
883
|
if(this.events == null) {
|
|
628
884
|
this.events = {};
|
|
629
885
|
}
|
|
630
|
-
this.events[mmdd]
|
|
886
|
+
if(this.events[mmdd] == null) {
|
|
887
|
+
this.events[mmdd] = [];
|
|
888
|
+
}
|
|
889
|
+
(this.events[mmdd] as Array<any>).push(value);
|
|
631
890
|
|
|
632
891
|
}
|
|
633
892
|
}
|
|
@@ -755,6 +1014,7 @@ export class SfIEvents extends LitElement {
|
|
|
755
1014
|
|
|
756
1015
|
if(this.events != null) {
|
|
757
1016
|
this.renderCalendar();
|
|
1017
|
+
this.renderStream();
|
|
758
1018
|
}
|
|
759
1019
|
|
|
760
1020
|
}
|
|
@@ -785,11 +1045,14 @@ export class SfIEvents extends LitElement {
|
|
|
785
1045
|
</div>
|
|
786
1046
|
<div class="d-flex justify-end">
|
|
787
1047
|
<button id="button-stream-cancel" part="button-icon" class="material-icons">close</button>
|
|
788
|
-
<button id="button-stream" part="button-icon" class="material-icons">
|
|
1048
|
+
<button id="button-stream" part="button-icon" class="material-icons">stream</button>
|
|
789
1049
|
</div>
|
|
790
1050
|
<div class="d-flex justify-center">
|
|
791
1051
|
<div class="d-flex flex-grow flex-wrap justify-center align-stretch" id="calendar-container">
|
|
792
1052
|
|
|
1053
|
+
</div>
|
|
1054
|
+
<div class="d-flex flex-grow flex-wrap justify-center align-stretch" id="stream-container">
|
|
1055
|
+
|
|
793
1056
|
</div>
|
|
794
1057
|
</div>
|
|
795
1058
|
<div class="d-flex justify-between">
|
|
@@ -811,6 +1074,7 @@ export class SfIEvents extends LitElement {
|
|
|
811
1074
|
|
|
812
1075
|
}
|
|
813
1076
|
|
|
1077
|
+
|
|
814
1078
|
declare global {
|
|
815
1079
|
interface HTMLElementTagNameMap {
|
|
816
1080
|
'sf-i-events': SfIEvents;
|