{"version":3,"file":"breeze-client-adapter-ajax-post.mjs","sources":["../../src/adapter-ajax-post.ts","../../src/breeze-client-adapter-ajax-post.ts"],"sourcesContent":["import * as breeze from 'breeze-client';\r\n\r\n/**\r\n *  Functions to enable Breeze to use POST for queries when\r\n *  special parameters are passed using the .withParameters function.\r\n *\r\n * Copyright 2015-2021 IdeaBlade, Inc.  All Rights Reserved.\r\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\r\n * conditions of the IdeaBlade Breeze license, available at http://www.breezejs.com/license\r\n *\r\n * Author: Steve Schmitt\r\n * Version: \r\n *  1.2.0 - Moved into breeze-client repo and npm package\r\n *  1.1.0 - revised: eliminated return object, configAjaxAdapter method; add ajaxPostEnabled flag\r\n *  1.0.6 - original\r\n *\r\n * Special parameters:\r\n *  $method: ‘POST’ or ‘GET’ (the default)\r\n *  $encoding: ‘JSON’ or x-www-form-urlencoded (the default)\r\n *  $data: contains the data to be sent to the server\r\n *\r\n * Installation:\r\n *    var ajaxAdapter = config.initializeAdapterInstance('ajax', adapterName, true);\r\n *    AjaxPostWrapper.wrapAjax(ajaxAdapter);\r\n *\r\n * Example:\r\n *   var query = breeze.EntityQuery.from('SimilarCustomersPOST')\r\n *            .withParameters({\r\n *                $method: 'POST',\r\n *                $encoding: 'JSON',\r\n *               $data: { CompanyName: 'Hilo Hattie', ContactName: 'Donald', City: 'Duck', Country: 'USA', Phone: '808-234-5678' }\r\n *           });\r\n *\r\n **/\r\nexport class AjaxPostWrapper {\r\n\r\n  static wrapAjax(ajaxAdapter: breeze.AjaxAdapter) {\r\n\r\n    if ((ajaxAdapter as any).ajaxPostEnabled) {\r\n      return; // already wrapped it.\r\n    }\r\n\r\n    let ajaxFunction = ajaxAdapter.ajax;\r\n    if (ajaxFunction) {\r\n      ajaxAdapter.ajax = function (settings) {\r\n        processSettings(settings);\r\n        return ajaxFunction.call(ajaxAdapter, settings);\r\n      };\r\n      (ajaxAdapter as any).ajaxPostEnabled = true;\r\n    }\r\n\r\n\r\n    // Handle the POST-specific properties in the settings - $method, $data, $encoding\r\n    function processSettings(settings: any) {\r\n      let parameters = settings && settings.params;\r\n      if (!parameters) return settings;\r\n\r\n      // wrapped data; handle the special properties\r\n      settings.type = parameters.$method || settings.type; // GET is default method\r\n\r\n      let data = parameters.$data;\r\n      if (data) {\r\n        // if $data exists, assume all of other parameters are guidance for building a POST\r\n        if (parameters.$encoding === 'JSON') {\r\n          // JSON encoding\r\n          settings.processData = false; // don't let JQuery form-encode it\r\n          settings.contentType = \"application/json; charset=UTF-8\";\r\n\r\n          if (typeof (data) === 'object') {\r\n            settings.data = JSON.stringify(data); // encode parameters as JSON\r\n          } else {\r\n            settings.data = data;\r\n          }\r\n        } else {\r\n          settings.data = data;\r\n        }\r\n        // must be null or jQuery ajax adapter won't see settings.data\r\n        settings.params = null;\r\n      }\r\n\r\n      return settings;\r\n    }\r\n  }\r\n\r\n\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './adapter-ajax-post';\n"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BI;MACS,eAAe,CAAA;IAE1B,OAAO,QAAQ,CAAC,WAA+B,EAAA;QAE7C,IAAK,WAAmB,CAAC,eAAe,EAAE;AACxC,YAAA,OAAO;AACR,SAAA;AAED,QAAA,IAAI,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;AACpC,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,WAAW,CAAC,IAAI,GAAG,UAAU,QAAQ,EAAA;gBACnC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC1B,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAClD,aAAC,CAAC;AACD,YAAA,WAAmB,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7C,SAAA;;QAID,SAAS,eAAe,CAAC,QAAa,EAAA;AACpC,YAAA,IAAI,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC;AAC7C,YAAA,IAAI,CAAC,UAAU;AAAE,gBAAA,OAAO,QAAQ,CAAC;;AAGjC,YAAA,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC;AAEpD,YAAA,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;AAC5B,YAAA,IAAI,IAAI,EAAE;;AAER,gBAAA,IAAI,UAAU,CAAC,SAAS,KAAK,MAAM,EAAE;;AAEnC,oBAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,oBAAA,QAAQ,CAAC,WAAW,GAAG,iCAAiC,CAAC;AAEzD,oBAAA,IAAI,QAAQ,IAAI,CAAC,KAAK,QAAQ,EAAE;wBAC9B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACtC,qBAAA;AAAM,yBAAA;AACL,wBAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACtB,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACtB,iBAAA;;AAED,gBAAA,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,aAAA;AAED,YAAA,OAAO,QAAQ,CAAC;SACjB;KACF;AAGF;;ACrFD;;AAEG;;;;"}