Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
b43f1ae
[feat] 리스트 변수 5000개 제한 로직 추가
prisml Feb 10, 2026
4875ce9
[feat] 리스트 변수 제한 Lang 메시지 추가
prisml Feb 10, 2026
17b07ff
runcoding display
kagnesyun Feb 12, 2026
76dea47
(주)로시 - CUBO AI 기능 추가
rizzie81 Feb 15, 2026
830193b
(주)로시 - CUBO AI 기능 추가
rizzie81 Feb 15, 2026
99eb166
hexboard 센서블록추가(과학실)
kihyeonlion Feb 19, 2026
59315a5
Merge branch 'entrylabs:develop-hw' into develop-hw
kihyeonlion Feb 19, 2026
92741b8
헥사보드_센서추가
kihyeonlion Feb 20, 2026
6d33163
lang : 하드웨어 최소버전 다국어 변경
Tnks2U Feb 24, 2026
cdab1ba
[fix] 음수 정수의 소수 부분 계산 버그 수정
prisml Feb 26, 2026
9cab2fb
feat: 실과수업용 확장 추가
jinbaekho Feb 27, 2026
54d79cd
Merge pull request #3044 from entrylabs/issue/10246
Tnks2U Mar 4, 2026
845c8de
AILearning.js에서 단일 문자열 입력을 처리하도록 레이블 할당 로직 리팩터링.
Mar 5, 2026
9a91aa7
Add entry logo view to scene component and update styles
Mar 5, 2026
20d7b5f
feat: 오프라인 api 키 대응
Tnks2U Nov 25, 2025
0a35d15
Merge pull request #3047 from entrylabs/issue/10295
kimorkim Mar 10, 2026
1ecb618
Merge pull request #3045 from entrylabs/issue/10263
kimorkim Mar 10, 2026
59cc972
Add aiservo hardware module
neo-3ds Mar 11, 2026
849ad53
Merge pull request #3048 from entrylabs/issue/10251
kimorkim Mar 12, 2026
ae45546
Merge pull request #3043 from makeitnow-company/develop-hw
Tnks2U Mar 12, 2026
386a7ef
Update block_aiservo.js
neo-3ds Mar 12, 2026
a279e6e
Update isNotFor property to exclude Runcoding_display in Runcoding_le…
kagnesyun Mar 12, 2026
8f73427
Merge pull request #3041 from kagnesyun/develop-hw
Tnks2U Mar 12, 2026
7579f03
Merge branch 'develop' into develop-hw
Tnks2U Mar 12, 2026
776dfd6
Merge branch 'entrylabs:develop' into develop
neo-3ds Mar 12, 2026
fab2095
Update entry logo view styles and text content
Mar 12, 2026
122a747
날씨 데이터 처리의 오류 핸들링 강화.
Mar 12, 2026
13e86df
gitignore 파일 원복
rizzie81 Mar 13, 2026
07298ab
Merge pull request #3052 from neo-3ds/develop-hw
Tnks2U Mar 13, 2026
2e90888
Merge pull request #3042 from rizzie81/develop-hw
Tnks2U Mar 13, 2026
cfb1576
씬 컴포넌트에서 엔트리 로고 뷰 스타일 및 DOM 요소 제거.
Mar 18, 2026
203eedc
Merge pull request #3054 from entrylabs/issue/10251-2
kimorkim Mar 18, 2026
250279a
Merge pull request #3046 from RoborisenDev/develop-hw
Tnks2U Mar 18, 2026
ac76eb0
fix: aiserve의 isNotFor 추가
Tnks2U Mar 18, 2026
119d3cb
feat: AIDorne Vision Block Library Seperate and Bug Fixes
irbrain Mar 18, 2026
8aab44c
chore: add yarn.lock to .gitignore
irbrain Mar 19, 2026
efce38e
Revert "chore: add yarn.lock to .gitignore"
irbrain Mar 19, 2026
e8e772e
Update block_aiservo.js
neo-3ds Mar 20, 2026
4f531e7
Merge pull request #3057 from neo-3ds/develop-hw
Tnks2U Mar 20, 2026
fcb4579
[fix] 리스트 크기 초과 Lang 메시지를 기획서 문구로 수정
prisml Mar 23, 2026
1391d75
Merge pull request #3056 from aidrone-imdrone/develop-hw
Tnks2U Mar 23, 2026
3952217
Merge pull request #3049 from entrylabs/issue/10293
Tnks2U Mar 23, 2026
6f71be6
Merge pull request #3055 from entrylabs/develop-hw
Tnks2U Mar 23, 2026
3b78ab3
[ImgBot] Optimize images
ImgBotApp Mar 23, 2026
5d7a903
일관성과 명확성을 위해 한국어 언어 파일 업데이트.
Mar 23, 2026
8363f37
[fix] 리스트 5,000개 초과 시 차단 대신 auto-trim 방식으로 변경
prisml Mar 23, 2026
bdce4fd
[feat] WS 리스트 UI 5,000개 초과 시 경고 토스트 추가
prisml Mar 23, 2026
2b02312
[fix] Windows 환경 CRLF 줄바꿈 ESLint 에러 해결
prisml Mar 23, 2026
b1ed1cd
Merge pull request #3059 from entrylabs/issue/10326
kimorkim Mar 23, 2026
af2bc1b
Merge pull request #3058 from entrylabs/imgbot
kimorkim Mar 23, 2026
f53d31b
[feat] 리스트 변수 5000개 제한 로직 추가
prisml Feb 10, 2026
d951f11
[feat] 리스트 변수 제한 Lang 메시지 추가
prisml Feb 10, 2026
ddbdc37
[fix] 리스트 크기 초과 Lang 메시지를 기획서 문구로 수정
prisml Mar 23, 2026
4ab12c2
[fix] 리스트 5,000개 초과 시 차단 대신 auto-trim 방식으로 변경
prisml Mar 23, 2026
9f83b0d
[feat] WS 리스트 UI 5,000개 초과 시 경고 토스트 추가
prisml Mar 23, 2026
722d746
[fix] Windows 환경 CRLF 줄바꿈 ESLint 에러 해결
prisml Mar 23, 2026
5aef640
Merge branch 'issue/10179' of https://github.com/entrylabs/entryjs in…
prisml Mar 23, 2026
0fe7565
Merge pull request #3060 from entrylabs/issue/10179
chanlee Mar 24, 2026
7f26e55
Merge pull request #3061 from entrylabs/issue/10255
chanlee Mar 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"jquery": true,
},
"parserOptions": {
"requireConfigFile": false,
"ecmaVersion": 2020,
"sourceType": "module",
"ecmaFeatures": {
Expand Down
3 changes: 2 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
"trailingComma": "es5",
"bracketSpacing": true,
"semi": true,
"arrowParens": "always"
"arrowParens": "always",
"endOfLine": "auto"
}
15,825 changes: 8,402 additions & 7,423 deletions extern/lang/code.js

Large diffs are not rendered by default.

15,862 changes: 8,421 additions & 7,441 deletions extern/lang/ebs.js

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion extern/lang/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -5231,7 +5231,7 @@ Lang.Msgs = {
'It is a collection of blocks that can read text in a variety of voice using the Clova.',
hardware_need_update_title: 'Entry HW update',
hardware_need_update_content:
"Please update to the latest version,\nif you are using below version.\nEntry website only supported v1.9.64 or later.\nPlease remove the web browser cache,\nif any block doesn't appear after updating.",
"Please update to the latest version,\nif you are using below version.\nEntry website only supported v1.9.73 or later.\nPlease remove the web browser cache,\nif any block doesn't appear after updating.",
ai_utilize_audio_description:
'It is a collection of blocks that recognize speech using microphone.',
ai_utilize_video_description:
Expand Down Expand Up @@ -5635,6 +5635,11 @@ Lang.Workspace = {
variable_name_auto_edited_content: 'variable name cannot exceed 10 characters',
list_name_auto_edited_title: 'list name auto-edited',
list_name_auto_edited_content: 'list name cannot exceed 10 characters',
list_cant_add_item: 'Warning',
list_max_length_exceeded: 'You can add up to 5,000 items to a list.',
list_truncated_on_load:
'The number of list items in this project exceeds 5,000, so some may not be displayed.\n\nFor stable use,\nplease reduce the list to 5,000 or fewer.',
list_truncated_on_load_title: 'Notice',
cloned_scene: 'Cloned_',
default_mode: 'Standard',
practical_course_mode: 'Textbook',
Expand Down
9 changes: 7 additions & 2 deletions extern/lang/ko.js
Original file line number Diff line number Diff line change
Expand Up @@ -5602,7 +5602,7 @@ Lang.Msgs = {
'nVoice 음성합성 기술로 다양한 목소리로 문장을 읽는 블록모음 입니다. (한국어 엔진 지원)',
hardware_need_update_title: '업데이트 안내',
hardware_need_update_content:
'보안 업데이트로 인해 하드웨어 연결 프로그램은\n1.9.64 버전 이상만 사용할 수 있습니다.\n더 낮은 버전이라면 최신 버전을 다운로드 받아 주세요.',
'보안 업데이트로 인해 하드웨어 연결 프로그램은\n1.9.73 버전 이상만 사용할 수 있습니다.\n더 낮은 버전이라면 최신 버전을 다운로드 받아 주세요.',
ai_utilize_video_description:
'카메라를 이용하여 사람(신체), 얼굴, 사물 등을 인식하는 블록들의 모음입니다. (IE 및 iOS 미지원)',
lecture_header_restart_msg: '처음부터 다시 시작하시겠습니까?',
Expand Down Expand Up @@ -6014,6 +6014,11 @@ Lang.Workspace = {
variable_name_auto_edited_content: '변수의 이름은 10글자를 넘을 수 없습니다.',
list_name_auto_edited_title: '리스트 이름 자동 변경',
list_name_auto_edited_content: '리스트의 이름은 10글자를 넘을 수 없습니다.',
list_cant_add_item: '경고',
list_max_length_exceeded: '리스트 항목은 최대 5,000개까지 추가할 수 있어요.',
list_truncated_on_load:
'이 작품의 리스트 항목 수가 5,000개를 초과하여 일부가 표시되지 않을 수 있습니다.\n\n안정적인 이용을 위해\n리스트를 5,000개 이하로 줄여주세요.',
list_truncated_on_load_title: '알림',
cloned_scene: '복제본_',
default_mode: '기본형',
practical_course_mode: '교과형',
Expand Down Expand Up @@ -6413,7 +6418,7 @@ Lang.Helper = {
is_included_in_list:
"선택한 리스트가 입력한 값을 가진 항목을 포함하는 경우 '참'으로 판단합니다.",
boolean_basic_operator:
"입력한 두 값을 비교합니다.\n= : 왼쪽에 위치한 값과 오른쪽에 위치한 값이 같은 경우 '참'으로 판단합니다.\n!= : 왼쪽에 위치한 값과 오른쪽에 위치한 값이 같지 않은 경우 '참'으로 판단합니다.\n> : 왼쪽에 위치한 값이 오른쪽에 위치한 값보다 큰 경우 같로 판단합니다.\n< : 왼쪽에 위치한 값이 오른쪽에 위치한 값보다 작은 경우 '참'으로 판단합니다.\n≥ : 왼쪽에 위치한 값이 오른쪽에 위치한 값보다 크거나 같은 경우 '참'으로 판단합니다.\n≤ : 왼쪽에 위치한 값이 오른쪽에 위치한 값보다 작거나 같은 경우 '참'으로 판단합니다.",
"입력한 두 값을 비교합니다.\n= : 왼쪽에 위치한 값과 오른쪽에 위치한 값이 같은 경우 '참'으로 판단합니다.\n!= : 왼쪽에 위치한 값과 오른쪽에 위치한 값이 같지 않은 경우 '참'으로 판단합니다.\n> : 왼쪽에 위치한 값이 오른쪽에 위치한 값보다 큰 경우 '참'으로 판단합니다.\n< : 왼쪽에 위치한 값이 오른쪽에 위치한 값보다 작은 경우 '참'으로 판단합니다.\n≥ : 왼쪽에 위치한 값이 오른쪽에 위치한 값보다 크거나 같은 경우 '참'으로 판단합니다.\n≤ : 왼쪽에 위치한 값이 오른쪽에 위치한 값보다 작거나 같은 경우 '참'으로 판단합니다.",
function_create:
'자주 쓰는 코드를 이 블록 아래에 조립하여 함수로 만듭니다. [함수 정의하기]의 오른쪽 빈칸에 [이름]을 조립하여 함수의 이름을 정할 수 있습니다. 함수를 실행하는 데 입력값이 필요한 경우 빈칸에 [문자/숫자값], [판단값]을 조립하여 매개변수로 사용합니다.',
function_field_label: "함수 정의하기' 블록 안에 조립하며, 함수의 이름을 정합니다. ",
Expand Down
Binary file added images/hardware/cuboai.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/hw/cuboai.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/hw/robolink_ZumiMini.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/hw_lite/robolink_ZumiMini_lite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 9 additions & 1 deletion src/class/AILearning.js
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,15 @@ export default class AILearning {
}
this.destroy();

this.#labels = labels || classes.map(({ name }) => name);
if (!labels) {
const parsed =
classes.length === 1 && typeof classes[0] === 'string'
? JSON.parse(classes[0])
: classes;
this.#labels = parsed.map(({ name }) => name);
} else {
this.#labels = labels;
}
this.#type = type;
this.#url = url;
this.#oid = _id;
Expand Down
49 changes: 39 additions & 10 deletions src/class/variable/listVariable.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,37 @@ class ListVariable extends Variable {
return 5000;
}

_trimToMaxLength() {
if (this.array_ && this.array_.length > this.LIST_MAX_LENGTH) {
this.array_ = this.array_.slice(-this.LIST_MAX_LENGTH);
this._showListFullWarning();
}
}

_showListFullWarning() {
Entry.toast?.alert(
Lang?.Workspace?.list_cant_add_item || 'Warning',
Lang?.Workspace?.list_max_length_exceeded ||
`You can add up to ${this.LIST_MAX_LENGTH} items to a list.`
);
}

constructor(variable) {
Entry.assert(variable.variableType === 'list', 'Invalid variable type given');
super(variable);
this.array_ = variable.array ? variable.array : [];

let array = variable.array ? variable.array : [];
if (array.length > this.LIST_MAX_LENGTH) {
array = array.slice(-this.LIST_MAX_LENGTH);
setTimeout(() => {
Entry.modal?.alert(
Lang?.Workspace?.list_truncated_on_load ||
`The list exceeded ${this.LIST_MAX_LENGTH} items.`,
Lang?.Workspace?.list_truncated_on_load_title || 'Notice'
);
}, 100);
}
this.array_ = array;

if (!variable.isClone) {
this.width_ = variable.width ? variable.width : 100;
Expand Down Expand Up @@ -62,11 +89,11 @@ class ListVariable extends Variable {
this.resizeHandle_.list = this;

GEDragHelper.handleDrag(this.resizeHandle_);
this.resizeHandle_.on(GEDragHelper.types.OVER, function() {
this.resizeHandle_.on(GEDragHelper.types.OVER, function () {
this.cursor = 'nwse-resize';
});

this.resizeHandle_.on(GEDragHelper.types.DOWN, function(evt) {
this.resizeHandle_.on(GEDragHelper.types.DOWN, function (evt) {
// if(Entry.type != 'workspace') return;
this.list.isResizing = true;
this.offset = {
Expand All @@ -75,18 +102,18 @@ class ListVariable extends Variable {
};
this.parent.cursor = 'nwse-resize';
});
this.resizeHandle_.on(GEDragHelper.types.MOVE, function(evt) {
this.resizeHandle_.on(GEDragHelper.types.MOVE, function (evt) {
// if(Entry.type != 'workspace') return;
this.list.setWidth(evt.stageX * 0.75 - this.offset.x);
this.list.setHeight(evt.stageY * 0.75 - this.offset.y);
this.list.updateView();
});

this.view_.on(GEDragHelper.types.OVER, function() {
this.view_.on(GEDragHelper.types.OVER, function () {
this.cursor = 'move';
});

this.view_.on(GEDragHelper.types.DOWN, function(evt) {
this.view_.on(GEDragHelper.types.DOWN, function (evt) {
if (Entry.type !== 'workspace' || this.variable.isResizing) {
return;
}
Expand All @@ -97,12 +124,12 @@ class ListVariable extends Variable {
this.cursor = 'move';
});

this.view_.on(GEDragHelper.types.UP, function() {
this.view_.on(GEDragHelper.types.UP, function () {
this.cursor = 'initial';
this.variable.isResizing = false;
});

this.view_.on(GEDragHelper.types.MOVE, function(evt) {
this.view_.on(GEDragHelper.types.MOVE, function (evt) {
if (Entry.type !== 'workspace' || this.variable.isResizing) {
return;
}
Expand All @@ -122,12 +149,12 @@ class ListVariable extends Variable {
this.scrollButton_.y = 25;

this.scrollButton_.list = this;
this.scrollButton_.on(GEDragHelper.types.DOWN, function(evt) {
this.scrollButton_.on(GEDragHelper.types.DOWN, function (evt) {
// if(Entry.type != 'workspace') return;
this.list.isResizing = true;
this.offsetY = evt.stageY - this.y / 0.75;
});
this.scrollButton_.on(GEDragHelper.types.MOVE, function(evt) {
this.scrollButton_.on(GEDragHelper.types.MOVE, function (evt) {
// if(Entry.type != 'workspace') return;

const stageY = evt.stageY;
Expand Down Expand Up @@ -200,6 +227,7 @@ class ListVariable extends Variable {
this.array_.push({
data: value,
});
this._trimToMaxLength();
this.updateView();
} else {
return new Promise(async (resolve, reject) => {
Expand Down Expand Up @@ -256,6 +284,7 @@ class ListVariable extends Variable {
insertValue(index, data) {
if (!this.isRealTime_) {
this.array_.splice(index - 1, 0, { data });
this._trimToMaxLength();
this.updateView();
} else {
return new Promise(async (resolve, reject) => {
Expand Down
10 changes: 10 additions & 0 deletions src/class/variable_container.js
Original file line number Diff line number Diff line change
Expand Up @@ -3053,6 +3053,11 @@ Entry.VariableContainer = class VariableContainer {

if (value >= limitValue) {
value = limitValue;
Entry.toast?.alert(
Lang?.Workspace?.list_cant_add_item || 'Warning',
Lang?.Workspace?.list_max_length_exceeded ||
'You can add up to 5,000 items to a list.'
);
}

Entry.do('listChangeLength', v.id_, Number(value));
Expand All @@ -3079,6 +3084,11 @@ Entry.VariableContainer = class VariableContainer {
const selectedLength = array_.length;

if (selectedLength >= limitValue) {
Entry.toast?.alert(
Lang?.Workspace?.list_cant_add_item || 'Warning',
Lang?.Workspace?.list_max_length_exceeded ||
'You can add up to 5,000 items to a list.'
);
Entry.do('listChangeLength', id_, '');
} else {
Entry.do('listChangeLength', id_, 'plus');
Expand Down
3 changes: 1 addition & 2 deletions src/css/components/scene.less
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ body {
}

.entryBlockCountView {
width: 155px;
background-color: @baseblue;
z-index: 10;
display: flex;
Expand Down Expand Up @@ -171,7 +170,7 @@ body {

.entrySceneInputCover.entryDisabledScene::before {
display: block;
content: " ";
content: ' ';
width: 100%;
height: 100%;
position: absolute;
Expand Down
32 changes: 20 additions & 12 deletions src/playground/blocks/block_ai_utilize_translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ Entry.AI_UTILIZE_BLOCK.translate = {
apiType: 'n2mt',
};

Entry.AI_UTILIZE_BLOCK.translate.getBlocks = function() {
Entry.AI_UTILIZE_BLOCK.translate.getBlocks = function () {
const params = {
getType(isPython) {
const param = {
Expand Down Expand Up @@ -277,7 +277,7 @@ Entry.AI_UTILIZE_BLOCK.translate.getBlocks = function() {
return param;
},
};
const getProjectId = function() {
const getProjectId = function () {
if (Entry.projectId) {
Entry.AI_UTILIZE_BLOCK.translate.delayKey = Entry.projectId;
}
Expand All @@ -294,11 +294,15 @@ Entry.AI_UTILIZE_BLOCK.translate.getBlocks = function() {
params.projectId = getProjectId();
const key = `translate-${type}${JSON.stringify(params)}`;
return new PromiseManager()
.Promise((resolve) => {
callApi(key, {
url: `${Entry.AI_UTILIZE_BLOCK.translate.api}translate/${type}`,
params,
})
.Promise(async (resolve) => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [eslint] <new-cap> reported by reviewdog 🐶
A function with a name starting with an uppercase letter should only be used as a constructor.

callApi(
key,
{
url: `${Entry.AI_UTILIZE_BLOCK.translate.api}translate/${type}`,
params,
},
window.isOffline ? await window.getPapagoHeaderInfo() : {}
)
.then((result) => {
if (result.data) {
return resolve(result.data.translatedText);
Expand All @@ -314,10 +318,14 @@ Entry.AI_UTILIZE_BLOCK.translate.getBlocks = function() {
const langCodeMap = getInitialCodeMap();
return new PromiseManager()
.Promise((resolve) => {
callApi(`translate-detect-${query}`, {
url: `${Entry.AI_UTILIZE_BLOCK.translate.api}dect/langs`,
params: { query, projectId: getProjectId() },
})
callApi(
`translate-detect-${query}`,
{
url: `${Entry.AI_UTILIZE_BLOCK.translate.api}dect/langs`,
params: { query, projectId: getProjectId() },
},
window.isOffline ? window.getPapagoHeaderInfo() : {}
)
.then((result) => {
if (
result.data &&
Expand All @@ -333,7 +341,7 @@ Entry.AI_UTILIZE_BLOCK.translate.getBlocks = function() {
.catch(() => defaultValue);
};

const checkText = function(text) {
const checkText = function (text) {
const result = {
result: false,
message: Lang.Blocks.unknown_sentence,
Expand Down
2 changes: 1 addition & 1 deletion src/playground/blocks/block_calc.js
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,7 @@ module.exports = {
case 'unnatural': {
returnVal = new BigNumber(value).minus(Math.floor(value));
returnVal = returnVal.toNumber();
if (value < 0) {
if (value < 0 && returnVal !== 0) {
returnVal = 1 - returnVal;
}
break;
Expand Down
16 changes: 10 additions & 6 deletions src/playground/blocks/block_expansion_weather.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@ const { getStateOptions, getCityOptions, locationData } = require('../../util/lo
const { callApi } = require('../../util/common');

function resolveData(weatherData, type, dateStr) {
if (type === 'now') {
return weatherData[Object.keys(weatherData)[0]];
} else if (type === 'hour') {
return weatherData[dateStr];
} else {
return weatherData[Entry.EXPANSION_BLOCK.weather.getDate(dateStr)];
try {
if (type === 'now') {
return weatherData[Object.keys(weatherData)[0]];
} else if (type === 'hour') {
return weatherData[dateStr];
} else {
return weatherData[Entry.EXPANSION_BLOCK.weather.getDate(dateStr)];
}
} catch (e) {
return Entry.EXPANSION_BLOCK.weather.defaultData;
}
}

Expand Down
Loading
Loading