@progress/kendo-react-grid
Version:
React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package
10 lines (9 loc) • 17.2 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;const t=require("./utils.js");function g(c,S){const e=S.jscodeshift,s=e(c.source),o=c.path.endsWith(".ts")||c.path.endsWith(".tsx");let u=!1;const m=new Set;s.find(e.Identifier).forEach(a=>{m.add(a.node.name)});const r=t.generateUniqueName("handleSelectionChange",m),h=t.findImportedName(e,s,"Grid","@progress/kendo-react-grid")||"Grid";return s.find(e.JSXElement,{openingElement:{name:{name:h}}}).forEach(a=>{const n=a.node.openingElement.attributes,l=n==null?void 0:n.find(i=>i.type==="JSXAttribute"&&i.name.name==="selectedField");if(!l)return;const p=l.value?e(l.value).toSource():"No value provided";t.removeAttribute(n,"selectedField"),u=!0,t.hasJSXAttribute(n,"selectable")||t.addStateAttribute(e,n,"selectable","true"),t.hasJSXAttribute(n,"dataItemKey")||t.addStateAttribute(e,n,"dataItemKey",'"place your key here"');const{isClassComponent:f,isFunctionalComponent:b,parentNode:d}=t.findParentComponent(e,a);if(f){if(t.addStateDeclaration(e,d,"select",e.objectExpression([])),t.hasJSXAttribute(n,"select")||t.addStateAttribute(e,n,"select","this.state.select"),!t.hasJSXAttribute(n,"onSelectionChange")){t.addEventAttribute(e,n,"onSelectionChange",`this.${r}`);const i=t.createClassMethod(e,r,[`event${o?": GridSelectionChangeEvent":""}`],[e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("setState")),[e.objectExpression([e.property("init",e.identifier("select"),e.memberExpression(e.identifier("event"),e.identifier("select")))])]))]);t.addCommentToMethod(e,e(i),`Original selectedField value: ${p}`,"class"),t.addMethodToComponent(e,d,i,!0)}}else if(b&&(t.addUseStateDeclaration(e,d,"select","setSelect",e.objectExpression([]),o,"SelectDescriptor"),t.hasJSXAttribute(n,"select")||t.addStateAttribute(e,n,"select","select"),!t.hasJSXAttribute(n,"onSelectionChange"))){t.addEventAttribute(e,n,"onSelectionChange",`${r}`);const i=t.createArrowFunction(e,`${r}`,[`(event${o?": GridSelectionChangeEvent":""})`],[e.expressionStatement(e.callExpression(e.identifier("setSelect"),[e.memberExpression(e.identifier("event"),e.identifier("select"))]))]);t.addCommentToMethod(e,e(i),`Original selectedField value: ${p}`,"function"),t.addMethodToComponent(e,d,i,!1)}}),u&&o&&(t.ensureImportExists(e,s,"SelectDescriptor","@progress/kendo-react-data-tools"),t.ensureImportExists(e,s,"GridSelectionChangeEvent","@progress/kendo-react-grid")),s.toSource()}module.exports=g;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXN0YXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL2NvZGVtb2RzL3YxMS9zZWxlY3Rpb24tc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBJLCBGaWxlSW5mbywgSlNDb2Rlc2hpZnQsIEpTWEF0dHJpYnV0ZSwgSlNYU3ByZWFkQXR0cmlidXRlIH0gZnJvbSAnanNjb2Rlc2hpZnQnO1xuaW1wb3J0IHtcbiAgICBhZGRNZXRob2RUb0NvbXBvbmVudCxcbiAgICByZW1vdmVBdHRyaWJ1dGUsXG4gICAgZmluZFBhcmVudENvbXBvbmVudCxcbiAgICBnZW5lcmF0ZVVuaXF1ZU5hbWUsXG4gICAgZW5zdXJlSW1wb3J0RXhpc3RzLFxuICAgIGFkZEV2ZW50QXR0cmlidXRlLFxuICAgIGFkZFN0YXRlQXR0cmlidXRlLFxuICAgIGFkZFN0YXRlRGVjbGFyYXRpb24sXG4gICAgYWRkVXNlU3RhdGVEZWNsYXJhdGlvbixcbiAgICBmaW5kSW1wb3J0ZWROYW1lLFxuICAgIGNyZWF0ZUNsYXNzTWV0aG9kLFxuICAgIGNyZWF0ZUFycm93RnVuY3Rpb24sXG4gICAgaGFzSlNYQXR0cmlidXRlLFxuICAgIGFkZENvbW1lbnRUb01ldGhvZFxufSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGZpbGVJbmZvOiBGaWxlSW5mbywgYXBpOiBBUEkpIHtcbiAgICBjb25zdCBqOiBKU0NvZGVzaGlmdCA9IGFwaS5qc2NvZGVzaGlmdDtcbiAgICBjb25zdCByb290ID0gaihmaWxlSW5mby5zb3VyY2UpO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGZpbGUgaXMgVHlwZVNjcmlwdCBvciBUU1hcbiAgICBjb25zdCBpc1R5cGVTY3JpcHQgPSBmaWxlSW5mby5wYXRoLmVuZHNXaXRoKCcudHMnKSB8fCBmaWxlSW5mby5wYXRoLmVuZHNXaXRoKCcudHN4Jyk7XG5cbiAgICBsZXQgYWRkSW1wb3J0cyA9IGZhbHNlO1xuICAgIGNvbnN0IGV4aXN0aW5nTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICByb290LmZpbmQoai5JZGVudGlmaWVyKS5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgIGV4aXN0aW5nTmFtZXMuYWRkKHBhdGgubm9kZS5uYW1lKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGJhc2VOYW1lID0gJ2hhbmRsZVNlbGVjdGlvbkNoYW5nZSc7XG4gICAgY29uc3QgdW5pcXVlTmFtZSA9IGdlbmVyYXRlVW5pcXVlTmFtZShiYXNlTmFtZSwgZXhpc3RpbmdOYW1lcyk7XG5cbiAgICAvLyBEeW5hbWljYWxseSByZXNvbHZlIHRoZSBpbXBvcnRlZCBuYW1lIGZvciBgR3JpZGBcbiAgICBjb25zdCBncmlkTmFtZSA9IGZpbmRJbXBvcnRlZE5hbWUoaiwgcm9vdCwgJ0dyaWQnLCAnQHByb2dyZXNzL2tlbmRvLXJlYWN0LWdyaWQnKSB8fCAnR3JpZCc7XG5cbiAgICAvLyBGaW5kIGFsbCBKU1hFbGVtZW50cyB3aXRoIHRoZSBuYW1lIG9mIHRoZSByZXNvbHZlZCBgR3JpZGAgY29tcG9uZW50XG4gICAgY29uc3QgZ3JpZEVsZW1lbnRzID0gcm9vdC5maW5kKGouSlNYRWxlbWVudCwgeyBvcGVuaW5nRWxlbWVudDogeyBuYW1lOiB7IG5hbWU6IGdyaWROYW1lIH0gfSB9KTtcblxuICAgIGdyaWRFbGVtZW50cy5mb3JFYWNoKChncmlkUGF0aCkgPT4ge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gZ3JpZFBhdGgubm9kZS5vcGVuaW5nRWxlbWVudC5hdHRyaWJ1dGVzO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBgc2VsZWN0ZWRGaWVsZGAgYXR0cmlidXRlIGV4aXN0c1xuICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkQXR0cmlidXRlID0gYXR0cmlidXRlcz8uZmluZChcbiAgICAgICAgICAgIChhdHRyKSA9PiBhdHRyLnR5cGUgPT09ICdKU1hBdHRyaWJ1dGUnICYmIGF0dHIubmFtZS5uYW1lID09PSAnc2VsZWN0ZWRGaWVsZCdcbiAgICAgICAgKSBhcyBKU1hBdHRyaWJ1dGU7XG5cbiAgICAgICAgaWYgKCFzZWxlY3RlZEZpZWxkQXR0cmlidXRlKSB7XG4gICAgICAgICAgICByZXR1cm47IC8vIFNraXAgdGhpcyBHcmlkIGlmIGBzZWxlY3RlZEZpZWxkYCBpcyBub3QgcHJlc2VudFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29weSB0aGUgdmFsdWUgb2YgYHNlbGVjdGVkRmllbGRgIGFzIGEgY29tbWVudFxuICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkVmFsdWUgPSBzZWxlY3RlZEZpZWxkQXR0cmlidXRlLnZhbHVlXG4gICAgICAgICAgICA/IGooc2VsZWN0ZWRGaWVsZEF0dHJpYnV0ZS52YWx1ZSkudG9Tb3VyY2UoKVxuICAgICAgICAgICAgOiAnTm8gdmFsdWUgcHJvdmlkZWQnO1xuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgYHNlbGVjdGVkRmllbGRgIGF0dHJpYnV0ZVxuICAgICAgICByZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlcyBhcyAoSlNYQXR0cmlidXRlIHwgSlNYU3ByZWFkQXR0cmlidXRlKVtdLCAnc2VsZWN0ZWRGaWVsZCcpO1xuICAgICAgICBhZGRJbXBvcnRzID0gdHJ1ZTtcblxuICAgICAgICAvLyBFbnN1cmUgYHNlbGVjdGFibGVgIGF0dHJpYnV0ZSBpcyBwcmVzZW50IGFuZCBzZXQgdG8gdHJ1ZVxuICAgICAgICBpZiAoIWhhc0pTWEF0dHJpYnV0ZShhdHRyaWJ1dGVzLCAnc2VsZWN0YWJsZScpKSB7XG4gICAgICAgICAgICBhZGRTdGF0ZUF0dHJpYnV0ZShqLCBhdHRyaWJ1dGVzIGFzIChKU1hBdHRyaWJ1dGUgfCBKU1hTcHJlYWRBdHRyaWJ1dGUpW10sICdzZWxlY3RhYmxlJywgJ3RydWUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVuc3VyZSBgZGF0YUl0ZW1LZXlgIGF0dHJpYnV0ZSBpcyBwcmVzZW50XG4gICAgICAgIGlmICghaGFzSlNYQXR0cmlidXRlKGF0dHJpYnV0ZXMsICdkYXRhSXRlbUtleScpKSB7XG4gICAgICAgICAgICBhZGRTdGF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICBqLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgYXMgKEpTWEF0dHJpYnV0ZSB8IEpTWFNwcmVhZEF0dHJpYnV0ZSlbXSxcbiAgICAgICAgICAgICAgICAnZGF0YUl0ZW1LZXknLFxuICAgICAgICAgICAgICAgICdcInBsYWNlIHlvdXIga2V5IGhlcmVcIidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhlIHBhcmVudCBjb21wb25lbnQgaXMgYSBjbGFzcyBvciBmdW5jdGlvbmFsIGNvbXBvbmVudFxuICAgICAgICBjb25zdCB7IGlzQ2xhc3NDb21wb25lbnQsIGlzRnVuY3Rpb25hbENvbXBvbmVudCwgcGFyZW50Tm9kZSB9ID0gZmluZFBhcmVudENvbXBvbmVudChqLCBncmlkUGF0aCk7XG5cbiAgICAgICAgaWYgKGlzQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgICAgIC8vIEFkZCBgc2VsZWN0YCB0byB0aGUgY2xhc3MgY29tcG9uZW50J3Mgc3RhdGVcbiAgICAgICAgICAgIGFkZFN0YXRlRGVjbGFyYXRpb24oaiwgcGFyZW50Tm9kZSwgJ3NlbGVjdCcsIGoub2JqZWN0RXhwcmVzc2lvbihbXSkpO1xuXG4gICAgICAgICAgICAvLyBBZGQgYHNlbGVjdGAgYW5kIGBvblNlbGVjdGlvbkNoYW5nZWAgYXR0cmlidXRlc1xuICAgICAgICAgICAgaWYgKCFoYXNKU1hBdHRyaWJ1dGUoYXR0cmlidXRlcywgJ3NlbGVjdCcpKSB7XG4gICAgICAgICAgICAgICAgYWRkU3RhdGVBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGosXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgYXMgKEpTWEF0dHJpYnV0ZSB8IEpTWFNwcmVhZEF0dHJpYnV0ZSlbXSxcbiAgICAgICAgICAgICAgICAgICAgJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAgICAgICd0aGlzLnN0YXRlLnNlbGVjdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWhhc0pTWEF0dHJpYnV0ZShhdHRyaWJ1dGVzLCAnb25TZWxlY3Rpb25DaGFuZ2UnKSkge1xuICAgICAgICAgICAgICAgIGFkZEV2ZW50QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBqLFxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIGFzIChKU1hBdHRyaWJ1dGUgfCBKU1hTcHJlYWRBdHRyaWJ1dGUpW10sXG4gICAgICAgICAgICAgICAgICAgICdvblNlbGVjdGlvbkNoYW5nZScsXG4gICAgICAgICAgICAgICAgICAgIGB0aGlzLiR7dW5pcXVlTmFtZX1gXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhbmQgYWRkIGBoYW5kbGVTZWxlY3Rpb25DaGFuZ2VgIG1ldGhvZFxuICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZVNlbGVjdGlvbkNoYW5nZU1ldGhvZCA9IGNyZWF0ZUNsYXNzTWV0aG9kKFxuICAgICAgICAgICAgICAgICAgICBqLFxuICAgICAgICAgICAgICAgICAgICB1bmlxdWVOYW1lLFxuICAgICAgICAgICAgICAgICAgICBbYGV2ZW50JHtpc1R5cGVTY3JpcHQgPyAnOiBHcmlkU2VsZWN0aW9uQ2hhbmdlRXZlbnQnIDogJyd9YF0sXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGouZXhwcmVzc2lvblN0YXRlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqLmNhbGxFeHByZXNzaW9uKGoubWVtYmVyRXhwcmVzc2lvbihqLnRoaXNFeHByZXNzaW9uKCksIGouaWRlbnRpZmllcignc2V0U3RhdGUnKSksIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgai5vYmplY3RFeHByZXNzaW9uKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGoucHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGouaWRlbnRpZmllcignc2VsZWN0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgai5tZW1iZXJFeHByZXNzaW9uKGouaWRlbnRpZmllcignZXZlbnQnKSwgai5pZGVudGlmaWVyKCdzZWxlY3QnKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgYHNlbGVjdGVkRmllbGRgIHZhbHVlIGFzIGEgY29tbWVudCBpbiB0aGUgbWV0aG9kXG4gICAgICAgICAgICAgICAgYWRkQ29tbWVudFRvTWV0aG9kKFxuICAgICAgICAgICAgICAgICAgICBqLFxuICAgICAgICAgICAgICAgICAgICBqKGhhbmRsZVNlbGVjdGlvbkNoYW5nZU1ldGhvZCksXG4gICAgICAgICAgICAgICAgICAgIGBPcmlnaW5hbCBzZWxlY3RlZEZpZWxkIHZhbHVlOiAke3NlbGVjdGVkRmllbGRWYWx1ZX1gLFxuICAgICAgICAgICAgICAgICAgICAnY2xhc3MnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGFkZE1ldGhvZFRvQ29tcG9uZW50KGosIHBhcmVudE5vZGUsIGhhbmRsZVNlbGVjdGlvbkNoYW5nZU1ldGhvZCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbmFsQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAvLyBBZGQgYFJlYWN0LnVzZVN0YXRlYCBmb3IgYHNlbGVjdGBcbiAgICAgICAgICAgIGFkZFVzZVN0YXRlRGVjbGFyYXRpb24oXG4gICAgICAgICAgICAgICAgaixcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLFxuICAgICAgICAgICAgICAgICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgICdzZXRTZWxlY3QnLFxuICAgICAgICAgICAgICAgIGoub2JqZWN0RXhwcmVzc2lvbihbXSksXG4gICAgICAgICAgICAgICAgaXNUeXBlU2NyaXB0LFxuICAgICAgICAgICAgICAgICdTZWxlY3REZXNjcmlwdG9yJ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gQWRkIGBzZWxlY3RgIGFuZCBgb25TZWxlY3Rpb25DaGFuZ2VgIGF0dHJpYnV0ZXNcbiAgICAgICAgICAgIGlmICghaGFzSlNYQXR0cmlidXRlKGF0dHJpYnV0ZXMsICdzZWxlY3QnKSkge1xuICAgICAgICAgICAgICAgIGFkZFN0YXRlQXR0cmlidXRlKGosIGF0dHJpYnV0ZXMgYXMgKEpTWEF0dHJpYnV0ZSB8IEpTWFNwcmVhZEF0dHJpYnV0ZSlbXSwgJ3NlbGVjdCcsICdzZWxlY3QnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFoYXNKU1hBdHRyaWJ1dGUoYXR0cmlidXRlcywgJ29uU2VsZWN0aW9uQ2hhbmdlJykpIHtcbiAgICAgICAgICAgICAgICBhZGRFdmVudEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgaixcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyBhcyAoSlNYQXR0cmlidXRlIHwgSlNYU3ByZWFkQXR0cmlidXRlKVtdLFxuICAgICAgICAgICAgICAgICAgICAnb25TZWxlY3Rpb25DaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICBgJHt1bmlxdWVOYW1lfWBcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGFuZCBhZGQgYGhhbmRsZVNlbGVjdGlvbkNoYW5nZWAgZnVuY3Rpb25cbiAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVTZWxlY3Rpb25DaGFuZ2VGdW5jdGlvbiA9IGNyZWF0ZUFycm93RnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgIGosXG4gICAgICAgICAgICAgICAgICAgIGAke3VuaXF1ZU5hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgW2AoZXZlbnQke2lzVHlwZVNjcmlwdCA/ICc6IEdyaWRTZWxlY3Rpb25DaGFuZ2VFdmVudCcgOiAnJ30pYF0sXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGouZXhwcmVzc2lvblN0YXRlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqLmNhbGxFeHByZXNzaW9uKGouaWRlbnRpZmllcignc2V0U2VsZWN0JyksIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgai5tZW1iZXJFeHByZXNzaW9uKGouaWRlbnRpZmllcignZXZlbnQnKSwgai5pZGVudGlmaWVyKCdzZWxlY3QnKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgYHNlbGVjdGVkRmllbGRgIHZhbHVlIGFzIGEgY29tbWVudCBpbiB0aGUgZnVuY3Rpb25cbiAgICAgICAgICAgICAgICBhZGRDb21tZW50VG9NZXRob2QoXG4gICAgICAgICAgICAgICAgICAgIGosXG4gICAgICAgICAgICAgICAgICAgIGooaGFuZGxlU2VsZWN0aW9uQ2hhbmdlRnVuY3Rpb24pLFxuICAgICAgICAgICAgICAgICAgICBgT3JpZ2luYWwgc2VsZWN0ZWRGaWVsZCB2YWx1ZTogJHtzZWxlY3RlZEZpZWxkVmFsdWV9YCxcbiAgICAgICAgICAgICAgICAgICAgJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBhZGRNZXRob2RUb0NvbXBvbmVudChqLCBwYXJlbnROb2RlLCBoYW5kbGVTZWxlY3Rpb25DaGFuZ2VGdW5jdGlvbiwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoYWRkSW1wb3J0cyAmJiBpc1R5cGVTY3JpcHQpIHtcbiAgICAgICAgLy8gRW5zdXJlIFR5cGVTY3JpcHQgaW1wb3J0c1xuICAgICAgICBlbnN1cmVJbXBvcnRFeGlzdHMoaiwgcm9vdCwgJ1NlbGVjdERlc2NyaXB0b3InLCAnQHByb2dyZXNzL2tlbmRvLXJlYWN0LWRhdGEtdG9vbHMnKTtcbiAgICAgICAgZW5zdXJlSW1wb3J0RXhpc3RzKGosIHJvb3QsICdHcmlkU2VsZWN0aW9uQ2hhbmdlRXZlbnQnLCAnQHByb2dyZXNzL2tlbmRvLXJlYWN0LWdyaWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdC50b1NvdXJjZSgpO1xufVxuIl0sIm5hbWVzIjpbInNlbGVjdGlvblN0YXRlIiwiZmlsZUluZm8iLCJhcGkiLCJqIiwicm9vdCIsImlzVHlwZVNjcmlwdCIsImFkZEltcG9ydHMiLCJleGlzdGluZ05hbWVzIiwicGF0aCIsInVuaXF1ZU5hbWUiLCJnZW5lcmF0ZVVuaXF1ZU5hbWUiLCJncmlkTmFtZSIsImZpbmRJbXBvcnRlZE5hbWUiLCJncmlkUGF0aCIsImF0dHJpYnV0ZXMiLCJzZWxlY3RlZEZpZWxkQXR0cmlidXRlIiwiYXR0ciIsInNlbGVjdGVkRmllbGRWYWx1ZSIsInJlbW92ZUF0dHJpYnV0ZSIsImhhc0pTWEF0dHJpYnV0ZSIsImFkZFN0YXRlQXR0cmlidXRlIiwiaXNDbGFzc0NvbXBvbmVudCIsImlzRnVuY3Rpb25hbENvbXBvbmVudCIsInBhcmVudE5vZGUiLCJmaW5kUGFyZW50Q29tcG9uZW50IiwiYWRkU3RhdGVEZWNsYXJhdGlvbiIsImFkZEV2ZW50QXR0cmlidXRlIiwiaGFuZGxlU2VsZWN0aW9uQ2hhbmdlTWV0aG9kIiwiY3JlYXRlQ2xhc3NNZXRob2QiLCJhZGRDb21tZW50VG9NZXRob2QiLCJhZGRNZXRob2RUb0NvbXBvbmVudCIsImFkZFVzZVN0YXRlRGVjbGFyYXRpb24iLCJoYW5kbGVTZWxlY3Rpb25DaGFuZ2VGdW5jdGlvbiIsImNyZWF0ZUFycm93RnVuY3Rpb24iLCJlbnN1cmVJbXBvcnRFeGlzdHMiXSwibWFwcGluZ3MiOiIyQ0FrQkEsU0FBQUEsRUFBeUJDLEVBQW9CQyxFQUFVLENBQ25ELE1BQU1DLEVBQWlCRCxFQUFJLFlBQ3JCRSxFQUFPRCxFQUFFRixFQUFTLE1BQU0sRUFHeEJJLEVBQWVKLEVBQVMsS0FBSyxTQUFTLEtBQUssR0FBS0EsRUFBUyxLQUFLLFNBQVMsTUFBTSxFQUVuRixJQUFJSyxFQUFhLEdBQ1gsTUFBQUMsTUFBb0IsSUFDMUJILEVBQUssS0FBS0QsRUFBRSxVQUFVLEVBQUUsUUFBU0ssR0FBUyxDQUN4QkQsRUFBQSxJQUFJQyxFQUFLLEtBQUssSUFBSSxDQUFBLENBQ25DLEVBR0ssTUFBQUMsRUFBYUMsRUFBQUEsbUJBREYsd0JBQytCSCxDQUFhLEVBR3ZESSxFQUFXQyxFQUFBQSxpQkFBaUJULEVBQUdDLEVBQU0sT0FBUSw0QkFBNEIsR0FBSyxPQUt2RSxPQUZRQSxFQUFLLEtBQUtELEVBQUUsV0FBWSxDQUFFLGVBQWdCLENBQUUsS0FBTSxDQUFFLEtBQU1RLENBQVMsQ0FBQSxDQUFLLENBQUEsRUFFaEYsUUFBU0UsR0FBYSxDQUN6QixNQUFBQyxFQUFhRCxFQUFTLEtBQUssZUFBZSxXQUcxQ0UsRUFBeUJELEdBQUEsWUFBQUEsRUFBWSxLQUN0Q0UsR0FBU0EsRUFBSyxPQUFTLGdCQUFrQkEsRUFBSyxLQUFLLE9BQVMsaUJBR2pFLEdBQUksQ0FBQ0QsRUFDRCxPQUlFLE1BQUFFLEVBQXFCRixFQUF1QixNQUM1Q1osRUFB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