How to use releaseHandle method in Playwright Internal

Best JavaScript code snippet using playwright-internal

woeOperator.js

Source:woeOperator.js Github

copy

Full Screen

1dojo.ready(function(){2 //consistence width for button3 var width = "60px";4 dojo.style("woe_grouping_add", "width", width);5 dojo.style("woe_grouping_delete", "width", width);6 dojo.style("woe_grouping_autoCalculate", "width", width);7 dojo.style("woe_grouping_calculate", "width", width);8});9 10var WOE_Operator = {11 12 //merge select columns into woe setting column.13 mergeColumn: function(/* String[] */selectColumns, woeEditColumns){14 var mergedColumnArray = new Array();15 for(var i = 0;i < selectColumns.length;i++){//for each selected column16 mergedColumnArray.push(mergnItem(selectColumns[i], woeEditColumns));17 }18 return mergedColumnArray;19 // 20 function mergnItem(selectedColumn, woeEditColumns){21 for(var i = 0;i < woeEditColumns.length;i++){//for each woe setting column22 if(selectedColumn == woeEditColumns[i].columnName){// check if woe setting column array include selected column23 return dojo.clone(woeEditColumns[i]);24 }25 }26 // not found selected column in woeEditColumns27 return {28 columnName : selectedColumn29 };30 }31 },32 33 getValueFromGrid: function(val){34 return val == undefined ? undefined : val[0];35 }36};37//WOE setting dialog38var WOE_Setting = {39 /*-----------------------private fields-----------------------*/40 _currentWOESettigData: null,41 42 //reflected fields from WOEInforList.class43 _WOEInfoList: {44 columnName: "columnName",45 gini: "gini",46 infoValue: "inforValue",47 dataType: "dataType",// this field is not in WOEInforList.class, but WoeCalculateElement.48 infoList: "InforList"49 },50 51 //reflected fields from WOENumericNode.class52 _WOENumericNode: {53 id: "groupInfo",54 woeVal: "WOEValue",55 upper: "upper",56 bottom: "bottom"57 },58 //reflected fields from WOENominalNode.class59 _WOENominalNode: {60 id: "groupInfo",61 woeVal: "WOEValue",62 optionalVal: "choosedList"63 },64 //reflected Enumeration from WOEModelUI.dataType65 _WOEColumnType: {66 numeric: "NUMERIC",67 text: "TEXT"68 },69 70 /*71 * Numeric grouping component.72 * include 73 * 1.grid74 * 2.add Numeric row75 * 3.delete Numeric row76 * 4. return current Numeric datas.77 */78 numericComponent: {79 releaseHandle: {},80 81 initialize: function(){82 var groupingAddBtn = dijit.byId("woe_grouping_add"),83 groupingDelBtn = dijit.byId("woe_grouping_delete"),84 groupingCalculateBtn = dijit.byId("woe_grouping_calculate"),85 releaseHandle = WOE_Setting.numericComponent.releaseHandle;86 releaseHandle.groupingAddBtn = dojo.connect(groupingAddBtn, "onClick", function(){87 WOE_Setting.numericComponent.addRecord();88 });89 releaseHandle.groupingDelBtn = dojo.connect(groupingDelBtn, "onClick", function(){90 WOE_Setting.numericComponent.delRecord();91 });92 releaseHandle.currentEditColumn = dijit.byId("columnsGrid").selection.getSelected()[0];93 94 releaseHandle.groupingCalculateBtn = dojo.connect(groupingCalculateBtn, "onClick", function(){95 var isAllright = WOE_Setting.numericComponent._validateRecord();96 // get edited data array back to current column.97 WOE_Setting.numericComponent._syncNumericEditDatas(dijit.byId("columnsGrid").selection.getSelected()[0]);98 WOE_Setting.calculate(isAllright);99 });100 },101 102 finalize: function(isSyncData){103 if(isSyncData){104 // get edited data array back to current column.105 WOE_Setting.numericComponent._syncNumericEditDatas(WOE_Setting.numericComponent.releaseHandle.currentEditColumn);106 }107 108 dojo.disconnect(WOE_Setting.numericComponent.releaseHandle.groupingAddBtn);109 dojo.disconnect(WOE_Setting.numericComponent.releaseHandle.groupingDelBtn);110 dojo.disconnect(WOE_Setting.numericComponent.releaseHandle.groupingCalculateBtn);111 delete WOE_Setting.numericComponent.releaseHandle.groupingAddBtn;112 delete WOE_Setting.numericComponent.releaseHandle.groupingDelBtn;113 delete WOE_Setting.numericComponent.releaseHandle.groupingCalculateBtn;114 delete WOE_Setting.numericComponent.releaseHandle.currentEditColumn;115 },116 117 /**118 * sync numeric edit datas into current selected column info.119 */120 _syncNumericEditDatas: function(currentColumnRecorder){121 if(!currentColumnRecorder){122 //never opend section. So nothing to sync.123 return;124 }125 var numericGrid = dijit.byId("numericEditGrid"),126 rowCount = numericGrid.rowCount,127 numericDatas = new Array();128 for(var i = 0;i < rowCount;i++){129 var numericItem = numericGrid.getItem(i),130 pureItem = {};131 pureItem[WOE_Setting._WOENumericNode.id] = numericItem[WOE_Setting._WOENumericNode.id];132 pureItem[WOE_Setting._WOENumericNode.bottom] = numericItem[WOE_Setting._WOENumericNode.bottom];133 pureItem[WOE_Setting._WOENumericNode.upper] = numericItem[WOE_Setting._WOENumericNode.upper];134 //fixed MINERWEB-662 some IE explore can be filter undefined value. So manually check it.135 pureItem[WOE_Setting._WOENumericNode.woeVal] = numericItem[WOE_Setting._WOENumericNode.woeVal] ? numericItem[WOE_Setting._WOENumericNode.woeVal] : "0";136 numericDatas.push(pureItem);137 }138 currentColumnRecorder.InforList = numericDatas;139 },140 141 /**142 * private method.143 * return true if records is allright, false if any upper value was NaN.144 */145 _validateRecord: function(){146 var numericGrid = dijit.byId("numericEditGrid"),147 rowLength = numericGrid.rowCount;148 if(rowLength < 1){149 return false;150 }151 for(var i = 0;i < rowLength;i++){152 var record = numericGrid.getItem(i);153 if(!WOE_Setting.numericComponent.validateNumericItem(record, numericGrid.store._arrayOfAllItems, i)){154 return false;155 }156 }157 return true;158 },159 160 validateNumericItem: function(numericRecord, recordList, i){161 if(recordList && i != undefined){162 var previousItem = recordList[i - 1];163 if(!previousItem){164 return true;//first row 165 }166 var previousValue = alpine.flow.WorkFlowVariableReplacer.replaceVariable(WOE_Setting.getVal(previousItem[WOE_Setting._WOENumericNode.upper]));167 var currentValue = alpine.flow.WorkFlowVariableReplacer.replaceVariable(WOE_Setting.getVal(numericRecord[WOE_Setting._WOENumericNode.upper]));168 return parseFloat(previousValue) < parseFloat(currentValue);169 }else{170 var currentValue = alpine.flow.WorkFlowVariableReplacer.replaceVariable(WOE_Setting.getVal(numericRecord[WOE_Setting._WOENumericNode.upper]));171 return currentValue.toString() != Number.NaN.toString();172 }173 },174 175 /**176 * create or rebuild data grid for numeric177 */178 buildNumericGrid: function(numericRange){179 var numericStore = new dojo.data.ItemFileWriteStore({180 data: {181 items: numericRange182 }183 });184 var grid = dijit.byId("numericEditGrid");185 if(!grid){186 grid = new dojox.grid.DataGrid({187 store: numericStore,188 query: {"groupInfo": "*"},189 structure: [190 {name: alpine.nls.woe_setting_numeric_grid_id,field: WOE_Setting._WOENumericNode.id,width: "20%"},191 {name: alpine.nls.woe_setting_numeric_grid_bottomVal,field: WOE_Setting._WOENumericNode.bottom,width: "30%"},192 {193 name: alpine.nls.woe_setting_numeric_grid_upperVal,194 field: WOE_Setting._WOENumericNode.upper,195 width: "30%",196 editable: true,197 type: dojox.grid.cells._Widget,198 widgetClass: dijit.form.ValidationTextBox,199 widgetProps: {200 id: "woeNumericTextBox",201 isValid: function(){202 var value = this.get("value");203 if(!this.validator(value)){204 return false;205 }206 value = alpine.flow.WorkFlowVariableReplacer.replaceVariable(value);207 return !isNaN(value);208 },209 //on show the box, then disabled all buttons210 onFocus: function(){211 // last row is infinity record212 if((grid.rowCount - 1) == grid.focus.rowIndex){213 grid.edit.cancel();214 return;215 }216 //if the value return from validate is false, them means the all of buttons have still disabled. So nothing to do.217 if(!this.validate()){218 return;219 }220 WOE_Setting.changeButtonsState(false);221 }222 }223 },224 {name: alpine.nls.woe_setting_numeric_grid_woeVal,field: WOE_Setting._WOENumericNode.woeVal,width: "20%"}225 ]226 },"numericEditGrid");227 grid.startup();228 dojo.connect(grid, "onApplyCellEdit", grid, function(val, rowIdx){229 //on hide the box, then disabled all buttons230 if(dijit.byId("woeNumericTextBox").validate()){231 WOE_Setting.changeButtonsState(true);232 }233 this.store.setValue(this.getItem(rowIdx + 1), WOE_Setting._WOENumericNode.bottom, val);//sync value to next row's bottom.234 //avoid data can not sync to column record if click current record after excute add/del. 235 WOE_Setting.numericComponent._syncNumericEditDatas(WOE_Setting.numericComponent.releaseHandle.currentEditColumn);236 });237 }else{238 grid.setStore(numericStore);239 }240 },241 242 /**243 * fired by click add button in Numeric Panel.244 */245 addRecord: function(){246 var grid = dijit.byId("numericEditGrid"),247 lastId = grid.rowCount;248 switch(grid.rowCount){249 case 1://bad quality data. just grouping one row by automatic.250 //then delete the row and execute same no row.251 grid.store.deleteItem(grid.getItem(--lastId));252 case 0:253 //added two ranges to make sense for completely section, if there is no range in grid.254 var origin = {}, finis = {};255 origin[WOE_Setting._WOENumericNode.id] = ++lastId;256 origin[WOE_Setting._WOENumericNode.bottom] = Number.NEGATIVE_INFINITY;257 origin[WOE_Setting._WOENumericNode.upper] = 0;258 grid.store.newItem(origin);259 260 finis[WOE_Setting._WOENumericNode.id] = ++lastId;261 finis[WOE_Setting._WOENumericNode.bottom] = 0;262 finis[WOE_Setting._WOENumericNode.upper] = Number.POSITIVE_INFINITY;263 grid.store.newItem(finis);264 break;265 default: 266 var finis = grid.getItem(--lastId), //because in Array index is start with zero.267 newRange = {},268 previousRange = grid.getItem(lastId - 1);269 270 grid.store.deleteItem(finis);//remove finis range from grid271 272 newRange[WOE_Setting._WOENumericNode.id] = ++lastId;273 newRange[WOE_Setting._WOENumericNode.bottom] = grid.store.getValue(previousRange, WOE_Setting._WOENumericNode.upper);274 newRange[WOE_Setting._WOENumericNode.upper] = Number.NaN;275 grid.store.newItem(newRange);276 277 // create finis range into grid after added new range.278 finis = {};279 finis[WOE_Setting._WOENumericNode.id] = ++lastId;280 finis[WOE_Setting._WOENumericNode.bottom] = Number.NaN;281 finis[WOE_Setting._WOENumericNode.upper] = Number.POSITIVE_INFINITY;282 grid.store.newItem(finis);283 }284 grid.render();285 //avoid data can not sync to column record if click current record after excute add/del. 286 WOE_Setting.numericComponent._syncNumericEditDatas(WOE_Setting.numericComponent.releaseHandle.currentEditColumn);287 },288 289 /**290 * fired by click delete button in Numeric Panel.291 */292 delRecord: function(){293 var numericGrid = dijit.byId("numericEditGrid"),294 deleteNumericRecords;295 deleteNumericRecords = numericGrid.selection.getSelected();296 if(deleteNumericRecords.length < 1){297 popupComponent.alert(alpine.nls.woe_setting_alert_delete_norecord);298 return;299 }300 popupComponent.confirm(alpine.nls.woe_setting_confirm_delete, {301 handle: function(){302 var numericStore = numericGrid.store;303 304 if(numericGrid.rowCount < 3){//must be only two rows of -infinity and infinity in the grid. delete them if selected both of them. 305 numericGrid.selection.selectRange(0, numericGrid.rowCount - 1);306 numericGrid.removeSelectedRows();307 numericGrid.render();308 }else{309 // remove the first and last range select.310 numericGrid.selection.deselect(0);311 numericGrid.selection.deselect(numericGrid.rowCount - 1);312 numericGrid.removeSelectedRows();313 numericGrid.render();314 315 //update last range id and sync bottom field to previous range.316 var rowLength = numericGrid.rowCount;317 var finis = numericGrid.getItem(numericGrid.rowCount - 1);318 var previous = numericGrid.getItem(numericGrid.rowCount - 2);319 numericGrid.store.setValue(finis, WOE_Setting._WOENumericNode.id, rowLength);320 numericGrid.store.setValue(finis, WOE_Setting._WOENumericNode.bottom, numericGrid.store.getValue(previous, WOE_Setting._WOENumericNode.upper));321 WOE_Setting.realignRecordId("numericEditGrid");322 }323 //avoid data can not sync to column record if click current record after excute add/del. 324 WOE_Setting.numericComponent._syncNumericEditDatas(WOE_Setting.numericComponent.releaseHandle.currentEditColumn);325 }326 }, {//fired on click cancel buttons327 handle: function(){328 numericGrid.selection.deselectAll();329 }330 });331 }332 },333 /*334 * nominal grouping component.335 * include 336 * 1.grid.337 * 2.add Nominal row.338 * 3.delete Nominal row.339 * 4.return current Nominal datas.340 * 5.attach values to nominal Column.341 */342 nominalComponent: {343 releaseHandle: {},344 345 initialize: function(){346 var groupingAddBtn = dijit.byId("woe_grouping_add"),347 groupingDelBtn = dijit.byId("woe_grouping_delete"),348 groupingCalculateBtn = dijit.byId("woe_grouping_calculate");349 submitOpValBtn = dijit.byId("submitOptionalVal"),350 cancelOpValBtn = dijit.byId("cancelOptionalVal"),351 352 releaseHandle = WOE_Setting.nominalComponent.releaseHandle;353 releaseHandle.groupingAddBtn = dojo.connect(groupingAddBtn, "onClick", function(){354 WOE_Setting.nominalComponent.addRecord();355 });356 releaseHandle.groupingDelBtn = dojo.connect(groupingDelBtn, "onClick", function(){357 WOE_Setting.nominalComponent.delRecord();358 });359 360 releaseHandle.groupingCalculateBtn = dojo.connect(groupingCalculateBtn, "onClick", function(){361 var isAllright = WOE_Setting.nominalComponent._validateRecord();362 // get edited data array back to current column.363 WOE_Setting.nominalComponent._syncNominalEditDatas(dijit.byId("columnsGrid").selection.getSelected()[0]);364 WOE_Setting.calculate(isAllright);365 });366 releaseHandle.currentEditColumn = dijit.byId("columnsGrid").selection.getSelected()[0];367 368 releaseHandle.submitOpValBtn = dojo.connect(submitOpValBtn, "onClick", function(){369 var optionalValSel = dijit.byId("optionalValSel");370// optionalValSel.required = true;371// if(!optionalValSel.validate()){372// return;373// }374// optionalValSel.required = false;375 var nominalGrid = dijit.byId("nominalEditGrid");376 var editRow = nominalGrid.selection.getSelected()[0];377 nominalGrid.store.setValue(editRow, WOE_Setting._WOENominalNode.optionalVal, optionalValSel.getValue().toString());378 dijit.byId("editWOEOptionalVal").hide();379 nominalGrid.render();380 //avoid data can not sync to column record if click current record after excute add/del. 381 WOE_Setting.nominalComponent._syncNominalEditDatas(WOE_Setting.nominalComponent.releaseHandle.currentEditColumn);382 });383 384 releaseHandle.cancelOpValBtn = dojo.connect(cancelOpValBtn, "onClick", function(){385 dijit.byId("optionalValSel").reset();386 dijit.byId("editWOEOptionalVal").hide();387 });388 },389 390 391 392 finalize: function(isSyncData){393 if(isSyncData){394 // get edited data array back to current column.395 WOE_Setting.nominalComponent._syncNominalEditDatas(WOE_Setting.nominalComponent.releaseHandle.currentEditColumn);396 }397 var nominalGrid = dijit.byId("nominalEditGrid");398 if(nominalGrid && nominalGrid.edit.isEditing()){399 nominalGrid.edit.apply();//for IE cannot be apply by itself.400 }401 dojo.disconnect(WOE_Setting.nominalComponent.releaseHandle.groupingAddBtn);402 dojo.disconnect(WOE_Setting.nominalComponent.releaseHandle.groupingDelBtn);403 dojo.disconnect(WOE_Setting.nominalComponent.releaseHandle.groupingCalculateBtn);404 dojo.disconnect(WOE_Setting.nominalComponent.releaseHandle.submitOpValBtn);405 dojo.disconnect(WOE_Setting.nominalComponent.releaseHandle.cancelOpValBtn);406 delete WOE_Setting.nominalComponent.releaseHandle.groupingAddBtn;407 delete WOE_Setting.nominalComponent.releaseHandle.groupingDelBtn;408 delete WOE_Setting.nominalComponent.releaseHandle.groupingCalculateBtn;409 delete WOE_Setting.nominalComponent.releaseHandle.submitOpValBtn;410 delete WOE_Setting.nominalComponent.releaseHandle.cancelOpValBtn;411 delete WOE_Setting.nominalComponent.releaseHandle.currentEditColumn;412 },413 /**414 * sync nominal edit datas into current selected column info.415 */416 _syncNominalEditDatas: function(editColumn){417 if(!editColumn){418 //never opend section. So nothing to sync.419 return;420 }421 var nominalGrid = dijit.byId("nominalEditGrid"),422 rowCount = nominalGrid.rowCount,423 nominalDatas = new Array();424 for(var i = 0;i < rowCount;i++){425 var nominalItem = nominalGrid.getItem(i),426 pureItem = {};427 pureItem[WOE_Setting._WOENominalNode.id] = nominalItem[WOE_Setting._WOENominalNode.id];428 pureItem[WOE_Setting._WOENominalNode.optionalVal] = nominalItem[WOE_Setting._WOENominalNode.optionalVal][0] == undefined ? [] : nominalItem[WOE_Setting._WOENominalNode.optionalVal][0].split(",");429 //fixed MINERWEB-662 some IE explore can be filter undefined value. So manually check it.430 pureItem[WOE_Setting._WOENominalNode.woeVal] = nominalItem[WOE_Setting._WOENominalNode.woeVal] ? nominalItem[WOE_Setting._WOENominalNode.woeVal] : "0";431 nominalDatas.push(pureItem);432 }433 editColumn.InforList = nominalDatas;434 },435 436 /**437 * private method.438 * return true if records are allright, false if any optional values was null string e.g.("").439 */440 _validateRecord: function(){441 var nominalGrid = dijit.byId("nominalEditGrid"),442 rowLength = nominalGrid.rowCount;443 if(rowLength < 1){444 return false;445 }446 for(var i = 0;i < rowLength;i++){447 var record = nominalGrid.getItem(i);448 if(!WOE_Setting.nominalComponent.validateNominalItem(record)){449 return false;450 }451 }452 return true;453 },454 455 validateNominalItem: function(nominalItem){456 var nominalVal = WOE_Setting.getVal(nominalItem[WOE_Setting._WOENominalNode.optionalVal]);457 return nominalVal != "";458 },459 460 //build all of available values in current column.461 _buildAvailableOptionalVals: function(currentNominalItem){462 var columnGrid = dijit.byId("columnsGrid"),463 columnStore = columnGrid.store,464 currentColumn = columnGrid.selection.getSelected(),465 allOfOpVals = dojo.clone(currentColumn[0].columnValues),466 currentColumnNominalGrid = dijit.byId("nominalEditGrid"),467 currentColumnNominalGridStore = currentColumnNominalGrid.store;468 for(var i = 0;i < currentColumnNominalGrid.rowCount;i++){469 var nominalItem = currentColumnNominalGrid.getItem(i),470 optionalVals = currentColumnNominalGridStore.getValue(nominalItem, WOE_Setting._WOENominalNode.optionalVal).split(",");471 if(nominalItem == currentNominalItem){472 continue;473 }474 for(var j = 0;j < optionalVals.length;j++){475 var idx = dojo.indexOf(allOfOpVals, optionalVals[j]);476 if(idx == -1){// avoid '[""]' of new record. 477 continue;478 }479 allOfOpVals.splice(idx, 1);480 }481 }482 return allOfOpVals;483 },484 485 //attach values to column information, which type is nominal486 attachNominalValues: function(nominalColumnValues, woeEditColumns){487 for(var i = 0;i < woeEditColumns.length;i++){//for each woe setting column488 var values = nominalColumnValues[woeEditColumns[i].columnName];489 if(values){490 woeEditColumns[i].columnValues = values;491 }492 }493 },494 495 /**496 * create or rebuild data grid for nominal497 */498 buildNominalGrid: function(nominalRange){499 var nominalStore = new dojo.data.ItemFileWriteStore({500 data: {501 items: nominalRange502 }503 });504 var grid = dijit.byId("nominalEditGrid");505 if(!grid){506 grid = new dojox.grid.DataGrid({507 store: nominalStore,508 query: {"groupInfo": "*"},509 structure: [510 {name: alpine.nls.woe_setting_nominal_grid_id,field: WOE_Setting._WOENominalNode.id,width: "20%"},511 {512 name: alpine.nls.woe_setting_nominal_grid_optionalVal,513 field: WOE_Setting._WOENominalNode.optionalVal,514 width: "50%",515 editable: true,516 type: dojox.grid.cells._Widget,517 widgetClass: dijit.form.Button,518 widgetProps: {519 id: "editOptionValBtn",520 label: alpine.nls.woe_setting_nominal_button_editOpVal,521 baseClass: "workflowButton",522 onClick: function(){523 524 var row = grid.selection.getSelected()[0],525 currentOpVals = grid.store.getValue(row, WOE_Setting._WOENominalNode.optionalVal).split(","),526 optionalValSel = dijit.byId("optionalValSel"),527 availableVals = WOE_Setting.nominalComponent._buildAvailableOptionalVals(row);528 529 optionalValSel.removeOption(optionalValSel.getOptions());530 for(var i = 0;i < availableVals.length;i++){531 var op = {532 label: availableVals[i],533 value: availableVals[i]534 };535 if(dojo.indexOf(currentOpVals, availableVals[i]) != -1){536 op.selected = true;537 }538 optionalValSel.addOption(op);539 }540 541 542 var options = optionalValSel.getOptions();543 if(options.length < 1){544 popupComponent.alert(alpine.nls.woe_setting_nominal_alert_noAvailableValue, function(){545 dijit.byId("nominalEditGrid").removeSelectedRows();546 });547 return;548 }549 dijit.byId("editWOEOptionalVal").show();550 } 551 }552 },553 {name: alpine.nls.woe_setting_nominal_grid_woeVal,field: WOE_Setting._WOENominalNode.woeVal,width: "30%"}554 ]555 },"nominalEditGrid");556 dojo.connect(grid, "onStartEdit", grid, function(cell, rowIdx){557 //avoid multiple select row558 this.selection.deselectAll();559 this.selection.select(rowIdx);560 });561 grid.startup();562 }else{563 grid.setStore(nominalStore);564 grid.render();565 }566 },567 568 /**569 * create new row for nominal record.570 * fired on click add button in nominal panel.571 */572 addRecord: function(){573 var grid = dijit.byId("nominalEditGrid"),574 lastId = grid.rowCount;575 newRecord = {},576 availableOptVals = WOE_Setting.nominalComponent._buildAvailableOptionalVals(null);577 if(grid && grid.edit.isEditing()){578 grid.edit.apply();//for IE cannot be apply by itself.579 }580 if(availableOptVals.length < 1){581 popupComponent.alert(alpine.nls.woe_setting_nominal_alert_noAvailableValue);582 return;583 }584 newRecord[WOE_Setting._WOENominalNode.id] = ++lastId;585 newRecord[WOE_Setting._WOENominalNode.optionalVal] = "";586 grid.store.newItem(newRecord);587 grid.render();588 //avoid data can not sync to column record if click current record after excute add/del. 589 WOE_Setting.nominalComponent._syncNominalEditDatas(WOE_Setting.nominalComponent.releaseHandle.currentEditColumn);590 },591 592 /**593 * fired on click delete button in nominal panel.594 */595 delRecord: function(){596 var nominalGrid = dijit.byId("nominalEditGrid"),597 deleteNominalRecords;598 599 deleteNominalRecords = nominalGrid.selection.getSelected();600 if(deleteNominalRecords.length < 1){601 popupComponent.alert(alpine.nls.woe_setting_alert_delete_norecord);602 return;603 }604 popupComponent.confirm(alpine.nls.woe_setting_confirm_delete, {605 handle: function(){606 nominalGrid.removeSelectedRows();607 WOE_Setting.realignRecordId("nominalEditGrid");608 nominalGrid.render();609 //avoid data can not sync to column record if click current record after excute add/del. 610 WOE_Setting.nominalComponent._syncNominalEditDatas(WOE_Setting.nominalComponent.releaseHandle.currentEditColumn);611 }612 }, {613 handle: function(){614 nominalGrid.selection.deselectAll();615 }616 });617 }618 },619 620 /*-----------------------Methods-----------------------*/621 showWoeSetting: function(prop){622 var dataList;623 // get selected columns624 var propList = WOE_Setting._getOperatorDTO().propertyList;625 var selectedColumns,dependentColumn;626 for(var pli = 0;pli < propList.length;pli++){627 if(propList[pli].name == "columnNames"){628 if (!propList[pli].valid)629 {630 popupComponent.alert(alpine.nls.woe_setting_alert_invalidcolumns);631 return;632 }633 selectedColumns = propList[pli].selected;634 }635 }636 if(selectedColumns.length < 1){637 popupComponent.alert(alpine.nls.woe_setting_alert_nocolumn);638 return;639 }640 //delete selected column from selected list if it is dependent column.641 var idx = dojo.indexOf(selectedColumns, CurrentDependentColumn);642 if(idx != -1){643 selectedColumns.splice(idx, 1);644 }645 646 WOE_Setting._currentWOESettigData = prop;647 dijit.byId("woeSettingWindow").titleBar.style.display = "none";648 dijit.byId("woeSettingWindow").show();649 dataList = prop.woeModel.calculateElements;650 651 //merge selected columns and woe setting columns652 var editColumns = WOE_Operator.mergeColumn(selectedColumns, dataList);653 654 WOE_Setting._adaptWOEInforListArray(editColumns);655 WOE_Setting.nominalComponent.attachNominalValues(prop.woeModel.nominalColumnValues, editColumns);656 WOE_Setting.startup(editColumns);657 },658 659 submitWoeSetting: function(){660 //following is force synchronize edit data to grid.661// dijit.byId("editType").selectChild("woeDefaultEditGrid", true);662 WOE_Setting.numericComponent._syncNumericEditDatas(WOE_Setting.numericComponent.releaseHandle.currentEditColumn);663 WOE_Setting.nominalComponent._syncNominalEditDatas(WOE_Setting.nominalComponent.releaseHandle.currentEditColumn);664 665 var columnGrid = dijit.byId("columnsGrid"),666 rowCount = columnGrid.rowCount,667 columnList = new Array();668 669 for(var i = 0;i < rowCount;i++){670 var originalColumn = columnGrid.getItem(i);671 if(WOE_Setting.getVal(originalColumn[WOE_Setting._WOEInfoList.dataType]) == WOE_Setting._WOEColumnType.numeric){672 for(var j = 0;j < originalColumn.InforList.length;j++){673 var isPass = WOE_Setting.numericComponent.validateNumericItem(originalColumn.InforList[j], originalColumn.InforList, j);674 if(!isPass){675 popupComponent.alert(alpine.nls.woe_setting_grid_validate_false);676 return;677 }678 }679 }else{680 for(var j = 0;j < originalColumn.InforList.length;j++){681 var isPass = WOE_Setting.nominalComponent.validateNominalItem(originalColumn.InforList[j]);682 if(!isPass){683 popupComponent.alert(alpine.nls.woe_setting_grid_validate_false);684 return;685 }686 }687 }688 columnList.push(WOE_Setting._restructureColumnInfoFromGrid(originalColumn));689 }690 WOE_Setting._currentWOESettigData.woeModel.calculateElements = columnList;691 var sourceButtonId = getSourceButtonId(WOE_Setting._currentWOESettigData);692 setButtonBaseClassValid(sourceButtonId) ;693 WOE_Setting.closeWoeSetting();694 },695 696 closeWoeSetting: function(){697 WOE_Setting.numericComponent.finalize(false);698 WOE_Setting.nominalComponent.finalize(false);699 dijit.byId("woeSettingWindow").hide();700 },701 702 /**703 * initialize Setting dialog.704 */705 startup: function(settingData){706 this.buildColumnGrid(settingData);707 if(settingData.length > 0){//select the first row708 var columnGrid = dijit.byId("columnsGrid"),709 rowIdx = 0;710 columnGrid.selection.select(rowIdx);711 WOE_Setting.openEditor(columnGrid.getItem(rowIdx));712 }713 //binding event on button714 },715 716 /**717 * create or rebuild columns information.718 */719 buildColumnGrid: function(calculatedColumns){720 var columnStore = new dojo.data.ItemFileWriteStore({721 data: {722 items: calculatedColumns723 }724 });725 var grid = dijit.byId("columnsGrid");726 if(!grid){727 grid = new dojox.grid.DataGrid({728 store: columnStore,729 query: {"columnName": "*"},730 selectionMode: "single",731 structure: [732 {name: "Column Name",field: this._WOEInfoList.columnName,width: "30%"},733 {name: "Gini",field: this._WOEInfoList.gini,width: "35%"},734 {name: "Info Value",field: this._WOEInfoList.infoValue,width: "35%"}735 ]736 },"columnsGrid");737 grid.startup();738 dojo.connect(grid,"onRowClick", grid,function(e){739 WOE_Setting.openEditor(this.getItem(this.focus.rowIndex));740 });741 }else{742 grid.setStore(columnStore);743 }744 },745 746 //realign id of records after delete operation.747 realignRecordId: function(gridWidgetID){748 var grid = dijit.byId(gridWidgetID);749 if(!grid){750 return;751 }752 var rowCount = grid.rowCount;753 if(grid.store._arrayOfTopLevelItems.length == 0){754 return;//if delete all of records. then not need to realign id.755 }756 for(var i = 0;i < rowCount;i++){757 var item = grid.getItem(i);758 if(item == null){//grid can not be refresh row immediately, so check if item was deleted, ignore it.759 continue;760 }761 grid.store.setValue(item, "groupInfo", i + 1);762 }763 },764 765 openEditor: function(row){766 var group = row.InforList,767 grid = dijit.byId("columnsGrid");768 columnStore = grid.store;769 var editTypeContainer = dijit.byId("editType"),770 editPanelArray = editTypeContainer.getChildren();771 //following is enable to invoke finalize function, which is current render panel.772// editTypeContainer.selectChild("woeDefaultEditGrid", true);773 WOE_Setting.numericComponent.finalize(false);774 WOE_Setting.nominalComponent.finalize(false);775 776 switch(grid.store.getValue(row,WOE_Setting._WOEInfoList.dataType)){777 case WOE_Setting._WOEColumnType.numeric:778 dijit.byId("editType").selectChild("numericType",true);779 WOE_Setting.numericComponent.buildNumericGrid(refineGroup(group, WOE_Setting._WOENumericNode));780 WOE_Setting.numericComponent.initialize();781 break;782 case WOE_Setting._WOEColumnType.text:783 dijit.byId("editType").selectChild("nominalType",true);784 785 WOE_Setting.nominalComponent.buildNominalGrid(refineGroup(group, WOE_Setting._WOENominalNode, function(attr, item){786 if(WOE_Setting._WOENominalNode[attr] == WOE_Setting._WOENominalNode.optionalVal){// check if optional values, then make it into string787 return item[WOE_Setting._WOENominalNode[attr]].toString();788 }else{789 return WOE_Operator.getValueFromGrid(item[WOE_Setting._WOENominalNode[attr]]);790 }791 }));792 //As onEditCell depend on grid, so initialize function must be follow buildGrid function.793 WOE_Setting.nominalComponent.initialize();794 break;795 }796 //remove fields which create by dojo grid797 function refineGroup(items, originalBean, fn){798 var refinedArray = new Array();799 fn = fn || function(attr, item){800 return WOE_Operator.getValueFromGrid(item[originalBean[attr]]);801 };802 for(var i = 0; i < items.length; i++){803 var item = items[i];804 var res = {};805 for(var attr in originalBean){806 res[originalBean[attr]] = fn(attr, item);807 }808 refinedArray.push(res);809 }810 return refinedArray;811 }812 },813 814 /**815 * fired by click auto group button816 */817 autoGroup: function(){818 WOE_Setting._requestAutoCalculate(dijit.byId("columnsGrid").store._arrayOfTopLevelItems, WOE_Setting._fillGroupData);819 },820 821 /**822 * fired by auto calculate for single column823 */824 autoCalculate: function(){825 var selectedColumns = dijit.byId("columnsGrid").selection.getSelected();826 if(selectedColumns.length < 1){827 popupComponent.alert(alpine.nls.woe_setting_column_noselected);828 return;829 }830 WOE_Setting._requestAutoCalculate(selectedColumns, WOE_Setting._fillElementGroupData);831 },832 833 /**834 * fired by click calculate button to calculate column's WOE value.835 * argument is validat result for numeric or nominal Grid.836 */837 calculate: function(dataIsAllright){838 if(!dataIsAllright){839 popupComponent.alert(alpine.nls.woe_setting_grid_validate_false);840 return;841 }842 var selectedColumns = dijit.byId("columnsGrid").selection.getSelected();843 if(selectedColumns.length < 1){844 popupComponent.alert(alpine.nls.woe_setting_column_noselected);845 return;846 }847 848 WOE_Setting._requestCalculate(selectedColumns[0], function(calculatedColumn){849 WOE_Setting._fillElementGroupData([calculatedColumn]);850 });851 },852 853 _requestCalculate: function(column, fn){854 //progressBar.showLoadingBar();855 var parameters = WOE_Setting._buildWOECalculateParam([column]);856 ds.post(857 baseURL + "/main/flow/woeOperator.do?method=calculate",858 parameters,859 fn , null, false, "woeSettingWindow"860 );861 },862 863 _requestAutoCalculate: function(columns, fn){864 //progressBar.showLoadingBar();865 var parameters = WOE_Setting._buildWOECalculateParam(columns);866 ds.post(867 baseURL + "/main/flow/woeOperator.do?method=autoCalculate",868 parameters,869 fn, null, false, "woeSettingWindow"870 );871 },872 873 _adaptWOEInforListArray: function(settingDatas){874 for(var i = 0; i < settingDatas.length; i++){875 var infoList;876 //make sure the infoList ready877 if(settingDatas[i].InforList == undefined){878 settingDatas[i].InforList = [];879 }880 infoList = settingDatas[i].InforList;881 //synchronize column's data type882 settingDatas[i][WOE_Setting._WOEInfoList.dataType] = WOE_Setting._currentWOESettigData.woeModel.columnTypeInfo[settingDatas[i].columnName];883 for(var j = 0;j < infoList.length;){884 infoList[j].groupInfo = ++j;885 }886 }887 return settingDatas;888 },889 890 /**891 * for all of columns calculate892 */893 _fillGroupData: function(settingDatas){894 if(settingDatas.error_code){895 //progressBar.closeLoadingBar();896 popupComponent.alert(settingDatas.message);897 }else{898 WOE_Setting._adaptWOEInforListArray(settingDatas);899 WOE_Setting.nominalComponent.attachNominalValues(WOE_Setting._currentWOESettigData.woeModel.nominalColumnValues, settingDatas);900 WOE_Setting.startup(settingDatas);901 //progressBar.closeLoadingBar();902 }903 },904 905 /**906 * for single columns calculate907 */908 _fillElementGroupData: function(settingDatas){909 if(settingDatas.error_code){910 //progressBar.closeLoadingBar();911 if (settingDatas.error_code == -1) {912 popupComponent.alert(alpine.nls.no_login, "",function() {913 window.top.location.pathname = loginURL;914 });915 }916 else if (settingDatas.error_code == -2) {917 popupComponent.alert(alpine.nls.session_ended, "",function() {918 window.top.location.pathname = loginURL;919 });920 }921 else if(settingDatas.message){922 popupComponent.alert(settingDatas.message);923 }924 return; 925 }926 var columnGrid = dijit.byId("columnsGrid"),927 selectedColumn = columnGrid.selection.getSelected()[0],928 columnStore = columnGrid.store;929 WOE_Setting._adaptWOEInforListArray(settingDatas);930 WOE_Setting.nominalComponent.attachNominalValues(WOE_Setting._currentWOESettigData.woeModel.nominalColumnValues, settingDatas);931 //fill column grid and refresh.932 columnStore.setValue(selectedColumn, WOE_Setting._WOEInfoList.gini, settingDatas[0][WOE_Setting._WOEInfoList.gini]);933 columnStore.setValue(selectedColumn, WOE_Setting._WOEInfoList.infoValue, settingDatas[0][WOE_Setting._WOEInfoList.infoValue]);934 var calulatedInfoList = settingDatas[0][WOE_Setting._WOEInfoList.infoList];935 for(var i = 0;i < calulatedInfoList.length;i++){936 for(var item in WOE_Setting._WOENumericNode){937 calulatedInfoList[i][WOE_Setting._WOENumericNode[item]] = [calulatedInfoList[i][WOE_Setting._WOENumericNode[item]]];938 }939 }940 941 selectedColumn[WOE_Setting._WOEInfoList.infoList] = calulatedInfoList;942 columnGrid.render();943 944 //re-build info list grid.945 WOE_Setting.openEditor(selectedColumn);946 //progressBar.closeLoadingBar();947 },948 949 /**950 * create calculate parameters for server side.951 */952 _buildWOECalculateParam: function(columns){953 var opDTO = WOE_Setting._getOperatorDTO(),954 columnList = new Array(),955 propertyList = WOE_Setting._getOperatorDTO().propertyList,956 dependentColumn,957 goodValue,958 columnNames;959 960 for(var i = 0;i < columns.length;i++){961 var originalColumn = columns[i];962 columnList.push(WOE_Setting._restructureColumnInfoFromGrid(originalColumn));963 }964 965 get_current_operator_data(propertyList,false);966 for(var idx = 0;idx < propertyList.length;idx++){967 switch(propertyList[idx].name){968 case "dependentColumn":969 dependentColumn = propertyList[idx].value970 break;971 case "goodValue":972 goodValue = propertyList[idx].value973 break;974 case "columnNames":975 columnNames = propertyList[idx].selected.toString();976 break;977 }978 }979 return {980 flowInfo: opDTO.flowInfo,981 calculateElements: columnList,982 dependentColumn: dependentColumn,983 goodValue: goodValue,984 columnNames: columnNames,985 operatorUUID: WOE_Setting._getOperatorDTO().uuid986 };987 },988 989 _restructureColumnInfoFromGrid: function(original){990 var columnInfo = {};991 columnInfo.columnName = WOE_Operator.getValueFromGrid(original[WOE_Setting._WOEInfoList.columnName]);992 columnInfo.dataType = WOE_Operator.getValueFromGrid(original[WOE_Setting._WOEInfoList.dataType]);993 columnInfo.gini = WOE_Operator.getValueFromGrid(original[WOE_Setting._WOEInfoList.gini]) ? WOE_Operator.getValueFromGrid(original[WOE_Setting._WOEInfoList.gini]) : "0";994 columnInfo.inforValue = WOE_Operator.getValueFromGrid(original[WOE_Setting._WOEInfoList.infoValue]) ? WOE_Operator.getValueFromGrid(original[WOE_Setting._WOEInfoList.infoValue]) : "0";995 columnInfo.InforList = _restructureInfoList(original[WOE_Setting._WOEInfoList.infoList], original[WOE_Setting._WOEInfoList.dataType][0]);996 997 return columnInfo;998 //restructure info list by data type999 function _restructureInfoList(infoList, dataType){1000 var templateClass,1001 resInfoList = new Array(),1002 getValHandle;1003 switch(dataType){1004 case WOE_Setting._WOEColumnType.numeric:1005 templateClass = WOE_Setting._WOENumericNode;1006 getValHandle = function(item, attr){1007 return WOE_Operator.getValueFromGrid(item[attr]);//alpine.flow.WorkFlowVariableReplacer.replaceVariable(WOE_Operator.getValueFromGrid(item[attr]));1008 };1009 break;1010 case WOE_Setting._WOEColumnType.text:1011 templateClass = WOE_Setting._WOENominalNode;1012 getValHandle = function(item, attr){1013 if(attr == WOE_Setting._WOENominalNode.optionalVal){// check if optional values then just return it. Because it already a Array1014 return item[attr];1015 }else{1016 return WOE_Operator.getValueFromGrid(item[attr]);1017 }1018 };1019 break;1020 }1021 for(var i = 0;i < infoList.length;i++){1022 var info = infoList[i],1023 resInfo = {};1024 for(var fieldNameItem in templateClass){1025 var fieldName = templateClass[fieldNameItem];1026 resInfo[fieldName] = getValHandle(info, fieldName);1027 }1028 resInfoList.push(resInfo);1029 }1030 return resInfoList;1031 }1032 },1033 1034 /**1035 * change auto group, add, delete, auto calculate, calculate of buttons state.1036 */1037 changeButtonsState: function(activity){1038 dijit.byId("woe_grouping_add").set("disabled", !activity);1039 dijit.byId("woe_grouping_delete").set("disabled", !activity);1040 dijit.byId("woe_grouping_autoCalculate").set("disabled", !activity);1041 dijit.byId("woe_grouping_calculate").set("disabled", !activity);1042 dijit.byId("woe_autoGrouping").set("disabled", !activity);1043 dijit.byId("woe_submit_prop").set("disabled", !activity);1044 dijit.byId("woe_cancel_prop").set("disabled", !activity);1045 },1046 1047 _releaseResources: function(){1048 WOE_Setting._currentWOESettigData = null;1049 },1050 1051 _getOperatorDTO: function(){1052 return CurrentOperatorDTO;1053 },1054 1055 getVal: function(val){1056 return dojo.isArray(val) ? val[0] : val;1057 }...

Full Screen

Full Screen

slider.js

Source:slider.js Github

copy

Full Screen

...124 let newVal = _this._calcTouchVal(ev.clientY);125 126 _this.setState({ val: newVal });127 },128 releaseHandle: function releaseHandle(ev) {129 ev.preventDefault();130 ev.stopPropagation();131 document.body.removeEventListener("touchmove", _this.handlers.moveHandle); 132 document.body.removeEventListener("mousemove", _this.handlers.moveHandle);133 document.body.removeEventListener("mouseup", _this.handlers.releaseHandle); 134 document.body.removeEventListener("touchend", _this.handlers.releaseHandle); 135 }136 };137 this.svgEls.overlay.addEventListener("mousedown", _this.handlers.touchBody);138 this.svgEls.overlay.addEventListener("touchstart", _this.handlers.touchBody);139 this.svgEls.handle.addEventListener("mousedown", _this.handlers.touchHandle);140 this.svgEls.handle.addEventListener("touchstart", _this.handlers.touchHandle);141 }142 /**...

Full Screen

Full Screen

splitter-view.js

Source:splitter-view.js Github

copy

Full Screen

...71 newLeftWidth = clamp(newLeftWidth, MIN_WIDTH_PERCENT, 100 - MIN_WIDTH_PERCENT);72 newRightWidth = 100 - newLeftWidth;73 updateSplitterPanels(newLeftWidth, newRightWidth);74 }75 function releaseHandle(evt) {76 iElm[0].removeAttribute('trigger','true');77 prevWidth = newLeftWidth;78 nextWidth = newRightWidth;79 80 let containerWidth = getContainerWidth();81 scope.onMove({leftWidth: prevWidth*containerWidth/100, rightWidth: nextWidth*containerWidth[0]/100});82 iElm.removeClass(SCRUB_CLS);83 body.removeEventListener('pointermove', moveHandle);84 body.removeEventListener('pointerup', releaseHandle);85 isDragging = false;86 }87 handleElm[0].addEventListener('pointerdown', evt => {88 iElm[0].setAttribute('trigger','true');89 if(iElm[0].getAttribute('isScrolling') == 'true') {...

Full Screen

Full Screen

knob.js

Source:knob.js Github

copy

Full Screen

...16}17const grabHandle = (state, emit) => (e) => {18 const id = e.target.closest('div[id]').id19 const onmove = moveListener(id, state, emit)20 const onrelease = releaseHandle(id, state, emit)21 state.components[id].startValue = state.components[id].data22 state.components[id].mouseDown = e.clientX23 state.components[id].release = () => {24 window.removeEventListener('mousemove', onmove)25 window.removeEventListener('mouseup', onrelease)26 }27 28 window.addEventListener('mousemove', onmove)29 window.addEventListener('mouseup', onrelease)30 document.body.classList.add('grabbing')31 e.stopPropagation()32}33const knob = (app, id, callback) => {34 // setup listener for knob adjustments...

Full Screen

Full Screen

classes_f.js

Source:classes_f.js Github

copy

Full Screen

1var searchData=2[3 ['readout',['Readout',['../class_d_d4hep_1_1_geometry_1_1_readout.html',1,'DD4hep::Geometry']]],4 ['readoutobject',['ReadoutObject',['../class_d_d4hep_1_1_geometry_1_1_readout_object.html',1,'DD4hep::Geometry']]],5 ['refcountedsequence',['RefCountedSequence',['../class_d_d4hep_1_1_simulation_1_1_ref_counted_sequence.html',1,'DD4hep::Simulation']]],6 ['refcountedsequence_3c_20geant4sensdetactionsequence_20_3e',['RefCountedSequence&lt; Geant4SensDetActionSequence &gt;',['../class_d_d4hep_1_1_simulation_1_1_ref_counted_sequence.html',1,'DD4hep::Simulation']]],7 ['refelement',['RefElement',['../class_d_d4hep_1_1_x_m_l_1_1_ref_element.html',1,'DD4hep::XML']]],8 ['referencebitmask',['ReferenceBitMask',['../class_d_d4hep_1_1_reference_bit_mask.html',1,'DD4hep']]],9 ['referenceobject',['ReferenceObject',['../class_d_d4hep_1_1_reference_object.html',1,'DD4hep']]],10 ['referenceobjects',['ReferenceObjects',['../class_d_d4hep_1_1_reference_objects.html',1,'DD4hep']]],11 ['region',['Region',['../class_d_d4hep_1_1_geometry_1_1_region.html',1,'DD4hep::Geometry']]],12 ['regionobject',['RegionObject',['../class_d_d4hep_1_1_geometry_1_1_region_object.html',1,'DD4hep::Geometry']]],13 ['releasehandle',['ReleaseHandle',['../class_d_d4hep_1_1_release_handle.html',1,'DD4hep']]],14 ['releasehandles',['ReleaseHandles',['../class_d_d4hep_1_1_release_handles.html',1,'DD4hep']]],15 ['releaseobject',['ReleaseObject',['../class_d_d4hep_1_1_release_object.html',1,'DD4hep']]],16 ['releaseobjects',['ReleaseObjects',['../class_d_d4hep_1_1_release_objects.html',1,'DD4hep']]],17 ['rep',['Rep',['../struct_ti_xml_string_1_1_rep.html',1,'TiXmlString']]],18 ['rhophiprojection',['RhoPhiProjection',['../class_d_d4hep_1_1_rho_phi_projection.html',1,'DD4hep']]],19 ['rhozprojection',['RhoZProjection',['../class_d_d4hep_1_1_rho_z_projection.html',1,'DD4hep']]],20 ['rootui',['ROOTUI',['../class_d_d4hep_1_1_r_o_o_t_u_i.html',1,'DD4hep']]]...

Full Screen

Full Screen

release.js

Source:release.js Github

copy

Full Screen

...16 console.error(`请设置发布环境`);17 return;18 }19 const { address, dirname } = release;20 releaseHandle(address, branch, dirname, name, options);...

Full Screen

Full Screen

cli.js

Source:cli.js Github

copy

Full Screen

1#!/usr/bin/env node2const argv = require('yargs')3 .usage('Usage: $0 [options]')4 .demandOption(['release-handle', 'release-name', 'assignee', 'token'])5 .describe('release-handle', 'release handle e.g. release-2018-11')6 .describe('release-name', 'release name e.g. November Release 2018')7 .describe('assignee', 'assigned user to this checklist')8 .describe('token', 'your github token')9 .argv10const run = require('./index')11const {releaseHandle, releaseName, assignee, token} = argv12run({releaseHandle, releaseName, assignee, token})13 .then((issue) => {14 console.log(issue)...

Full Screen

Full Screen

index.js

Source:index.js Github

copy

Full Screen

1/**2 * 获取应用程序配置3 */4let initProject = require('./initProject.js');5let settings = require('./settings.js');6let releaseHandle = require('./releaseHandle.js');7let download = require('./download.js');8let cloneProject = require('./cloneProject.js');9module.exports = {10 initProject,11 settings,12 download,13 cloneProject,14 releaseHandle...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: 'example.png' });7 await page.close();8 await context.close();9 await browser.close();10})();11const { chromium } = require('playwright');12(async () => {13 const browser = await chromium.launch();14 const context = await browser.newContext();15 const page = await context.newPage();16 await page.screenshot({ path: 'example.png' });17 await page.close();18 await context.close();19 await browser.close();20})();21const { chromium } = require('playwright');22(async () => {23 const browser = await chromium.launch();24 const context = await browser.newContext();25 const page = await context.newPage();26 await page.screenshot({ path: 'example.png' });27 await page.close();28 await context.close();29 await browser.close();30})();31const { chromium } = require('playwright');32(async () => {33 const browser = await chromium.launch();34 const context = await browser.newContext();35 const page = await context.newPage();36 await page.screenshot({ path: 'example.png' });37 await page.close();38 await context.close();39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 await page.screenshot({ path: 'example.png' });47 await page.close();48 await context.close();49 await browser.close();50})();51const { chromium } = require('playwright');52(async () => {53 const browser = await chromium.launch();54 const context = await browser.newContext();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.close();7 await context.close();8 await browser.close();9})();10const { chromium } = require('playwright');11(async () => {12 const browser = await chromium.launch();13 const context = await browser.newContext();14 const page = await context.newPage();15 await page.close();16 await context.close();17 await browser.close();18})();19const { chromium } = require('playwright');20(async () => {21 const browser = await chromium.launch();22 const context = await browser.newContext();23 const page = await context.newPage();24 await page.close();25 await context.close();26 await browser.close();27})();28const { chromium } = require('playwright');29(async () => {30 const browser = await chromium.launch();31 const context = await browser.newContext();32 const page = await context.newPage();33 await page.close();34 await context.close();35 await browser.close();36})();37const { chromium } = require('playwright');38(async () => {39 const browser = await chromium.launch();40 const context = await browser.newContext();41 const page = await context.newPage();42 await page.close();43 await context.close();44 await browser.close();45})();46const { chromium } = require('playwright');47(async () => {48 const browser = await chromium.launch();49 const context = await browser.newContext();50 const page = await context.newPage();51 await page.close();52 await context.close();53 await browser.close();54})();55const { chromium } =

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: 'example.png' });7 await context.close();8 await browser.close();9})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: 'example.png' });6 await browser._defaultContext._browser._connection.releaseHandle(browser._defaultContext._browser._guid);7 await browser.close();8})();9 at BrowserContext._wrapApiCall (/home/sourabh/playwright-test/node_modules/playwright/lib/client/browserContext.js:90:19)10 at async Page.goto (/home/sourabh/playwright-test/node_modules/playwright/lib/client/page.js:1118:22)11 at async Object.<anonymous> (/home/sourabh/playwright-test/test.js:8:5)12 at BrowserContext._wrapApiCall (/home/sourabh/playwright-test/node_modules/playwright/lib/client/browserContext.js:90:19)13 at async Page.goto (/home/sourabh/playwright-test/node_modules/playwright/lib/client/page.js:1118:22)14 at async Object.<anonymous> (/home/sourabh/playwright-test/test.js:8:5)

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: 'example.png' });6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch();11 const page = await browser.newPage();12 await page.screenshot({ path: 'example.png' });13 await browser.releaseHandle();14})();15const { chromium } = require('playwright');16(async () => {17 const browser = await chromium.launch();18 const page = await browser.newPage();19 await page.screenshot({ path: 'example.png' });20 await browser.releaseHandle();21})();22const { chromium } = require('playwright');23(async () => {24 const browser = await chromium.launch();25 const page = await browser.newPage();26 await page.screenshot({ path: 'example.png' });27 await browser.releaseHandle();28})();29const { chromium } = require('playwright');30(async () => {31 const browser = await chromium.launch();32 const page = await browser.newPage();33 await page.screenshot({ path: 'example.png' });34 await browser.releaseHandle();35})();36const { chromium } = require('playwright');37(async () => {38 const browser = await chromium.launch();39 const page = await browser.newPage();40 await page.screenshot({ path: 'example.png' });41 await browser.releaseHandle();42})();43const { chromium } = require('playwright');44(async () => {45 const browser = await chromium.launch();46 const page = await browser.newPage();47 await page.screenshot({

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium, webkit, firefox } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: 'example.png' });7 await browser.close();8})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false, slowMo: 100 });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.waitForTimeout(5000);7 await page.close();8 await context.close();9 await browser.close();10})();11const { chromium } = require('playwright');12(async () => {13 const browser = await chromium.launch({ headless: false, slowMo: 100 });14 const context = await browser.newContext();15 const page = await context.newPage();16 await page.waitForTimeout(5000);17 await page.close();18 await context.close();19 await browser.close();20})();21const { chromium } = require('playwright');22(async () => {23 const browser = await chromium.launch({ headless: false, slowMo: 100 });24 const context = await browser.newContext();25 const page = await context.newPage();26 await page.waitForTimeout(5000);27 await page.close();28 await context.close();29 await browser.close();30})();31const { chromium } = require('playwright');32(async () => {33 const browser = await chromium.launch({ headless: false, slowMo: 100 });34 const context = await browser.newContext();35 const page = await context.newPage();36 await page.waitForTimeout(5000);37 await page.close();38 await context.close();39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch({ headless: false, slowMo: 100 });44 const context = await browser.newContext();45 const page = await context.newPage();46 await page.waitForTimeout(5000);47 await page.close();48 await context.close();49 await browser.close();50})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2const { releaseHandle } = require('playwright/lib/server/browserContext');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await page.screenshot({ path: `example.png` });8 await browser.close();9})();10const { chromium } = require('playwright');11const { releaseHandle } = require('playwright/lib/server/browserContext');12(async () => {13 const browser = await chromium.launch();14 const context = await browser.newContext();15 const page = await context.newPage();16 await page.screenshot({ path: `example.png` });17 await browser.close();18})();19const { chromium } = require('playwright');20const { releaseHandle } = require('playwright/lib/server/browserContext');21(async () => {22 const browser = await chromium.launch();23 const context = await browser.newContext();24 const page = await context.newPage();25 await page.screenshot({ path: `example.png` });26 await browser.close();27})();28const { chromium } = require('playwright');29const { releaseHandle } = require('playwright/lib/server/browserContext');30(async () => {31 const browser = await chromium.launch();32 const context = await browser.newContext();33 const page = await context.newPage();34 await page.screenshot({ path: `example.png` });35 await browser.close();36})();37const { chromium } = require('playwright');38const { releaseHandle } = require('playwright/lib/server/browserContext');39(async () => {40 const browser = await chromium.launch();41 const context = await browser.newContext();42 const page = await context.newPage();43 await page.screenshot({ path: `example.png` });

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2const browser = await chromium.launch();3const context = await browser.newContext();4const page = await context.newPage();5await page.click('text=Get started');6await page.click('text=Docs');7await page.click('text=API');8await page.click('text=Internal API');9await page.click('text=BrowserContext'

Full Screen

Using AI Code Generation

copy

Full Screen

1const { releaseHandle } = require('playwright/lib/server/chromium/crPage');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const handle = await page.evaluateHandle(() => document.body);8 releaseHandle(page, handle);9 await browser.close();10})();11const handle = await page.evaluateHandle(() => document.body);12const innerText = await handle.innerText();13releaseHandle(page, handle);14const innerText2 = await handle.innerText();

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Internal automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful