timezone is implemented
This commit is contained in:
parent
f137f0a9e5
commit
2203e94a4e
75
package-lock.json
generated
75
package-lock.json
generated
|
@ -2406,6 +2406,15 @@
|
||||||
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
|
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@types/moment-timezone": {
|
||||||
|
"version": "0.5.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/moment-timezone/-/moment-timezone-0.5.12.tgz",
|
||||||
|
"integrity": "sha512-hnHH2+Efg2vExr/dSz+IX860nSiyk9Sk4pJF2EmS11lRpMcNXeB4KBW5xcgw2QPsb9amTXdsVNEe5IoJXiT0uw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"moment": ">=2.14.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "10.14.22",
|
"version": "10.14.22",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.22.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.22.tgz",
|
||||||
|
@ -2792,7 +2801,6 @@
|
||||||
"version": "6.10.2",
|
"version": "6.10.2",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
||||||
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"fast-deep-equal": "^2.0.1",
|
"fast-deep-equal": "^2.0.1",
|
||||||
"fast-json-stable-stringify": "^2.0.0",
|
"fast-json-stable-stringify": "^2.0.0",
|
||||||
|
@ -4607,7 +4615,6 @@
|
||||||
"version": "6.2.0",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/conf/-/conf-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/conf/-/conf-6.2.0.tgz",
|
||||||
"integrity": "sha512-fvl40R6YemHrFsNiyP7TD0tzOe3pQD2dfT2s20WvCaq57A1oV+RImbhn2Y4sQGDz1lB0wNSb7dPcPIvQB69YNA==",
|
"integrity": "sha512-fvl40R6YemHrFsNiyP7TD0tzOe3pQD2dfT2s20WvCaq57A1oV+RImbhn2Y4sQGDz1lB0wNSb7dPcPIvQB69YNA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ajv": "^6.10.2",
|
"ajv": "^6.10.2",
|
||||||
"debounce-fn": "^3.0.1",
|
"debounce-fn": "^3.0.1",
|
||||||
|
@ -4625,7 +4632,6 @@
|
||||||
"version": "5.2.0",
|
"version": "5.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
|
||||||
"integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
|
"integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-obj": "^2.0.0"
|
"is-obj": "^2.0.0"
|
||||||
}
|
}
|
||||||
|
@ -4633,14 +4639,12 @@
|
||||||
"is-obj": {
|
"is-obj": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
|
||||||
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
|
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"make-dir": {
|
"make-dir": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
|
||||||
"integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
|
"integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"semver": "^6.0.0"
|
"semver": "^6.0.0"
|
||||||
}
|
}
|
||||||
|
@ -4649,7 +4653,6 @@
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz",
|
||||||
"integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==",
|
"integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"imurmurhash": "^0.1.4",
|
"imurmurhash": "^0.1.4",
|
||||||
"is-typedarray": "^1.0.0",
|
"is-typedarray": "^1.0.0",
|
||||||
|
@ -5187,7 +5190,6 @@
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-3.0.1.tgz",
|
||||||
"integrity": "sha512-aBoJh5AhpqlRoHZjHmOzZlRx+wz2xVwGL9rjs+Kj0EWUrL4/h4K7OD176thl2Tdoqui/AaA4xhHrNArGLAaI3Q==",
|
"integrity": "sha512-aBoJh5AhpqlRoHZjHmOzZlRx+wz2xVwGL9rjs+Kj0EWUrL4/h4K7OD176thl2Tdoqui/AaA4xhHrNArGLAaI3Q==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"mimic-fn": "^2.1.0"
|
"mimic-fn": "^2.1.0"
|
||||||
}
|
}
|
||||||
|
@ -5923,7 +5925,6 @@
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/electron-store/-/electron-store-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/electron-store/-/electron-store-5.1.0.tgz",
|
||||||
"integrity": "sha512-uhAF/4+zDb+y0hWqlBirEPEAR4ciCZDp4fRWGFNV62bG+ArdQPpXk7jS0MEVj3CfcG5V7hx7Dpq5oD+1j6GD8Q==",
|
"integrity": "sha512-uhAF/4+zDb+y0hWqlBirEPEAR4ciCZDp4fRWGFNV62bG+ArdQPpXk7jS0MEVj3CfcG5V7hx7Dpq5oD+1j6GD8Q==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"conf": "^6.2.0",
|
"conf": "^6.2.0",
|
||||||
"type-fest": "^0.7.1"
|
"type-fest": "^0.7.1"
|
||||||
|
@ -5932,8 +5933,7 @@
|
||||||
"type-fest": {
|
"type-fest": {
|
||||||
"version": "0.7.1",
|
"version": "0.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
|
||||||
"integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
|
"integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="
|
||||||
"dev": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -6168,8 +6168,7 @@
|
||||||
"env-paths": {
|
"env-paths": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz",
|
||||||
"integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==",
|
"integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"err-code": {
|
"err-code": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
|
@ -6663,14 +6662,12 @@
|
||||||
"fast-deep-equal": {
|
"fast-deep-equal": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"fast-json-stable-stringify": {
|
"fast-json-stable-stringify": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
||||||
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
|
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"fastparse": {
|
"fastparse": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
|
@ -6871,7 +6868,6 @@
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"locate-path": "^3.0.0"
|
"locate-path": "^3.0.0"
|
||||||
}
|
}
|
||||||
|
@ -7721,8 +7717,7 @@
|
||||||
"imurmurhash": {
|
"imurmurhash": {
|
||||||
"version": "0.1.4",
|
"version": "0.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
||||||
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
|
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"indexof": {
|
"indexof": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
|
@ -8149,8 +8144,7 @@
|
||||||
"is-typedarray": {
|
"is-typedarray": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-windows": {
|
"is-windows": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
|
@ -8541,14 +8535,12 @@
|
||||||
"json-schema-traverse": {
|
"json-schema-traverse": {
|
||||||
"version": "0.4.1",
|
"version": "0.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"json-schema-typed": {
|
"json-schema-typed": {
|
||||||
"version": "7.0.2",
|
"version": "7.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.2.tgz",
|
||||||
"integrity": "sha512-40FRIcBSz4y0Ego3gMpbkhtIgebpxKRgW/7i1FfDNL4/xEPQKBM12tKSiCZFNQvad5K4IS3I5Sc8cxza/KSwog==",
|
"integrity": "sha512-40FRIcBSz4y0Ego3gMpbkhtIgebpxKRgW/7i1FfDNL4/xEPQKBM12tKSiCZFNQvad5K4IS3I5Sc8cxza/KSwog=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"json-stable-stringify": {
|
"json-stable-stringify": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
@ -9589,7 +9581,6 @@
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-locate": "^3.0.0",
|
"p-locate": "^3.0.0",
|
||||||
"path-exists": "^3.0.0"
|
"path-exists": "^3.0.0"
|
||||||
|
@ -10015,8 +10006,7 @@
|
||||||
"mimic-fn": {
|
"mimic-fn": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"mimic-response": {
|
"mimic-response": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
@ -10142,6 +10132,15 @@
|
||||||
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
|
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"moment-timezone": {
|
||||||
|
"version": "0.5.27",
|
||||||
|
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.27.tgz",
|
||||||
|
"integrity": "sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"moment": ">= 2.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"move-concurrently": {
|
"move-concurrently": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
||||||
|
@ -10833,7 +10832,6 @@
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
|
||||||
"integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
|
"integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"mimic-fn": "^2.1.0"
|
"mimic-fn": "^2.1.0"
|
||||||
}
|
}
|
||||||
|
@ -10950,7 +10948,6 @@
|
||||||
"version": "2.2.1",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
|
||||||
"integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
|
"integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-try": "^2.0.0"
|
"p-try": "^2.0.0"
|
||||||
}
|
}
|
||||||
|
@ -10959,7 +10956,6 @@
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-limit": "^2.0.0"
|
"p-limit": "^2.0.0"
|
||||||
}
|
}
|
||||||
|
@ -10982,8 +10978,7 @@
|
||||||
"p-try": {
|
"p-try": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"package-json": {
|
"package-json": {
|
||||||
"version": "6.5.0",
|
"version": "6.5.0",
|
||||||
|
@ -11232,8 +11227,7 @@
|
||||||
"path-exists": {
|
"path-exists": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"path-is-absolute": {
|
"path-is-absolute": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
@ -11358,7 +11352,6 @@
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
|
||||||
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
|
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"find-up": "^3.0.0"
|
"find-up": "^3.0.0"
|
||||||
}
|
}
|
||||||
|
@ -11826,8 +11819,7 @@
|
||||||
"punycode": {
|
"punycode": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"q": {
|
"q": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
|
@ -12951,8 +12943,7 @@
|
||||||
"signal-exit": {
|
"signal-exit": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
||||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"slash": {
|
"slash": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
|
@ -14253,7 +14244,6 @@
|
||||||
"version": "3.1.5",
|
"version": "3.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
|
||||||
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
|
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-typedarray": "^1.0.0"
|
"is-typedarray": "^1.0.0"
|
||||||
}
|
}
|
||||||
|
@ -14465,7 +14455,6 @@
|
||||||
"version": "4.2.2",
|
"version": "4.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||||
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"punycode": "^2.1.0"
|
"punycode": "^2.1.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,7 @@
|
||||||
"@types/filesize": "^4.1.0",
|
"@types/filesize": "^4.1.0",
|
||||||
"@types/jasmine": "~3.3.8",
|
"@types/jasmine": "~3.3.8",
|
||||||
"@types/jasminewd2": "~2.0.3",
|
"@types/jasminewd2": "~2.0.3",
|
||||||
|
"@types/moment-timezone": "^0.5.12",
|
||||||
"@types/node": "^10.14.22",
|
"@types/node": "^10.14.22",
|
||||||
"@types/semver": "^6.0.2",
|
"@types/semver": "^6.0.2",
|
||||||
"@types/webpack": "^4.39.5",
|
"@types/webpack": "^4.39.5",
|
||||||
|
@ -118,6 +119,7 @@
|
||||||
"karma-jasmine": "~2.0.1",
|
"karma-jasmine": "~2.0.1",
|
||||||
"karma-jasmine-html-reporter": "^1.4.0",
|
"karma-jasmine-html-reporter": "^1.4.0",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
|
"moment-timezone": "^0.5.27",
|
||||||
"ng-packagr": "^5.4.0",
|
"ng-packagr": "^5.4.0",
|
||||||
"ngrx-store-freeze": "^0.2.4",
|
"ngrx-store-freeze": "^0.2.4",
|
||||||
"ngx-logger": "^4.0.5",
|
"ngx-logger": "^4.0.5",
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="text-accent-color">date :</span>
|
<span class="text-accent-color">date :</span>
|
||||||
{{ selectedFile.info.sendDate | dateToStringFormat: 'YYYY.MM.DD' }}
|
{{ selectedFile.info.sendDate | ucapDate: 'YYYY.MM.DD' }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
|
@ -50,13 +50,12 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<span class="text-accent-color">date :</span>
|
<span class="text-accent-color">date :</span>
|
||||||
{{ selectedFile.info.sendDate | dateToStringFormat: 'YYYY.MM.DD' }}
|
{{ selectedFile.info.sendDate | ucapDate: 'YYYY.MM.DD' }}
|
||||||
<span *ngIf="loginRes.fileRetentionPeriod > 0">
|
<span *ngIf="loginRes.fileRetentionPeriod > 0">
|
||||||
~
|
~
|
||||||
{{
|
{{
|
||||||
selectedFile.info.sendDate
|
selectedFile.info.sendDate
|
||||||
| dateDistanceToDay: loginRes.fileRetentionPeriod
|
| ucapDate: 'YYYY.MM.DD':fileRetentionPeriodOptions
|
||||||
| dateToStringFormat: 'YYYY.MM.DD'
|
|
||||||
}}
|
}}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
@ -185,13 +184,12 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="download-period text-accent-color">
|
<div class="download-period text-accent-color">
|
||||||
<!--{{ element.info.size | ucapBytes }}-->
|
<!--{{ element.info.size | ucapBytes }}-->
|
||||||
{{ element.info.sendDate | dateToStringFormat: 'YYYY.MM.DD' }}
|
{{ element.info.sendDate | ucapDate: 'YYYY.MM.DD' }}
|
||||||
<span *ngIf="loginRes.fileRetentionPeriod > 0">
|
<span *ngIf="loginRes.fileRetentionPeriod > 0">
|
||||||
~
|
~
|
||||||
{{
|
{{
|
||||||
element.info.sendDate
|
element.info.sendDate
|
||||||
| dateDistanceToDay: loginRes.fileRetentionPeriod
|
| ucapDate: 'YYYY.MM.DD':fileRetentionPeriodOptions
|
||||||
| dateToStringFormat: 'YYYY.MM.DD'
|
|
||||||
}}
|
}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -209,7 +207,7 @@
|
||||||
<ng-container matColumnDef="sendDate" class="date">
|
<ng-container matColumnDef="sendDate" class="date">
|
||||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>sendDate</th>
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>sendDate</th>
|
||||||
<td mat-cell *matCellDef="let element">
|
<td mat-cell *matCellDef="let element">
|
||||||
<!--{{ element.info.sendDate | dateToStringFormat: 'YYYY.MM.DD' }}-->
|
<!--{{ element.info.sendDate | ucapDate: 'YYYY.MM.DD' }}-->
|
||||||
{{ element.info.size | ucapBytes }}
|
{{ element.info.size | ucapBytes }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
|
@ -23,7 +23,8 @@ import {
|
||||||
DialogService,
|
DialogService,
|
||||||
ConfirmDialogComponent,
|
ConfirmDialogComponent,
|
||||||
ConfirmDialogResult,
|
ConfirmDialogResult,
|
||||||
ConfirmDialogData
|
ConfirmDialogData,
|
||||||
|
DateOptions
|
||||||
} from '@ucap-webmessenger/ui';
|
} from '@ucap-webmessenger/ui';
|
||||||
import { CommonApiService } from '@ucap-webmessenger/api-common';
|
import { CommonApiService } from '@ucap-webmessenger/api-common';
|
||||||
import { EventType } from '@ucap-webmessenger/protocol-event';
|
import { EventType } from '@ucap-webmessenger/protocol-event';
|
||||||
|
@ -397,4 +398,10 @@ export class FileBoxComponent implements OnInit, OnDestroy {
|
||||||
this.onSelectedIndexChange(this.currentTabIndex);
|
this.onSelectedIndexChange(this.currentTabIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get fileRetentionPeriodOptions(): DateOptions {
|
||||||
|
return {
|
||||||
|
manipulate: { amount: this.loginRes.fileRetentionPeriod, unit: 'days' }
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,12 +56,11 @@
|
||||||
>발송예정시간</span
|
>발송예정시간</span
|
||||||
>
|
>
|
||||||
<span *ngIf="messageInfo.type !== MessageType.Reservation">{{
|
<span *ngIf="messageInfo.type !== MessageType.Reservation">{{
|
||||||
messageInfo.regDate
|
messageInfo.regDate | ucapDate: 'YYYY.MM.DD (ddd) a hh:mm'
|
||||||
| dateToStringFormat: 'YYYY.MM.dd (KS) a/p HH:mm'
|
|
||||||
}}</span>
|
}}</span>
|
||||||
<span *ngIf="messageInfo.type === MessageType.Reservation">{{
|
<span *ngIf="messageInfo.type === MessageType.Reservation">{{
|
||||||
messageInfo.reservationTime
|
messageInfo.reservationTime
|
||||||
| dateToStringFormat: 'YYYY.MM.dd (KS) a/p HH:mm'
|
| ucapDate: 'YYYY.MM.DD (ddd) a hh:mm'
|
||||||
}}</span>
|
}}</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -130,7 +129,7 @@
|
||||||
<mat-list-item *ngIf="user.readYn">
|
<mat-list-item *ngIf="user.readYn">
|
||||||
<span>{{ user.userName }}</span>
|
<span>{{ user.userName }}</span>
|
||||||
<span>{{
|
<span>{{
|
||||||
user.readDate | dateToStringFormat: 'YYYY-MM-DD HH:mm:ss'
|
user.readDate | ucapDate: 'YYYY-MM-DD HH:mm:ss'
|
||||||
}}</span>
|
}}</span>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
|
@ -10,7 +10,8 @@ import { Store } from '@ngrx/store';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
DialogService,
|
DialogService,
|
||||||
TranslateService as UCapTranslateService
|
TranslateService as UCapTranslateService,
|
||||||
|
DateService as UCapDateService
|
||||||
} from '@ucap-webmessenger/ui';
|
} from '@ucap-webmessenger/ui';
|
||||||
import { VersionInfo2Response } from '@ucap-webmessenger/api-public';
|
import { VersionInfo2Response } from '@ucap-webmessenger/api-public';
|
||||||
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
|
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
|
||||||
|
@ -50,6 +51,7 @@ export class MessengerSettingsDialogComponent implements OnInit {
|
||||||
private sessionStorageService: SessionStorageService,
|
private sessionStorageService: SessionStorageService,
|
||||||
private localStorageService: LocalStorageService,
|
private localStorageService: LocalStorageService,
|
||||||
private ucapTranslateService: UCapTranslateService,
|
private ucapTranslateService: UCapTranslateService,
|
||||||
|
private ucapDateService: UCapDateService,
|
||||||
@Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService,
|
@Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService,
|
||||||
private translateService: TranslateService,
|
private translateService: TranslateService,
|
||||||
private store: Store<any>,
|
private store: Store<any>,
|
||||||
|
@ -87,6 +89,11 @@ export class MessengerSettingsDialogComponent implements OnInit {
|
||||||
) {
|
) {
|
||||||
this.ucapTranslateService.use(setting.hrInfoLocale);
|
this.ucapTranslateService.use(setting.hrInfoLocale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.appUserInfo.settings.general.timezone !== setting.timezone) {
|
||||||
|
this.ucapDateService.use(setting.timezone);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.appUserInfo.settings.general.autoLaunch !== setting.autoLaunch) {
|
if (this.appUserInfo.settings.general.autoLaunch !== setting.autoLaunch) {
|
||||||
this.nativeService.changeAutoLaunch(setting.autoLaunch);
|
this.nativeService.changeAutoLaunch(setting.autoLaunch);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import { AppNotificationService } from './notification.service';
|
||||||
import { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native';
|
import { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native';
|
||||||
import { AppNativeService } from './native.service';
|
import { AppNativeService } from './native.service';
|
||||||
import { TranslateService as UCapTranslateService } from '@ucap-webmessenger/ui';
|
import { TranslateService as UCapTranslateService } from '@ucap-webmessenger/ui';
|
||||||
|
import { DateService as UCapDateService } from '@ucap-webmessenger/ui';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
@ -18,6 +19,7 @@ export class AppService {
|
||||||
private appNativeService: AppNativeService,
|
private appNativeService: AppNativeService,
|
||||||
private translateService: TranslateService,
|
private translateService: TranslateService,
|
||||||
private ucapTranslateService: UCapTranslateService,
|
private ucapTranslateService: UCapTranslateService,
|
||||||
|
private ucapDateService: UCapDateService,
|
||||||
@Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService
|
@Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService
|
||||||
) {
|
) {
|
||||||
this.translateService.setDefaultLang('ko');
|
this.translateService.setDefaultLang('ko');
|
||||||
|
@ -25,6 +27,10 @@ export class AppService {
|
||||||
|
|
||||||
this.ucapTranslateService.setDefaultLang('ko');
|
this.ucapTranslateService.setDefaultLang('ko');
|
||||||
this.ucapTranslateService.use('ko');
|
this.ucapTranslateService.use('ko');
|
||||||
|
|
||||||
|
this.ucapDateService.setDefaultTimezone('Asia/Seoul');
|
||||||
|
this.ucapDateService.use('Asia/Seoul');
|
||||||
|
this.ucapDateService.setLocale(this.translateService.currentLang);
|
||||||
}
|
}
|
||||||
|
|
||||||
public postInit(): Promise<any> {
|
public postInit(): Promise<any> {
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
||||||
|
|
||||||
import { TranslateService as UCapTranslateService } from '@ucap-webmessenger/ui';
|
|
||||||
import { map, tap } from 'rxjs/operators';
|
import { map, tap } from 'rxjs/operators';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
|
import { TranslateService as UCapTranslateService } from '@ucap-webmessenger/ui';
|
||||||
|
import { DateService as UCapDateService } from '@ucap-webmessenger/ui';
|
||||||
|
|
||||||
import * as AuthenticationStore from '@app/store/account/authentication';
|
import * as AuthenticationStore from '@app/store/account/authentication';
|
||||||
import { LocalStorageService } from '@ucap-webmessenger/web-storage';
|
import { LocalStorageService } from '@ucap-webmessenger/web-storage';
|
||||||
import { AppUserInfo, KEY_APP_USER_INFO } from '@app/types/app-user-info.type';
|
import { AppUserInfo, KEY_APP_USER_INFO } from '@app/types/app-user-info.type';
|
||||||
|
|
||||||
import { environment } from '../../../../environments/environment';
|
import { environment } from '../../../../environments/environment';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class Effects {
|
export class Effects {
|
||||||
|
@ -29,6 +31,7 @@ export class Effects {
|
||||||
this.ucapTranslateService.use(
|
this.ucapTranslateService.use(
|
||||||
appUserInfo.settings.general.hrInfoLocale
|
appUserInfo.settings.general.hrInfoLocale
|
||||||
);
|
);
|
||||||
|
this.ucapDateService.use(appUserInfo.settings.general.timezone);
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
{ dispatch: false }
|
{ dispatch: false }
|
||||||
|
@ -37,6 +40,7 @@ export class Effects {
|
||||||
private actions$: Actions,
|
private actions$: Actions,
|
||||||
private translateService: TranslateService,
|
private translateService: TranslateService,
|
||||||
private ucapTranslateService: UCapTranslateService,
|
private ucapTranslateService: UCapTranslateService,
|
||||||
|
private ucapDateService: UCapDateService,
|
||||||
private localStorageService: LocalStorageService
|
private localStorageService: LocalStorageService
|
||||||
) {}
|
) {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,602 @@
|
||||||
"common": {
|
"common": {
|
||||||
"search": "Search",
|
"search": "Search",
|
||||||
"searchWord": "Search word",
|
"searchWord": "Search word",
|
||||||
"useOnlyForSpecialCharacter": "Can only use Special characters: {{0}}"
|
"useOnlyForSpecialCharacter": "Can only use Special characters: {{0}}",
|
||||||
|
"timezone": {
|
||||||
|
"Africa/Abidjan": "Africa/Abidjan",
|
||||||
|
"Africa/Accra": "Africa/Accra",
|
||||||
|
"Africa/Addis_Ababa": "Africa/Addis_Ababa",
|
||||||
|
"Africa/Algiers": "Africa/Algiers",
|
||||||
|
"Africa/Asmara": "Africa/Asmara",
|
||||||
|
"Africa/Asmera": "Africa/Asmera",
|
||||||
|
"Africa/Bamako": "Africa/Bamako",
|
||||||
|
"Africa/Bangui": "Africa/Bangui",
|
||||||
|
"Africa/Banjul": "Africa/Banjul",
|
||||||
|
"Africa/Bissau": "Africa/Bissau",
|
||||||
|
"Africa/Blantyre": "Africa/Blantyre",
|
||||||
|
"Africa/Brazzaville": "Africa/Brazzaville",
|
||||||
|
"Africa/Bujumbura": "Africa/Bujumbura",
|
||||||
|
"Africa/Cairo": "Africa/Cairo",
|
||||||
|
"Africa/Casablanca": "Africa/Casablanca",
|
||||||
|
"Africa/Ceuta": "Africa/Ceuta",
|
||||||
|
"Africa/Conakry": "Africa/Conakry",
|
||||||
|
"Africa/Dakar": "Africa/Dakar",
|
||||||
|
"Africa/Dar_es_Salaam": "Africa/Dar_es_Salaam",
|
||||||
|
"Africa/Djibouti": "Africa/Djibouti",
|
||||||
|
"Africa/Douala": "Africa/Douala",
|
||||||
|
"Africa/El_Aaiun": "Africa/El_Aaiun",
|
||||||
|
"Africa/Freetown": "Africa/Freetown",
|
||||||
|
"Africa/Gaborone": "Africa/Gaborone",
|
||||||
|
"Africa/Harare": "Africa/Harare",
|
||||||
|
"Africa/Johannesburg": "Africa/Johannesburg",
|
||||||
|
"Africa/Juba": "Africa/Juba",
|
||||||
|
"Africa/Kampala": "Africa/Kampala",
|
||||||
|
"Africa/Khartoum": "Africa/Khartoum",
|
||||||
|
"Africa/Kigali": "Africa/Kigali",
|
||||||
|
"Africa/Kinshasa": "Africa/Kinshasa",
|
||||||
|
"Africa/Lagos": "Africa/Lagos",
|
||||||
|
"Africa/Libreville": "Africa/Libreville",
|
||||||
|
"Africa/Lome": "Africa/Lome",
|
||||||
|
"Africa/Luanda": "Africa/Luanda",
|
||||||
|
"Africa/Lubumbashi": "Africa/Lubumbashi",
|
||||||
|
"Africa/Lusaka": "Africa/Lusaka",
|
||||||
|
"Africa/Malabo": "Africa/Malabo",
|
||||||
|
"Africa/Maputo": "Africa/Maputo",
|
||||||
|
"Africa/Maseru": "Africa/Maseru",
|
||||||
|
"Africa/Mbabane": "Africa/Mbabane",
|
||||||
|
"Africa/Mogadishu": "Africa/Mogadishu",
|
||||||
|
"Africa/Monrovia": "Africa/Monrovia",
|
||||||
|
"Africa/Nairobi": "Africa/Nairobi",
|
||||||
|
"Africa/Ndjamena": "Africa/Ndjamena",
|
||||||
|
"Africa/Niamey": "Africa/Niamey",
|
||||||
|
"Africa/Nouakchott": "Africa/Nouakchott",
|
||||||
|
"Africa/Ouagadougou": "Africa/Ouagadougou",
|
||||||
|
"Africa/Porto-Novo": "Africa/Porto-Novo",
|
||||||
|
"Africa/Sao_Tome": "Africa/Sao_Tome",
|
||||||
|
"Africa/Timbuktu": "Africa/Timbuktu",
|
||||||
|
"Africa/Tripoli": "Africa/Tripoli",
|
||||||
|
"Africa/Tunis": "Africa/Tunis",
|
||||||
|
"Africa/Windhoek": "Africa/Windhoek",
|
||||||
|
"America/Adak": "America/Adak",
|
||||||
|
"America/Anchorage": "America/Anchorage",
|
||||||
|
"America/Anguilla": "America/Anguilla",
|
||||||
|
"America/Antigua": "America/Antigua",
|
||||||
|
"America/Araguaina": "America/Araguaina",
|
||||||
|
"America/Argentina/Buenos_Aires": "America/Argentina/Buenos_Aires",
|
||||||
|
"America/Argentina/Catamarca": "America/Argentina/Catamarca",
|
||||||
|
"America/Argentina/ComodRivadavia": "America/Argentina/ComodRivadavia",
|
||||||
|
"America/Argentina/Cordoba": "America/Argentina/Cordoba",
|
||||||
|
"America/Argentina/Jujuy": "America/Argentina/Jujuy",
|
||||||
|
"America/Argentina/La_Rioja": "America/Argentina/La_Rioja",
|
||||||
|
"America/Argentina/Mendoza": "America/Argentina/Mendoza",
|
||||||
|
"America/Argentina/Rio_Gallegos": "America/Argentina/Rio_Gallegos",
|
||||||
|
"America/Argentina/Salta": "America/Argentina/Salta",
|
||||||
|
"America/Argentina/San_Juan": "America/Argentina/San_Juan",
|
||||||
|
"America/Argentina/San_Luis": "America/Argentina/San_Luis",
|
||||||
|
"America/Argentina/Tucuman": "America/Argentina/Tucuman",
|
||||||
|
"America/Argentina/Ushuaia": "America/Argentina/Ushuaia",
|
||||||
|
"America/Aruba": "America/Aruba",
|
||||||
|
"America/Asuncion": "America/Asuncion",
|
||||||
|
"America/Atikokan": "America/Atikokan",
|
||||||
|
"America/Atka": "America/Atka",
|
||||||
|
"America/Bahia": "America/Bahia",
|
||||||
|
"America/Bahia_Banderas": "America/Bahia_Banderas",
|
||||||
|
"America/Barbados": "America/Barbados",
|
||||||
|
"America/Belem": "America/Belem",
|
||||||
|
"America/Belize": "America/Belize",
|
||||||
|
"America/Blanc-Sablon": "America/Blanc-Sablon",
|
||||||
|
"America/Boa_Vista": "America/Boa_Vista",
|
||||||
|
"America/Bogota": "America/Bogota",
|
||||||
|
"America/Boise": "America/Boise",
|
||||||
|
"America/Buenos_Aires": "America/Buenos_Aires",
|
||||||
|
"America/Cambridge_Bay": "America/Cambridge_Bay",
|
||||||
|
"America/Campo_Grande": "America/Campo_Grande",
|
||||||
|
"America/Cancun": "America/Cancun",
|
||||||
|
"America/Caracas": "America/Caracas",
|
||||||
|
"America/Catamarca": "America/Catamarca",
|
||||||
|
"America/Cayenne": "America/Cayenne",
|
||||||
|
"America/Cayman": "America/Cayman",
|
||||||
|
"America/Chicago": "America/Chicago",
|
||||||
|
"America/Chihuahua": "America/Chihuahua",
|
||||||
|
"America/Coral_Harbour": "America/Coral_Harbour",
|
||||||
|
"America/Cordoba": "America/Cordoba",
|
||||||
|
"America/Costa_Rica": "America/Costa_Rica",
|
||||||
|
"America/Creston": "America/Creston",
|
||||||
|
"America/Cuiaba": "America/Cuiaba",
|
||||||
|
"America/Curacao": "America/Curacao",
|
||||||
|
"America/Danmarkshavn": "America/Danmarkshavn",
|
||||||
|
"America/Dawson": "America/Dawson",
|
||||||
|
"America/Dawson_Creek": "America/Dawson_Creek",
|
||||||
|
"America/Denver": "America/Denver",
|
||||||
|
"America/Detroit": "America/Detroit",
|
||||||
|
"America/Dominica": "America/Dominica",
|
||||||
|
"America/Edmonton": "America/Edmonton",
|
||||||
|
"America/Eirunepe": "America/Eirunepe",
|
||||||
|
"America/El_Salvador": "America/El_Salvador",
|
||||||
|
"America/Ensenada": "America/Ensenada",
|
||||||
|
"America/Fort_Nelson": "America/Fort_Nelson",
|
||||||
|
"America/Fort_Wayne": "America/Fort_Wayne",
|
||||||
|
"America/Fortaleza": "America/Fortaleza",
|
||||||
|
"America/Glace_Bay": "America/Glace_Bay",
|
||||||
|
"America/Godthab": "America/Godthab",
|
||||||
|
"America/Goose_Bay": "America/Goose_Bay",
|
||||||
|
"America/Grand_Turk": "America/Grand_Turk",
|
||||||
|
"America/Grenada": "America/Grenada",
|
||||||
|
"America/Guadeloupe": "America/Guadeloupe",
|
||||||
|
"America/Guatemala": "America/Guatemala",
|
||||||
|
"America/Guayaquil": "America/Guayaquil",
|
||||||
|
"America/Guyana": "America/Guyana",
|
||||||
|
"America/Halifax": "America/Halifax",
|
||||||
|
"America/Havana": "America/Havana",
|
||||||
|
"America/Hermosillo": "America/Hermosillo",
|
||||||
|
"America/Indiana/Indianapolis": "America/Indiana/Indianapolis",
|
||||||
|
"America/Indiana/Knox": "America/Indiana/Knox",
|
||||||
|
"America/Indiana/Marengo": "America/Indiana/Marengo",
|
||||||
|
"America/Indiana/Petersburg": "America/Indiana/Petersburg",
|
||||||
|
"America/Indiana/Tell_City": "America/Indiana/Tell_City",
|
||||||
|
"America/Indiana/Vevay": "America/Indiana/Vevay",
|
||||||
|
"America/Indiana/Vincennes": "America/Indiana/Vincennes",
|
||||||
|
"America/Indiana/Winamac": "America/Indiana/Winamac",
|
||||||
|
"America/Indianapolis": "America/Indianapolis",
|
||||||
|
"America/Inuvik": "America/Inuvik",
|
||||||
|
"America/Iqaluit": "America/Iqaluit",
|
||||||
|
"America/Jamaica": "America/Jamaica",
|
||||||
|
"America/Jujuy": "America/Jujuy",
|
||||||
|
"America/Juneau": "America/Juneau",
|
||||||
|
"America/Kentucky/Louisville": "America/Kentucky/Louisville",
|
||||||
|
"America/Kentucky/Monticello": "America/Kentucky/Monticello",
|
||||||
|
"America/Knox_IN": "America/Knox_IN",
|
||||||
|
"America/Kralendijk": "America/Kralendijk",
|
||||||
|
"America/La_Paz": "America/La_Paz",
|
||||||
|
"America/Lima": "America/Lima",
|
||||||
|
"America/Los_Angeles": "America/Los_Angeles",
|
||||||
|
"America/Louisville": "America/Louisville",
|
||||||
|
"America/Lower_Princes": "America/Lower_Princes",
|
||||||
|
"America/Maceio": "America/Maceio",
|
||||||
|
"America/Managua": "America/Managua",
|
||||||
|
"America/Manaus": "America/Manaus",
|
||||||
|
"America/Marigot": "America/Marigot",
|
||||||
|
"America/Martinique": "America/Martinique",
|
||||||
|
"America/Matamoros": "America/Matamoros",
|
||||||
|
"America/Mazatlan": "America/Mazatlan",
|
||||||
|
"America/Mendoza": "America/Mendoza",
|
||||||
|
"America/Menominee": "America/Menominee",
|
||||||
|
"America/Merida": "America/Merida",
|
||||||
|
"America/Metlakatla": "America/Metlakatla",
|
||||||
|
"America/Mexico_City": "America/Mexico_City",
|
||||||
|
"America/Miquelon": "America/Miquelon",
|
||||||
|
"America/Moncton": "America/Moncton",
|
||||||
|
"America/Monterrey": "America/Monterrey",
|
||||||
|
"America/Montevideo": "America/Montevideo",
|
||||||
|
"America/Montreal": "America/Montreal",
|
||||||
|
"America/Montserrat": "America/Montserrat",
|
||||||
|
"America/Nassau": "America/Nassau",
|
||||||
|
"America/New_York": "America/New_York",
|
||||||
|
"America/Nipigon": "America/Nipigon",
|
||||||
|
"America/Nome": "America/Nome",
|
||||||
|
"America/Noronha": "America/Noronha",
|
||||||
|
"America/North_Dakota/Beulah": "America/North_Dakota/Beulah",
|
||||||
|
"America/North_Dakota/Center": "America/North_Dakota/Center",
|
||||||
|
"America/North_Dakota/New_Salem": "America/North_Dakota/New_Salem",
|
||||||
|
"America/Ojinaga": "America/Ojinaga",
|
||||||
|
"America/Panama": "America/Panama",
|
||||||
|
"America/Pangnirtung": "America/Pangnirtung",
|
||||||
|
"America/Paramaribo": "America/Paramaribo",
|
||||||
|
"America/Phoenix": "America/Phoenix",
|
||||||
|
"America/Port-au-Prince": "America/Port-au-Prince",
|
||||||
|
"America/Port_of_Spain": "America/Port_of_Spain",
|
||||||
|
"America/Porto_Acre": "America/Porto_Acre",
|
||||||
|
"America/Porto_Velho": "America/Porto_Velho",
|
||||||
|
"America/Puerto_Rico": "America/Puerto_Rico",
|
||||||
|
"America/Punta_Arenas": "America/Punta_Arenas",
|
||||||
|
"America/Rainy_River": "America/Rainy_River",
|
||||||
|
"America/Rankin_Inlet": "America/Rankin_Inlet",
|
||||||
|
"America/Recife": "America/Recife",
|
||||||
|
"America/Regina": "America/Regina",
|
||||||
|
"America/Resolute": "America/Resolute",
|
||||||
|
"America/Rio_Branco": "America/Rio_Branco",
|
||||||
|
"America/Rosario": "America/Rosario",
|
||||||
|
"America/Santa_Isabel": "America/Santa_Isabel",
|
||||||
|
"America/Santarem": "America/Santarem",
|
||||||
|
"America/Santiago": "America/Santiago",
|
||||||
|
"America/Santo_Domingo": "America/Santo_Domingo",
|
||||||
|
"America/Sao_Paulo": "America/Sao_Paulo",
|
||||||
|
"America/Scoresbysund": "America/Scoresbysund",
|
||||||
|
"America/Shiprock": "America/Shiprock",
|
||||||
|
"America/Sitka": "America/Sitka",
|
||||||
|
"America/St_Barthelemy": "America/St_Barthelemy",
|
||||||
|
"America/St_Johns": "America/St_Johns",
|
||||||
|
"America/St_Kitts": "America/St_Kitts",
|
||||||
|
"America/St_Lucia": "America/St_Lucia",
|
||||||
|
"America/St_Thomas": "America/St_Thomas",
|
||||||
|
"America/St_Vincent": "America/St_Vincent",
|
||||||
|
"America/Swift_Current": "America/Swift_Current",
|
||||||
|
"America/Tegucigalpa": "America/Tegucigalpa",
|
||||||
|
"America/Thule": "America/Thule",
|
||||||
|
"America/Thunder_Bay": "America/Thunder_Bay",
|
||||||
|
"America/Tijuana": "America/Tijuana",
|
||||||
|
"America/Toronto": "America/Toronto",
|
||||||
|
"America/Tortola": "America/Tortola",
|
||||||
|
"America/Vancouver": "America/Vancouver",
|
||||||
|
"America/Virgin": "America/Virgin",
|
||||||
|
"America/Whitehorse": "America/Whitehorse",
|
||||||
|
"America/Winnipeg": "America/Winnipeg",
|
||||||
|
"America/Yakutat": "America/Yakutat",
|
||||||
|
"America/Yellowknife": "America/Yellowknife",
|
||||||
|
"Antarctica/Casey": "Antarctica/Casey",
|
||||||
|
"Antarctica/Davis": "Antarctica/Davis",
|
||||||
|
"Antarctica/DumontDUrville": "Antarctica/DumontDUrville",
|
||||||
|
"Antarctica/Macquarie": "Antarctica/Macquarie",
|
||||||
|
"Antarctica/Mawson": "Antarctica/Mawson",
|
||||||
|
"Antarctica/McMurdo": "Antarctica/McMurdo",
|
||||||
|
"Antarctica/Palmer": "Antarctica/Palmer",
|
||||||
|
"Antarctica/Rothera": "Antarctica/Rothera",
|
||||||
|
"Antarctica/South_Pole": "Antarctica/South_Pole",
|
||||||
|
"Antarctica/Syowa": "Antarctica/Syowa",
|
||||||
|
"Antarctica/Troll": "Antarctica/Troll",
|
||||||
|
"Antarctica/Vostok": "Antarctica/Vostok",
|
||||||
|
"Arctic/Longyearbyen": "Arctic/Longyearbyen",
|
||||||
|
"Asia/Aden": "Asia/Aden",
|
||||||
|
"Asia/Almaty": "Asia/Almaty",
|
||||||
|
"Asia/Amman": "Asia/Amman",
|
||||||
|
"Asia/Anadyr": "Asia/Anadyr",
|
||||||
|
"Asia/Aqtau": "Asia/Aqtau",
|
||||||
|
"Asia/Aqtobe": "Asia/Aqtobe",
|
||||||
|
"Asia/Ashgabat": "Asia/Ashgabat",
|
||||||
|
"Asia/Ashkhabad": "Asia/Ashkhabad",
|
||||||
|
"Asia/Atyrau": "Asia/Atyrau",
|
||||||
|
"Asia/Baghdad": "Asia/Baghdad",
|
||||||
|
"Asia/Bahrain": "Asia/Bahrain",
|
||||||
|
"Asia/Baku": "Asia/Baku",
|
||||||
|
"Asia/Bangkok": "Asia/Bangkok",
|
||||||
|
"Asia/Barnaul": "Asia/Barnaul",
|
||||||
|
"Asia/Beirut": "Asia/Beirut",
|
||||||
|
"Asia/Bishkek": "Asia/Bishkek",
|
||||||
|
"Asia/Brunei": "Asia/Brunei",
|
||||||
|
"Asia/Calcutta": "Asia/Calcutta",
|
||||||
|
"Asia/Chita": "Asia/Chita",
|
||||||
|
"Asia/Choibalsan": "Asia/Choibalsan",
|
||||||
|
"Asia/Chongqing": "Asia/Chongqing",
|
||||||
|
"Asia/Chungking": "Asia/Chungking",
|
||||||
|
"Asia/Colombo": "Asia/Colombo",
|
||||||
|
"Asia/Dacca": "Asia/Dacca",
|
||||||
|
"Asia/Damascus": "Asia/Damascus",
|
||||||
|
"Asia/Dhaka": "Asia/Dhaka",
|
||||||
|
"Asia/Dili": "Asia/Dili",
|
||||||
|
"Asia/Dubai": "Asia/Dubai",
|
||||||
|
"Asia/Dushanbe": "Asia/Dushanbe",
|
||||||
|
"Asia/Famagusta": "Asia/Famagusta",
|
||||||
|
"Asia/Gaza": "Asia/Gaza",
|
||||||
|
"Asia/Harbin": "Asia/Harbin",
|
||||||
|
"Asia/Hebron": "Asia/Hebron",
|
||||||
|
"Asia/Ho_Chi_Minh": "Asia/Ho_Chi_Minh",
|
||||||
|
"Asia/Hong_Kong": "Asia/Hong_Kong",
|
||||||
|
"Asia/Hovd": "Asia/Hovd",
|
||||||
|
"Asia/Irkutsk": "Asia/Irkutsk",
|
||||||
|
"Asia/Istanbul": "Asia/Istanbul",
|
||||||
|
"Asia/Jakarta": "Asia/Jakarta",
|
||||||
|
"Asia/Jayapura": "Asia/Jayapura",
|
||||||
|
"Asia/Jerusalem": "Asia/Jerusalem",
|
||||||
|
"Asia/Kabul": "Asia/Kabul",
|
||||||
|
"Asia/Kamchatka": "Asia/Kamchatka",
|
||||||
|
"Asia/Karachi": "Asia/Karachi",
|
||||||
|
"Asia/Kashgar": "Asia/Kashgar",
|
||||||
|
"Asia/Kathmandu": "Asia/Kathmandu",
|
||||||
|
"Asia/Katmandu": "Asia/Katmandu",
|
||||||
|
"Asia/Khandyga": "Asia/Khandyga",
|
||||||
|
"Asia/Kolkata": "Asia/Kolkata",
|
||||||
|
"Asia/Krasnoyarsk": "Asia/Krasnoyarsk",
|
||||||
|
"Asia/Kuala_Lumpur": "Asia/Kuala_Lumpur",
|
||||||
|
"Asia/Kuching": "Asia/Kuching",
|
||||||
|
"Asia/Kuwait": "Asia/Kuwait",
|
||||||
|
"Asia/Macao": "Asia/Macao",
|
||||||
|
"Asia/Macau": "Asia/Macau",
|
||||||
|
"Asia/Magadan": "Asia/Magadan",
|
||||||
|
"Asia/Makassar": "Asia/Makassar",
|
||||||
|
"Asia/Manila": "Asia/Manila",
|
||||||
|
"Asia/Muscat": "Asia/Muscat",
|
||||||
|
"Asia/Nicosia": "Asia/Nicosia",
|
||||||
|
"Asia/Novokuznetsk": "Asia/Novokuznetsk",
|
||||||
|
"Asia/Novosibirsk": "Asia/Novosibirsk",
|
||||||
|
"Asia/Omsk": "Asia/Omsk",
|
||||||
|
"Asia/Oral": "Asia/Oral",
|
||||||
|
"Asia/Phnom_Penh": "Asia/Phnom_Penh",
|
||||||
|
"Asia/Pontianak": "Asia/Pontianak",
|
||||||
|
"Asia/Pyongyang": "Asia/Pyongyang",
|
||||||
|
"Asia/Qatar": "Asia/Qatar",
|
||||||
|
"Asia/Qostanay": "Asia/Qostanay",
|
||||||
|
"Asia/Qyzylorda": "Asia/Qyzylorda",
|
||||||
|
"Asia/Rangoon": "Asia/Rangoon",
|
||||||
|
"Asia/Riyadh": "Asia/Riyadh",
|
||||||
|
"Asia/Saigon": "Asia/Saigon",
|
||||||
|
"Asia/Sakhalin": "Asia/Sakhalin",
|
||||||
|
"Asia/Samarkand": "Asia/Samarkand",
|
||||||
|
"Asia/Seoul": "Asia/Seoul",
|
||||||
|
"Asia/Shanghai": "Asia/Shanghai",
|
||||||
|
"Asia/Singapore": "Asia/Singapore",
|
||||||
|
"Asia/Srednekolymsk": "Asia/Srednekolymsk",
|
||||||
|
"Asia/Taipei": "Asia/Taipei",
|
||||||
|
"Asia/Tashkent": "Asia/Tashkent",
|
||||||
|
"Asia/Tbilisi": "Asia/Tbilisi",
|
||||||
|
"Asia/Tehran": "Asia/Tehran",
|
||||||
|
"Asia/Tel_Aviv": "Asia/Tel_Aviv",
|
||||||
|
"Asia/Thimbu": "Asia/Thimbu",
|
||||||
|
"Asia/Thimphu": "Asia/Thimphu",
|
||||||
|
"Asia/Tokyo": "Asia/Tokyo",
|
||||||
|
"Asia/Tomsk": "Asia/Tomsk",
|
||||||
|
"Asia/Ujung_Pandang": "Asia/Ujung_Pandang",
|
||||||
|
"Asia/Ulaanbaatar": "Asia/Ulaanbaatar",
|
||||||
|
"Asia/Ulan_Bator": "Asia/Ulan_Bator",
|
||||||
|
"Asia/Urumqi": "Asia/Urumqi",
|
||||||
|
"Asia/Ust-Nera": "Asia/Ust-Nera",
|
||||||
|
"Asia/Vientiane": "Asia/Vientiane",
|
||||||
|
"Asia/Vladivostok": "Asia/Vladivostok",
|
||||||
|
"Asia/Yakutsk": "Asia/Yakutsk",
|
||||||
|
"Asia/Yangon": "Asia/Yangon",
|
||||||
|
"Asia/Yekaterinburg": "Asia/Yekaterinburg",
|
||||||
|
"Asia/Yerevan": "Asia/Yerevan",
|
||||||
|
"Atlantic/Azores": "Atlantic/Azores",
|
||||||
|
"Atlantic/Bermuda": "Atlantic/Bermuda",
|
||||||
|
"Atlantic/Canary": "Atlantic/Canary",
|
||||||
|
"Atlantic/Cape_Verde": "Atlantic/Cape_Verde",
|
||||||
|
"Atlantic/Faeroe": "Atlantic/Faeroe",
|
||||||
|
"Atlantic/Faroe": "Atlantic/Faroe",
|
||||||
|
"Atlantic/Jan_Mayen": "Atlantic/Jan_Mayen",
|
||||||
|
"Atlantic/Madeira": "Atlantic/Madeira",
|
||||||
|
"Atlantic/Reykjavik": "Atlantic/Reykjavik",
|
||||||
|
"Atlantic/South_Georgia": "Atlantic/South_Georgia",
|
||||||
|
"Atlantic/St_Helena": "Atlantic/St_Helena",
|
||||||
|
"Atlantic/Stanley": "Atlantic/Stanley",
|
||||||
|
"Australia/ACT": "Australia/ACT",
|
||||||
|
"Australia/Adelaide": "Australia/Adelaide",
|
||||||
|
"Australia/Brisbane": "Australia/Brisbane",
|
||||||
|
"Australia/Broken_Hill": "Australia/Broken_Hill",
|
||||||
|
"Australia/Canberra": "Australia/Canberra",
|
||||||
|
"Australia/Currie": "Australia/Currie",
|
||||||
|
"Australia/Darwin": "Australia/Darwin",
|
||||||
|
"Australia/Eucla": "Australia/Eucla",
|
||||||
|
"Australia/Hobart": "Australia/Hobart",
|
||||||
|
"Australia/LHI": "Australia/LHI",
|
||||||
|
"Australia/Lindeman": "Australia/Lindeman",
|
||||||
|
"Australia/Lord_Howe": "Australia/Lord_Howe",
|
||||||
|
"Australia/Melbourne": "Australia/Melbourne",
|
||||||
|
"Australia/NSW": "Australia/NSW",
|
||||||
|
"Australia/North": "Australia/North",
|
||||||
|
"Australia/Perth": "Australia/Perth",
|
||||||
|
"Australia/Queensland": "Australia/Queensland",
|
||||||
|
"Australia/South": "Australia/South",
|
||||||
|
"Australia/Sydney": "Australia/Sydney",
|
||||||
|
"Australia/Tasmania": "Australia/Tasmania",
|
||||||
|
"Australia/Victoria": "Australia/Victoria",
|
||||||
|
"Australia/West": "Australia/West",
|
||||||
|
"Australia/Yancowinna": "Australia/Yancowinna",
|
||||||
|
"Brazil/Acre": "Brazil/Acre",
|
||||||
|
"Brazil/DeNoronha": "Brazil/DeNoronha",
|
||||||
|
"Brazil/East": "Brazil/East",
|
||||||
|
"Brazil/West": "Brazil/West",
|
||||||
|
"CET": "CET",
|
||||||
|
"CST6CDT": "CST6CDT",
|
||||||
|
"Canada/Atlantic": "Canada/Atlantic",
|
||||||
|
"Canada/Central": "Canada/Central",
|
||||||
|
"Canada/Eastern": "Canada/Eastern",
|
||||||
|
"Canada/Mountain": "Canada/Mountain",
|
||||||
|
"Canada/Newfoundland": "Canada/Newfoundland",
|
||||||
|
"Canada/Pacific": "Canada/Pacific",
|
||||||
|
"Canada/Saskatchewan": "Canada/Saskatchewan",
|
||||||
|
"Canada/Yukon": "Canada/Yukon",
|
||||||
|
"Chile/Continental": "Chile/Continental",
|
||||||
|
"Chile/EasterIsland": "Chile/EasterIsland",
|
||||||
|
"Cuba": "Cuba",
|
||||||
|
"EET": "EET",
|
||||||
|
"EST": "EST",
|
||||||
|
"EST5EDT": "EST5EDT",
|
||||||
|
"Egypt": "Egypt",
|
||||||
|
"Eire": "Eire",
|
||||||
|
"Etc/GMT": "Etc/GMT",
|
||||||
|
"Etc/GMT+0": "Etc/GMT+0",
|
||||||
|
"Etc/GMT+1": "Etc/GMT+1",
|
||||||
|
"Etc/GMT+10": "Etc/GMT+10",
|
||||||
|
"Etc/GMT+11": "Etc/GMT+11",
|
||||||
|
"Etc/GMT+12": "Etc/GMT+12",
|
||||||
|
"Etc/GMT+2": "Etc/GMT+2",
|
||||||
|
"Etc/GMT+3": "Etc/GMT+3",
|
||||||
|
"Etc/GMT+4": "Etc/GMT+4",
|
||||||
|
"Etc/GMT+5": "Etc/GMT+5",
|
||||||
|
"Etc/GMT+6": "Etc/GMT+6",
|
||||||
|
"Etc/GMT+7": "Etc/GMT+7",
|
||||||
|
"Etc/GMT+8": "Etc/GMT+8",
|
||||||
|
"Etc/GMT+9": "Etc/GMT+9",
|
||||||
|
"Etc/GMT-0": "Etc/GMT-0",
|
||||||
|
"Etc/GMT-1": "Etc/GMT-1",
|
||||||
|
"Etc/GMT-10": "Etc/GMT-10",
|
||||||
|
"Etc/GMT-11": "Etc/GMT-11",
|
||||||
|
"Etc/GMT-12": "Etc/GMT-12",
|
||||||
|
"Etc/GMT-13": "Etc/GMT-13",
|
||||||
|
"Etc/GMT-14": "Etc/GMT-14",
|
||||||
|
"Etc/GMT-2": "Etc/GMT-2",
|
||||||
|
"Etc/GMT-3": "Etc/GMT-3",
|
||||||
|
"Etc/GMT-4": "Etc/GMT-4",
|
||||||
|
"Etc/GMT-5": "Etc/GMT-5",
|
||||||
|
"Etc/GMT-6": "Etc/GMT-6",
|
||||||
|
"Etc/GMT-7": "Etc/GMT-7",
|
||||||
|
"Etc/GMT-8": "Etc/GMT-8",
|
||||||
|
"Etc/GMT-9": "Etc/GMT-9",
|
||||||
|
"Etc/GMT0": "Etc/GMT0",
|
||||||
|
"Etc/Greenwich": "Etc/Greenwich",
|
||||||
|
"Etc/UCT": "Etc/UCT",
|
||||||
|
"Etc/UTC": "Etc/UTC",
|
||||||
|
"Etc/Universal": "Etc/Universal",
|
||||||
|
"Etc/Zulu": "Etc/Zulu",
|
||||||
|
"Europe/Amsterdam": "Europe/Amsterdam",
|
||||||
|
"Europe/Andorra": "Europe/Andorra",
|
||||||
|
"Europe/Astrakhan": "Europe/Astrakhan",
|
||||||
|
"Europe/Athens": "Europe/Athens",
|
||||||
|
"Europe/Belfast": "Europe/Belfast",
|
||||||
|
"Europe/Belgrade": "Europe/Belgrade",
|
||||||
|
"Europe/Berlin": "Europe/Berlin",
|
||||||
|
"Europe/Bratislava": "Europe/Bratislava",
|
||||||
|
"Europe/Brussels": "Europe/Brussels",
|
||||||
|
"Europe/Bucharest": "Europe/Bucharest",
|
||||||
|
"Europe/Budapest": "Europe/Budapest",
|
||||||
|
"Europe/Busingen": "Europe/Busingen",
|
||||||
|
"Europe/Chisinau": "Europe/Chisinau",
|
||||||
|
"Europe/Copenhagen": "Europe/Copenhagen",
|
||||||
|
"Europe/Dublin": "Europe/Dublin",
|
||||||
|
"Europe/Gibraltar": "Europe/Gibraltar",
|
||||||
|
"Europe/Guernsey": "Europe/Guernsey",
|
||||||
|
"Europe/Helsinki": "Europe/Helsinki",
|
||||||
|
"Europe/Isle_of_Man": "Europe/Isle_of_Man",
|
||||||
|
"Europe/Istanbul": "Europe/Istanbul",
|
||||||
|
"Europe/Jersey": "Europe/Jersey",
|
||||||
|
"Europe/Kaliningrad": "Europe/Kaliningrad",
|
||||||
|
"Europe/Kiev": "Europe/Kiev",
|
||||||
|
"Europe/Kirov": "Europe/Kirov",
|
||||||
|
"Europe/Lisbon": "Europe/Lisbon",
|
||||||
|
"Europe/Ljubljana": "Europe/Ljubljana",
|
||||||
|
"Europe/London": "Europe/London",
|
||||||
|
"Europe/Luxembourg": "Europe/Luxembourg",
|
||||||
|
"Europe/Madrid": "Europe/Madrid",
|
||||||
|
"Europe/Malta": "Europe/Malta",
|
||||||
|
"Europe/Mariehamn": "Europe/Mariehamn",
|
||||||
|
"Europe/Minsk": "Europe/Minsk",
|
||||||
|
"Europe/Monaco": "Europe/Monaco",
|
||||||
|
"Europe/Moscow": "Europe/Moscow",
|
||||||
|
"Europe/Nicosia": "Europe/Nicosia",
|
||||||
|
"Europe/Oslo": "Europe/Oslo",
|
||||||
|
"Europe/Paris": "Europe/Paris",
|
||||||
|
"Europe/Podgorica": "Europe/Podgorica",
|
||||||
|
"Europe/Prague": "Europe/Prague",
|
||||||
|
"Europe/Riga": "Europe/Riga",
|
||||||
|
"Europe/Rome": "Europe/Rome",
|
||||||
|
"Europe/Samara": "Europe/Samara",
|
||||||
|
"Europe/San_Marino": "Europe/San_Marino",
|
||||||
|
"Europe/Sarajevo": "Europe/Sarajevo",
|
||||||
|
"Europe/Saratov": "Europe/Saratov",
|
||||||
|
"Europe/Simferopol": "Europe/Simferopol",
|
||||||
|
"Europe/Skopje": "Europe/Skopje",
|
||||||
|
"Europe/Sofia": "Europe/Sofia",
|
||||||
|
"Europe/Stockholm": "Europe/Stockholm",
|
||||||
|
"Europe/Tallinn": "Europe/Tallinn",
|
||||||
|
"Europe/Tirane": "Europe/Tirane",
|
||||||
|
"Europe/Tiraspol": "Europe/Tiraspol",
|
||||||
|
"Europe/Ulyanovsk": "Europe/Ulyanovsk",
|
||||||
|
"Europe/Uzhgorod": "Europe/Uzhgorod",
|
||||||
|
"Europe/Vaduz": "Europe/Vaduz",
|
||||||
|
"Europe/Vatican": "Europe/Vatican",
|
||||||
|
"Europe/Vienna": "Europe/Vienna",
|
||||||
|
"Europe/Vilnius": "Europe/Vilnius",
|
||||||
|
"Europe/Volgograd": "Europe/Volgograd",
|
||||||
|
"Europe/Warsaw": "Europe/Warsaw",
|
||||||
|
"Europe/Zagreb": "Europe/Zagreb",
|
||||||
|
"Europe/Zaporozhye": "Europe/Zaporozhye",
|
||||||
|
"Europe/Zurich": "Europe/Zurich",
|
||||||
|
"GB": "GB",
|
||||||
|
"GB-Eire": "GB-Eire",
|
||||||
|
"GMT": "GMT",
|
||||||
|
"GMT+0": "GMT+0",
|
||||||
|
"GMT-0": "GMT-0",
|
||||||
|
"GMT0": "GMT0",
|
||||||
|
"Greenwich": "Greenwich",
|
||||||
|
"HST": "HST",
|
||||||
|
"Hongkong": "Hongkong",
|
||||||
|
"Iceland": "Iceland",
|
||||||
|
"Indian/Antananarivo": "Indian/Antananarivo",
|
||||||
|
"Indian/Chagos": "Indian/Chagos",
|
||||||
|
"Indian/Christmas": "Indian/Christmas",
|
||||||
|
"Indian/Cocos": "Indian/Cocos",
|
||||||
|
"Indian/Comoro": "Indian/Comoro",
|
||||||
|
"Indian/Kerguelen": "Indian/Kerguelen",
|
||||||
|
"Indian/Mahe": "Indian/Mahe",
|
||||||
|
"Indian/Maldives": "Indian/Maldives",
|
||||||
|
"Indian/Mauritius": "Indian/Mauritius",
|
||||||
|
"Indian/Mayotte": "Indian/Mayotte",
|
||||||
|
"Indian/Reunion": "Indian/Reunion",
|
||||||
|
"Iran": "Iran",
|
||||||
|
"Israel": "Israel",
|
||||||
|
"Jamaica": "Jamaica",
|
||||||
|
"Japan": "Japan",
|
||||||
|
"Kwajalein": "Kwajalein",
|
||||||
|
"Libya": "Libya",
|
||||||
|
"MET": "MET",
|
||||||
|
"MST": "MST",
|
||||||
|
"MST7MDT": "MST7MDT",
|
||||||
|
"Mexico/BajaNorte": "Mexico/BajaNorte",
|
||||||
|
"Mexico/BajaSur": "Mexico/BajaSur",
|
||||||
|
"Mexico/General": "Mexico/General",
|
||||||
|
"NZ": "NZ",
|
||||||
|
"NZ-CHAT": "NZ-CHAT",
|
||||||
|
"Navajo": "Navajo",
|
||||||
|
"PRC": "PRC",
|
||||||
|
"PST8PDT": "PST8PDT",
|
||||||
|
"Pacific/Apia": "Pacific/Apia",
|
||||||
|
"Pacific/Auckland": "Pacific/Auckland",
|
||||||
|
"Pacific/Bougainville": "Pacific/Bougainville",
|
||||||
|
"Pacific/Chatham": "Pacific/Chatham",
|
||||||
|
"Pacific/Chuuk": "Pacific/Chuuk",
|
||||||
|
"Pacific/Easter": "Pacific/Easter",
|
||||||
|
"Pacific/Efate": "Pacific/Efate",
|
||||||
|
"Pacific/Enderbury": "Pacific/Enderbury",
|
||||||
|
"Pacific/Fakaofo": "Pacific/Fakaofo",
|
||||||
|
"Pacific/Fiji": "Pacific/Fiji",
|
||||||
|
"Pacific/Funafuti": "Pacific/Funafuti",
|
||||||
|
"Pacific/Galapagos": "Pacific/Galapagos",
|
||||||
|
"Pacific/Gambier": "Pacific/Gambier",
|
||||||
|
"Pacific/Guadalcanal": "Pacific/Guadalcanal",
|
||||||
|
"Pacific/Guam": "Pacific/Guam",
|
||||||
|
"Pacific/Honolulu": "Pacific/Honolulu",
|
||||||
|
"Pacific/Johnston": "Pacific/Johnston",
|
||||||
|
"Pacific/Kiritimati": "Pacific/Kiritimati",
|
||||||
|
"Pacific/Kosrae": "Pacific/Kosrae",
|
||||||
|
"Pacific/Kwajalein": "Pacific/Kwajalein",
|
||||||
|
"Pacific/Majuro": "Pacific/Majuro",
|
||||||
|
"Pacific/Marquesas": "Pacific/Marquesas",
|
||||||
|
"Pacific/Midway": "Pacific/Midway",
|
||||||
|
"Pacific/Nauru": "Pacific/Nauru",
|
||||||
|
"Pacific/Niue": "Pacific/Niue",
|
||||||
|
"Pacific/Norfolk": "Pacific/Norfolk",
|
||||||
|
"Pacific/Noumea": "Pacific/Noumea",
|
||||||
|
"Pacific/Pago_Pago": "Pacific/Pago_Pago",
|
||||||
|
"Pacific/Palau": "Pacific/Palau",
|
||||||
|
"Pacific/Pitcairn": "Pacific/Pitcairn",
|
||||||
|
"Pacific/Pohnpei": "Pacific/Pohnpei",
|
||||||
|
"Pacific/Ponape": "Pacific/Ponape",
|
||||||
|
"Pacific/Port_Moresby": "Pacific/Port_Moresby",
|
||||||
|
"Pacific/Rarotonga": "Pacific/Rarotonga",
|
||||||
|
"Pacific/Saipan": "Pacific/Saipan",
|
||||||
|
"Pacific/Samoa": "Pacific/Samoa",
|
||||||
|
"Pacific/Tahiti": "Pacific/Tahiti",
|
||||||
|
"Pacific/Tarawa": "Pacific/Tarawa",
|
||||||
|
"Pacific/Tongatapu": "Pacific/Tongatapu",
|
||||||
|
"Pacific/Truk": "Pacific/Truk",
|
||||||
|
"Pacific/Wake": "Pacific/Wake",
|
||||||
|
"Pacific/Wallis": "Pacific/Wallis",
|
||||||
|
"Pacific/Yap": "Pacific/Yap",
|
||||||
|
"Poland": "Poland",
|
||||||
|
"Portugal": "Portugal",
|
||||||
|
"ROC": "ROC",
|
||||||
|
"ROK": "ROK",
|
||||||
|
"Singapore": "Singapore",
|
||||||
|
"Turkey": "Turkey",
|
||||||
|
"UCT": "UCT",
|
||||||
|
"US/Alaska": "US/Alaska",
|
||||||
|
"US/Aleutian": "US/Aleutian",
|
||||||
|
"US/Arizona": "US/Arizona",
|
||||||
|
"US/Central": "US/Central",
|
||||||
|
"US/East-Indiana": "US/East-Indiana",
|
||||||
|
"US/Eastern": "US/Eastern",
|
||||||
|
"US/Hawaii": "US/Hawaii",
|
||||||
|
"US/Indiana-Starke": "US/Indiana-Starke",
|
||||||
|
"US/Michigan": "US/Michigan",
|
||||||
|
"US/Mountain": "US/Mountain",
|
||||||
|
"US/Pacific": "US/Pacific",
|
||||||
|
"US/Pacific-New": "US/Pacific-New",
|
||||||
|
"US/Samoa": "US/Samoa",
|
||||||
|
"UTC": "UTC",
|
||||||
|
"Universal": "Universal",
|
||||||
|
"W-SU": "W-SU",
|
||||||
|
"WET": "WET",
|
||||||
|
"Zulu": "Zulu"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"label": "Group",
|
"label": "Group",
|
||||||
|
|
|
@ -2,7 +2,602 @@
|
||||||
"common": {
|
"common": {
|
||||||
"search": "검색",
|
"search": "검색",
|
||||||
"searchWord": "검색어",
|
"searchWord": "검색어",
|
||||||
"useOnlyForSpecialCharacter": "특수문자는 {{0}}만 사용할 수 있습니다."
|
"useOnlyForSpecialCharacter": "특수문자는 {{0}}만 사용할 수 있습니다.",
|
||||||
|
"timezone": {
|
||||||
|
"Africa/Abidjan": "아프리카/아비 장",
|
||||||
|
"Africa/Accra": "아프리카/아크라",
|
||||||
|
"Africa/Addis_Ababa": "아프리카/아디스 아바바",
|
||||||
|
"Africa/Algiers": "아프리카/알제",
|
||||||
|
"Africa/Asmara": "아프리카/아스 마라",
|
||||||
|
"Africa/Asmera": "아프리카/아스 메라",
|
||||||
|
"Africa/Bamako": "아프리카/바마코",
|
||||||
|
"Africa/Bangui": "아프리카/반 귀이",
|
||||||
|
"Africa/Banjul": "아프리카/반줄",
|
||||||
|
"Africa/Bissau": "아프리카/비사우",
|
||||||
|
"Africa/Blantyre": "아프리카/블랜 타이어",
|
||||||
|
"Africa/Brazzaville": "아프리카/브라자빌",
|
||||||
|
"Africa/Bujumbura": "아프리카/부줌 부라",
|
||||||
|
"Africa/Cairo": "아프리카/카이로",
|
||||||
|
"Africa/Casablanca": "아프리카/카사 블랑카",
|
||||||
|
"Africa/Ceuta": "아프리카/세 우타",
|
||||||
|
"Africa/Conakry": "아프리카/코나 크리",
|
||||||
|
"Africa/Dakar": "아프리카/다카르",
|
||||||
|
"Africa/Dar_es_Salaam": "아프리카/다르 에스 살람",
|
||||||
|
"Africa/Djibouti": "아프리카/지부티",
|
||||||
|
"Africa/Douala": "아프리카/두 알라",
|
||||||
|
"Africa/El_Aaiun": "아프리카/엘 아이 운",
|
||||||
|
"Africa/Freetown": "아프리카/프리 타운",
|
||||||
|
"Africa/Gaborone": "아프리카/가보 로네",
|
||||||
|
"Africa/Harare": "아프리카/해러",
|
||||||
|
"Africa/Johannesburg": "아프리카/요하네스 버그",
|
||||||
|
"Africa/Juba": "아프리카/유바",
|
||||||
|
"Africa/Kampala": "아프리카/캄팔라",
|
||||||
|
"Africa/Khartoum": "아프리카/하르툼",
|
||||||
|
"Africa/Kigali": "아프리카/키 갈리",
|
||||||
|
"Africa/Kinshasa": "아프리카/킨 샤사",
|
||||||
|
"Africa/Lagos": "아프리카/라고스",
|
||||||
|
"Africa/Libreville": "아프리카/리버빌",
|
||||||
|
"Africa/Lome": "아프리카/로마",
|
||||||
|
"Africa/Luanda": "아프리카/루안다",
|
||||||
|
"Africa/Lubumbashi": "아프리카/루 붐바시",
|
||||||
|
"Africa/Lusaka": "아프리카/루사카",
|
||||||
|
"Africa/Malabo": "아프리카/말라 보",
|
||||||
|
"Africa/Maputo": "아프리카/마푸토",
|
||||||
|
"Africa/Maseru": "아프리카/마세 루",
|
||||||
|
"Africa/Mbabane": "아프리카/음 바바 네",
|
||||||
|
"Africa/Mogadishu": "아프리카/모가디슈",
|
||||||
|
"Africa/Monrovia": "아프리카/몬로 비아",
|
||||||
|
"Africa/Nairobi": "아프리카/나이로비",
|
||||||
|
"Africa/Ndjamena": "아프리카/냐자 메나",
|
||||||
|
"Africa/Niamey": "아프리카/니암",
|
||||||
|
"Africa/Nouakchott": "아프리카/누악 쇼트",
|
||||||
|
"Africa/Ouagadougou": "아프리카/오아가 두구",
|
||||||
|
"Africa/Porto-Novo": "아프리카/포르토 노보",
|
||||||
|
"Africa/Sao_Tome": "아프리카/사 오토메",
|
||||||
|
"Africa/Timbuktu": "아프리카/팀북투",
|
||||||
|
"Africa/Tripoli": "아프리카/트리폴리",
|
||||||
|
"Africa/Tunis": "아프리카/튀니지",
|
||||||
|
"Africa/Windhoek": "아프리카/빈트 후크",
|
||||||
|
"America/Adak": "아메리카/아닥",
|
||||||
|
"America/Anchorage": "아메리카/앵커리지",
|
||||||
|
"America/Anguilla": "아메리카/앵귈라",
|
||||||
|
"America/Antigua": "아메리카/안티구아",
|
||||||
|
"America/Araguaina": "아메리카/아라구아나",
|
||||||
|
"America/Argentina/Buenos_Aires": "아메리카/아르헨티나/부에노스 아이레스",
|
||||||
|
"America/Argentina/Catamarca": "아메리카/아르헨티나/카타 마르카",
|
||||||
|
"America/Argentina/ComodRivadavia": "아메리카/아르헨티나/코모드 리바다비아",
|
||||||
|
"America/Argentina/Cordoba": "아메리카/아르헨티나/코르도바",
|
||||||
|
"America/Argentina/Jujuy": "아메리카/아르헨티나/주이",
|
||||||
|
"America/Argentina/La_Rioja": "아메리카/아르헨티나/라 리오하",
|
||||||
|
"America/Argentina/Mendoza": "아메리카/아르헨티나/멘도사",
|
||||||
|
"America/Argentina/Rio_Gallegos": "아메리카/아르헨티나/리오 갈레고스",
|
||||||
|
"America/Argentina/Salta": "아메리카/아르헨티나/살타",
|
||||||
|
"America/Argentina/San_Juan": "아메리카/아르헨티나/산후 안",
|
||||||
|
"America/Argentina/San_Luis": "아메리카/아르헨티나/산 루이스",
|
||||||
|
"America/Argentina/Tucuman": "아메리카/아르헨티나/투쿠 만",
|
||||||
|
"America/Argentina/Ushuaia": "아메리카/아르헨티나/우수아",
|
||||||
|
"America/Aruba": "아메리카/아루바",
|
||||||
|
"America/Asuncion": "아메리카/아순시온",
|
||||||
|
"America/Atikokan": "아메리카/아 티코 칸",
|
||||||
|
"America/Atka": "아메리카/아트카",
|
||||||
|
"America/Bahia": "아메리카/바이아",
|
||||||
|
"America/Bahia_Banderas": "아메리카/바이아 반데라스",
|
||||||
|
"America/Barbados": "아메리카/바베이도스",
|
||||||
|
"America/Belem": "아메리카/벨렘",
|
||||||
|
"America/Belize": "아메리카/벨리즈",
|
||||||
|
"America/Blanc-Sablon": "아메리카/블랑-사블 론",
|
||||||
|
"America/Boa_Vista": "아메리카/보아 비스타",
|
||||||
|
"America/Bogota": "아메리카/보고타",
|
||||||
|
"America/Boise": "아메리카/보이즈",
|
||||||
|
"America/Buenos_Aires": "아메리카/부에노스 아이레스",
|
||||||
|
"America/Cambridge_Bay": "아메리카/캠브리지 _ 베이",
|
||||||
|
"America/Campo_Grande": "아메리카/캄포 그란데",
|
||||||
|
"America/Cancun": "아메리카/칸쿤",
|
||||||
|
"America/Caracas": "아메리카/카라카스",
|
||||||
|
"America/Catamarca": "아메리카/카타 마르카",
|
||||||
|
"America/Cayenne": "아메리카/카이엔",
|
||||||
|
"America/Cayman": "아메리카/케이맨",
|
||||||
|
"America/Chicago": "아메리카/시카고",
|
||||||
|
"America/Chihuahua": "아메리카/치와와",
|
||||||
|
"America/Coral_Harbour": "아메리카/코럴 하버",
|
||||||
|
"America/Cordoba": "아메리카/코르도바",
|
||||||
|
"America/Costa_Rica": "아메리카/코스타리카",
|
||||||
|
"America/Creston": "아메리카/크레 스턴",
|
||||||
|
"America/Cuiaba": "아메리카/쿠이 아바",
|
||||||
|
"America/Curacao": "아메리카/쿠라 카오",
|
||||||
|
"America/Danmarkshavn": "아메리카/단마크하븐",
|
||||||
|
"America/Dawson": "아메리카/도슨",
|
||||||
|
"America/Dawson_Creek": "아메리카/도슨 크릭",
|
||||||
|
"America/Denver": "아메리카/덴버",
|
||||||
|
"America/Detroit": "아메리카/디트로이트",
|
||||||
|
"America/Dominica": "아메리카/도미니카",
|
||||||
|
"America/Edmonton": "아메리카/에드먼턴",
|
||||||
|
"America/Eirunepe": "아메리카/에루네페",
|
||||||
|
"America/El_Salvador": "아메리카/엘살바도르",
|
||||||
|
"America/Ensenada": "아메리카/엔 세나다",
|
||||||
|
"America/Fort_Nelson": "아메리카/포트 넬슨",
|
||||||
|
"America/Fort_Wayne": "아메리카/포트 웨인",
|
||||||
|
"America/Fortaleza": "아메리카/포르탈레자",
|
||||||
|
"America/Glace_Bay": "아메리카/그레이스 베이",
|
||||||
|
"America/Godthab": "아메리카/고트 하브",
|
||||||
|
"America/Goose_Bay": "아메리카/구스 베이",
|
||||||
|
"America/Grand_Turk": "아메리카/그랜드 터크",
|
||||||
|
"America/Grenada": "아메리카/그레나다",
|
||||||
|
"America/Guadeloupe": "아메리카/과들루프",
|
||||||
|
"America/Guatemala": "아메리카/과테말라",
|
||||||
|
"America/Guayaquil": "아메리카/과야퀼",
|
||||||
|
"America/Guyana": "아메리카/가이아나",
|
||||||
|
"America/Halifax": "아메리카/할리팩스",
|
||||||
|
"America/Havana": "아메리카/하바나",
|
||||||
|
"America/Hermosillo": "아메리카/헤르모실로",
|
||||||
|
"America/Indiana/Indianapolis": "아메리카/인디애나/인디애나폴리스",
|
||||||
|
"America/Indiana/Knox": "아메리카/인디애나/녹스",
|
||||||
|
"America/Indiana/Marengo": "아메리카/인디애나/마렝고",
|
||||||
|
"America/Indiana/Petersburg": "아메리카/인디애나/피터스버그",
|
||||||
|
"America/Indiana/Tell_City": "아메리카/인디애나/텔시티",
|
||||||
|
"America/Indiana/Vevay": "아메리카/인디애나/비베이",
|
||||||
|
"America/Indiana/Vincennes": "아메리카/인디애나/빈센테",
|
||||||
|
"America/Indiana/Winamac": "아메리카/인디애나/윈아멕",
|
||||||
|
"America/Indianapolis": "아메리카/인디애나폴리스",
|
||||||
|
"America/Inuvik": "아메리카/이누빅",
|
||||||
|
"America/Iqaluit": "아메리카/이칼루이트",
|
||||||
|
"America/Jamaica": "아메리카/자메이카",
|
||||||
|
"America/Jujuy": "아메리카/주이",
|
||||||
|
"America/Juneau": "아메리카/주노",
|
||||||
|
"America/Kentucky/Louisville": "아메리카/켄터키/루이스 빌",
|
||||||
|
"America/Kentucky/Monticello": "아메리카/켄터키/몬티 첼로",
|
||||||
|
"America/Knox_IN": "아메리카/녹스 IN",
|
||||||
|
"America/Kralendijk": "아메리카/크라랜디직",
|
||||||
|
"America/La_Paz": "아메리카/라 파즈",
|
||||||
|
"America/Lima": "아메리카/리마",
|
||||||
|
"America/Los_Angeles": "아메리카/로스 앤젤레스",
|
||||||
|
"America/Louisville": "아메리카/루이스 빌",
|
||||||
|
"America/Lower_Princes": "아메리카/하위 프린스",
|
||||||
|
"America/Maceio": "아메리카/마세 이오",
|
||||||
|
"America/Managua": "아메리카/마나과",
|
||||||
|
"America/Manaus": "아메리카/마나우스",
|
||||||
|
"America/Marigot": "아메리카/마리 고",
|
||||||
|
"America/Martinique": "아메리카/마르티니크",
|
||||||
|
"America/Matamoros": "아메리카/마타 모로",
|
||||||
|
"America/Mazatlan": "아메리카/마자 틀란",
|
||||||
|
"America/Mendoza": "아메리카/멘도사",
|
||||||
|
"America/Menominee": "아메리카/메노 민",
|
||||||
|
"America/Merida": "아메리카/메리다",
|
||||||
|
"America/Metlakatla": "아메리카/메틀 라카 틀라",
|
||||||
|
"America/Mexico_City": "아메리카/멕시코시티",
|
||||||
|
"America/Miquelon": "아메리카/미켈론",
|
||||||
|
"America/Moncton": "아메리카/몬크톤",
|
||||||
|
"America/Monterrey": "아메리카/몬테레이",
|
||||||
|
"America/Montevideo": "아메리카/몬테비데오",
|
||||||
|
"America/Montreal": "아메리카/몬트리올",
|
||||||
|
"America/Montserrat": "아메리카/몬체 라트",
|
||||||
|
"America/Nassau": "아메리카/나소",
|
||||||
|
"America/New_York": "아메리카/뉴욕",
|
||||||
|
"America/Nipigon": "아메리카/니피곤",
|
||||||
|
"America/Nome": "아메리카/노메",
|
||||||
|
"America/Noronha": "아메리카/노로냐",
|
||||||
|
"America/North_Dakota/Beulah": "아메리카/노스 다코타/부라",
|
||||||
|
"America/North_Dakota/Center": "아메리카/노스 다코타/센터",
|
||||||
|
"America/North_Dakota/New_Salem": "아메리카/노스 다코타/뉴 살렘",
|
||||||
|
"America/Ojinaga": "아메리카/오지나가",
|
||||||
|
"America/Panama": "아메리카/파나마",
|
||||||
|
"America/Pangnirtung": "아메리카/판니르퉁",
|
||||||
|
"America/Paramaribo": "아메리카/파라마리보",
|
||||||
|
"America/Phoenix": "아메리카/피닉스",
|
||||||
|
"America/Port-au-Prince": "아메리카/포트 오 프린스",
|
||||||
|
"America/Port_of_Spain": "아메리카/포트 오브 스페인",
|
||||||
|
"America/Porto_Acre": "아메리카/포르토 아크레",
|
||||||
|
"America/Porto_Velho": "아메리카/포르토 벨호",
|
||||||
|
"America/Puerto_Rico": "아메리카/푸에르토 리코",
|
||||||
|
"America/Punta_Arenas": "아메리카/푼타 아레나",
|
||||||
|
"America/Rainy_River": "아메리카/레이니 리버",
|
||||||
|
"America/Rankin_Inlet": "아메리카/랜킨 인렛",
|
||||||
|
"America/Recife": "아메리카/레시페",
|
||||||
|
"America/Regina": "아메리카/레지나",
|
||||||
|
"America/Resolute": "아메리카/리졸루트",
|
||||||
|
"America/Rio_Branco": "아메리카/리오 브랑코",
|
||||||
|
"America/Rosario": "아메리카/로자리오",
|
||||||
|
"America/Santa_Isabel": "아메리카/산타 이사벨",
|
||||||
|
"America/Santarem": "아메리카/산타렘",
|
||||||
|
"America/Santiago": "아메리카/산티아고",
|
||||||
|
"America/Santo_Domingo": "아메리카/산토 도밍고",
|
||||||
|
"America/Sao_Paulo": "아메리카/상파울루",
|
||||||
|
"America/Scoresbysund": "아메리카/스코어스비순드",
|
||||||
|
"America/Shiprock": "아메리카/쉽락",
|
||||||
|
"America/Sitka": "아메리카/싯카",
|
||||||
|
"America/St_Barthelemy": "아메리카/세인트 바델레미",
|
||||||
|
"America/St_Johns": "아메리카/세인트 존스",
|
||||||
|
"America/St_Kitts": "아메리카/세인트 키츠",
|
||||||
|
"America/St_Lucia": "아메리카/세인트 루시아",
|
||||||
|
"America/St_Thomas": "아메리카/세인트 토마스",
|
||||||
|
"America/St_Vincent": "아메리카/세인트 빈센트",
|
||||||
|
"America/Swift_Current": "아메리카/스위프트 커런트",
|
||||||
|
"America/Tegucigalpa": "아메리카/테구시갈파",
|
||||||
|
"America/Thule": "아메리카/툴레",
|
||||||
|
"America/Thunder_Bay": "아메리카/선더 베이",
|
||||||
|
"America/Tijuana": "아메리카/티후아나",
|
||||||
|
"America/Toronto": "아메리카/토론토",
|
||||||
|
"America/Tortola": "아메리카/토르톨라",
|
||||||
|
"America/Vancouver": "아메리카/밴쿠버",
|
||||||
|
"America/Virgin": "아메리카/버진",
|
||||||
|
"America/Whitehorse": "아메리카/화이트호스",
|
||||||
|
"America/Winnipeg": "아메리카/위니펙",
|
||||||
|
"America/Yakutat": "아메리카/야쿠타트",
|
||||||
|
"America/Yellowknife": "아메리카/옐로나이프",
|
||||||
|
"Antarctica/Casey": "남극/케이시",
|
||||||
|
"Antarctica/Davis": "남극/데이비스",
|
||||||
|
"Antarctica/DumontDUrville": "남극/듀몽듀르빌",
|
||||||
|
"Antarctica/Macquarie": "남극/맥쿼리",
|
||||||
|
"Antarctica/Mawson": "남극/모손",
|
||||||
|
"Antarctica/McMurdo": "남극 대륙/맥머도",
|
||||||
|
"Antarctica/Palmer": "남극/팔머",
|
||||||
|
"Antarctica/Rothera": "남극/로 데라",
|
||||||
|
"Antarctica/South_Pole": "남극/남극",
|
||||||
|
"Antarctica/Syowa": "남극/요와",
|
||||||
|
"Antarctica/Troll": "남극/트롤",
|
||||||
|
"Antarctica/Vostok": "남극/보스 토크",
|
||||||
|
"Arctic/Longyearbyen": "북극/롱 이어 비엔",
|
||||||
|
"Asia/Aden": "아시아/아덴",
|
||||||
|
"Asia/Almaty": "아시아/알마티",
|
||||||
|
"Asia/Amman": "아시아/암만",
|
||||||
|
"Asia/Anadyr": "아시아/아나 디르",
|
||||||
|
"Asia/Aqtau": "아시아/악 타우",
|
||||||
|
"Asia/Aqtobe": "아시아/악 토베",
|
||||||
|
"Asia/Ashgabat": "아시아/아시가 바트",
|
||||||
|
"Asia/Ashkhabad": "아시아/아쉬 카바 드",
|
||||||
|
"Asia/Atyrau": "아시아/아티 라우",
|
||||||
|
"Asia/Baghdad": "아시아/바그다드",
|
||||||
|
"Asia/Bahrain": "아시아/바레인",
|
||||||
|
"Asia/Baku": "아시아/바쿠",
|
||||||
|
"Asia/Bangkok": "아시아/방콕",
|
||||||
|
"Asia/Barnaul": "아시아/바르나울",
|
||||||
|
"Asia/Beirut": "아시아/베이루트",
|
||||||
|
"Asia/Bishkek": "아시아/비슈케크",
|
||||||
|
"Asia/Brunei": "아시아/브루나이",
|
||||||
|
"Asia/Calcutta": "아시아/캘커타",
|
||||||
|
"Asia/Chita": "아시아/치타",
|
||||||
|
"Asia/Choibalsan": "아시아/최발산",
|
||||||
|
"Asia/Chongqing": "아시아/충칭",
|
||||||
|
"Asia/Chungking": "아시아/청킹",
|
||||||
|
"Asia/Colombo": "아시아/콜롬보",
|
||||||
|
"Asia/Dacca": "아시아/다카",
|
||||||
|
"Asia/Damascus": "아시아/다마스커스",
|
||||||
|
"Asia/Dhaka": "아시아/다카",
|
||||||
|
"Asia/Dili": "아시아/힌디어",
|
||||||
|
"Asia/Dubai": "아시아/두바이",
|
||||||
|
"Asia/Dushanbe": "아시아/두샨베",
|
||||||
|
"Asia/Famagusta": "아시아/파 마구 스타",
|
||||||
|
"Asia/Gaza": "아시아/가자",
|
||||||
|
"Asia/Harbin": "아시아/하얼빈",
|
||||||
|
"Asia/Hebron": "아시아/헤브론",
|
||||||
|
"Asia/Ho_Chi_Minh": "아시아/호치민",
|
||||||
|
"Asia/Hong_Kong": "아시아/홍콩",
|
||||||
|
"Asia/Hovd": "아시아/호브드",
|
||||||
|
"Asia/Irkutsk": "아시아/이르쿠츠크",
|
||||||
|
"Asia/Istanbul": "아시아/이스탄불",
|
||||||
|
"Asia/Jakarta": "아시아/자카르타",
|
||||||
|
"Asia/Jayapura": "아시아/자야푸라",
|
||||||
|
"Asia/Jerusalem": "아시아/예루살렘",
|
||||||
|
"Asia/Kabul": "아시아/카불",
|
||||||
|
"Asia/Kamchatka": "아시아/캄차카",
|
||||||
|
"Asia/Karachi": "아시아/카라치",
|
||||||
|
"Asia/Kashgar": "아시아/카슈가르",
|
||||||
|
"Asia/Kathmandu": "아시아/카트만두",
|
||||||
|
"Asia/Katmandu": "아시아/카트만두",
|
||||||
|
"Asia/Khandyga": "아시아/칸디가",
|
||||||
|
"Asia/Kolkata": "아시아/콜카타",
|
||||||
|
"Asia/Krasnoyarsk": "아시아/크라스 노야 르 스크",
|
||||||
|
"Asia/Kuala_Lumpur": "아시아/쿠알라 룸푸르",
|
||||||
|
"Asia/Kuching": "아시아/쿠칭",
|
||||||
|
"Asia/Kuwait": "아시아/쿠웨이트",
|
||||||
|
"Asia/Macao": "아시아/마카오",
|
||||||
|
"Asia/Macau": "아시아/마카오",
|
||||||
|
"Asia/Magadan": "아시아/마가 단",
|
||||||
|
"Asia/Makassar": "아시아/마카 사르",
|
||||||
|
"Asia/Manila": "아시아/마닐라",
|
||||||
|
"Asia/Muscat": "아시아/무스카트",
|
||||||
|
"Asia/Nicosia": "아시아/니코 시아",
|
||||||
|
"Asia/Novokuznetsk": "아시아/노보 쿠즈네츠 크",
|
||||||
|
"Asia/Novosibirsk": "아시아/노보시비르스크",
|
||||||
|
"Asia/Omsk": "아시아/옴 스크",
|
||||||
|
"Asia/Oral": "아시아/오랄",
|
||||||
|
"Asia/Phnom_Penh": "아시아/프놈펜",
|
||||||
|
"Asia/Pontianak": "아시아/폰티아낙",
|
||||||
|
"Asia/Pyongyang": "아시아/평양",
|
||||||
|
"Asia/Qatar": "아시아/카타르",
|
||||||
|
"Asia/Qostanay": "아시아/쿠스타나이",
|
||||||
|
"Asia/Qyzylorda": "아시아/키질로르다",
|
||||||
|
"Asia/Rangoon": "아시아/랑군",
|
||||||
|
"Asia/Riyadh": "아시아/리야드",
|
||||||
|
"Asia/Saigon": "아시아/사이공",
|
||||||
|
"Asia/Sakhalin": "아시아/사할린",
|
||||||
|
"Asia/Samarkand": "아시아/사마르 칸트",
|
||||||
|
"Asia/Seoul": "아시아/서울",
|
||||||
|
"Asia/Shanghai": "아시아/상하이",
|
||||||
|
"Asia/Singapore": "아시아/싱가포르",
|
||||||
|
"Asia/Srednekolymsk": "아시아/스레 네 콜림 스크",
|
||||||
|
"Asia/Taipei": "아시아/타이페이",
|
||||||
|
"Asia/Tashkent": "아시아/타슈켄트",
|
||||||
|
"Asia/Tbilisi": "아시아/트빌리시",
|
||||||
|
"Asia/Tehran": "아시아/테헤란",
|
||||||
|
"Asia/Tel_Aviv": "아시아/텔아비브",
|
||||||
|
"Asia/Thimbu": "아시아/팀부",
|
||||||
|
"Asia/Thimphu": "아시아/팀푸",
|
||||||
|
"Asia/Tokyo": "아시아/도쿄",
|
||||||
|
"Asia/Tomsk": "아시아/톰스크",
|
||||||
|
"Asia/Ujung_Pandang": "아시아/엔드",
|
||||||
|
"Asia/Ulaanbaatar": "아시아/울란바토르",
|
||||||
|
"Asia/Ulan_Bator": "아시아/울란바토르",
|
||||||
|
"Asia/Urumqi": "아시아/우루무치",
|
||||||
|
"Asia/Ust-Nera": "아시아/우스트네라",
|
||||||
|
"Asia/Vientiane": "아시아/비엔티안",
|
||||||
|
"Asia/Vladivostok": "아시아/블라디보스토크",
|
||||||
|
"Asia/Yakutsk": "아시아/야쿠츠크",
|
||||||
|
"Asia/Yangon": "아시아/양곤",
|
||||||
|
"Asia/Yekaterinburg": "아시아/예카테린부르크",
|
||||||
|
"Asia/Yerevan": "아시아/예레반",
|
||||||
|
"Atlantic/Azores": "대서양/아조레스",
|
||||||
|
"Atlantic/Bermuda": "대서양/버뮤다",
|
||||||
|
"Atlantic/Canary": "대서양/카나리아",
|
||||||
|
"Atlantic/Cape_Verde": "대서양/카보 베르데",
|
||||||
|
"Atlantic/Faeroe": "대서양/파에로",
|
||||||
|
"Atlantic/Faroe": "대서양/파로",
|
||||||
|
"Atlantic/Jan_Mayen": "대서양/얀 마옌",
|
||||||
|
"Atlantic/Madeira": "대서양/마데이라",
|
||||||
|
"Atlantic/Reykjavik": "대서양/레이캬비크",
|
||||||
|
"Atlantic/South_Georgia": "대서양/사우스 조지아",
|
||||||
|
"Atlantic/St_Helena": "대서양/세인트 헬레나",
|
||||||
|
"Atlantic/Stanley": "대서양/스탠리",
|
||||||
|
"Australia/ACT": "오스트레일리아/ACT",
|
||||||
|
"Australia/Adelaide": "오스트레일리아/애들레이드",
|
||||||
|
"Australia/Brisbane": "오스트레일리아/브리즈번",
|
||||||
|
"Australia/Broken_Hill": "오스트레일리아/브로큰 힐",
|
||||||
|
"Australia/Canberra": "오스트레일리아/캔버라",
|
||||||
|
"Australia/Currie": "오스트레일리아/커리",
|
||||||
|
"Australia/Darwin": "오스트레일리아/다윈",
|
||||||
|
"Australia/Eucla": "오스트레일리아/유클라",
|
||||||
|
"Australia/Hobart": "오스트레일리아/호바트",
|
||||||
|
"Australia/LHI": "오스트레일리아/LHI",
|
||||||
|
"Australia/Lindeman": "오스트레일리아/린드만",
|
||||||
|
"Australia/Lord_Howe": "오스트레일리아/로드 호우",
|
||||||
|
"Australia/Melbourne": "오스트레일리아/멜버른",
|
||||||
|
"Australia/NSW": "오스트레일리아/NSW",
|
||||||
|
"Australia/North": "오스트레일리아/북부",
|
||||||
|
"Australia/Perth": "오스트레일리아/퍼스",
|
||||||
|
"Australia/Queensland": "오스트레일리아/퀸즐랜드",
|
||||||
|
"Australia/South": "오스트레일리아/남부",
|
||||||
|
"Australia/Sydney": "오스트레일리아/시드니",
|
||||||
|
"Australia/Tasmania": "오스트레일리아/태즈 매니아",
|
||||||
|
"Australia/Victoria": "오스트레일리아/빅토리아",
|
||||||
|
"Australia/West": "오스트레일리아/서부",
|
||||||
|
"Australia/Yancowinna": "오스트레일리아/얀 카우 나",
|
||||||
|
"Brazil/Acre": "브라질/에이커",
|
||||||
|
"Brazil/DeNoronha": "브라질/드노르온하",
|
||||||
|
"Brazil/East": "브라질/동부",
|
||||||
|
"Brazil/West": "브라질/서부",
|
||||||
|
"CET": "CET",
|
||||||
|
"CST6CDT": "CST6CDT",
|
||||||
|
"Canada/Atlantic": "캐나다/대서양",
|
||||||
|
"Canada/Central": "캐나다/중앙",
|
||||||
|
"Canada/Eastern": "캐나다/동부",
|
||||||
|
"Canada/Mountain": "캐나다/마운틴",
|
||||||
|
"Canada/Newfoundland": "캐나다/뉴펀들랜드",
|
||||||
|
"Canada/Pacific": "캐나다/태평양",
|
||||||
|
"Canada/Saskatchewan": "캐나다/서스캐처원",
|
||||||
|
"Canada/Yukon": "캐나다/유콘",
|
||||||
|
"Chile/Continental": "칠레/컨티넨탈",
|
||||||
|
"Chile/EasterIsland": "칠레/이스터섬",
|
||||||
|
"Cuba": "쿠바",
|
||||||
|
"EET": "EET",
|
||||||
|
"EST": "EST",
|
||||||
|
"EST5EDT": "EST5EDT",
|
||||||
|
"Egypt": "이집트",
|
||||||
|
"Eire": "에이레",
|
||||||
|
"Etc/GMT": "기타/GMT",
|
||||||
|
"Etc/GMT+0": "기타/GMT+0",
|
||||||
|
"Etc/GMT+1": "기타/GMT+1",
|
||||||
|
"Etc/GMT+10": "기타/GMT+10",
|
||||||
|
"Etc/GMT+11": "기타/GMT+11",
|
||||||
|
"Etc/GMT+12": "기타/GMT+12",
|
||||||
|
"Etc/GMT+2": "기타/GMT+2",
|
||||||
|
"Etc/GMT+3": "기타/GMT+3",
|
||||||
|
"Etc/GMT+4": "기타/GMT+4",
|
||||||
|
"Etc/GMT+5": "기타/GMT+5",
|
||||||
|
"Etc/GMT+6": "기타/GMT+6",
|
||||||
|
"Etc/GMT+7": "기타/GMT+7",
|
||||||
|
"Etc/GMT+8": "기타/GMT+8",
|
||||||
|
"Etc/GMT+9": "기타/GMT+9",
|
||||||
|
"Etc/GMT-0": "기타/GMT-0",
|
||||||
|
"Etc/GMT-1": "기타/GMT-1",
|
||||||
|
"Etc/GMT-10": "기타/GMT-10",
|
||||||
|
"Etc/GMT-11": "기타/GMT-11",
|
||||||
|
"Etc/GMT-12": "기타/GMT-12",
|
||||||
|
"Etc/GMT-13": "기타/GMT-13",
|
||||||
|
"Etc/GMT-14": "기타/GMT-14",
|
||||||
|
"Etc/GMT-2": "기타/GMT-2",
|
||||||
|
"Etc/GMT-3": "기타/GMT-3",
|
||||||
|
"Etc/GMT-4": "기타/GMT-4",
|
||||||
|
"Etc/GMT-5": "기타/GMT-5",
|
||||||
|
"Etc/GMT-6": "기타/GMT-6",
|
||||||
|
"Etc/GMT-7": "기타/GMT-7",
|
||||||
|
"Etc/GMT-8": "기타/GMT-8",
|
||||||
|
"Etc/GMT-9": "기타/GMT-9",
|
||||||
|
"Etc/GMT0": "기타/GMT0",
|
||||||
|
"Etc/Greenwich": "기타/그리니치",
|
||||||
|
"Etc/UCT": "기타/UCT",
|
||||||
|
"Etc/UTC": "기타/UTC",
|
||||||
|
"Etc/Universal": "기타/유니버설",
|
||||||
|
"Etc/Zulu": "기타/줄루",
|
||||||
|
"Europe/Amsterdam": "유럽/암스테르담",
|
||||||
|
"Europe/Andorra": "유럽/안도라",
|
||||||
|
"Europe/Astrakhan": "유럽/아스트라칸",
|
||||||
|
"Europe/Athens": "유럽/아테네",
|
||||||
|
"Europe/Belfast": "유럽/벨파스트",
|
||||||
|
"Europe/Belgrade": "유럽/베오그라드",
|
||||||
|
"Europe/Berlin": "유럽/베를린",
|
||||||
|
"Europe/Bratislava": "유럽/브라티슬라바",
|
||||||
|
"Europe/Brussels": "유럽/브뤼셀",
|
||||||
|
"Europe/Bucharest": "유럽/부쿠레슈티",
|
||||||
|
"Europe/Budapest": "유럽/부다페스트",
|
||||||
|
"Europe/Busingen": "유럽/빙고",
|
||||||
|
"Europe/Chisinau": "유럽/치사 나우",
|
||||||
|
"Europe/Copenhagen": "유럽/코펜하겐",
|
||||||
|
"Europe/Dublin": "유럽/더블린",
|
||||||
|
"Europe/Gibraltar": "유럽/지브롤터",
|
||||||
|
"Europe/Guernsey": "유럽/건지",
|
||||||
|
"Europe/Helsinki": "유럽/헬싱키",
|
||||||
|
"Europe/Isle_of_Man": "유럽/아일 오브 맨",
|
||||||
|
"Europe/Istanbul": "유럽/이스탄불",
|
||||||
|
"Europe/Jersey": "유럽/저지",
|
||||||
|
"Europe/Kaliningrad": "유럽/칼리닌그라드",
|
||||||
|
"Europe/Kiev": "유럽/키예프",
|
||||||
|
"Europe/Kirov": "유럽/키로프",
|
||||||
|
"Europe/Lisbon": "유럽/리스본",
|
||||||
|
"Europe/Ljubljana": "유럽/류블 랴나",
|
||||||
|
"Europe/London": "유럽/런던",
|
||||||
|
"Europe/Luxembourg": "유럽/룩셈부르크",
|
||||||
|
"Europe/Madrid": "유럽/마드리드",
|
||||||
|
"Europe/Malta": "유럽/몰타",
|
||||||
|
"Europe/Mariehamn": "유럽/마리에 함",
|
||||||
|
"Europe/Minsk": "유럽/민스크",
|
||||||
|
"Europe/Monaco": "유럽/모나코",
|
||||||
|
"Europe/Moscow": "유럽/모스크바",
|
||||||
|
"Europe/Nicosia": "유럽/니코 시아",
|
||||||
|
"Europe/Oslo": "유럽/오슬로",
|
||||||
|
"Europe/Paris": "유럽/파리",
|
||||||
|
"Europe/Podgorica": "유럽/포드로 리카",
|
||||||
|
"Europe/Prague": "유럽/프라하",
|
||||||
|
"Europe/Riga": "유럽/리가",
|
||||||
|
"Europe/Rome": "유럽/로마",
|
||||||
|
"Europe/Samara": "유럽/사마라",
|
||||||
|
"Europe/San_Marino": "유럽/산 마리노",
|
||||||
|
"Europe/Sarajevo": "유럽/사라예보",
|
||||||
|
"Europe/Saratov": "유럽/사라 토프",
|
||||||
|
"Europe/Simferopol": "유럽/심 페로 폴",
|
||||||
|
"Europe/Skopje": "유럽/스코 페",
|
||||||
|
"Europe/Sofia": "유럽/소피아",
|
||||||
|
"Europe/Stockholm": "유럽/스톡홀름",
|
||||||
|
"Europe/Tallinn": "유럽/탈린",
|
||||||
|
"Europe/Tirane": "유럽/티 라네",
|
||||||
|
"Europe/Tiraspol": "유럽/티라스 폴",
|
||||||
|
"Europe/Ulyanovsk": "유럽/울리 야놉 스크",
|
||||||
|
"Europe/Uzhgorod": "유럽/우즈 고로드",
|
||||||
|
"Europe/Vaduz": "유럽/파두 츠",
|
||||||
|
"Europe/Vatican": "유럽/바티칸",
|
||||||
|
"Europe/Vienna": "유럽/비엔나",
|
||||||
|
"Europe/Vilnius": "유럽/빌니우스",
|
||||||
|
"Europe/Volgograd": "유럽/볼고그라드",
|
||||||
|
"Europe/Warsaw": "유럽/바르샤바",
|
||||||
|
"Europe/Zagreb": "유럽/자그레브",
|
||||||
|
"Europe/Zaporozhye": "유럽/자포 로제",
|
||||||
|
"Europe/Zurich": "유럽/취리히",
|
||||||
|
"GB": "GB",
|
||||||
|
"GB-Eire": "GB-Eire",
|
||||||
|
"GMT": "GMT",
|
||||||
|
"GMT+0": "GMT+0",
|
||||||
|
"GMT-0": "GMT-0",
|
||||||
|
"GMT0": "GMT0",
|
||||||
|
"Greenwich": "그리니치",
|
||||||
|
"HST": "HST",
|
||||||
|
"Hongkong": "홍콩",
|
||||||
|
"Iceland": "아이슬란드",
|
||||||
|
"Indian/Antananarivo": "인도/안타나나리보",
|
||||||
|
"Indian/Chagos": "인도/차고 스",
|
||||||
|
"Indian/Christmas": "인도/크리스마스",
|
||||||
|
"Indian/Cocos": "인도/코코스",
|
||||||
|
"Indian/Comoro": "인도/코모로",
|
||||||
|
"Indian/Kerguelen": "인도/케르겔렌",
|
||||||
|
"Indian/Mahe": "인도/마헤",
|
||||||
|
"Indian/Maldives": "인도/몰디브",
|
||||||
|
"Indian/Mauritius": "인도/모리셔스",
|
||||||
|
"Indian/Mayotte": "인도/마 요트",
|
||||||
|
"Indian/Reunion": "인도/리유니언",
|
||||||
|
"Iran": "이란",
|
||||||
|
"Israel": "이스라엘",
|
||||||
|
"Jamaica": "자메이카",
|
||||||
|
"Japan": "일본",
|
||||||
|
"Kwajalein": "콰잘 레인",
|
||||||
|
"Libya": "리비아",
|
||||||
|
"MET": "MET",
|
||||||
|
"MST": "MST",
|
||||||
|
"MST7MDT": "MST7MDT",
|
||||||
|
"Mexico/BajaNorte": "멕시코/바하 노르 테",
|
||||||
|
"Mexico/BajaSur": "멕시코/바하 수르",
|
||||||
|
"Mexico/General": "멕시코/제너럴",
|
||||||
|
"NZ": "NZ",
|
||||||
|
"NZ-CHAT": "NZ-CHAT",
|
||||||
|
"Navajo": "나바호",
|
||||||
|
"PRC": "PRC",
|
||||||
|
"PST8PDT": "PST8PDT",
|
||||||
|
"Pacific/Apia": "태평양/아피아",
|
||||||
|
"Pacific/Auckland": "태평양/오클랜드",
|
||||||
|
"Pacific/Bougainville": "태평양/부 겐빌",
|
||||||
|
"Pacific/Chatham": "태평양/채텀",
|
||||||
|
"Pacific/Chuuk": "태평양/축",
|
||||||
|
"Pacific/Easter": "태평양/이스터",
|
||||||
|
"Pacific/Efate": "태평양/이파테",
|
||||||
|
"Pacific/Enderbury": "태평양/엔더버리",
|
||||||
|
"Pacific/Fakaofo": "태평양/파카오포",
|
||||||
|
"Pacific/Fiji": "태평양/피지",
|
||||||
|
"Pacific/Funafuti": "태평양/후나후티",
|
||||||
|
"Pacific/Galapagos": "태평양/갈라파고스",
|
||||||
|
"Pacific/Gambier": "태평양/겜비어",
|
||||||
|
"Pacific/Guadalcanal": "태평양/과달카날",
|
||||||
|
"Pacific/Guam": "태평양/괌",
|
||||||
|
"Pacific/Honolulu": "태평양/호놀룰루",
|
||||||
|
"Pacific/Johnston": "태평양/존스턴",
|
||||||
|
"Pacific/Kiritimati": "태평양/키리 티 마티",
|
||||||
|
"Pacific/Kosrae": "태평양/코스 라에",
|
||||||
|
"Pacific/Kwajalein": "태평양/콰자 레인",
|
||||||
|
"Pacific/Majuro": "태평양/마주로",
|
||||||
|
"Pacific/Marquesas": "태평양/마르크사",
|
||||||
|
"Pacific/Midway": "퍼시픽/미드웨이",
|
||||||
|
"Pacific/Nauru": "태평양/나우루",
|
||||||
|
"Pacific/Niue": "태평양/니우에",
|
||||||
|
"Pacific/Norfolk": "태평양/노퍽",
|
||||||
|
"Pacific/Noumea": "태평양/누메아",
|
||||||
|
"Pacific/Pago_Pago": "태평양/파고 파고",
|
||||||
|
"Pacific/Palau": "태평양/팔라우",
|
||||||
|
"Pacific/Pitcairn": "태평양/핏 케언",
|
||||||
|
"Pacific/Pohnpei": "태평양/퐁 페이",
|
||||||
|
"Pacific/Ponape": "태평양/포네이프",
|
||||||
|
"Pacific/Port_Moresby": "태평양/포트 모르즈비",
|
||||||
|
"Pacific/Rarotonga": "태평양/로로 통가",
|
||||||
|
"Pacific/Saipan": "태평양/사이판",
|
||||||
|
"Pacific/Samoa": "태평양/사모아",
|
||||||
|
"Pacific/Tahiti": "태평양/타히티",
|
||||||
|
"Pacific/Tarawa": "태평양/타라와",
|
||||||
|
"Pacific/Tongatapu": "태평양/통가 타푸",
|
||||||
|
"Pacific/Truk": "태평양/트럭",
|
||||||
|
"Pacific/Wake": "퍼시픽/웨이크",
|
||||||
|
"Pacific/Wallis": "태평양/왈리스",
|
||||||
|
"Pacific/Yap": "태평양/야프",
|
||||||
|
"Poland": "폴란드",
|
||||||
|
"Portugal": "포르투갈",
|
||||||
|
"ROC": "ROC",
|
||||||
|
"ROK": "ROK",
|
||||||
|
"Singapore": "싱가포르",
|
||||||
|
"Turkey": "터키",
|
||||||
|
"UCT": "UCT",
|
||||||
|
"US/Alaska": "미국/알래스카",
|
||||||
|
"US/Aleutian": "미국/알류 티안",
|
||||||
|
"US/Arizona": "미국/애리조나",
|
||||||
|
"US/Central": "미국/중앙",
|
||||||
|
"US/East-Indiana": "미국/동부 인디애나",
|
||||||
|
"US/Eastern": "미국/동부",
|
||||||
|
"US/Hawaii": "미국/하와이",
|
||||||
|
"US/Indiana-Starke": "미국/인디애나-스타크",
|
||||||
|
"US/Michigan": "미국/미시간",
|
||||||
|
"US/Mountain": "미국/마운틴",
|
||||||
|
"US/Pacific": "미국/태평양",
|
||||||
|
"US/Pacific-New": "미국/태평양 뉴",
|
||||||
|
"US/Samoa": "미국/사모아",
|
||||||
|
"UTC": "UTC",
|
||||||
|
"Universal": "유니버설",
|
||||||
|
"W-SU": "W-SU",
|
||||||
|
"WET": "WET",
|
||||||
|
"Zulu": "줄루"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"label": "그룹",
|
"label": "그룹",
|
||||||
|
|
|
@ -45,7 +45,7 @@ export const environment: Environment = {
|
||||||
locale: 'ko',
|
locale: 'ko',
|
||||||
hrInfoLocale: 'ko',
|
hrInfoLocale: 'ko',
|
||||||
startupHideWindow: false,
|
startupHideWindow: false,
|
||||||
timezone: '+9'
|
timezone: 'Asia/Seoul'
|
||||||
},
|
},
|
||||||
notification: {
|
notification: {
|
||||||
chatMessage: true
|
chatMessage: true
|
||||||
|
|
|
@ -45,7 +45,7 @@ export const environment: Environment = {
|
||||||
locale: 'ko',
|
locale: 'ko',
|
||||||
hrInfoLocale: 'ko',
|
hrInfoLocale: 'ko',
|
||||||
startupHideWindow: false,
|
startupHideWindow: false,
|
||||||
timezone: '+9'
|
timezone: 'Asia/Seoul'
|
||||||
},
|
},
|
||||||
notification: {
|
notification: {
|
||||||
chatMessage: true
|
chatMessage: true
|
||||||
|
|
|
@ -45,7 +45,7 @@ export const environment: Environment = {
|
||||||
locale: 'ko',
|
locale: 'ko',
|
||||||
hrInfoLocale: 'ko',
|
hrInfoLocale: 'ko',
|
||||||
startupHideWindow: false,
|
startupHideWindow: false,
|
||||||
timezone: '+9'
|
timezone: 'Asia/Seoul'
|
||||||
},
|
},
|
||||||
notification: {
|
notification: {
|
||||||
chatMessage: true
|
chatMessage: true
|
||||||
|
|
|
@ -45,7 +45,7 @@ export const environment: Environment = {
|
||||||
locale: 'ko',
|
locale: 'ko',
|
||||||
hrInfoLocale: 'ko',
|
hrInfoLocale: 'ko',
|
||||||
startupHideWindow: false,
|
startupHideWindow: false,
|
||||||
timezone: '+9'
|
timezone: 'Asia/Seoul'
|
||||||
},
|
},
|
||||||
notification: {
|
notification: {
|
||||||
chatMessage: true
|
chatMessage: true
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<div class="date-split">
|
<div class="date-split">
|
||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
<span class="date">{{
|
<span class="date">{{
|
||||||
this.message.sendDate | dateToStringFormat: 'YYYY.MM.DD KL'
|
this.message.sendDate | ucapDate: 'YYYY.MM.DD dddd'
|
||||||
}}</span>
|
}}</span>
|
||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
{{ message.title }}
|
{{ message.title }}
|
||||||
</span>
|
</span>
|
||||||
<span class="dept">
|
<span class="dept">
|
||||||
{{ message.regDate | dateToStringFormat: 'MM:DD' }}
|
{{ message.regDate | ucapDate: 'MM:DD' }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
|
@ -63,7 +63,9 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="date">
|
<div class="date">
|
||||||
{{ roomInfo.finalEventDate | dateToStringChatList }}
|
<!-- {{ roomInfo.finalEventDate | dateToStringChatList }}
|
||||||
|
.. -->
|
||||||
|
{{ roomInfo.finalEventDate | ucapDate: 'C' }}
|
||||||
</div>
|
</div>
|
||||||
</dd>
|
</dd>
|
||||||
<dd *ngIf="checkable">
|
<dd *ngIf="checkable">
|
||||||
|
|
|
@ -118,11 +118,11 @@
|
||||||
[value]="setting.timezone"
|
[value]="setting.timezone"
|
||||||
(selectionChange)="onSelectionChangeTimezone($event)"
|
(selectionChange)="onSelectionChangeTimezone($event)"
|
||||||
>
|
>
|
||||||
<mat-option value="ko-KR">
|
<mat-option
|
||||||
한국어 (대한민국)
|
*ngFor="let timezone of timezoneList"
|
||||||
</mat-option>
|
[value]="timezone.name"
|
||||||
<mat-option value="en-US">
|
>
|
||||||
영어 (미국)
|
{{ timezone.displayName }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
|
@ -5,8 +5,13 @@ import {
|
||||||
Output,
|
Output,
|
||||||
EventEmitter,
|
EventEmitter,
|
||||||
Input,
|
Input,
|
||||||
ViewChild
|
ViewChild,
|
||||||
|
OnDestroy
|
||||||
} from '@angular/core';
|
} from '@angular/core';
|
||||||
|
|
||||||
|
import moment from 'moment';
|
||||||
|
import 'moment-timezone';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
MatTabChangeEvent,
|
MatTabChangeEvent,
|
||||||
MatTabGroup,
|
MatTabGroup,
|
||||||
|
@ -14,13 +19,22 @@ import {
|
||||||
MatSelectChange
|
MatSelectChange
|
||||||
} from '@angular/material';
|
} from '@angular/material';
|
||||||
import { GeneralSetting } from '../models/settings';
|
import { GeneralSetting } from '../models/settings';
|
||||||
|
import { NGXLogger } from 'ngx-logger';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
import { take } from 'rxjs/operators';
|
||||||
|
import { Subscription, merge } from 'rxjs';
|
||||||
|
|
||||||
|
export interface TimezoneData {
|
||||||
|
displayName: string;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ucap-settings-general',
|
selector: 'ucap-settings-general',
|
||||||
templateUrl: './general.component.html',
|
templateUrl: './general.component.html',
|
||||||
styleUrls: ['./general.component.scss']
|
styleUrls: ['./general.component.scss']
|
||||||
})
|
})
|
||||||
export class GeneralComponent implements OnInit {
|
export class GeneralComponent implements OnInit, OnDestroy {
|
||||||
@Input()
|
@Input()
|
||||||
setting: GeneralSetting;
|
setting: GeneralSetting;
|
||||||
|
|
||||||
|
@ -30,10 +44,27 @@ export class GeneralComponent implements OnInit {
|
||||||
@ViewChild('themeTabGroup', { static: true })
|
@ViewChild('themeTabGroup', { static: true })
|
||||||
themeTabGroup: MatTabGroup;
|
themeTabGroup: MatTabGroup;
|
||||||
|
|
||||||
constructor(private changeDetectorRef: ChangeDetectorRef) {}
|
get timezoneList(): TimezoneData[] {
|
||||||
|
return this._timezoneList;
|
||||||
|
}
|
||||||
|
set timezoneList(timezoneList: TimezoneData[]) {
|
||||||
|
this._timezoneList = timezoneList;
|
||||||
|
}
|
||||||
|
// tslint:disable-next-line: variable-name
|
||||||
|
_timezoneList: TimezoneData[];
|
||||||
|
|
||||||
|
langChangeSubscription: Subscription;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private translateService: TranslateService,
|
||||||
|
private changeDetectorRef: ChangeDetectorRef,
|
||||||
|
private logger: NGXLogger
|
||||||
|
) {
|
||||||
|
moment.locale('ko');
|
||||||
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
let themeIndex;
|
let themeIndex: number;
|
||||||
switch (this.setting.appTheme) {
|
switch (this.setting.appTheme) {
|
||||||
case 'theme-default':
|
case 'theme-default':
|
||||||
themeIndex = 0;
|
themeIndex = 0;
|
||||||
|
@ -46,6 +77,22 @@ export class GeneralComponent implements OnInit {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this.themeTabGroup.selectedIndex = themeIndex;
|
this.themeTabGroup.selectedIndex = themeIndex;
|
||||||
|
|
||||||
|
this.setTimezoneData();
|
||||||
|
|
||||||
|
this.langChangeSubscription = merge(
|
||||||
|
this.translateService.onLangChange,
|
||||||
|
this.translateService.onDefaultLangChange,
|
||||||
|
this.translateService.onTranslationChange
|
||||||
|
).subscribe(() => {
|
||||||
|
this.setTimezoneData();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
if (!!this.langChangeSubscription) {
|
||||||
|
this.langChangeSubscription.unsubscribe();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onSelectedTabChange(e: MatTabChangeEvent) {
|
onSelectedTabChange(e: MatTabChangeEvent) {
|
||||||
|
@ -93,4 +140,27 @@ export class GeneralComponent implements OnInit {
|
||||||
this.setting = setting;
|
this.setting = setting;
|
||||||
this.changed.emit(this.setting);
|
this.changed.emit(this.setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private setTimezoneData() {
|
||||||
|
this.translateService
|
||||||
|
.get('common.timezone')
|
||||||
|
.pipe(take(1))
|
||||||
|
.subscribe(timezoneData => {
|
||||||
|
let timezoneList: TimezoneData[] = [];
|
||||||
|
for (const name of moment.tz.names()) {
|
||||||
|
const displayName = `(UTC${moment.tz(name).format('Z')}) ${
|
||||||
|
timezoneData[name]
|
||||||
|
}`;
|
||||||
|
timezoneList.push({
|
||||||
|
displayName,
|
||||||
|
name
|
||||||
|
});
|
||||||
|
}
|
||||||
|
timezoneList = timezoneList.sort((a: TimezoneData, b: TimezoneData) => {
|
||||||
|
return a.displayName.localeCompare(b.displayName);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.timezoneList = timezoneList;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
128
projects/ucap-webmessenger-ui/src/lib/pipes/date.pipe.ts
Normal file
128
projects/ucap-webmessenger-ui/src/lib/pipes/date.pipe.ts
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
import {
|
||||||
|
Injectable,
|
||||||
|
Pipe,
|
||||||
|
PipeTransform,
|
||||||
|
OnDestroy,
|
||||||
|
ChangeDetectorRef
|
||||||
|
} from '@angular/core';
|
||||||
|
import { Subscription } from 'rxjs';
|
||||||
|
import { ObjectUtil } from '@ucap-webmessenger/core';
|
||||||
|
|
||||||
|
import { DateService, DateOptions } from '../services/date.service';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
@Pipe({
|
||||||
|
name: 'ucapDate',
|
||||||
|
pure: false // required to update the value when the promise is resolved
|
||||||
|
})
|
||||||
|
export class DatePipe implements PipeTransform, OnDestroy {
|
||||||
|
value = '';
|
||||||
|
lastDate: any;
|
||||||
|
lastFormat: string;
|
||||||
|
lastOptions: DateOptions;
|
||||||
|
changedLocaleSubscription: Subscription;
|
||||||
|
changedTimezoneSubscription: Subscription;
|
||||||
|
changedDefaultTimezoneSubscription: Subscription;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private dateService: DateService,
|
||||||
|
private changeDetectorRef: ChangeDetectorRef
|
||||||
|
) {}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
this._dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
transform(date: any, format: string = 'L', options?: DateOptions): any {
|
||||||
|
if (!date || 0 === date.length) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
ObjectUtil.equals(date, this.lastDate) &&
|
||||||
|
ObjectUtil.equals(format, this.lastFormat) &&
|
||||||
|
ObjectUtil.equals(options, this.lastOptions)
|
||||||
|
) {
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// store the target, in case it changes
|
||||||
|
this.lastDate = date;
|
||||||
|
// store the key, in case it changes
|
||||||
|
this.lastFormat = format;
|
||||||
|
// store the key, in case it changes
|
||||||
|
this.lastOptions = options;
|
||||||
|
|
||||||
|
// set the value
|
||||||
|
this.updateValue(date, format, options);
|
||||||
|
|
||||||
|
// if there is a subscription to onLangChange, clean it
|
||||||
|
this._dispose();
|
||||||
|
|
||||||
|
// subscribe to onLangChange event, in case the language changes
|
||||||
|
if (!this.changedTimezoneSubscription) {
|
||||||
|
this.changedTimezoneSubscription = this.dateService.changedTimezone.subscribe(
|
||||||
|
() => {
|
||||||
|
if (this.lastDate) {
|
||||||
|
this.lastDate = null; // we want to make sure it doesn't return the same value until it's been updated
|
||||||
|
this.updateValue(date, format, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// subscribe to onDefaultLangChange event, in case the default language changes
|
||||||
|
if (!this.changedDefaultTimezoneSubscription) {
|
||||||
|
this.changedDefaultTimezoneSubscription = this.dateService.changedDefaultTimezone.subscribe(
|
||||||
|
() => {
|
||||||
|
if (this.lastDate) {
|
||||||
|
this.lastDate = null; // we want to make sure it doesn't return the same value until it's been updated
|
||||||
|
this.updateValue(date, format, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// subscribe to onDefaultLangChange event, in case the default language changes
|
||||||
|
if (!this.changedLocaleSubscription) {
|
||||||
|
this.changedLocaleSubscription = this.dateService.changedLocale.subscribe(
|
||||||
|
() => {
|
||||||
|
if (this.lastDate) {
|
||||||
|
this.lastDate = null; // we want to make sure it doesn't return the same value until it's been updated
|
||||||
|
this.updateValue(date, format, options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateValue(date: any, format: string = 'L', options?: DateOptions): void {
|
||||||
|
try {
|
||||||
|
const value = this.dateService.get(date, format, options);
|
||||||
|
this.value = value;
|
||||||
|
} catch (error) {
|
||||||
|
this.value = date;
|
||||||
|
}
|
||||||
|
this.lastDate = date;
|
||||||
|
this.lastFormat = format;
|
||||||
|
this.lastOptions = options;
|
||||||
|
this.changeDetectorRef.markForCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
private _dispose(): void {
|
||||||
|
if (!!this.changedTimezoneSubscription) {
|
||||||
|
this.changedTimezoneSubscription.unsubscribe();
|
||||||
|
this.changedTimezoneSubscription = undefined;
|
||||||
|
}
|
||||||
|
if (!!this.changedDefaultTimezoneSubscription) {
|
||||||
|
this.changedDefaultTimezoneSubscription.unsubscribe();
|
||||||
|
this.changedDefaultTimezoneSubscription = undefined;
|
||||||
|
}
|
||||||
|
if (!!this.changedLocaleSubscription) {
|
||||||
|
this.changedLocaleSubscription.unsubscribe();
|
||||||
|
this.changedLocaleSubscription = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,8 +22,8 @@ export class TranslatePipe implements PipeTransform, OnDestroy {
|
||||||
lastTarget: any;
|
lastTarget: any;
|
||||||
lastKey: string;
|
lastKey: string;
|
||||||
lastSeparator: string;
|
lastSeparator: string;
|
||||||
onLangChange: Subscription;
|
changedLangSubscription: Subscription;
|
||||||
onDefaultLangChange: Subscription;
|
changedDefaultLangSubscription: Subscription;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private translateService: TranslateService,
|
private translateService: TranslateService,
|
||||||
|
@ -75,8 +75,8 @@ export class TranslatePipe implements PipeTransform, OnDestroy {
|
||||||
this._dispose();
|
this._dispose();
|
||||||
|
|
||||||
// subscribe to onLangChange event, in case the language changes
|
// subscribe to onLangChange event, in case the language changes
|
||||||
if (!this.onLangChange) {
|
if (!this.changedLangSubscription) {
|
||||||
this.onLangChange = this.translateService.onLangChange.subscribe(
|
this.changedLangSubscription = this.translateService.changedLang.subscribe(
|
||||||
(event: LangChangeEvent) => {
|
(event: LangChangeEvent) => {
|
||||||
if (this.lastKey) {
|
if (this.lastKey) {
|
||||||
this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated
|
this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated
|
||||||
|
@ -87,8 +87,8 @@ export class TranslatePipe implements PipeTransform, OnDestroy {
|
||||||
}
|
}
|
||||||
|
|
||||||
// subscribe to onDefaultLangChange event, in case the default language changes
|
// subscribe to onDefaultLangChange event, in case the default language changes
|
||||||
if (!this.onDefaultLangChange) {
|
if (!this.changedDefaultLangSubscription) {
|
||||||
this.onDefaultLangChange = this.translateService.onDefaultLangChange.subscribe(
|
this.changedDefaultLangSubscription = this.translateService.changedDefaultLang.subscribe(
|
||||||
() => {
|
() => {
|
||||||
if (this.lastKey) {
|
if (this.lastKey) {
|
||||||
this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated
|
this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated
|
||||||
|
@ -105,13 +105,13 @@ export class TranslatePipe implements PipeTransform, OnDestroy {
|
||||||
* Clean any existing subscription to change events
|
* Clean any existing subscription to change events
|
||||||
*/
|
*/
|
||||||
private _dispose(): void {
|
private _dispose(): void {
|
||||||
if (typeof this.onLangChange !== 'undefined') {
|
if (!!this.changedLangSubscription) {
|
||||||
this.onLangChange.unsubscribe();
|
this.changedLangSubscription.unsubscribe();
|
||||||
this.onLangChange = undefined;
|
this.changedLangSubscription = undefined;
|
||||||
}
|
}
|
||||||
if (typeof this.onDefaultLangChange !== 'undefined') {
|
if (!!this.changedDefaultLangSubscription) {
|
||||||
this.onDefaultLangChange.unsubscribe();
|
this.changedDefaultLangSubscription.unsubscribe();
|
||||||
this.onDefaultLangChange = undefined;
|
this.changedDefaultLangSubscription = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
272
projects/ucap-webmessenger-ui/src/lib/services/date.service.ts
Normal file
272
projects/ucap-webmessenger-ui/src/lib/services/date.service.ts
Normal file
|
@ -0,0 +1,272 @@
|
||||||
|
import { Injectable, EventEmitter } from '@angular/core';
|
||||||
|
|
||||||
|
import moment from 'moment';
|
||||||
|
import 'moment-timezone';
|
||||||
|
import {
|
||||||
|
TranslateService,
|
||||||
|
LangChangeEvent,
|
||||||
|
DefaultLangChangeEvent
|
||||||
|
} from '@ngx-translate/core';
|
||||||
|
import { Subscription } from 'rxjs';
|
||||||
|
|
||||||
|
export type DateUnit =
|
||||||
|
| 'year'
|
||||||
|
| 'years'
|
||||||
|
| 'y'
|
||||||
|
| 'month'
|
||||||
|
| 'months'
|
||||||
|
| 'M'
|
||||||
|
| 'week'
|
||||||
|
| 'weeks'
|
||||||
|
| 'w'
|
||||||
|
| 'day'
|
||||||
|
| 'days'
|
||||||
|
| 'd'
|
||||||
|
| 'hour'
|
||||||
|
| 'hours'
|
||||||
|
| 'h'
|
||||||
|
| 'minute'
|
||||||
|
| 'minutes'
|
||||||
|
| 'm'
|
||||||
|
| 'second'
|
||||||
|
| 'seconds'
|
||||||
|
| 's'
|
||||||
|
| 'millisecond'
|
||||||
|
| 'milliseconds'
|
||||||
|
| 'ms';
|
||||||
|
|
||||||
|
export interface DateOptions {
|
||||||
|
manipulate?: {
|
||||||
|
amount?: number;
|
||||||
|
unit?: DateUnit;
|
||||||
|
startOf?: DateUnit;
|
||||||
|
endOf?: DateUnit;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TimezoneChangeEvent {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DefaultTimezoneChangeEvent {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LocaleChangeEvent {
|
||||||
|
locale: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class DateService {
|
||||||
|
// tslint:disable-next-line: variable-name
|
||||||
|
private _changedTimezone: EventEmitter<
|
||||||
|
TimezoneChangeEvent
|
||||||
|
> = new EventEmitter<TimezoneChangeEvent>();
|
||||||
|
// tslint:disable-next-line: variable-name
|
||||||
|
private _changedDefaultTimezone: EventEmitter<
|
||||||
|
DefaultTimezoneChangeEvent
|
||||||
|
> = new EventEmitter<DefaultTimezoneChangeEvent>();
|
||||||
|
// tslint:disable-next-line: variable-name
|
||||||
|
private _changedLocale: EventEmitter<LocaleChangeEvent> = new EventEmitter<
|
||||||
|
LocaleChangeEvent
|
||||||
|
>();
|
||||||
|
|
||||||
|
private onLangChangeSubscription: Subscription;
|
||||||
|
|
||||||
|
// tslint:disable-next-line: variable-name
|
||||||
|
private _defaultTimezone: string;
|
||||||
|
// tslint:disable-next-line: variable-name
|
||||||
|
private _currentTimezone: string;
|
||||||
|
// tslint:disable-next-line: variable-name
|
||||||
|
private _currentLocale: string;
|
||||||
|
|
||||||
|
get changedTimezone(): EventEmitter<TimezoneChangeEvent> {
|
||||||
|
return this._changedTimezone;
|
||||||
|
}
|
||||||
|
|
||||||
|
get changedDefaultTimezone() {
|
||||||
|
return this._changedDefaultTimezone;
|
||||||
|
}
|
||||||
|
|
||||||
|
get changedLocale() {
|
||||||
|
return this._changedLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default lang to fallback when translations are missing on the current lang
|
||||||
|
*/
|
||||||
|
get defaultTimezone(): string {
|
||||||
|
return this._defaultTimezone;
|
||||||
|
}
|
||||||
|
|
||||||
|
set defaultTimezone(defaultTimezone: string) {
|
||||||
|
this._defaultTimezone = defaultTimezone;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The lang currently used
|
||||||
|
*/
|
||||||
|
get currentTimezone(): string {
|
||||||
|
return this._currentTimezone;
|
||||||
|
}
|
||||||
|
|
||||||
|
set currentTimezone(currentTimezone: string) {
|
||||||
|
this._currentTimezone = currentTimezone;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The locale currently used
|
||||||
|
*/
|
||||||
|
get currentLocale(): string {
|
||||||
|
return this._currentLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
set currentLocale(currentLocale: string) {
|
||||||
|
this._currentLocale = currentLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(private translateService: TranslateService) {
|
||||||
|
this.onLangChangeSubscription = this.translateService.onLangChange.subscribe(
|
||||||
|
(event: LangChangeEvent) => {
|
||||||
|
if (this._currentLocale !== event.lang) {
|
||||||
|
this.changeLocale(event.lang);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the default language to use as a fallback
|
||||||
|
*/
|
||||||
|
setDefaultTimezone(timezone: string): void {
|
||||||
|
if (timezone === this.defaultTimezone) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.changeDefaultTimezone(timezone);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the default language used
|
||||||
|
*/
|
||||||
|
getDefaultTimezone(): string {
|
||||||
|
return this.defaultTimezone;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the default language to use as a fallback
|
||||||
|
*/
|
||||||
|
setLocale(locale: string): void {
|
||||||
|
if (locale === this.currentLocale) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.changeLocale(locale);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the default language used
|
||||||
|
*/
|
||||||
|
getLocale(): string {
|
||||||
|
return this.currentLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the lang currently used
|
||||||
|
*/
|
||||||
|
public use(timezone: string): void {
|
||||||
|
// don't change the language if the language given is already selected
|
||||||
|
if (timezone === this.currentTimezone) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.changeTimezone(timezone);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the translated value of a key (or an array of keys)
|
||||||
|
* @returns the translated key, or an object of translated keys
|
||||||
|
*/
|
||||||
|
public get(date: any, format: string = 'L', options?: DateOptions): string {
|
||||||
|
if (!date || 0 === date.length) {
|
||||||
|
throw new Error(`Parameter "date" required`);
|
||||||
|
}
|
||||||
|
|
||||||
|
let d = moment.tz(date, 'Asia/Seoul').utc();
|
||||||
|
|
||||||
|
d = d.tz(this.currentTimezone);
|
||||||
|
|
||||||
|
if (!!options) {
|
||||||
|
if (!!options.manipulate) {
|
||||||
|
if (!!options.manipulate.amount && !!options.manipulate.unit) {
|
||||||
|
d = d.add(options.manipulate.amount, options.manipulate.unit);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!!options.manipulate.startOf) {
|
||||||
|
d = d.startOf(options.manipulate.startOf);
|
||||||
|
}
|
||||||
|
if (!!options.manipulate.endOf) {
|
||||||
|
d = d.startOf(options.manipulate.endOf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('C' === format) {
|
||||||
|
return this.chatFormat(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
return d.format(format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the current lang
|
||||||
|
*/
|
||||||
|
private changeTimezone(timezone: string): void {
|
||||||
|
this.currentTimezone = timezone;
|
||||||
|
this.changedTimezone.emit({ name: timezone });
|
||||||
|
|
||||||
|
// if there is no default lang, use the one that we just set
|
||||||
|
if (!this.defaultTimezone) {
|
||||||
|
this.changeDefaultTimezone(timezone);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the default lang
|
||||||
|
*/
|
||||||
|
private changeDefaultTimezone(timezone: string): void {
|
||||||
|
this.defaultTimezone = timezone;
|
||||||
|
this.changedDefaultTimezone.emit({ name: timezone });
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the default lang
|
||||||
|
*/
|
||||||
|
private changeLocale(locale: string): void {
|
||||||
|
this.currentLocale = locale;
|
||||||
|
moment.locale(locale);
|
||||||
|
this.changedLocale.emit({ locale });
|
||||||
|
}
|
||||||
|
|
||||||
|
private chatFormat(m: moment.Moment): string {
|
||||||
|
const today = moment();
|
||||||
|
const yesterday = moment().subtract(1, 'day');
|
||||||
|
|
||||||
|
if (m.isSame(today, 'day')) {
|
||||||
|
return m.format('a hh:mm');
|
||||||
|
} else if (m.isSame(yesterday, 'day')) {
|
||||||
|
return moment
|
||||||
|
.localeData()
|
||||||
|
.calendar('lastDay')
|
||||||
|
.replace('LT', '')
|
||||||
|
.replace('[', '')
|
||||||
|
.replace(']', '')
|
||||||
|
.replace('at', '')
|
||||||
|
.trim();
|
||||||
|
} else {
|
||||||
|
return m.format('MM.DD');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,11 +13,11 @@ export interface DefaultLangChangeEvent {
|
||||||
})
|
})
|
||||||
export class TranslateService {
|
export class TranslateService {
|
||||||
// tslint:disable-next-line: variable-name
|
// tslint:disable-next-line: variable-name
|
||||||
private _onLangChange: EventEmitter<LangChangeEvent> = new EventEmitter<
|
private _changedLang: EventEmitter<LangChangeEvent> = new EventEmitter<
|
||||||
LangChangeEvent
|
LangChangeEvent
|
||||||
>();
|
>();
|
||||||
// tslint:disable-next-line: variable-name
|
// tslint:disable-next-line: variable-name
|
||||||
private _onDefaultLangChange: EventEmitter<
|
private _changedDefaultLang: EventEmitter<
|
||||||
DefaultLangChangeEvent
|
DefaultLangChangeEvent
|
||||||
> = new EventEmitter<DefaultLangChangeEvent>();
|
> = new EventEmitter<DefaultLangChangeEvent>();
|
||||||
// tslint:disable-next-line: variable-name
|
// tslint:disable-next-line: variable-name
|
||||||
|
@ -31,8 +31,8 @@ export class TranslateService {
|
||||||
* // do something
|
* // do something
|
||||||
* });
|
* });
|
||||||
*/
|
*/
|
||||||
get onLangChange(): EventEmitter<LangChangeEvent> {
|
get changedLang(): EventEmitter<LangChangeEvent> {
|
||||||
return this._onLangChange;
|
return this._changedLang;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -41,8 +41,8 @@ export class TranslateService {
|
||||||
* // do something
|
* // do something
|
||||||
* });
|
* });
|
||||||
*/
|
*/
|
||||||
get onDefaultLangChange() {
|
get changedDefaultLang() {
|
||||||
return this._onDefaultLangChange;
|
return this._changedDefaultLang;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -143,7 +143,7 @@ export class TranslateService {
|
||||||
*/
|
*/
|
||||||
private changeLang(lang: string): void {
|
private changeLang(lang: string): void {
|
||||||
this.currentLang = lang;
|
this.currentLang = lang;
|
||||||
this.onLangChange.emit({ lang });
|
this.changedLang.emit({ lang });
|
||||||
|
|
||||||
// if there is no default lang, use the one that we just set
|
// if there is no default lang, use the one that we just set
|
||||||
if (!this.defaultLang) {
|
if (!this.defaultLang) {
|
||||||
|
@ -156,6 +156,6 @@ export class TranslateService {
|
||||||
*/
|
*/
|
||||||
private changeDefaultLang(lang: string): void {
|
private changeDefaultLang(lang: string): void {
|
||||||
this.defaultLang = lang;
|
this.defaultLang = lang;
|
||||||
this.onDefaultLangChange.emit({ lang });
|
this.changedDefaultLang.emit({ lang });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,7 @@ import { DialogService } from './services/dialog.service';
|
||||||
import { SnackBarService } from './services/snack-bar.service';
|
import { SnackBarService } from './services/snack-bar.service';
|
||||||
import { SplashScreenService } from './services/splash-screen.service';
|
import { SplashScreenService } from './services/splash-screen.service';
|
||||||
import { TranslateService } from './services/translate.service';
|
import { TranslateService } from './services/translate.service';
|
||||||
|
import { DateService } from './services/date.service';
|
||||||
|
|
||||||
import { ClickOutsideDirective } from './directives/click-outside.directive';
|
import { ClickOutsideDirective } from './directives/click-outside.directive';
|
||||||
import { FileUploadForDirective } from './directives/file-upload-for.directive';
|
import { FileUploadForDirective } from './directives/file-upload-for.directive';
|
||||||
|
@ -63,6 +64,7 @@ import {
|
||||||
import { SecondsToMinutesPipe } from './pipes/seconds-to-minutes.pipe';
|
import { SecondsToMinutesPipe } from './pipes/seconds-to-minutes.pipe';
|
||||||
import { LinkyPipe } from './pipes/linky.pipe';
|
import { LinkyPipe } from './pipes/linky.pipe';
|
||||||
import { TranslatePipe } from './pipes/translate.pipe';
|
import { TranslatePipe } from './pipes/translate.pipe';
|
||||||
|
import { DatePipe } from './pipes/date.pipe';
|
||||||
|
|
||||||
import { MatTabsModule } from '@angular/material';
|
import { MatTabsModule } from '@angular/material';
|
||||||
|
|
||||||
|
@ -99,7 +101,8 @@ const PIPES = [
|
||||||
DateDistanceToDatePipe,
|
DateDistanceToDatePipe,
|
||||||
SecondsToMinutesPipe,
|
SecondsToMinutesPipe,
|
||||||
LinkyPipe,
|
LinkyPipe,
|
||||||
TranslatePipe
|
TranslatePipe,
|
||||||
|
DatePipe
|
||||||
];
|
];
|
||||||
const SERVICES = [
|
const SERVICES = [
|
||||||
BottomSheetService,
|
BottomSheetService,
|
||||||
|
@ -107,7 +110,8 @@ const SERVICES = [
|
||||||
DialogService,
|
DialogService,
|
||||||
SnackBarService,
|
SnackBarService,
|
||||||
SplashScreenService,
|
SplashScreenService,
|
||||||
TranslateService
|
TranslateService,
|
||||||
|
DateService
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
|
|
@ -34,6 +34,7 @@ export * from './lib/services/dialog.service';
|
||||||
export * from './lib/services/snack-bar.service';
|
export * from './lib/services/snack-bar.service';
|
||||||
export * from './lib/services/splash-screen.service';
|
export * from './lib/services/splash-screen.service';
|
||||||
export * from './lib/services/translate.service';
|
export * from './lib/services/translate.service';
|
||||||
|
export * from './lib/services/date.service';
|
||||||
|
|
||||||
export * from './lib/types/file-viewer.type';
|
export * from './lib/types/file-viewer.type';
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user