Best JavaScript code snippet using playwright-internal
treeData.js
Source:treeData.js
1export default [{2 level: 0,3 tenant: 1292161350684928,4 isShopRelated: false,5 name: 'æºæ人å',6 code: 'pc_organdemployee',7 isDeleted: 0,8 isEnd: false,9 terminalType: '1',10 orderNum: 10,11 icon: 'jigourenyuan',12 isSystem: 1,13 subId: 'PC',14 pubts: '2019-07-02 19:34:23',15 authLevel: 1,16 children: [{17 level: 1,18 tenant: 1292161350684928,19 isShopRelated: false,20 name: 'ä¼ä¸',21 code: 'AA00',22 isDeleted: 0,23 isEnd: false,24 terminalType: '1',25 parentCode: 'pc_organdemployee',26 orderNum: 10,27 isSystem: 1,28 subId: 'AA',29 pubts: '2019-07-02 19:34:23',30 authLevel: 1,31 children: [{32 level: 1,33 tenant: 1292161350684928,34 isShopRelated: false,35 name: 'ä¼ä¸ä¿¡æ¯',36 code: 'AA0001',37 isDeleted: 0,38 menuUrl: 'system-setting',39 isEnd: true,40 authCode: 'system-setting',41 terminalType: '1',42 parentCode: 'AA00',43 orderNum: 10,44 isSystem: 1,45 subId: 'AA',46 pubts: '2019-07-02 19:34:23',47 disabled: false,48 authLevel: 1,49 viewType: 'platform'50 }]51 }, {52 level: 1,53 tenant: 1292161350684928,54 isShopRelated: false,55 name: 'æºæ',56 code: 'AA01',57 isDeleted: 0,58 isEnd: false,59 terminalType: '1',60 parentCode: 'pc_organdemployee',61 orderNum: 10,62 isSystem: 1,63 subId: 'AA',64 pubts: '2019-07-02 19:34:23',65 authLevel: 3,66 children: [{67 level: 1,68 tenant: 1292161350684928,69 isShopRelated: false,70 name: 'ç»ç»',71 code: 'AA0101',72 isDeleted: 0,73 isEnd: true,74 authCode: 'aa_orgtreequerytree',75 terminalType: '1',76 parentCode: 'AA01',77 orderNum: 20,78 isSystem: 1,79 metaKey: 'aa_orgtree',80 subId: 'AA',81 pubts: '2019-07-02 19:34:23',82 disabled: false,83 authLevel: 1,84 metaType: 'TreeArchive',85 viewType: 'meta'86 }, {87 level: 1,88 tenant: 1292161350684928,89 isShopRelated: false,90 name: 'é¨é¨',91 code: 'AA0102',92 isDeleted: 0,93 isEnd: true,94 authCode: 'aa_departmentquerytree',95 terminalType: '1',96 parentCode: 'AA01',97 orderNum: 30,98 isSystem: 1,99 metaKey: 'aa_department',100 subId: 'AA',101 pubts: '2019-07-02 19:34:23',102 disabled: false,103 authLevel: 1,104 metaType: 'treeArchive',105 viewType: 'meta'106 }]107 }, {108 level: 1,109 tenant: 1292161350684928,110 isShopRelated: false,111 name: '人å',112 code: 'AA02',113 isDeleted: 0,114 isEnd: false,115 authCode: '',116 terminalType: '1',117 parentCode: 'pc_organdemployee',118 orderNum: 30,119 isSystem: 1,120 subId: 'AA',121 pubts: '2019-07-02 19:34:23',122 authLevel: 5,123 children: [{124 level: 0,125 tenant: 1292161350684928,126 isShopRelated: false,127 name: '人å',128 code: 'aa_optlist',129 isDeleted: 0,130 isEnd: true,131 authCode: 'aa_optlistlist',132 terminalType: '1',133 parentCode: 'AA02',134 orderNum: 60,135 icon: 'operator',136 isSystem: 1,137 metaKey: 'aa_optlist',138 subId: 'AA',139 pubts: '2019-07-02 19:34:23',140 disabled: false,141 authLevel: 1,142 metaType: 'voucherList',143 viewType: 'meta'144 }],145 metaType: 'voucherlist'146 }]147}, {148 level: 0,149 tenant: 1292161350684928,150 isShopRelated: false,151 name: '客å管ç',152 code: 'aa_merchantmanagement',153 isDeleted: 0,154 isEnd: false,155 terminalType: '1',156 orderNum: 10,157 icon: 'keshangdangan',158 isSystem: 1,159 subId: 'AA',160 pubts: '2019-07-02 19:34:23',161 authLevel: 5,162 children: [{163 level: 1,164 tenant: 1292161350684928,165 isShopRelated: false,166 name: '客æ·',167 code: 'aa_merchantarchives',168 isDeleted: 0,169 isEnd: false,170 authCode: '',171 terminalType: '1',172 parentCode: 'aa_merchantmanagement',173 orderNum: 1,174 isSystem: 1,175 subId: 'AA',176 pubts: '2019-07-02 19:34:23',177 authLevel: 5,178 children: [{179 level: 2,180 tenant: 1292161350684928,181 isShopRelated: false,182 name: '客æ·',183 code: 'aa_merchant',184 isDeleted: 0,185 isEnd: true,186 authCode: '',187 terminalType: '1',188 parentCode: 'aa_merchantarchives',189 orderNum: 1,190 isSystem: 1,191 metaKey: 'aa_merchantlist',192 subId: 'AA',193 pubts: '2019-07-02 19:34:23',194 disabled: false,195 authLevel: 5,196 metaType: 'voucherList',197 viewType: 'meta'198 }, {199 level: 2,200 tenant: 1292161350684928,201 isShopRelated: false,202 name: '客æ·åç±»',203 code: 'aa_custcategorylist',204 isDeleted: 0,205 isEnd: true,206 authCode: 'aa_custcategorylist',207 terminalType: '1',208 parentCode: 'aa_merchantarchives',209 orderNum: 2,210 isSystem: 1,211 metaKey: 'aa_custcategorylist',212 subId: 'AA',213 pubts: '2019-07-02 19:34:23',214 disabled: false,215 authLevel: 3,216 metaType: 'ArchiveList',217 viewType: 'meta'218 }, {219 level: 2,220 tenant: 1292161350684928,221 isShopRelated: false,222 name: '客æ·çº§å«',223 code: 'aa_cuslevellist',224 isDeleted: 0,225 isEnd: true,226 authCode: 'aa_cuslevellist',227 terminalType: '1',228 parentCode: 'aa_merchantarchives',229 orderNum: 3,230 isSystem: 1,231 metaKey: 'aa_cuslevellist',232 subId: 'AA',233 pubts: '2019-07-02 19:34:23',234 disabled: false,235 authLevel: 3,236 metaType: 'ArchiveList',237 viewType: 'meta'238 }, {239 level: 2,240 tenant: 1292161350684928,241 isShopRelated: false,242 name: '客æ·è¡ä¸',243 code: 'aa_customertradelist',244 isDeleted: 0,245 isEnd: true,246 authCode: 'aa_customertradelistlist',247 terminalType: '1',248 parentCode: 'aa_merchantarchives',249 orderNum: 5,250 isSystem: 1,251 metaKey: 'aa_customertradelist',252 subId: 'AA',253 pubts: '2019-07-02 19:34:23',254 disabled: false,255 authLevel: 3,256 metaType: 'ArchiveList',257 viewType: 'meta'258 }, {259 level: 2,260 tenant: 1292161350684928,261 isShopRelated: false,262 name: '客æ·å±æ§',263 code: 'aa_customerpro',264 isDeleted: 0,265 isEnd: true,266 authCode: '',267 terminalType: '1',268 parentCode: 'aa_merchantarchives',269 orderNum: 6,270 isSystem: 1,271 metaKey: 'aa_customerprolist',272 subId: 'AA',273 pubts: '2019-07-02 19:34:23',274 disabled: false,275 authLevel: 1,276 metaType: 'voucherList',277 viewType: 'meta'278 }, {279 level: 2,280 tenant: 1292161350684928,281 isShopRelated: false,282 name: 'éå®åºå',283 code: 'aa_salearealist',284 isDeleted: 0,285 isEnd: true,286 authCode: 'aa_salearealist',287 terminalType: '1',288 parentCode: 'aa_merchantarchives',289 orderNum: 400,290 isSystem: 1,291 metaKey: 'aa_salearealist',292 subId: 'AA',293 pubts: '2019-07-02 19:34:23',294 disabled: false,295 authLevel: 3,296 metaType: 'ArchiveList',297 viewType: 'meta'298 }],299 metaType: 'voucherlist'300 }, {301 level: 1,302 tenant: 1292161350684928,303 isShopRelated: false,304 name: 'ä¾åºå',305 code: 'aa_vendorarchives',306 isDeleted: 0,307 isEnd: false,308 authCode: '',309 terminalType: '1',310 parentCode: 'aa_merchantmanagement',311 orderNum: 2,312 isSystem: 1,313 subId: 'AA',314 pubts: '2019-07-02 19:34:23',315 authLevel: 5,316 children: [{317 level: 2,318 tenant: 1292161350684928,319 isShopRelated: false,320 name: 'ä¾åºåæ¡£æ¡',321 code: 'aa_vendorlist',322 isDeleted: 0,323 isEnd: true,324 authCode: 'aa_vendorlistlist',325 terminalType: '1',326 parentCode: 'aa_vendorarchives',327 orderNum: 1,328 isSystem: 1,329 metaKey: 'aa_vendorlist',330 subId: 'AA',331 pubts: '2019-07-02 19:34:23',332 disabled: false,333 authLevel: 3,334 metaType: 'ArchiveList',335 viewType: 'meta'336 }, {337 level: 2,338 tenant: 1292161350684928,339 isShopRelated: false,340 name: 'ä¾åºååç±»',341 code: 'aa_vendorclassificationlist',342 isDeleted: 0,343 isEnd: true,344 authCode: 'aa_vendorclassificationlist',345 terminalType: '1',346 parentCode: 'aa_vendorarchives',347 orderNum: 2,348 isSystem: 1,349 metaKey: 'aa_vendorclassificationlist',350 subId: 'AA',351 pubts: '2019-07-02 19:34:23',352 disabled: false,353 authLevel: 3,354 metaType: 'ArchiveList',355 viewType: 'meta'356 }, {357 level: 2,358 tenant: 1292161350684928,359 isShopRelated: false,360 name: 'ä¾åºåå±æ§',361 code: 'pc_vendorprolist',362 isDeleted: 0,363 isEnd: true,364 authCode: 'pc_vendorprolist',365 terminalType: '1',366 parentCode: 'aa_vendorarchives',367 orderNum: 3,368 isSystem: 1,369 metaKey: 'pc_vendorprolist',370 subId: 'AA',371 pubts: '2019-07-02 19:34:23',372 disabled: false,373 authLevel: 3,374 metaType: 'ArchiveList',375 viewType: 'meta'376 }],377 metaType: 'voucherlist'378 }]379}, {380 level: 0,381 tenant: 1292161350684928,382 isShopRelated: false,383 name: 'ç¨æ·åè§è²',384 code: 'pc_userandrole',385 isDeleted: 0,386 isEnd: false,387 terminalType: '1',388 orderNum: 20,389 icon: 'yonghujijiaose',390 isSystem: 1,391 subId: 'PC',392 pubts: '2019-07-02 19:34:23',393 authLevel: 5,394 children: [{395 level: 2,396 tenant: 1292161350684928,397 isShopRelated: false,398 name: 'ç¨æ·ç®¡ç',399 code: 'AABS0201',400 isDeleted: 0,401 isEnd: true,402 authCode: 'aa_userlistlist',403 terminalType: '1',404 parentCode: 'pc_userandrole',405 orderNum: 10,406 isSystem: 1,407 metaKey: 'aa_userlist',408 subId: 'AA',409 pubts: '2019-07-02 19:34:23',410 disabled: false,411 authLevel: 5,412 metaType: 'voucherlist',413 viewType: 'meta'414 }, {415 level: 1,416 tenant: 1292161350684928,417 isShopRelated: false,418 name: 'è§è²ç®¡ç',419 code: 'AABS0202',420 isDeleted: 0,421 isEnd: true,422 authCode: 'sys_rolelistlist',423 terminalType: '1',424 parentCode: 'pc_userandrole',425 orderNum: 20,426 isSystem: 1,427 metaKey: 'sys_rolelist',428 subId: 'AA',429 pubts: '2019-07-02 19:34:23',430 disabled: false,431 authLevel: 1,432 metaType: 'voucherlist',433 viewType: 'meta'434 }, {435 level: 3,436 tenant: 1292161350684928,437 isShopRelated: false,438 name: 'æ°æ®æé设置',439 code: 'AABS0203',440 isDeleted: 0,441 menuUrl: 'dataauth-set',442 isEnd: true,443 authCode: 'aa_dataauthlistlist',444 terminalType: '1',445 parentCode: 'pc_userandrole',446 orderNum: 40,447 isSystem: 1,448 subId: 'PC',449 pubts: '2019-07-02 19:34:23',450 disabled: false,451 authLevel: 3,452 viewType: 'platform'453 }, {454 level: 4,455 tenant: 1292161350684928,456 isShopRelated: false,457 name: 'æ°æ®æé',458 code: 'data-permission',459 isDeleted: 0,460 menuUrl: 'data-permission',461 isEnd: true,462 terminalType: '1',463 parentCode: 'pc_userandrole',464 orderNum: 50,465 isSystem: 1,466 subId: 'AA',467 pubts: '2019-07-02 19:34:23',468 disabled: false,469 authLevel: 3,470 viewType: 'platform'471 }]472}, {473 level: 0,474 tenant: 1292161350684928,475 isShopRelated: false,476 name: 'ååä¸å¿',477 code: 'pc_productcenter',478 isDeleted: 0,479 isEnd: false,480 terminalType: '1',481 orderNum: 30,482 icon: 'shangpinzhongxin',483 isSystem: 1,484 subId: 'PC',485 pubts: '2019-07-02 19:34:23',486 authLevel: 5,487 children: [{488 level: 1,489 tenant: 1292161350684928,490 isShopRelated: false,491 name: 'ååæ¡£æ¡',492 code: 'pc_productarchives',493 isDeleted: 0,494 isEnd: false,495 authCode: '',496 terminalType: '1',497 parentCode: 'pc_productcenter',498 orderNum: 10,499 isSystem: 1,500 subId: 'PC',501 pubts: '2019-07-02 19:34:23',502 authLevel: 5,503 children: [{504 level: 2,505 tenant: 1292161350684928,506 isShopRelated: false,507 name: 'ååæ¡£æ¡',508 code: 'pc_product',509 isDeleted: 0,510 isEnd: true,511 authCode: 'pc_productlist',512 terminalType: '1',513 parentCode: 'pc_productarchives',514 orderNum: 10,515 icon: 'shangpindangan',516 isSystem: 1,517 metaKey: 'pc_productlist',518 subId: 'PC',519 pubts: '2019-07-02 19:34:23',520 disabled: false,521 authLevel: 5,522 metaType: 'voucherList',523 viewType: 'meta'524 }, {525 level: 2,526 tenant: 1292161350684928,527 isShopRelated: false,528 name: 'è´§åæ¥è¯¢',529 code: 'pc_goodsproductskuprolist',530 isDeleted: 0,531 isEnd: true,532 authCode: 'pc_goodsproductskuprolist',533 terminalType: '1',534 parentCode: 'pc_productarchives',535 orderNum: 20,536 icon: 'huopindangan',537 isSystem: 1,538 metaKey: 'pc_goodsproductskuprolist',539 subId: 'PC',540 pubts: '2019-07-02 19:34:23',541 disabled: false,542 authLevel: 5,543 metaType: 'voucherList',544 viewType: 'meta'545 }, {546 level: 2,547 tenant: 1292161350684928,548 isShopRelated: false,549 name: 'å家åå',550 code: 'pc_product_shop',551 isDeleted: 0,552 menuUrl: '?externalData=shop',553 isEnd: true,554 authCode: 'pc_product_shoplist',555 terminalType: '1',556 parentCode: 'pc_productarchives',557 orderNum: 30,558 isSystem: 1,559 metaKey: 'pc_productlist_shop',560 subId: 'PC',561 pubts: '2019-07-02 19:34:23',562 disabled: false,563 authLevel: 1,564 metaType: 'voucherlist',565 viewType: 'meta'566 }, {567 level: 2,568 tenant: 1292161350684928,569 isShopRelated: false,570 name: 'ååæ¥è¯¢',571 code: 'pc_product_query',572 isDeleted: 0,573 menuUrl: '?externalData=query',574 isEnd: true,575 authCode: 'pc_product_querylist',576 terminalType: '1',577 parentCode: 'pc_productarchives',578 orderNum: 50,579 icon: 'shangpindangan',580 isSystem: 1,581 metaKey: 'pc_productlist_query',582 subId: 'PC',583 pubts: '2019-07-02 19:34:23',584 disabled: false,585 authLevel: 5,586 metaType: 'voucherList',587 viewType: 'meta'588 }],589 metaType: 'voucherlist'590 }, {591 level: 0,592 tenant: 1292161350684928,593 isShopRelated: false,594 name: 'åååç±»',595 code: 'PC_CLS',596 isDeleted: 0,597 isEnd: false,598 authCode: '',599 terminalType: '1',600 parentCode: 'pc_productcenter',601 orderNum: 20,602 icon: 'shangpinfenlei',603 isSystem: 1,604 metaKey: '',605 subId: 'PC',606 pubts: '2019-07-02 19:34:23',607 authLevel: 1,608 children: [{609 level: 1,610 tenant: 1292161350684928,611 isShopRelated: false,612 name: 'åååç±»',613 code: 'PC_CLS0101',614 isDeleted: 0,615 isEnd: true,616 authCode: 'pc_presentationclasslist',617 terminalType: '1',618 parentCode: 'PC_CLS',619 orderNum: 1,620 icon: 'jichushezhi',621 isSystem: 1,622 metaKey: 'pc_presentationclasslist',623 subId: 'PC',624 pubts: '2019-07-02 19:34:23',625 disabled: false,626 authLevel: 1,627 metaType: 'voucherList',628 viewType: 'meta'629 }, {630 level: 1,631 tenant: 1292161350684928,632 isShopRelated: false,633 name: '管çåç±»',634 code: 'PC_CLS0102',635 isDeleted: 0,636 isEnd: true,637 authCode: 'pc_managementclasslist',638 terminalType: '1',639 parentCode: 'PC_CLS',640 orderNum: 2,641 icon: 'shangpinzhongxin',642 isSystem: 1,643 metaKey: 'pc_managementclasslist',644 subId: 'PC',645 pubts: '2019-07-02 19:34:23',646 disabled: false,647 authLevel: 1,648 metaType: 'voucherList',649 viewType: 'meta'650 }],651 metaType: '',652 viewType: ''653 }, {654 level: 0,655 tenant: 1292161350684928,656 isShopRelated: false,657 name: 'åå模æ¿',658 code: 'PC_TPL',659 isDeleted: 0,660 isEnd: true,661 authCode: 'pc_producttpllist',662 terminalType: '1',663 parentCode: 'pc_productcenter',664 orderNum: 30,665 icon: 'shangpinmoban',666 isSystem: 1,667 metaKey: 'pc_producttpllist',668 subId: 'PC',669 pubts: '2019-07-02 19:34:23',670 disabled: false,671 authLevel: 1,672 metaType: 'voucherList',673 viewType: 'meta'674 }, {675 level: 0,676 tenant: 1292161350684928,677 isShopRelated: false,678 name: 'ååè§æ ¼',679 code: 'pc_spepro',680 isDeleted: 0,681 isEnd: true,682 authCode: 'pc_speprolist',683 terminalType: '1',684 parentCode: 'pc_productcenter',685 orderNum: 40,686 icon: 'shangpinguige',687 isSystem: 1,688 metaKey: 'pc_speprolist',689 subId: 'PC',690 pubts: '2019-07-02 19:34:23',691 disabled: false,692 authLevel: 1,693 metaType: 'voucherList',694 viewType: 'meta'695 }, {696 level: 0,697 tenant: 1292161350684928,698 isShopRelated: false,699 name: 'åååç',700 code: 'pc_brand01',701 isDeleted: 0,702 isEnd: false,703 terminalType: '1',704 parentCode: 'pc_productcenter',705 orderNum: 50,706 icon: 'shangpinpinpai',707 isSystem: 1,708 subId: 'pc',709 pubts: '2019-07-02 19:34:23',710 authLevel: 1,711 children: [{712 level: 1,713 tenant: 1292161350684928,714 isShopRelated: false,715 name: 'åçåç»',716 code: 'pc_brandclass',717 isDeleted: 0,718 isEnd: true,719 authCode: 'pc_brandclasslist',720 terminalType: '1',721 parentCode: 'pc_brand01',722 orderNum: 10,723 icon: 'huyuanzhongxin',724 isSystem: 1,725 metaKey: 'pc_brandclasslist',726 subId: 'pc',727 pubts: '2019-07-02 19:34:23',728 disabled: false,729 authLevel: 1,730 metaType: 'voucherList',731 viewType: 'meta'732 }, {733 level: 1,734 tenant: 1292161350684928,735 isShopRelated: false,736 name: 'åçå表',737 code: 'PC_BRAND',738 isDeleted: 0,739 isEnd: true,740 authCode: 'pc_brandlist',741 terminalType: '1',742 parentCode: 'pc_brand01',743 orderNum: 20,744 icon: 'jichushezhi',745 isSystem: 1,746 metaKey: 'pc_brandlist',747 subId: 'PC',748 pubts: '2019-07-02 19:34:23',749 disabled: false,750 authLevel: 1,751 metaType: 'voucherList',752 viewType: 'meta'753 }, {754 level: 1,755 depends: 'isOpenTenant',756 tenant: 1292161350684928,757 isShopRelated: false,758 name: 'åçå±æ§',759 code: 'pc_productbrandpro',760 isDeleted: 0,761 isEnd: true,762 authCode: 'pc_productbrandprolist',763 terminalType: '1',764 parentCode: 'pc_brand01',765 orderNum: 30,766 icon: 'jichushezhi',767 isSystem: 1,768 metaKey: 'pc_productbrandprolist',769 subId: 'pc',770 pubts: '2019-07-02 19:34:23',771 disabled: false,772 authLevel: 1,773 metaType: 'voucherList',774 viewType: 'meta'775 }]776 }, {777 level: 0,778 tenant: 1292161350684928,779 isShopRelated: false,780 name: '产å线',781 code: 'pc_productline',782 isDeleted: 0,783 isEnd: true,784 authCode: 'pc_productlinelist',785 terminalType: '1',786 parentCode: 'pc_productcenter',787 orderNum: 50,788 isSystem: 1,789 metaKey: 'pc_productlinelist',790 subId: 'PC',791 pubts: '2019-07-02 19:34:23',792 disabled: false,793 authLevel: 1,794 metaType: 'voucherList',795 viewType: 'meta'796 }, {797 level: 0,798 tenant: 1292161350684928,799 isShopRelated: false,800 name: 'ååæ ç¾',801 code: 'pc_tag01',802 isDeleted: 0,803 isEnd: false,804 terminalType: '1',805 parentCode: 'pc_productcenter',806 orderNum: 60,807 icon: 'shangpinbiaoqian',808 isSystem: 1,809 subId: 'pc',810 pubts: '2019-07-02 19:34:23',811 authLevel: 1,812 children: [{813 level: 1,814 tenant: 1292161350684928,815 isShopRelated: false,816 name: 'æ ç¾åç»',817 code: 'pc_tagclass',818 isDeleted: 0,819 isEnd: true,820 authCode: 'pc_tagclasslist',821 terminalType: '1',822 parentCode: 'pc_tag01',823 orderNum: 1,824 icon: 'huyuanzhongxin',825 isSystem: 1,826 metaKey: 'pc_tagclasslist',827 subId: 'PC',828 pubts: '2019-07-02 19:34:23',829 disabled: false,830 authLevel: 1,831 metaType: 'voucherList',832 viewType: 'meta'833 }, {834 level: 1,835 tenant: 1292161350684928,836 isShopRelated: false,837 name: 'æ ç¾å表',838 code: 'pc02',839 isDeleted: 0,840 isEnd: true,841 authCode: 'pc_taglist',842 terminalType: '1',843 parentCode: 'pc_tag01',844 orderNum: 2,845 icon: 'huyuanzhongxin',846 isSystem: 1,847 metaKey: 'pc_taglist',848 subId: 'PC',849 pubts: '2019-07-02 19:34:23',850 disabled: false,851 authLevel: 1,852 metaType: 'voucherList',853 viewType: 'meta'854 }]855 }, {856 level: 0,857 tenant: 1292161350684928,858 isShopRelated: false,859 name: '计éåä½',860 code: 'pc01',861 isDeleted: 0,862 isEnd: true,863 authCode: 'pc_unitlist',864 terminalType: '1',865 parentCode: 'pc_productcenter',866 orderNum: 70,867 icon: 'jiliangdanwei',868 isSystem: 1,869 metaKey: 'pc_unitlist',870 subId: 'PC',871 pubts: '2019-07-02 19:34:23',872 disabled: false,873 authLevel: 1,874 metaType: 'voucherList',875 viewType: 'meta'876 }, {877 level: 0,878 depends: 'isOpenTenant',879 tenant: 1292161350684928,880 isShopRelated: false,881 name: 'ååå±æ§',882 code: 'pc_productproperty',883 isDeleted: 0,884 isEnd: false,885 authCode: '',886 terminalType: '1',887 parentCode: 'pc_productcenter',888 orderNum: 80,889 icon: 'shangpinshuxing',890 isSystem: 1,891 metaKey: '',892 subId: 'PC',893 pubts: '2019-07-02 19:34:23',894 authLevel: 1,895 children: [{896 level: 1,897 tenant: 1292161350684928,898 isShopRelated: false,899 name: 'ååå±æ§',900 code: 'pc_productpro',901 isDeleted: 0,902 isEnd: true,903 authCode: 'pc_productprolist',904 terminalType: '1',905 parentCode: 'pc_productproperty',906 orderNum: 42,907 icon: 'jichushezhi',908 isSystem: 1,909 metaKey: 'pc_productprolist',910 subId: 'pc',911 pubts: '2019-07-02 19:34:23',912 disabled: false,913 authLevel: 1,914 metaType: 'voucherList',915 viewType: 'meta'916 }, {917 level: 1,918 tenant: 1292161350684928,919 isShopRelated: false,920 name: 'SKUå±æ§',921 code: 'pc_productskupro',922 isDeleted: 0,923 isEnd: true,924 authCode: 'pc_productskuprolist',925 terminalType: '1',926 parentCode: 'pc_productproperty',927 orderNum: 43,928 icon: 'jichushezhi',929 isSystem: 1,930 metaKey: 'pc_productskuprolist',931 subId: 'pc',932 pubts: '2019-07-02 19:34:23',933 disabled: false,934 authLevel: 1,935 metaType: 'voucherList',936 viewType: 'meta'937 }, {938 level: 1,939 tenant: 1292161350684928,940 isShopRelated: false,941 name: 'åå订åå±æ§',942 code: 'pc_productorderpro',943 isDeleted: 0,944 isEnd: true,945 authCode: 'pc_productorderprolist',946 terminalType: '1',947 parentCode: 'pc_productproperty',948 orderNum: 44,949 icon: 'jichushezhi',950 isSystem: 1,951 metaKey: 'pc_productorderprolist',952 subId: 'pc',953 pubts: '2019-07-02 19:34:23',954 disabled: false,955 authLevel: 1,956 metaType: 'voucherList',957 viewType: 'meta'958 }],959 metaType: '',960 viewType: ''961 }]962}, {963 level: 0,964 tenant: 1292161350684928,965 isShopRelated: false,966 name: 'ä¸å¡æ¡£æ¡',967 code: 'aa_businessarchives',968 isDeleted: 0,969 isEnd: false,970 terminalType: '1',971 orderNum: 50,972 icon: 'huaban1',973 isSystem: 1,974 subId: 'AA',975 pubts: '2019-07-02 19:34:23',976 authLevel: 5,977 children: [{978 level: 1,979 tenant: 1292161350684928,980 isShopRelated: false,981 name: 'èµéæ¶ä»',982 code: 'aa_payOfCapital',983 isDeleted: 0,984 isEnd: false,985 authCode: '',986 terminalType: '1',987 parentCode: 'aa_businessarchives',988 orderNum: 10,989 isSystem: 1,990 subId: 'AA',991 pubts: '2019-07-02 19:34:23',992 authLevel: 5,993 children: [{994 level: 2,995 tenant: 1292161350684928,996 isShopRelated: false,997 name: 'ç»ç®æ¹å¼',998 code: 'aa_settlemethod',999 isDeleted: 0,1000 isEnd: true,1001 authCode: '',1002 terminalType: '1',1003 parentCode: 'aa_payOfCapital',1004 orderNum: 10,1005 isSystem: 1,1006 metaKey: 'aa_settlemethodlist',1007 subId: 'AA',1008 pubts: '2019-07-02 19:34:23',1009 disabled: false,1010 authLevel: 1,1011 metaType: 'TreeArchive',1012 viewType: 'meta'1013 }, {1014 level: 2,1015 tenant: 1292161350684928,1016 isShopRelated: false,1017 name: 'ç«è´¦è§å',1018 code: 'aa_paymentrotocol',1019 isDeleted: 0,1020 isEnd: true,1021 authCode: '',1022 terminalType: '1',1023 parentCode: 'aa_payOfCapital',1024 orderNum: 20,1025 isSystem: 1,1026 metaKey: 'aa_paymentrotocollist',1027 subId: 'AA',1028 pubts: '2019-07-02 19:34:23',1029 disabled: false,1030 authLevel: 1,1031 metaType: 'ArchiveList',1032 viewType: 'meta'1033 }],1034 metaType: 'voucherlist'1035 }, {1036 level: 1,1037 tenant: 1292161350684928,1038 isShopRelated: false,1039 name: 'åè¿',1040 code: 'aa_sendtrans',1041 isDeleted: 0,1042 isEnd: false,1043 authCode: '',1044 terminalType: '1',1045 parentCode: 'aa_businessarchives',1046 orderNum: 20,1047 isSystem: 1,1048 subId: 'AA',1049 pubts: '2019-07-02 19:34:23',1050 authLevel: 5,1051 children: [{1052 level: 0,1053 tenant: 1292161350684928,1054 isShopRelated: false,1055 name: 'åè¿æ¹å¼',1056 code: 'aa_sendtranswaylist',1057 isDeleted: 0,1058 isEnd: true,1059 authCode: 'aa_sendtranswaylistlist',1060 terminalType: '1',1061 parentCode: 'aa_sendtrans',1062 orderNum: 10,1063 icon: 'dutygrade',1064 isSystem: 1,1065 metaKey: 'aa_sendtranswaylist',1066 subId: 'AA',1067 pubts: '2019-07-02 19:34:23',1068 disabled: false,1069 authLevel: 1,1070 metaType: 'voucherList',1071 viewType: 'meta'1072 }, {1073 level: 0,1074 tenant: 1292161350684928,1075 isShopRelated: false,1076 name: 'ç©æµå
¬å¸',1077 code: 'aa_deliverycorplist',1078 isDeleted: 0,1079 isEnd: true,1080 authCode: 'aa_deliverycorplistlist',1081 terminalType: '1',1082 parentCode: 'aa_sendtrans',1083 orderNum: 50,1084 icon: 'delivery',1085 isSystem: 1,1086 metaKey: 'aa_deliverycorplist',1087 subId: 'PC',1088 pubts: '2019-07-02 19:34:23',1089 disabled: false,1090 authLevel: 1,1091 metaType: 'voucherList',1092 viewType: 'meta'1093 }, {1094 level: 2,1095 tenant: 1292161350684928,1096 isShopRelated: false,1097 name: 'åå ç ',1098 code: 'aa_reasonlist',1099 isDeleted: 0,1100 isEnd: true,1101 authCode: 'aa_reasonlist',1102 terminalType: '1',1103 parentCode: 'aa_sendtrans',1104 orderNum: 300,1105 isSystem: 1,1106 metaKey: 'aa_reasonlist',1107 subId: 'AA',1108 pubts: '2019-07-02 19:34:23',1109 disabled: false,1110 authLevel: 3,1111 metaType: 'ArchiveList',1112 viewType: 'meta'1113 }, {1114 level: 1,1115 tenant: 1292161350684928,1116 isShopRelated: false,1117 name: 'å°åæ¡£æ¡',1118 code: 'pc_addressarchiveslist',1119 isDeleted: 0,1120 isEnd: true,1121 authCode: 'pc_addressarchiveslist',1122 terminalType: '1',1123 parentCode: 'aa_sendtrans',1124 orderNum: 300,1125 isSystem: 1,1126 metaKey: 'pc_addressarchiveslist',1127 subId: 'AA',1128 pubts: '2019-07-02 19:34:23',1129 disabled: false,1130 authLevel: 3,1131 metaType: 'TreeList',1132 viewType: 'meta'1133 }],1134 metaType: 'voucherlist'1135 }]1136}, {1137 level: 0,1138 tenant: 1292161350684928,1139 isShopRelated: false,1140 name: 'ç³»ç»è®¾ç½®',1141 code: 'pc_systemsetting',1142 isDeleted: 0,1143 isEnd: false,1144 terminalType: '1',1145 orderNum: 60,1146 icon: 'xitongshezhi',1147 isSystem: 1,1148 subId: 'PC',1149 pubts: '2019-07-02 19:34:23',1150 authLevel: 1,1151 children: [{1152 level: 1,1153 tenant: 1292161350684928,1154 isShopRelated: false,1155 name: 'ç¼ç è§å',1156 code: 'pc_syssetting_billcode',1157 isDeleted: 0,1158 isEnd: true,1159 authCode: '',1160 terminalType: '1',1161 parentCode: 'pc_systemsetting',1162 orderNum: 10,1163 isSystem: 1,1164 subId: 'PC',1165 pubts: '2019-07-02 19:34:23',1166 disabled: true,1167 authLevel: 1,1168 metaType: 'voucherlist'1169 }, {1170 level: 1,1171 depends: 'isOpenTenant',1172 tenant: 1292161350684928,1173 isShopRelated: false,1174 name: '设置',1175 code: 'pc_syssetting_setting',1176 isDeleted: 0,1177 isEnd: true,1178 authCode: '',1179 terminalType: '1',1180 parentCode: 'pc_systemsetting',1181 orderNum: 20,1182 isSystem: 1,1183 subId: 'PC',1184 pubts: '2019-07-02 19:34:23',1185 authLevel: 1,1186 children: [{1187 level: 3,1188 tenant: 1292161350684928,1189 isShopRelated: false,1190 name: 'èå管ç',1191 code: 'AABS0340',1192 isDeleted: 0,1193 isEnd: true,1194 authCode: 'aa_menutreequerytree',1195 terminalType: '1',1196 parentCode: 'pc_syssetting_setting',1197 orderNum: 10,1198 isSystem: 1,1199 metaKey: 'aa_menu',1200 subId: 'AA',1201 pubts: '2019-07-02 19:34:23',1202 disabled: false,1203 authLevel: 1,1204 metaType: 'TreeArchive',1205 viewType: 'meta'1206 }, {1207 level: 2,1208 tenant: 1292161350684928,1209 isShopRelated: false,1210 name: 'èªå®ä¹é¡¹',1211 code: 'pc_syssetting_definesetting',1212 isDeleted: 0,1213 menuUrl: 'user-define-archives',1214 isEnd: true,1215 authCode: 'userdefine',1216 terminalType: '1',1217 parentCode: 'pc_syssetting_setting',1218 orderNum: 90,1219 isSystem: 1,1220 subId: 'PC',1221 pubts: '2019-07-02 19:34:23',1222 disabled: false,1223 authLevel: 1,1224 viewType: 'platform'1225 }],1226 metaType: 'voucherlist'1227 }, {1228 level: 1,1229 depends: 'isOpenTenant',1230 tenant: 1292161350684928,1231 isShopRelated: false,1232 name: '模æ¿',1233 code: 'pc_syssetting_templet',1234 isDeleted: 0,1235 isEnd: true,1236 authCode: '',1237 terminalType: '1',1238 parentCode: 'pc_systemsetting',1239 orderNum: 30,1240 isSystem: 1,1241 subId: 'PC',1242 pubts: '2019-07-02 19:34:23',1243 authLevel: 1,1244 children: [{1245 level: 2,1246 tenant: 1292161350684928,1247 isShopRelated: false,1248 name: '表å模ç设计',1249 code: 'AABS0309',1250 isDeleted: 0,1251 menuUrl: 'bill-design',1252 isEnd: true,1253 authCode: 'bill_design',1254 terminalType: '1',1255 parentCode: 'pc_syssetting_templet',1256 orderNum: 20,1257 isSystem: 1,1258 subId: 'AA',1259 pubts: '2019-07-02 19:34:23',1260 disabled: false,1261 authLevel: 1,1262 viewType: 'platform'1263 }],1264 metaType: 'voucherlist'1265 }]...
rule.js
Source:rule.js
1const rgxRule = {2 //done3 title: {4 type: "title",5 rgx: /^#{1,6} +$/,6 html: '<h>'7 },8 // ä¸ä¸ªparagraphè³å°éè¦ä¸¤ä¸ªå以ä¸ä¸ªlinebreak9 paragraph: {10 type: "paragraph",11 rgx: /^((\r\n){2,}|(\n){2,}|(\r){2,})$/,12 html: '<p>'13 },14 //done15 linebreak: {16 type: 'linebreak',17 rgx: /^(\r\n|\n|\r)$/,18 html: '<none>'19 },20 //done21 newline: {22 type: 'newline',23 rgx: /^ {2,}((\r\n)|(\n)|(\r))$/,24 html: '<br>'25 },26 //done27 bold: {28 type: 'bold',29 rgx: /^(\*\*|__)$/,30 html: '<strong>'31 },32 //done33 italic: {34 type: 'italic',35 rgx: /^(\*|_)$/,36 html: '<em>'37 },38 //done39 blockquote: {40 type: 'blockquote',41 rgx: /^>+ +$/,42 html: '<blockquote>'43 },44 //done45 orderlist: {46 type: 'orderlist',47 rgx: /^[0-9]\. +$/,48 html: '<ol>'49 },50 //done51 unorderlist: {52 type: 'unorderlist',53 rgx: /^[-\*\+] +$/,54 html: '<ul>'55 },56 //done57 sublist: {58 type: 'sublist',59 rgx: /^( {4}|\t)$/,60 html: '<any>'61 },62 //done63 horizontal: {64 type: 'horizontal',65 rgx: /^[\*-_]{3,}((\r\n)|(\n)|(\r))$/,66 html: '<hr>'67 },68 //done69 code: {70 type: 'code',71 rgx: /$`^/,72 html: '<code>'73 },74 //done75 codeblock: {76 type: 'codeblock',77 rgx: /^```$/,78 html: '<pre>'79 },80 link: {81 type: 'link',82 rgx: /^([a-zA-Z]+:)?(\/\/|\\\\)?([\w-]+(\.[\w-]+)+)?((\.|\.\.)?((\\|\/)[^\?\*\\\/\<\>\:"\|\n\r]+)+)(\\|\/)?([^\?\*\\\/\<\>\:"\|\n\r]+(\.[a-zA-Z])?)?(\?([\w-]+=.+)(&[\w-]+=.+)*)?(#.+)?$/,83 rgxP: /a/,84 html: '<none>'85 },86 email: {87 type: 'email',88 rgx: /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/,89 html: '<none>'90 },91 //done92 escape: {93 type: 'escape',94 rgx: /^\\[\\`\*_\{\}\[\]\(\)#\+-\.!\|]$/,95 html: '<none>'96 },97 //done98 imgtag: {99 type: 'imgtag',100 rgx: /^\!$/,101 html: '<img>'102 },103 //done104 tipbegin: {105 type: 'tipbegin',106 rgx: /^\[$/,107 html: '<none>'108 },109 //done110 tipend: {111 type: 'tipend',112 rgx: /^\]$/,113 html: '<none>'114 },115 //done116 linkbegin: {117 type: 'linkbegin',118 rgx: /^\($/,119 html: '<none>'120 },121 //done122 linkend: {123 type: 'linkend',124 rgx: /^\)$/,125 html: '<none>'126 },127 //done128 urlbegin: {129 type: 'urlbegin',130 rgx: /^<$/,131 html: '<none>'132 },133 //done134 urlend: {135 type: 'urlend',136 rgx: /^>$/,137 html: '<none>'138 }139}140//isEnd=falseæ¶é»è®¤belongto="child"141//isEnd=trueæ¶é»è®¤belongto="none"142//requiredé»è®¤ä¸ºtrue143const grammarRule = {144 article: {145 funcName: "article",146 nodeStruct: {147 nodeName: "article",148 attributes: {149 class: "md-article"150 },151 children: []152 },153 grammarStruct: [154 "and",//æä½155 [156 "loop",157 [158 "or",159 { isEnd: false, type: "h"},160 { isEnd: false, type: "p" },161 { isEnd: false, type: "list" },162 { isEnd: false, type: "blockcode" },163 { isEnd: false, type: "blockquote" },164 { isEnd: false, type: "figture" },165 { isEnd: false, type: "horizontal" },166 { isEnd: false, type: "html" },167 { isEnd: true, type: "linebreak" }168 ]169 ],170 { isEnd: true, type: "endfile" }171 ]172 },173 h: {174 funcName: 'h',175 nodeStruct: {176 nodeName: "h$",//ä¸ä¸æå¹é
177 attributes: {178 class: "md-h$",179 nodeValue: ""180 }181 },182 grammarStruct: [183 "and",184 [185 "or",186 {isEnd:true,type:"h1",$:"1"},187 {isEnd:true,type:"h2",$:"2"},188 {isEnd:true,type:"h3",$:"3"},189 {isEnd:true,type:"h4",$:"4"},190 {isEnd:true,type:"h5",$:"5"},191 {isEnd:true,type:"h6",$:"6"}192 ],193 {isEnd:true,type:"text",belongto:"nodeValue"},194 {isEnd:true,type:"linebreak"}195 ]196 },197 p:{198 funcName : 'p',199 nodeStruct : {200 nodeName:'p',201 attributes:{202 class:'md-p',203 nodeValue:null 204 },205 child:null206 },207 grammarStruct : [208 "and",209 [210 "loop",211 [212 "and",213 [214 "loop",215 {isEnd:false,type:"pitem"}216 ],217 {isEnd:true,type:"linebreak"}218 ]219 ],220 {isEnd:true,type:"linebreak"}221 ]222 },223 pitem : {224 funcName : 'pitem',225 nodeStruct : this.p.nodeStruct,226 grammarStruct : [227 "or",228 {isEnd:false,type:"content"},229 {isEnd:false,type:"inlinecode"},230 {isEnd:false,type:"link"}231 ]232 },233 content : {234 funcName : 'content',235 nodeStruct : this.pitem.nodeStruct,236 grammarStruct : [237 "or",238 {isEnd:true,type:"text"}, //???239 {isEnd:false,type:"bold"},240 {isEnd:false,type:"italic"},241 {isEnd:false,type:"bolditalic"}242 ]243 },244 bold : {245 funcName : 'bold',246 nodeStruct : {247 nodeName:"strong",248 attributes:{249 class:'md-strong',250 nodeValue : null251 },252 child:null253 },254 grammarStruct : [255 "and",256 {isEnd:true,type:" strong"},257 {isEnd:true,type:"text"},258 {isEnd:true,type:"strong"}259 ]260 },261 italic : {262 funcName : 'italic',263 nodeStruct : {264 nodeName:'em',265 attributes:{266 class:'md-em',267 nodeValue:null268 },269 child:null270 },271 grammarStruct : [272 "and",273 {isEnd:true,type:"em"},274 {isEnd:true,type:"text"},275 {isEnd:true,type:"em"}276 ]277 },278 bolditalic : {279 funcName : 'bolditalic',280 nodeStruct : {281 nodeName:'strong',282 attributes:{283 },284 child : {285 nodeName:'em',286 attributes:{287 },288 child:null289 }290 },291 grammarStruct : [292 "and",293 {isEnd:true,type:"emstrong"},294 {isEnd:true,type:"text"},295 {isEnd:true,type:"emstrong"}296 ]297 },298 inlinecode : {299 funcName : 'inlinecode',300 nodeStruct : {301 nodeName:"code",302 attributes:{303 },304 child : null305 },306 grammarStruct : [307 "and",308 {isEnd:true,type:"code"},309 {isEnd:true,type:"text"},310 {isEnd:true,type:"code"}311 ]312 },313 link : {314 funcName : 'link',315 nodeStruct : this.pitem.nodeStruct,316 grammarStruct : [317 "or",318 {isEnd:false,type:"tiplink"},319 {isEnd:false,type:"nottiplink"}320 ]321 },322 tiplink : {323 funcName : 'tiplink',324 nodeStruct : {325 },326 grammarStruct : [327 "and",328 {isEnd:true,type:"tipbegin"},329 {isEnd:false,type:"content",required:false},330 {isEnd:true,type:"tipend"},331 {isEnd:true,type:"linkbegin"},332 {isEnd:true,type:"text"},333 {isEnd:true,type:"linkend"}334 ]335 },336 nottiplink : {337 funcName : 'nottiplink',338 nodeStruct : {339 },340 grammarStruct : [341 "and",342 {isEnd:true,type:"urlbegin"},343 {isEnd:true,type:"text"},344 {isEnd:true,type:"urlend"}345 ]346 },347 list : {348 funcName : 'list',349 nodeStruct : {350 },351 grammarStruct : [352 "and",353 [354 "loop",355 [356 "or",357 {isEnd:false,type:"ulistitem"},358 {isEnd:false,type:"olistitem"},359 {isEnd:false,type:"slist"},360 ]361 ],362 {isEnd:true,type:'linebreak'}363 ]364 },365 ulistitem : {366 funcName : 'ulistitem',367 nodeStruct : {368 },369 grammarStruct : [370 "and",371 {isEnd:true,type:"ul"},372 {isEnd:false,type:"content"},373 {isEnd:true,type:"linebreak"}374 ]375 },376 olistitem : {377 funcName : 'olistitem',378 nodeStruct : {379 },380 grammarStruct : [381 "and",382 {isEnd:true,type:"ol"},383 {isEnd:false,type:"content"},384 {isEnd:true,type:"linebreak"}385 ]386 },387 slist : {388 funcName : 'slist',389 nodeStruct : {390 },391 grammarStruct : [392 "and",393 [394 "loop",395 {isEnd:false,type:"slistitem"}396 ],397 {isEnd:true,type:"linebreak"}398 ]399 },400 slistitem : {401 funcName : 'slistitem',402 nodeStruct : {403 },404 grammarStruct : [405 "and",406 {isEnd:true,type:'sublist'},407 [408 "or",409 {isEnd:false,type:"ulistitem"},410 {isEnd:false,type:"olistitem"},411 {isEnd:false,type:"blockquote"},412 {isEnd:false,type:"blockcode"},413 {isEnd:false,type:"figure"},414 {isEnd:false,type:"p"}415 ]416 ]417 },418 blockcode : {419 funcName : 'blockcode',420 nodeStruct : {421 },422 grammarStruct : [423 ]424 },425 blockquote : {426 funcName : 'blockquote',427 nodeStruct : {428 },429 grammarStruct : [430 "and",431 [432 "loop",433 {isEnd:false,type:"bqitem"}434 ],435 {isEnd:true,type:"linebreak"}436 ]437 },438 bqitem : {439 funcName : 'bqitem',440 nodeStruct : {441 },442 grammarStruct : [443 "and",444 {isEnd:true,type:"bqtag"},445 [446 "or",447 {isEnd:false,type:"pitem"},448 {isEnd:false,type:"list"}449 ],450 {isEnd:true,type:"linebreak"}451 ]452 },453 figure : {454 funcName : 'figure',455 nodeStruct : {456 nodeName : 'figure',457 attributes:{458 class:'md-figure',459 },460 children:[461 {462 nodeName:"img",463 attributes:{464 class:"md-img"465 }466 },467 {468 nodeName:'figcaption',469 attributes:{470 class:'md-figcaption'471 }472 }473 ]474 },475 grammarStruct : [476 "and",477 {isEnd:true,type:"imgtag"},478 {isEnd:true,type:"tipbegin"},479 {isEnd:false,type:"content",required:false},480 {isEnd:true,type:"tipend"},481 {isEnd:true,type:"linkbegin"},482 {isEnd:true,type:"text"},483 {isEnd:true,type:"linkend"},484 {isEnd:true,type:"linebreak"}485 ]486 },487 horizontal : {488 funcName : 'horizontal',489 nodeStruct : {490 nodeName:"hr",491 attributes:{492 class:'md-hr',493 }494 },495 grammarStruct : [496 "and",497 [498 "or",499 {isEnd:true,type:"hr"},500 {isEnd:true,type:"emstrong"}501 ],502 {isEnd:true,type:"linebreak"}503 ]504 },505 html : {506 funcName : 'html',507 nodeStruct : {508 },509 grammarStruct : [510 ]511 }512}513function test(obj, str) {514 console.log(obj.type, obj.rgx.test(str), str)515}516// 517test(rule.title, "")518test(rule.title, "# ")519test(rule.title, "% ")520test(rule.title, "######### ")521//522test(rule.paragraph, "\r\n")523test(rule.paragraph, "\n")524test(rule.paragraph, "\n\r")525test(rule.paragraph, "\r")526test(rule.paragraph, "\r\n\r\n")527//528test(rule.line, " \r\n")529test(rule.line, " \r\n")530test(rule.line, " \n")531test(rule.line, " \n\r")532//533test(rule.bold, "**")534test(rule.bold, "__")535test(rule.bold, "___")536test(rule.bold, "***")537//538test(rule.blockquote, "> ")539test(rule.blockquote, ">> ")540test(rule.blockquote, ">>>")541test(rule.blockquote, ">>> ")542//543test(rule.orderlist, "1. ")544test(rule.orderlist, "1. ")545test(rule.orderlist, "#. ")546test(rule.orderlist, "0.")547//548test(rule.unorderlist, "# ")549test(rule.unorderlist, "- ")550test(rule.unorderlist, "+ ")551test(rule.unorderlist, "2 ")552test(rule.unorderlist, "* ")553//554test(rule.sublist, " ")555test(rule.sublist, " ")556test(rule.sublist, " ")557//558test(rule.horizontal, "***\r\n")559test(rule.horizontal, "---\r\n")560test(rule.horizontal, "___\r\n")561test(rule.horizontal, "__\r\n")562test(rule.horizontal, "*****\n")563test(rule.horizontal, "*****\n\r")564//565test(rule.escape, "\\\\")566//567test(rule.link, "https://www.jb51.net/tools/sdfdf12122")568test(rule.link, "/tools/")569test(rule.link, "/assets/images/tux.png")570test(rule.link, "https://blog.csdn.net/AngelLover2017/article/details/104614774")571test(rule.link, "https://img-blog.csdnimg.cn/20200321181137847.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZ2VsTG92ZXIyMDE3,size_16,color_FFFFFF,t_70#pic_center")572test(rule.link, "https://www.markdownguide.org/basic-syntax/#code")573test(rule.link, "D:\\æ¯ä¸è®¾è®¡\\论æç¸å
³ææ¡£\\软件å¦é¢å
³äºå¼å±2020å±æ¬ç§æ¯ä¸è®¾è®¡ï¼è®ºæï¼å·¥ä½çéç¥\\2020å±æ¯ä¸è®¾è®¡è®ºæé件模æ¿\\2020ï¼å±æ¯ä¸ï¼è®¾è®¡è®ºæé件模æ¿")574test(rule.link, "D:\\æ¯ä¸è®¾è®¡\\论æç¸å
³ææ¡£\\软件å¦é¢å
³äºå¼å±2020å±æ¬ç§æ¯ä¸è®¾è®¡ï¼è®ºæï¼å·¥ä½çéç¥\\2020å±æ¯ä¸è®¾è®¡è®ºæé件模æ¿\\2020ï¼å±æ¯ä¸ï¼è®¾è®¡è®ºæé件模æ¿\\")575test(rule.link, "\\æ¯ä¸è®¾è®¡\\论æç¸å
³ææ¡£\\软件å¦é¢å
³äºå¼å±2020å±æ¬ç§æ¯ä¸è®¾è®¡ï¼è®ºæï¼å·¥ä½çéç¥\\2020å±æ¯ä¸è®¾è®¡ï¼è®ºæï¼é件模æ¿\\2020å±æ¯ä¸è®¾è®¡ï¼è®ºæï¼é件模æ¿")576test(rule.link, "\\æ¯ä¸è®¾è®¡\\论æç¸å
³ææ¡£\\软件å¦é¢å
³äºå¼å±2020å±æ¬ç§æ¯ä¸è®¾è®¡ï¼è®ºæï¼å·¥ä½çéç¥\\2020å±æ¯ä¸è®¾è®¡ï¼è®ºæï¼é件模æ¿\\2020å±æ¯ä¸è®¾è®¡ï¼è®ºæï¼é件模æ¿\\")...
Home.js
Source:Home.js
1import React, { Fragment } from "react";2import {3 FixedLayout,4 Panel,5 PanelHeader,6 Title,7 Div,8 Text,9 Button,10 PanelHeaderButton,11 Placeholder,12} from "@vkontakte/vkui";13import {14 SwitchTransition,15 CSSTransition,16 TransitionGroup,17} from "react-transition-group";18import Icon56RecentOutline from "@vkontakte/icons/dist/56/recent_outline";19import "./home.css";20import Icon28PrivacyOutline from "@vkontakte/icons/dist/28/privacy_outline";21import { connect } from "react-redux";22import {23 nextFact,24 welcomeComplete,25 OpenMenu,26 OpenModal,27} from "../store/actions";28import Icon28MoreVertical from "@vkontakte/icons/dist/28/more_vertical";29const Home = ({30 id,31 currentFact,32 currentIndex,33 nextFact,34 welcomeCompleted,35 welcomeComplete,36 isEnd,37 OpenMenu,38 menuOpen,39 OpenModal,40 notification,41}) => {42 const clickHandler = () => {43 if (!isEnd) {44 if (welcomeCompleted) {45 nextFact();46 } else {47 welcomeComplete();48 }49 }50 };51 return (52 <Panel id={id} className="home_panel" centered>53 <PanelHeader54 visor={false}55 transparent56 separator={false}57 left={58 menuOpen || isEnd || !welcomeCompleted ? null : (59 <PanelHeaderButton onClick={OpenMenu}>60 <Icon28MoreVertical />61 </PanelHeaderButton>62 )63 }64 >65 facts66 </PanelHeader>67 <div className="content">68 <TransitionGroup>69 <CSSTransition70 key={isEnd ? "isend" : welcomeCompleted ? currentIndex : "welcome"}71 timeout={300}72 classNames="slide"73 >74 {currentFact && !isEnd && welcomeCompleted ? (75 <div76 key={77 isEnd ? "isend" : welcomeCompleted ? currentIndex : "welcome"78 }79 className="fact_background"80 style={{ backgroundImage: `url(${currentFact.image})` }}81 />82 ) : (83 <div84 className="fact_background"85 style={{ backgroundColor: "#4e7fff" }}86 />87 )}88 </CSSTransition>89 </TransitionGroup>90 <SwitchTransition mode="out-in">91 <CSSTransition92 key={isEnd ? "isend" : welcomeCompleted ? currentIndex : "welcome"}93 addEndListener={(node, done) => {94 node.addEventListener("transitionend", done, false);95 }}96 classNames="fade"97 >98 {isEnd ? (99 <div100 style={{101 margin: "40px",102 display: "flex",103 alignItems: "center",104 flexDirection: "column",105 zIndex: 9,106 }}107 key={108 isEnd ? "isend" : welcomeCompleted ? currentIndex : "welcome"109 }110 >111 <Placeholder112 style={{ zIndex: 9 }}113 icon={<Icon56RecentOutline />}114 header=" Ðа ÑÑом вÑе"115 action={116 <Button117 mode="overlay_primary"118 size="xl"119 onClick={() => OpenModal("add")}120 stretched121 style={{ zIndex: 9 }}122 >123 ÐÑедложиÑÑ ÑакÑ124 </Button>125 }126 >127 СовÑем ÑкоÑо Ð¼Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð¼ новÑй ÑакÑÑ128 </Placeholder>129 {/* <Div style={{ width: "100%" }}>130 <Button size="xl" mode="overlay_secondary" stretched>131 ÐаÑаÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾132 </Button>133 </Div> */}134 </div>135 ) : (136 <div137 style={{ margin: "40px" }}138 key={139 isEnd ? "isend" : welcomeCompleted ? currentIndex : "welcome"140 }141 >142 <Title level="1" weight="medium">143 {currentFact && welcomeCompleted144 ? currentFact.text145 : "ÐавайÑе Ñзнаем ÑамÑе паÑазиÑелÑнÑе ÑакÑÑ Ñо вÑей вÑеленной"}146 </Title>147 </div>148 )}149 </CSSTransition>150 </SwitchTransition>151 {!isEnd && (152 <FixedLayout vertical="bottom">153 <Div>154 <div className="bottom-helper">155 <Fragment>156 <div className="bottom-helper-icon">157 <Icon28PrivacyOutline fill="#fff" />158 </div>159 <Text weight="regular">160 ÐажмиÑе на ÑкÑан, ÑÑобÑ161 {welcomeCompleted ? " ÑÐ²Ð¸Ð´Ð¸Ñ Ð½Ð¾Ð²Ñй ÑакÑ" : " пÑодолжиÑÑ"}162 </Text>163 </Fragment>164 </div>165 </Div>166 </FixedLayout>167 )}168 </div>169 {notification}170 <div className="clickable_area" onClick={clickHandler}></div>171 </Panel>172 );173};174const mapStatetoProps = (state) => ({175 currentFact: state.fact.facts[state.fact.currentIndex],176 currentIndex: state.fact.currentIndex,177 welcomeCompleted: state.app.welcomeCompleted,178 isEnd: state.fact.isEnd,179 menuOpen: state.app.menuOpen,180 notification: state.app.notification,181});182const mapDispatchtoProps = {183 nextFact,184 welcomeComplete,185 OpenMenu,186 OpenModal,187};...
12.实现一个字典树.js
Source:12.实现一个字典树.js
1/**2* å®ç°ä¸ä¸ª Trie (åç¼æ )ï¼å
å« insert, search, å startsWith è¿ä¸ä¸ªæä½ã3ä½ å¯ä»¥å设ææçè¾å
¥é½æ¯ç±å°ååæ¯ a-z ææçã4ä¿è¯ææè¾å
¥å为é空å符串ã5*/6class TrieNode {7 constructor(val, isEnd) {8 this.val = val9 this.isEnd = isEnd10 this.children = []11 }12}13class Trie {14 constructor() {15 this.root = new TrieNode(null, false)16 }17 insert(word) {18 let preCNode = this.root19 for (let i = 0; i < word.length; i++) {20 // å¦æä¸ä¸ä¸ªå符çchildrenä¸å·²ç»åå¨è¯¥å符ï¼åä¸åæä½21 const findChar = preCNode.children.find(child => child.val === word[i])22 if (!findChar) {23 // å¦æä¸ä¸ä¸ªèç¹ä¸æ²¡æ该å符ï¼å°±æ°å»ºå符并pushå°ä¸ä¸ä¸ªèç¹çchildrenä¸24 // æ¿å°çæ¯ä¸ªå符ä¾æ¬¡çænodeæ¾å°rootä¸é¢25 let cNode = new TrieNode(word[i], i === word.length - 1)26 preCNode.children.push(cNode)27 preCNode = cNode28 } else {29 // ä¸ä¸ä¸ªèç¹çchildrenä¸å·²ç»åå¨è¯¥å符30 // å¦ææ¯æåä¸ä¸ªèç¹äºï¼è®©è¯¥å符çisEndå为true31 if(i === word.length - 1){32 findChar.isEnd = true33 }34 // åæ¿å°è¯¥å符继ç»å
¶ä»æä½35 preCNode = findChar36 }37 }38 }39 search(word) {40 let len = word.length41 let preCNode = this.root42 for (let i = 0; i < len; i++) {43 const findChar = preCNode.children.find(child => child.val === word[i])44 if (preCNode.children && findChar) {45 if (i === len - 1) {46 // æåä¸ä¸ªå符47 return findChar.isEnd === true48 }49 preCNode = findChar50 } else {51 return false52 }53 }54 }55 startsWith(word) {56 let len = word.length57 let preCNode = this.root58 for (let i = 0; i < len; i++) {59 const findChar = preCNode.children.find(child => child.val === word[i])60 if (preCNode.children && findChar) {61 preCNode = findChar62 } else {63 return false64 }65 }66 return true67 }68}69/**70 * æèï¼æ çåºæ¬ç»ææ¯71 æ¯ä¸ªèç¹æä¸ä¸ªå±æ§ï¼valï¼childrenï¼isEnd72 */73var trieTest = {74 val: null,75 isEnd: false,76 children: [77 {78 val: 'b', isEnd: false, children: [79 { val: 'y', isEnd: true, children: null }80 ]81 },82 {83 val: 'h', isEnd: false, children: [84 {85 val: 'e', isEnd: false, children: [86 {87 val: 'l', isEnd: false, children: [88 {89 val: 'l', isEnd: false, children: [90 { val: 'o', isEnd: true, children: null }91 ]92 }93 ]94 },95 {96 val: 'a', isEnd: false, children: [97 { val: 't', isEnd: true, children: null }98 ]99 }100 ]101 }102 ]103 },104 {105 val: 't', isEnd: false, children: [106 {107 val: 'h', isEnd: false, children: [108 { val: 'e', isEnd: true, children: null }109 ]110 }111 ]112 }113 ]114}115// æµè¯ç¨ä¾116let trie = new Trie()117trie.insert("apple");118console.log(trie.search("apple")); // è¿å true119console.log(trie.search("app")); // è¿å false120console.log(trie.startsWith("app")); // è¿å true121trie.insert("app");122console.log(trie.search("app")); // è¿å true...
dirTree.js
Source:dirTree.js
1var fs = require('fs');2function needIgnore(name, ignoreList) {3 var result = false;4 ignoreList.forEach(function(regExp) {5 if (regExp.test(name)) result = true;6 });7 return result;8}9function dirDFS(path, dirName, ignoreList) {10 var rootStat = fs.statSync(path);11 if (!rootStat.isDirectory()) {12 console.log('"' + path + '" is not directory');13 return null;14 }15 var result = new Object();16 result['name'] = dirName;17 result['type'] = 'dir';18 result['childD'] = [];19 result['childF'] = [];20 files = fs.readdirSync(path);21 files.forEach(function(fileName) {22 var stat = fs.statSync(path + '/' + fileName);23 if (needIgnore(fileName, ignoreList)) {24 } else if (stat.isDirectory()) {25 var dirObj = dirDFS(path + '/' + fileName, fileName, ignoreList);26 result['childD'].push(dirObj);27 } else {28 var fileObj = new Object();29 fileObj['name'] = fileName;30 fileObj['type'] = 'file';31 result['childF'].push(fileObj);32 }33 });34 return result;35}36function stringifyHelper(type, obj, depth, isEnd) {37 var tmpStr = '';38 if (obj['type'] == 'dir') {39 if (type != 'simple') {40 for (let i = 1; i <= depth - 1; i++) {41 tmpStr += ' ' + (isEnd[i] ? ' ' : 'â');42 }43 tmpStr += ' â\r\n';44 }45 for (let i = 1; i <= depth - 1; i++) {46 tmpStr += ' ' + (isEnd[i] ? ' ' : 'â');47 }48 tmpStr += ' ' + (isEnd[depth] ? 'ââ' : 'ââ');49 tmpStr += obj['name'] + '\r\n';50 var arrLength = obj['childD'].length + obj['childF'].length;51 for (let i = 0; i < obj['childD'].length; i++) {52 isEnd[depth + 1] = --arrLength ? false : true;53 tmpStr += stringifyHelper(type, obj['childD'][i], depth + 1, isEnd);54 }55 for (let i = 0; i < obj['childF'].length; i++) {56 isEnd[depth + 1] = --arrLength ? false : true;57 tmpStr += stringifyHelper(type, obj['childF'][i], depth + 1, isEnd);58 }59 } else {60 if (type != 'simple') {61 for (let i = 1; i <= depth - 1; i++) {62 tmpStr += ' ' + (isEnd[i] ? ' ' : 'â');63 }64 tmpStr += ' â\r\n';65 }66 for (let i = 1; i <= depth - 1; i++) {67 tmpStr += ' ' + (isEnd[i] ? ' ' : 'â');68 }69 tmpStr += ' ' + (isEnd[depth] ? 'ââ' : 'ââ');70 tmpStr += obj['name'] + '\r\n';71 }72 return tmpStr;73}74function stringifyDirTree(dirTree, type) {75 var str = '';76 var depth = 0;77 var arrLength = dirTree['childD'].length + dirTree['childF'].length;78 var isEnd = [true];79 str += dirTree['name'] + '\r\n';80 for (let i = 0; i < dirTree['childD'].length; i++) {81 isEnd[depth + 1] = --arrLength ? false : true;82 str += stringifyHelper(type, dirTree['childD'][i], depth + 1, isEnd);83 }84 for (let i = 0; i < dirTree['childF'].length; i++) {85 isEnd[depth + 1] = --arrLength ? false : true;86 str += stringifyHelper(type, dirTree['childF'][i], depth + 1, isEnd);87 }88 return str;89}90module.exports = {91 dirDFS: dirDFS,92 stringifyDirTree: stringifyDirTree...
betManager.js
Source:betManager.js
1import store from '../store'2import client from '../main.js'3import {endBets} from '../App.vue'4let exports = {}5var isEnd = true;6exports.endMatch = (score, MVP) => {7 let reward = {}8 for (const each of store.state.bets) {9 let gain = 010 let getMVP = false;11 let getScore = false;12 if(each.score == score){13 getScore = true;14 }15 if(each.MVP.toLowerCase() == MVP.toLowerCase()){16 getMVP = true17 }18 if(getMVP){19 gain += 2500;20 }21 if(getScore){22 gain += 2500;23 }24 //console.log(each.pseudo + " gain " + gain);25 if(gain > 0){26 reward[each.pseudo] = gain27 }28 }29 isEnd = true;30 exports.isEnd = isEnd;31 client.sendReward(reward)32 store.commit("cleanBet")33}34exports.StopCountdown = () => {35 isEnd = true;36 exports.isEnd = isEnd;37 endBets();38}39function countdown(timer){40 if(!isEnd){41 if(timer > 0){42 timer--;43 document.getElementById('countdown').innerHTML = Math.floor(timer / 60) + ':' + (timer % 60)44 setTimeout(() => {45 countdown(timer)46 }, 1000);47 }48 else if(timer == 0){49 isEnd = true;50 exports.isEnd = isEnd;51 endBets();52 document.getElementById('countdown').innerHTML = "Paris fermé";53 document.getElementById('StateIndicator').style.backgroundColor = "#FF0000"54 }55 }56 else{57 document.getElementById('countdown').innerHTML = "Paris fermé";58 document.getElementById('StateIndicator').style.backgroundColor = "#FF0000"59 } 60}61exports.StartCountdown = (timer) => {62 isEnd = false63 exports.isEnd = isEnd;64 document.getElementById('StateIndicator').style.backgroundColor = "#00FF00"65 countdown(timer)66}67exports.isEnd = isEnd;...
juggling-async.js
Source:juggling-async.js
1var http = require('http');2var result = ['','',''];3var isEnd = [false, false, false];4 http.get(process.argv[2], function(res){5 res.setEncoding('utf8');6 res.on('data', function(data){7 result[0] += data;8 });9 res.on('end', function(data){10 isEnd[0] = true;11 if(isEnd[0]&&isEnd[1]&&isEnd[2]){12 console.log(result[0]);13 console.log(result[1]);14 console.log(result[2]);15 }16 });17 });18 http.get(process.argv[3], function(res){19 res.setEncoding('utf8');20 res.on('data', function(data){21 result[1] += data;22 });23 res.on('end', function(data){24 isEnd[1] = true;25 if(isEnd[0]&&isEnd[1]&&isEnd[2]){26 console.log(result[0]);27 console.log(result[1]);28 console.log(result[2]);29 }30 });31 });32 http.get(process.argv[4], function(res){33 res.setEncoding('utf8');34 res.on('data', function(data){35 result[2] += data;36 });37 res.on('end', function(data){38 isEnd[2] = true;39 if(isEnd[0]&&isEnd[1]&&isEnd[2]){40 console.log(result[0]);41 console.log(result[1]);42 console.log(result[2]);43 }44 });...
Elseif.js
Source:Elseif.js
1Parser.Statement.Elseif = Ext.extend(Parser.Statement.If, {2 isEnd: function(line, stream) {3 var statement,4 isEnd = false;5 if (statement = Parser.parseStatement(line)) {6 if (statement.type == 'elseif' || statement.type == 'else')7 isEnd = true;8 } else if (this.parent.isEnd.apply(this.parent, arguments))9 isEnd = true;10 if (isEnd)11 stream.goBack(line.length + 1);12 return isEnd;13 }...
Using AI Code Generation
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 const elementHandle = await page.$('text=Get started');7 await elementHandle.click();8 await page.waitForNavigation();9 await page.goBack();10 const isEnd = await page.evaluate(() => window.history.state.isEnd);11 console.log(isEnd);12 await browser.close();13})();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 const elementHandle = await page.$('text=Get started');6 const isEnd = await elementHandle.evaluateHandle(el => el.isEnd);7 console.log(await isEnd.jsonValue());8 await browser.close();9})();
Using AI Code Generation
1const { isEnd } = require('playwright/lib/server/chromium/crNetworkManager');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.route('**/*', route => {7 console.log(route.request().url());8 if (isEnd(route.request().url())) {9 console.log('Found end request');10 }11 route.continue();12 });13 await browser.close();14})();
Using AI Code Generation
1const { isEnd } = require('@playwright/test/lib/utils');2const { isEnd } = require('@playwright/test/lib/utils');3const { isEnd } = require('@playwright/test/lib/utils');4const { isEnd } = require('@playwright/test/lib/utils');5const { isEnd } = require('@playwright/test/lib/utils');6const { isEnd } = require('@playwright/test/lib/utils');7const { isEnd } = require('@playwright/test/lib/utils');8const { isEnd } = require('@playwright/test/lib/utils');
Using AI Code Generation
1const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');2const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');3const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');4const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');5const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');6const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');7const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');8const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');9const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');10const { isEnd } = require('playwright/lib/server/supplements/recorder/recorderSupplement');
Using AI Code Generation
1const { isEnd } = require('playwright/lib/internal/recorder/frames');2const { isEnd } = require('playwright/lib/internal/recorder/frames');3const { isEnd } = require('playwright/lib/internal/recorder/frames');4const { isEnd } = require('playwright/lib/internal/recorder/frames');5const { isEnd } = require('playwright/lib/internal/recorder/frames');6const { isEnd } = require('playwright/lib/internal/recorder/frames');7const { isEnd } = require('playwright/lib/internal/recorder/frames');8const { isEnd } = require('playwright/lib/internal/recorder/frames');9const { isEnd } = require('playwright/lib/internal/recorder/frames');10const { isEnd } = require('playwright/lib/internal/recorder/frames');11const { isEnd } = require('playwright/lib/internal/recorder/frames');12const { isEnd } = require('playwright/lib/internal/recorder/frames');13const { isEnd } = require('playwright/lib/internal/recorder/frames');14const { isEnd } = require('playwright/lib/internal/recorder/frames');15const { isEnd } = require('playwright/lib/internal/recorder/frames');16const { isEnd } = require('playwright/lib/internal/recorder/frames');17const { isEnd } = require('playwright/lib/internal/recorder/frames');18const { isEnd } = require('playwright/lib/internal/recorder/frames');19**Environment (please complete the following information):**
Using AI Code Generation
1const { isEnd } = require('@playwright/test/lib/test');2const { test } = require('@playwright/test');3const { expect } = require('@playwright/test');4test('test', async ({ page }) => {5 expect(await page.isVisible('#footer')).toBeTruthy();6 const footer = page.locator('#footer');7 expect(await footer.isVisible()).toBeTruthy();8 expect(await isEnd()).toBeTruthy();9});
Using AI Code Generation
1const {test, expect} = require('@playwright/test');2test('should work', async ({page}) => {3 await page.click('text="Get Started"');4 await page.click('text="Docs"');5 await page.click('text="Writing Tests"');6 expect(page.url()).toBeEnd('test-intro');7 expect(page.url()).toBeEnd('test-intro', {ignoreCase: true});8 expect(page.url()).toBeEnd('test-intro', {ignoreCase: false});9});10const {test, expect} = require('@playwright/test');11test('should work', async ({page}) => {12 await page.click('text="Get Started"');13 await page.click('text="Docs"');14 await page.click('text="Writing Tests"');15 expect(page.url()).toBeNotEnd('test-intro');16 expect(page.url()).toBeNotEnd('test-intro', {ignoreCase: true});17 expect(page.url()).toBeNotEnd('test-intro', {ignoreCase: false});18});19const {test, expect} = require('@playwright/test');20test('should work', async ({page}) => {21 await page.click('text="Get Started"');22 await page.click('text="Docs"');23 await page.click('text="Writing Tests"');24 expect(page.url()).toBeStart('https');25 expect(page.url()).toBeStart('https', {ignoreCase: true});26 expect(page.url()).toBeStart('https', {ignoreCase: false});27});28const {test, expect} = require('@playwright/test');29test('should work', async ({page}) => {30 await page.click('text="Get Started"');
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.
Get 100 minutes of automation test minutes FREE!!