{"version":3,"file":"gp-advanced-save-and-continue-draft-management.js","mappings":"mBACA,ICUMA,EAAIC,OAAOC,OACTC,GAAkB,OAANF,aAAM,IAANA,YAAM,EAANA,OAAQG,wBAAsB,QAElD,aAQC,WAAYC,GACXC,KAAKC,OAASF,EAAKE,OACnBD,KAAKE,MAAQH,EAAKG,MAClBF,KAAKG,QAAUJ,EAAKI,QACpBH,KAAKI,OAASL,EAAKK,OAEnBJ,KAAKK,WAAaX,EAChBM,KAAKI,OAEH,mCAA4BL,EAAKE,OAAM,0BAAkBF,EAAKK,OAAM,MADpE,mCAA4BL,EAAKE,OAAM,yBAI3CD,KAAKM,MACN,CA+DD,OA7DC,YAAAA,KAAA,sBACCN,KAAKK,WAAWE,GACf,QACA,8BACA,SAAOC,GAAK,O,EAAA,E,OAAA,E,EAAA,W,4nCAMX,IAJqBb,OAAOc,QAC3BZ,EAAQa,sBAIR,UAGKC,EACLH,EAAMI,cAAcC,QAAQC,iBACvBC,EAASP,EAAMI,cACfI,EAAYtB,EAAEqB,GAAQE,SAAS,QAE/Bb,EAASV,EAAEqB,GAAQG,KAAK,WAG9BF,EAAUG,YAAY,mBACtBH,EAAUI,SAAS,uCAEbC,EAAS,IAAIC,iBACZC,OAAO,SAAU,sBACxBF,EAAOE,OAAO,QAASvB,KAAKE,O,iBAGY,O,sBAAA,GAAMR,EAAE8B,KAAK,CACnDC,IAAK,UAAGzB,KAAKG,QAAO,YAAIkB,EAAOK,YAC/BC,KAAM,OACNT,KAAM,CACLP,YAAW,EACXV,OAAQD,KAAKC,OACbG,OAAM,M,OAKR,IAXMwB,EAAiC,UAW9BC,MACR,MAAM,IAAIC,MAAMF,EAAKC,O,OAGtBnC,EAAEqB,GAAQgB,QAAQ,MAAMC,S,+BAGxBC,QAAQJ,MAAM,GAIdK,MAAM,kCAA2B,EAAIC,UAGrCnB,EAAUG,YAAY,sCACtBH,EAAUI,SAAS,mB,wCApDT,K,gRAwDd,EACD,EApFA,GAsFAzB,OAAOyC,yCAA2CC,C","sources":["webpack:///webpack/bootstrap","webpack:///./js/src/draft-management.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","interface GPASCDeleteDraftResponse {\n\terror?: string;\n}\n\ninterface DraftsOpts {\n\tformId: number;\n\tnonce: string;\n\tajaxUrl: string;\n\tuserId?: number; // Used by shortcode user_id attribute which requires GFCommon::current_user_can_any( 'gravityforms_view_entries' )\n}\n\nconst $ = window.jQuery;\nconst { strings } = window?.GPASC_DRAFT_MANAGEMENT;\n\nexport class DraftManagement {\n\tpublic formId: DraftsOpts['formId'];\n\tpublic nonce: DraftsOpts['nonce'];\n\tpublic ajaxUrl: DraftsOpts['ajaxUrl'];\n\tpublic userId?: DraftsOpts['userId'];\n\n\tpublic $container: JQuery;\n\n\tconstructor(opts: DraftsOpts) {\n\t\tthis.formId = opts.formId;\n\t\tthis.nonce = opts.nonce;\n\t\tthis.ajaxUrl = opts.ajaxUrl;\n\t\tthis.userId = opts.userId;\n\n\t\tthis.$container = $(\n\t\t\t!this.userId\n\t\t\t\t? `#gpasc_resume_token_list_${opts.formId}:not([data-user-id])`\n\t\t\t\t: `#gpasc_resume_token_list_${opts.formId}[data-user-id=\"${opts.userId}\"]`\n\t\t);\n\n\t\tthis.bind();\n\t}\n\n\tbind() {\n\t\tthis.$container.on(\n\t\t\t'click',\n\t\t\t'.gpasc-delete-draft-button',\n\t\t\tasync (event) => {\n\t\t\t\t// eslint-disable-next-line no-alert\n\t\t\t\tconst shouldDelete = window.confirm(\n\t\t\t\t\tstrings.confirm_delete_draft\n\t\t\t\t);\n\n\t\t\t\tif (!shouldDelete) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst resumeToken =\n\t\t\t\t\tevent.currentTarget.dataset.gpascResumeToken;\n\t\t\t\tconst button = event.currentTarget;\n\t\t\t\tconst $iconSpan = $(button).children('span');\n\n\t\t\t\tconst userId = $(button).data('user-id');\n\n\t\t\t\t// replace trash icon with loading spinner\n\t\t\t\t$iconSpan.removeClass('dashicons-trash');\n\t\t\t\t$iconSpan.addClass('dashicons-update gpasc-loader-spin');\n\n\t\t\t\tconst params = new URLSearchParams();\n\t\t\t\tparams.append('action', 'gpasc_delete_draft');\n\t\t\t\tparams.append('nonce', this.nonce);\n\n\t\t\t\ttry {\n\t\t\t\t\tconst resp: GPASCDeleteDraftResponse = await $.ajax({\n\t\t\t\t\t\turl: `${this.ajaxUrl}?${params.toString()}`,\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tresumeToken,\n\t\t\t\t\t\t\tformId: this.formId,\n\t\t\t\t\t\t\tuserId,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\n\t\t\t\t\t// throw so that all UI state error handling can be done in the same place.\n\t\t\t\t\tif (resp.error) {\n\t\t\t\t\t\tthrow new Error(resp.error);\n\t\t\t\t\t}\n\n\t\t\t\t\t$(button).parents('li').remove();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.error(err);\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t// eslint-disable-next-line no-alert\n\t\t\t\t\talert(`Failed to delete draft: ${err.message}`);\n\n\t\t\t\t\t// replace loading spinner with trash icon\n\t\t\t\t\t$iconSpan.removeClass('dashicons-update gpasc-loader-spin');\n\t\t\t\t\t$iconSpan.addClass('dashicons-trash');\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n}\n\nwindow.GPAdvancedSaveAndContinueDraftManagement = DraftManagement;\n"],"names":["$","window","jQuery","strings","GPASC_DRAFT_MANAGEMENT","opts","this","formId","nonce","ajaxUrl","userId","$container","bind","on","event","confirm","confirm_delete_draft","resumeToken","currentTarget","dataset","gpascResumeToken","button","$iconSpan","children","data","removeClass","addClass","params","URLSearchParams","append","ajax","url","toString","type","resp","error","Error","parents","remove","console","alert","message","GPAdvancedSaveAndContinueDraftManagement","DraftManagement"],"sourceRoot":""}