(inputDefine, inputRecorder)
| 1078 | } // End of createRangeInput |
| 1079 | |
| 1080 | function createSelectInput(inputDefine, inputRecorder) { |
| 1081 | var selectCtx = { |
| 1082 | _optionList: [], |
| 1083 | _selectWrapperEl: null, |
| 1084 | _selectEl: null, |
| 1085 | _optionIdxToSubInput: [], |
| 1086 | _el: null, |
| 1087 | _disabled: false, |
| 1088 | }; |
| 1089 | |
| 1090 | var _SAMPLE_SELECT_DEFINITION = [ |
| 1091 | '{', |
| 1092 | ' type: "select",', |
| 1093 | ' text?: "my select:",', |
| 1094 | ' options: [', |
| 1095 | ' {text?: string, value: any},', |
| 1096 | ' {text?: string, input: {type: "range", ...}},', |
| 1097 | ' {text?: string, id: "some_option_id", input: {type: "range", ...}},', |
| 1098 | ' ...,', |
| 1099 | ' ],', |
| 1100 | ' onchange() { ... },', |
| 1101 | '}' |
| 1102 | ].join('\n'); |
| 1103 | |
| 1104 | createSelectInputElements(); |
| 1105 | |
| 1106 | var _selectListener = getBtnEventListener(inputDefine, NAMES_ON_INPUT_CHANGE); |
| 1107 | assert( |
| 1108 | _selectListener, |
| 1109 | errMsgPrefix + ' No listener specified for select. Should have either one of ' |
| 1110 | + NAMES_ON_INPUT_CHANGE.join(', ') + '.' |
| 1111 | ); |
| 1112 | |
| 1113 | initSelectInputOptions(inputDefine); |
| 1114 | |
| 1115 | selectCtx._selectEl.addEventListener('change', inputRecorder.wrapUserInputListener({ |
| 1116 | listener: function dispatchSelectInputChangedEvent() { |
| 1117 | if (selectCtx._disabled) { return; } |
| 1118 | resetSelectInputSubInputsDisabled(); |
| 1119 | triggerUserSelectChangedEvent(); |
| 1120 | }, |
| 1121 | op: 'select', |
| 1122 | createRecordArgs: function () { |
| 1123 | return [getSelectInputOptionIndex()]; |
| 1124 | }, |
| 1125 | prepareReplay: function (recordArgs) { |
| 1126 | var optionIndex = recordArgs[0]; |
| 1127 | validateOptionIndex(optionIndex); |
| 1128 | selectCtx._selectEl.value = optionIndex; |
| 1129 | return { |
| 1130 | this: selectCtx._selectEl, |
| 1131 | arguments: [] |
| 1132 | }; |
| 1133 | } |
| 1134 | })); |
| 1135 | |
| 1136 | setSelectInputInitValue(inputDefine); |
| 1137 | resetSelectInputDisabled(inputDefine); |
no test coverage detected
searching dependent graphs…