@umbraco/playwright-testhelpers 2.0.0-beta.72 → 2.0.0-beta.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"DataTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DataTypeApiHelper.ts"],"names":[],"mappings":";;;AACA,wEAAsR;AAEtR,MAAa,iBAAiB;IAC5B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,WAAmB,EAAE,MAA2C,EAAE,QAAiB,EAAE,aAAsB,EAAE,EAAW;QACjJ,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,WAAW;YAC1B,eAAe,EAAE,aAAa;YAC9B,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC,IAAI;SAC7C,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,EAAE,QAAQ,CAAC,CAAC;QAC1G,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAQ;QAC/B,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,QAAQ,CAAC,IAAI;YACrB,aAAa,EAAE,QAAQ,CAAC,WAAW;YACnC,eAAe,EAAE,QAAQ,CAAC,aAAa;YACvC,QAAQ,EAAE,QAAQ,CAAC,MAAM;SAC1B,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAC7G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,CAAC,CAAC;IACrI,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAa;QAC1B,IAAI,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAS,CAAC;QAEd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC/B,OAAO,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,iDAAiD,GAAG,OAAO,CAAC,CAAC;QACpH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE;YAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC9B;iBAAM,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,EAAE;gBACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC;iBACf;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE;YAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACrB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;iBACnD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACvC;iBAAM,IAAI,QAAQ,CAAC,WAAW,EAAE;gBAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aAErD;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,EAAC,EAAE,EAAE,QAAQ,EAAC;SACzB,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,UAAU,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7H,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,EAAC,EAAE,EAAE,QAAQ,EAAC;SACzB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,UAAU,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;QACtI,wCAAwC;QACxC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,SAAS;IACT,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAiB,EAAE,EAAW;QAC7D,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC,IAAI;SAC7C,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,EAAE,UAAU,CAAC,CAAC;QACnH,+CAA+C;QAC/C,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,IAAY;QACzC,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8DAA8D,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;QACnK,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,UAAU;QAC5C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAC/C;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACnC;iBAAM;gBACL,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC7B;SACF;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,EAAU,EAAE,QAAiB;QACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACvB,IAAI,CAAC,QAAQ,EAAE;oBACb,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAClB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBACvC;oBACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACjC;gBACD,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;iBAChD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACpC;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE;gBAC5B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aAC7D;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAQ;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,EAAE,QAAQ,CAAC,CAAA;QACzG,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,gDAAyB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,IAAY,EAAE,OAAiB;QAC9D,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,kDAA2B,EAAE;aAC/C,QAAQ,CAAC,IAAI,CAAC;aACd,SAAS,CAAC,OAAO,CAAC;aAClB,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,wCAAwC,CAAC,IAAY,EAAE,WAAmB;QAC9E,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,mDAA4B,EAAE;aAChD,QAAQ,CAAC,IAAI,CAAC;aACd,eAAe,CAAC,WAAW,CAAC;aAC5B,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,6CAA6C,CAAC,IAAY;QAC9D,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,mDAA4B,EAAE;aAChD,QAAQ,CAAC,IAAI,CAAC;aACd,kBAAkB,CAAC,IAAI,CAAC;aACxB,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,mDAAmD,CAAC,IAAY,EAAE,WAAmB;QACzF,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,mDAA4B,EAAE;aAChD,QAAQ,CAAC,IAAI,CAAC;aACd,eAAe,CAAC,WAAW,CAAC;aAC5B,wBAAwB,CAAC,IAAI,CAAC;aAC9B,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAY,EAAE,UAAkB;QAC7D,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,gDAAyB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,UAAU,CAAC,UAAU,CAAC;aACtB,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY,EAAE,UAAmB,EAAE,OAAiB;QAC/E,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,8CAAuB,EAAE;aAC3C,QAAQ,CAAC,IAAI,CAAC;aACd,YAAY,CAAC,UAAU,CAAC;aACxB,SAAS,CAAC,OAAO,CAAC;aAClB,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,4BAA4B,CAAC,IAAY;QAC7C,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,iCAAiC,CAAC,IAAY,EAAE,oBAA4B;QAChF,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,wDAAwD,CAAC,IAAY,EAAE,oBAA4B,EAAE,qBAA6B;QACtI,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,0BAA0B,CAAC,qBAAqB,CAAC;aACjD,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,IAAY,EAAE,YAAoB,CAAC,EAAE,YAAoB,CAAC;QACzG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,YAAY,CAAC,SAAS,CAAC;aACvB,YAAY,CAAC,SAAS,CAAC;aACvB,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,IAAY,EAAE,OAAgB;QAC7E,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,mBAAmB,CAAC,OAAO,CAAC;aAC5B,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,IAAY,EAAE,OAAgB;QAC7E,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,eAAe,CAAC,OAAO,CAAC;aACxB,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,4CAA4C,CAAC,IAAY,EAAE,OAAgB;QAC/E,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,0BAA0B,CAAC,OAAO,CAAC;aACnC,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,8CAA8C,CAAC,IAAY,EAAE,KAAa;QAC9E,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,oBAAoB,CAAC,KAAK,CAAC;aAC3B,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,4CAA4C,CAAC,IAAY,EAAE,aAAqB,EAAE,QAAgB,EAAE,EAAE,cAAsB,OAAO;QACvI,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,QAAQ,EAAE;aACR,yBAAyB,CAAC,aAAa,CAAC;aACxC,SAAS,CAAC,KAAK,CAAC;aAChB,cAAc,CAAC,WAAW,CAAC;aAC3B,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,+CAA+C,CAAC,IAAY,EAAE,aAAqB,EAAE,kBAA0B,EAAE,EAAE,YAAoB,EAAE,EAAE,mBAA2B,EAAE;QAC5K,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,QAAQ,EAAE;aACR,yBAAyB,CAAC,aAAa,CAAC;aACxC,mBAAmB,CAAC,eAAe,CAAC;aACpC,aAAa,CAAC,SAAS,CAAC;aACxB,cAAc,CAAC,gBAAgB,CAAC;aAChC,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,6CAA6C,CAAC,IAAY,EAAE,aAAqB,EAAE,iBAA0B;QACjH,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,QAAQ,EAAE;aACR,yBAAyB,CAAC,aAAa,CAAC;aACxC,qBAAqB,CAAC,iBAAiB,CAAC;aACxC,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,aAAqB,EAAE,OAAgB;QAChF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,oBAAoB,CAAC,CAAC;QAClG,OAAO,oBAAoB,EAAE,KAAK,KAAK,OAAO,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,sCAAsC,CAAC,aAAqB,EAAE,OAAgB;QAClF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,2BAA2B,CAAC,CAAC;QAC3G,OAAO,sBAAsB,EAAE,KAAK,KAAK,OAAO,CAAC;IACnD,CAAC;IAED,aAAa;IACb,KAAK,CAAC,oBAAoB,CAAC,aAAqB;QAC9C,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,aAAqB,EAAE,oBAA4B;QACjF,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,iCAAiC,CAAC,aAAqB,EAAE,oBAA4B,EAAE,SAAiB;QAC5G,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,aAAa,EAAE;aACb,QAAQ,CAAC,SAAS,CAAC;aACnB,IAAI,EAAE;aACR,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,aAAa,CAAC,SAAS,CAAC;aACxB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,aAAqB,EAAE,YAAoB,CAAC,EAAE,YAAoB,CAAC;QAC1G,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,YAAY,CAAC,SAAS,CAAC;aACvB,YAAY,CAAC,SAAS,CAAC;aACvB,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,aAAqB,EAAE,OAAgB;QAC9E,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,eAAe,CAAC,OAAO,CAAC;aACxB,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,sCAAsC,CAAC,aAAqB,EAAE,KAAa;QAC/E,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,oBAAoB,CAAC,KAAK,CAAC;aAC3B,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,aAAqB,EAAE,QAAgB,EAAE;QAClF,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,eAAe,CAAC,KAAK,CAAC;aACtB,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,aAAqB,EAAE,UAAkB,EAAE;QAC9E,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,eAAe,CAAC,OAAO,CAAC;aACxB,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,mCAAmC,CAAC,aAAqB,EAAE,aAAuB,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,oBAAoB,CAAC,UAAU,CAAC;aAChC,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,iCAAiC,CAAC,aAAqB,EAAE,oBAA4B,EAAE,YAAoB,MAAM,EAAE,oBAA4B,EAAE,EAAE,aAAqB,CAAC,EAAE,UAAkB,CAAC,EAAE,aAAqB,CAAC,EAAE,aAAqB,CAAC;QAClP,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,OAAO,EAAE;aACP,SAAS,CAAC,SAAS,CAAC;aACpB,eAAe,CAAC,iBAAiB,CAAC;aAClC,cAAc,CAAC,UAAU,CAAC;aAC1B,WAAW,CAAC,OAAO,CAAC;aACpB,cAAc,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC,UAAU,CAAC;aAC1B,IAAI,EAAE;aACR,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,aAAqB,EAAE,oBAA4B,EAAE,iBAAyB,EAAE,EAAE,uBAA+B,EAAE,EAAE,cAAsB,OAAO,EAAE,gBAAyB,KAAK,EAAE,oBAA6B,KAAK;QACrQ,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACvF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;QAEnG,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,QAAQ,CAAC,eAAe,CAAC;aACzB,cAAc,CAAC,qBAAqB,CAAC;aACrC,cAAc,CAAC,WAAW,CAAC;aAC3B,iBAAiB,CAAC,aAAa,CAAC;aAChC,qBAAqB,CAAC,iBAAiB,CAAC;aACxC,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,6CAA6C,CAAC,aAAqB,EAAE,oBAA4B,EAAE,kBAA0B,EAAE,EAAE,YAAoB,EAAE,EAAE,YAAoB,EAAE;QACnL,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,mBAAmB,CAAC,eAAe,CAAC;aACpC,aAAa,CAAC,SAAS,CAAC;aACxB,aAAa,CAAC,SAAS,CAAC;aACxB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,gDAAgD,CAAC,aAAqB,EAAE,oBAA4B,EAAE,qBAA6B;QACvI,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACrB,QAAQ,EAAE;aACV,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,0BAA0B,CAAC,qBAAqB,CAAC;aACjD,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,aAAqB,EAAE,oBAA4B,EAAE,KAAa;QAC/F,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACrB,QAAQ,EAAE;aACV,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,SAAS,CAAC,KAAK,CAAC;aAChB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,aAAqB,EAAE,oBAA4B,EAAE,gBAAyB,KAAK,EAAE,iBAA0B,KAAK;QACvJ,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,eAAe,CAAC,aAAa,CAAC;aAC9B,gBAAgB,CAAC,cAAc,CAAC;aAChC,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,aAAqB,EAAE,oBAA4B,EAAE,cAAsB,CAAC,EAAE,aAAqB,CAAC,EAAE,aAAqB,EAAE;QAChK,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,+CAAwB,EAAE;aAC7C,QAAQ,CAAC,aAAa,CAAC;aACvB,QAAQ,EAAE;aACR,yBAAyB,CAAC,oBAAoB,CAAC;aAC/C,oBAAoB,CAAC,WAAW,CAAC;aACjC,cAAc,CAAC,UAAU,CAAC;aAC1B,cAAc,CAAC,UAAU,CAAC;aAC1B,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,8CAA8C,CAAC,eAAuB,EAAE,cAAwB;QACpG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC/E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,sBAAsB,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3F,OAAO,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,+CAA+C,CAAC,eAAuB,EAAE,cAAwB;QACrG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC/E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,uBAAuB,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7F,OAAO,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,sCAAsC,CAAC,eAAuB,EAAE,OAAgB;QACpF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC;QAChG,OAAO,oBAAoB,EAAE,KAAK,KAAK,OAAO,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,yCAAyC,CAAC,eAAuB,EAAE,KAAa;QACpF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,CAAC;QACnG,OAAO,qBAAqB,EAAE,KAAK,KAAK,KAAK,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,gCAAgC,CAAC,SAAiB,EAAE,cAAsB,EAAE,KAAa;QAC7F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACrF,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,sCAAsC,CAAC,aAAqB,EAAE,SAAiB,EAAE,cAAwB;QAC7G,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxD,qFAAqF;QACrF,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;QACzF,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5D,OAAO,KAAK,CAAC;SACd;QAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC;QACnG,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC/E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;QAED,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC;QAC/F,OAAO,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAC/B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qCAAqC,CAAC,aAAqB,EAAE,KAAa;QAC9E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;QACzF,OAAO,gBAAgB,EAAE,KAAK,KAAK,KAAK,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,aAAqB,EAAE,OAAe;QAC1E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;QACzF,OAAO,gBAAgB,EAAE,KAAK,KAAK,OAAO,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,aAAqB,EAAE,cAAsB;QAC5F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,2CAA2C,CAAC,aAAqB,EAAE,cAAsB;QAC7F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,YAAY,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,4CAA4C,CAAC,aAAqB,EAAE,cAAsB,EAAE,mBAA6B;QAC7H,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAEzF,8FAA8F;QAC9F,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5E,OAAO,IAAI,CAAC;SACb;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7E,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACxI,CAAC;IAED,KAAK,CAAC,yCAAyC,CAAC,aAAqB,EAAE,cAAsB,EAAE,UAAkB,EAAE,UAAkB;QACnI,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,aAAqB,EAAE,cAAsB,EAAE,eAAuB;QACrH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,eAAe,KAAK,eAAe,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,wCAAwC,CAAC,aAAqB,EAAE,cAAsB,EAAE,YAAoB,MAAM;QACtH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,oDAAoD,CAAC,aAAqB,EAAE,cAAsB,EAAE,YAAoB,MAAM,EAAE,iBAAyB;QAC7J,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,CAAC,6CAA6C,CAAC,aAAqB,EAAE,cAAsB,EAAE,YAAoB,MAAM,EAAE,UAAkB;QAC/I,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,CAAC,6CAA6C,CAAC,aAAqB,EAAE,cAAsB,EAAE,YAAoB,MAAM,EAAE,UAAkB;QAC/I,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,CAAC,qCAAqC,CAAC,aAAqB,EAAE,cAAsB,EAAE,cAAsB;QAC/G,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACnG,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,2BAA2B,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,sCAAsC,CAAC,aAAqB,EAAE,cAAsB,EAAE,WAAmB;QAC7G,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,UAAU,KAAK,WAAW,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,wCAAwC,CAAC,aAAqB,EAAE,cAAsB,EAAE,aAAsB;QAClH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,aAAa,KAAK,aAAa,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,4CAA4C,CAAC,aAAqB,EAAE,cAAsB,EAAE,iBAA0B;QAC1H,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,iBAAiB,KAAK,iBAAiB,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,0CAA0C,CAAC,aAAqB,EAAE,cAAsB,EAAE,eAAuB;QACrH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,eAAe,KAAK,eAAe,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,aAAqB,EAAE,cAAsB,EAAE,SAAiB;QACzG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,aAAqB,EAAE,cAAsB,EAAE,SAAiB;QACzG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,gCAAgC,CAAC,aAAqB,EAAE,qBAA6B;QACzF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC1E,OAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,KAAK,qBAAqB,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,qCAAqC,CAAC,IAAY,EAAE,SAAiB,EAAE,SAAiB,EAAE,UAAkB;QAChH,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,kDAA2B,EAAE;aAC/C,QAAQ,CAAC,IAAI,CAAC;aACd,OAAO,EAAE;aACP,SAAS,CAAC,SAAS,CAAC;aACpB,SAAS,CAAC,kCAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACzC,UAAU,CAAC,UAAU,CAAC;aACtB,SAAS,CAAC,SAAS,CAAC;aACpB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,wCAAwC,CAAC,IAAY,EAAE,WAAmB;QAC9E,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,iDAA0B,EAAE;aAC9C,QAAQ,CAAC,IAAI,CAAC;aACd,eAAe,CAAC,WAAW,CAAC;aAC5B,wBAAwB,CAAC,KAAK,CAAC;aAC/B,KAAK,EAAE,CAAC;QAEX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF;AAn1BD,8CAm1BC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {CheckboxListDataTypeBuilder, DatePickerDataTypeBuilder, BlockListDataTypeBuilder, DropdownDataTypeBuilder, ContentPickerDataTypeBuilder, BlockGridDataTypeBuilder, ImageCropperDataTypeBuilder, AliasHelper, MediaPickerDataTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DataTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return await response.json();\n }\n\n async create(name: string, editorAlias: string, values: { alias: string; value: string; }[], parentId?: string, editorUiAlias?: string, id?: string) {\n const dataType = {\n \"name\": name,\n \"editorAlias\": editorAlias,\n \"editorUiAlias\": editorUiAlias,\n \"values\": values,\n \"id\": id,\n \"parent\": parentId ? {\"id\": parentId} : null\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);\n // Returns the id of the created dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async update(id: string, dataType) {\n const updateDataType = {\n \"name\": dataType.name,\n \"editorAlias\": dataType.editorAlias,\n \"editorUiAlias\": dataType.editorUiAlias,\n \"values\": dataType.values,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, updateDataType);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return response.status() === 200;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);\n return await response.json();\n }\n\n async getByName(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n return this.get(dataType.id);\n } else if (dataType.isContainer || dataType.hasChildren) {\n const result = await this.recurseChildren(name, dataType.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n if (dataType.isFolder) {\n return await this.recurseDeleteChildren(dataType);\n }\n return await this.delete(dataType.id);\n } else if (dataType.hasChildren) {\n await this.recurseChildren(name, dataType.id, true);\n\n }\n }\n return null;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async moveToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": {id: folderId}\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);\n }\n\n async copyToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": {id: folderId}\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);\n // Returns the id of the copied dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n // FOLDER\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return await response.json();\n }\n\n async createFolder(name: string, parentId?: string, id?: string) {\n const folderData = {\n \"name\": name,\n \"id\": id,\n \"parent\": parentId ? {\"id\": parentId} : null\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);\n // Returns the id of the created dataTypeFolder\n return response.headers().location.split(\"v1/data-type/folder/\").pop();\n }\n\n async renameFolder(id: string, name: string) {\n const folderData = {\n \"name\": name,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, folderData);\n }\n\n async deleteFolder(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n\n async doesFolderExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return response.status() === 200;\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');\n const items = await response.json();\n return items.items;\n }\n\n private async recurseDeleteChildren(dataFolder) {\n if (!dataFolder.hasChildren) {\n return await this.deleteFolder(dataFolder.id);\n }\n const items = await this.getChildren(dataFolder.id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.deleteFolder(dataFolder.id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.id);\n }\n return await this.get(child.id);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.id);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async save(dataType) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType)\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async createDateTypeDataType(name: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DatePickerDataTypeBuilder()\n .withName(name)\n .build();\n return await this.save(dataType);\n }\n\n async createCheckboxListDataType(name: string, options: string[]) {\n await this.ensureNameNotExists(name);\n\n const dataType = new CheckboxListDataTypeBuilder()\n .withName(name)\n .withItems(options)\n .build();\n return await this.save(dataType);\n }\n\n async createContentPickerDataTypeWithStartNode(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new ContentPickerDataTypeBuilder()\n .withName(name)\n .withStartNodeId(startNodeId)\n .build();\n return await this.save(dataType);\n }\n\n async createContentPickerDataTypeWithShowOpenButton(name: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new ContentPickerDataTypeBuilder()\n .withName(name)\n .withShowOpenButton(true)\n .build();\n return await this.save(dataType);\n }\n\n async createContentPickerDataTypeWithIgnoreUserStartNodes(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new ContentPickerDataTypeBuilder()\n .withName(name)\n .withStartNodeId(startNodeId)\n .withIgnoreUserStartNodes(true)\n .build();\n return await this.save(dataType);\n }\n \n async createDatePickerDataType(name: string, dateFormat: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DatePickerDataTypeBuilder()\n .withName(name)\n .withFormat(dateFormat)\n .build();\n return await this.save(dataType);\n }\n\n async createDropdownDataType(name: string, isMultiple: boolean, options: string[]) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DropdownDataTypeBuilder()\n .withName(name)\n .withMultiple(isMultiple)\n .withItems(options)\n .build();\n return await this.save(dataType);\n }\n\n // BlockListEditor\n async createEmptyBlockListDataType(name: string) {\n await this.ensureNameNotExists(name);\n\n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithABlock(name: string, contentElementTypeId: string) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithContentAndSettingsElementType(name: string, contentElementTypeId: string, settingsElementTypeId: string) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withSettingsElementTypeKey(settingsElementTypeId)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithMinAndMaxAmount(name: string, minAmount: number = 0, maxAmount: number = 0) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withMinValue(minAmount)\n .withMaxValue(maxAmount)\n .build();\n \n return await this.save(blockList);\n }\n\n async createBlockListDataTypeWithSingleBlockMode(name: string, enabled: boolean) {\n await this.ensureNameNotExists(name);\n\n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withSingleBlockMode(enabled)\n .build();\n\n return await this.save(blockList);\n }\n\n async createBlockListDataTypeWithLiveEditingMode(name: string, enabled: boolean) {\n await this.ensureNameNotExists(name);\n\n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withLiveEditing(enabled)\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithInlineEditingMode(name: string, enabled: boolean) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withInlineEditingAsDefault(enabled)\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithPropertyEditorWidth(name: string, width: string) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withMaxPropertyWidth(width)\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListWithBlockWithEditorAppearance(name: string, elementTypeId: string, label: string = '', overlaySize: string = 'small') {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(elementTypeId)\n .withLabel(label)\n .withEditorSize(overlaySize)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n\n async createBlockListWithBlockWithCatalogueAppearance(name: string, elementTypeId: string, backgroundColor: string = '', iconColor: string = '', customStylesheet: string = '') {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(elementTypeId)\n .withBackgroundColor(backgroundColor)\n .withIconColor(iconColor)\n .withStylesheet(customStylesheet)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListWithBlockWithHideContentEditor(name: string, elementTypeId: string, hideContentEditor: boolean) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(elementTypeId)\n .withHideContentEditor(hideContentEditor)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n\n async isSingleBlockModeEnabledForBlockList(blockListName: string, enabled: boolean) {\n const blockList = await this.getByName(blockListName);\n const singleBlockModeValue = blockList.values.find(value => value.alias === 'useSingleBlockMode');\n return singleBlockModeValue?.value === enabled;\n }\n\n async isInlineEditingModeEnabledForBlockList(blockListName: string, enabled: boolean) {\n const blockList = await this.getByName(blockListName);\n const inlineEditingModeValue = blockList.values.find(value => value.alias === 'useInlineEditingAsDefault');\n return inlineEditingModeValue?.value === enabled;\n }\n \n // Block Grid\n async createEmptyBlockGrid(blockGridName: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithABlock(blockGridName: string, contentElementTypeId: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithABlockInAGroup(blockGridName: string, contentElementTypeId: string, groupName: string ) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlockGroup()\n .withName(groupName)\n .done()\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withGroupName(groupName)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithMinAndMaxAmount(blockGridName: string, minAmount: number = 0, maxAmount: number = 0) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withMinValue(minAmount)\n .withMaxValue(maxAmount)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithLiveEditingMode(blockGridName: string, enabled: boolean) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withLiveEditing(enabled)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithPropertyEditorWidth(blockGridName: string, width: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withMaxPropertyWidth(width)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithCreateButtonLabel(blockGridName: string, label: string = '') {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withCreateLabel(label)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithGridColumns(blockGridName: string, columns: number = 12) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withGridColumns(columns)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithLayoutStylesheet(blockGridName: string, stylesheet: string[] = ['']) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withLayoutStylesheet(stylesheet)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithAnAreaInABlock(blockGridName: string, contentElementTypeId: string, areaAlias: string = 'area', createButtonLabel :string = '', columnSpan: number = 6, rowSpan: number = 1, minAllowed: number = 0, maxAllowed: number = 2) {\n await this.ensureNameNotExists(blockGridName);\n \n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .addArea()\n .withAlias(areaAlias)\n .withCreateLabel(createButtonLabel)\n .withColumnSpan(columnSpan)\n .withRowSpan(rowSpan)\n .withMinAllowed(minAllowed)\n .withMaxAllowed(maxAllowed)\n .done()\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithAdvancedSettingsInBlock(blockGridName: string, contentElementTypeId: string, customViewPath: string = '', customStylesheetPath: string = '', overlaySize: string = 'small', inlineEditing: boolean = false, hideContentEditor: boolean = false) {\n await this.ensureNameNotExists(blockGridName);\n const encodedViewPath = await this.api.stylesheet.encodeStylesheetPath(customViewPath);\n const encodedStylesheetPath = await this.api.stylesheet.encodeStylesheetPath(customStylesheetPath);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withView(encodedViewPath)\n .withStylesheet(encodedStylesheetPath)\n .withEditorSize(overlaySize)\n .withInlineEditing(inlineEditing)\n .withHideContentEditor(hideContentEditor)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithCatalogueAppearanceInBlock(blockGridName: string, contentElementTypeId: string, backgroundColor: string = '', iconColor: string = '', thumbnail: string = '') {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withBackgroundColor(backgroundColor)\n .withIconColor(iconColor)\n .withThumbnail(thumbnail)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithContentAndSettingsElementType(blockGridName: string, contentElementTypeId: string, settingsElementTypeId: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withSettingsElementTypeKey(settingsElementTypeId)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithLabel(blockGridName: string, contentElementTypeId: string, label: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withLabel(label)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithPermissions(blockGridName: string, contentElementTypeId: string, toAllowInRoot: boolean = false, toAllowInAreas: boolean = false) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withAllowAtRoot(toAllowInRoot)\n .withAllowInAreas(toAllowInAreas)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithSizeOptions(blockGridName: string, contentElementTypeId: string, columnSpans: number = 0, minRowSpan: number = 0, maxRowSpan: number = 12) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .addColumnSpanOptions(columnSpans)\n .withMinRowSpan(minRowSpan)\n .withMaxRowSpan(maxRowSpan)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async doesBlockEditorContainBlocksWithContentTypeIds(blockEditorName: string, elementTypeIds: string[]) {\n if (!elementTypeIds || elementTypeIds.length === 0) {\n return false;\n }\n\n const blockEditor = await this.getByName(blockEditorName);\n const blocksValue = blockEditor.values.find(value => value.alias === 'blocks');\n if (!blocksValue || blocksValue.value.length === 0) {\n return false;\n }\n\n const contentElementTypeKeys = blocksValue.value.map(block => block.contentElementTypeKey);\n return elementTypeIds.every(id => contentElementTypeKeys.includes(id));\n }\n\n async doesBlockEditorContainBlocksWithSettingsTypeIds(blockEditorName: string, elementTypeIds: string[]) {\n if (!elementTypeIds || elementTypeIds.length === 0) {\n return false;\n }\n\n const blockEditor = await this.getByName(blockEditorName);\n const blocksValue = blockEditor.values.find(value => value.alias === 'blocks');\n if (!blocksValue || blocksValue.value.length === 0) {\n return false;\n }\n\n const settingsElementTypeKeys = blocksValue.value.map(block => block.settingsElementTypeKey);\n return elementTypeIds.every(id => settingsElementTypeKeys.includes(id));\n }\n\n async isLiveEditingModeEnabledForBlockEditor(blockEditorName: string, enabled: boolean) {\n const blockEditor = await this.getByName(blockEditorName);\n const liveEditingModeValue = blockEditor.values.find(value => value.alias === 'useLiveEditing');\n return liveEditingModeValue?.value === enabled;\n }\n\n async doesMaxPropertyContainWidthForBlockEditor(blockEditorName: string, width: string) {\n const blockEditor = await this.getByName(blockEditorName);\n const maxPropertyWidthValue = blockEditor.values.find(value => value.alias === 'maxPropertyWidth');\n return maxPropertyWidthValue?.value === width;\n }\n\n async doesBlockEditorBlockContainLabel(blockName: string, elementTypeKey: string, label: string) {\n const block = await this.getBlockWithContentElementTypeId(blockName, elementTypeKey);\n return block.label === label;\n }\n\n async doesBlockGridGroupContainCorrectBlocks(blockGridName: string, groupName: string, elementTypeIds: string[]) {\n if (!elementTypeIds || elementTypeIds.length === 0) {\n return false;\n }\n\n const blockEditor = await this.getByName(blockGridName);\n // We need to get the GroupKey, so we can use it to find the blocks that use the Key.\n const blockGroupsValue = blockEditor.values.find(value => value.alias === 'blockGroups');\n if (!blockGroupsValue || blockGroupsValue.value.length === 0) {\n return false;\n }\n\n const blockGroupKey = blockGroupsValue.value.find(blockGroup => blockGroup.name === groupName).key;\n const blocksValue = blockEditor.values.find(value => value.alias === 'blocks');\n if (!blocksValue || blocksValue.value.length === 0) {\n return false;\n }\n\n const blocksWithGroupKey = blocksValue.value.filter(block => block.groupKey === blockGroupKey);\n return elementTypeIds.every(id =>\n blocksWithGroupKey.some(block => block.contentElementTypeKey === id)\n );\n }\n\n async doesBlockGridContainCreateButtonLabel(blockGridName: string, label: string) {\n const blockEditor = await this.getByName(blockGridName);\n const createLabelValue = blockEditor.values.find(value => value.alias === 'createLabel');\n return createLabelValue?.value === label;\n }\n\n async doesBlockGridContainGridColumns(blockGridName: string, columns: number) {\n const blockEditor = await this.getByName(blockGridName);\n const gridColumnsValue = blockEditor.values.find(value => value.alias === 'gridColumns');\n return gridColumnsValue?.value === columns;\n }\n\n async doesBlockEditorBlockHaveAllowInRootEnabled(blockGridName: string, elementTypeKey: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.allowAtRoot;\n }\n\n async doesBlockEditorBlockHaveAllowInAreasEnabled(blockGridName: string, elementTypeKey: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.allowInAreas;\n }\n\n async doesBlockEditorBlockContainColumnSpanOptions(blockGridName: string, elementTypeKey: string, expectedColumnSpans: number[]) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n\n // If the block does not have any columnSpanOptions, and we are not expecting any, return true\n if (block.columnSpanOptions.length === 0 && expectedColumnSpans.length === 0) {\n return true;\n }\n\n const columnSpans = block.columnSpanOptions.map(option => option.columnSpan);\n return expectedColumnSpans.every(span => columnSpans.includes(span)) && columnSpans.every(span => expectedColumnSpans.includes(span));\n }\n\n async doesBlockEditorBlockContainRowSpanOptions(blockGridName: string, elementTypeKey: string, minRowSpan: number, maxRowSpan: number) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.rowMinSpan === minRowSpan && block.rowMaxSpan === maxRowSpan;\n }\n\n async doesBlockEditorBlockContainAreaGridColumns(blockGridName: string, elementTypeKey: string, areaGridColumns: number) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areaGridColumns === areaGridColumns;\n }\n\n async doesBlockEditorBlockContainAreaWithAlias(blockGridName: string, elementTypeKey: string, areaAlias: string = 'area') {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areas.find(area => area.alias === areaAlias);\n }\n\n async doesBlockEditorBlockContainAreaWithCreateButtonLabel(blockGridName: string, elementTypeKey: string, areaAlias: string = 'area', createButtonLabel: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areas.find(area => area.createLabel === createButtonLabel && area.alias === areaAlias);\n }\n\n async doesBlockEditorBlockContainAreaWithMinAllowed(blockGridName: string, elementTypeKey: string, areaAlias: string = 'area', minAllowed: number) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areas.find(area => area.minAllowed === minAllowed && area.alias === areaAlias);\n }\n\n async doesBlockEditorBlockContainAreaWithMaxAllowed(blockGridName: string, elementTypeKey: string, areaAlias: string = 'area', maxAllowed: number) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areas.find(area => area.maxAllowed === maxAllowed && area.alias === areaAlias);\n }\n\n async doesBlockEditorBlockContainStylesheet(blockGridName: string, elementTypeKey: string, stylesheetPath: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n const encodedSecondStylesheetPath = await this.api.stylesheet.encodeStylesheetPath(stylesheetPath);\n return block.stylesheet[0] === encodedSecondStylesheetPath;\n }\n\n async doesBlockEditorBlockContainOverlaySize(blockGridName: string, elementTypeKey: string, overlaySize: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.editorSize === overlaySize;\n }\n\n async doesBlockEditorBlockContainInlineEditing(blockGridName: string, elementTypeKey: string, inlineEditing: boolean) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.inlineEditing === inlineEditing;\n }\n\n async doesBlockEditorBlockContainHideContentEditor(blockGridName: string, elementTypeKey: string, hideContentEditor: boolean) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.hideContentEditor === hideContentEditor;\n }\n\n async doesBlockEditorBlockContainBackgroundColor(blockGridName: string, elementTypeKey: string, backgroundColor: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.backgroundColor === backgroundColor;\n }\n\n async doesBlockEditorBlockContainIconColor(blockGridName: string, elementTypeKey: string, iconColor: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.iconColor === iconColor;\n }\n\n async doesBlockEditorBlockContainThumbnail(blockGridName: string, elementTypeKey: string, thumbnail: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.thumbnail === thumbnail;\n }\n \n async getBlockWithContentElementTypeId(blockGridName: string, contentElementTypeKey: string) {\n const blockEditor = await this.getByName(blockGridName);\n const blocks = blockEditor.values.find(value => value.alias === 'blocks');\n return blocks.value.find(block => block.contentElementTypeKey === contentElementTypeKey);\n }\n\n async createImageCropperDataTypeWithOneCrop(name: string, cropLabel: string, cropWidth: number, cropHeight: number) {\n await this.ensureNameNotExists(name);\n\n const dataType = new ImageCropperDataTypeBuilder()\n .withName(name)\n .addCrop()\n .withLabel(cropLabel)\n .withAlias(AliasHelper.toAlias(cropLabel))\n .withHeight(cropHeight)\n .withWidth(cropWidth)\n .done()\n .build();\n\n return await this.save(dataType);\n }\n\n async createMediaPickerDataTypeWithStartNodeId(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new MediaPickerDataTypeBuilder()\n .withName(name)\n .withStartNodeId(startNodeId)\n .withIgnoreUserStartNodes(false)\n .build();\n\n return await this.save(dataType);\n }\n}"]}
1
+ {"version":3,"file":"DataTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DataTypeApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {CheckboxListDataTypeBuilder, DatePickerDataTypeBuilder, BlockListDataTypeBuilder, DropdownDataTypeBuilder, ContentPickerDataTypeBuilder, BlockGridDataTypeBuilder, ImageCropperDataTypeBuilder, AliasHelper, MediaPickerDataTypeBuilder, RadioboxDataTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DataTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return await response.json();\n }\n\n async create(name: string, editorAlias: string, values: { alias: string; value: string; }[], parentId?: string, editorUiAlias?: string, id?: string) {\n const dataType = {\n \"name\": name,\n \"editorAlias\": editorAlias,\n \"editorUiAlias\": editorUiAlias,\n \"values\": values,\n \"id\": id,\n \"parent\": parentId ? {\"id\": parentId} : null\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);\n // Returns the id of the created dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async update(id: string, dataType) {\n const updateDataType = {\n \"name\": dataType.name,\n \"editorAlias\": dataType.editorAlias,\n \"editorUiAlias\": dataType.editorUiAlias,\n \"values\": dataType.values,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, updateDataType);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return response.status() === 200;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);\n return await response.json();\n }\n\n async getByName(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n return this.get(dataType.id);\n } else if (dataType.isContainer || dataType.hasChildren) {\n const result = await this.recurseChildren(name, dataType.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n if (dataType.isFolder) {\n return await this.recurseDeleteChildren(dataType);\n }\n return await this.delete(dataType.id);\n } else if (dataType.hasChildren) {\n await this.recurseChildren(name, dataType.id, true);\n\n }\n }\n return null;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async moveToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": {id: folderId}\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);\n }\n\n async copyToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": {id: folderId}\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);\n // Returns the id of the copied dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n // FOLDER\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return await response.json();\n }\n\n async createFolder(name: string, parentId?: string, id?: string) {\n const folderData = {\n \"name\": name,\n \"id\": id,\n \"parent\": parentId ? {\"id\": parentId} : null\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);\n // Returns the id of the created dataTypeFolder\n return response.headers().location.split(\"v1/data-type/folder/\").pop();\n }\n\n async renameFolder(id: string, name: string) {\n const folderData = {\n \"name\": name,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, folderData);\n }\n\n async deleteFolder(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n\n async doesFolderExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return response.status() === 200;\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');\n const items = await response.json();\n return items.items;\n }\n\n private async recurseDeleteChildren(dataFolder) {\n if (!dataFolder.hasChildren) {\n return await this.deleteFolder(dataFolder.id);\n }\n const items = await this.getChildren(dataFolder.id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.deleteFolder(dataFolder.id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.id);\n }\n return await this.get(child.id);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.id);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async save(dataType) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType)\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async createDateTypeDataType(name: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DatePickerDataTypeBuilder()\n .withName(name)\n .build();\n return await this.save(dataType);\n }\n\n async createCheckboxListDataType(name: string, options: string[]) {\n await this.ensureNameNotExists(name);\n\n const dataType = new CheckboxListDataTypeBuilder()\n .withName(name)\n .withItems(options)\n .build();\n return await this.save(dataType);\n }\n\n async createContentPickerDataTypeWithStartNode(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new ContentPickerDataTypeBuilder()\n .withName(name)\n .withStartNodeId(startNodeId)\n .build();\n return await this.save(dataType);\n }\n\n async createContentPickerDataTypeWithShowOpenButton(name: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new ContentPickerDataTypeBuilder()\n .withName(name)\n .withShowOpenButton(true)\n .build();\n return await this.save(dataType);\n }\n\n async createContentPickerDataTypeWithIgnoreUserStartNodes(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new ContentPickerDataTypeBuilder()\n .withName(name)\n .withStartNodeId(startNodeId)\n .withIgnoreUserStartNodes(true)\n .build();\n return await this.save(dataType);\n }\n \n async createDatePickerDataType(name: string, dateFormat: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DatePickerDataTypeBuilder()\n .withName(name)\n .withFormat(dateFormat)\n .build();\n return await this.save(dataType);\n }\n\n async createDropdownDataType(name: string, isMultiple: boolean, options: string[]) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DropdownDataTypeBuilder()\n .withName(name)\n .withMultiple(isMultiple)\n .withItems(options)\n .build();\n return await this.save(dataType);\n }\n\n // BlockListEditor\n async createEmptyBlockListDataType(name: string) {\n await this.ensureNameNotExists(name);\n\n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithABlock(name: string, contentElementTypeId: string) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithContentAndSettingsElementType(name: string, contentElementTypeId: string, settingsElementTypeId: string) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withSettingsElementTypeKey(settingsElementTypeId)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithMinAndMaxAmount(name: string, minAmount: number = 0, maxAmount: number = 0) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withMinValue(minAmount)\n .withMaxValue(maxAmount)\n .build();\n \n return await this.save(blockList);\n }\n\n async createBlockListDataTypeWithSingleBlockMode(name: string, enabled: boolean) {\n await this.ensureNameNotExists(name);\n\n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withSingleBlockMode(enabled)\n .build();\n\n return await this.save(blockList);\n }\n\n async createBlockListDataTypeWithLiveEditingMode(name: string, enabled: boolean) {\n await this.ensureNameNotExists(name);\n\n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withLiveEditing(enabled)\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithInlineEditingMode(name: string, enabled: boolean) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withInlineEditingAsDefault(enabled)\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListDataTypeWithPropertyEditorWidth(name: string, width: string) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .withMaxPropertyWidth(width)\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListWithBlockWithEditorAppearance(name: string, elementTypeId: string, label: string = '', overlaySize: string = 'small') {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(elementTypeId)\n .withLabel(label)\n .withEditorSize(overlaySize)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n\n async createBlockListWithBlockWithCatalogueAppearance(name: string, elementTypeId: string, backgroundColor: string = '', iconColor: string = '', customStylesheet: string = '') {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(elementTypeId)\n .withBackgroundColor(backgroundColor)\n .withIconColor(iconColor)\n .withStylesheet(customStylesheet)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n \n async createBlockListWithBlockWithHideContentEditor(name: string, elementTypeId: string, hideContentEditor: boolean) {\n await this.ensureNameNotExists(name);\n \n const blockList = new BlockListDataTypeBuilder()\n .withName(name)\n .addBlock()\n .withContentElementTypeKey(elementTypeId)\n .withHideContentEditor(hideContentEditor)\n .done()\n .build();\n\n return await this.save(blockList);\n }\n\n async isSingleBlockModeEnabledForBlockList(blockListName: string, enabled: boolean) {\n const blockList = await this.getByName(blockListName);\n const singleBlockModeValue = blockList.values.find(value => value.alias === 'useSingleBlockMode');\n return singleBlockModeValue?.value === enabled;\n }\n\n async isInlineEditingModeEnabledForBlockList(blockListName: string, enabled: boolean) {\n const blockList = await this.getByName(blockListName);\n const inlineEditingModeValue = blockList.values.find(value => value.alias === 'useInlineEditingAsDefault');\n return inlineEditingModeValue?.value === enabled;\n }\n \n // Block Grid\n async createEmptyBlockGrid(blockGridName: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithABlock(blockGridName: string, contentElementTypeId: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithABlockInAGroup(blockGridName: string, contentElementTypeId: string, groupName: string ) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlockGroup()\n .withName(groupName)\n .done()\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withGroupName(groupName)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithMinAndMaxAmount(blockGridName: string, minAmount: number = 0, maxAmount: number = 0) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withMinValue(minAmount)\n .withMaxValue(maxAmount)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithLiveEditingMode(blockGridName: string, enabled: boolean) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withLiveEditing(enabled)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithPropertyEditorWidth(blockGridName: string, width: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withMaxPropertyWidth(width)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithCreateButtonLabel(blockGridName: string, label: string = '') {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withCreateLabel(label)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithGridColumns(blockGridName: string, columns: number = 12) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withGridColumns(columns)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithLayoutStylesheet(blockGridName: string, stylesheet: string[] = ['']) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .withLayoutStylesheet(stylesheet)\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithAnAreaInABlock(blockGridName: string, contentElementTypeId: string, areaAlias: string = 'area', createButtonLabel :string = '', columnSpan: number = 6, rowSpan: number = 1, minAllowed: number = 0, maxAllowed: number = 2) {\n await this.ensureNameNotExists(blockGridName);\n \n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .addArea()\n .withAlias(areaAlias)\n .withCreateLabel(createButtonLabel)\n .withColumnSpan(columnSpan)\n .withRowSpan(rowSpan)\n .withMinAllowed(minAllowed)\n .withMaxAllowed(maxAllowed)\n .done()\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithAdvancedSettingsInBlock(blockGridName: string, contentElementTypeId: string, customViewPath: string = '', customStylesheetPath: string = '', overlaySize: string = 'small', inlineEditing: boolean = false, hideContentEditor: boolean = false) {\n await this.ensureNameNotExists(blockGridName);\n const encodedViewPath = await this.api.stylesheet.encodeStylesheetPath(customViewPath);\n const encodedStylesheetPath = await this.api.stylesheet.encodeStylesheetPath(customStylesheetPath);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withView(encodedViewPath)\n .withStylesheet(encodedStylesheetPath)\n .withEditorSize(overlaySize)\n .withInlineEditing(inlineEditing)\n .withHideContentEditor(hideContentEditor)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithCatalogueAppearanceInBlock(blockGridName: string, contentElementTypeId: string, backgroundColor: string = '', iconColor: string = '', thumbnail: string = '') {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withBackgroundColor(backgroundColor)\n .withIconColor(iconColor)\n .withThumbnail(thumbnail)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithContentAndSettingsElementType(blockGridName: string, contentElementTypeId: string, settingsElementTypeId: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withSettingsElementTypeKey(settingsElementTypeId)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithLabel(blockGridName: string, contentElementTypeId: string, label: string) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withLabel(label)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithPermissions(blockGridName: string, contentElementTypeId: string, toAllowInRoot: boolean = false, toAllowInAreas: boolean = false) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .withAllowAtRoot(toAllowInRoot)\n .withAllowInAreas(toAllowInAreas)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async createBlockGridWithSizeOptions(blockGridName: string, contentElementTypeId: string, columnSpans: number = 0, minRowSpan: number = 0, maxRowSpan: number = 12) {\n await this.ensureNameNotExists(blockGridName);\n\n const blockGrid = new BlockGridDataTypeBuilder()\n .withName(blockGridName)\n .addBlock()\n .withContentElementTypeKey(contentElementTypeId)\n .addColumnSpanOptions(columnSpans)\n .withMinRowSpan(minRowSpan)\n .withMaxRowSpan(maxRowSpan)\n .done()\n .build();\n\n return await this.save(blockGrid);\n }\n\n async doesBlockEditorContainBlocksWithContentTypeIds(blockEditorName: string, elementTypeIds: string[]) {\n if (!elementTypeIds || elementTypeIds.length === 0) {\n return false;\n }\n\n const blockEditor = await this.getByName(blockEditorName);\n const blocksValue = blockEditor.values.find(value => value.alias === 'blocks');\n if (!blocksValue || blocksValue.value.length === 0) {\n return false;\n }\n\n const contentElementTypeKeys = blocksValue.value.map(block => block.contentElementTypeKey);\n return elementTypeIds.every(id => contentElementTypeKeys.includes(id));\n }\n\n async doesBlockEditorContainBlocksWithSettingsTypeIds(blockEditorName: string, elementTypeIds: string[]) {\n if (!elementTypeIds || elementTypeIds.length === 0) {\n return false;\n }\n\n const blockEditor = await this.getByName(blockEditorName);\n const blocksValue = blockEditor.values.find(value => value.alias === 'blocks');\n if (!blocksValue || blocksValue.value.length === 0) {\n return false;\n }\n\n const settingsElementTypeKeys = blocksValue.value.map(block => block.settingsElementTypeKey);\n return elementTypeIds.every(id => settingsElementTypeKeys.includes(id));\n }\n\n async isLiveEditingModeEnabledForBlockEditor(blockEditorName: string, enabled: boolean) {\n const blockEditor = await this.getByName(blockEditorName);\n const liveEditingModeValue = blockEditor.values.find(value => value.alias === 'useLiveEditing');\n return liveEditingModeValue?.value === enabled;\n }\n\n async doesMaxPropertyContainWidthForBlockEditor(blockEditorName: string, width: string) {\n const blockEditor = await this.getByName(blockEditorName);\n const maxPropertyWidthValue = blockEditor.values.find(value => value.alias === 'maxPropertyWidth');\n return maxPropertyWidthValue?.value === width;\n }\n\n async doesBlockEditorBlockContainLabel(blockName: string, elementTypeKey: string, label: string) {\n const block = await this.getBlockWithContentElementTypeId(blockName, elementTypeKey);\n return block.label === label;\n }\n\n async doesBlockGridGroupContainCorrectBlocks(blockGridName: string, groupName: string, elementTypeIds: string[]) {\n if (!elementTypeIds || elementTypeIds.length === 0) {\n return false;\n }\n\n const blockEditor = await this.getByName(blockGridName);\n // We need to get the GroupKey, so we can use it to find the blocks that use the Key.\n const blockGroupsValue = blockEditor.values.find(value => value.alias === 'blockGroups');\n if (!blockGroupsValue || blockGroupsValue.value.length === 0) {\n return false;\n }\n\n const blockGroupKey = blockGroupsValue.value.find(blockGroup => blockGroup.name === groupName).key;\n const blocksValue = blockEditor.values.find(value => value.alias === 'blocks');\n if (!blocksValue || blocksValue.value.length === 0) {\n return false;\n }\n\n const blocksWithGroupKey = blocksValue.value.filter(block => block.groupKey === blockGroupKey);\n return elementTypeIds.every(id =>\n blocksWithGroupKey.some(block => block.contentElementTypeKey === id)\n );\n }\n\n async doesBlockGridContainCreateButtonLabel(blockGridName: string, label: string) {\n const blockEditor = await this.getByName(blockGridName);\n const createLabelValue = blockEditor.values.find(value => value.alias === 'createLabel');\n return createLabelValue?.value === label;\n }\n\n async doesBlockGridContainGridColumns(blockGridName: string, columns: number) {\n const blockEditor = await this.getByName(blockGridName);\n const gridColumnsValue = blockEditor.values.find(value => value.alias === 'gridColumns');\n return gridColumnsValue?.value === columns;\n }\n\n async doesBlockEditorBlockHaveAllowInRootEnabled(blockGridName: string, elementTypeKey: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.allowAtRoot;\n }\n\n async doesBlockEditorBlockHaveAllowInAreasEnabled(blockGridName: string, elementTypeKey: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.allowInAreas;\n }\n\n async doesBlockEditorBlockContainColumnSpanOptions(blockGridName: string, elementTypeKey: string, expectedColumnSpans: number[]) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n\n // If the block does not have any columnSpanOptions, and we are not expecting any, return true\n if (block.columnSpanOptions.length === 0 && expectedColumnSpans.length === 0) {\n return true;\n }\n\n const columnSpans = block.columnSpanOptions.map(option => option.columnSpan);\n return expectedColumnSpans.every(span => columnSpans.includes(span)) && columnSpans.every(span => expectedColumnSpans.includes(span));\n }\n\n async doesBlockEditorBlockContainRowSpanOptions(blockGridName: string, elementTypeKey: string, minRowSpan: number, maxRowSpan: number) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.rowMinSpan === minRowSpan && block.rowMaxSpan === maxRowSpan;\n }\n\n async doesBlockEditorBlockContainAreaGridColumns(blockGridName: string, elementTypeKey: string, areaGridColumns: number) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areaGridColumns === areaGridColumns;\n }\n\n async doesBlockEditorBlockContainAreaWithAlias(blockGridName: string, elementTypeKey: string, areaAlias: string = 'area') {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areas.find(area => area.alias === areaAlias);\n }\n\n async doesBlockEditorBlockContainAreaWithCreateButtonLabel(blockGridName: string, elementTypeKey: string, areaAlias: string = 'area', createButtonLabel: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areas.find(area => area.createLabel === createButtonLabel && area.alias === areaAlias);\n }\n\n async doesBlockEditorBlockContainAreaWithMinAllowed(blockGridName: string, elementTypeKey: string, areaAlias: string = 'area', minAllowed: number) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areas.find(area => area.minAllowed === minAllowed && area.alias === areaAlias);\n }\n\n async doesBlockEditorBlockContainAreaWithMaxAllowed(blockGridName: string, elementTypeKey: string, areaAlias: string = 'area', maxAllowed: number) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.areas.find(area => area.maxAllowed === maxAllowed && area.alias === areaAlias);\n }\n\n async doesBlockEditorBlockContainStylesheet(blockGridName: string, elementTypeKey: string, stylesheetPath: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n const encodedSecondStylesheetPath = await this.api.stylesheet.encodeStylesheetPath(stylesheetPath);\n return block.stylesheet[0] === encodedSecondStylesheetPath;\n }\n\n async doesBlockEditorBlockContainOverlaySize(blockGridName: string, elementTypeKey: string, overlaySize: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.editorSize === overlaySize;\n }\n\n async doesBlockEditorBlockContainInlineEditing(blockGridName: string, elementTypeKey: string, inlineEditing: boolean) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.inlineEditing === inlineEditing;\n }\n\n async doesBlockEditorBlockContainHideContentEditor(blockGridName: string, elementTypeKey: string, hideContentEditor: boolean) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.hideContentEditor === hideContentEditor;\n }\n\n async doesBlockEditorBlockContainBackgroundColor(blockGridName: string, elementTypeKey: string, backgroundColor: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.backgroundColor === backgroundColor;\n }\n\n async doesBlockEditorBlockContainIconColor(blockGridName: string, elementTypeKey: string, iconColor: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.iconColor === iconColor;\n }\n\n async doesBlockEditorBlockContainThumbnail(blockGridName: string, elementTypeKey: string, thumbnail: string) {\n const block = await this.getBlockWithContentElementTypeId(blockGridName, elementTypeKey);\n return block.thumbnail === thumbnail;\n }\n \n async getBlockWithContentElementTypeId(blockGridName: string, contentElementTypeKey: string) {\n const blockEditor = await this.getByName(blockGridName);\n const blocks = blockEditor.values.find(value => value.alias === 'blocks');\n return blocks.value.find(block => block.contentElementTypeKey === contentElementTypeKey);\n }\n\n async createImageCropperDataTypeWithOneCrop(name: string, cropLabel: string, cropWidth: number, cropHeight: number) {\n await this.ensureNameNotExists(name);\n\n const dataType = new ImageCropperDataTypeBuilder()\n .withName(name)\n .addCrop()\n .withLabel(cropLabel)\n .withAlias(AliasHelper.toAlias(cropLabel))\n .withHeight(cropHeight)\n .withWidth(cropWidth)\n .done()\n .build();\n\n return await this.save(dataType);\n }\n\n async createMediaPickerDataTypeWithStartNodeId(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new MediaPickerDataTypeBuilder()\n .withName(name)\n .withStartNodeId(startNodeId)\n .withIgnoreUserStartNodes(false)\n .build();\n\n return await this.save(dataType);\n }\n\n async createRadioboxDataType(name: string, options: string[]) {\n await this.ensureNameNotExists(name);\n\n const dataType = new RadioboxDataTypeBuilder()\n .withName(name)\n .withItems(options)\n .build();\n \n return await this.save(dataType);\n }\n\n async createImageMediaPickerDataType(name: string, minValue = 0, maxValue = 1, enableLocalFocalPoint = false, ignoreUserStartNodes = false) {\n await this.ensureNameNotExists(name);\n const mediaType = await this.api.mediaType.getByName('Image');\n\n const dataType = new MediaPickerDataTypeBuilder()\n .withName(name)\n .withFilter(mediaType.id)\n .withMultiple(false)\n .withMinValue(minValue)\n .withMaxValue(maxValue)\n .withEnableLocalFocalPoint(enableLocalFocalPoint)\n .withIgnoreUserStartNodes(ignoreUserStartNodes)\n .build();\n\n return await this.save(dataType);\n }\n\n async createImageMediaPickerDataTypeWithStartNodeId(name: string, startNodeId: string) {\n await this.ensureNameNotExists(name);\n const mediaType = await this.api.mediaType.getByName('Image');\n\n const dataType = new MediaPickerDataTypeBuilder()\n .withName(name)\n .withFilter(mediaType.id)\n .withStartNodeId(startNodeId)\n .build();\n\n return await this.save(dataType);\n }\n \n async createImageMediaPickerDataTypeWithCrop(name: string, label: string, width: number, height: number) {\n await this.ensureNameNotExists(name);\n const mediaType = await this.api.mediaType.getByName('Image');\n\n const dataType = new MediaPickerDataTypeBuilder()\n .withName(name)\n .withFilter(mediaType.id)\n .addCrop()\n .withLabel(label)\n .withAlias(AliasHelper.toAlias(label))\n .withHeight(height)\n .withWidth(width)\n .done()\n .build();\n\n return await this.save(dataType);\n }\n}"]}
@@ -92,9 +92,11 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
92
92
  private readonly removeExactContentModelNodeBtn;
93
93
  private readonly removeExactSettingsModelNodeBtn;
94
94
  private readonly openBtn;
95
+ private readonly backgroundColorBtn;
95
96
  private readonly backgroundColorTxt;
96
- private readonly iconColorTxt;
97
97
  private readonly chooseCustomStylesheetBtn;
98
+ private readonly iconColorBtn;
99
+ private readonly iconColorTxt;
98
100
  private readonly stylesheetRemoveBtn;
99
101
  private readonly hideContentEditorBlockGridBtn;
100
102
  private readonly hideContentEditorBlockListBtn;
@@ -120,6 +122,8 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
120
122
  private readonly advancedTabBtn;
121
123
  private readonly allowBlockAtRootBtn;
122
124
  private readonly allowInAreasBtn;
125
+ private readonly chooseThumbnailAlias;
126
+ private readonly expandChildItemsForMediaBtn;
123
127
  constructor(page: Page);
124
128
  clickActionsMenuForDataType(name: string): Promise<void>;
125
129
  clickActionsMenuAtRoot(): Promise<void>;
@@ -232,11 +236,13 @@ export declare class DataTypeUiHelper extends UiBaseLocators {
232
236
  openBlockContentModel(): Promise<void>;
233
237
  openBlockSettingsModel(): Promise<void>;
234
238
  isElementWorkspaceOpenInBlock(elementTypeName: string): Promise<void>;
235
- enterBlockBackgroundColor(color: string): Promise<void>;
236
- enterBlockIconColor(color: string): Promise<void>;
237
- chooseBlockCustomStylesheetWithName(name: string): Promise<void>;
239
+ selectBlockBackgroundColor(color: string): Promise<void>;
240
+ selectBlockIconColor(color: string): Promise<void>;
241
+ clickExpandChildItemsForMediaButton(): Promise<void>;
238
242
  clickRemoveCustomStylesheetWithName(name: string): Promise<void>;
239
243
  clickBlockGridHideContentEditorButton(): Promise<void>;
244
+ chooseBlockCustomStylesheetWithName(name: string): Promise<void>;
245
+ chooseBlockThumbnailWithPath(name: string, mediaPath: string): Promise<void>;
240
246
  clickBlockListHideContentEditorButton(): Promise<void>;
241
247
  enterEditorWidth(value: string): Promise<void>;
242
248
  enterCreateButtonLabel(value: string): Promise<void>;
@@ -95,9 +95,11 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
95
95
  removeExactContentModelNodeBtn;
96
96
  removeExactSettingsModelNodeBtn;
97
97
  openBtn;
98
+ backgroundColorBtn;
98
99
  backgroundColorTxt;
99
- iconColorTxt;
100
100
  chooseCustomStylesheetBtn;
101
+ iconColorBtn;
102
+ iconColorTxt;
101
103
  stylesheetRemoveBtn;
102
104
  hideContentEditorBlockGridBtn;
103
105
  hideContentEditorBlockListBtn;
@@ -123,6 +125,8 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
123
125
  advancedTabBtn;
124
126
  allowBlockAtRootBtn;
125
127
  allowInAreasBtn;
128
+ chooseThumbnailAlias;
129
+ expandChildItemsForMediaBtn;
126
130
  constructor(page) {
127
131
  super(page);
128
132
  this.moveToBtn = page.locator('umb-entity-action').getByLabel('Move to');
@@ -224,7 +228,7 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
224
228
  this.inlineEditingModeBtn = this.page.locator('umb-property-layout').filter({ hasText: 'Inline editing' }).locator('#slider');
225
229
  this.propertyEditorWidthTxt = this.page.locator('umb-property-layout').filter({ hasText: 'Property editor width' }).locator('#input');
226
230
  this.labelTextTxt = this.page.locator('[label="Label"]').locator('#input');
227
- this.overlaySizeOption = this.page.locator('[label="Overlay size"]').locator('#native');
231
+ this.overlaySizeOption = this.page.locator('[label="Overlay editor size"]').locator('#native');
228
232
  this.chooseContentModelBtn = this.page.locator('[alias="contentElementTypeKey"]').getByLabel('Choose');
229
233
  this.chooseSettingsModelBtn = this.page.locator('[alias="settingsElementTypeKey"]').getByLabel('Choose');
230
234
  this.contentModelNode = this.page.locator('[alias="contentElementTypeKey"]').locator('uui-ref-node-document-type');
@@ -232,13 +236,15 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
232
236
  this.removeExactContentModelNodeBtn = this.page.locator('[alias="contentElementTypeKey"]').getByLabel('Remove', { exact: true });
233
237
  this.removeExactSettingsModelNodeBtn = this.page.locator('[alias="settingsElementTypeKey"]').getByLabel('Remove', { exact: true });
234
238
  this.openBtn = this.page.getByLabel('Open', { exact: true });
235
- this.backgroundColorTxt = this.page.locator('[label="Background color"]').locator('#input');
236
- this.iconColorTxt = this.page.locator('[label="Icon color"]').locator('#input');
237
- this.chooseCustomStylesheetBtn = this.page.locator('[label="Custom stylesheet"]').getByLabel('Choose');
239
+ this.backgroundColorBtn = this.page.locator('umb-property-layout').filter({ hasText: 'Background color' }).getByLabel('Eye dropper');
240
+ this.backgroundColorTxt = this.page.locator('[label="Background color"]').locator('[label="Eye dropper"]').locator('#input');
241
+ this.iconColorBtn = this.page.locator('umb-property-layout').filter({ hasText: 'Icon color' }).getByLabel('Eye dropper');
242
+ this.iconColorTxt = this.page.locator('[label="Icon color"]').locator('[label="Eye dropper"]').locator('#input');
238
243
  this.stylesheetRemoveBtn = this.page.locator('uui-ref-node').getByLabel('Remove', { exact: true });
239
244
  this.hideContentEditorBlockListBtn = this.page.locator('[alias="forceHideContentEditorInOverlay"]').locator('#slider');
240
245
  this.hideContentEditorBlockGridBtn = this.page.locator('[alias="hideContentEditor"]').locator('#slider');
241
246
  this.customStylesheetLabel = this.page.locator('[label="Custom stylesheet"]');
247
+ this.chooseThumbnailAlias = this.page.locator('[alias="thumbnail"]').getByLabel('Choose');
242
248
  this.documentTypeWorkspace = this.page.locator('[alias="Umb.Workspace.DocumentType"]');
243
249
  this.editorWidthTxt = this.page.locator('umb-property-layout').filter({ hasText: 'Editor width' }).locator('#input');
244
250
  this.createButtonLabelTxt = this.page.locator('umb-property-layout').filter({ hasText: 'Create button label' }).locator('#input');
@@ -260,6 +266,8 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
260
266
  this.advancedTabBtn = this.page.getByRole('tab', { name: 'Advanced' });
261
267
  this.allowBlockAtRootBtn = this.page.locator('[alias="allowAtRoot"]');
262
268
  this.allowInAreasBtn = this.page.locator('[alias="allowInAreas"]');
269
+ this.expandChildItemsForMediaBtn = this.page.getByLabel('Expand child items for media', { exact: true });
270
+ this.chooseCustomStylesheetBtn = this.page.locator('[label="Custom stylesheet"]').getByLabel('Choose');
263
271
  }
264
272
  async clickActionsMenuForDataType(name) {
265
273
  await this.clickActionsMenuForName(name);
@@ -704,20 +712,18 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
704
712
  async isElementWorkspaceOpenInBlock(elementTypeName) {
705
713
  return await (0, test_1.expect)(this.documentTypeWorkspace.filter({ hasText: elementTypeName })).toBeVisible();
706
714
  }
707
- async enterBlockBackgroundColor(color) {
715
+ async selectBlockBackgroundColor(color) {
716
+ await this.backgroundColorBtn.click();
708
717
  await this.backgroundColorTxt.clear();
709
718
  await this.backgroundColorTxt.fill(color);
710
719
  }
711
- async enterBlockIconColor(color) {
720
+ async selectBlockIconColor(color) {
721
+ await this.iconColorBtn.click();
712
722
  await this.iconColorTxt.clear();
713
723
  await this.iconColorTxt.fill(color);
714
724
  }
715
- async chooseBlockCustomStylesheetWithName(name) {
716
- await this.chooseCustomStylesheetBtn.click();
717
- await this.clickCaretButtonForName('wwwroot');
718
- await this.clickCaretButtonForName('css');
719
- await this.page.getByLabel(name, { exact: true }).click();
720
- await this.clickChooseModalButton();
725
+ async clickExpandChildItemsForMediaButton() {
726
+ await this.expandChildItemsForMediaBtn.click();
721
727
  }
722
728
  async clickRemoveCustomStylesheetWithName(name) {
723
729
  await this.customStylesheetLabel.locator('[name="' + name + '"]').click();
@@ -727,6 +733,21 @@ class DataTypeUiHelper extends UiBaseLocators_1.UiBaseLocators {
727
733
  async clickBlockGridHideContentEditorButton() {
728
734
  await this.hideContentEditorBlockGridBtn.click();
729
735
  }
736
+ async chooseBlockCustomStylesheetWithName(name) {
737
+ await this.chooseCustomStylesheetBtn.click();
738
+ await this.clickCaretButtonForName('wwwroot');
739
+ await this.clickCaretButtonForName('css');
740
+ await this.page.getByLabel(name, { exact: true }).click();
741
+ await this.clickChooseModalButton();
742
+ }
743
+ async chooseBlockThumbnailWithPath(name, mediaPath) {
744
+ await this.chooseThumbnailAlias.click();
745
+ await this.clickCaretButtonForName('wwwroot');
746
+ await this.clickExpandChildItemsForMediaButton();
747
+ await this.clickCaretButtonForName(mediaPath);
748
+ await this.page.getByLabel(name, { exact: true }).click();
749
+ await this.clickChooseModalButton();
750
+ }
730
751
  async clickBlockListHideContentEditorButton() {
731
752
  await this.hideContentEditorBlockListBtn.click();
732
753
  }