diff --git a/.gitignore b/.gitignore index 40b878d..2752eb9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules/ \ No newline at end of file +node_modules/ +.DS_Store diff --git a/CNAME b/CNAME deleted file mode 100644 index c98a1d1..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -blockly.webduino.io diff --git a/Dockerfile b/Dockerfile index bd21101..29d8832 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,30 @@ -FROM mhart/alpine-node:4 +FROM mhart/alpine-node:6 WORKDIR /src ADD . /src +ARG env=production + +RUN apk update + +ENV PATH /root/.yarn/bin:$PATH + +RUN apk update \ + && apk add curl bash binutils tar \ + && rm -rf /var/cache/apk/* \ + && curl -o- -L https://yarnpkg.com/install.sh | sh \ + && apk del curl tar binutils + # If you have native dependencies, you'll need extra tools -RUN apk add --no-cache make gcc g++ python +RUN apk add --no-cache make gcc g++ git python # If you need npm, don't use a base tag -RUN npm install +RUN NODE_ENV=production yarn install + +WORKDIR /src +RUN rm -rf .git .gitmodules EXPOSE 8080 -ENV NODE_ENV production +ENV NODE_ENV $env CMD ["npm", "start"] diff --git a/README.md b/README.md index 576b1ed..8471708 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,38 @@ # Webduino-Blockly -The Visual Programming Editor for [Webduino](http://webduino.io). +The Visual Programming Editor for Webduino. Google's [Blockly](https://github.com/google/blockly) is a web-based, visual programming editor. Users can drag blocks together to build programs. -## Installation +## Prerequisite + +- [Node.js](https://nodejs.org) and NPM +- [Bower](http://bower.io) -First, make sure [bower](http://bower.io) has been installed. +## Installation ```Shell -$ git clone https://github.com/webduinoio/webduino-blockly.git -$ cd webduino-blockly -$ bower install +git clone https://github.com/webduinoio/webduino-blockly.git +cd webduino-blockly +npm install +bower install +``` + +## Run + +``` +npm run start ``` -Now, webduino-blockly has been successfully installed. Open your browser point it to **index.html**. +Navigate to and start hacking! ## Generated-Code Usage -#### Browser +You can use the code which generated by Webduino Blockly in your own application + +Our APIs support both browser and Node.js, here's how you use it: +#### In Browser ```html @@ -37,15 +50,15 @@ Now, webduino-blockly has been successfully installed. Open your browser point i ``` -#### Node.js +#### In Node.js Require the module first by: ```javascript require('webduino-blockly'); -``` -Then paste-in the code generated by Blockly. +// ... The code generated by Webduino Blockly. +``` ## License diff --git a/blocks/msg/en.js b/blocks/msg/en.js index 4c7ce81..b4174eb 100644 --- a/blocks/msg/en.js +++ b/blocks/msg/en.js @@ -8,6 +8,81 @@ goog.require('Blockly.Msg.Webduino'); Blockly.Msg.SAMPLE_COMFIRM_MSG = "\"Load Sample\" will load sample code to replace your workspace, or you can click \"+\" to add sample code into your workspace."; +// BlockSvg ContextMenu + +Blockly.Msg.MAINURL = "https://tutorials.webduino.io/zh-tw/docs/"; +Blockly.Msg.UTMURL = '?utm_source=trail-blockly&utm_medium=contextMenu&utm_campaign=tutorials'; + +Blockly.Msg.HELP = "Tutorials"; +Blockly.Msg.TOOL = "Tool"; + +Blockly.Msg.VARIABLES_SET_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/variables.html" + Blockly.Msg.UTMURL; +Blockly.Msg.VARIABLES_GET_HELPURL = Blockly.Msg.VARIABLES_SET_HELPURL; + +Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL = "https://tutorials.webduino.io/zh-tw/docs/blockly/standard/functions.html" + Blockly.Msg.UTMURL; +Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_IFRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; + +Blockly.Msg.TEXT_TEXT_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/text.html" + Blockly.Msg.UTMURL; +Blockly.Msg.TEXT_JOIN_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_APPEND_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_INDEXOF_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_CHARAT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_CHANGECASE_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_TRIM_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_PROMPT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_LENGTH_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_ISEMPTY_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_PRINT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; + +Blockly.Msg.MATH_NUMBER_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/math.html" + Blockly.Msg.UTMURL; +Blockly.Msg.MATH_ARITHMETIC_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_SINGLE_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_TRIG_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CONSTANT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CHANGE_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_ROUND_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_ONLIST_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_MODULO_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CONSTRAIN_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_RANDOM_INT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; + +Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/lists.html" + Blockly.Msg.UTMURL; +Blockly.Msg.LISTS_CREATE_WITH_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_REPEAT_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_LENGTH_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_ISEMPTY_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_INDEX_OF_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_GET_INDEX_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_SET_INDEX_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_GET_SUBLIST_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_SPLIT_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; + +Blockly.Msg.CONTROLS_IF_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/logic.html" + Blockly.Msg.UTMURL; +Blockly.Msg.LOGIC_COMPARE_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_OPERATION_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_NEGATE_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_BOOLEAN_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_NULL_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_TERNARY_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; + +Blockly.Msg.CONTROLS_REPEAT_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/loops.html" + Blockly.Msg.UTMURL; +Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FOR_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FOREACH_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; + +Blockly.Msg.COLOUR_PICKER_HELPURL = Blockly.Msg.MAINURL + "blockly/index.html" + Blockly.Msg.UTMURL; +Blockly.Msg.COLOUR_RANDOM_HELPURL = Blockly.Msg.COLOUR_PICKER_HELPURL; +Blockly.Msg.COLOUR_RGB_HELPURL= Blockly.Msg.COLOUR_PICKER_HELPURL; +Blockly.Msg.COLOUR_BLEND_HELPURL= Blockly.Msg.COLOUR_PICKER_HELPURL; + + + // Main Blockly.Msg.WEBDUINO_MATH_ROUND = "round"; @@ -71,6 +146,7 @@ Blockly.Msg.DEMO_TRACKING = "track"; Blockly.Msg.DEMO_TRACKING_FACE = "face"; Blockly.Msg.DEMO_TRACKING_COLOR = "color"; Blockly.Msg.DEMO_TRACKING_DO = "When tracking succeeds, do"; +Blockly.Msg.DEMO_TRACKING_STANDBY = "When tracking standby, do"; Blockly.Msg.DEMO_TRACKING_RUN = "start"; Blockly.Msg.DEMO_TRACKING_STOP = "stop"; Blockly.Msg.DEMO_TRACKING_TRACK = "tracking"; @@ -179,13 +255,13 @@ Blockly.Msg.WEBDUINO_SPEAK_R10 = "1"; Blockly.Msg.WEBDUINO_SPEAK_R07 = "0.7"; Blockly.Msg.WEBDUINO_SPEAK_R05 = "0.5"; -Blockly.Msg.WEBDUINO_TIMER_AFTER = "After"; +Blockly.Msg.WEBDUINO_TIMER_AFTER = "(Async) After"; Blockly.Msg.WEBDUINO_TIMER_SECOND = "second(s)"; Blockly.Msg.WEBDUINO_TIMER_DO = "do"; -Blockly.Msg.WEBDUINO_INTERVAL_EVERY = "Every"; +Blockly.Msg.WEBDUINO_INTERVAL_EVERY = "(Async) Every"; Blockly.Msg.WEBDUINO_INTERVAL_SECOND = "second(s)"; Blockly.Msg.WEBDUINO_INTERVAL_DO = "do"; -Blockly.Msg.WEBDUINO_DELAY = "delay"; +Blockly.Msg.WEBDUINO_DELAY = "Delay"; Blockly.Msg.WEBDUINO_DELAY_SECONDS = "second(s)"; // Keyboard diff --git a/blocks/msg/zh-hans.js b/blocks/msg/zh-hans.js index 6b96cb4..01fdf67 100644 --- a/blocks/msg/zh-hans.js +++ b/blocks/msg/zh-hans.js @@ -8,6 +8,80 @@ goog.require('Blockly.Msg.Webduino'); Blockly.Msg.SAMPLE_COMFIRM_MSG = "载入范例积木将会复写工作区内容,确定载入?\n( 单纯想加入范例积木,可点选后方「+」号 )"; +// BlockSvg ContextMenu + +Blockly.Msg.MAINURL = "https://tutorials.webduino.io/zh-tw/docs/"; +Blockly.Msg.UTMURL = '?utm_source=trail-blockly&utm_medium=contextMenu&utm_campaign=tutorials'; + +Blockly.Msg.HELP = "教学"; +Blockly.Msg.TOOL = "小工具"; + +Blockly.Msg.VARIABLES_SET_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/variables.html" + Blockly.Msg.UTMURL; +Blockly.Msg.VARIABLES_GET_HELPURL = Blockly.Msg.VARIABLES_SET_HELPURL; + +Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL = "https://tutorials.webduino.io/zh-tw/docs/blockly/standard/functions.html" + Blockly.Msg.UTMURL; +Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_IFRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; + +Blockly.Msg.TEXT_TEXT_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/text.html" + Blockly.Msg.UTMURL; +Blockly.Msg.TEXT_JOIN_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_APPEND_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_INDEXOF_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_CHARAT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_CHANGECASE_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_TRIM_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_PROMPT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_LENGTH_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_ISEMPTY_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_PRINT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; + +Blockly.Msg.MATH_NUMBER_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/math.html" + Blockly.Msg.UTMURL; +Blockly.Msg.MATH_ARITHMETIC_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_SINGLE_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_TRIG_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CONSTANT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CHANGE_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_ROUND_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_ONLIST_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_MODULO_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CONSTRAIN_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_RANDOM_INT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; + +Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/lists.html" + Blockly.Msg.UTMURL; +Blockly.Msg.LISTS_CREATE_WITH_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_REPEAT_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_LENGTH_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_ISEMPTY_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_INDEX_OF_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_GET_INDEX_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_SET_INDEX_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_GET_SUBLIST_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_SPLIT_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; + +Blockly.Msg.CONTROLS_IF_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/logic.html" + Blockly.Msg.UTMURL; +Blockly.Msg.LOGIC_COMPARE_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_OPERATION_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_NEGATE_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_BOOLEAN_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_NULL_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_TERNARY_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; + +Blockly.Msg.CONTROLS_REPEAT_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/loops.html" + Blockly.Msg.UTMURL; +Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FOR_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FOREACH_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; + +Blockly.Msg.COLOUR_PICKER_HELPURL = Blockly.Msg.MAINURL + "blockly/index.html" + Blockly.Msg.UTMURL; +Blockly.Msg.COLOUR_RANDOM_HELPURL = Blockly.Msg.COLOUR_PICKER_HELPURL; +Blockly.Msg.COLOUR_RGB_HELPURL= Blockly.Msg.COLOUR_PICKER_HELPURL; +Blockly.Msg.COLOUR_BLEND_HELPURL= Blockly.Msg.COLOUR_PICKER_HELPURL; + + // Main Blockly.Msg.VARIABLES_SET = "设定 %1 为 %2"; @@ -76,7 +150,8 @@ Blockly.Msg.DEMO_TRACKING_SET = "设定影像追踪"; Blockly.Msg.DEMO_TRACKING = "追踪"; Blockly.Msg.DEMO_TRACKING_FACE = "人脸"; Blockly.Msg.DEMO_TRACKING_COLOR = "颜色"; -Blockly.Msg.DEMO_TRACKING_DO = "追踪成功时,将会执行"; +Blockly.Msg.DEMO_TRACKING_DO = "追踪成功时,执行"; +Blockly.Msg.DEMO_TRACKING_STANDBY = "追踪待命时,执行"; Blockly.Msg.DEMO_TRACKING_RUN = "开始"; Blockly.Msg.DEMO_TRACKING_STOP = "停止"; Blockly.Msg.DEMO_TRACKING_TRACK = "追踪"; @@ -229,10 +304,10 @@ Blockly.Msg.WEBDUINO_KEYBOARD_KONAMI = "当输入 Konami Code,执行"; // Delay -Blockly.Msg.WEBDUINO_TIMER_AFTER = "等待"; +Blockly.Msg.WEBDUINO_TIMER_AFTER = "(非同步) 等待"; Blockly.Msg.WEBDUINO_TIMER_SECOND = "秒之后"; Blockly.Msg.WEBDUINO_TIMER_DO = "执行"; -Blockly.Msg.WEBDUINO_INTERVAL_EVERY = "每隔"; +Blockly.Msg.WEBDUINO_INTERVAL_EVERY = "(非同步) 每隔"; Blockly.Msg.WEBDUINO_INTERVAL_SECOND = "秒"; Blockly.Msg.WEBDUINO_INTERVAL_DO = "执行"; Blockly.Msg.WEBDUINO_DELAY = "等待"; diff --git a/blocks/msg/zh-hant.js b/blocks/msg/zh-hant.js index 44342c5..4a4c213 100644 --- a/blocks/msg/zh-hant.js +++ b/blocks/msg/zh-hant.js @@ -8,6 +8,80 @@ goog.require('Blockly.Msg.Webduino'); Blockly.Msg.SAMPLE_COMFIRM_MSG = "載入範例積木將會覆寫工作區內容,確定載入?\n( 單純想加入範例積木,可點選後方「+」號 )"; +// BlockSvg ContextMenu + +Blockly.Msg.MAINURL = "https://tutorials.webduino.io/zh-tw/docs/"; +Blockly.Msg.UTMURL = '?utm_source=trail-blockly&utm_medium=contextMenu&utm_campaign=tutorials'; + +Blockly.Msg.HELP = "教學"; +Blockly.Msg.TOOL = "小工具"; + +Blockly.Msg.VARIABLES_SET_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/variables.html" + Blockly.Msg.UTMURL; +Blockly.Msg.VARIABLES_GET_HELPURL = Blockly.Msg.VARIABLES_SET_HELPURL; + +Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL = "https://tutorials.webduino.io/zh-tw/docs/blockly/standard/functions.html" + Blockly.Msg.UTMURL; +Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; +Blockly.Msg.PROCEDURES_IFRETURN_HELPURL = Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL; + +Blockly.Msg.TEXT_TEXT_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/text.html" + Blockly.Msg.UTMURL; +Blockly.Msg.TEXT_JOIN_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_APPEND_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_INDEXOF_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_CHARAT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_CHANGECASE_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_TRIM_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_PROMPT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_LENGTH_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_ISEMPTY_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; +Blockly.Msg.TEXT_PRINT_HELPURL = Blockly.Msg.TEXT_TEXT_HELPURL; + +Blockly.Msg.MATH_NUMBER_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/math.html" + Blockly.Msg.UTMURL; +Blockly.Msg.MATH_ARITHMETIC_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_SINGLE_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_TRIG_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CONSTANT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CHANGE_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_ROUND_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_ONLIST_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_MODULO_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_CONSTRAIN_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_RANDOM_INT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; +Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL = Blockly.Msg.MATH_NUMBER_HELPURL; + +Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/lists.html" + Blockly.Msg.UTMURL; +Blockly.Msg.LISTS_CREATE_WITH_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_REPEAT_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_LENGTH_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_ISEMPTY_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_INDEX_OF_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_GET_INDEX_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_SET_INDEX_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_GET_SUBLIST_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; +Blockly.Msg.LISTS_SPLIT_HELPURL = Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL; + +Blockly.Msg.CONTROLS_IF_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/logic.html" + Blockly.Msg.UTMURL; +Blockly.Msg.LOGIC_COMPARE_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_OPERATION_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_NEGATE_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_BOOLEAN_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_NULL_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; +Blockly.Msg.LOGIC_TERNARY_HELPURL = Blockly.Msg.CONTROLS_IF_HELPURL; + +Blockly.Msg.CONTROLS_REPEAT_HELPURL = Blockly.Msg.MAINURL + "blockly/standard/loops.html" + Blockly.Msg.UTMURL; +Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FOR_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FOREACH_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; +Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL = Blockly.Msg.CONTROLS_REPEAT_HELPURL; + +Blockly.Msg.COLOUR_PICKER_HELPURL = Blockly.Msg.MAINURL + "blockly/index.html" + Blockly.Msg.UTMURL; +Blockly.Msg.COLOUR_RANDOM_HELPURL = Blockly.Msg.COLOUR_PICKER_HELPURL; +Blockly.Msg.COLOUR_RGB_HELPURL= Blockly.Msg.COLOUR_PICKER_HELPURL; +Blockly.Msg.COLOUR_BLEND_HELPURL= Blockly.Msg.COLOUR_PICKER_HELPURL; + + // Main Blockly.Msg.VARIABLES_SET = "設定 %1 為 %2"; @@ -76,7 +150,8 @@ Blockly.Msg.DEMO_TRACKING_SET = "設定影像追蹤"; Blockly.Msg.DEMO_TRACKING = "追蹤"; Blockly.Msg.DEMO_TRACKING_FACE = "人臉"; Blockly.Msg.DEMO_TRACKING_COLOR = "顏色"; -Blockly.Msg.DEMO_TRACKING_DO = "追蹤成功時,將會執行"; +Blockly.Msg.DEMO_TRACKING_DO = "追蹤成功時,執行"; +Blockly.Msg.DEMO_TRACKING_STANDBY = "追蹤待命時,執行"; Blockly.Msg.DEMO_TRACKING_RUN = "開始"; Blockly.Msg.DEMO_TRACKING_STOP = "停止"; Blockly.Msg.DEMO_TRACKING_TRACK = "追蹤"; @@ -229,10 +304,10 @@ Blockly.Msg.WEBDUINO_KEYBOARD_KONAMI = "當輸入 Konami Code,執行"; // Delay -Blockly.Msg.WEBDUINO_TIMER_AFTER = "等待"; +Blockly.Msg.WEBDUINO_TIMER_AFTER = "(非同步) 等待"; Blockly.Msg.WEBDUINO_TIMER_SECOND = "秒之後"; Blockly.Msg.WEBDUINO_TIMER_DO = "執行"; -Blockly.Msg.WEBDUINO_INTERVAL_EVERY = "每隔"; +Blockly.Msg.WEBDUINO_INTERVAL_EVERY = "(非同步) 每隔"; Blockly.Msg.WEBDUINO_INTERVAL_SECOND = "秒"; Blockly.Msg.WEBDUINO_INTERVAL_DO = "執行"; Blockly.Msg.WEBDUINO_DELAY = "等待"; diff --git a/blocks/webduino.js b/blocks/webduino.js index e876fe1..40db763 100644 --- a/blocks/webduino.js +++ b/blocks/webduino.js @@ -6,6 +6,10 @@ goog.require('Blockly.Blocks'); Blockly.Blocks.colour.HUE = 120; Blockly.Blocks.colour.HUESON = 70; +var webUrl = 'https://webduino.io'; +var mainUrl = 'https://tutorials.webduino.io/zh-tw/docs/'; +var utmUrl = '?utm_source=trail-blockly&utm_medium=contextMenu&utm_campaign=tutorials'; + /* .o8 "888 @@ -24,7 +28,7 @@ Blockly.Blocks['demo_show_text'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -36,7 +40,7 @@ Blockly.Blocks['demo_text_size'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -48,7 +52,7 @@ Blockly.Blocks['demo_text_lineheight'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -60,7 +64,7 @@ Blockly.Blocks['demo_text_color'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -72,7 +76,7 @@ Blockly.Blocks['demo_light_click'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -88,7 +92,7 @@ Blockly.Blocks['demo_light_state'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -103,7 +107,7 @@ Blockly.Blocks['demo_light_ifelse'] = { this.setOutput(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -115,7 +119,7 @@ Blockly.Blocks['demo_light_toggle'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -135,7 +139,7 @@ Blockly.Blocks['demo_button_click'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -150,7 +154,7 @@ Blockly.Blocks['demo_image_url'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -165,7 +169,7 @@ Blockly.Blocks['demo_image_size'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -178,7 +182,7 @@ Blockly.Blocks['demo_image_rotate'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -190,7 +194,7 @@ Blockly.Blocks['demo_image_opacity'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -209,7 +213,7 @@ Blockly.Blocks['demo_image_position'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -221,7 +225,7 @@ Blockly.Blocks['demo_area_input'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -232,7 +236,7 @@ Blockly.Blocks['demo_area_input_color'] = { this.setOutput(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -244,7 +248,7 @@ Blockly.Blocks['demo_area_color'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -267,7 +271,7 @@ Blockly.Blocks['demo_range_set'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -279,7 +283,7 @@ Blockly.Blocks['demo_range_show'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -290,7 +294,7 @@ Blockly.Blocks['demo_range_input_value'] = { this.setOutput(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/blockly-information.html' + utmUrl); } }; @@ -311,7 +315,7 @@ Blockly.Blocks['demo_youtube'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -326,7 +330,7 @@ Blockly.Blocks['demo_youtube_volume'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -348,7 +352,7 @@ Blockly.Blocks['demo_youtube_speed'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -368,7 +372,7 @@ Blockly.Blocks['demo_youtube_control'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -388,7 +392,7 @@ Blockly.Blocks['demo_youtube_status'] = { this.setOutput(true); this.setTooltip(''); this.setColour(70); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -403,7 +407,7 @@ Blockly.Blocks['demo_youtube_id'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -422,7 +426,7 @@ Blockly.Blocks['demo_youtube_listcontrol'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(180); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -440,7 +444,7 @@ Blockly.Blocks['demo_youtube_listnum'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(180); - this.setHelpUrl('http://www.example.com/'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -453,7 +457,7 @@ Blockly.Blocks['demo_youtube_currenttime'] = { this.setOutput(true, null); this.setTooltip(''); this.setColour(70); - this.setHelpUrl('http://www.example.com/'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -471,7 +475,7 @@ Blockly.Blocks['demo_youtube_seekto'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('http://www.example.com/'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -494,7 +498,7 @@ Blockly.Blocks['demo_youtube_callback'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('http://www.example.com/'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -511,12 +515,14 @@ Blockly.Blocks['demo_tracking'] = { [Blockly.Msg.DEMO_TRACKING_COLOR, "color"] ]), "type_"); this.appendStatementInput("do_") - .appendField(Blockly.Msg.DEMO_TRACKING_DO, "追蹤成功時,將會執行"); + .appendField(Blockly.Msg.DEMO_TRACKING_DO, "追蹤成功時,執行"); + this.appendStatementInput("standby_") + .appendField(Blockly.Msg.DEMO_TRACKING_STANDBY, "追蹤待命時,執行"); this.setPreviousStatement(true); this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/sensor/rfid-youtube.html' + utmUrl); } }; @@ -533,7 +539,7 @@ Blockly.Blocks['demo_tracking_action'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/component/led-tracking-face.html' + utmUrl); } }; @@ -575,7 +581,7 @@ Blockly.Blocks['demo_tracking_face'] = { this.setPreviousStatement(true); this.setNextStatement(true); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/component/led-tracking-face.html' + utmUrl); } }; @@ -594,7 +600,7 @@ Blockly.Blocks['demo_tracking_val'] = { this.setOutput(true); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/component/led-tracking-face.html' + utmUrl); } }; @@ -643,7 +649,7 @@ Blockly.Blocks['demo_controller'] = { this.setColour(Blockly.Blocks.colour.HUE); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -657,7 +663,7 @@ Blockly.Blocks['demo_controller_show'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -682,7 +688,7 @@ Blockly.Blocks['demo_controller_range'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -693,7 +699,7 @@ Blockly.Blocks['demo_controller_range_value'] = { this.setOutput(true, "Number"); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUESON); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -711,7 +717,7 @@ Blockly.Blocks['demo_controller_showcolor'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(Blockly.Blocks.colour.HUE); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -740,7 +746,7 @@ Blockly.Blocks['mobile_deviceorientation_event'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(190); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -762,7 +768,7 @@ Blockly.Blocks['mobile_deviceorientation_event_val'] = { this.setOutput(true, null); this.setTooltip(''); this.setColour(210); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -784,7 +790,7 @@ Blockly.Blocks['mobile_devicemotion_event_val'] = { this.setOutput(true, null); this.setTooltip(''); this.setColour(210); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -801,7 +807,7 @@ Blockly.Blocks['mobile_deviceorientation_event_remove'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(190); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-mobile.html' + utmUrl); } }; @@ -821,8 +827,8 @@ Blockly.Blocks['math_round_digit'] = { this.appendValueInput("round_") .appendField(new Blockly.FieldDropdown([ [Blockly.Msg.WEBDUINO_MATH_ROUND, "round"], - [Blockly.Msg.WEBDUINO_MATH_ROUND_UP, "floor"], - [Blockly.Msg.WEBDUINO_MATH_ROUND_DOWN, "ceil"] + [Blockly.Msg.WEBDUINO_MATH_ROUND_UP, "ceil"], + [Blockly.Msg.WEBDUINO_MATH_ROUND_DOWN, "floor"] ]), "type_") .appendField(Blockly.Msg.WEBDUINO_MATH_ROUND_TO, "到小數點") .appendField(new Blockly.FieldDropdown([ @@ -837,7 +843,7 @@ Blockly.Blocks['math_round_digit'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -862,7 +868,7 @@ Blockly.Blocks['math_value_conversion'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -882,7 +888,7 @@ Blockly.Blocks['number_to_string'] = { this.setOutput(true); this.setTooltip(''); this.setColour(160); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -907,7 +913,7 @@ Blockly.Blocks['console'] = { this.setPreviousStatement(true); this.setNextStatement(true); this.setTooltip(''); - this.setHelpUrl('https://blockly-demo.appspot.com/'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -928,7 +934,7 @@ Blockly.Blocks['getdate'] = { this.setOutput(true); this.setTooltip(''); this.setColour(20); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; Blockly.Blocks['gettime'] = { @@ -944,7 +950,7 @@ Blockly.Blocks['gettime'] = { this.setOutput(true); this.setTooltip(''); this.setColour(20); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -956,7 +962,7 @@ Blockly.Blocks['board_server'] = { this.setInputsInline(true); this.setColour(250); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -1012,7 +1018,7 @@ Blockly.Blocks['board'] = { this.appendStatementInput('callbacks_'); this.setTooltip(''); this.setColour(290); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); }, onchange: function (ev) { switch (ev.name) { @@ -1045,7 +1051,7 @@ Blockly.Blocks['board_error'] = { this.setPreviousStatement(true); this.setNextStatement(true); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -1058,7 +1064,7 @@ Blockly.Blocks['all_board_ready'] = { .appendField(Blockly.Msg.WEBDUINO_BOARD_CHAIN_DO, "執行:"); this.setTooltip(''); this.setColour(0); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/multi-board.html' + utmUrl); } }; @@ -1076,7 +1082,7 @@ Blockly.Blocks['board_query_pin_state'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(120); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/board-pin.html' + utmUrl); } }; @@ -1087,7 +1093,7 @@ Blockly.Blocks['board_pin_state'] = { this.setOutput(true); this.setTooltip(''); this.setColour(160); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/board-pin.html' + utmUrl); } }; @@ -1099,7 +1105,7 @@ Blockly.Blocks['pin_get'] = { this.setOutput(true); this.setColour(270); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/board-pin.html' + utmUrl); } }; @@ -1111,7 +1117,7 @@ Blockly.Blocks['pin_num'] = { this.setColour(230); this.setOutput(true, "Number"); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/board-pin.html' + utmUrl); } }; @@ -1124,7 +1130,7 @@ Blockly.Blocks['pin_board'] = { this.setOutput(true); this.setColour(270); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/board-pin.html' + utmUrl); }, getBoardsDropdown: function () { var nameMap = { @@ -1188,7 +1194,7 @@ Blockly.Blocks['pin_set_mode'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/board-pin.html' + utmUrl); } }; @@ -1201,7 +1207,7 @@ Blockly.Blocks['pin_read'] = { this.setOutput(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/board-pin.html' + utmUrl); } }; @@ -1215,7 +1221,7 @@ Blockly.Blocks['pin_write'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/blockly/board-pin.html' + utmUrl); } }; @@ -1228,7 +1234,7 @@ Blockly.Blocks['led_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/led.html' + utmUrl); } }; @@ -1245,7 +1251,7 @@ Blockly.Blocks['led_state'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/led.html' + utmUrl); } }; @@ -1258,7 +1264,7 @@ Blockly.Blocks['led_toggle'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/led.html' + utmUrl); } }; @@ -1272,7 +1278,7 @@ Blockly.Blocks['led_intensity'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/led.html' + utmUrl); } }; @@ -1293,7 +1299,7 @@ Blockly.Blocks['led_callback'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/led.html' + utmUrl); } }; @@ -1310,7 +1316,7 @@ Blockly.Blocks['led_blink'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/led.html' + utmUrl); } }; @@ -1329,7 +1335,7 @@ Blockly.Blocks['led_blink_callback'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/led.html' + utmUrl); } }; @@ -1346,7 +1352,7 @@ Blockly.Blocks['rgbled_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/rgbled.html' + utmUrl); } }; @@ -1363,7 +1369,7 @@ Blockly.Blocks['rgbled_new_cathode'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/rgbled.html' + utmUrl); } }; @@ -1376,7 +1382,7 @@ Blockly.Blocks['rgbled_setcolor'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/rgbled.html' + utmUrl); } }; @@ -1391,7 +1397,7 @@ Blockly.Blocks['rgbled_setcolor_callback'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/rgbled.html' + utmUrl); } }; @@ -1470,7 +1476,7 @@ Blockly.Blocks['timer'] = { this.setNextStatement(true); this.setColour(180); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -1487,7 +1493,7 @@ Blockly.Blocks['interval'] = { this.setNextStatement(true); this.setColour(180); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -1501,7 +1507,7 @@ Blockly.Blocks['delay'] = { this.setNextStatement(true); this.setColour(180); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -1515,7 +1521,7 @@ Blockly.Blocks['ultrasonic_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/ultrasonic.html' + utmUrl); } }; @@ -1535,7 +1541,7 @@ Blockly.Blocks['ultrasonic_get'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/ultrasonic.html' + utmUrl); } }; @@ -1548,7 +1554,7 @@ Blockly.Blocks['ultrasonic_get_promise'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/ultrasonic.html' + utmUrl); } }; @@ -1561,7 +1567,7 @@ Blockly.Blocks['ultrasonic_distance'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/ultrasonic.html' + utmUrl); } }; @@ -1574,7 +1580,7 @@ Blockly.Blocks['ultrasonic_stop'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/ultrasonic.html' + utmUrl); } }; @@ -1587,7 +1593,7 @@ Blockly.Blocks['button_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/button.html' + utmUrl); } }; @@ -1599,7 +1605,7 @@ Blockly.Blocks['button_pullup_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/button.html' + utmUrl); } }; @@ -1622,7 +1628,7 @@ Blockly.Blocks['button_event'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/button.html' + utmUrl); } }; @@ -1635,7 +1641,7 @@ Blockly.Blocks['pir_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/pir.html' + utmUrl); } }; @@ -1656,7 +1662,7 @@ Blockly.Blocks['pir_status'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/pir.html' + utmUrl); } }; @@ -1668,7 +1674,7 @@ Blockly.Blocks['sound_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/sound.html' + utmUrl); } }; @@ -1688,7 +1694,7 @@ Blockly.Blocks['sound_status'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/sound.html' + utmUrl); } }; @@ -1700,7 +1706,7 @@ Blockly.Blocks['shock_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/shake-button.html' + utmUrl); } }; @@ -1721,7 +1727,7 @@ Blockly.Blocks['shock_event'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/shake-button.html' + utmUrl); } }; @@ -1733,7 +1739,7 @@ Blockly.Blocks['dht_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/dht.html' + utmUrl); } }; @@ -1752,7 +1758,7 @@ Blockly.Blocks['dht_get'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/dht.html' + utmUrl); } }; @@ -1768,7 +1774,7 @@ Blockly.Blocks['dht_get_number'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/dht.html' + utmUrl); } }; @@ -1780,7 +1786,8 @@ Blockly.Blocks['buzzer_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -1796,7 +1803,8 @@ Blockly.Blocks['buzzer_music'] = { this.setNextStatement(true); this.setTooltip('即將停用,請改用 "用 buzzer 播放..."'); this.setColour(65); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -1811,7 +1819,8 @@ Blockly.Blocks['buzzer_var_notes_var_tempos'] = { this.setNextStatement(true, null); this.setColour(35); this.setTooltip(''); - this.setHelpUrl(''); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -1861,7 +1870,8 @@ Blockly.Blocks['buzzer_notes_tempos'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -1877,7 +1887,8 @@ Blockly.Blocks['buzzer_music_play'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -1930,7 +1941,8 @@ Blockly.Blocks['buzzer_single'] = { this.setNextStatement(true); this.setTooltip('即將停用,請改用 "用 buzzer 播放..."'); this.setColour(65); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -1946,7 +1958,8 @@ Blockly.Blocks['buzzer_play'] = { this.setNextStatement(true); this.setTooltip('即將停用,請改用 "用 buzzer 播放..."'); this.setColour(65); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -1966,7 +1979,8 @@ Blockly.Blocks['buzzer_event'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -1985,7 +1999,8 @@ Blockly.Blocks['buzzer_state'] = { this.setOutput(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -2004,7 +2019,8 @@ Blockly.Blocks['buzzer_music_array'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -2024,7 +2040,8 @@ Blockly.Blocks['buzzer_load_music'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setToolUrl('http://webduinoio.github.io/samples/content/buzzer-piano/'); + this.setHelpUrl(mainUrl + 'basic/component/buzzer.html' + utmUrl); } }; @@ -2036,7 +2053,7 @@ Blockly.Blocks['relay_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/relay.html' + utmUrl); } }; @@ -2053,7 +2070,7 @@ Blockly.Blocks['relay_state'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/relay.html' + utmUrl); } }; @@ -2065,7 +2082,7 @@ Blockly.Blocks['servo_new'] = { this.setOutput(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/servo.html' + utmUrl); } }; @@ -2080,7 +2097,7 @@ Blockly.Blocks['servo_angle'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/servo.html' + utmUrl); } }; @@ -2094,7 +2111,7 @@ Blockly.Blocks['servo_angle_set'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/servo.html' + utmUrl); } }; @@ -2110,7 +2127,7 @@ Blockly.Blocks['data_firebase'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(200); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'socket/useful/im-1.html' + utmUrl); } }; @@ -2125,7 +2142,7 @@ Blockly.Blocks['data_firebase_url'] = { this.setInputsInline(true); this.setTooltip(''); this.setColour(200); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'socket/useful/im-1.html' + utmUrl); } }; @@ -2174,7 +2191,7 @@ Blockly.Blocks['data_firebase_write'] = { this.setPreviousStatement(true); this.setNextStatement(true); this.setMutator(new Blockly.Mutator(['data_firebase_write_item'])); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'socket/useful/im-1.html' + utmUrl); this.itemCount_ = 2; }, mutationToDom: function (workspace) { @@ -2252,7 +2269,7 @@ Blockly.Blocks['data_firebase_data'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(100); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'socket/useful/im-1.html' + utmUrl); } }; @@ -2275,7 +2292,7 @@ Blockly.Blocks['data_firebase_read'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(160); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'socket/useful/im-1.html' + utmUrl); } }; @@ -2293,7 +2310,7 @@ Blockly.Blocks['data_firebase_readonce'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(160); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'socket/useful/im-1.html' + utmUrl); } }; @@ -2306,7 +2323,7 @@ Blockly.Blocks['data_firebase_clear'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(160); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'socket/useful/im-1.html' + utmUrl); } }; @@ -2354,7 +2371,7 @@ Blockly.Blocks['new_object'] = { this.setTooltip(''); this.setOutput(true, null); this.setMutator(new Blockly.Mutator(['add_object_item'])); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'socket/useful/im-1.html' + utmUrl); this.itemCount_ = 2; }, mutationToDom: function (workspace) { @@ -2443,7 +2460,7 @@ Blockly.Blocks[Blockly.Msg.WEBDUINO_TESTCAR_NEW, 'car_test_new'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(200); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-keyboard.html' + utmUrl); } }; @@ -2468,7 +2485,7 @@ Blockly.Blocks['car_test_move'] = { this.setPreviousStatement(true); this.setNextStatement(true); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-keyboard.html' + utmUrl); } }; @@ -2491,7 +2508,7 @@ Blockly.Blocks['car_speed'] = { this.setPreviousStatement(true); this.setNextStatement(true); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-keyboard.html' + utmUrl); } }; @@ -2515,7 +2532,7 @@ Blockly.Blocks['temp_data_set'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(200); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -2536,7 +2553,7 @@ Blockly.Blocks['temp_data_get'] = { this.setOutput(true); this.setTooltip(''); this.setColour(200); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/index.html' + utmUrl); } }; @@ -2562,7 +2579,7 @@ Blockly.Blocks['sound_recognition'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(100); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/component/led-speech.html' + utmUrl); } }; @@ -2578,7 +2595,7 @@ Blockly.Blocks['sound_recognition_check'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(60); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/component/led-speech.html' + utmUrl); } }; @@ -2594,7 +2611,7 @@ Blockly.Blocks['sound_recognition_stop'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(100); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/component/led-speech.html' + utmUrl); } }; @@ -2605,7 +2622,7 @@ Blockly.Blocks['sound_recognition_text'] = { this.setOutput(true); this.setTooltip(''); this.setColour(60); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/component/led-speech.html' + utmUrl); } }; @@ -2636,7 +2653,7 @@ Blockly.Blocks['translate_speech'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/component/buzzer-clock.html' + utmUrl); } }; @@ -2654,7 +2671,7 @@ Blockly.Blocks['speak'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('http://www.example.com/'); + this.setHelpUrl(mainUrl + 'useful/component/buzzer-clock.html' + utmUrl); } }; @@ -2680,7 +2697,7 @@ Blockly.Blocks['speak_callback'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('http://www.example.com/'); + this.setHelpUrl(mainUrl + 'useful/component/buzzer-clock.html' + utmUrl); } }; @@ -2699,7 +2716,7 @@ Blockly.Blocks['speak_event'] = { this.setNextStatement(true, null); this.setTooltip(''); this.setColour(230); - this.setHelpUrl('http://www.example.com/'); + this.setHelpUrl(mainUrl + 'useful/component/buzzer-clock.html' + utmUrl); } }; @@ -2747,7 +2764,7 @@ Blockly.Blocks['speak_setting_sample'] = { this.setOutput(true, null); this.setTooltip(''); this.setColour(270); - this.setHelpUrl('http://www.example.com/'); + this.setHelpUrl(mainUrl + 'useful/component/buzzer-clock.html' + utmUrl); } }; @@ -2999,7 +3016,8 @@ Blockly.Blocks['max7219_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('http://webduinoio.github.io/demo/max7219/'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3014,7 +3032,8 @@ Blockly.Blocks['max7219_draw'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('http://webduinoio.github.io/demo/max7219/'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3034,7 +3053,8 @@ Blockly.Blocks['max7219_animate'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('http://webduinoio.github.io/demo/max7219/'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3058,7 +3078,8 @@ Blockly.Blocks['max7219_animate_horse'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('http://webduinoio.github.io/demo/max7219/'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3072,7 +3093,8 @@ Blockly.Blocks['max7219_stop'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3085,7 +3107,8 @@ Blockly.Blocks['max7219_off'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3167,7 +3190,8 @@ Blockly.Blocks['max7219_88'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3180,7 +3204,8 @@ Blockly.Blocks['max7219_val_alphabet'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3192,7 +3217,8 @@ Blockly.Blocks['max7219_val_num'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3243,7 +3269,8 @@ Blockly.Blocks['max7219_val_img'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setToolUrl('http://webduinoio.github.io/demo/max7219/'); + this.setHelpUrl(mainUrl + 'basic/component/maxmatrix.html' + utmUrl); } }; @@ -3255,7 +3282,7 @@ Blockly.Blocks['photocell_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/photocell.html' + utmUrl); }, getPinDropdown: function () { var tags = Code.getTags(), @@ -3303,7 +3330,7 @@ Blockly.Blocks['photocell_detected'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/photocell.html' + utmUrl); } }; @@ -3316,7 +3343,7 @@ Blockly.Blocks['photocell_val'] = { this.setOutput(true); this.setColour(35); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/photocell.html' + utmUrl); } }; @@ -3330,7 +3357,7 @@ Blockly.Blocks['photocell_stop'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/photocell.html' + utmUrl); } }; @@ -3342,7 +3369,7 @@ Blockly.Blocks['soil_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/soil.html' + utmUrl); }, getPinDropdown: function () { var tags = Code.getTags(), @@ -3390,7 +3417,7 @@ Blockly.Blocks['soil_detected'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/soil.html' + utmUrl); } }; @@ -3403,7 +3430,7 @@ Blockly.Blocks['soil_val'] = { this.setOutput(true); this.setColour(35); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/soil.html' + utmUrl); } }; @@ -3417,7 +3444,7 @@ Blockly.Blocks['soil_stop'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/soil.html' + utmUrl); } }; @@ -3430,7 +3457,7 @@ Blockly.Blocks['irrecv_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/ir.html' + utmUrl); } }; @@ -3445,7 +3472,7 @@ Blockly.Blocks['irrecv_on'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/ir.html' + utmUrl); } }; @@ -3457,7 +3484,7 @@ Blockly.Blocks['irrecv_val'] = { this.setOutput(true); this.setColour(35); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/ir.html' + utmUrl); } }; @@ -3470,7 +3497,7 @@ Blockly.Blocks['irrecv_off'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/ir.html' + utmUrl); } }; @@ -3483,7 +3510,7 @@ Blockly.Blocks['irled_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/ir.html' + utmUrl); } }; @@ -3497,7 +3524,7 @@ Blockly.Blocks['irled_launch'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/ir.html' + utmUrl); } }; @@ -3516,7 +3543,7 @@ Blockly.Blocks['adxl345_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/adxl345.html' + utmUrl); } }; @@ -3531,7 +3558,7 @@ Blockly.Blocks['adxl345_on'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/adxl345.html' + utmUrl); } }; @@ -3551,7 +3578,7 @@ Blockly.Blocks['adxl345_val'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/adxl345.html' + utmUrl); } }; @@ -3564,7 +3591,7 @@ Blockly.Blocks['adxl345_off'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/adxl345.html' + utmUrl); } }; @@ -3614,7 +3641,7 @@ Blockly.Blocks['joystick_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/joypad.html' + utmUrl); } }; @@ -3629,7 +3656,7 @@ Blockly.Blocks['joystick_on'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/joypad.html' + utmUrl); } }; @@ -3646,7 +3673,7 @@ Blockly.Blocks['joystick_val'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/joypad.html' + utmUrl); } }; @@ -3659,7 +3686,7 @@ Blockly.Blocks['joystick_off'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/component/joypad.html' + utmUrl); } }; @@ -3678,7 +3705,7 @@ Blockly.Blocks['document_keyboard'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(5); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-keyboard.html' + utmUrl); } }; @@ -3691,7 +3718,7 @@ Blockly.Blocks['document_keyboard_konami'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-keyboard.html' + utmUrl); } }; @@ -3704,7 +3731,7 @@ Blockly.Blocks['document_keyboard_stop'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(5); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-keyboard.html' + utmUrl); } }; @@ -3778,7 +3805,7 @@ Blockly.Blocks['document_keycode'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'useful/example/toycar-keyboard.html' + utmUrl); } }; @@ -3800,7 +3827,7 @@ Blockly.Blocks['text_indexof'] = { this.setOutput(true); this.setTooltip(''); this.setColour(210); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/rfid.html' + utmUrl); } }; @@ -3830,7 +3857,7 @@ Blockly.Blocks['rfid_new'] = { this.setOutput(true); this.setColour(230); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/rfid.html' + utmUrl); } }; @@ -3845,7 +3872,7 @@ Blockly.Blocks['rfid_enter'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/rfid.html' + utmUrl); } }; @@ -3857,7 +3884,7 @@ Blockly.Blocks['rfid_uid'] = { this.setOutput(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/rfid.html' + utmUrl); } }; @@ -3873,7 +3900,7 @@ Blockly.Blocks['rfid_if'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(35); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/rfid.html' + utmUrl); } }; @@ -3889,7 +3916,7 @@ Blockly.Blocks['rfid_leave'] = { this.setNextStatement(true); this.setTooltip(''); this.setColour(65); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/rfid.html' + utmUrl); } }; @@ -3902,6 +3929,6 @@ Blockly.Blocks['rfid_stopread'] = { this.setNextStatement(true); this.setColour(65); this.setTooltip(''); - this.setHelpUrl('https://webduino.io'); + this.setHelpUrl(mainUrl + 'basic/sensor/rfid.html' + utmUrl); } }; diff --git a/code.js b/code.js index 9f3d7c5..97f803f 100644 --- a/code.js +++ b/code.js @@ -708,6 +708,21 @@ Code.ga = function (blockArea, toolManu, i) { } }; +Code.remind = function(){ + var remindButton = document.getElementById('remind-button'); + var remind = document.querySelector('.remind'); + var cookie = document.cookie; + if(cookie.indexOf('webduinoBlocklyRemind=close')!=-1){ + remind.style.display = 'none'; + }else{ + remindButton.addEventListener('click',function(){ + remind.style.display = 'none'; + document.cookie = 'webduinoBlocklyRemind=close'; + ga('send', 'event', 'Webduino-blockly', 'remind click'); + }); + } +} + /** * Populate the currently selected pane with content generated from the blocks. */ @@ -825,7 +840,7 @@ Code.init = function (toolbox) { // // Account for the 19 pixel margin and on each side. //} var contentHeight = document.getElementById('content_blocks').offsetHeight; - document.getElementById('demo-area').style.height = (contentHeight - 110) + 'px'; + document.getElementById('demo-area').style.height = (contentHeight - 65) + 'px'; }; window.addEventListener('resize', onresize, false); @@ -1016,7 +1031,7 @@ Code.initLanguage = function () { languageMenu.addEventListener('change', Code.changeLanguage, true); // Inject language strings. - document.title += ' ' + MSG['title']; + document.title = MSG['title']; }; /** @@ -1479,12 +1494,12 @@ Blockly.ZoomControls.prototype.position = function () { this.left_ = this.MARGIN_SIDE_; } else { this.left_ = metrics.absoluteLeft - - this.WIDTH_ - this.MARGIN_SIDE_ + 70; + this.WIDTH_ - this.MARGIN_SIDE_ + 100; } this.top_ = metrics.viewHeight + metrics.absoluteTop - this.HEIGHT_ - this.MARGIN_BOTTOM_ + 5; this.svgGroup_.setAttribute('transform', - 'translate(' + this.left_ + ',' + this.top_ + ')'); + 'translate(' + this.left_ + ',' + this.top_ + ') scale(.95)');; }; // trashcan position and size @@ -1496,13 +1511,13 @@ Blockly.Trashcan.prototype.position = function () { if (this.workspace_.RTL) { this.left_ = this.MARGIN_SIDE_; } else { - this.left_ = metrics.viewWidth + metrics.absoluteLeft - - this.WIDTH_ - this.MARGIN_SIDE_ + 10; + this.left_ = metrics.absoluteLeft - + this.WIDTH_ - this.MARGIN_SIDE_ + 82; } this.top_ = metrics.viewHeight + metrics.absoluteTop - - (this.BODY_HEIGHT_ + this.LID_HEIGHT_) - this.MARGIN_BOTTOM_ + 10; + (this.BODY_HEIGHT_ + this.LID_HEIGHT_) - this.MARGIN_BOTTOM_ + 26; this.svgGroup_.setAttribute('transform', - 'translate(' + this.left_ + ',' + this.top_ + ') scale(.75)'); + 'translate(' + this.left_ + ',' + this.top_ + ') scale(.58)'); }; Blockly.WorkspaceSvg.prototype.showContextMenu_ = function (e) { @@ -1645,6 +1660,206 @@ Blockly.WorkspaceSvg.prototype.showContextMenu_ = function (e) { Blockly.WorkspaceSvg.prototype.preloadAudio_ = function () {}; +Blockly.BlockSvg.prototype.showContextMenu_ = function(e) { + if (this.workspace.options.readOnly || !this.contextMenu) { + return; + } + // Save the current block in a variable for use in closures. + var block = this; + var menuOptions = []; + + if (this.isDeletable() && this.isMovable() && !block.isInFlyout) { + // Option to duplicate this block. + var duplicateOption = { + text: Blockly.Msg.DUPLICATE_BLOCK, + enabled: true, + callback: function() { + Blockly.duplicate_(block); + } + }; + if (this.getDescendants().length > this.workspace.remainingCapacity()) { + duplicateOption.enabled = false; + } + menuOptions.push(duplicateOption); + + if (this.isEditable() && !this.collapsed_ && + this.workspace.options.comments) { + // Option to add/remove a comment. + var commentOption = {enabled: !goog.userAgent.IE}; + if (this.comment) { + commentOption.text = Blockly.Msg.REMOVE_COMMENT; + commentOption.callback = function() { + block.setCommentText(null); + }; + } else { + commentOption.text = Blockly.Msg.ADD_COMMENT; + commentOption.callback = function() { + block.setCommentText(''); + }; + } + menuOptions.push(commentOption); + } + + // Option to make block inline. + if (!this.collapsed_) { + for (var i = 1; i < this.inputList.length; i++) { + if (this.inputList[i - 1].type != Blockly.NEXT_STATEMENT && + this.inputList[i].type != Blockly.NEXT_STATEMENT) { + // Only display this option if there are two value or dummy inputs + // next to each other. + var inlineOption = {enabled: true}; + var isInline = this.getInputsInline(); + inlineOption.text = isInline ? + Blockly.Msg.EXTERNAL_INPUTS : Blockly.Msg.INLINE_INPUTS; + inlineOption.callback = function() { + block.setInputsInline(!isInline); + }; + menuOptions.push(inlineOption); + break; + } + } + } + + if (this.workspace.options.collapse) { + // Option to collapse/expand block. + if (this.collapsed_) { + var expandOption = {enabled: true}; + expandOption.text = Blockly.Msg.EXPAND_BLOCK; + expandOption.callback = function() { + block.setCollapsed(false); + }; + menuOptions.push(expandOption); + } else { + var collapseOption = {enabled: true}; + collapseOption.text = Blockly.Msg.COLLAPSE_BLOCK; + collapseOption.callback = function() { + block.setCollapsed(true); + }; + menuOptions.push(collapseOption); + } + } + + if (this.workspace.options.disable) { + // Option to disable/enable block. + var disableOption = { + text: this.disabled ? + Blockly.Msg.ENABLE_BLOCK : Blockly.Msg.DISABLE_BLOCK, + enabled: !this.getInheritedDisabled(), + callback: function() { + block.setDisabled(!block.disabled); + } + }; + menuOptions.push(disableOption); + } + + // Option to delete this block. + // Count the number of blocks that are nested in this block. + var descendantCount = this.getDescendants().length; + var nextBlock = this.getNextBlock(); + if (nextBlock) { + // Blocks in the current stack would survive this block's deletion. + descendantCount -= nextBlock.getDescendants().length; + } + var deleteOption = { + text: descendantCount == 1 ? Blockly.Msg.DELETE_BLOCK : + Blockly.Msg.DELETE_X_BLOCKS.replace('%1', String(descendantCount)), + enabled: true, + callback: function() { + Blockly.Events.setGroup(true); + block.dispose(true, true); + Blockly.Events.setGroup(false); + } + }; + menuOptions.push(deleteOption); + } + + // Option to get help. + var url = goog.isFunction(this.helpUrl) ? this.helpUrl() : this.helpUrl; + var helpOption = {enabled: !!url}; + helpOption.text = Blockly.Msg.HELP; + helpOption.callback = function() { + block.showHelp_(); + }; + menuOptions.push(helpOption); + + var toolOption = {}; + toolOption.text = Blockly.Msg.TOOL; + if(this.toolUrl){ + toolOption.enabled = true; + }else{ + toolOption.enabled = false; + } + toolOption.callback = function() { + block.showTool_(); + }; + menuOptions.push(toolOption); + + // Allow the block to add or modify menuOptions. + if (this.customContextMenu && !block.isInFlyout) { + this.customContextMenu(menuOptions); + } + + Blockly.ContextMenu.show(e, menuOptions, this.RTL); + Blockly.ContextMenu.currentBlock = this; +}; + +Blockly.Block.prototype.setToolUrl = function(url) { + this.toolUrl = url; +}; + +Blockly.BlockSvg.prototype.showTool_ = function() { + var url = goog.isFunction(this.toolUrl) ? this.helpUrl() : this.toolUrl; + if (url) { + window.open(url); + } +}; + + +Blockly.Block.prototype.jsonInit = function(json) { + // Validate inputs. + goog.asserts.assert(json['output'] == undefined || + json['previousStatement'] == undefined, + 'Must not have both an output and a previousStatement.'); + + // Set basic properties of block. + if (json['colour'] !== undefined) { + this.setColour(json['colour']); + } + + // Interpolate the message blocks. + var i = 0; + while (json['message' + i] !== undefined) { + this.interpolate_(json['message' + i], json['args' + i] || [], + json['lastDummyAlign' + i]); + i++; + } + + if (json['inputsInline'] !== undefined) { + this.setInputsInline(json['inputsInline']); + } + // Set output and previous/next connections. + if (json['output'] !== undefined) { + this.setOutput(true, json['output']); + } + if (json['previousStatement'] !== undefined) { + this.setPreviousStatement(true, json['previousStatement']); + } + if (json['nextStatement'] !== undefined) { + this.setNextStatement(true, json['nextStatement']); + } + if (json['tooltip'] !== undefined) { + this.setTooltip(json['tooltip']); + } + if (json['helpUrl'] !== undefined) { + this.setHelpUrl(json['helpUrl']); + } + if (json['toolUrl'] !== undefined) { + this.setToolUrl(json['toolUrl']); + } +}; + + + Blockly.JavaScript.depth = 0; // Load the Code demo's language strings. @@ -1675,6 +1890,7 @@ Promise.all([ Code.loadDemoArea(); Code.loadGa(); Code.ga(); + Code.remind(); Code.importPrettify(); Code.bindHotkey(window.document); Promise.all([ diff --git a/css/blockly.css b/css/blockly.css index 7cdf57b..4600230 100644 --- a/css/blockly.css +++ b/css/blockly.css @@ -216,8 +216,8 @@ outline: none; } .blocklyTreeRow.blocklyTreeRow { - line-height: 22px; - height: 22px; + line-height: 23px; + height: 24px; margin-bottom: 0; padding-right: 25px; white-space: nowrap; diff --git a/css/fonts/icomoon.eot b/css/fonts/icomoon.eot index cc7545b..54a30e1 100644 Binary files a/css/fonts/icomoon.eot and b/css/fonts/icomoon.eot differ diff --git a/css/fonts/icomoon.svg b/css/fonts/icomoon.svg new file mode 100644 index 0000000..d490bc6 --- /dev/null +++ b/css/fonts/icomoon.svg @@ -0,0 +1,1350 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/css/fonts/icomoon.ttf b/css/fonts/icomoon.ttf index 9c0f53e..80910e6 100644 Binary files a/css/fonts/icomoon.ttf and b/css/fonts/icomoon.ttf differ diff --git a/css/fonts/icomoon.woff b/css/fonts/icomoon.woff index d89fcb4..350de65 100644 Binary files a/css/fonts/icomoon.woff and b/css/fonts/icomoon.woff differ diff --git a/css/iconfont.css b/css/iconfont.css index f19de08..90e23be 100644 --- a/css/iconfont.css +++ b/css/iconfont.css @@ -1,1500 +1,4046 @@ @font-face { - font-family: 'icomoon'; - src: url('fonts/icomoon.eot?y650u8'); - src: url('fonts/icomoon.eot?y650u8#iefix') format('embedded-opentype'), - url('fonts/icomoon.ttf?y650u8') format('truetype'), - url('fonts/icomoon.woff?y650u8') format('woff'), - url('fonts/icomoon.svg?y650u8#icomoon') format('svg'); - font-weight: normal; - font-style: normal; + font-family: 'icomoon'; + src: url('fonts/icomoon.eot?3kfp1y'); + src: url('fonts/icomoon.eot?3kfp1y#iefix') format('embedded-opentype'), + url('fonts/icomoon.ttf?3kfp1y') format('truetype'), + url('fonts/icomoon.woff?3kfp1y') format('woff'), + url('fonts/icomoon.svg?3kfp1y#icomoon') format('svg'); + font-weight: normal; + font-style: normal; } [class^="icon-"], [class*=" icon-"] { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: 'icomoon' !important; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'icomoon' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } +.icon-3d_rotation:before { + content: "\e84d"; +} +.icon-ac_unit:before { + content: "\eb3b"; +} +.icon-alarm2:before { + content: "\e855"; +} +.icon-access_alarms:before { + content: "\e191"; +} +.icon-schedule:before { + content: "\e8b5"; +} +.icon-accessibility2:before { + content: "\e84e"; +} +.icon-accessible:before { + content: "\e914"; +} +.icon-account_balance:before { + content: "\e84f"; +} +.icon-account_balance_wallet:before { + content: "\e850"; +} +.icon-account_box:before { + content: "\e851"; +} +.icon-account_circle:before { + content: "\e853"; +} +.icon-adb:before { + content: "\e60e"; +} +.icon-add:before { + content: "\e145"; +} +.icon-add_a_photo:before { + content: "\e439"; +} +.icon-alarm_add:before { + content: "\e856"; +} +.icon-add_alert:before { + content: "\e003"; +} +.icon-add_box:before { + content: "\e146"; +} +.icon-add_circle:before { + content: "\e147"; +} +.icon-control_point:before { + content: "\e3ba"; +} +.icon-add_location:before { + content: "\e567"; +} +.icon-add_shopping_cart:before { + content: "\e854"; +} +.icon-queue:before { + content: "\e03c"; +} +.icon-add_to_queue:before { + content: "\e05c"; +} +.icon-adjust:before { + content: "\e39e"; +} +.icon-airline_seat_flat:before { + content: "\e630"; +} +.icon-airline_seat_flat_angled:before { + content: "\e631"; +} +.icon-airline_seat_individual_suite:before { + content: "\e632"; +} +.icon-airline_seat_legroom_extra:before { + content: "\e633"; +} +.icon-airline_seat_legroom_normal:before { + content: "\e634"; +} +.icon-airline_seat_legroom_reduced:before { + content: "\e635"; +} +.icon-airline_seat_recline_extra:before { + content: "\e636"; +} +.icon-airline_seat_recline_normal:before { + content: "\e637"; +} +.icon-flight:before { + content: "\e539"; +} +.icon-airplanemode_inactive:before { + content: "\e194"; +} +.icon-airplay:before { + content: "\e055"; +} +.icon-airport_shuttle:before { + content: "\eb3c"; +} +.icon-alarm_off:before { + content: "\e857"; +} +.icon-alarm_on:before { + content: "\e858"; +} +.icon-album:before { + content: "\e019"; +} +.icon-all_inclusive:before { + content: "\eb3d"; +} +.icon-all_out:before { + content: "\e90b"; +} +.icon-android2:before { + content: "\e859"; +} +.icon-announcement:before { + content: "\e85a"; +} +.icon-apps:before { + content: "\e5c3"; +} +.icon-archive:before { + content: "\e149"; +} +.icon-arrow_back:before { + content: "\e5c4"; +} +.icon-arrow_downward:before { + content: "\e5db"; +} +.icon-arrow_drop_down:before { + content: "\e5c5"; +} +.icon-arrow_drop_down_circle:before { + content: "\e5c6"; +} +.icon-arrow_drop_up:before { + content: "\e5c7"; +} +.icon-arrow_forward:before { + content: "\e5c8"; +} +.icon-arrow_upward:before { + content: "\e5d8"; +} +.icon-art_track:before { + content: "\e060"; +} +.icon-aspect_ratio:before { + content: "\e85b"; +} +.icon-poll:before { + content: "\e801"; +} +.icon-assignment:before { + content: "\e85d"; +} +.icon-assignment_ind:before { + content: "\e85e"; +} +.icon-assignment_late:before { + content: "\e85f"; +} +.icon-assignment_return:before { + content: "\e860"; +} +.icon-assignment_returned:before { + content: "\e861"; +} +.icon-assignment_turned_in:before { + content: "\e862"; +} +.icon-assistant:before { + content: "\e39f"; +} +.icon-flag2:before { + content: "\e153"; +} +.icon-attach_file:before { + content: "\e226"; +} +.icon-attach_money:before { + content: "\e227"; +} +.icon-attachment2:before { + content: "\e2bc"; +} +.icon-audiotrack:before { + content: "\e3a1"; +} +.icon-autorenew:before { + content: "\e863"; +} +.icon-av_timer:before { + content: "\e01b"; +} +.icon-backspace:before { + content: "\e14a"; +} +.icon-cloud_upload:before { + content: "\e2c3"; +} +.icon-battery_alert:before { + content: "\e19c"; +} +.icon-battery_charging_full:before { + content: "\e1a3"; +} +.icon-battery_std:before { + content: "\e1a5"; +} +.icon-battery_unknown:before { + content: "\e1a6"; +} +.icon-beach_access:before { + content: "\eb3e"; +} +.icon-beenhere:before { + content: "\e52d"; +} +.icon-block:before { + content: "\e14b"; +} +.icon-bluetooth:before { + content: "\e1a7"; +} +.icon-bluetooth_searching:before { + content: "\e1aa"; +} +.icon-bluetooth_connected:before { + content: "\e1a8"; +} +.icon-bluetooth_disabled:before { + content: "\e1a9"; +} +.icon-blur_circular:before { + content: "\e3a2"; +} +.icon-blur_linear:before { + content: "\e3a3"; +} +.icon-blur_off:before { + content: "\e3a4"; +} +.icon-blur_on:before { + content: "\e3a5"; +} +.icon-class:before { + content: "\e86e"; +} +.icon-turned_in:before { + content: "\e8e6"; +} +.icon-turned_in_not:before { + content: "\e8e7"; +} +.icon-border_all:before { + content: "\e228"; +} +.icon-border_bottom:before { + content: "\e229"; +} +.icon-border_clear:before { + content: "\e22a"; +} +.icon-border_color:before { + content: "\e22b"; +} +.icon-border_horizontal:before { + content: "\e22c"; +} +.icon-border_inner:before { + content: "\e22d"; +} +.icon-border_left:before { + content: "\e22e"; +} +.icon-border_outer:before { + content: "\e22f"; +} +.icon-border_right:before { + content: "\e230"; +} +.icon-border_style:before { + content: "\e231"; +} +.icon-border_top:before { + content: "\e232"; +} +.icon-border_vertical:before { + content: "\e233"; +} +.icon-branding_watermark:before { + content: "\e06b"; +} +.icon-brightness_1:before { + content: "\e3a6"; +} +.icon-brightness_2:before { + content: "\e3a7"; +} +.icon-brightness_3:before { + content: "\e3a8"; +} +.icon-brightness_4:before { + content: "\e3a9"; +} +.icon-brightness_low:before { + content: "\e1ad"; +} +.icon-brightness_medium:before { + content: "\e1ae"; +} +.icon-brightness_high:before { + content: "\e1ac"; +} +.icon-brightness_auto:before { + content: "\e1ab"; +} +.icon-broken_image:before { + content: "\e3ad"; +} +.icon-brush:before { + content: "\e3ae"; +} +.icon-bubble_chart:before { + content: "\e6dd"; +} +.icon-bug_report:before { + content: "\e868"; +} +.icon-build:before { + content: "\e869"; +} +.icon-burst_mode:before { + content: "\e43c"; +} +.icon-domain:before { + content: "\e7ee"; +} +.icon-business_center:before { + content: "\eb3f"; +} +.icon-cached:before { + content: "\e86a"; +} +.icon-cake:before { + content: "\e7e9"; +} +.icon-phone2:before { + content: "\e0cd"; +} +.icon-call_end:before { + content: "\e0b1"; +} +.icon-call_made:before { + content: "\e0b2"; +} +.icon-merge_type:before { + content: "\e252"; +} +.icon-call_missed:before { + content: "\e0b4"; +} +.icon-call_missed_outgoing:before { + content: "\e0e4"; +} +.icon-call_received:before { + content: "\e0b5"; +} +.icon-call_split:before { + content: "\e0b6"; +} +.icon-call_to_action:before { + content: "\e06c"; +} +.icon-camera2:before { + content: "\e3af"; +} +.icon-photo_camera:before { + content: "\e412"; +} +.icon-camera_enhance:before { + content: "\e8fc"; +} +.icon-camera_front:before { + content: "\e3b1"; +} +.icon-camera_rear:before { + content: "\e3b2"; +} +.icon-camera_roll:before { + content: "\e3b3"; +} +.icon-cancel:before { + content: "\e5c9"; +} +.icon-redeem:before { + content: "\e8b1"; +} +.icon-card_membership:before { + content: "\e8f7"; +} +.icon-card_travel:before { + content: "\e8f8"; +} +.icon-casino:before { + content: "\eb40"; +} +.icon-cast:before { + content: "\e307"; +} +.icon-cast_connected:before { + content: "\e308"; +} +.icon-center_focus_strong:before { + content: "\e3b4"; +} +.icon-center_focus_weak:before { + content: "\e3b5"; +} +.icon-change_history:before { + content: "\e86b"; +} +.icon-chat:before { + content: "\e0b7"; +} +.icon-chat_bubble:before { + content: "\e0ca"; +} +.icon-chat_bubble_outline:before { + content: "\e0cb"; +} +.icon-check:before { + content: "\e5ca"; +} +.icon-check_box:before { + content: "\e834"; +} +.icon-check_box_outline_blank:before { + content: "\e835"; +} +.icon-check_circle:before { + content: "\e86c"; +} +.icon-navigate_before:before { + content: "\e408"; +} +.icon-navigate_next:before { + content: "\e409"; +} +.icon-child_care:before { + content: "\eb41"; +} +.icon-child_friendly:before { + content: "\eb42"; +} +.icon-chrome_reader_mode:before { + content: "\e86d"; +} +.icon-close:before { + content: "\e5cd"; +} +.icon-clear_all:before { + content: "\e0b8"; +} +.icon-closed_caption:before { + content: "\e01c"; +} +.icon-wb_cloudy:before { + content: "\e42d"; +} +.icon-cloud_circle:before { + content: "\e2be"; +} +.icon-cloud_done:before { + content: "\e2bf"; +} +.icon-cloud_download:before { + content: "\e2c0"; +} +.icon-cloud_off:before { + content: "\e2c1"; +} +.icon-cloud_queue:before { + content: "\e2c2"; +} +.icon-code:before { + content: "\e86f"; +} +.icon-photo_library:before { + content: "\e413"; +} +.icon-collections_bookmark:before { + content: "\e431"; +} +.icon-palette:before { + content: "\e40a"; +} +.icon-colorize:before { + content: "\e3b8"; +} +.icon-comment:before { + content: "\e0b9"; +} +.icon-compare:before { + content: "\e3b9"; +} +.icon-compare_arrows:before { + content: "\e915"; +} +.icon-laptop2:before { + content: "\e31e"; +} +.icon-confirmation_number:before { + content: "\e638"; +} +.icon-contact_mail:before { + content: "\e0d0"; +} +.icon-contact_phone:before { + content: "\e0cf"; +} +.icon-contacts:before { + content: "\e0ba"; +} +.icon-content_copy:before { + content: "\e14d"; +} +.icon-content_cut:before { + content: "\e14e"; +} +.icon-content_paste:before { + content: "\e14f"; +} +.icon-control_point_duplicate:before { + content: "\e3bb"; +} +.icon-copyright:before { + content: "\e90c"; +} +.icon-mode_edit:before { + content: "\e254"; +} +.icon-create_new_folder:before { + content: "\e2cc"; +} +.icon-payment:before { + content: "\e8a1"; +} +.icon-crop2:before { + content: "\e3be"; +} +.icon-crop_16_9:before { + content: "\e3bc"; +} +.icon-crop_3_2:before { + content: "\e3bd"; +} +.icon-crop_landscape:before { + content: "\e3c3"; +} +.icon-crop_7_5:before { + content: "\e3c0"; +} +.icon-crop_din:before { + content: "\e3c1"; +} +.icon-crop_free:before { + content: "\e3c2"; +} +.icon-crop_original:before { + content: "\e3c4"; +} +.icon-crop_portrait:before { + content: "\e3c5"; +} +.icon-crop_rotate:before { + content: "\e437"; +} +.icon-crop_square:before { + content: "\e3c6"; +} +.icon-dashboard:before { + content: "\e871"; +} +.icon-data_usage:before { + content: "\e1af"; +} +.icon-date_range:before { + content: "\e916"; +} +.icon-dehaze:before { + content: "\e3c7"; +} +.icon-delete:before { + content: "\e872"; +} +.icon-delete_forever:before { + content: "\e92b"; +} +.icon-delete_sweep:before { + content: "\e16c"; +} +.icon-description:before { + content: "\e873"; +} +.icon-desktop_mac:before { + content: "\e30b"; +} +.icon-desktop_windows:before { + content: "\e30c"; +} +.icon-details:before { + content: "\e3c8"; +} +.icon-developer_board:before { + content: "\e30d"; +} +.icon-developer_mode:before { + content: "\e1b0"; +} +.icon-device_hub:before { + content: "\e335"; +} +.icon-phonelink:before { + content: "\e326"; +} +.icon-devices_other:before { + content: "\e337"; +} +.icon-dialer_sip:before { + content: "\e0bb"; +} +.icon-dialpad:before { + content: "\e0bc"; +} +.icon-directions:before { + content: "\e52e"; +} +.icon-directions_bike:before { + content: "\e52f"; +} +.icon-directions_boat:before { + content: "\e532"; +} +.icon-directions_bus:before { + content: "\e530"; +} +.icon-directions_car:before { + content: "\e531"; +} +.icon-directions_railway:before { + content: "\e534"; +} +.icon-directions_run:before { + content: "\e566"; +} +.icon-directions_transit:before { + content: "\e535"; +} +.icon-directions_walk:before { + content: "\e536"; +} +.icon-disc_full:before { + content: "\e610"; +} +.icon-dns:before { + content: "\e875"; +} +.icon-not_interested:before { + content: "\e033"; +} +.icon-do_not_disturb_alt:before { + content: "\e611"; +} +.icon-do_not_disturb_off:before { + content: "\e643"; +} +.icon-remove_circle:before { + content: "\e15c"; +} +.icon-dock:before { + content: "\e30e"; +} +.icon-done:before { + content: "\e876"; +} +.icon-done_all:before { + content: "\e877"; +} +.icon-donut_large:before { + content: "\e917"; +} +.icon-donut_small:before { + content: "\e918"; +} +.icon-drafts:before { + content: "\e151"; +} +.icon-drag_handle:before { + content: "\e25d"; +} +.icon-time_to_leave:before { + content: "\e62c"; +} +.icon-dvr:before { + content: "\e1b2"; +} +.icon-edit_location:before { + content: "\e568"; +} +.icon-eject2:before { + content: "\e8fb"; +} +.icon-markunread:before { + content: "\e159"; +} +.icon-enhanced_encryption:before { + content: "\e63f"; +} +.icon-equalizer3:before { + content: "\e01d"; +} +.icon-error:before { + content: "\e000"; +} +.icon-error_outline:before { + content: "\e001"; +} +.icon-euro_symbol:before { + content: "\e926"; +} +.icon-ev_station:before { + content: "\e56d"; +} +.icon-insert_invitation:before { + content: "\e24f"; +} +.icon-event_available:before { + content: "\e614"; +} +.icon-event_busy:before { + content: "\e615"; +} +.icon-event_note:before { + content: "\e616"; +} +.icon-event_seat:before { + content: "\e903"; +} +.icon-exit_to_app:before { + content: "\e879"; +} +.icon-expand_less:before { + content: "\e5ce"; +} +.icon-expand_more:before { + content: "\e5cf"; +} +.icon-explicit:before { + content: "\e01e"; +} +.icon-explore:before { + content: "\e87a"; +} +.icon-exposure:before { + content: "\e3ca"; +} +.icon-exposure_neg_1:before { + content: "\e3cb"; +} +.icon-exposure_neg_2:before { + content: "\e3cc"; +} +.icon-exposure_plus_1:before { + content: "\e3cd"; +} +.icon-exposure_plus_2:before { + content: "\e3ce"; +} +.icon-exposure_zero:before { + content: "\e3cf"; +} +.icon-extension:before { + content: "\e87b"; +} +.icon-face:before { + content: "\e87c"; +} +.icon-fast_forward:before { + content: "\e01f"; +} +.icon-fast_rewind:before { + content: "\e020"; +} +.icon-favorite:before { + content: "\e87d"; +} +.icon-favorite_border:before { + content: "\e87e"; +} +.icon-featured_play_list:before { + content: "\e06d"; +} +.icon-featured_video:before { + content: "\e06e"; +} +.icon-sms_failed:before { + content: "\e626"; +} +.icon-fiber_dvr:before { + content: "\e05d"; +} +.icon-fiber_manual_record:before { + content: "\e061"; +} +.icon-fiber_new:before { + content: "\e05e"; +} +.icon-fiber_pin:before { + content: "\e06a"; +} +.icon-fiber_smart_record:before { + content: "\e062"; +} +.icon-get_app:before { + content: "\e884"; +} +.icon-file_upload:before { + content: "\e2c6"; +} +.icon-filter2:before { + content: "\e3d3"; +} +.icon-filter_1:before { + content: "\e3d0"; +} +.icon-filter_2:before { + content: "\e3d1"; +} +.icon-filter_3:before { + content: "\e3d2"; +} +.icon-filter_4:before { + content: "\e3d4"; +} +.icon-filter_5:before { + content: "\e3d5"; +} +.icon-filter_6:before { + content: "\e3d6"; +} +.icon-filter_7:before { + content: "\e3d7"; +} +.icon-filter_8:before { + content: "\e3d8"; +} +.icon-filter_9:before { + content: "\e3d9"; +} +.icon-filter_9_plus:before { + content: "\e3da"; +} +.icon-filter_b_and_w:before { + content: "\e3db"; +} +.icon-filter_center_focus:before { + content: "\e3dc"; +} +.icon-filter_drama:before { + content: "\e3dd"; +} +.icon-filter_frames:before { + content: "\e3de"; +} +.icon-terrain:before { + content: "\e564"; +} +.icon-filter_list:before { + content: "\e152"; +} +.icon-filter_none:before { + content: "\e3e0"; +} +.icon-filter_tilt_shift:before { + content: "\e3e2"; +} +.icon-filter_vintage:before { + content: "\e3e3"; +} +.icon-find_in_page:before { + content: "\e880"; +} +.icon-find_replace:before { + content: "\e881"; +} +.icon-fingerprint:before { + content: "\e90d"; +} +.icon-first_page:before { + content: "\e5dc"; +} +.icon-fitness_center:before { + content: "\eb43"; +} +.icon-flare:before { + content: "\e3e4"; +} +.icon-flash_auto:before { + content: "\e3e5"; +} +.icon-flash_off:before { + content: "\e3e6"; +} +.icon-flash_on:before { + content: "\e3e7"; +} +.icon-flight_land:before { + content: "\e904"; +} +.icon-flight_takeoff:before { + content: "\e905"; +} +.icon-flip:before { + content: "\e3e8"; +} +.icon-flip_to_back:before { + content: "\e882"; +} +.icon-flip_to_front:before { + content: "\e883"; +} +.icon-folder2:before { + content: "\e2c7"; +} +.icon-folder_open:before { + content: "\e2c8"; +} +.icon-folder_shared:before { + content: "\e2c9"; +} +.icon-folder_special:before { + content: "\e617"; +} +.icon-font_download:before { + content: "\e167"; +} +.icon-format_align_center:before { + content: "\e234"; +} +.icon-format_align_justify:before { + content: "\e235"; +} +.icon-format_align_left:before { + content: "\e236"; +} +.icon-format_align_right:before { + content: "\e237"; +} +.icon-format_bold:before { + content: "\e238"; +} +.icon-format_clear:before { + content: "\e239"; +} +.icon-format_color_fill:before { + content: "\e23a"; +} +.icon-format_color_reset:before { + content: "\e23b"; +} +.icon-format_color_text:before { + content: "\e23c"; +} +.icon-format_indent_decrease:before { + content: "\e23d"; +} +.icon-format_indent_increase:before { + content: "\e23e"; +} +.icon-format_italic:before { + content: "\e23f"; +} +.icon-format_line_spacing:before { + content: "\e240"; +} +.icon-format_list_bulleted:before { + content: "\e241"; +} +.icon-format_list_numbered:before { + content: "\e242"; +} +.icon-format_paint:before { + content: "\e243"; +} +.icon-format_quote:before { + content: "\e244"; +} +.icon-format_shapes:before { + content: "\e25e"; +} +.icon-format_size:before { + content: "\e245"; +} +.icon-format_strikethrough:before { + content: "\e246"; +} +.icon-format_textdirection_l_to_r:before { + content: "\e247"; +} +.icon-format_textdirection_r_to_l:before { + content: "\e248"; +} +.icon-format_underlined:before { + content: "\e249"; +} +.icon-question_answer:before { + content: "\e8af"; +} +.icon-forward4:before { + content: "\e154"; +} +.icon-forward_10:before { + content: "\e056"; +} +.icon-forward_30:before { + content: "\e057"; +} +.icon-forward_5:before { + content: "\e058"; +} +.icon-free_breakfast:before { + content: "\eb44"; +} +.icon-fullscreen:before { + content: "\e5d0"; +} +.icon-fullscreen_exit:before { + content: "\e5d1"; +} +.icon-functions:before { + content: "\e24a"; +} +.icon-g_translate:before { + content: "\e927"; +} +.icon-games:before { + content: "\e021"; +} +.icon-gavel:before { + content: "\e90e"; +} +.icon-gesture:before { + content: "\e155"; +} +.icon-gif:before { + content: "\e908"; +} +.icon-goat:before { + content: "\e901"; +} +.icon-golf_course:before { + content: "\eb45"; +} +.icon-my_location:before { + content: "\e55c"; +} +.icon-location_searching:before { + content: "\e1b7"; +} +.icon-location_disabled:before { + content: "\e1b6"; +} +.icon-star:before { + content: "\e838"; +} +.icon-gradient:before { + content: "\e3e9"; +} +.icon-grain:before { + content: "\e3ea"; +} +.icon-graphic_eq:before { + content: "\e1b8"; +} +.icon-grid_off:before { + content: "\e3eb"; +} +.icon-grid_on:before { + content: "\e3ec"; +} +.icon-people:before { + content: "\e7fb"; +} +.icon-group_add:before { + content: "\e7f0"; +} +.icon-group_work:before { + content: "\e886"; +} +.icon-hd:before { + content: "\e052"; +} +.icon-hdr_off:before { + content: "\e3ed"; +} +.icon-hdr_on:before { + content: "\e3ee"; +} +.icon-hdr_strong:before { + content: "\e3f1"; +} +.icon-hdr_weak:before { + content: "\e3f2"; +} +.icon-headset:before { + content: "\e310"; +} +.icon-headset_mic:before { + content: "\e311"; +} +.icon-healing:before { + content: "\e3f3"; +} +.icon-hearing:before { + content: "\e023"; +} +.icon-help:before { + content: "\e887"; +} +.icon-help_outline:before { + content: "\e8fd"; +} +.icon-high_quality:before { + content: "\e024"; +} +.icon-highlight:before { + content: "\e25f"; +} +.icon-highlight_off:before { + content: "\e888"; +} +.icon-restore:before { + content: "\e8b3"; +} +.icon-home4:before { + content: "\e88a"; +} +.icon-hot_tub:before { + content: "\eb46"; +} +.icon-local_hotel:before { + content: "\e549"; +} +.icon-hourglass_empty:before { + content: "\e88b"; +} +.icon-hourglass_full:before { + content: "\e88c"; +} +.icon-http:before { + content: "\e902"; +} +.icon-lock2:before { + content: "\e897"; +} +.icon-photo:before { + content: "\e410"; +} +.icon-image_aspect_ratio:before { + content: "\e3f5"; +} +.icon-import_contacts:before { + content: "\e0e0"; +} +.icon-import_export:before { + content: "\e0c3"; +} +.icon-important_devices:before { + content: "\e912"; +} +.icon-inbox:before { + content: "\e156"; +} +.icon-indeterminate_check_box:before { + content: "\e909"; +} +.icon-info2:before { + content: "\e88e"; +} +.icon-info_outline:before { + content: "\e88f"; +} +.icon-input:before { + content: "\e890"; +} +.icon-insert_comment:before { + content: "\e24c"; +} +.icon-insert_drive_file:before { + content: "\e24d"; +} +.icon-tag_faces:before { + content: "\e420"; +} +.icon-link2:before { + content: "\e157"; +} +.icon-invert_colors:before { + content: "\e891"; +} +.icon-invert_colors_off:before { + content: "\e0c4"; +} +.icon-iso:before { + content: "\e3f6"; +} +.icon-keyboard2:before { + content: "\e312"; +} +.icon-keyboard_arrow_down:before { + content: "\e313"; +} +.icon-keyboard_arrow_left:before { + content: "\e314"; +} +.icon-keyboard_arrow_right:before { + content: "\e315"; +} +.icon-keyboard_arrow_up:before { + content: "\e316"; +} +.icon-keyboard_backspace:before { + content: "\e317"; +} +.icon-keyboard_capslock:before { + content: "\e318"; +} +.icon-keyboard_hide:before { + content: "\e31a"; +} +.icon-keyboard_return:before { + content: "\e31b"; +} +.icon-keyboard_tab:before { + content: "\e31c"; +} +.icon-keyboard_voice:before { + content: "\e31d"; +} +.icon-kitchen:before { + content: "\eb47"; +} +.icon-label:before { + content: "\e892"; +} +.icon-label_outline:before { + content: "\e893"; +} +.icon-language:before { + content: "\e894"; +} +.icon-laptop_chromebook:before { + content: "\e31f"; +} +.icon-laptop_mac:before { + content: "\e320"; +} +.icon-laptop_windows:before { + content: "\e321"; +} +.icon-last_page:before { + content: "\e5dd"; +} +.icon-open_in_new:before { + content: "\e89e"; +} +.icon-layers:before { + content: "\e53b"; +} +.icon-layers_clear:before { + content: "\e53c"; +} +.icon-leak_add:before { + content: "\e3f8"; +} +.icon-leak_remove:before { + content: "\e3f9"; +} +.icon-lens:before { + content: "\e3fa"; +} +.icon-library_books:before { + content: "\e02f"; +} +.icon-library_music:before { + content: "\e030"; +} +.icon-lightbulb_outline:before { + content: "\e90f"; +} +.icon-line_style:before { + content: "\e919"; +} +.icon-line_weight:before { + content: "\e91a"; +} +.icon-linear_scale:before { + content: "\e260"; +} +.icon-linked_camera:before { + content: "\e438"; +} +.icon-list3:before { + content: "\e896"; +} +.icon-live_help:before { + content: "\e0c6"; +} +.icon-live_tv:before { + content: "\e639"; +} +.icon-local_play:before { + content: "\e553"; +} +.icon-local_airport:before { + content: "\e53d"; +} +.icon-local_atm:before { + content: "\e53e"; +} +.icon-local_bar:before { + content: "\e540"; +} +.icon-local_cafe:before { + content: "\e541"; +} +.icon-local_car_wash:before { + content: "\e542"; +} +.icon-local_convenience_store:before { + content: "\e543"; +} +.icon-restaurant_menu:before { + content: "\e561"; +} +.icon-local_drink:before { + content: "\e544"; +} +.icon-local_florist:before { + content: "\e545"; +} +.icon-local_gas_station:before { + content: "\e546"; +} +.icon-shopping_cart:before { + content: "\e8cc"; +} +.icon-local_hospital:before { + content: "\e548"; +} +.icon-local_laundry_service:before { + content: "\e54a"; +} +.icon-local_library:before { + content: "\e54b"; +} +.icon-local_mall:before { + content: "\e54c"; +} +.icon-theaters:before { + content: "\e8da"; +} +.icon-local_offer:before { + content: "\e54e"; +} +.icon-local_parking:before { + content: "\e54f"; +} +.icon-local_pharmacy:before { + content: "\e550"; +} +.icon-local_pizza:before { + content: "\e552"; +} +.icon-print:before { + content: "\e8ad"; +} +.icon-local_shipping:before { + content: "\e558"; +} +.icon-local_taxi:before { + content: "\e559"; +} +.icon-location_city:before { + content: "\e7f1"; +} +.icon-location_off:before { + content: "\e0c7"; +} +.icon-room:before { + content: "\e8b4"; +} +.icon-lock_open:before { + content: "\e898"; +} +.icon-lock_outline:before { + content: "\e899"; +} +.icon-looks:before { + content: "\e3fc"; +} +.icon-looks_3:before { + content: "\e3fb"; +} +.icon-looks_4:before { + content: "\e3fd"; +} +.icon-looks_5:before { + content: "\e3fe"; +} +.icon-looks_6:before { + content: "\e3ff"; +} +.icon-looks_one:before { + content: "\e400"; +} +.icon-looks_two:before { + content: "\e401"; +} +.icon-sync:before { + content: "\e627"; +} +.icon-loupe:before { + content: "\e402"; +} +.icon-low_priority:before { + content: "\e16d"; +} +.icon-loyalty:before { + content: "\e89a"; +} +.icon-mail_outline:before { + content: "\e0e1"; +} +.icon-map3:before { + content: "\e55b"; +} +.icon-markunread_mailbox:before { + content: "\e89b"; +} +.icon-memory:before { + content: "\e322"; +} +.icon-menu5:before { + content: "\e5d2"; +} +.icon-message:before { + content: "\e0c9"; +} +.icon-mic2:before { + content: "\e029"; +} +.icon-mic_none:before { + content: "\e02a"; +} +.icon-mic_off:before { + content: "\e02b"; +} +.icon-mms:before { + content: "\e618"; +} +.icon-mode_comment:before { + content: "\e253"; +} +.icon-monetization_on:before { + content: "\e263"; +} +.icon-money_off:before { + content: "\e25c"; +} +.icon-monochrome_photos:before { + content: "\e403"; +} +.icon-mood_bad:before { + content: "\e7f3"; +} +.icon-more:before { + content: "\e619"; +} +.icon-more_horiz:before { + content: "\e5d3"; +} +.icon-more_vert:before { + content: "\e5d4"; +} +.icon-motorcycle:before { + content: "\e91b"; +} +.icon-mouse:before { + content: "\e323"; +} +.icon-move_to_inbox:before { + content: "\e168"; +} +.icon-movie_creation:before { + content: "\e404"; +} +.icon-movie_filter:before { + content: "\e43a"; +} +.icon-multiline_chart:before { + content: "\e6df"; +} +.icon-music_note:before { + content: "\e405"; +} +.icon-music_video:before { + content: "\e063"; +} +.icon-nature:before { + content: "\e406"; +} +.icon-nature_people:before { + content: "\e407"; +} +.icon-navigation:before { + content: "\e55d"; +} +.icon-near_me:before { + content: "\e569"; +} +.icon-network_cell:before { + content: "\e1b9"; +} +.icon-network_check:before { + content: "\e640"; +} +.icon-network_locked:before { + content: "\e61a"; +} +.icon-network_wifi:before { + content: "\e1ba"; +} +.icon-new_releases:before { + content: "\e031"; +} +.icon-next_week:before { + content: "\e16a"; +} +.icon-nfc:before { + content: "\e1bb"; +} +.icon-no_encryption:before { + content: "\e641"; +} +.icon-signal_cellular_no_sim:before { + content: "\e1ce"; +} +.icon-note:before { + content: "\e06f"; +} +.icon-note_add:before { + content: "\e89c"; +} +.icon-notifications:before { + content: "\e7f4"; +} +.icon-notifications_active:before { + content: "\e7f7"; +} +.icon-notifications_none:before { + content: "\e7f5"; +} +.icon-notifications_off:before { + content: "\e7f6"; +} +.icon-notifications_paused:before { + content: "\e7f8"; +} +.icon-offline_pin:before { + content: "\e90a"; +} +.icon-ondemand_video:before { + content: "\e63a"; +} +.icon-opacity:before { + content: "\e91c"; +} +.icon-open_in_browser:before { + content: "\e89d"; +} +.icon-open_with:before { + content: "\e89f"; +} +.icon-pages:before { + content: "\e7f9"; +} +.icon-pageview:before { + content: "\e8a0"; +} +.icon-pan_tool:before { + content: "\e925"; +} +.icon-panorama:before { + content: "\e40b"; +} +.icon-radio_button_unchecked:before { + content: "\e836"; +} +.icon-panorama_horizontal:before { + content: "\e40d"; +} +.icon-panorama_vertical:before { + content: "\e40e"; +} +.icon-panorama_wide_angle:before { + content: "\e40f"; +} +.icon-party_mode:before { + content: "\e7fa"; +} +.icon-pause3:before { + content: "\e034"; +} +.icon-pause_circle_filled:before { + content: "\e035"; +} +.icon-pause_circle_outline:before { + content: "\e036"; +} +.icon-people_outline:before { + content: "\e7fc"; +} +.icon-perm_camera_mic:before { + content: "\e8a2"; +} +.icon-perm_contact_calendar:before { + content: "\e8a3"; +} +.icon-perm_data_setting:before { + content: "\e8a4"; +} +.icon-perm_device_information:before { + content: "\e8a5"; +} +.icon-person_outline:before { + content: "\e7ff"; +} +.icon-perm_media:before { + content: "\e8a7"; +} +.icon-perm_phone_msg:before { + content: "\e8a8"; +} +.icon-perm_scan_wifi:before { + content: "\e8a9"; +} +.icon-person:before { + content: "\e7fd"; +} +.icon-person_add:before { + content: "\e7fe"; +} +.icon-person_pin:before { + content: "\e55a"; +} +.icon-person_pin_circle:before { + content: "\e56a"; +} +.icon-personal_video:before { + content: "\e63b"; +} +.icon-pets:before { + content: "\e91d"; +} +.icon-phone_android:before { + content: "\e324"; +} +.icon-phone_bluetooth_speaker:before { + content: "\e61b"; +} +.icon-phone_forwarded:before { + content: "\e61c"; +} +.icon-phone_in_talk:before { + content: "\e61d"; +} +.icon-phone_iphone:before { + content: "\e325"; +} +.icon-phone_locked:before { + content: "\e61e"; +} +.icon-phone_missed:before { + content: "\e61f"; +} +.icon-phone_paused:before { + content: "\e620"; +} +.icon-phonelink_erase:before { + content: "\e0db"; +} +.icon-phonelink_lock:before { + content: "\e0dc"; +} +.icon-phonelink_off:before { + content: "\e327"; +} +.icon-phonelink_ring:before { + content: "\e0dd"; +} +.icon-phonelink_setup:before { + content: "\e0de"; +} +.icon-photo_album:before { + content: "\e411"; +} +.icon-photo_filter:before { + content: "\e43b"; +} +.icon-photo_size_select_actual:before { + content: "\e432"; +} +.icon-photo_size_select_large:before { + content: "\e433"; +} +.icon-photo_size_select_small:before { + content: "\e434"; +} +.icon-picture_as_pdf:before { + content: "\e415"; +} +.icon-picture_in_picture:before { + content: "\e8aa"; +} +.icon-picture_in_picture_alt:before { + content: "\e911"; +} +.icon-pie_chart:before { + content: "\e6c4"; +} +.icon-pie_chart_outlined:before { + content: "\e6c5"; +} +.icon-pin_drop:before { + content: "\e55e"; +} +.icon-play_arrow:before { + content: "\e037"; +} +.icon-play_circle_filled:before { + content: "\e038"; +} +.icon-play_circle_outline:before { + content: "\e039"; +} +.icon-play_for_work:before { + content: "\e906"; +} +.icon-playlist_add:before { + content: "\e03b"; +} +.icon-playlist_add_check:before { + content: "\e065"; +} +.icon-playlist_play:before { + content: "\e05f"; +} +.icon-plus_one:before { + content: "\e800"; +} +.icon-polymer:before { + content: "\e8ab"; +} +.icon-pool:before { + content: "\eb48"; +} +.icon-portable_wifi_off:before { + content: "\e0ce"; +} +.icon-portrait:before { + content: "\e416"; +} +.icon-power2:before { + content: "\e63c"; +} +.icon-power_input:before { + content: "\e336"; +} +.icon-power_settings_new:before { + content: "\e8ac"; +} +.icon-pregnant_woman:before { + content: "\e91e"; +} +.icon-present_to_all:before { + content: "\e0df"; +} +.icon-priority_high:before { + content: "\e645"; +} +.icon-public:before { + content: "\e80b"; +} +.icon-publish:before { + content: "\e255"; +} +.icon-queue_music:before { + content: "\e03d"; +} +.icon-queue_play_next:before { + content: "\e066"; +} +.icon-radio:before { + content: "\e03e"; +} +.icon-radio_button_checked:before { + content: "\e837"; +} +.icon-rate_review:before { + content: "\e560"; +} +.icon-receipt:before { + content: "\e8b0"; +} +.icon-recent_actors:before { + content: "\e03f"; +} +.icon-record_voice_over:before { + content: "\e91f"; +} +.icon-redo3:before { + content: "\e15a"; +} +.icon-refresh:before { + content: "\e5d5"; +} +.icon-remove:before { + content: "\e15b"; +} +.icon-remove_circle_outline:before { + content: "\e15d"; +} +.icon-remove_from_queue:before { + content: "\e067"; +} +.icon-visibility:before { + content: "\e8f4"; +} +.icon-remove_shopping_cart:before { + content: "\e928"; +} +.icon-reorder:before { + content: "\e8fe"; +} +.icon-repeat:before { + content: "\e040"; +} +.icon-repeat_one:before { + content: "\e041"; +} +.icon-replay:before { + content: "\e042"; +} +.icon-replay_10:before { + content: "\e059"; +} +.icon-replay_30:before { + content: "\e05a"; +} +.icon-replay_5:before { + content: "\e05b"; +} +.icon-reply2:before { + content: "\e15e"; +} +.icon-reply_all:before { + content: "\e15f"; +} +.icon-report:before { + content: "\e160"; +} +.icon-warning2:before { + content: "\e002"; +} +.icon-restaurant:before { + content: "\e56c"; +} +.icon-restore_page:before { + content: "\e929"; +} +.icon-ring_volume:before { + content: "\e0d1"; +} +.icon-room_service:before { + content: "\eb49"; +} +.icon-rotate_90_degrees_ccw:before { + content: "\e418"; +} +.icon-rotate_left:before { + content: "\e419"; +} +.icon-rotate_right:before { + content: "\e41a"; +} +.icon-rounded_corner:before { + content: "\e920"; +} +.icon-router:before { + content: "\e328"; +} +.icon-rowing:before { + content: "\e921"; +} +.icon-rss_feed:before { + content: "\e0e5"; +} +.icon-rv_hookup:before { + content: "\e642"; +} +.icon-satellite:before { + content: "\e562"; +} +.icon-save:before { + content: "\e161"; +} +.icon-scanner:before { + content: "\e329"; +} +.icon-school:before { + content: "\e80c"; +} +.icon-screen_lock_landscape:before { + content: "\e1be"; +} +.icon-screen_lock_portrait:before { + content: "\e1bf"; +} +.icon-screen_lock_rotation:before { + content: "\e1c0"; +} +.icon-screen_rotation:before { + content: "\e1c1"; +} +.icon-screen_share:before { + content: "\e0e2"; +} +.icon-sd_storage:before { + content: "\e1c2"; +} +.icon-search2:before { + content: "\e8b6"; +} +.icon-security:before { + content: "\e32a"; +} +.icon-select_all:before { + content: "\e162"; +} +.icon-send:before { + content: "\e163"; +} +.icon-sentiment_dissatisfied:before { + content: "\e811"; +} +.icon-sentiment_neutral:before { + content: "\e812"; +} +.icon-sentiment_satisfied:before { + content: "\e813"; +} +.icon-sentiment_very_dissatisfied:before { + content: "\e814"; +} +.icon-sentiment_very_satisfied:before { + content: "\e815"; +} +.icon-settings:before { + content: "\e8b8"; +} +.icon-settings_applications:before { + content: "\e8b9"; +} +.icon-settings_backup_restore:before { + content: "\e8ba"; +} +.icon-settings_bluetooth:before { + content: "\e8bb"; +} +.icon-settings_brightness:before { + content: "\e8bd"; +} +.icon-settings_cell:before { + content: "\e8bc"; +} +.icon-settings_ethernet:before { + content: "\e8be"; +} +.icon-settings_input_antenna:before { + content: "\e8bf"; +} +.icon-settings_input_composite:before { + content: "\e8c1"; +} +.icon-settings_input_hdmi:before { + content: "\e8c2"; +} +.icon-settings_input_svideo:before { + content: "\e8c3"; +} +.icon-settings_overscan:before { + content: "\e8c4"; +} +.icon-settings_phone:before { + content: "\e8c5"; +} +.icon-settings_power:before { + content: "\e8c6"; +} +.icon-settings_remote:before { + content: "\e8c7"; +} +.icon-settings_system_daydream:before { + content: "\e1c3"; +} +.icon-settings_voice:before { + content: "\e8c8"; +} +.icon-share3:before { + content: "\e80d"; +} +.icon-shop:before { + content: "\e8c9"; +} +.icon-shop_two:before { + content: "\e8ca"; +} +.icon-shopping_basket:before { + content: "\e8cb"; +} +.icon-short_text:before { + content: "\e261"; +} +.icon-show_chart:before { + content: "\e6e1"; +} +.icon-shuffle2:before { + content: "\e043"; +} +.icon-signal_cellular_4_bar:before { + content: "\e1c8"; +} +.icon-signal_cellular_connected_no_internet_4_bar:before { + content: "\e1cd"; +} +.icon-signal_cellular_null:before { + content: "\e1cf"; +} +.icon-signal_cellular_off:before { + content: "\e1d0"; +} +.icon-signal_wifi_4_bar:before { + content: "\e1d8"; +} +.icon-signal_wifi_4_bar_lock:before { + content: "\e1d9"; +} +.icon-signal_wifi_off:before { + content: "\e1da"; +} +.icon-sim_card:before { + content: "\e32b"; +} +.icon-sim_card_alert:before { + content: "\e624"; +} +.icon-skip_next:before { + content: "\e044"; +} +.icon-skip_previous:before { + content: "\e045"; +} +.icon-slideshow:before { + content: "\e41b"; +} +.icon-slow_motion_video:before { + content: "\e068"; +} +.icon-stay_primary_portrait:before { + content: "\e0d6"; +} +.icon-smoke_free:before { + content: "\eb4a"; +} +.icon-smoking_rooms:before { + content: "\eb4b"; +} +.icon-textsms:before { + content: "\e0d8"; +} +.icon-snooze:before { + content: "\e046"; +} +.icon-sort:before { + content: "\e164"; +} +.icon-sort_by_alpha:before { + content: "\e053"; +} +.icon-spa:before { + content: "\eb4c"; +} +.icon-space_bar:before { + content: "\e256"; +} +.icon-speaker:before { + content: "\e32d"; +} +.icon-speaker_group:before { + content: "\e32e"; +} +.icon-speaker_notes:before { + content: "\e8cd"; +} +.icon-speaker_notes_off:before { + content: "\e92a"; +} +.icon-speaker_phone:before { + content: "\e0d2"; +} +.icon-spellcheck:before { + content: "\e8ce"; +} +.icon-star_border:before { + content: "\e83a"; +} +.icon-star_half:before { + content: "\e839"; +} +.icon-stars:before { + content: "\e8d0"; +} +.icon-stay_primary_landscape:before { + content: "\e0d5"; +} +.icon-stop3:before { + content: "\e047"; +} +.icon-stop_screen_share:before { + content: "\e0e3"; +} +.icon-storage:before { + content: "\e1db"; +} +.icon-store_mall_directory:before { + content: "\e563"; +} +.icon-straighten:before { + content: "\e41c"; +} +.icon-streetview:before { + content: "\e56e"; +} +.icon-strikethrough_s:before { + content: "\e257"; +} +.icon-style:before { + content: "\e41d"; +} +.icon-subdirectory_arrow_left:before { + content: "\e5d9"; +} +.icon-subdirectory_arrow_right:before { + content: "\e5da"; +} +.icon-subject:before { + content: "\e8d2"; +} +.icon-subscriptions:before { + content: "\e064"; +} +.icon-subtitles:before { + content: "\e048"; +} +.icon-subway:before { + content: "\e56f"; +} +.icon-supervisor_account:before { + content: "\e8d3"; +} +.icon-surround_sound:before { + content: "\e049"; +} +.icon-swap_calls:before { + content: "\e0d7"; +} +.icon-swap_horiz:before { + content: "\e8d4"; +} +.icon-swap_vert:before { + content: "\e8d5"; +} +.icon-swap_vertical_circle:before { + content: "\e8d6"; +} +.icon-switch_camera:before { + content: "\e41e"; +} +.icon-switch_video:before { + content: "\e41f"; +} +.icon-sync_disabled:before { + content: "\e628"; +} +.icon-sync_problem:before { + content: "\e629"; +} +.icon-system_update:before { + content: "\e62a"; +} +.icon-system_update_alt:before { + content: "\e8d7"; +} +.icon-tab2:before { + content: "\e8d8"; +} +.icon-tab_unselected:before { + content: "\e8d9"; +} +.icon-tablet2:before { + content: "\e32f"; +} +.icon-tablet_android:before { + content: "\e330"; +} +.icon-tablet_mac:before { + content: "\e331"; +} +.icon-tap_and_play:before { + content: "\e62b"; +} +.icon-text_fields:before { + content: "\e262"; +} +.icon-text_format:before { + content: "\e165"; +} +.icon-texture:before { + content: "\e421"; +} +.icon-thumb_down:before { + content: "\e8db"; +} +.icon-thumb_up:before { + content: "\e8dc"; +} +.icon-thumbs_up_down:before { + content: "\e8dd"; +} +.icon-timelapse:before { + content: "\e422"; +} +.icon-timeline:before { + content: "\e922"; +} +.icon-timer:before { + content: "\e425"; +} +.icon-timer_10:before { + content: "\e423"; +} +.icon-timer_3:before { + content: "\e424"; +} +.icon-timer_off:before { + content: "\e426"; +} +.icon-title:before { + content: "\e264"; +} +.icon-toc:before { + content: "\e8de"; +} +.icon-today:before { + content: "\e8df"; +} +.icon-toll:before { + content: "\e8e0"; +} +.icon-tonality:before { + content: "\e427"; +} +.icon-touch_app:before { + content: "\e913"; +} +.icon-toys:before { + content: "\e332"; +} +.icon-track_changes:before { + content: "\e8e1"; +} +.icon-traffic:before { + content: "\e565"; +} +.icon-train:before { + content: "\e570"; +} +.icon-tram:before { + content: "\e571"; +} +.icon-transfer_within_a_station:before { + content: "\e572"; +} +.icon-transform:before { + content: "\e428"; +} +.icon-translate:before { + content: "\e8e2"; +} +.icon-trending_down:before { + content: "\e8e3"; +} +.icon-trending_flat:before { + content: "\e8e4"; +} +.icon-trending_up:before { + content: "\e8e5"; +} +.icon-tune:before { + content: "\e429"; +} +.icon-tv2:before { + content: "\e333"; +} +.icon-unarchive:before { + content: "\e169"; +} +.icon-undo3:before { + content: "\e166"; +} +.icon-unfold_less:before { + content: "\e5d6"; +} +.icon-unfold_more:before { + content: "\e5d7"; +} +.icon-update:before { + content: "\e923"; +} +.icon-usb:before { + content: "\e1e0"; +} +.icon-verified_user:before { + content: "\e8e8"; +} +.icon-vertical_align_bottom:before { + content: "\e258"; +} +.icon-vertical_align_center:before { + content: "\e259"; +} +.icon-vertical_align_top:before { + content: "\e25a"; +} +.icon-vibration:before { + content: "\e62d"; +} +.icon-video_call:before { + content: "\e070"; +} +.icon-video_label:before { + content: "\e071"; +} +.icon-video_library:before { + content: "\e04a"; +} +.icon-videocam:before { + content: "\e04b"; +} +.icon-videocam_off:before { + content: "\e04c"; +} +.icon-videogame_asset:before { + content: "\e338"; +} +.icon-view_agenda:before { + content: "\e8e9"; +} +.icon-view_array:before { + content: "\e8ea"; +} +.icon-view_carousel:before { + content: "\e8eb"; +} +.icon-view_column:before { + content: "\e8ec"; +} +.icon-view_comfy:before { + content: "\e42a"; +} +.icon-view_compact:before { + content: "\e42b"; +} +.icon-view_day:before { + content: "\e8ed"; +} +.icon-view_headline:before { + content: "\e8ee"; +} +.icon-view_list:before { + content: "\e8ef"; +} +.icon-view_module:before { + content: "\e8f0"; +} +.icon-view_quilt:before { + content: "\e8f1"; +} +.icon-view_stream:before { + content: "\e8f2"; +} +.icon-view_week:before { + content: "\e8f3"; +} +.icon-vignette:before { + content: "\e435"; +} +.icon-visibility_off:before { + content: "\e8f5"; +} +.icon-voice_chat:before { + content: "\e62e"; +} +.icon-voicemail:before { + content: "\e0d9"; +} +.icon-volume_down:before { + content: "\e04d"; +} +.icon-volume_mute:before { + content: "\e04e"; +} +.icon-volume_off:before { + content: "\e04f"; +} +.icon-volume_up:before { + content: "\e050"; +} +.icon-vpn_key:before { + content: "\e0da"; +} +.icon-vpn_lock:before { + content: "\e62f"; +} +.icon-wallpaper:before { + content: "\e1bc"; +} +.icon-watch:before { + content: "\e334"; +} +.icon-watch_later:before { + content: "\e924"; +} +.icon-wb_auto:before { + content: "\e42c"; +} +.icon-wb_incandescent:before { + content: "\e42e"; +} +.icon-wb_iridescent:before { + content: "\e436"; +} +.icon-wb_sunny:before { + content: "\e430"; +} +.icon-wc:before { + content: "\e63d"; +} +.icon-web:before { + content: "\e051"; +} +.icon-web_asset:before { + content: "\e069"; +} +.icon-weekend:before { + content: "\e16b"; +} +.icon-whatshot:before { + content: "\e80e"; +} +.icon-widgets:before { + content: "\e1bd"; +} +.icon-wifi:before { + content: "\e63e"; +} +.icon-wifi_lock:before { + content: "\e1e1"; +} +.icon-wifi_tethering:before { + content: "\e1e2"; +} +.icon-work:before { + content: "\e8f9"; +} +.icon-wrap_text:before { + content: "\e25b"; +} +.icon-youtube_searched_for:before { + content: "\e8fa"; +} +.icon-zoom_in:before { + content: "\e8ff"; +} +.icon-zoom_out:before { + content: "\e907"; +} +.icon-zoom_out_map:before { + content: "\e56b"; +} .icon-home:before { - content: "\e901"; + content: "\e910"; } .icon-home2:before { - content: "\e902"; + content: "\e92c"; } .icon-home3:before { - content: "\e903"; + content: "\e92d"; } .icon-office:before { - content: "\e904"; + content: "\e92e"; } .icon-newspaper:before { - content: "\e905"; + content: "\e92f"; } .icon-pencil:before { - content: "\e906"; + content: "\e930"; } .icon-pencil2:before { - content: "\e907"; + content: "\e931"; } .icon-quill:before { - content: "\e908"; + content: "\e932"; } .icon-pen:before { - content: "\e909"; + content: "\e933"; } .icon-blog:before { - content: "\e90a"; + content: "\e934"; } .icon-eyedropper:before { - content: "\e90b"; + content: "\e935"; } .icon-droplet:before { - content: "\e90c"; + content: "\e936"; } .icon-paint-format:before { - content: "\e90d"; + content: "\e937"; } .icon-image:before { - content: "\e90e"; + content: "\e938"; } .icon-images:before { - content: "\e90f"; + content: "\e939"; } .icon-camera:before { - content: "\e910"; + content: "\e93a"; } .icon-headphones:before { - content: "\e911"; + content: "\e93b"; } .icon-music:before { - content: "\e912"; + content: "\e93c"; } .icon-play:before { - content: "\e913"; + content: "\e93d"; } .icon-film:before { - content: "\e914"; + content: "\e93e"; } .icon-video-camera:before { - content: "\e915"; + content: "\e93f"; } .icon-dice:before { - content: "\e916"; + content: "\e940"; } .icon-pacman:before { - content: "\e917"; + content: "\e941"; } .icon-spades:before { - content: "\e918"; + content: "\e942"; } .icon-clubs:before { - content: "\e919"; + content: "\e943"; } .icon-diamonds:before { - content: "\e91a"; + content: "\e944"; } .icon-bullhorn:before { - content: "\e91b"; + content: "\e945"; } .icon-connection:before { - content: "\e91c"; + content: "\e946"; } .icon-podcast:before { - content: "\e91d"; + content: "\e947"; } .icon-feed:before { - content: "\e91e"; + content: "\e948"; } .icon-mic:before { - content: "\e91f"; + content: "\e949"; } .icon-book:before { - content: "\e920"; + content: "\e94a"; } .icon-books:before { - content: "\e921"; + content: "\e94b"; } .icon-library:before { - content: "\e922"; + content: "\e94c"; } .icon-file-text:before { - content: "\e923"; + content: "\e94d"; } .icon-profile:before { - content: "\e924"; + content: "\e94e"; } .icon-file-empty:before { - content: "\e925"; + content: "\e94f"; } .icon-files-empty:before { - content: "\e926"; + content: "\e950"; } .icon-file-text2:before { - content: "\e927"; + content: "\e951"; } .icon-file-picture:before { - content: "\e928"; + content: "\e952"; } .icon-file-music:before { - content: "\e929"; + content: "\e953"; } .icon-file-play:before { - content: "\e92a"; + content: "\e954"; } .icon-file-video:before { - content: "\e92b"; + content: "\e955"; } .icon-file-zip:before { - content: "\e92c"; + content: "\e956"; } .icon-copy:before { - content: "\e92d"; + content: "\e957"; } .icon-paste:before { - content: "\e92e"; + content: "\e958"; } .icon-stack:before { - content: "\e92f"; + content: "\e959"; } .icon-folder:before { - content: "\e930"; + content: "\e95a"; } .icon-folder-open:before { - content: "\e931"; + content: "\e95b"; } .icon-folder-plus:before { - content: "\e932"; + content: "\e95c"; } .icon-folder-minus:before { - content: "\e933"; + content: "\e95d"; } .icon-folder-download:before { - content: "\e934"; + content: "\e95e"; } .icon-folder-upload:before { - content: "\e935"; + content: "\e95f"; } .icon-price-tag:before { - content: "\e936"; + content: "\e960"; } .icon-price-tags:before { - content: "\e937"; + content: "\e961"; } .icon-barcode:before { - content: "\e938"; + content: "\e962"; } .icon-qrcode:before { - content: "\e939"; + content: "\e963"; } .icon-ticket:before { - content: "\e93a"; + content: "\e964"; } .icon-cart:before { - content: "\e93b"; + content: "\e965"; } .icon-coin-dollar:before { - content: "\e93c"; + content: "\e966"; } .icon-coin-euro:before { - content: "\e93d"; + content: "\e967"; } .icon-coin-pound:before { - content: "\e93e"; + content: "\e968"; } .icon-coin-yen:before { - content: "\e93f"; + content: "\e969"; } .icon-credit-card:before { - content: "\e940"; + content: "\e96a"; } .icon-calculator:before { - content: "\e941"; + content: "\e96b"; } .icon-lifebuoy:before { - content: "\e942"; + content: "\e96c"; } .icon-phone:before { - content: "\e943"; + content: "\e96d"; } .icon-phone-hang-up:before { - content: "\e944"; + content: "\e96e"; } .icon-address-book:before { - content: "\e945"; + content: "\e96f"; } .icon-envelop:before { - content: "\e946"; + content: "\e970"; } .icon-pushpin:before { - content: "\e947"; + content: "\e971"; } .icon-location:before { - content: "\e948"; + content: "\e972"; } .icon-location2:before { - content: "\e949"; + content: "\e973"; } .icon-compass:before { - content: "\e94a"; + content: "\e974"; } .icon-compass2:before { - content: "\e94b"; + content: "\e975"; } .icon-map:before { - content: "\e94c"; + content: "\e976"; } .icon-map2:before { - content: "\e94d"; + content: "\e977"; } .icon-history:before { - content: "\e94e"; + content: "\e978"; } .icon-clock:before { - content: "\e94f"; + content: "\e979"; } .icon-clock2:before { - content: "\e950"; + content: "\e97a"; } .icon-alarm:before { - content: "\e951"; + content: "\e97b"; } .icon-bell:before { - content: "\e952"; + content: "\e97c"; } .icon-stopwatch:before { - content: "\e953"; + content: "\e97d"; } .icon-calendar:before { - content: "\e954"; + content: "\e97e"; } .icon-printer:before { - content: "\e955"; + content: "\e97f"; } .icon-keyboard:before { - content: "\e956"; + content: "\e980"; } .icon-display:before { - content: "\e957"; + content: "\e981"; } .icon-laptop:before { - content: "\e958"; + content: "\e982"; } .icon-mobile:before { - content: "\e959"; + content: "\e983"; } .icon-mobile2:before { - content: "\e95a"; + content: "\e984"; } .icon-tablet:before { - content: "\e95b"; + content: "\e985"; } .icon-tv:before { - content: "\e95c"; + content: "\e986"; } .icon-drawer:before { - content: "\e95d"; + content: "\e987"; } .icon-drawer2:before { - content: "\e95e"; + content: "\e988"; } .icon-box-add:before { - content: "\e95f"; + content: "\e989"; } .icon-box-remove:before { - content: "\e960"; + content: "\e98a"; } .icon-download:before { - content: "\e961"; + content: "\e98b"; } .icon-upload:before { - content: "\e962"; + content: "\e98c"; } .icon-floppy-disk:before { - content: "\e963"; + content: "\e98d"; } .icon-drive:before { - content: "\e964"; + content: "\e98e"; } .icon-database:before { - content: "\e965"; + content: "\e98f"; } .icon-undo:before { - content: "\e966"; + content: "\e990"; } .icon-redo:before { - content: "\e967"; + content: "\e991"; } .icon-undo2:before { - content: "\e968"; + content: "\e992"; } .icon-redo2:before { - content: "\e969"; + content: "\e993"; } .icon-forward:before { - content: "\e96a"; + content: "\e994"; } .icon-reply:before { - content: "\e96b"; + content: "\e995"; } .icon-bubble:before { - content: "\e96c"; + content: "\e996"; } .icon-bubbles:before { - content: "\e96d"; + content: "\e997"; } .icon-bubbles2:before { - content: "\e96e"; + content: "\e998"; } .icon-bubble2:before { - content: "\e96f"; + content: "\e999"; } .icon-bubbles3:before { - content: "\e970"; + content: "\e99a"; } .icon-bubbles4:before { - content: "\e971"; + content: "\e99b"; } .icon-user:before { - content: "\e900"; + content: "\e99c"; } .icon-users:before { - content: "\e972"; + content: "\e99d"; } .icon-user-plus:before { - content: "\e973"; + content: "\e99e"; } .icon-user-minus:before { - content: "\e974"; + content: "\e99f"; } .icon-user-check:before { - content: "\e975"; + content: "\e9a0"; } .icon-user-tie:before { - content: "\e976"; + content: "\e9a1"; } .icon-quotes-left:before { - content: "\e977"; + content: "\e9a2"; } .icon-quotes-right:before { - content: "\e978"; + content: "\e9a3"; } .icon-hour-glass:before { - content: "\e979"; + content: "\e9a4"; } .icon-spinner:before { - content: "\e97a"; + content: "\e9a5"; } .icon-spinner2:before { - content: "\e97b"; + content: "\e9a6"; } .icon-spinner3:before { - content: "\e97c"; + content: "\e9a7"; } .icon-spinner4:before { - content: "\e97d"; + content: "\e9a8"; } .icon-spinner5:before { - content: "\e97e"; + content: "\e9a9"; } .icon-spinner6:before { - content: "\e97f"; + content: "\e9aa"; } .icon-spinner7:before { - content: "\e980"; + content: "\e9ab"; } .icon-spinner8:before { - content: "\e981"; + content: "\e9ac"; } .icon-spinner9:before { - content: "\e982"; + content: "\e9ad"; } .icon-spinner10:before { - content: "\e983"; + content: "\e9ae"; } .icon-spinner11:before { - content: "\e984"; + content: "\e9af"; } .icon-binoculars:before { - content: "\e985"; + content: "\e9b0"; } .icon-search:before { - content: "\e986"; + content: "\e9b1"; } .icon-zoom-in:before { - content: "\e987"; + content: "\e9b2"; } .icon-zoom-out:before { - content: "\e988"; + content: "\e9b3"; } .icon-enlarge:before { - content: "\e989"; + content: "\e9b4"; } .icon-shrink:before { - content: "\e98a"; + content: "\e9b5"; } .icon-enlarge2:before { - content: "\e98b"; + content: "\e9b6"; } .icon-shrink2:before { - content: "\e98c"; + content: "\e9b7"; } .icon-key:before { - content: "\e98d"; + content: "\e9b8"; } .icon-key2:before { - content: "\e98e"; + content: "\e9b9"; } .icon-lock:before { - content: "\e98f"; + content: "\e9ba"; } .icon-unlocked:before { - content: "\e990"; + content: "\e9bb"; } .icon-wrench:before { - content: "\e991"; + content: "\e9bc"; } .icon-equalizer:before { - content: "\e992"; + content: "\e9bd"; } .icon-equalizer2:before { - content: "\e993"; + content: "\e9be"; } .icon-cog:before { - content: "\e994"; + content: "\e9bf"; } .icon-cogs:before { - content: "\e995"; + content: "\e9c0"; } .icon-hammer:before { - content: "\e996"; + content: "\e9c1"; } .icon-magic-wand:before { - content: "\e997"; + content: "\e9c2"; } .icon-aid-kit:before { - content: "\e998"; + content: "\e9c3"; } .icon-bug:before { - content: "\e999"; + content: "\e9c4"; } .icon-pie-chart:before { - content: "\e99a"; + content: "\e9c5"; } .icon-stats-dots:before { - content: "\e99b"; + content: "\e9c6"; } .icon-stats-bars:before { - content: "\e99c"; + content: "\e9c7"; } .icon-stats-bars2:before { - content: "\e99d"; + content: "\e9c8"; } .icon-trophy:before { - content: "\e99e"; + content: "\e9c9"; } .icon-gift:before { - content: "\e99f"; + content: "\e9ca"; } .icon-glass:before { - content: "\e9a0"; + content: "\e9cb"; } .icon-glass2:before { - content: "\e9a1"; + content: "\e9cc"; } .icon-mug:before { - content: "\e9a2"; + content: "\e9cd"; } .icon-spoon-knife:before { - content: "\e9a3"; + content: "\e9ce"; } .icon-leaf:before { - content: "\e9a4"; + content: "\e9cf"; } .icon-rocket:before { - content: "\e9a5"; + content: "\e9d0"; } .icon-meter:before { - content: "\e9a6"; + content: "\e9d1"; } .icon-meter2:before { - content: "\e9a7"; + content: "\e9d2"; } .icon-hammer2:before { - content: "\e9a8"; + content: "\e9d3"; } .icon-fire:before { - content: "\e9a9"; + content: "\e9d4"; } .icon-lab:before { - content: "\e9aa"; + content: "\e9d5"; } .icon-magnet:before { - content: "\e9ab"; + content: "\e9d6"; } .icon-bin:before { - content: "\e9ac"; + content: "\e9d7"; } .icon-bin2:before { - content: "\e9ad"; + content: "\e9d8"; } .icon-briefcase:before { - content: "\e9ae"; + content: "\e9d9"; } .icon-airplane:before { - content: "\e9af"; + content: "\e9da"; } .icon-truck:before { - content: "\e9b0"; + content: "\e9db"; } .icon-road:before { - content: "\e9b1"; + content: "\e9dc"; } .icon-accessibility:before { - content: "\e9b2"; + content: "\e9dd"; } .icon-target:before { - content: "\e9b3"; + content: "\e9de"; } .icon-shield:before { - content: "\e9b4"; + content: "\e9df"; } .icon-power:before { - content: "\e9b5"; + content: "\e9e0"; } .icon-switch:before { - content: "\e9b6"; + content: "\e9e1"; } .icon-power-cord:before { - content: "\e9b7"; + content: "\e9e2"; } .icon-clipboard:before { - content: "\e9b8"; + content: "\e9e3"; } .icon-list-numbered:before { - content: "\e9b9"; + content: "\e9e4"; } .icon-list:before { - content: "\e9ba"; + content: "\e9e5"; } .icon-list2:before { - content: "\e9bb"; + content: "\e9e6"; } .icon-tree:before { - content: "\e9bc"; + content: "\e9e7"; } .icon-menu:before { - content: "\e9bd"; + content: "\e9e8"; } .icon-menu2:before { - content: "\e9be"; + content: "\e9e9"; } .icon-menu3:before { - content: "\e9bf"; + content: "\e9ea"; } .icon-menu4:before { - content: "\e9c0"; + content: "\e9eb"; } .icon-cloud:before { - content: "\e9c1"; + content: "\e9ec"; } .icon-cloud-download:before { - content: "\e9c2"; + content: "\e9ed"; } .icon-cloud-upload:before { - content: "\e9c3"; + content: "\e9ee"; } .icon-cloud-check:before { - content: "\e9c4"; + content: "\e9ef"; } .icon-download2:before { - content: "\e9c5"; + content: "\e9f0"; } .icon-upload2:before { - content: "\e9c6"; + content: "\e9f1"; } .icon-download3:before { - content: "\e9c7"; + content: "\e9f2"; } .icon-upload3:before { - content: "\e9c8"; + content: "\e9f3"; } .icon-sphere:before { - content: "\e9c9"; + content: "\e9f4"; } .icon-earth:before { - content: "\e9ca"; + content: "\e9f5"; } .icon-link:before { - content: "\e9cb"; + content: "\e9f6"; } .icon-flag:before { - content: "\e9cc"; + content: "\e9f7"; } .icon-attachment:before { - content: "\e9cd"; + content: "\e9f8"; } .icon-eye:before { - content: "\e9ce"; + content: "\e9f9"; } .icon-eye-plus:before { - content: "\e9cf"; + content: "\e9fa"; } .icon-eye-minus:before { - content: "\e9d0"; + content: "\e9fb"; } .icon-eye-blocked:before { - content: "\e9d1"; + content: "\e9fc"; } .icon-bookmark:before { - content: "\e9d2"; + content: "\e9fd"; } .icon-bookmarks:before { - content: "\e9d3"; + content: "\e9fe"; } .icon-sun:before { - content: "\e9d4"; + content: "\e9ff"; } .icon-contrast:before { - content: "\e9d5"; + content: "\ea00"; } .icon-brightness-contrast:before { - content: "\e9d6"; + content: "\ea01"; } .icon-star-empty:before { - content: "\e9d7"; + content: "\ea02"; } .icon-star-half:before { - content: "\e9d8"; + content: "\ea03"; } .icon-star-full:before { - content: "\e9d9"; + content: "\ea04"; } .icon-heart:before { - content: "\e9da"; + content: "\ea05"; } .icon-heart-broken:before { - content: "\e9db"; + content: "\ea06"; } .icon-man:before { - content: "\e9dc"; + content: "\ea07"; } .icon-woman:before { - content: "\e9dd"; + content: "\ea08"; } .icon-man-woman:before { - content: "\e9de"; + content: "\ea09"; } .icon-happy:before { - content: "\e9df"; + content: "\ea0a"; } .icon-happy2:before { - content: "\e9e0"; + content: "\ea0b"; } .icon-smile:before { - content: "\e9e1"; + content: "\ea0c"; } .icon-smile2:before { - content: "\e9e2"; + content: "\ea0d"; } .icon-tongue:before { - content: "\e9e3"; + content: "\ea0e"; } .icon-tongue2:before { - content: "\e9e4"; + content: "\ea0f"; } .icon-sad:before { - content: "\e9e5"; + content: "\ea10"; } .icon-sad2:before { - content: "\e9e6"; + content: "\ea11"; } .icon-wink:before { - content: "\e9e7"; + content: "\ea12"; } .icon-wink2:before { - content: "\e9e8"; + content: "\ea13"; } .icon-grin:before { - content: "\e9e9"; + content: "\ea14"; } .icon-grin2:before { - content: "\e9ea"; + content: "\ea15"; } .icon-cool:before { - content: "\e9eb"; + content: "\ea16"; } .icon-cool2:before { - content: "\e9ec"; + content: "\ea17"; } .icon-angry:before { - content: "\e9ed"; + content: "\ea18"; } .icon-angry2:before { - content: "\e9ee"; + content: "\ea19"; } .icon-evil:before { - content: "\e9ef"; + content: "\ea1a"; } .icon-evil2:before { - content: "\e9f0"; + content: "\ea1b"; } .icon-shocked:before { - content: "\e9f1"; + content: "\ea1c"; } .icon-shocked2:before { - content: "\e9f2"; + content: "\ea1d"; } .icon-baffled:before { - content: "\e9f3"; + content: "\ea1e"; } .icon-baffled2:before { - content: "\e9f4"; + content: "\ea1f"; } .icon-confused:before { - content: "\e9f5"; + content: "\ea20"; } .icon-confused2:before { - content: "\e9f6"; + content: "\ea21"; } .icon-neutral:before { - content: "\e9f7"; + content: "\ea22"; } .icon-neutral2:before { - content: "\e9f8"; + content: "\ea23"; } .icon-hipster:before { - content: "\e9f9"; + content: "\ea24"; } .icon-hipster2:before { - content: "\e9fa"; + content: "\ea25"; } .icon-wondering:before { - content: "\e9fb"; + content: "\ea26"; } .icon-wondering2:before { - content: "\e9fc"; + content: "\ea27"; } .icon-sleepy:before { - content: "\e9fd"; + content: "\ea28"; } .icon-sleepy2:before { - content: "\e9fe"; + content: "\ea29"; } .icon-frustrated:before { - content: "\e9ff"; + content: "\ea2a"; } .icon-frustrated2:before { - content: "\ea00"; + content: "\ea2b"; } .icon-crying:before { - content: "\ea01"; + content: "\ea2c"; } .icon-crying2:before { - content: "\ea02"; + content: "\ea2d"; } .icon-point-up:before { - content: "\ea03"; + content: "\ea2e"; } .icon-point-right:before { - content: "\ea04"; + content: "\ea2f"; } .icon-point-down:before { - content: "\ea05"; + content: "\ea30"; } .icon-point-left:before { - content: "\ea06"; + content: "\ea31"; } .icon-warning:before { - content: "\ea07"; + content: "\ea32"; } .icon-notification:before { - content: "\ea08"; + content: "\ea33"; } .icon-question:before { - content: "\ea09"; + content: "\ea34"; } .icon-plus:before { - content: "\ea0a"; + content: "\ea35"; } .icon-minus:before { - content: "\ea0b"; + content: "\ea36"; } .icon-info:before { - content: "\ea0c"; + content: "\ea37"; } .icon-cancel-circle:before { - content: "\ea0d"; + content: "\ea38"; } .icon-blocked:before { - content: "\ea0e"; + content: "\ea39"; } .icon-cross:before { - content: "\ea0f"; + content: "\ea3a"; } .icon-checkmark:before { - content: "\ea10"; + content: "\ea3b"; } .icon-checkmark2:before { - content: "\ea11"; + content: "\ea3c"; } .icon-spell-check:before { - content: "\ea12"; + content: "\ea3d"; } .icon-enter:before { - content: "\ea13"; + content: "\ea3e"; } .icon-exit:before { - content: "\ea14"; + content: "\ea3f"; } .icon-play2:before { - content: "\ea15"; + content: "\ea40"; } .icon-pause:before { - content: "\ea16"; + content: "\ea41"; } .icon-stop:before { - content: "\ea17"; + content: "\ea42"; } .icon-previous:before { - content: "\ea18"; + content: "\ea43"; } .icon-next:before { - content: "\ea19"; + content: "\ea44"; } .icon-backward:before { - content: "\ea1a"; + content: "\ea45"; } .icon-forward2:before { - content: "\ea1b"; + content: "\ea46"; } .icon-play3:before { - content: "\ea1c"; + content: "\ea47"; } .icon-pause2:before { - content: "\ea1d"; + content: "\ea48"; } .icon-stop2:before { - content: "\ea1e"; + content: "\ea49"; } .icon-backward2:before { - content: "\ea1f"; + content: "\ea4a"; } .icon-forward3:before { - content: "\ea20"; + content: "\ea4b"; } .icon-first:before { - content: "\ea21"; + content: "\ea4c"; } .icon-last:before { - content: "\ea22"; + content: "\ea4d"; } .icon-previous2:before { - content: "\ea23"; + content: "\ea4e"; } .icon-next2:before { - content: "\ea24"; + content: "\ea4f"; } .icon-eject:before { - content: "\ea25"; + content: "\ea50"; } .icon-volume-high:before { - content: "\ea26"; + content: "\ea51"; } .icon-volume-medium:before { - content: "\ea27"; + content: "\ea52"; } .icon-volume-low:before { - content: "\ea28"; + content: "\ea53"; } .icon-volume-mute:before { - content: "\ea29"; + content: "\ea54"; } .icon-volume-mute2:before { - content: "\ea2a"; + content: "\ea55"; } .icon-volume-increase:before { - content: "\ea2b"; + content: "\ea56"; } .icon-volume-decrease:before { - content: "\ea2c"; + content: "\ea57"; } .icon-loop:before { - content: "\ea2d"; + content: "\ea58"; } .icon-loop2:before { - content: "\ea2e"; + content: "\ea59"; } .icon-infinite:before { - content: "\ea2f"; + content: "\ea5a"; } .icon-shuffle:before { - content: "\ea30"; + content: "\ea5b"; } .icon-arrow-up-left:before { - content: "\ea31"; + content: "\ea5c"; } .icon-arrow-up:before { - content: "\ea32"; + content: "\ea5d"; } .icon-arrow-up-right:before { - content: "\ea33"; + content: "\ea5e"; } .icon-arrow-right:before { - content: "\ea34"; + content: "\ea5f"; } .icon-arrow-down-right:before { - content: "\ea35"; + content: "\ea60"; } .icon-arrow-down:before { - content: "\ea36"; + content: "\ea61"; } .icon-arrow-down-left:before { - content: "\ea37"; + content: "\ea62"; } .icon-arrow-left:before { - content: "\ea38"; + content: "\ea63"; } .icon-arrow-up-left2:before { - content: "\ea39"; + content: "\ea64"; } .icon-arrow-up2:before { - content: "\ea3a"; + content: "\ea65"; } .icon-arrow-up-right2:before { - content: "\ea3b"; + content: "\ea66"; } .icon-arrow-right2:before { - content: "\ea3c"; + content: "\ea67"; } .icon-arrow-down-right2:before { - content: "\ea3d"; + content: "\ea68"; } .icon-arrow-down2:before { - content: "\ea3e"; + content: "\ea69"; } .icon-arrow-down-left2:before { - content: "\ea3f"; + content: "\ea6a"; } .icon-arrow-left2:before { - content: "\ea40"; + content: "\ea6b"; } .icon-circle-up:before { - content: "\ea41"; + content: "\ea6c"; } .icon-circle-right:before { - content: "\ea42"; + content: "\ea6d"; } .icon-circle-down:before { - content: "\ea43"; + content: "\ea6e"; } .icon-circle-left:before { - content: "\ea44"; + content: "\ea6f"; } .icon-tab:before { - content: "\ea45"; + content: "\ea70"; } .icon-move-up:before { - content: "\ea46"; + content: "\ea71"; } .icon-move-down:before { - content: "\ea47"; + content: "\ea72"; } .icon-sort-alpha-asc:before { - content: "\ea48"; + content: "\ea73"; } .icon-sort-alpha-desc:before { - content: "\ea49"; + content: "\ea74"; } .icon-sort-numeric-asc:before { - content: "\ea4a"; + content: "\ea75"; } .icon-sort-numberic-desc:before { - content: "\ea4b"; + content: "\ea76"; } .icon-sort-amount-asc:before { - content: "\ea4c"; + content: "\ea77"; } .icon-sort-amount-desc:before { - content: "\ea4d"; + content: "\ea78"; } .icon-command:before { - content: "\ea4e"; + content: "\ea79"; } .icon-shift:before { - content: "\ea4f"; + content: "\ea7a"; } .icon-ctrl:before { - content: "\ea50"; + content: "\ea7b"; } .icon-opt:before { - content: "\ea51"; + content: "\ea7c"; } .icon-checkbox-checked:before { - content: "\ea52"; + content: "\ea7d"; } .icon-checkbox-unchecked:before { - content: "\ea53"; + content: "\ea7e"; } .icon-radio-checked:before { - content: "\ea54"; + content: "\ea7f"; } .icon-radio-checked2:before { - content: "\ea55"; + content: "\ea80"; } .icon-radio-unchecked:before { - content: "\ea56"; + content: "\ea81"; } .icon-crop:before { - content: "\ea57"; + content: "\ea82"; } .icon-make-group:before { - content: "\ea58"; + content: "\ea83"; } .icon-ungroup:before { - content: "\ea59"; + content: "\ea84"; } .icon-scissors:before { - content: "\ea5a"; + content: "\ea85"; } .icon-filter:before { - content: "\ea5b"; + content: "\ea86"; } .icon-font:before { - content: "\ea5c"; + content: "\ea87"; } .icon-ligature:before { - content: "\ea5d"; + content: "\ea88"; } .icon-ligature2:before { - content: "\ea5e"; + content: "\ea89"; } .icon-text-height:before { - content: "\ea5f"; + content: "\ea8a"; } .icon-text-width:before { - content: "\ea60"; + content: "\ea8b"; } .icon-font-size:before { - content: "\ea61"; + content: "\ea8c"; } .icon-bold:before { - content: "\ea62"; + content: "\ea8d"; } .icon-underline:before { - content: "\ea63"; + content: "\ea8e"; } .icon-italic:before { - content: "\ea64"; + content: "\ea8f"; } .icon-strikethrough:before { - content: "\ea65"; + content: "\ea90"; } .icon-omega:before { - content: "\ea66"; + content: "\ea91"; } .icon-sigma:before { - content: "\ea67"; + content: "\ea92"; } .icon-page-break:before { - content: "\ea68"; + content: "\ea93"; } .icon-superscript:before { - content: "\ea69"; + content: "\ea94"; } .icon-subscript:before { - content: "\ea6a"; + content: "\ea95"; } .icon-superscript2:before { - content: "\ea6b"; + content: "\ea96"; } .icon-subscript2:before { - content: "\ea6c"; + content: "\ea97"; } .icon-text-color:before { - content: "\ea6d"; + content: "\ea98"; } .icon-pagebreak:before { - content: "\ea6e"; + content: "\ea99"; } .icon-clear-formatting:before { - content: "\ea6f"; + content: "\ea9a"; } .icon-table:before { - content: "\ea70"; + content: "\ea9b"; } .icon-table2:before { - content: "\ea71"; + content: "\ea9c"; } .icon-insert-template:before { - content: "\ea72"; + content: "\ea9d"; } .icon-pilcrow:before { - content: "\ea73"; + content: "\ea9e"; } .icon-ltr:before { - content: "\ea74"; + content: "\ea9f"; } .icon-rtl:before { - content: "\ea75"; + content: "\eaa0"; } .icon-section:before { - content: "\ea76"; + content: "\eaa1"; } .icon-paragraph-left:before { - content: "\ea77"; + content: "\eaa2"; } .icon-paragraph-center:before { - content: "\ea78"; + content: "\eaa3"; } .icon-paragraph-right:before { - content: "\ea79"; + content: "\eaa4"; } .icon-paragraph-justify:before { - content: "\ea7a"; + content: "\eaa5"; } .icon-indent-increase:before { - content: "\ea7b"; + content: "\eaa6"; } .icon-indent-decrease:before { - content: "\ea7c"; + content: "\eaa7"; } .icon-share:before { - content: "\ea7d"; + content: "\eaa8"; } .icon-new-tab:before { - content: "\ea7e"; + content: "\eaa9"; } .icon-embed:before { - content: "\ea7f"; + content: "\eaaa"; } .icon-embed2:before { - content: "\ea80"; + content: "\eaab"; } .icon-terminal:before { - content: "\ea81"; + content: "\eaac"; } .icon-share2:before { - content: "\ea82"; + content: "\eaad"; } .icon-mail:before { - content: "\ea83"; + content: "\eaae"; } .icon-mail2:before { - content: "\ea84"; + content: "\eaaf"; } .icon-mail3:before { - content: "\ea85"; + content: "\eab0"; } .icon-mail4:before { - content: "\ea86"; + content: "\eab1"; } .icon-amazon:before { - content: "\ea87"; + content: "\eab2"; } .icon-google:before { - content: "\ea88"; + content: "\eab3"; } .icon-google2:before { - content: "\ea89"; + content: "\eab4"; } .icon-google3:before { - content: "\ea8a"; + content: "\eab5"; } .icon-google-plus:before { - content: "\ea8b"; + content: "\eab6"; } .icon-google-plus2:before { - content: "\ea8c"; + content: "\eab7"; } .icon-google-plus3:before { - content: "\ea8d"; + content: "\eab8"; } .icon-hangouts:before { - content: "\ea8e"; + content: "\eab9"; } .icon-google-drive:before { - content: "\ea8f"; + content: "\eaba"; } .icon-facebook:before { - content: "\ea90"; + content: "\eabb"; } .icon-facebook2:before { - content: "\ea91"; + content: "\eabc"; } .icon-instagram:before { - content: "\ea92"; + content: "\eabd"; } .icon-whatsapp:before { - content: "\ea93"; + content: "\eabe"; } .icon-spotify:before { - content: "\ea94"; + content: "\eabf"; } .icon-telegram:before { - content: "\ea95"; + content: "\eac0"; } .icon-twitter:before { - content: "\ea96"; + content: "\eac1"; } .icon-vine:before { - content: "\ea97"; + content: "\eac2"; } .icon-vk:before { - content: "\ea98"; + content: "\eac3"; } .icon-renren:before { - content: "\ea99"; + content: "\eac4"; } .icon-sina-weibo:before { - content: "\ea9a"; + content: "\eac5"; } .icon-rss:before { - content: "\ea9b"; + content: "\eac6"; } .icon-rss2:before { - content: "\ea9c"; + content: "\eac7"; } .icon-youtube:before { - content: "\ea9d"; + content: "\eac8"; } .icon-youtube2:before { - content: "\ea9e"; + content: "\eac9"; } .icon-twitch:before { - content: "\ea9f"; + content: "\eaca"; } .icon-vimeo:before { - content: "\eaa0"; + content: "\eacb"; } .icon-vimeo2:before { - content: "\eaa1"; + content: "\eacc"; } .icon-lanyrd:before { - content: "\eaa2"; + content: "\eacd"; } .icon-flickr:before { - content: "\eaa3"; + content: "\eace"; } .icon-flickr2:before { - content: "\eaa4"; + content: "\eacf"; } .icon-flickr3:before { - content: "\eaa5"; + content: "\ead0"; } .icon-flickr4:before { - content: "\eaa6"; + content: "\ead1"; } .icon-dribbble:before { - content: "\eaa7"; + content: "\ead2"; } .icon-behance:before { - content: "\eaa8"; + content: "\ead3"; } .icon-behance2:before { - content: "\eaa9"; + content: "\ead4"; } .icon-deviantart:before { - content: "\eaaa"; + content: "\ead5"; } .icon-500px:before { - content: "\eaab"; + content: "\ead6"; } .icon-steam:before { - content: "\eaac"; + content: "\ead7"; } .icon-steam2:before { - content: "\eaad"; + content: "\ead8"; } .icon-dropbox:before { - content: "\eaae"; + content: "\ead9"; } .icon-onedrive:before { - content: "\eaaf"; + content: "\eada"; } .icon-github:before { - content: "\eab0"; + content: "\eadb"; } .icon-npm:before { - content: "\eab1"; + content: "\eadc"; } .icon-basecamp:before { - content: "\eab2"; + content: "\eadd"; } .icon-trello:before { - content: "\eab3"; + content: "\eade"; } .icon-wordpress:before { - content: "\eab4"; + content: "\eadf"; } .icon-joomla:before { - content: "\eab5"; + content: "\eae0"; } .icon-ello:before { - content: "\eab6"; + content: "\eae1"; } .icon-blogger:before { - content: "\eab7"; + content: "\eae2"; } .icon-blogger2:before { - content: "\eab8"; + content: "\eae3"; } .icon-tumblr:before { - content: "\eab9"; + content: "\eae4"; } .icon-tumblr2:before { - content: "\eaba"; + content: "\eae5"; } .icon-yahoo:before { - content: "\eabb"; + content: "\eae6"; } .icon-yahoo2:before { - content: "\eabc"; + content: "\eae7"; } .icon-tux:before { - content: "\eabd"; + content: "\eae8"; } .icon-appleinc:before { - content: "\eabe"; + content: "\eae9"; } .icon-finder:before { - content: "\eabf"; + content: "\eaea"; } .icon-android:before { - content: "\eac0"; + content: "\eaee"; } .icon-windows:before { - content: "\eac1"; + content: "\eaef"; } .icon-windows8:before { - content: "\eac2"; + content: "\eaf0"; } .icon-soundcloud:before { - content: "\eac3"; + content: "\eaf1"; } .icon-soundcloud2:before { - content: "\eac4"; + content: "\eaf2"; } .icon-skype:before { - content: "\eac5"; + content: "\eaf3"; } .icon-reddit:before { - content: "\eac6"; + content: "\eaf4"; } .icon-hackernews:before { - content: "\eac7"; + content: "\eaf5"; } .icon-wikipedia:before { - content: "\eac8"; + content: "\eaf6"; } .icon-linkedin:before { - content: "\eac9"; + content: "\eaf7"; } .icon-linkedin2:before { - content: "\eaca"; + content: "\eaf8"; } .icon-lastfm:before { - content: "\eacb"; + content: "\eaf9"; } .icon-lastfm2:before { - content: "\eacc"; + content: "\eafa"; } .icon-delicious:before { - content: "\eacd"; + content: "\eafb"; } .icon-stumbleupon:before { - content: "\eace"; + content: "\eafc"; } .icon-stumbleupon2:before { - content: "\eacf"; + content: "\eafd"; } .icon-stackoverflow:before { - content: "\ead0"; + content: "\eafe"; } .icon-pinterest:before { - content: "\ead1"; + content: "\eaff"; } .icon-pinterest2:before { - content: "\ead2"; + content: "\eb00"; } .icon-xing:before { - content: "\ead3"; + content: "\eb01"; } .icon-xing2:before { - content: "\ead4"; + content: "\eb02"; } .icon-flattr:before { - content: "\ead5"; + content: "\eb03"; } .icon-foursquare:before { - content: "\ead6"; + content: "\eb04"; } .icon-yelp:before { - content: "\ead7"; + content: "\eb05"; } .icon-paypal:before { - content: "\ead8"; + content: "\eb06"; } .icon-chrome:before { - content: "\ead9"; + content: "\eb07"; } .icon-firefox:before { - content: "\eada"; + content: "\eb08"; } .icon-IE:before { - content: "\eadb"; + content: "\eb09"; } .icon-edge:before { - content: "\eadc"; + content: "\eb0a"; } .icon-safari:before { - content: "\eadd"; + content: "\eb0b"; } .icon-opera:before { - content: "\eade"; + content: "\eb0c"; } .icon-file-pdf:before { - content: "\eadf"; + content: "\eb0d"; } .icon-file-openoffice:before { - content: "\eae0"; + content: "\eb0e"; } .icon-file-word:before { - content: "\eae1"; + content: "\eb0f"; } .icon-file-excel:before { - content: "\eae2"; + content: "\eb10"; } .icon-libreoffice:before { - content: "\eae3"; + content: "\eb11"; } .icon-html-five:before { - content: "\eae4"; + content: "\eb12"; } .icon-html-five2:before { - content: "\eae5"; + content: "\eb13"; } .icon-css3:before { - content: "\eae6"; + content: "\eb14"; } .icon-git:before { - content: "\eae7"; + content: "\eb15"; } .icon-codepen:before { - content: "\eae8"; + content: "\eb16"; } .icon-svg:before { - content: "\eae9"; + content: "\eb17"; } .icon-IcoMoon:before { - content: "\eaea"; + content: "\eb18"; +} +.icon-webduino-logo:before { + content: "\e900"; +} +.icon-power-on:before { + content: "\eaec"; +} +.icon-power-off2:before { + content: "\eaed"; +} +.icon-puzzle-1:before { + content: "\eaeb"; } - diff --git a/css/style.css b/css/style.css index f9f5dc6..63e21cf 100644 --- a/css/style.css +++ b/css/style.css @@ -193,13 +193,16 @@ pre.content { overflow: scroll; } +#trashButton{ + margin-right:-1px; +} #check-device-online { display: inline-block; background: #ddd; box-sizing: border-box; padding: 0 0 0 3px; - margin: -7px 0 4px; + margin: -7px -1px 4px 1px; border-radius: 5px; vertical-align: bottom; cursor: pointer; @@ -218,7 +221,7 @@ pre.content { border-radius: 3px; background: #333; color: #fff; - margin: -13px -4px -5px 0; + margin: -13px -4px -4px 0; vertical-align: middle; opacity: 0; } @@ -292,25 +295,70 @@ button:hover{ } header { + position: relative; width: 100%; - height: 80px; + height: 75px; min-width: 200px; background-image: linear-gradient(top, #000 0%, #333 100%); background-image: -moz-linear-gradient(top, #000 0%, #333 100%); background-image: -webkit-linear-gradient(top, #000 0%, #333 100%); } +header::before{ + content:''; + position:absolute; + top:0; + left:0; + width:60px; + height:60px; + z-index: 99; + background-image: url(../media/trail.png); +} + header .logo { position: relative; - margin: 24px 5px 0 30px; + margin: 20px 5px 0 20px; } header h1 { vertical-align: top; display: inline-block; margin: 0; - padding: 32px 0 0; - color: #fff; + padding: 24px 0 0; + margin-right: 5px; + color: #ccc; + font-weight: normal; + font-size: 21px; + position: relative; +} +header h1 a{ + position: absolute; + font-size:24px; + top:25px; + right:-32px; + text-decoration: none; + color:#666; + transition:.3s; +} +header h1 a b{ + position:absolute; + color:#fc0; + font-size:13px; + width:200px; + line-height: 13px; + left:20px; + top:8px; + opacity:0; + font-weight: normal; + transition:.3s; + pointer-events: none; +} +header h1 a:hover{ + color:#fc0; +} +header h1 a:hover b{ + left:30px; + opacity:1; } header span { @@ -366,8 +414,8 @@ a.toolMenu:hover div,div.toolMenu:hover div{ #userMenu{ position:absolute; z-index:100; - top:12px; - right:20px; + top:8px; + right:16px; font-weight: normal; } @@ -406,7 +454,6 @@ a.toolMenu:hover div,div.toolMenu:hover div{ #userMenu i{ margin-left:6px; - vertical-align: text-bottom; } #userMenu span{ @@ -428,14 +475,15 @@ a.toolMenu:hover div,div.toolMenu:hover div{ #languageMenu { -webkit-appearance: none; cursor:pointer; - font-size:15px; + font-size:14px; background: none; outline: none; border: none; color: #777; - padding-left:18px; - margin-left:-18px; + padding-left:14px; + margin-left:-16px; transition: .3s; + vertical-align: top; } #update { @@ -449,7 +497,7 @@ a.toolMenu:hover div,div.toolMenu:hover div{ table.nav { width: calc(100% - 30px); min-width: 600px!important; - height: calc(100vh - 95px); + height: calc(100vh - 90px); margin: 0 auto; } @@ -466,7 +514,7 @@ table td.tabmin { } table.nav td.tabmax { - padding-right: 0; + padding-right: 5px; } table.nav td.tabmax a, @@ -566,6 +614,7 @@ td#copyCode:after { white-space: nowrap; font-family: 'verdana'; opacity:0; + pointer-events: none; } td#copyCode:before { transition:.3s; @@ -581,6 +630,7 @@ td#copyCode:before { top: 3px; left: 31px; opacity:0; + pointer-events: none; } td#copyCode:hover:after { @@ -626,9 +676,9 @@ td#copyCode div { background: #ddd; transition: .3s; border-radius: 5px; - margin: -7px 0 4px; + margin: -7px -1px 4px 1px; box-sizing: border-box; - padding: 4px 12px 5px; + padding: 4px 10px 5px; vertical-align: bottom; } @@ -658,7 +708,7 @@ td#copyCode div { display: none; z-index: 99; position: absolute; - right: 30px; + right: 20px; top: 125px; width: 400px; min-width: 225px; @@ -695,7 +745,7 @@ td#copyCode div { overflow: auto; width: 100%; height: 100%; - padding: 0 20px 20px; + padding: 0 20px 10px; box-sizing: border-box; } @@ -719,20 +769,20 @@ td#copyCode div { #demo-area .demo-area-content>h4 { font-size: 20px; - margin: 25px 0 15px; + margin: 25px 0 10px; } #demo-area .demo-area-content>span { display: inline-block; font-size: 16px; line-height: 24px; - margin: 0 0 10px; + margin: 0; } #demo-area .demo-area-content select { outline: none; border: 1px solid #ccc; - margin: 0 0 15px; + margin: 0 ; font-size: 16px; } @@ -1052,7 +1102,105 @@ td#copyCode div { #demo-frame { width: 100%; - height: calc(100% - 120px); + margin-top:15px; + height: calc(100% - 110px); border: none; z-index: 2; } + + +.remind{ + position: fixed; + z-index:9999; + width:100%; + height:100%; +} +.remind-top{ + width:100%; + height:500px; +} +.remind-top div{ + height:100%; + float:left; +} +.remind-top-1{ + width:550px; + background:url(../media/remind-1.png); +} +.remind-top-2{ + background:#000; + opacity:.6; + width:calc(100% - 800px); +} +.remind-top-3{ + width:250px; + background:url(../media/remind-3.png); +} +.remind-bottom{ + width:100%; + height:calc(100% - 500px); + background:#000; + opacity:.6; +} +.remind .owl{ + position:absolute; + display:inline-block; + bottom:30px; + right:20px; + z-index:2; + width:800px; +} +.remind .owl .owl-img{ + position:absolute; + z-index:2; + bottom:0; + right:0; + width:100%; + pointer-events: none; +} +.remind .owl .owl-button{ + position:absolute; + display:inline-block; + z-index:1; + bottom:50px; + left:11%; + width:350px; + height:130px; + cursor:pointer; + background-image:url(../media/owl-button.png); + background-repeat: no-repeat; + background-size: 100% auto; + cursor:pointer; +} +.remind .owl .owl-button:hover{ + background-image:url(../media/owl-button-push.png); +} + + +@media (max-width: 1500px){ + .remind .owl{ + width:700px; + } + .remind .owl .owl-button{ + width:310px; + height:120px; + bottom:40px; + } +} + +@media (max-width: 1200px){ + .remind .owl{ + width:600px; + } + .remind .owl .owl-button{ + width:260px; + height:110px; + bottom:30px; + } +} + +@media (max-width: 800px){ + .remind{ + display:none; + } +} \ No newline at end of file diff --git a/generators/tutorials.js b/generators/tutorials.js index b6545fa..646a750 100644 --- a/generators/tutorials.js +++ b/generators/tutorials.js @@ -4,13 +4,13 @@ goog.provide('Blockly.JavaScript.webduino.tutorials'); goog.require('Blockly.JavaScript'); /* -ooooo oooooooooooo oooooooooo. -`888' `888' `8 `888' `Y8b - 888 888 888 888 - 888 888oooo8 888 888 - 888 888 " 888 888 - 888 o 888 o 888 d88' -o888ooooood8 o888ooooood8 o888bood8P' +ooooo oooooooooooo oooooooooo. +`888' `888' `8 `888' `Y8b + 888 888 888 888 + 888 888oooo8 888 888 + 888 888 " 888 888 + 888 o 888 o 888 d88' +o888ooooood8 o888ooooood8 o888bood8P' */ Blockly.JavaScript['light'] = function (block) { @@ -105,13 +105,13 @@ Blockly.JavaScript['stop_clock'] = function (block) { }; /* -ooooooooo. .oooooo. oooooooooo. -`888 `Y88. d8P' `Y8b `888' `Y8b - 888 .d88' 888 888 888 - 888ooo88P' 888 888oooo888' - 888`88b. 888 ooooo 888 `88b - 888 `88b. `88. .88' 888 .88P -o888o o888o `Y8bood8P' o888bood8P' +ooooooooo. .oooooo. oooooooooo. +`888 `Y88. d8P' `Y8b `888' `Y8b + 888 .d88' 888 888 888 + 888ooo88P' 888 888oooo888' + 888`88b. 888 ooooo 888 `88b + 888 `88b. `88. .88' 888 .88P +o888o o888o `Y8bood8P' o888bood8P' */ Blockly.JavaScript['rgb_led_area_color'] = function (block) { @@ -190,13 +190,13 @@ Blockly.JavaScript['rgb_led_dancing_status'] = function (block) { }; /* -ooooo ooo ooooo ooooooooooooo ooooooooo. .o. -`888' `8' `888' 8' 888 `8 `888 `Y88. .888. - 888 8 888 888 888 .d88' .8"888. - 888 8 888 888 888ooo88P' .8' `888. - 888 8 888 888 888`88b. .88ooo8888. - `88. .8' 888 o 888 888 `88b. .8' `888. - `YbodP' o888ooooood8 o888o o888o o888o o88o o8888o +ooooo ooo ooooo ooooooooooooo ooooooooo. .o. +`888' `8' `888' 8' 888 `8 `888 `Y88. .888. + 888 8 888 888 888 .d88' .8"888. + 888 8 888 888 888ooo88P' .8' `888. + 888 8 888 888 888`88b. .88ooo8888. + `88. .8' 888 o 888 888 `88b. .8' `888. + `YbodP' o888ooooood8 o888o o888o o888o o88o o8888o */ Blockly.JavaScript['ultrasonic_set_number'] = function (block) { @@ -217,7 +217,7 @@ Blockly.JavaScript['ultrasonic_change_image_size'] = function (block) { Blockly.JavaScript['ultrasonic_change_image_url'] = function (block) { var value_url = Blockly.JavaScript.valueToCode(block, 'url', Blockly.JavaScript.ORDER_ATOMIC); if (value_url == '\'\'' || !value_url) { - value_url = '"https://webduino.io/img/tutorials/tutorial-05-01s.jpg"'; + value_url = '"/media/tutorials/tutorial-05-01s.jpg"'; } var code = 'document.getElementById("image").setAttribute("src",' + value_url + ');\n'; return code; @@ -266,19 +266,19 @@ Blockly.JavaScript['ultrasonic_change_add_music'] = function (block) { }; /* -oooooo oooo . .o8 - `888. .8' .o8 "888 - `888. .8' .ooooo. oooo oooo .o888oo oooo oooo 888oooo. .ooooo. - `888.8' d88' `88b `888 `888 888 `888 `888 d88' `88b d88' `88b - `888' 888 888 888 888 888 888 888 888 888 888ooo888 - 888 888 888 888 888 888 . 888 888 888 888 888 .o - o888o `Y8bod8P' `V88V"V8P' "888" `V88V"V8P' `Y8bod8P' `Y8bod8P' +oooooo oooo . .o8 + `888. .8' .o8 "888 + `888. .8' .ooooo. oooo oooo .o888oo oooo oooo 888oooo. .ooooo. + `888.8' d88' `88b `888 `888 888 `888 `888 d88' `88b d88' `88b + `888' 888 888 888 888 888 888 888 888 888 888ooo888 + 888 888 888 888 888 888 . 888 888 888 888 888 .o + o888o `Y8bod8P' `V88V"V8P' "888" `V88V"V8P' `Y8bod8P' `Y8bod8P' */ Blockly.JavaScript['tutorial_youtube'] = function (block) { var value_name_ = Blockly.JavaScript.valueToCode(block, 'name_', Blockly.JavaScript.ORDER_ATOMIC); var text_id_ = block.getFieldValue('id_'); - var code = + var code = 'await new Promise(function (resolve) {\n' + ' var tag = document.createElement("script");\n' + ' tag.src = "https://www.youtube.com/iframe_api";\n' + @@ -354,13 +354,13 @@ Blockly.JavaScript['tutorial_youtube_id'] = function(block) { }; /* -oooooooooo. ooooo ooo ooooooooooooo ooooooooooooo .oooooo. ooooo ooo -`888' `Y8b `888' `8' 8' 888 `8 8' 888 `8 d8P' `Y8b `888b. `8' - 888 888 888 8 888 888 888 888 8 `88b. 8 - 888oooo888' 888 8 888 888 888 888 8 `88b. 8 - 888 `88b 888 8 888 888 888 888 8 `88b.8 - 888 .88P `88. .8' 888 888 `88b d88' 8 `888 -o888bood8P' `YbodP' o888o o888o `Y8bood8P' o8o `8 +oooooooooo. ooooo ooo ooooooooooooo ooooooooooooo .oooooo. ooooo ooo +`888' `Y8b `888' `8' 8' 888 `8 8' 888 `8 d8P' `Y8b `888b. `8' + 888 888 888 8 888 888 888 888 8 `88b. 8 + 888oooo888' 888 8 888 888 888 888 8 `88b. 8 + 888 `88b 888 8 888 888 888 888 8 `88b.8 + 888 .88P `88. .8' 888 888 `88b d88' 8 `888 +o888bood8P' `YbodP' o888o o888o `Y8bood8P' o8o `8 */ Blockly.JavaScript['show_text'] = function (block) { @@ -527,13 +527,13 @@ Blockly.JavaScript['button_game_user'] = function (block) { }; /* -oooooooooo. ooooo ooooo ooooooooooooo -`888' `Y8b `888' `888' 8' 888 `8 - 888 888 888 888 888 - 888 888 888ooooo888 888 - 888 888 888 888 888 - 888 d88' 888 888 888 -o888bood8P' o888o o888o o888o +oooooooooo. ooooo ooooo ooooooooooooo +`888' `Y8b `888' `888' 8' 888 `8 + 888 888 888 888 888 + 888 888 888ooooo888 888 + 888 888 888 888 888 + 888 d88' 888 888 888 +o888bood8P' o888o o888o o888o */ Blockly.JavaScript['tutorial_dht_show'] = function (block) { @@ -660,13 +660,13 @@ Blockly.JavaScript['tutorial_dht_draw'] = function (block) { }; /* - .oooooo..o oooooooooooo ooooooooo. oooooo oooo .oooooo. -d8P' `Y8 `888' `8 `888 `Y88. `888. .8' d8P' `Y8b -Y88bo. 888 888 .d88' `888. .8' 888 888 - `"Y8888o. 888oooo8 888ooo88P' `888. .8' 888 888 - `"Y88b 888 " 888`88b. `888.8' 888 888 -oo .d8P 888 o 888 `88b. `888' `88b d88' -8""88888P' o888ooooood8 o888o o888o `8' `Y8bood8P' + .oooooo..o oooooooooooo ooooooooo. oooooo oooo .oooooo. +d8P' `Y8 `888' `8 `888 `Y88. `888. .8' d8P' `Y8b +Y88bo. 888 888 .d88' `888. .8' 888 888 + `"Y8888o. 888oooo8 888ooo88P' `888. .8' 888 888 + `"Y88b 888 " 888`88b. `888.8' 888 888 +oo .d8P 888 o 888 `88b. `888' `88b d88' +8""88888P' o888ooooood8 o888o o888o `8' `Y8bood8P' */ Blockly.JavaScript['tutorial_servo_button'] = function (block) { @@ -710,13 +710,13 @@ Blockly.JavaScript['tutorial_servo_calculate'] = function (block) { /* -oooooooooo. ooooo ooo oooooooooooo oooooooooooo oooooooooooo ooooooooo. -`888' `Y8b `888' `8' d'""""""d888' d'""""""d888' `888' `8 `888 `Y88. - 888 888 888 8 .888P .888P 888 888 .d88' - 888oooo888' 888 8 d888' d888' 888oooo8 888ooo88P' - 888 `88b 888 8 .888P .888P 888 " 888`88b. - 888 .88P `88. .8' d888' .P d888' .P 888 o 888 `88b. -o888bood8P' `YbodP' .8888888888P .8888888888P o888ooooood8 o888o o888o +oooooooooo. ooooo ooo oooooooooooo oooooooooooo oooooooooooo ooooooooo. +`888' `Y8b `888' `8' d'""""""d888' d'""""""d888' `888' `8 `888 `Y88. + 888 888 888 8 .888P .888P 888 888 .d88' + 888oooo888' 888 8 d888' d888' 888oooo8 888ooo88P' + 888 `88b 888 8 .888P .888P 888 " 888`88b. + 888 .88P `88. .8' d888' .P d888' .P 888 o 888 `88b. +o888bood8P' `YbodP' .8888888888P .8888888888P o888ooooood8 o888o o888o */ Blockly.JavaScript['tutorial_buzzer_1'] = function (block) { @@ -737,29 +737,29 @@ Blockly.JavaScript['tutorial_buzzer_3'] = function (block) { /* -ooooooooo. oooo . oooo oooo -`888 `Y88. `888 .o8 `888 `888 - 888 .d88' 888 .oo. .ooooo. .o888oo .ooooo. .ooooo. .ooooo. 888 888 - 888ooo88P' 888P"Y88b d88' `88b 888 d88' `88b d88' `"Y8 d88' `88b 888 888 - 888 888 888 888 888 888 888 888 888 888ooo888 888 888 - 888 888 888 888 888 888 . 888 888 888 .o8 888 .o 888 888 -o888o o888o o888o `Y8bod8P' "888" `Y8bod8P' `Y8bod8P' `Y8bod8P' o888o o888o +ooooooooo. oooo . oooo oooo +`888 `Y88. `888 .o8 `888 `888 + 888 .d88' 888 .oo. .ooooo. .o888oo .ooooo. .ooooo. .ooooo. 888 888 + 888ooo88P' 888P"Y88b d88' `88b 888 d88' `88b d88' `"Y8 d88' `88b 888 888 + 888 888 888 888 888 888 888 888 888 888ooo888 888 888 + 888 888 888 888 888 888 . 888 888 888 .o8 888 .o 888 888 +o888o o888o o888o `Y8bod8P' "888" `Y8bod8P' `Y8bod8P' `Y8bod8P' o888o o888o */ Blockly.JavaScript['photocell_show_number'] = function (block) { var value_number_ = Blockly.JavaScript.valueToCode(block, 'number_', Blockly.JavaScript.ORDER_ATOMIC); var code = 'document.getElementById("show").innerHTML = ' + value_number_ + ';\n'; return code; -}; +}; /* -ooo ooooo .o. ooooooo ooooo ooooooooo .oooo. .o .ooooo. -`88. .888' .888. `8888 d8' d"""""""8' .dP""Y88b o888 888' `Y88. - 888b d'888 .8"888. Y888..8P .8' ]8P' 888 888 888 - 8 Y88. .P 888 .8' `888. `8888' .8' .d8P' 888 `Vbood888 - 8 `888' 888 .88ooo8888. .8PY888. .8' .dP' 888 888' - 8 Y 888 .8' `888. d8' `888b .8' .oP .o 888 .88P' -o8o o888o o88o o8888o o888o o88888o .8' 8888888888 o888o .oP' +ooo ooooo .o. ooooooo ooooo ooooooooo .oooo. .o .ooooo. +`88. .888' .888. `8888 d8' d"""""""8' .dP""Y88b o888 888' `Y88. + 888b d'888 .8"888. Y888..8P .8' ]8P' 888 888 888 + 8 Y88. .P 888 .8' `888. `8888' .8' .d8P' 888 `Vbood888 + 8 `888' 888 .88ooo8888. .8PY888. .8' .dP' 888 888' + 8 Y 888 .8' `888. d8' `888b .8' .oP .o 888 .88P' +o8o o888o o88o o8888o o888o o88888o .8' 8888888888 o888o .oP' */ Blockly.JavaScript['tutorial_max7219_button'] = function (block) { @@ -772,13 +772,13 @@ Blockly.JavaScript['tutorial_max7219_button'] = function (block) { }; /* - .o8 oooo .oooo. .o oooooooo - "888 `888 .dP""Y88b .d88 dP""""""" - .oooo. .oooo888 oooo ooo 888 ]8P' .d'888 d88888b. -`P )88b d88' `888 `88b..8P' 888 <88b. .d' 888 `Y88b - .oP"888 888 888 Y888' 888 `88b. 88ooo888oo ]88 -d8( 888 888 888 .o8"'88b 888 o. .88P 888 o. .88P -`Y888""8o `Y8bod88P" o88' 888o o888o `8bd88P' o888o `8bd88P' + .o8 oooo .oooo. .o oooooooo + "888 `888 .dP""Y88b .d88 dP""""""" + .oooo. .oooo888 oooo ooo 888 ]8P' .d'888 d88888b. +`P )88b d88' `888 `88b..8P' 888 <88b. .d' 888 `Y88b + .oP"888 888 888 Y888' 888 `88b. 88ooo888oo ]88 +d8( 888 888 888 .o8"'88b 888 o. .88P 888 o. .88P +`Y888""8o `Y8bod88P" o88' 888o o888o `8bd88P' o888o `8bd88P' */ Blockly.JavaScript['tutorial_adxl345_show'] = function (block) { @@ -795,45 +795,39 @@ Blockly.JavaScript['adxl345_image_angle'] = function(block) { }; /* - o8o - `"' -oooo oooo d8b oooo d8b .ooooo. .ooooo. oooo ooo -`888 `888""8P `888""8P d88' `88b d88' `"Y8 `88. .8' - 888 888 888 888ooo888 888 `88..8' - 888 888 888 888 .o 888 .o8 `888' -o888o d888b d888b `Y8bod8P' `Y8bod8P' `8' + o8o + `"' +oooo oooo d8b oooo d8b .ooooo. .ooooo. oooo ooo +`888 `888""8P `888""8P d88' `88b d88' `"Y8 `88. .8' + 888 888 888 888ooo888 888 `88..8' + 888 888 888 888 .o 888 .o8 `888' +o888o d888b d888b `Y8bod8P' `Y8bod8P' `8' */ Blockly.JavaScript['tutorial_irrecv_code'] = function (block) { var value_code_ = Blockly.JavaScript.valueToCode(block, 'code_', Blockly.JavaScript.ORDER_ATOMIC); var code = 'document.getElementById("code").innerHTML = ' + value_code_ + ';\n'; return code; -}; +}; Blockly.JavaScript['tutorial_irrecv_color'] = function (block) { var value_code_ = Blockly.JavaScript.valueToCode(block, 'code_', Blockly.JavaScript.ORDER_ATOMIC); var code = 'document.getElementById("area").style.background = ' + value_code_ + ';\n'; return code; -}; +}; /* -ooooooooo. oooooooooooo ooooo oooooooooo. -`888 `Y88. `888' `8 `888' `888' `Y8b - 888 .d88' 888 888 888 888 - 888ooo88P' 888oooo8 888 888 888 - 888`88b. 888 " 888 888 888 - 888 `88b. 888 888 888 d88' -o888o o888o o888o o888o o888bood8P' +ooooooooo. oooooooooooo ooooo oooooooooo. +`888 `Y88. `888' `8 `888' `888' `Y8b + 888 .d88' 888 888 888 888 + 888ooo88P' 888oooo8 888 888 888 + 888`88b. 888 " 888 888 888 + 888 `88b. 888 888 888 d88' +o888o o888o o888o o888o o888bood8P' */ Blockly.JavaScript['tutorial_rfid_code'] = function (block) { var value_code_ = Blockly.JavaScript.valueToCode(block, 'code_', Blockly.JavaScript.ORDER_ATOMIC); var code = 'document.getElementById("show").innerHTML = ' + value_code_ + ';\n'; return code; -}; - - - - - - +}; diff --git a/generators/webduino.js b/generators/webduino.js index 232828f..7544074 100644 --- a/generators/webduino.js +++ b/generators/webduino.js @@ -629,9 +629,11 @@ Blockly.JavaScript['demo_tracking'] = function (block) { var value_var_ = Blockly.JavaScript.valueToCode(block, 'var_', Blockly.JavaScript.ORDER_ATOMIC); var dropdown_type_ = block.getFieldValue('type_'); var statements_do_ = Blockly.JavaScript.statementToCode(block, 'do_'); + var statements_standby_ = Blockly.JavaScript.statementToCode(block, 'standby_'); var share = value_var_ + '.myTracker.on("track", async function(event) {\n' + ' if (event.data.length === 0) {\n' + ' ' + value_var_ + '.context.clearRect(0, 0, ' + value_var_ + '.canvas.width, ' + value_var_ + '.canvas.height);\n' + + ' ' + statements_standby_ + '\n' + ' } else {\n' + ' ' + value_var_ + '.context.clearRect(0, 0, ' + value_var_ + '.canvas.width, ' + value_var_ + '.canvas.height);\n' + ' event.data.forEach(async function(data) {\n' + @@ -1677,7 +1679,7 @@ Blockly.JavaScript['temp_data_get'] = function (block) { var code; if (dropdown_type_ == 1) { code = '(function(){\n' + - ' function getCookie(c_name){\n' + + ' function ' + getCookie + '(c_name){\n' + ' if (document.cookie.length>0){\n' + ' var c_start=document.cookie.indexOf(c_name + "=");\n' + ' if (c_start!=-1){\n' + diff --git a/index.html b/index.html index ad4d9a8..155ef0c 100644 --- a/index.html +++ b/index.html @@ -4,18 +4,18 @@ - Webduino Blockly 線上編輯工具 + (體驗版) Webduino Blockly 編輯器 - + - + diff --git a/launcher.html b/launcher.html old mode 100644 new mode 100755 index 9dac211..40ca423 --- a/launcher.html +++ b/launcher.html @@ -28,7 +28,10 @@ if (config.page !== 'index') { $('head').append(' - - - - + + + + + diff --git a/templates/demo-area-01.html b/templates/demo-area-01.html index bcc9e49..1b6be2d 100644 --- a/templates/demo-area-01.html +++ b/templates/demo-area-01.html @@ -2,14 +2,17 @@ Webduino Blockly Demo 01 - - - - - + + + + + diff --git a/templates/demo-area-03.html b/templates/demo-area-03.html index ee51ad1..79bb71f 100644 --- a/templates/demo-area-03.html +++ b/templates/demo-area-03.html @@ -2,11 +2,11 @@ Webduino Blockly Demo 03 - - - - - + + + + + diff --git a/templates/demo-area-04.html b/templates/demo-area-04.html index 39d02e7..b154307 100644 --- a/templates/demo-area-04.html +++ b/templates/demo-area-04.html @@ -2,11 +2,11 @@ Webduino Blockly Demo 04 - - - - - + + + + +