@proveanything/smartlinks-utils-ui 1.14.1 → 1.14.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ConditionsEditor/conditionMeta.ts","../src/components/ConditionsEditor/ConditionTypePicker.tsx","../src/components/ConditionsEditor/countries.ts","../src/components/ConditionsEditor/CountryPicker.tsx","../src/components/ConditionsEditor/ProductPicker.tsx","../src/components/ConditionsEditor/ConditionConfig.tsx","../src/components/ConditionsEditor/ConditionCard.tsx","../src/components/ConditionsEditor/ConditionsEditor.tsx"],"names":["inputStyle","jsxs","jsx","useState","useRef","useMemo","useEffect","ChevronRight","X","GitBranch"],"mappings":";;;;;;;AAqBO,IAAM,eAAA,GAAuC;AAAA,EAClD,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,WAAA,EAAa,yBAAA,EAA2B,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,4DAAA,EAA6D;AAAA,EACrL,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,WAAA,EAAa,+BAAA,EAAiC,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,wCAAA,EAAyC;AAAA,EACxK,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,WAAA,EAAa,2BAAA,EAA6B,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,mEAAA,EAAoE;AAAA,EAC1L,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,WAAA,EAAa,8BAAA,EAAgC,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,mFAAA,EAAoF;AAAA,EAC3M,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,WAAA,EAAa,uBAAA,EAAyB,IAAA,EAAM,UAAA,EAAY,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,yCAAA,EAA0C;AAAA,EAC9J,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,WAAA,EAAa,uBAAA,EAAyB,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,kDAAA,EAAmD;AAAA,EAC1K,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,WAAA,EAAa,yBAAA,EAA2B,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,mCAAA,EAAoC;AAAA,EACrJ,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,WAAA,EAAa,4BAAA,EAA8B,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,2EAAA,EAA4E;AAAA,EACrM,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,WAAA,EAAa,qBAAA,EAAuB,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,oDAAA,EAAqD;AAAA,EAC9K,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,WAAA,EAAa,yBAAA,EAA2B,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,8EAAA,EAA+E;AAAA,EAC1M,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,aAAA,EAAe,WAAA,EAAa,sBAAA,EAAwB,IAAA,EAAM,aAAA,EAAe,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,mEAAA,EAAoE;AAAA,EACvM,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,WAAA,EAAa,6BAAA,EAA+B,IAAA,EAAM,YAAA,EAAc,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,oEAAA;AACxI,CAAA;AAEA,IAAM,OAAA,GAA4D;AAAA,EAChE,IAAA,EAAM,IAAA;AAAA,EACN,KAAA,EAAO,KAAA;AAAA,EACP,IAAA,EAAM,IAAA;AAAA,EACN,IAAA,EAAM,IAAA;AAAA,EACN,QAAA,EAAU,QAAA;AAAA,EACV,OAAA,EAAS,OAAA;AAAA,EACT,GAAA,EAAK,GAAA;AAAA,EACL,SAAA,EAAW,MAAA;AAAA,EACX,OAAA,EAAS,OAAA;AAAA,EACT,aAAA,EAAe,UAAA;AAAA,EACf,YAAA,EAAc,SAAA;AAAA,EACd,MAAA,EAAQ;AACV,CAAA;AAEO,SAAS,iBAAiB,IAAA,EAAuE;AACtG,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,OAAO,eAAA,CAAgB,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,UAAU,IAAI,CAAA;AACnD;AAEO,SAAS,iBAAiB,IAAA,EAA0E;AACzG,EAAA,MAAM,IAAA,GAAO,iBAAiB,IAAI,CAAA;AAClC,EAAA,OAAQ,IAAA,IAAQ,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA,IAAM,IAAA;AACzC;AAEO,SAAS,mBAAA,CAAoB,MAAiB,OAAA,EAI1C;AACT,EAAA,IAAI,CAAC,IAAA,CAAK,IAAA,EAAM,OAAO,4BAAA;AACvB,EAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,IAAA,CAAK,IAAI,CAAA;AACvC,EAAA,IAAI,OAAA,GAAU,IAAA,EAAM,KAAA,IAAS,IAAA,CAAK,IAAA;AAElC,EAAA,QAAQ,KAAK,IAAA;AAAM,IACjB,KAAK,SAAA;AACH,MAAA,IAAI,IAAA,CAAK,UAAU,MAAA,EAAQ;AACzB,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,GAAW,IAAA,GAAO,QAAA;AACpC,QAAA,OAAA,IAAW,IAAI,IAAI,CAAA,CAAA,EAAI,KAAK,QAAA,CAAS,GAAA,CAAI,OAAK,OAAO,CAAA,KAAM,WAAW,CAAA,GAAK,CAAA,CAAE,SAAS,CAAA,CAAE,KAAA,IAAS,EAAG,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,MAClH;AACA,MAAA;AAAA,IACF,KAAK,SAAA;AACH,MAAA,IAAI,IAAA,CAAK,UAAA,IAAc,IAAA,CAAK,OAAA,EAAS,MAAA,EAAQ;AAC3C,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,GAAW,OAAA,GAAU,WAAA;AACvC,QAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,CAAA,KAAK;AAClC,UAAA,MAAM,MAAM,cAAA,CAAe,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,UAAU,CAAC,CAAA;AAClD,UAAA,OAAO,KAAK,KAAA,IAAS,CAAA;AAAA,QACvB,CAAC,CAAA;AACD,QAAA,OAAA,IAAW,IAAI,IAAI,CAAA,CAAA,EAAI,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,MACzC,CAAA,MAAA,IAAW,IAAA,CAAK,SAAA,EAAW,MAAA,EAAQ;AACjC,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,GAAW,IAAA,GAAO,QAAA;AACpC,QAAA,OAAA,IAAW,IAAI,IAAI,CAAA,CAAA,EAAI,KAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,MAClD;AACA,MAAA;AAAA,IACF,KAAK,OAAA;AACH,MAAA,IAAI,KAAK,KAAA,EAAO;AACd,QAAA,MAAM,GAAA,GAA8B,EAAE,KAAA,EAAO,GAAA,EAAK,KAAK,QAAA,EAAK,OAAA,EAAS,GAAA,EAAK,IAAA,EAAM,GAAA,EAAI;AACpF,QAAA,OAAA,IAAW,CAAA,EAAA,EAAK,IAAA,CAAK,KAAK,CAAA,CAAA,EAAI,GAAA,CAAI,IAAA,CAAK,cAAA,IAAkB,EAAE,CAAA,IAAK,EAAE,CAAA,CAAA,EAAI,IAAA,CAAK,SAAS,GAAG,CAAA,CAAA;AAAA,MACzF;AACA,MAAA;AAAA,IACF,KAAK,KAAA;AACH,MAAA,IAAI,IAAA,CAAK,MAAM,MAAA,EAAQ;AACrB,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,GAAW,KAAA,GAAQ,eAAA;AACrC,QAAA,OAAA,IAAW,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,IAAA,CAAK,KAAK,MAAM,CAAA,SAAA,CAAA;AAAA,MACzC;AACA,MAAA;AAAA,IACF,KAAK,OAAA,EAAS;AACZ,MAAA,MAAM,KAAA,GAAQ,SAAS,MAAA,EAAQ,IAAA,CAAK,OAAK,CAAA,CAAE,GAAA,KAAQ,KAAK,QAAQ,CAAA;AAChE,MAAA,MAAM,SAAA,GAAY,KAAA,EAAO,IAAA,IAAQ,IAAA,CAAK,QAAA;AACtC,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,SAAA;AACxC,MAAA,IAAI,IAAA,CAAK,QAAA,IAAY,WAAA,EAAa,MAAA,EAAQ;AACxC,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,KAAa,KAAA,GAAQ,QAAA,GAAW,IAAA;AAClD,QAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,CAAI,CAAA,EAAA,KAAM,KAAA,EAAO,MAAA,CAAO,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,GAAA,KAAQ,EAAE,CAAA,EAAG,QAAQ,EAAE,CAAA;AACrF,QAAA,OAAA,GAAU,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,IAAI,IAAI,KAAA,CAAM,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,MACpD,CAAA,MAAA,IAAW,KAAK,QAAA,EAAU;AACxB,QAAA,OAAA,GAAU,GAAG,SAAS,CAAA,sBAAA,CAAA;AAAA,MACxB;AACA,MAAA;AAAA,IACF;AAAA,IACA,KAAK,QAAA;AACH,MAAA,IAAI,IAAA,CAAK,UAAU,MAAA,EAAQ;AACzB,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,GAAW,IAAA,GAAO,QAAA;AACpC,QAAA,OAAA,IAAW,IAAI,IAAI,CAAA,CAAA,EAAI,KAAK,QAAA,CAAS,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;AAAA,MACjD;AACA,MAAA;AAAA,IACF,KAAK,MAAA,EAAQ;AACX,MAAA,MAAM,SAAA,GAAoC;AAAA,QACxC,KAAA,EAAO,cAAA;AAAA,QAAgB,OAAA,EAAS,eAAA;AAAA,QAAiB,KAAA,EAAO,eAAA;AAAA,QACxD,KAAA,EAAO,KAAK,QAAA,EAAU,MAAA,GAAS,MAAM,IAAA,CAAK,QAAA,CAAS,MAAM,CAAA,SAAA,CAAA,GAAc,WAAA;AAAA,QACvE,KAAA,EAAO;AAAA,OACT;AACA,MAAA,OAAA,IAAW,IAAI,SAAA,CAAU,IAAA,CAAK,QAAA,IAAY,EAAE,KAAK,EAAE,CAAA,CAAA;AACnD,MAAA;AAAA,IACF;AAAA,IACA,KAAK,SAAA;AACH,MAAA,IAAI,IAAA,CAAK,YAAY,MAAA,EAAQ;AAC3B,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,GAAW,IAAA,GAAO,QAAA;AACpC,QAAA,MAAM,KAAA,GAAQ,KAAK,UAAA,CAAW,GAAA,CAAI,QAAM,IAAA,CAAK,YAAA,GAAe,EAAE,CAAA,IAAK,EAAE,CAAA;AACrE,QAAA,MAAM,UAAU,KAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,KAAK,IAAI,CAAA;AAC3C,QAAA,MAAM,IAAA,GAAO,MAAM,MAAA,GAAS,CAAA,GAAI,KAAK,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAA,GAAK,EAAA;AAC1D,QAAA,OAAA,IAAW,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,OAAO,GAAG,IAAI,CAAA,CAAA;AAAA,MACvC;AACA,MAAA;AAAA,IACF,KAAK,WAAA;AACH,MAAA,IAAI,KAAK,WAAA,EAAa;AACpB,QAAA,MAAM,OAAA,GAAU,SAAS,eAAA,EAAiB,IAAA,CAAK,OAAK,CAAA,CAAE,KAAA,KAAU,KAAK,WAAW,CAAA;AAChF,QAAA,OAAA,IAAW,CAAA,EAAA,EAAK,SAAS,KAAA,IAAS,IAAA,CAAK,WAAW,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,GAAS,QAAA,GAAW,OAAO,CAAA,CAAA;AAAA,MACxF;AACA,MAAA;AAAA,IACF,KAAK,MAAA,EAAQ;AACX,MAAA,MAAM,YAAoC,EAAE,MAAA,EAAQ,UAAU,KAAA,EAAO,OAAA,EAAS,SAAS,SAAA,EAAU;AACjG,MAAA,OAAA,IAAW,OAAO,SAAA,CAAU,IAAA,CAAK,QAAA,IAAY,EAAE,KAAK,EAAE,CAAA,CAAA;AACtD,MAAA,IAAI,IAAA,CAAK,UAAA,EAAY,OAAA,IAAW,CAAA,CAAA,EAAI,KAAK,UAAU,CAAA,CAAA;AACnD,MAAA,IAAI,IAAA,CAAK,SAAA,EAAW,OAAA,IAAW,CAAA,CAAA,EAAI,KAAK,SAAS,CAAA,CAAA;AACjD,MAAA,IAAI,IAAA,CAAK,SAAA,EAAW,OAAA,IAAW,CAAA,CAAA,EAAI,KAAK,SAAS,CAAA,CAAA;AACjD,MAAA;AAAA,IACF;AAAA,IACA,KAAK,UAAA,EAAY;AACf,MAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,GAAW,QAAA,GAAW,SAAA;AACxC,MAAA,OAAA,IAAW,IAAI,IAAI,CAAA,OAAA,CAAA;AACnB,MAAA;AAAA,IACF;AAAA,IACA,KAAK,YAAA,EAAc;AACjB,MAAA,MAAM,WAAA,GAAsC;AAAA,QAC1C,QAAA,EAAU,gBAAA;AAAA,QAAkB,OAAA,EAAS,uBAAA;AAAA,QAAyB,WAAA,EAAa,cAAA;AAAA,QAC3E,YAAA,EAAc,kBAAA;AAAA,QAAoB,QAAA,EAAU,WAAA;AAAA,QAAa,SAAA,EAAW;AAAA,OACtE;AACA,MAAA,OAAA,IAAW,IAAI,WAAA,CAAY,IAAA,CAAK,UAAA,IAAc,EAAE,KAAK,EAAE,CAAA,CAAA;AACvD,MAAA;AAAA,IACF;AAAA;AAGF,EAAA,OAAO,OAAA;AACT;AAEO,IAAM,eAAA,GAAkC;AAAA,EAC7C,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EACrC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS;AAAA,EACnC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EACrC,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAM;AAAA,EAC7B,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,KAAA,EAAM;AAAA,EACnC,EAAE,KAAA,EAAO,mBAAA,EAAqB,KAAA,EAAO,KAAA;AACvC,CAAA;AAEO,IAAM,cAAA,GAA8D;AAAA,EACzE,EAAE,KAAA,EAAO,qBAAA,EAAuB,KAAA,EAAO,IAAA,EAAM,aAAa,yBAAA,EAA0B;AAAA,EACpF,EAAE,KAAA,EAAO,8BAAA,EAAgC,KAAA,EAAO,KAAA,EAAO,aAAa,qCAAA,EAAsC;AAAA,EAC1G,EAAE,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,IAAA,EAAM,aAAa,4CAAA,EAA6C;AAAA,EAClG,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,cAAA,EAAgB,aAAa,qBAAA,EAAsB;AAAA,EACpF,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,aAAA,EAAe,aAAa,4BAAA;AAC9D,CAAA;AAEO,IAAM,iBAAA,GAAoC;AAAA,EAC/C,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,OAAA,EAAQ;AAAA,EACxC,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,SAAA,EAAU;AAAA,EAC3C,EAAE,KAAA,EAAO,eAAA,EAAiB,KAAA,EAAO,OAAA,EAAQ;AAAA,EACzC,EAAE,KAAA,EAAO,iBAAA,EAAmB,KAAA,EAAO,OAAA,EAAQ;AAAA,EAC3C,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,OAAA;AAC9B,CAAA;AAEO,IAAM,mBAAA,GAAsC;AAAA,EACjD,EAAE,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,UAAA,EAAW;AAAA,EAC7C,EAAE,KAAA,EAAO,uBAAA,EAAyB,KAAA,EAAO,SAAA,EAAU;AAAA,EACnD,EAAE,KAAA,EAAO,qBAAA,EAAuB,KAAA,EAAO,aAAA,EAAc;AAAA,EACrD,EAAE,KAAA,EAAO,mBAAA,EAAqB,KAAA,EAAO,cAAA,EAAe;AAAA,EACpD,EAAE,KAAA,EAAO,iBAAA,EAAmB,KAAA,EAAO,WAAA,EAAY;AAAA,EAC/C,EAAE,KAAA,EAAO,uBAAA,EAAyB,KAAA,EAAO,YAAA;AAC3C,CAAA;AAEO,IAAM,eAAA,GAAkC;AAAA,EAC7C,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,OAAA,EAAQ;AAAA,EACpC,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,KAAA,EAAM;AAAA,EACnC,EAAE,KAAA,EAAO,cAAA,EAAgB,KAAA,EAAO,SAAA,EAAU;AAAA,EAC1C,EAAE,KAAA,EAAO,WAAA,EAAa,KAAA,EAAO,MAAA;AAC/B,CAAA;AAEO,IAAM,WAAA,GAA8B;AAAA,EACzC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EACrC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EACrC,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA;AAC1B,CAAA;AC1MO,IAAM,mBAAA,GAA0D,CAAC,EAAE,QAAA,EAAS,KAAM;AACvF,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,KAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,2DAAA,EAA4D,QAAA,EAAA,0BAAA,EAAwB,CAAA;AAAA,wBAChG,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACZ,QAAA,EAAA,eAAA,CAAgB,IAAI,CAAA,EAAA,KAAM;AACzB,MAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,EAAA,CAAG,KAAK,CAAA;AACtC,MAAA,uBACE,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,OAAA,EAAS,MAAM,QAAA,CAAS,EAAA,CAAG,KAAK,CAAA;AAAA,UAChC,SAAA,EAAW,EAAA;AAAA,YACT,iGAAA;AAAA,YACA,gGAAA;AAAA,YACA;AAAA,WACF;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,uDAAA;AAAA,gBACV,KAAA,EAAO,EAAE,eAAA,EAAiB,CAAA,EAAG,GAAG,KAAK,CAAA,EAAA,CAAA,EAAM,KAAA,EAAO,EAAA,CAAG,KAAA,EAAM;AAAA,gBAE3D,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU;AAAA;AAAA,aAC5B;AAAA,4BACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0DAAA,EAA4D,aAAG,KAAA,EAAM;AAAA;AAAA,SAAA;AAAA,QAdhF,EAAA,CAAG;AAAA,OAeV;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;;;ACnCO,IAAM,SAAA,GAA6B;AAAA,EACxC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,qBAAA,EAAsB;AAAA,EAC1C,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,wBAAA,EAAyB;AAAA,EAC7C,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,cAAA,EAAe;AAAA,EACnC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,0BAAA,EAA2B;AAAA,EAC/C,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,kBAAA,EAAgB;AAAA,EACpC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,oBAAA,EAAqB;AAAA,EACzC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,mBAAA,EAAoB;AAAA,EACxC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,eAAA,EAAgB;AAAA,EACpC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,eAAA,EAAgB;AAAA,EACpC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,kBAAA,EAAmB;AAAA,EACvC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,iBAAA,EAAkB;AAAA,EACtC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,kBAAA,EAAmB;AAAA,EACvC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,uBAAA,EAAwB;AAAA,EAC5C,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,kCAAA,EAAmC;AAAA,EACvD,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,gCAAA,EAAwB;AAAA,EAC5C,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,cAAA,EAAe;AAAA,EACnC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,cAAA,EAAe;AAAA,EACnC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,iBAAA,EAAkB;AAAA,EACtC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,cAAA,EAAe;AAAA,EACnC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAC/B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,aAAA,EAAc;AAAA,EAClC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAA,EAAO;AAAA,EAC3B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,qBAAA,EAAsB;AAAA,EAC1C,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,cAAA,EAAe;AAAA,EACnC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,sBAAA,EAAuB;AAAA,EAC3C,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,gBAAA,EAAiB;AAAA,EACrC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,eAAA,EAAgB;AAAA,EACpC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,YAAA,EAAa;AAAA,EACjC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,cAAA,EAAe;AAAA,EACnC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EAChC,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC9B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ;AAAA,EAC5B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC7B,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,UAAA;AACtB,CAAA;AAEO,SAAS,eAAe,IAAA,EAAsB;AACnD,EAAA,OAAO,SAAA,CAAU,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,IAAA,CAAK,WAAA,EAAa,CAAA,EAAG,IAAA,IAAQ,IAAA;AACrE;ACpMO,IAAM,gBAA8C,CAAC;AAAA,EAC1D,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc;AAChB,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,EAAE,CAAA;AACvC,EAAA,MAAM,YAAA,GAAe,OAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,MAAM,QAAA,GAAW,QAAQ,MAAM;AAC7B,IAAA,IAAI,CAAC,QAAQ,OAAO,SAAA;AACpB,IAAA,MAAM,CAAA,GAAI,OAAO,WAAA,EAAY;AAC7B,IAAA,OAAO,SAAA,CAAU,MAAA;AAAA,MACf,CAAA,CAAA,KAAK,CAAA,CAAE,IAAA,CAAK,WAAA,EAAY,CAAE,QAAA,CAAS,CAAC,CAAA,IAAK,CAAA,CAAE,IAAA,CAAK,WAAA,EAAY,CAAE,SAAS,CAAC;AAAA,KAC1E;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAGX,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAkB;AACjC,MAAA,IAAI,YAAA,CAAa,WAAW,CAAC,YAAA,CAAa,QAAQ,QAAA,CAAS,CAAA,CAAE,MAAc,CAAA,EAAG;AAC5E,QAAA,OAAA,CAAQ,KAAK,CAAA;AACb,QAAA,SAAA,CAAU,EAAE,CAAA;AAAA,MACd;AAAA,IACF,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,OAAO,CAAA;AAC9C,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,OAAO,CAAA;AAAA,EAChE,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,MAAA,GAAS,CAAC,IAAA,KAAiB;AAC/B,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,QAAA;AAAA,MACE,QAAA,CAAS,QAAA,CAAS,IAAI,CAAA,GAClB,QAAA,CAAS,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,KAAM,IAAI,CAAA,GAC/B,CAAC,GAAG,UAAU,IAAI;AAAA,KACxB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,MAAA,GAAS,CAAC,IAAA,KAAiB;AAC/B,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,KAAM,IAAI,CAAC,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe;AAAA,IACnB,SAAA,EAAW,EAAA;AAAA,IACX,KAAA,EAAO,MAAA;AAAA,IACP,OAAA,EAAS,MAAA;AAAA,IACT,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,CAAA;AAAA,IACL,OAAA,EAAS,UAAA;AAAA,IACT,YAAA,EAAc,CAAA;AAAA,IACd,MAAA,EAAQ,CAAA,UAAA,EAAa,IAAA,GAAO,SAAA,GAAY,SAAS,CAAA,CAAA;AAAA,IACjD,eAAA,EAAiB,aAAA;AAAA,IACjB,MAAA,EAAQ,WAAW,aAAA,GAAgB,SAAA;AAAA,IACnC,OAAA,EAAS,WAAW,GAAA,GAAM,CAAA;AAAA,IAC1B,OAAA,EAAS,OAAO,mBAAA,GAAsB,MAAA;AAAA,IACtC,UAAA,EAAY;AAAA,GACd;AAEA,EAAA,MAAM,SAAA,GAAY;AAAA,IAChB,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,CAAA;AAAA,IACL,OAAA,EAAS,SAAA;AAAA,IACT,YAAA,EAAc,IAAA;AAAA,IACd,QAAA,EAAU,EAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,eAAA,EAAiB,SAAA;AAAA,IACjB,KAAA,EAAO,SAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACV;AAEA,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,QAAA,EAAU,UAAA;AAAA,IACV,MAAA,EAAQ,EAAA;AAAA,IACR,SAAA,EAAW,CAAA;AAAA,IACX,KAAA,EAAO,MAAA;AAAA,IACP,SAAA,EAAW,GAAA;AAAA,IACX,SAAA,EAAW,MAAA;AAAA,IACX,YAAA,EAAc,CAAA;AAAA,IACd,MAAA,EAAQ,mBAAA;AAAA,IACR,eAAA,EAAiB,SAAA;AAAA,IACjB,SAAA,EAAW;AAAA,GACb;AAEA,EAAA,MAAMA,WAAAA,GAAa;AAAA,IACjB,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,GAAA;AAAA,IACV,QAAA,EAAU,EAAA;AAAA,IACV,eAAA,EAAiB,aAAA;AAAA,IACjB,OAAA,EAAS,MAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACV;AAEA,EAAA,uBACEC,KAAC,KAAA,EAAA,EAAI,GAAA,EAAK,cAAc,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAW,EAEpD,QAAA,EAAA;AAAA,oBAAAA,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,YAAA;AAAA,QACP,SAAS,MAAM;AACb,UAAA,IAAI,QAAA,EAAU;AACd,UAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,UAAA,UAAA,CAAW,MAAM,QAAA,CAAS,OAAA,EAAS,KAAA,IAAS,CAAC,CAAA;AAAA,QAC/C,CAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,QAAA,CAAS,IAAI,CAAA,IAAA,qBACZA,IAAAA,CAAC,MAAA,EAAA,EAAgB,OAAO,SAAA,EACrB,QAAA,EAAA;AAAA,YAAA,cAAA,CAAe,IAAI,CAAA;AAAA,YAAE,IAAA;AAAA,YAAG,IAAA;AAAA,YAAK,GAAA;AAAA,YAC7B,CAAC,4BACAC,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAS,CAAC,CAAA,KAAM;AAAE,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAAG,kBAAA,MAAA,CAAO,IAAI,CAAA;AAAA,gBAAG,CAAA;AAAA,gBACrD,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,QAAQ,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,OAAA,EAAS,GAAG,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,EAAA,EAAI,YAAY,CAAA,EAAE;AAAA,gBAC3H,QAAA,EAAA;AAAA;AAAA;AAED,WAAA,EAAA,EATO,IAWX,CACD,CAAA;AAAA,UACA,QAAA,CAAS,MAAA,KAAW,CAAA,IAAK,CAAC,wBACzBA,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,IAAc,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,UAE/D,wBACCA,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,QAAA;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,QAAA,EAAU,CAAA,CAAA,KAAK,SAAA,CAAU,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cACvC,KAAA,EAAOF,WAAAA;AAAA,cACP,WAAA;AAAA,cACA,OAAA,EAAS,CAAA,CAAA,KAAK,CAAA,CAAE,eAAA;AAAgB;AAAA,WAClC;AAAA,0BAEFE,IAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,YAAY,CAAA,EAAG,QAAA,EAAU,IAAI,KAAA,EAAO,SAAA,EAAW,YAAY,iBAAA,EAAmB,SAAA,EAAW,OAAO,gBAAA,GAAmB,MAAA,IAAU,QAAA,EAAA,QAAA,EAAC;AAAA;AAAA;AAAA,KACnK;AAAA,IAGC,IAAA,oBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,eACT,QAAA,EAAA,QAAA,CAAS,MAAA,KAAW,CAAA,mBACnBA,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,UAAA,EAAY,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAU,EAAG,QAAA,EAAA,oBAAA,EAAkB,CAAA,GAEvF,QAAA,CAAS,GAAA,CAAI,CAAA,OAAA,KAAW;AACtB,MAAA,MAAM,UAAA,GAAa,QAAA,CAAS,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AACjD,MAAA,uBACED,IAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,MAAM,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA;AAAA,UAClC,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,GAAA,EAAK,CAAA;AAAA,YACL,OAAA,EAAS,UAAA;AAAA,YACT,QAAA,EAAU,EAAA;AAAA,YACV,SAAA,EAAW,MAAA;AAAA,YACX,MAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAQ,SAAA;AAAA,YACR,UAAA,EAAY,uBAAA;AAAA,YACZ,eAAA,EAAiB,aAAa,SAAA,GAAY,aAAA;AAAA,YAC1C,KAAA,EAAO,aAAa,SAAA,GAAY;AAAA,WAClC;AAAA,UACA,cAAc,CAAA,CAAA,KAAK;AAAE,YAAA,IAAI,CAAC,UAAA,EAAa,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,SAAA;AAAA,UAAY,CAAA;AAAA,UAC3F,cAAc,CAAA,CAAA,KAAK;AAAE,YAAA,CAAA,CAAE,aAAA,CAAc,KAAA,CAAM,eAAA,GAAkB,UAAA,GAAa,SAAA,GAAY,aAAA;AAAA,UAAe,CAAA;AAAA,UAErG,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,UAAK,KAAA,EAAO;AAAA,cACX,KAAA,EAAO,EAAA;AAAA,cACP,MAAA,EAAQ,EAAA;AAAA,cACR,YAAA,EAAc,CAAA;AAAA,cACd,MAAA,EAAQ,CAAA,UAAA,EAAa,UAAA,GAAa,SAAA,GAAY,SAAS,CAAA,CAAA;AAAA,cACvD,eAAA,EAAiB,aAAa,SAAA,GAAY,aAAA;AAAA,cAC1C,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB,QAAA;AAAA,cAChB,UAAA,EAAY,CAAA;AAAA,cACZ,KAAA,EAAO,SAAA;AAAA,cACP,QAAA,EAAU;AAAA,aACZ,EACG,wBAAc,QAAA,EACjB,CAAA;AAAA,4BACAA,IAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAE,EAAI,QAAA,EAAA,OAAA,CAAQ,IAAA,EAAK,CAAA;AAAA,4BACxCA,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,WAAA,EAAY,EAAI,kBAAQ,IAAA,EAAK;AAAA;AAAA,SAAA;AAAA,QApCnF,OAAA,CAAQ;AAAA,OAqCf;AAAA,IAEJ,CAAC,CAAA,EAEL;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;ACtLA,SAAS,MAAM,CAAA,EAAoB;AACjC,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,CAAA,EAAG,EAAA,IAAM,CAAA,EAAG,SAAA,IAAa,EAAA;AAAA,IAC7B,IAAA,EAAM,CAAA,EAAG,IAAA,IAAQ,CAAA,EAAG,EAAA,IAAM,UAAA;AAAA,IAC1B,GAAA,EAAK,GAAG,GAAA,IAAO;AAAA,GACjB;AACF;AAEA,eAAe,aAAA,CAAc,cAAsB,MAAA,EAAuC;AACxF,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,IAAA,EAAM,EAAE,KAAA,EAAO,EAAA,EAAG;AAAA,IAClB,MAAM,CAAC,EAAE,OAAO,MAAA,EAAQ,SAAA,EAAW,OAAO;AAAA,GAC5C;AACA,EAAA,IAAI,MAAA,CAAO,MAAK,EAAG,IAAA,CAAK,QAAQ,EAAE,MAAA,EAAQ,MAAA,CAAO,IAAA,EAAK,EAAE;AAExD,EAAA,MAAM,QAAA,GAAiB,EAAA,EAAY,QAAA,IAAa,EAAA,EAAY,OAAA;AAC5D,EAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAC;AAEvB,EAAA,IAAI;AACF,IAAA,IAAI,SAAS,KAAA,EAAO;AAClB,MAAA,MAAM,MAAM,MAAM,QAAA,CAAS,KAAA,CAAM,YAAA,EAAc,MAAM,IAAI,CAAA;AACzD,MAAA,OAAA,CAAQ,GAAA,EAAK,KAAA,IAAS,EAAC,EAAG,IAAI,KAAK,CAAA;AAAA,IACrC;AACA,IAAA,IAAI,SAAS,IAAA,EAAM;AACjB,MAAA,MAAM,IAAA,GAAc,MAAM,QAAA,CAAS,IAAA,CAAK,cAAc,IAAI,CAAA;AAC1D,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,EAAK,CAAE,WAAA,EAAY;AACvC,MAAA,MAAM,QAAA,GAAW,OACb,IAAA,CAAK,MAAA,CAAO,OAAK,CAAA,EAAG,CAAA,EAAG,IAAA,IAAQ,EAAE,CAAA,CAAA,EAAI,CAAA,EAAG,OAAO,EAAE,CAAA,CAAA,EAAI,CAAA,EAAG,EAAA,IAAM,EAAE,CAAA,CAAA,CAAG,aAAY,CAAE,QAAA,CAAS,IAAI,CAAC,CAAA,GAC/F,IAAA;AACJ,MAAA,OAAO,SAAS,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CAAE,IAAI,KAAK,CAAA;AAAA,IACxC;AAAA,EACF,SAAS,GAAA,EAAK;AAEZ,IAAA,OAAA,CAAQ,IAAA,CAAK,4CAA4C,GAAG,CAAA;AAAA,EAC9D;AACA,EAAA,OAAO,EAAC;AACV;AAEO,IAAM,gBAA8C,CAAC;AAAA,EAC1D,YAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,SAAS,EAAE,CAAA;AACvC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,QAAAA,CAAuB,EAAE,CAAA;AACvD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,SAAS,KAAK,CAAA;AACtC,EAAA,MAAM,YAAA,GAAeC,OAA8B,IAAI,CAAA;AAEvD,EAAA,MAAM,WAAA,GAAcC,QAAQ,MAAM,KAAA,IAAS,EAAC,EAAG,CAAC,KAAK,CAAC,CAAA;AAMtD,EAAA,MAAM,YAAA,GAAeD,OAAe,EAAE,CAAA;AACtC,EAAAE,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,YAAA,IAAgB,WAAA,CAAY,MAAA,KAAW,CAAA,EAAG;AAC/C,IAAA,MAAM,MAAM,WAAA,CAAY,KAAA,GAAQ,IAAA,EAAK,CAAE,KAAK,GAAG,CAAA;AAC/C,IAAA,IAAI,YAAA,CAAa,YAAY,GAAA,EAAK;AAClC,IAAA,YAAA,CAAa,OAAA,GAAU,GAAA;AAEvB,IAAA,MAAM,QAAA,GAAiB,EAAA,EAAY,QAAA,IAAa,EAAA,EAAY,OAAA;AAC5D,IAAA,IAAI,CAAC,UAAU,GAAA,EAAK;AAEpB,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,CAAC,YAAY;AACX,MAAA,MAAM,UAAkC,EAAC;AACzC,MAAA,MAAM,OAAA,CAAQ,GAAA,CAAI,WAAA,CAAY,GAAA,CAAI,OAAO,EAAA,KAAO;AAC9C,QAAA,IAAI;AACF,UAAA,MAAM,IAAI,MAAM,QAAA,CAAS,GAAA,CAAI,YAAA,EAAc,IAAI,IAAI,CAAA;AACnD,UAAA,MAAM,OAAO,CAAA,EAAG,IAAA;AAChB,UAAA,IAAI,QAAQ,IAAA,KAAS,WAAA,CAAY,EAAE,CAAA,EAAG,OAAA,CAAQ,EAAE,CAAA,GAAI,IAAA;AAAA,QACtD,CAAA,CAAA,MAAQ;AAAA,QAAmC;AAAA,MAC7C,CAAC,CAAC,CAAA;AACF,MAAA,IAAI,aAAa,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,WAAW,CAAA,EAAG;AACpD,MAAA,QAAA,CAAS,aAAa,EAAE,GAAG,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,IACtD,CAAA,GAAG;AACH,IAAA,OAAO,MAAM;AAAE,MAAA,SAAA,GAAY,IAAA;AAAA,IAAM,CAAA;AAAA,EAEnC,GAAG,CAAC,YAAA,EAAc,YAAY,IAAA,CAAK,GAAG,CAAC,CAAC,CAAA;AAGxC,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,MAAM,CAAA,GAAI,MAAA,CAAO,UAAA,CAAW,YAAY;AACtC,MAAA,MAAM,IAAA,GAAO,MAAM,aAAA,CAAc,YAAA,EAAc,MAAM,CAAA;AACrD,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,UAAA,CAAW,IAAI,CAAA;AACf,QAAA,UAAA,CAAW,KAAK,CAAA;AAAA,MAClB;AAAA,IACF,GAAG,GAAG,CAAA;AACN,IAAA,OAAO,MAAM;AAAE,MAAA,SAAA,GAAY,IAAA;AAAM,MAAA,MAAA,CAAO,aAAa,CAAC,CAAA;AAAA,IAAG,CAAA;AAAA,EAC3D,CAAA,EAAG,CAAC,MAAA,EAAQ,IAAA,EAAM,YAAY,CAAC,CAAA;AAG/B,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAkB;AAC/B,MAAA,IAAI,CAAC,aAAa,OAAA,EAAS,QAAA,CAAS,EAAE,MAAc,CAAA,UAAW,KAAK,CAAA;AAAA,IACtE,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,KAAK,CAAA;AAC5C,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,KAAK,CAAA;AAAA,EAC9D,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,UAAA,GAAa,CAAC,GAAA,KAAoB;AACtC,IAAA,IAAI,WAAA,CAAY,QAAA,CAAS,GAAA,CAAI,EAAE,CAAA,EAAG;AAClC,IAAA,MAAM,SAAA,GAAY,EAAE,GAAG,WAAA,EAAa,CAAC,GAAA,CAAI,EAAE,GAAG,GAAA,CAAI,IAAA,EAAK;AACvD,IAAA,QAAA,CAAS,CAAC,GAAG,WAAA,EAAa,GAAA,CAAI,EAAE,GAAG,SAAS,CAAA;AAAA,EAC9C,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,EAAA,KAAe;AACpC,IAAA,MAAM,SAAA,GAAY,EAAE,GAAG,WAAA,EAAY;AACnC,IAAA,OAAO,UAAU,EAAE,CAAA;AACnB,IAAA,QAAA,CAAS,YAAY,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,KAAM,EAAE,GAAG,SAAS,CAAA;AAAA,EACvD,CAAA;AAEA,EAAA,uBACEL,IAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,YAAA,EAAc,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,GAAE,EAE/E,QAAA,EAAA;AAAA,IAAA,WAAA,CAAY,SAAS,CAAA,oBACpBC,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,QAAA,EAAU,QAAQ,GAAA,EAAK,CAAA,EAAE,EACrD,QAAA,EAAA,WAAA,CAAY,IAAI,CAAA,EAAA,KAAM;AACrB,MAAA,MAAM,IAAA,GAAO,YAAY,EAAE,CAAA;AAC3B,MAAA,uBACED,IAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UAEC,KAAA,EAAO,EAAA;AAAA,UACP,KAAA,EAAO;AAAA,YACL,OAAA,EAAS,aAAA;AAAA,YAAe,UAAA,EAAY,QAAA;AAAA,YAAU,GAAA,EAAK,CAAA;AAAA,YACnD,OAAA,EAAS,kBAAA;AAAA,YAAoB,QAAA,EAAU,EAAA;AAAA,YAAI,YAAA,EAAc,IAAA;AAAA,YACzD,MAAA,EAAQ,mBAAA;AAAA,YAAqB,eAAA,EAAiB,SAAA;AAAA,YAAW,KAAA,EAAO;AAAA,WAClE;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,UAAK,KAAA,EAAO,EAAE,YAAY,GAAA,EAAI,EAAI,kBAAQ,EAAA,EAAG,CAAA;AAAA,YAC7C,IAAA,oBACCD,IAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,OAAA,EAAS,GAAA,EAAK,QAAA,EAAU,EAAA,EAAI,UAAA,EAAY,yBAAA,EAA0B,EAAG,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,cAChF,EAAA,CAAG,MAAA,GAAS,EAAA,GAAK,CAAA,EAAG,GAAG,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,MAAA,EAAI,EAAA,CAAG,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA,GAAK,EAAA;AAAA,cAAG;AAAA,aAAA,EAC9D,CAAA;AAAA,YAED,CAAC,4BACAC,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAS,MAAM,aAAA,CAAc,EAAE,CAAA;AAAA,gBAC/B,KAAA,EAAO;AAAA,kBACL,OAAA,EAAS,aAAA;AAAA,kBAAe,UAAA,EAAY,QAAA;AAAA,kBAAU,cAAA,EAAgB,QAAA;AAAA,kBAC9D,KAAA,EAAO,EAAA;AAAA,kBAAI,MAAA,EAAQ,EAAA;AAAA,kBAAI,YAAA,EAAc,IAAA;AAAA,kBAAM,MAAA,EAAQ,MAAA;AAAA,kBACnD,eAAA,EAAiB,sBAAA;AAAA,kBAAwB,MAAA,EAAQ,SAAA;AAAA,kBAAW,KAAA,EAAO;AAAA,iBACrE;AAAA,gBACA,YAAA,EAAY,CAAA,OAAA,EAAU,IAAA,IAAQ,EAAE,CAAA,CAAA;AAAA,gBAEhC,QAAA,kBAAAA,GAAAA,CAAC,CAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA;AACf;AAAA,SAAA;AAAA,QA1BG;AAAA,OA4BP;AAAA,IAEJ,CAAC,CAAA,EACH,CAAA;AAAA,IAID,CAAC,4BACAD,IAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAW,EACjC,QAAA,EAAA;AAAA,sBAAAA,IAAAA,CAAC,SAAI,KAAA,EAAO;AAAA,QACV,OAAA,EAAS,MAAA;AAAA,QAAQ,UAAA,EAAY,QAAA;AAAA,QAAU,GAAA,EAAK,CAAA;AAAA,QAC5C,OAAA,EAAS,UAAA;AAAA,QAAY,QAAA,EAAU,EAAA;AAAA,QAAI,YAAA,EAAc,CAAA;AAAA,QACjD,MAAA,EAAQ,mBAAA;AAAA,QAAqB,eAAA,EAAiB;AAAA,OAChD,EACE,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,UAAO,IAAA,EAAM,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,KAAI,EAAG,CAAA;AAAA,wBAC3CA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,UAAU,CAAA,CAAA,KAAK;AAAE,cAAA,SAAA,CAAU,CAAA,CAAE,OAAO,KAAK,CAAA;AAAG,cAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,YAAG,CAAA;AAAA,YAC3D,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,YAC3B,WAAA,EAAY,2CAAA;AAAA,YACZ,KAAA,EAAO;AAAA,cACL,IAAA,EAAM,CAAA;AAAA,cAAG,MAAA,EAAQ,MAAA;AAAA,cAAQ,OAAA,EAAS,MAAA;AAAA,cAClC,eAAA,EAAiB,aAAA;AAAA,cAAe,QAAA,EAAU;AAAA;AAC5C;AAAA,SACF;AAAA,QACC,OAAA,oBAAWA,GAAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe,KAAA,EAAO,EAAE,OAAA,EAAS,GAAA,EAAI,EAAG;AAAA,OAAA,EACnF,CAAA;AAAA,MAEC,IAAA,oBACCD,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,QACV,QAAA,EAAU,UAAA;AAAA,QAAY,GAAA,EAAK,kBAAA;AAAA,QAAoB,IAAA,EAAM,CAAA;AAAA,QAAG,KAAA,EAAO,CAAA;AAAA,QAC/D,MAAA,EAAQ,EAAA;AAAA,QAAI,SAAA,EAAW,GAAA;AAAA,QAAK,SAAA,EAAW,MAAA;AAAA,QACvC,eAAA,EAAiB,SAAA;AAAA,QAAW,MAAA,EAAQ,mBAAA;AAAA,QACpC,YAAA,EAAc,CAAA;AAAA,QAAG,SAAA,EAAW;AAAA,OAC9B,EACG,QAAA,EAAA;AAAA,QAAA,OAAA,CAAQ,MAAA,KAAW,KAAK,CAAC,OAAA,oBACxBC,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,IAAI,QAAA,EAAU,EAAA,EAAI,OAAO,SAAA,EAAW,SAAA,EAAW,UAAS,EAC5E,QAAA,EAAA,MAAA,GAAS,sBAAsB,iCAAA,EAClC,CAAA;AAAA,QAED,OAAA,CAAQ,IAAI,CAAA,GAAA,KAAO;AAClB,UAAA,MAAM,UAAA,GAAa,WAAA,CAAY,QAAA,CAAS,GAAA,CAAI,EAAE,CAAA;AAC9C,UAAA,uBACED,IAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,QAAA;AAAA,cACL,QAAA,EAAU,UAAA;AAAA,cACV,SAAS,MAAM;AAAE,gBAAA,UAAA,CAAW,GAAG,CAAA;AAAG,gBAAA,SAAA,CAAU,EAAE,CAAA;AAAA,cAAG,CAAA;AAAA,cACjD,KAAA,EAAO;AAAA,gBACL,OAAA,EAAS,MAAA;AAAA,gBAAQ,UAAA,EAAY,QAAA;AAAA,gBAAU,cAAA,EAAgB,eAAA;AAAA,gBACvD,KAAA,EAAO,MAAA;AAAA,gBAAQ,OAAA,EAAS,UAAA;AAAA,gBAAY,MAAA,EAAQ,MAAA;AAAA,gBAC5C,YAAA,EAAc,mBAAA;AAAA,gBACd,eAAA,EAAiB,aAAa,SAAA,GAAY,aAAA;AAAA,gBAC1C,MAAA,EAAQ,aAAa,SAAA,GAAY,SAAA;AAAA,gBAAW,SAAA,EAAW,MAAA;AAAA,gBACvD,KAAA,EAAO,SAAA;AAAA,gBAAW,QAAA,EAAU,EAAA;AAAA,gBAC5B,OAAA,EAAS,aAAa,GAAA,GAAM;AAAA,eAC9B;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,QAAA,EAAU,CAAA,EAAE,EAC1E,QAAA,EAAA;AAAA,kCAAAC,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,YAAY,GAAA,EAAK,QAAA,EAAU,QAAA,EAAU,YAAA,EAAc,UAAA,EAAY,UAAA,EAAY,QAAA,EAAS,EAChG,cAAI,IAAA,EACP,CAAA;AAAA,kCACAD,IAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,yBAAA,EAA0B,EAClF,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAI,GAAA,GAAM,CAAA,EAAG,GAAA,CAAI,GAAG,CAAA,MAAA,CAAA,GAAQ,EAAA;AAAA,oBAAI,GAAA,CAAI;AAAA,mBAAA,EACvC;AAAA,iBAAA,EACF,CAAA;AAAA,gBACC,UAAA,oBACCC,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,CAAA,IAAK,QAAA,EAAA,OAAA,EAAK;AAAA;AAAA,aAAA;AAAA,YAvBlE,GAAA,CAAI;AAAA,WAyBX;AAAA,QAEJ,CAAC;AAAA,OAAA,EACH;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;ACjPA,IAAM,cAAA,GAMD,CAAC,EAAE,KAAA,GAAQ,MAAM,QAAA,EAAU,SAAA,GAAY,aAAa,UAAA,GAAa,eAAA,EAAiB,UAAS,qBAC9FA,IAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,CAAA,EAAG,eAAA,EAAiB,SAAA,EAAW,cAAc,CAAA,EAAG,OAAA,EAAS,GAAG,KAAA,EAAO,aAAA,IACpG,QAAA,EAAA,CAAC,EAAE,GAAG,IAAA,EAAM,KAAA,EAAO,WAAU,EAAG,EAAE,GAAG,KAAA,EAAO,KAAA,EAAO,YAAY,CAAA,CAAE,GAAA,CAAI,CAAA,GAAA,qBACpEA,GAAAA;AAAA,EAAC,QAAA;AAAA,EAAA;AAAA,IAEC,IAAA,EAAK,QAAA;AAAA,IACL,OAAA,EAAS,MAAM,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA;AAAA,IAC7B,QAAA;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,UAAA;AAAA,MACT,QAAA,EAAU,EAAA;AAAA,MACV,UAAA,EAAY,GAAA;AAAA,MACZ,YAAA,EAAc,CAAA;AAAA,MACd,MAAA,EAAQ,MAAA;AAAA,MACR,MAAA,EAAQ,WAAW,SAAA,GAAY,SAAA;AAAA,MAC/B,UAAA,EAAY,WAAA;AAAA,MACZ,GAAI,KAAA,KAAU,GAAA,CAAI,CAAA,GACd,EAAE,iBAAiB,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,6BAA4B,GACvF,EAAE,eAAA,EAAiB,aAAA,EAAe,OAAO,SAAA;AAAU,KAEzD;AAAA,IAEC,QAAA,EAAA,GAAA,CAAI;AAAA,GAAA;AAAA,EAlBA,MAAA,CAAO,IAAI,CAAC;AAmBnB,CACD,CAAA,EACH,CAAA;AAIF,IAAM,YAAA,GAKD,CAAC,EAAE,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,QAAA,EAAS,qBACzCD,IAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,EAAE,OAAA,EAAS,aAAA,EAAe,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,EAAA,EAAI,QAAA,EAAU,EAAA,EAAI,UAAA,EAAY,GAAA,EAAK,KAAA,EAAO,SAAA,EAAW,MAAA,EAAQ,SAAA,EAAW,UAAA,EAAY,QAAO,EAC5J,QAAA,EAAA;AAAA,kBAAAC,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,cAAA,EAAc,OAAA;AAAA,MACd,SAAS,MAAM,CAAC,QAAA,IAAY,QAAA,CAAS,CAAC,OAAO,CAAA;AAAA,MAC7C,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,cAAA;AAAA,QACT,KAAA,EAAO,EAAA;AAAA,QACP,MAAA,EAAQ,EAAA;AAAA,QACR,YAAA,EAAc,EAAA;AAAA,QACd,MAAA,EAAQ,MAAA;AAAA,QACR,MAAA,EAAQ,WAAW,SAAA,GAAY,SAAA;AAAA,QAC/B,QAAA,EAAU,UAAA;AAAA,QACV,UAAA,EAAY,CAAA;AAAA,QACZ,UAAA,EAAY,uBAAA;AAAA,QACZ,eAAA,EAAiB,UAAU,SAAA,GAAY;AAAA,OACzC;AAAA,MAEA,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO;AAAA,QACX,QAAA,EAAU,UAAA;AAAA,QACV,GAAA,EAAK,CAAA;AAAA,QACL,IAAA,EAAM,UAAU,EAAA,GAAK,CAAA;AAAA,QACrB,KAAA,EAAO,EAAA;AAAA,QACP,MAAA,EAAQ,EAAA;AAAA,QACR,YAAA,EAAc,KAAA;AAAA,QACd,eAAA,EAAiB,SAAA;AAAA,QACjB,SAAA,EAAW,2BAAA;AAAA,QACX,UAAA,EAAY;AAAA,OACd,EAAG;AAAA;AAAA,GACL;AAAA,kBACAA,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,KAAA,EAAM;AAAA,CAAA,EACf,CAAA;AAIF,IAAM,UAAA,GAKD,CAAC,EAAE,OAAA,EAAS,UAAU,QAAA,EAAU,QAAA,EAAS,qBAC5CA,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,QAAQ,QAAA,EAAU,MAAA,EAAQ,KAAK,CAAA,EAAE,EACrD,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,GAAA,KAAO;AAClB,EAAA,MAAM,UAAA,GAAa,QAAA,CAAS,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA;AAC9C,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MAEC,IAAA,EAAK,QAAA;AAAA,MACL,SAAS,MAAM;AACb,QAAA,IAAI,QAAA,EAAU;AACd,QAAA,QAAA,CAAS,UAAA,GAAa,QAAA,CAAS,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,KAAM,GAAA,CAAI,KAAK,CAAA,GAAI,CAAC,GAAG,QAAA,EAAU,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,MACxF,CAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAO,GAAA,CAAI,WAAA;AAAA,MACX,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,UAAA;AAAA,QACT,QAAA,EAAU,EAAA;AAAA,QACV,YAAA,EAAc,IAAA;AAAA,QACd,MAAA,EAAQ,WAAA;AAAA,QACR,MAAA,EAAQ,WAAW,SAAA,GAAY,SAAA;AAAA,QAC/B,UAAA,EAAY,WAAA;AAAA,QACZ,GAAI,UAAA,GACA,EAAE,eAAA,EAAiB,SAAA,EAAW,aAAa,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU,GACvE,EAAE,eAAA,EAAiB,aAAA,EAAe,WAAA,EAAa,SAAA,EAAW,OAAO,SAAA;AAAU,OAEjF;AAAA,MAEC,QAAA,EAAA,GAAA,CAAI;AAAA,KAAA;AAAA,IArBA,GAAA,CAAI;AAAA,GAsBX;AAEJ,CAAC,CAAA,EACH,CAAA;AAGF,IAAM,UAAA,GAAa;AAAA,EACjB,KAAA,EAAO,MAAA;AAAA,EACP,OAAA,EAAS,UAAA;AAAA,EACT,QAAA,EAAU,EAAA;AAAA,EACV,YAAA,EAAc,CAAA;AAAA,EACd,MAAA,EAAQ,mBAAA;AAAA,EACR,eAAA,EAAiB,aAAA;AAAA,EACjB,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,UAAA,GAAa;AAAA,EACjB,QAAA,EAAU,EAAA;AAAA,EACV,KAAA,EAAO,SAAA;AAAA,EACP,YAAA,EAAc,CAAA;AAAA,EACd,OAAA,EAAS;AACX,CAAA;AAGA,IAAM,SAAA,GAKD,CAAC,EAAE,OAAA,EAAS,QAAA,EAAU,QAAA,EAAU,QAAA,EAAS,qBAC5CA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,CAAA,EAAG,eAAA,EAAiB,SAAA,EAAW,YAAA,EAAc,CAAA,EAAG,OAAA,EAAS,CAAA,EAAG,KAAA,EAAO,aAAA,EAAc,EAClH,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,yBACXA,GAAAA;AAAA,EAAC,QAAA;AAAA,EAAA;AAAA,IAEC,IAAA,EAAK,QAAA;AAAA,IACL,OAAA,EAAS,MAAM,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA;AAAA,IACjC,QAAA;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,UAAA;AAAA,MACT,QAAA,EAAU,EAAA;AAAA,MACV,UAAA,EAAY,GAAA;AAAA,MACZ,YAAA,EAAc,CAAA;AAAA,MACd,MAAA,EAAQ,MAAA;AAAA,MACR,MAAA,EAAQ,WAAW,SAAA,GAAY,SAAA;AAAA,MAC/B,UAAA,EAAY,WAAA;AAAA,MACZ,GAAI,QAAA,KAAa,GAAA,CAAI,KAAA,GACjB,EAAE,iBAAiB,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,6BAA4B,GACvF,EAAE,eAAA,EAAiB,aAAA,EAAe,OAAO,SAAA;AAAU,KAEzD;AAAA,IAEC,QAAA,EAAA,GAAA,CAAI;AAAA,GAAA;AAAA,EAlBA,GAAA,CAAI;AAmBX,CACD,CAAA,EACH,CAAA;AAGK,IAAM,kBAAkD,CAAC;AAAA,EAC9D,SAAA,EAAW,IAAA;AAAA,EACX,QAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,MAAA,GAAS,CAAC,KAAA,KAA8B,QAAA,CAAS,EAAE,GAAG,IAAA,EAAM,GAAG,KAAA,EAAO,CAAA;AAE5E,EAAA,QAAQ,KAAK,IAAA;AAAM;AAAA,IAEjB,KAAK,SAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,IAAA,CAAK,UAAU,QAAA,EAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,QAAA,EAAU,CAAA,EAAG,CAAA,EAAG,UAAU,QAAA,EAAU,CAAA;AAAA,QACjG,WAAA,CAAY,QAAA,EAAU,MAAA,mBACrBA,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,WAAA,CAAY,QAAA,CAAS,GAAA,CAAI,CAAA,CAAA,MAAM,EAAE,KAAA,EAAO,CAAA,CAAE,KAAA,EAAO,KAAA,EAAO,CAAA,CAAE,KAAA,IAAS,IAAG,CAAE,CAAA;AAAA,YACjF,QAAA,EAAA,CAAW,IAAA,CAAK,QAAA,IAAY,EAAC,EAAG,GAAA,CAAI,CAAA,CAAA,KAAK,OAAO,CAAA,KAAM,QAAA,GAAW,CAAA,GAAK,CAAA,CAAE,SAAS,EAAG,CAAA;AAAA,YACpF,QAAA,EAAU,CAAA,IAAA,KAAQ,MAAA,CAAO,EAAE,QAAA,EAAU,KAAK,GAAA,CAAI,CAAA,CAAA,MAAM,EAAE,KAAA,EAAO,CAAA,EAAG,KAAA,EAAO,YAAY,QAAA,EAAU,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,KAAA,KAAU,CAAC,GAAG,KAAA,IAAS,CAAA,EAAE,CAAE,CAAA,EAAG,CAAA;AAAA,YACvI,QAAA,EAAU;AAAA;AAAA,SACZ,mBAEAA,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,QAAA,IAAY,QAAA,EAAA,uBAAA,EAAqB;AAAA,OAAA,EAE5F,CAAA;AAAA;AAAA,IAIJ,KAAK,SAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,IAAA,CAAK,UAAU,QAAA,EAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,QAAA,EAAU,CAAA,EAAG,CAAA,EAAG,UAAU,QAAA,EAAU,CAAA;AAAA,wBAClGA,GAAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,CAAC,CAAC,IAAA,CAAK,UAAA;AAAA,YAChB,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,UAAA,EAAY,GAAG,CAAA;AAAA,YACvC,KAAA,EAAM,aAAA;AAAA,YACN,QAAA,EAAU;AAAA;AAAA,SACZ;AAAA,QACC,IAAA,CAAK,6BACJA,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,cAAA;AAAA,YACT,QAAA,EAAU,IAAA,CAAK,OAAA,IAAW,EAAC;AAAA,YAC3B,UAAU,CAAA,IAAA,KAAQ,MAAA,CAAO,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,YAC1C,QAAA,EAAU;AAAA;AAAA,4BAGZA,GAAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,QAAA,EAAU,IAAA,CAAK,SAAA,IAAa,EAAC;AAAA,YAC7B,UAAU,CAAA,KAAA,KAAS,MAAA,CAAO,EAAE,SAAA,EAAW,OAAO,CAAA;AAAA,YAC9C,QAAA,EAAU;AAAA;AAAA;AACZ,OAAA,EAEJ,CAAA;AAAA;AAAA,IAIJ,KAAK,OAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,mBAAA,EAAqB,SAAA,EAAW,GAAA,EAAK,CAAA,EAAE,EACpE,QAAA,EAAA;AAAA,0BAAAA,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAY,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,4BACpCA,IAAC,OAAA,EAAA,EAAM,KAAA,EAAO,YAAY,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,EAAA,EAAI,QAAA,EAAU,CAAA,CAAA,KAAK,OAAO,EAAE,KAAA,EAAO,EAAE,MAAA,CAAO,KAAA,EAAO,CAAA,EAAG,WAAA,EAAY,YAAA,EAAa,QAAA,EAAU,QAAA,EAAU;AAAA,WAAA,EACpJ,CAAA;AAAA,0BACAD,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAY,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,4BACpCA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAO,YAAY,KAAA,EAAO,IAAA,CAAK,SAAA,IAAa,MAAA,EAAQ,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,SAAA,EAAW,EAAE,MAAA,CAAO,KAAA,EAAc,CAAA,EAAG,UAAU,QAAA,EAChI,QAAA,EAAA,WAAA,CAAY,GAAA,CAAI,CAAA,EAAA,qBAAMA,GAAAA,CAAC,QAAA,EAAA,EAAsB,KAAA,EAAO,EAAA,CAAG,OAAQ,QAAA,EAAA,EAAA,CAAG,KAAA,EAAA,EAA/B,EAAA,CAAG,KAAkC,CAAS,CAAA,EACpF;AAAA,WAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBACAD,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,mBAAA,EAAqB,SAAA,EAAW,GAAA,EAAK,CAAA,EAAE,EACpE,QAAA,EAAA;AAAA,0BAAAA,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAY,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,4BAClCA,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAO,YAAY,KAAA,EAAO,IAAA,CAAK,cAAA,IAAkB,OAAA,EAAS,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,cAAA,EAAgB,EAAE,MAAA,CAAO,KAAA,EAAc,CAAA,EAAG,UAAU,QAAA,EAC3I,QAAA,EAAA,eAAA,CAAgB,GAAA,CAAI,CAAA,EAAA,qBAAMA,GAAAA,CAAC,QAAA,EAAA,EAAsB,KAAA,EAAO,EAAA,CAAG,OAAQ,QAAA,EAAA,EAAA,CAAG,KAAA,EAAA,EAA/B,EAAA,CAAG,KAAkC,CAAS,CAAA,EACxF;AAAA,WAAA,EACF,CAAA;AAAA,0BACAD,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAY,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,4BAC/BA,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAY,OAAO,MAAA,CAAO,IAAA,CAAK,KAAA,IAAS,EAAE,CAAA,EAAG,QAAA,EAAU,OAAK,MAAA,CAAO,EAAE,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA,EAAG,WAAA,EAAY,OAAA,EAAQ,QAAA,EAAU,QAAA,EAAU;AAAA,WAAA,EACvJ;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA;AAAA,IAIJ,KAAK,MAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,iBAAA;AAAA,YACT,UAAU,IAAA,CAAK,QAAA,GAAW,CAAC,IAAA,CAAK,QAAQ,IAAI,EAAC;AAAA,YAC7C,QAAA,EAAU,CAAA,IAAA,KAAQ,MAAA,CAAO,EAAE,QAAA,EAAW,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,IAAK,MAAA,EAAmB,CAAA;AAAA,YAClF,QAAA,EAAU;AAAA;AAAA,SACZ;AAAA,QACC,KAAK,QAAA,KAAa,OAAA,IAAW,WAAA,CAAY,UAAA,EAAY,yBACpDA,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,SAAS,WAAA,CAAY,UAAA;AAAA,YACrB,QAAA,EAAU,IAAA,CAAK,QAAA,IAAY,EAAC;AAAA,YAC5B,UAAU,CAAA,IAAA,KAAQ,MAAA,CAAO,EAAE,QAAA,EAAU,MAAM,CAAA;AAAA,YAC3C,QAAA,EAAU;AAAA;AAAA,SACZ,GACE;AAAA,OAAA,EACN,CAAA;AAAA;AAAA,IAIJ,KAAK,MAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS;AAAA,cACP,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,WAAA,EAAY;AAAA,cACtC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,UAAA,EAAW;AAAA,cACpC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,YAAA;AAAa,aAC1C;AAAA,YACA,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,QAAA,EAAU,GAAU,CAAA;AAAA,YAC5C,QAAA,EAAU;AAAA;AAAA,SACZ;AAAA,QAAA,CACE,IAAA,CAAK,aAAa,QAAA,IAAY,IAAA,CAAK,aAAa,SAAA,qBAChDD,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,WAAM,KAAA,EAAO,UAAA,EAAa,eAAK,QAAA,KAAa,SAAA,GAAY,eAAe,aAAA,EAAc,CAAA;AAAA,0BACtFA,IAAC,OAAA,EAAA,EAAM,IAAA,EAAK,QAAO,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,IAAA,CAAK,UAAA,IAAc,EAAA,EAAI,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,UAAA,EAAY,CAAA,CAAE,OAAO,KAAA,EAAO,CAAA,EAAG,QAAA,EAAU,QAAA,EAAU;AAAA,SAAA,EACjJ,CAAA;AAAA,QAAA,CAEA,IAAA,CAAK,aAAa,OAAA,IAAW,IAAA,CAAK,aAAa,SAAA,qBAC/CD,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,WAAM,KAAA,EAAO,UAAA,EAAa,eAAK,QAAA,KAAa,SAAA,GAAY,aAAa,YAAA,EAAa,CAAA;AAAA,0BACnFA,IAAC,OAAA,EAAA,EAAM,IAAA,EAAK,QAAO,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,IAAA,CAAK,SAAA,IAAa,EAAA,EAAI,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,SAAA,EAAW,CAAA,CAAE,OAAO,KAAA,EAAO,CAAA,EAAG,QAAA,EAAU,QAAA,EAAU;AAAA,SAAA,EAC/I;AAAA,OAAA,EAEJ,CAAA;AAAA;AAAA,IAIJ,KAAK,QAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,IAAA,CAAK,UAAU,QAAA,EAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,QAAA,EAAU,CAAA,EAAG,CAAA,EAAG,UAAU,QAAA,EAAU,CAAA;AAAA,wBAClGA,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,eAAA;AAAA,YACT,QAAA,EAAU,IAAA,CAAK,QAAA,IAAY,EAAC;AAAA,YAC5B,UAAU,CAAA,IAAA,KAAQ,MAAA,CAAO,EAAE,QAAA,EAAU,MAAM,CAAA;AAAA,YAC3C,QAAA,EAAU;AAAA;AAAA;AACZ,OAAA,EACF,CAAA;AAAA;AAAA,IAIJ,KAAK,KAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,IAAA,CAAK,UAAU,QAAA,EAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,QAAA,EAAU,CAAA,EAAG,CAAA,EAAG,UAAU,QAAA,EAAU,CAAA;AAAA,QACjG,WAAA,CAAY,IAAA,EAAM,MAAA,mBACjBA,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,WAAA,CAAY,IAAA,CAAK,GAAA,CAAI,CAAA,CAAA,MAAM,EAAE,KAAA,EAAO,CAAA,EAAG,KAAA,EAAO,CAAA,EAAE,CAAE,CAAA;AAAA,YAC3D,QAAA,EAAU,IAAA,CAAK,IAAA,IAAQ,EAAC;AAAA,YACxB,UAAU,CAAA,IAAA,KAAQ,MAAA,CAAO,EAAE,IAAA,EAAM,MAAM,CAAA;AAAA,YACvC,QAAA,EAAU;AAAA;AAAA,4BAGZA,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,YAAY,KAAA,EAAA,CAAQ,IAAA,CAAK,IAAA,IAAQ,IAAI,IAAA,CAAK,IAAI,GAAG,QAAA,EAAU,CAAA,CAAA,KAAK,OAAO,EAAE,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,MAAM,KAAA,CAAM,GAAG,EAAE,GAAA,CAAI,CAAA,CAAA,KAAK,EAAE,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,EAAG,GAAG,WAAA,EAAY,oBAAA,EAAgB,UAAU,QAAA,EAAU;AAAA,OAAA,EAElN,CAAA;AAAA;AAAA,IAIJ,KAAK,OAAA,EAAS;AACZ,MAAA,MAAM,MAAA,GAAS,WAAA,CAAY,MAAA,IAAU,EAAC;AACtC,MAAA,MAAM,gBAAgB,MAAA,CAAO,IAAA,CAAK,OAAK,CAAA,CAAE,GAAA,KAAQ,KAAK,QAAQ,CAAA;AAC9D,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,KAAK,QAAA,KAAa,KAAA;AAAA,YACzB,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,QAAA,EAAU,GAAG,CAAA;AAAA,YACrC,QAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACAD,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAY,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,UAC9B,MAAA,CAAO,yBACND,IAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,UAAA;AAAA,cACP,KAAA,EAAO,KAAK,QAAA,IAAY,EAAA;AAAA,cACxB,QAAA,EAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,UAAU,CAAA,CAAE,MAAA,CAAO,KAAA,IAAS,MAAA,EAAW,MAAA,EAAQ,EAAC,EAAG,SAAA,EAAW,QAAW,CAAA;AAAA,cACjG,QAAA,EAAU,QAAA;AAAA,cAEV,QAAA,EAAA;AAAA,gCAAAC,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,EAAA,EAAG,QAAA,EAAA,sBAAA,EAAe,CAAA;AAAA,gBAC/B,MAAA,CAAO,IAAI,CAAA,CAAA,qBACVD,KAAC,QAAA,EAAA,EAAmB,KAAA,EAAO,EAAE,GAAA,EAC1B,QAAA,EAAA;AAAA,kBAAA,CAAA,CAAE,IAAA;AAAA,kBAAM,CAAA,CAAE,WAAA,KAAgB,OAAA,GAAU,UAAA,GAAa;AAAA,iBAAA,EAAA,EADvC,CAAA,CAAE,GAEf,CACD;AAAA;AAAA;AAAA,WACH,mBAEAC,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,QAAA,IAAY,QAAA,EAAA,yCAAA,EAEnE;AAAA,SAAA,EAEJ,CAAA;AAAA,QACC,aAAA,oBACCD,IAAAA,CAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAY,QAAA,EAAA;AAAA,YAAA,OAAA;AAAA,YAAM,aAAA,CAAc,WAAA,KAAgB,OAAA,GAAU,GAAA,GAAM;AAAA,WAAA,EAAG,CAAA;AAAA,UAChF,aAAA,CAAc,MAAA,CAAO,MAAA,mBACpBC,GAAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,aAAA,CAAc,MAAA,CAAO,GAAA,CAAI,CAAA,CAAA,MAAM;AAAA,gBACtC,OAAO,CAAA,CAAE,IAAA;AAAA,gBACT,OAAO,CAAA,CAAE,GAAA;AAAA,gBACT,WAAA,EAAa,EAAE,WAAA,IAAe;AAAA,eAChC,CAAE,CAAA;AAAA,cACF,QAAA,EAAU,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,aAAa,EAAC;AAAA,cAC5C,QAAA,EAAU,UAAQ,MAAA,CAAO,EAAE,QAAQ,IAAA,EAAM,SAAA,EAAW,QAAW,CAAA;AAAA,cAC/D,QAAA,EAAU;AAAA;AAAA,WACZ,mBAEAA,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,QAAA,IAAY,QAAA,EAAA,kCAAA,EAEnE;AAAA,SAAA,EAEJ;AAAA,OAAA,EAEJ,CAAA;AAAA,IAEJ;AAAA;AAAA,IAGA,KAAK,UAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,IAAC,cAAA,EAAA,EAAe,KAAA,EAAO,KAAK,QAAA,EAAU,QAAA,EAAU,OAAK,MAAA,CAAO,EAAE,QAAA,EAAU,CAAA,EAAG,CAAA,EAAG,SAAA,EAAU,gBAAe,UAAA,EAAW,eAAA,EAAgB,UAAU,QAAA,EAAU,CAAA;AAAA,wBACtJA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,mBAAA,EAAqB,SAAA,EAAW,GAAA,EAAK,CAAA,EAAE,EACnE,QAAA,EAAA;AAAA,UACC,EAAE,KAAA,EAAO,iBAAA,EAAmB,GAAA,EAAK,MAAA,EAAgB;AAAA,UACjD,EAAE,KAAA,EAAO,kBAAA,EAAoB,GAAA,EAAK,MAAA,EAAgB;AAAA,UAClD,EAAE,KAAA,EAAO,iBAAA,EAAmB,GAAA,EAAK,MAAA,EAAgB;AAAA,UACjD,EAAE,KAAA,EAAO,kBAAA,EAAoB,GAAA,EAAK,MAAA;AAAgB,SACpD,CAAE,GAAA,CAAI,CAAA,CAAA,qBACJD,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,UAAA,EAAa,YAAE,KAAA,EAAM,CAAA;AAAA,0BACnCA,GAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,KAAA;AAAA,cACL,KAAA,EAAO,UAAA;AAAA,cACP,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,GAAG,CAAA,IAAK,EAAA;AAAA,cACtB,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,CAAC,EAAE,GAAG,GAAG,CAAA,CAAE,MAAA,CAAO,QAAQ,UAAA,CAAW,CAAA,CAAE,OAAO,KAAK,CAAA,GAAI,QAAW,CAAA;AAAA,cAC1F,QAAA,EAAU;AAAA;AAAA;AACZ,SAAA,EAAA,EATQ,CAAA,CAAE,GAUZ,CACD,CAAA,EACH;AAAA,OAAA,EACF,CAAA;AAAA;AAAA,IAIJ,KAAK,SAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC9D,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,IAAA,CAAK,UAAU,QAAA,EAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,QAAA,EAAU,CAAA,EAAG,CAAA,EAAG,UAAU,QAAA,EAAU,CAAA;AAAA,QACjG,WAAA,CAAY,+BACXA,GAAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,cAAc,WAAA,CAAY,YAAA;AAAA,YAC1B,WAAA,EAAa,IAAA,CAAK,UAAA,IAAc,EAAC;AAAA,YACjC,OAAO,IAAA,CAAK,YAAA;AAAA,YACZ,QAAA,EAAU,CAAC,GAAA,EAAK,KAAA,KAAU,MAAA,CAAO,EAAE,UAAA,EAAY,GAAA,EAAK,YAAA,EAAc,KAAA,EAAO,CAAA;AAAA,YACzE,QAAA,EAAU;AAAA;AAAA,SACZ,GACE,WAAA,CAAY,QAAA,EAAU,MAAA,mBACxBA,GAAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,SAAS,WAAA,CAAY,QAAA;AAAA,YACrB,QAAA,EAAU,IAAA,CAAK,UAAA,IAAc,EAAC;AAAA,YAC9B,UAAU,CAAA,IAAA,KAAQ,MAAA,CAAO,EAAE,UAAA,EAAY,MAAM,CAAA;AAAA,YAC7C,QAAA,EAAU;AAAA;AAAA,4BAGZA,GAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,YAAY,KAAA,EAAA,CAAQ,IAAA,CAAK,UAAA,IAAc,IAAI,IAAA,CAAK,IAAI,GAAG,QAAA,EAAU,CAAA,CAAA,KAAK,OAAO,EAAE,UAAA,EAAY,CAAA,CAAE,MAAA,CAAO,MAAM,KAAA,CAAM,GAAG,EAAE,GAAA,CAAI,CAAA,CAAA,KAAK,EAAE,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,EAAG,GAAG,WAAA,EAAY,oCAAA,EAAgC,UAAU,QAAA,EAAU;AAAA,OAAA,EAE9O,CAAA;AAAA;AAAA,IAIJ,KAAK,YAAA;AACH,MAAA,uBACEA,GAAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,mBAAA;AAAA,UACT,UAAU,IAAA,CAAK,UAAA,GAAa,CAAC,IAAA,CAAK,UAAU,IAAI,EAAC;AAAA,UACjD,QAAA,EAAU,CAAA,IAAA,KAAQ,MAAA,CAAO,EAAE,UAAA,EAAa,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,IAAK,MAAA,EAAmB,CAAA;AAAA,UACpF,QAAA,EAAU;AAAA;AAAA,OACZ;AAAA;AAAA,IAIJ,KAAK,WAAA;AACH,MAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,GAAA,EAAK,EAAA,EAAG,EAC7D,QAAA,EAAA;AAAA,QAAA,WAAA,CAAY,eAAA,EAAiB,yBAC5BA,IAAAA,CAAC,YAAO,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,IAAA,CAAK,WAAA,IAAe,EAAA,EAAI,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,WAAA,EAAa,CAAA,CAAE,OAAO,KAAA,EAAO,CAAA,EAAG,QAAA,EAAU,QAAA,EAC1H,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,QAAA,EAAA,EAAO,KAAA,EAAM,EAAA,EAAG,QAAA,EAAA,0BAAA,EAAmB,CAAA;AAAA,UACnC,WAAA,CAAY,eAAA,CAAgB,GAAA,CAAI,CAAA,CAAA,qBAAKA,GAAAA,CAAC,QAAA,EAAA,EAAqB,KAAA,EAAO,CAAA,CAAE,KAAA,EAAQ,QAAA,EAAA,CAAA,CAAE,KAAA,EAAA,EAA5B,CAAA,CAAE,KAAgC,CAAS;AAAA,SAAA,EAChG,CAAA,mBAEAA,GAAAA,CAAC,OAAA,EAAA,EAAM,OAAO,UAAA,EAAY,KAAA,EAAO,IAAA,CAAK,WAAA,IAAe,EAAA,EAAI,QAAA,EAAU,OAAK,MAAA,CAAO,EAAE,WAAA,EAAa,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA,EAAG,WAAA,EAAY,cAAA,EAAe,QAAA,EAAU,QAAA,EAAU,CAAA;AAAA,wBAElKA,GAAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS;AAAA,cACP,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAS;AAAA,cACjC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA;AAAQ,aACnC;AAAA,YACA,QAAA,EAAU,KAAK,MAAA,KAAW,IAAA,GAAO,SAAS,IAAA,CAAK,MAAA,KAAW,QAAQ,OAAA,GAAU,MAAA;AAAA,YAC5E,UAAU,CAAA,CAAA,KAAK,MAAA,CAAO,EAAE,MAAA,EAAQ,CAAA,KAAM,QAAQ,CAAA;AAAA,YAC9C,QAAA,EAAU;AAAA;AAAA;AACZ,OAAA,EACF,CAAA;AAAA,IAGJ;AACE,MAAA,uBAAOA,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,EAAI,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,QAAA,EAAS,EAAG,QAAA,EAAA,wBAAA,EAAsB,CAAA;AAAA;AAEtG,CAAA;ACteO,IAAM,gBAA8C,CAAC;AAAA,EAC1D,SAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,IAAIC,QAAAA,CAAS,CAAC,UAAU,IAAI,CAAA;AACxD,EAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,SAAA,CAAU,IAAI,CAAA;AAC5C,EAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,SAAA,CAAU,IAAI,CAAA;AAC5C,EAAA,MAAM,OAAA,GAAU,mBAAA,CAAoB,SAAA,EAAW,EAAE,eAAA,EAAiB,YAAY,eAAA,EAAiB,MAAA,EAAQ,WAAA,CAAY,MAAA,EAAQ,CAAA;AAE3H,EAAA,MAAM,gBAAA,GAAmB,CAAC,IAAA,KAAwB;AAChD,IAAA,QAAA,CAAS,EAAE,GAAG,SAAA,EAAW,IAAA,EAAM,CAAA;AAC/B,IAAA,WAAA,CAAY,IAAI,CAAA;AAAA,EAClB,CAAA;AAEA,EAAA,uBACEF,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oGAAA,EAEb,QAAA,EAAA;AAAA,oBAAAA,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,gFAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,OAAO,IAAA,GAAO;AAAA,UACZ,UAAA,EAAY,CAAA,uBAAA,EAA0B,IAAA,CAAK,KAAK,CAAA,wBAAA;AAAA,SAClD,GAAI,MAAA;AAAA,QACJ,OAAA,EAAS,MAAM,WAAA,CAAY,CAAC,QAAQ,CAAA;AAAA,QAGpC,QAAA,EAAA;AAAA,0BAAAC,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,qEAAA;AAAA,cACV,KAAA,EAAO,IAAA,GAAO,EAAE,eAAA,EAAiB,GAAG,IAAA,CAAK,KAAK,CAAA,EAAA,CAAA,EAAM,KAAA,EAAO,IAAA,CAAK,KAAA,EAAM,GAAI,EAAE,iBAAiB,SAAA,EAAU;AAAA,cAEvG,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU;AAAA;AAAA,WAC5B;AAAA,0BAGAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,4BAAAC,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+DAAA,EACV,QAAA,EAAA,IAAA,EAAM,SAAS,uBAAA,EAClB,CAAA;AAAA,4BACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yDAAyD,QAAA,EAAA,OAAA,EAAQ;AAAA,WAAA,EAChF,CAAA;AAAA,0BAGAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACZ,QAAA,EAAA;AAAA,YAAA,SAAA,CAAU,IAAA,IAAQ,CAAC,QAAA,oBAClBC,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,CAAC,CAAA,KAAM;AAAE,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAAG,kBAAA,QAAA,CAAS,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,gBAAG,CAAA;AAAA,gBACjE,SAAA,EAAU,wEAAA;AAAA,gBACV,KAAA,EAAM,aAAA;AAAA,gBAEN,QAAA,kBAAAA,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,2BAAA,EAA4B;AAAA;AAAA,aACnD;AAAA,YAED,CAAC,4BACAA,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,CAAC,CAAA,KAAM;AAAE,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAAG,kBAAA,QAAA,EAAS;AAAA,gBAAG,CAAA;AAAA,gBACnD,SAAA,EAAU,yEAAA;AAAA,gBACV,KAAA,EAAM,QAAA;AAAA,gBAEN,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,0BAAA,EAA2B;AAAA;AAAA,aAC/C;AAAA,YAED,QAAA,mBAAWA,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,uBAAA,EAAwB,CAAA,mBAAKA,GAAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,uBAAA,EAAwB;AAAA,WAAA,EAClH;AAAA;AAAA;AAAA,KACF;AAAA,IAGC,4BACCA,GAAAA,CAAC,SAAI,SAAA,EAAU,yDAAA,EACZ,WAAC,SAAA,CAAU,IAAA,mBACVA,GAAAA,CAAC,mBAAA,EAAA,EAAoB,UAAU,gBAAA,EAAkB,CAAA,mBAEjDD,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACZ,QAAA,EAAA;AAAA,MAAA,IAAA,EAAM,4BACLC,GAAAA,CAAC,OAAE,SAAA,EAAU,qDAAA,EAAuD,eAAK,QAAA,EAAS,CAAA;AAAA,sBAEpFA,GAAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,SAAA;AAAA,UACA,QAAA;AAAA,UACA,WAAA;AAAA,UACA;AAAA;AAAA;AACF,KAAA,EACF,CAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;ACjGA,IAAM,oBAID,CAAC,EAAE,KAAA,EAAO,eAAA,EAAiB,QAAO,KAAM;AAC3C,EAAA,MAAM,QAAQ,KAAA,CAAM,UAAA,CAAW,OAAO,CAAA,CAAA,KAAK,CAAA,CAAE,IAAI,CAAA,CAAE,MAAA;AACnD,EAAA,IAAI,UAAU,CAAA,EAAG;AACf,IAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,sBAC5BA,GAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA,mBAAA,EAAiB,CAAA;AAAA,sBACvBA,GAAAA,CAACK,YAAAA,EAAA,EAAa,WAAU,iBAAA,EAAkB;AAAA,KAAA,EAC5C,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEN,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8EAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,aAAA,EAAc,CAAA;AAAA,MAC/B,KAAA;AAAA,MAAM,YAAA;AAAA,MAAW,KAAA,KAAU,IAAI,GAAA,GAAM,EAAA;AAAA,MAAG,QAAA;AAAA,MAAI,KAAA,CAAM,IAAA,KAAS,KAAA,GAAQ,WAAA,GAAc,WAAA;AAAA,sBAClFA,GAAAA,CAACK,YAAAA,EAAA,EAAa,WAAU,iBAAA,EAAkB;AAAA,KAAA,EAC5C,CAAA;AAAA,oBACAN,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,CAAM,UAAA,CAAW,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,CAAE,IAAI,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,MAAM,CAAA,KAAM;AACjE,QAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,IAAA,CAAK,IAAI,CAAA;AACvC,QAAA,uBACEC,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,iFAAA;AAAA,YACV,KAAA,EAAO;AAAA,cACL,eAAA,EAAiB,IAAA,GAAO,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,EAAA,CAAA,GAAO,SAAA;AAAA,cAC5C,KAAA,EAAO,MAAM,KAAA,IAAS;AAAA,aACxB;AAAA,YAEC,QAAA,EAAA,mBAAA,CAAoB,IAAA,EAAM,EAAE,eAAA,EAAiB,QAAQ;AAAA,WAAA;AAAA,UAPjD;AAAA,SAQP;AAAA,MAEJ,CAAC,CAAA;AAAA,MACA,QAAQ,CAAA,oBACPD,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sHAAA,EAAuH,QAAA,EAAA;AAAA,QAAA,GAAA;AAAA,QACnI,KAAA,GAAQ,CAAA;AAAA,QAAE;AAAA,OAAA,EACd;AAAA,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;AAKA,IAAM,eAID,CAAC,EAAE,IAAA,EAAM,OAAA,EAAS,UAAS,KAAM;AACpC,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,uBACEA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qDAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+CAAA,EAAgD,SAAS,OAAA,EAAS,CAAA;AAAA,oBACjFD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4KAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2FAAA,EACb,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,wDAAA,EAAyD,QAAA,EAAA,iBAAA,EAEvE,CAAA;AAAA,wBACAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,OAAA;AAAA,YACT,SAAA,EAAU,wEAAA;AAAA,YAEV,QAAA,kBAAAA,GAAAA,CAACM,CAAAA,EAAA,EAAE,WAAU,uBAAA,EAAwB;AAAA;AAAA;AACvC,OAAA,EACF,CAAA;AAAA,sBACAN,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BACZ,QAAA,EACH;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;AAKA,IAAM,0BAA0G,CAAC;AAAA,EAC/G,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,cAAA,GAAiB,SAAA,CAAU,YAAA,EAAc,MAAA,EAAQ,SAAS,CAAA;AAChE,EAAA,MAAM,WAAA,GAAc,EAAE,QAAA,EAAU,IAAA,EAAM,UAAU,eAAA,EAAiB,UAAA,EAAY,MAAA,EAAQ,cAAA,EAAgB,YAAA,EAAa;AAElH,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,CAAC,KAAA,EAAe,OAAA,KAAuB;AACzE,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAO,YAAY,CAAC,GAAG,KAAA,CAAM,UAAU,CAAA,EAAE;AAC3D,IAAA,IAAA,CAAK,UAAA,CAAW,KAAK,CAAA,GAAI,OAAA;AACzB,IAAA,QAAA,CAAS,IAAI,CAAA;AAAA,EACf,CAAA,EAAG,CAAC,KAAA,EAAO,QAAQ,CAAC,CAAA;AAEpB,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,CAAC,KAAA,KAAkB;AACrD,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,KAAA,CAAM,UAAA,CAAW,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,KAAM,KAAK,CAAA,EAAE;AACpF,IAAA,QAAA,CAAS,IAAI,CAAA;AAAA,EACf,CAAA,EAAG,CAAC,KAAA,EAAO,QAAQ,CAAC,CAAA;AAEpB,EAAA,MAAM,YAAA,GAAe,YAAY,MAAM;AACrC,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAC,GAAG,KAAA,CAAM,UAAA,EAAY,EAAe,CAAA,EAAE;AAC5E,IAAA,QAAA,CAAS,IAAI,CAAA;AAAA,EACf,CAAA,EAAG,CAAC,KAAA,EAAO,QAAQ,CAAC,CAAA;AAEpB,EAAA,MAAM,WAAA,GAAc,WAAA,CAAY,CAAC,KAAA,KAAwB;AACvD,IAAA,QAAA,CAAS,EAAE,GAAG,KAAA,EAAO,IAAA,EAAM,OAAO,CAAA;AAAA,EACpC,CAAA,EAAG,CAAC,KAAA,EAAO,QAAQ,CAAC,CAAA;AAEpB,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,2CAAA,EAA6C,SAAS,CAAA,EAEtE,QAAA,EAAA;AAAA,IAAA,QAAA,oBACCA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sEAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,oJAAA;AAAA,UACV,KAAA,EAAO,MAAM,KAAA,IAAS,EAAA;AAAA,UACtB,QAAA,EAAU,CAAA,CAAA,KAAK,QAAA,CAAS,EAAE,GAAG,OAAO,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,UAC3D,WAAA,EAAY,iBAAA;AAAA,UACZ,QAAA,EAAU;AAAA;AAAA,OACZ;AAAA,sBACAD,IAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,iFAAA,EACf,QAAA,EAAA;AAAA,wBAAAC,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,MAAM,QAAA,CAAS,EAAE,GAAG,OAAO,QAAA,EAAU,CAAC,KAAA,CAAM,QAAA,EAAU,CAAA;AAAA,YAC/D,QAAA,EAAU,QAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,iDAAA;AAAA,cACA,KAAA,CAAM,WAAW,aAAA,GAAgB;AAAA,aACnC;AAAA,YAEA,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA;AAAA,cACf,4EAAA;AAAA,cACA,KAAA,CAAM,WAAW,eAAA,GAAkB;AAAA,aACrC,EAAG;AAAA;AAAA,SACL;AAAA,QAAS;AAAA,OAAA,EAEX;AAAA,KAAA,EACF,CAAA;AAAA,oBAIFD,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,CAAA,EAAG,MAAA,EAAQ,mBAAA,EAAqB,OAAA,EAAS,EAAA,EAAG,EACtE,QAAA,EAAA;AAAA,sBAAAA,KAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAU,GAAA,EAAK,CAAA,EAAG,QAAA,EAAU,IAAI,UAAA,EAAY,GAAA,EAAK,OAAO,SAAA,EAAW,YAAA,EAAc,IAAG,EAC7H,QAAA,EAAA;AAAA,wBAAAC,GAAAA,CAACO,SAAAA,EAAA,EAAU,SAAA,EAAU,aAAA,EAAc,CAAA;AAAA,QAAE;AAAA,OAAA,EAEvC,CAAA;AAAA,sBACAP,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAA,EAAK,CAAA,EAAG,eAAA,EAAiB,SAAA,EAAW,YAAA,EAAc,CAAA,EAAG,SAAS,CAAA,EAAE,EAC3F,QAAA,EAAA,CAAC,EAAE,CAAA,EAAG,KAAA,EAAgB,CAAA,EAAG,iBAAA,IAAqB,EAAE,CAAA,EAAG,IAAA,EAAe,CAAA,EAAG,gBAAA,EAAkB,CAAA,CAAG,GAAA,CAAI,yBAC9FA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,MAAM,WAAA,CAAY,GAAA,CAAI,CAAC,CAAA;AAAA,UAChC,QAAA,EAAU,QAAA;AAAA,UACV,KAAA,EAAO;AAAA,YACL,IAAA,EAAM,CAAA;AAAA,YACN,OAAA,EAAS,UAAA;AAAA,YACT,QAAA,EAAU,EAAA;AAAA,YACV,UAAA,EAAY,GAAA;AAAA,YACZ,YAAA,EAAc,CAAA;AAAA,YACd,MAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAQ,WAAW,SAAA,GAAY,SAAA;AAAA,YAC/B,UAAA,EAAY,WAAA;AAAA,YACZ,GAAI,KAAA,CAAM,IAAA,KAAS,GAAA,CAAI,CAAA,GACnB,EAAE,eAAA,EAAiB,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,WAAW,2BAAA,EAA4B,GACvF,EAAE,eAAA,EAAiB,aAAA,EAAe,OAAO,SAAA;AAAU,WAEzD;AAAA,UAEC,QAAA,EAAA,GAAA,CAAI;AAAA,SAAA;AAAA,QAnBA,GAAA,CAAI;AAAA,OAqBZ,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,oBAGAD,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wDAAA,EAAyD,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,sBAChFA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,mHAAA,EACb,QAAA,EAAA,KAAA,CAAM,WAAW,MAAA,EACpB;AAAA,KAAA,EACF,CAAA;AAAA,oBAGAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,QAAA,EAAA,KAAA,CAAM,UAAA,CAAW,GAAA,CAAI,CAAC,IAAA,EAAM,GAAA,qBAC3BA,GAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QAEC,SAAA,EAAW,IAAA;AAAA,QACX,KAAA,EAAO,GAAA;AAAA,QACP,QAAA,EAAU,CAAC,OAAA,KAAY,eAAA,CAAgB,KAAK,OAAO,CAAA;AAAA,QACnD,QAAA,EAAU,MAAM,eAAA,CAAgB,GAAG,CAAA;AAAA,QACnC,WAAA;AAAA,QACA;AAAA,OAAA;AAAA,MANK;AAAA,KAQR,CAAA,EACH,CAAA;AAAA,IAGC,CAAC,4BACAD,IAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,YAAA;AAAA,QACT,SAAA,EAAW,EAAA;AAAA,UACT,+DAAA;AAAA,UACA,6DAAA;AAAA,UACA,0CAAA;AAAA,UACA,+FAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAC,GAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,UAAE;AAAA;AAAA;AAAA;AAE9B,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAKO,IAAM,gBAAA,GAAoD,CAAC,KAAA,KAAU;AAC1E,EAAA,MAAM,EAAE,IAAA,GAAO,QAAA,EAAU,OAAA,EAAS,MAAM,cAAA,EAAgB,OAAA,EAAS,KAAA,EAAO,eAAA,EAAiB,QAAQ,YAAA,EAAc,SAAA,EAAW,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAEjJ,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIC,SAAS,KAAK,CAAA;AACtD,EAAA,MAAM,SAAS,cAAA,IAAkB,YAAA;AAGjC,EAAA,MAAM,cAAA,GAAiB,SAAA,CAAU,YAAA,EAAc,MAAA,EAAQ,SAAS,CAAA;AAEhE,EAAA,MAAM,WAAA,GAAc,YAAY,MAAM;AACpC,IAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,IAAA,OAAA,IAAU;AAAA,EACZ,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAGZ,EAAA,IAAI,SAAS,QAAA,EAAU;AACrB,IAAA,uBACED,GAAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,eAAA;AAAA,QACA,MAAA;AAAA,QACA,YAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AAGA,EAAA,MAAM,cAAA,GAAiB,OAAA,oBACrBA,GAAAA,CAAC,SAAI,SAAA,EAAW,EAAA;AAAA,IACd,2EAAA;AAAA,IACA,oEAAA;AAAA,IACA;AAAA,GACF,EACE,0BAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,OAAc,eAAA,EAAkC,MAAA,EAAQ,gBAAgB,CAAA,EAC7F,CAAA;AAGF,EAAA,uBACED,KAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,UAAK,OAAA,EAAS,MAAM,gBAAgB,IAAI,CAAA,EAAG,SAAA,EAAU,gBAAA,EACnD,QAAA,EAAA,cAAA,EACH,CAAA;AAAA,oBACAA,GAAAA,CAAC,YAAA,EAAA,EAAa,MAAM,MAAA,EAAQ,OAAA,EAAS,aACnC,QAAA,kBAAAA,GAAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,eAAA;AAAA,QACA,MAAA;AAAA,QACA,YAAA;AAAA,QACA,SAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN,EACF;AAAA,GAAA,EACF,CAAA;AAEJ","file":"chunk-WJTD5HT7.js","sourcesContent":["// =============================================================================\r\n// CONDITIONS EDITOR — Condition Type Metadata\r\n// =============================================================================\r\n\r\nimport type { ConditionTypeMeta, ConditionType, Condition, SelectOption, FacetOption } from './types';\r\nimport {\r\n Tags,\r\n Globe,\r\n Hash,\r\n User,\r\n Calendar,\r\n Monitor,\r\n Tag,\r\n MapPin,\r\n Package,\r\n ToggleLeft,\r\n GitBranch,\r\n Layers,\r\n} from 'lucide-react';\r\nimport React from 'react';\r\n\r\nexport const CONDITION_TYPES: ConditionTypeMeta[] = [\r\n { value: 'version', title: 'Version', description: 'Match specific versions', icon: 'tags', color: '#7c3aed', helpText: 'Limit by specific versions of your application or product.' },\r\n { value: 'country', title: 'Country', description: 'Filter by geographic location', icon: 'globe', color: '#2563eb', helpText: \"Limit by the user's country or region.\" },\r\n { value: 'value', title: 'Value', description: 'Match custom field values', icon: 'hash', color: '#ea580c', helpText: 'Compare text, numbers, or boolean values using various operators.' },\r\n { value: 'user', title: 'User', description: 'Filter by auth & permissions', icon: 'user', color: '#16a34a', helpText: 'Limit by authentication status, ownership, group membership, or admin privileges.' },\r\n { value: 'date', title: 'Date', description: 'Time-based conditions', icon: 'calendar', color: '#dc2626', helpText: 'Limit by specific dates or date ranges.' },\r\n { value: 'device', title: 'Device', description: 'Filter by device type', icon: 'monitor', color: '#0891b2', helpText: 'Limit by the type of device or operating system.' },\r\n { value: 'tag', title: 'Label', description: 'Match by tags or labels', icon: 'tag', color: '#db2777', helpText: 'Limit by assigned labels or tags.' },\r\n { value: 'facet', title: 'Facet', description: 'Match product facet values', icon: 'layers', color: '#9333ea', helpText: 'Limit by one or more facet values assigned to products in the collection.' },\r\n { value: 'geofence', title: 'Geofence', description: 'Geographic boundary', icon: 'map-pin', color: '#0d9488', helpText: 'Limit by geographic boundaries (rectangular area).' },\r\n { value: 'product', title: 'Product', description: 'Match specific products', icon: 'package', color: '#d97706', helpText: 'Limit by one or more products in the collection. Search by name, SKU, or ID.' },\r\n { value: 'itemStatus', title: 'Item Status', description: 'Filter by item state', icon: 'toggle-left', color: '#ea580c', helpText: 'Limit by item status such as proof, claimable, owner, or virtual.' },\r\n { value: 'condition', title: 'Condition', description: 'Reference another condition', icon: 'git-branch', color: '#4f46e5', helpText: 'Reference another saved condition and check if it passes or fails.' },\r\n];\r\n\r\nconst iconMap: Record<string, React.FC<{ className?: string }>> = {\r\n tags: Tags,\r\n globe: Globe,\r\n hash: Hash,\r\n user: User,\r\n calendar: Calendar,\r\n monitor: Monitor,\r\n tag: Tag,\r\n 'map-pin': MapPin,\r\n package: Package,\r\n 'toggle-left': ToggleLeft,\r\n 'git-branch': GitBranch,\r\n layers: Layers,\r\n};\r\n\r\nexport function getConditionMeta(type: ConditionType | null | undefined): ConditionTypeMeta | undefined {\r\n if (!type) return undefined;\r\n return CONDITION_TYPES.find(t => t.value === type);\r\n}\r\n\r\nexport function getConditionIcon(type: ConditionType | null | undefined): React.FC<{ className?: string }> {\r\n const meta = getConditionMeta(type);\r\n return (meta && iconMap[meta.icon]) || Hash;\r\n}\r\n\r\nexport function getConditionSummary(cond: Condition, options?: {\r\n savedConditions?: SelectOption[];\r\n regionOptions?: { title: string; value: string }[];\r\n facets?: FacetOption[];\r\n}): string {\r\n if (!cond.type) return 'No condition type selected';\r\n const meta = getConditionMeta(cond.type);\r\n let summary = meta?.title || cond.type;\r\n\r\n switch (cond.type) {\r\n case 'version':\r\n if (cond.versions?.length) {\r\n const verb = cond.contains ? 'is' : 'is not';\r\n summary += ` ${verb} ${cond.versions.map(v => typeof v === 'string' ? v : (v.title || v.value || '')).join(', ')}`;\r\n }\r\n break;\r\n case 'country':\r\n if (cond.useRegions && cond.regions?.length) {\r\n const verb = cond.contains ? 'is in' : 'is not in';\r\n const names = cond.regions.map(r => {\r\n const reg = REGION_OPTIONS.find(o => o.value === r);\r\n return reg?.title || r;\r\n });\r\n summary += ` ${verb} ${names.join(', ')}`;\r\n } else if (cond.countries?.length) {\r\n const verb = cond.contains ? 'is' : 'is not';\r\n summary += ` ${verb} ${cond.countries.join(', ')}`;\r\n }\r\n break;\r\n case 'value':\r\n if (cond.field) {\r\n const ops: Record<string, string> = { equal: '=', not: '≠', greater: '>', less: '<' };\r\n summary += `: ${cond.field} ${ops[cond.validationType || ''] || ''} ${cond.value ?? '?'}`;\r\n }\r\n break;\r\n case 'tag':\r\n if (cond.tags?.length) {\r\n const verb = cond.contains ? 'has' : 'does not have';\r\n summary += ` ${verb} ${cond.tags.length} label(s)`;\r\n }\r\n break;\r\n case 'facet': {\r\n const facet = options?.facets?.find(f => f.key === cond.facetKey);\r\n const facetName = facet?.name || cond.facetKey;\r\n const facetValues = cond.values ?? cond.valueKeys;\r\n if (cond.facetKey && facetValues?.length) {\r\n const verb = cond.contains === false ? 'is not' : 'is';\r\n const names = facetValues.map(vk => facet?.values.find(v => v.key === vk)?.name || vk);\r\n summary = `${facetName} ${verb} ${names.join(', ')}`;\r\n } else if (cond.facetKey) {\r\n summary = `${facetName}: (no values selected)`;\r\n }\r\n break;\r\n }\r\n case 'device':\r\n if (cond.displays?.length) {\r\n const verb = cond.contains ? 'is' : 'is not';\r\n summary += ` ${verb} ${cond.displays.join(', ')}`;\r\n }\r\n break;\r\n case 'user': {\r\n const userTypes: Record<string, string> = {\r\n valid: 'is logged in', invalid: 'is logged out', owner: 'is item owner',\r\n group: cond.groupIds?.length ? `in ${cond.groupIds.length} group(s)` : 'in groups',\r\n admin: 'is admin',\r\n };\r\n summary += ` ${userTypes[cond.userType || ''] || ''}`;\r\n break;\r\n }\r\n case 'product':\r\n if (cond.productIds?.length) {\r\n const verb = cond.contains ? 'is' : 'is not';\r\n const names = cond.productIds.map(id => cond.productNames?.[id] || id);\r\n const preview = names.slice(0, 2).join(', ');\r\n const rest = names.length > 2 ? ` +${names.length - 2}` : '';\r\n summary += ` ${verb} ${preview}${rest}`;\r\n }\r\n break;\r\n case 'condition':\r\n if (cond.conditionId) {\r\n const condRef = options?.savedConditions?.find(c => c.value === cond.conditionId);\r\n summary += `: ${condRef?.title || cond.conditionId} ${cond.passes ? 'passes' : 'fails'}`;\r\n }\r\n break;\r\n case 'date': {\r\n const dateTests: Record<string, string> = { before: 'before', after: 'after', between: 'between' };\r\n summary += ` is ${dateTests[cond.dateTest || ''] || ''}`;\r\n if (cond.beforeDate) summary += ` ${cond.beforeDate}`;\r\n if (cond.afterDate) summary += ` ${cond.afterDate}`;\r\n if (cond.rangeDate) summary += ` ${cond.rangeDate}`;\r\n break;\r\n }\r\n case 'geofence': {\r\n const verb = cond.contains ? 'inside' : 'outside';\r\n summary += ` ${verb} bounds`;\r\n break;\r\n }\r\n case 'itemStatus': {\r\n const statusTypes: Record<string, string> = {\r\n hasProof: 'is single item', noProof: 'is product (not item)', isClaimable: 'is claimable',\r\n notClaimable: 'is not claimable', hasOwner: 'has owner', isVirtual: 'is virtual',\r\n };\r\n summary += ` ${statusTypes[cond.statusType || ''] || ''}`;\r\n break;\r\n }\r\n }\r\n\r\n return summary;\r\n}\r\n\r\nexport const DISPLAY_OPTIONS: SelectOption[] = [\r\n { title: 'Desktop', value: 'desktop' },\r\n { title: 'Mobile', value: 'mobile' },\r\n { title: 'Android', value: 'android' },\r\n { title: 'iOS', value: 'ios' },\r\n { title: 'Apple Mac', value: 'mac' },\r\n { title: 'Microsoft Windows', value: 'win' },\r\n];\r\n\r\nexport const REGION_OPTIONS: (SelectOption & { description?: string })[] = [\r\n { title: 'European Union (EU)', value: 'eu', description: 'All 27 EU member states' },\r\n { title: 'European Economic Area (EEA)', value: 'eea', description: 'EU + Iceland, Liechtenstein, Norway' },\r\n { title: 'United Kingdom', value: 'uk', description: 'England, Scotland, Wales, Northern Ireland' },\r\n { title: 'North America', value: 'northamerica', description: 'USA, Canada, Mexico' },\r\n { title: 'Asia Pacific', value: 'asiapacific', description: 'Major Asia-Pacific markets' },\r\n];\r\n\r\nexport const USER_TYPE_OPTIONS: SelectOption[] = [\r\n { title: 'Is Logged In', value: 'valid' },\r\n { title: 'Is Logged Out', value: 'invalid' },\r\n { title: 'Is Item Owner', value: 'owner' },\r\n { title: 'Is Group Member', value: 'group' },\r\n { title: 'Is Admin', value: 'admin' },\r\n];\r\n\r\nexport const ITEM_STATUS_OPTIONS: SelectOption[] = [\r\n { title: 'Is Single Item', value: 'hasProof' },\r\n { title: 'Is Product (Not Item)', value: 'noProof' },\r\n { title: 'Is Item & Claimable', value: 'isClaimable' },\r\n { title: 'Is Item & Claimed', value: 'notClaimable' },\r\n { title: 'Is Virtual Item', value: 'isVirtual' },\r\n { title: 'Is Not A Virtual Item', value: 'notVirtual' },\r\n];\r\n\r\nexport const VALUE_OPERATORS: SelectOption[] = [\r\n { title: 'Equal to', value: 'equal' },\r\n { title: 'Not Equal', value: 'not' },\r\n { title: 'Greater Than', value: 'greater' },\r\n { title: 'Less Than', value: 'less' },\r\n];\r\n\r\nexport const FIELD_TYPES: SelectOption[] = [\r\n { title: 'Boolean', value: 'boolean' },\r\n { title: 'Integer', value: 'integer' },\r\n { title: 'Text', value: 'text' },\r\n];\r\n","// =============================================================================\r\n// CONDITIONS EDITOR — Condition Type Picker Grid\r\n// =============================================================================\r\n\r\nimport React from 'react';\r\nimport { CONDITION_TYPES } from './conditionMeta';\r\nimport { getConditionIcon } from './conditionMeta';\r\nimport type { ConditionType } from './types';\r\nimport { cn } from '../../utils/cn';\r\n\r\ninterface ConditionTypePickerProps {\r\n onSelect: (type: ConditionType) => void;\r\n}\r\n\r\nexport const ConditionTypePicker: React.FC<ConditionTypePickerProps> = ({ onSelect }) => {\r\n return (\r\n <div className=\"p-4\">\r\n <p className=\"text-xs font-medium text-gray-500 dark:text-gray-400 mb-3\">Choose a condition type:</p>\r\n <div className=\"grid grid-cols-3 sm:grid-cols-4 gap-2\">\r\n {CONDITION_TYPES.map(ct => {\r\n const Icon = getConditionIcon(ct.value);\r\n return (\r\n <button\r\n key={ct.value}\r\n onClick={() => onSelect(ct.value)}\r\n className={cn(\r\n 'flex flex-col items-center gap-1.5 p-3 rounded-lg border-2 border-gray-200 dark:border-gray-700',\r\n 'hover:border-blue-400 dark:hover:border-blue-500 hover:bg-blue-50/50 dark:hover:bg-blue-950/20',\r\n 'transition-all text-center cursor-pointer'\r\n )}\r\n >\r\n <div\r\n className=\"w-8 h-8 rounded-full flex items-center justify-center\"\r\n style={{ backgroundColor: `${ct.color}18`, color: ct.color }}\r\n >\r\n <Icon className=\"w-4 h-4\" />\r\n </div>\r\n <span className=\"text-[11px] font-medium text-gray-700 dark:text-gray-300\">{ct.title}</span>\r\n </button>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","// =============================================================================\r\n// ISO 3166-1 alpha-2 country list\r\n// =============================================================================\r\n\r\nexport interface CountryOption {\r\n code: string;\r\n name: string;\r\n}\r\n\r\nexport const COUNTRIES: CountryOption[] = [\r\n { code: 'AF', name: 'Afghanistan' },\r\n { code: 'AL', name: 'Albania' },\r\n { code: 'DZ', name: 'Algeria' },\r\n { code: 'AD', name: 'Andorra' },\r\n { code: 'AO', name: 'Angola' },\r\n { code: 'AG', name: 'Antigua and Barbuda' },\r\n { code: 'AR', name: 'Argentina' },\r\n { code: 'AM', name: 'Armenia' },\r\n { code: 'AU', name: 'Australia' },\r\n { code: 'AT', name: 'Austria' },\r\n { code: 'AZ', name: 'Azerbaijan' },\r\n { code: 'BS', name: 'Bahamas' },\r\n { code: 'BH', name: 'Bahrain' },\r\n { code: 'BD', name: 'Bangladesh' },\r\n { code: 'BB', name: 'Barbados' },\r\n { code: 'BY', name: 'Belarus' },\r\n { code: 'BE', name: 'Belgium' },\r\n { code: 'BZ', name: 'Belize' },\r\n { code: 'BJ', name: 'Benin' },\r\n { code: 'BT', name: 'Bhutan' },\r\n { code: 'BO', name: 'Bolivia' },\r\n { code: 'BA', name: 'Bosnia and Herzegovina' },\r\n { code: 'BW', name: 'Botswana' },\r\n { code: 'BR', name: 'Brazil' },\r\n { code: 'BN', name: 'Brunei' },\r\n { code: 'BG', name: 'Bulgaria' },\r\n { code: 'BF', name: 'Burkina Faso' },\r\n { code: 'BI', name: 'Burundi' },\r\n { code: 'CV', name: 'Cabo Verde' },\r\n { code: 'KH', name: 'Cambodia' },\r\n { code: 'CM', name: 'Cameroon' },\r\n { code: 'CA', name: 'Canada' },\r\n { code: 'CF', name: 'Central African Republic' },\r\n { code: 'TD', name: 'Chad' },\r\n { code: 'CL', name: 'Chile' },\r\n { code: 'CN', name: 'China' },\r\n { code: 'CO', name: 'Colombia' },\r\n { code: 'KM', name: 'Comoros' },\r\n { code: 'CG', name: 'Congo' },\r\n { code: 'CD', name: 'Congo (DRC)' },\r\n { code: 'CR', name: 'Costa Rica' },\r\n { code: 'CI', name: \"Côte d'Ivoire\" },\r\n { code: 'HR', name: 'Croatia' },\r\n { code: 'CU', name: 'Cuba' },\r\n { code: 'CY', name: 'Cyprus' },\r\n { code: 'CZ', name: 'Czechia' },\r\n { code: 'DK', name: 'Denmark' },\r\n { code: 'DJ', name: 'Djibouti' },\r\n { code: 'DM', name: 'Dominica' },\r\n { code: 'DO', name: 'Dominican Republic' },\r\n { code: 'EC', name: 'Ecuador' },\r\n { code: 'EG', name: 'Egypt' },\r\n { code: 'SV', name: 'El Salvador' },\r\n { code: 'GQ', name: 'Equatorial Guinea' },\r\n { code: 'ER', name: 'Eritrea' },\r\n { code: 'EE', name: 'Estonia' },\r\n { code: 'SZ', name: 'Eswatini' },\r\n { code: 'ET', name: 'Ethiopia' },\r\n { code: 'FJ', name: 'Fiji' },\r\n { code: 'FI', name: 'Finland' },\r\n { code: 'FR', name: 'France' },\r\n { code: 'GA', name: 'Gabon' },\r\n { code: 'GM', name: 'Gambia' },\r\n { code: 'GE', name: 'Georgia' },\r\n { code: 'DE', name: 'Germany' },\r\n { code: 'GH', name: 'Ghana' },\r\n { code: 'GR', name: 'Greece' },\r\n { code: 'GD', name: 'Grenada' },\r\n { code: 'GT', name: 'Guatemala' },\r\n { code: 'GN', name: 'Guinea' },\r\n { code: 'GW', name: 'Guinea-Bissau' },\r\n { code: 'GY', name: 'Guyana' },\r\n { code: 'HT', name: 'Haiti' },\r\n { code: 'HN', name: 'Honduras' },\r\n { code: 'HU', name: 'Hungary' },\r\n { code: 'IS', name: 'Iceland' },\r\n { code: 'IN', name: 'India' },\r\n { code: 'ID', name: 'Indonesia' },\r\n { code: 'IR', name: 'Iran' },\r\n { code: 'IQ', name: 'Iraq' },\r\n { code: 'IE', name: 'Ireland' },\r\n { code: 'IL', name: 'Israel' },\r\n { code: 'IT', name: 'Italy' },\r\n { code: 'JM', name: 'Jamaica' },\r\n { code: 'JP', name: 'Japan' },\r\n { code: 'JO', name: 'Jordan' },\r\n { code: 'KZ', name: 'Kazakhstan' },\r\n { code: 'KE', name: 'Kenya' },\r\n { code: 'KI', name: 'Kiribati' },\r\n { code: 'KP', name: 'North Korea' },\r\n { code: 'KR', name: 'South Korea' },\r\n { code: 'KW', name: 'Kuwait' },\r\n { code: 'KG', name: 'Kyrgyzstan' },\r\n { code: 'LA', name: 'Laos' },\r\n { code: 'LV', name: 'Latvia' },\r\n { code: 'LB', name: 'Lebanon' },\r\n { code: 'LS', name: 'Lesotho' },\r\n { code: 'LR', name: 'Liberia' },\r\n { code: 'LY', name: 'Libya' },\r\n { code: 'LI', name: 'Liechtenstein' },\r\n { code: 'LT', name: 'Lithuania' },\r\n { code: 'LU', name: 'Luxembourg' },\r\n { code: 'MG', name: 'Madagascar' },\r\n { code: 'MW', name: 'Malawi' },\r\n { code: 'MY', name: 'Malaysia' },\r\n { code: 'MV', name: 'Maldives' },\r\n { code: 'ML', name: 'Mali' },\r\n { code: 'MT', name: 'Malta' },\r\n { code: 'MH', name: 'Marshall Islands' },\r\n { code: 'MR', name: 'Mauritania' },\r\n { code: 'MU', name: 'Mauritius' },\r\n { code: 'MX', name: 'Mexico' },\r\n { code: 'FM', name: 'Micronesia' },\r\n { code: 'MD', name: 'Moldova' },\r\n { code: 'MC', name: 'Monaco' },\r\n { code: 'MN', name: 'Mongolia' },\r\n { code: 'ME', name: 'Montenegro' },\r\n { code: 'MA', name: 'Morocco' },\r\n { code: 'MZ', name: 'Mozambique' },\r\n { code: 'MM', name: 'Myanmar' },\r\n { code: 'NA', name: 'Namibia' },\r\n { code: 'NR', name: 'Nauru' },\r\n { code: 'NP', name: 'Nepal' },\r\n { code: 'NL', name: 'Netherlands' },\r\n { code: 'NZ', name: 'New Zealand' },\r\n { code: 'NI', name: 'Nicaragua' },\r\n { code: 'NE', name: 'Niger' },\r\n { code: 'NG', name: 'Nigeria' },\r\n { code: 'MK', name: 'North Macedonia' },\r\n { code: 'NO', name: 'Norway' },\r\n { code: 'OM', name: 'Oman' },\r\n { code: 'PK', name: 'Pakistan' },\r\n { code: 'PW', name: 'Palau' },\r\n { code: 'PS', name: 'Palestine' },\r\n { code: 'PA', name: 'Panama' },\r\n { code: 'PG', name: 'Papua New Guinea' },\r\n { code: 'PY', name: 'Paraguay' },\r\n { code: 'PE', name: 'Peru' },\r\n { code: 'PH', name: 'Philippines' },\r\n { code: 'PL', name: 'Poland' },\r\n { code: 'PT', name: 'Portugal' },\r\n { code: 'QA', name: 'Qatar' },\r\n { code: 'RO', name: 'Romania' },\r\n { code: 'RU', name: 'Russia' },\r\n { code: 'RW', name: 'Rwanda' },\r\n { code: 'KN', name: 'Saint Kitts and Nevis' },\r\n { code: 'LC', name: 'Saint Lucia' },\r\n { code: 'VC', name: 'Saint Vincent and the Grenadines' },\r\n { code: 'WS', name: 'Samoa' },\r\n { code: 'SM', name: 'San Marino' },\r\n { code: 'ST', name: 'São Tomé and Príncipe' },\r\n { code: 'SA', name: 'Saudi Arabia' },\r\n { code: 'SN', name: 'Senegal' },\r\n { code: 'RS', name: 'Serbia' },\r\n { code: 'SC', name: 'Seychelles' },\r\n { code: 'SL', name: 'Sierra Leone' },\r\n { code: 'SG', name: 'Singapore' },\r\n { code: 'SK', name: 'Slovakia' },\r\n { code: 'SI', name: 'Slovenia' },\r\n { code: 'SB', name: 'Solomon Islands' },\r\n { code: 'SO', name: 'Somalia' },\r\n { code: 'ZA', name: 'South Africa' },\r\n { code: 'SS', name: 'South Sudan' },\r\n { code: 'ES', name: 'Spain' },\r\n { code: 'LK', name: 'Sri Lanka' },\r\n { code: 'SD', name: 'Sudan' },\r\n { code: 'SR', name: 'Suriname' },\r\n { code: 'SE', name: 'Sweden' },\r\n { code: 'CH', name: 'Switzerland' },\r\n { code: 'SY', name: 'Syria' },\r\n { code: 'TW', name: 'Taiwan' },\r\n { code: 'TJ', name: 'Tajikistan' },\r\n { code: 'TZ', name: 'Tanzania' },\r\n { code: 'TH', name: 'Thailand' },\r\n { code: 'TL', name: 'Timor-Leste' },\r\n { code: 'TG', name: 'Togo' },\r\n { code: 'TO', name: 'Tonga' },\r\n { code: 'TT', name: 'Trinidad and Tobago' },\r\n { code: 'TN', name: 'Tunisia' },\r\n { code: 'TR', name: 'Turkey' },\r\n { code: 'TM', name: 'Turkmenistan' },\r\n { code: 'TV', name: 'Tuvalu' },\r\n { code: 'UG', name: 'Uganda' },\r\n { code: 'UA', name: 'Ukraine' },\r\n { code: 'AE', name: 'United Arab Emirates' },\r\n { code: 'GB', name: 'United Kingdom' },\r\n { code: 'US', name: 'United States' },\r\n { code: 'UY', name: 'Uruguay' },\r\n { code: 'UZ', name: 'Uzbekistan' },\r\n { code: 'VU', name: 'Vanuatu' },\r\n { code: 'VA', name: 'Vatican City' },\r\n { code: 'VE', name: 'Venezuela' },\r\n { code: 'VN', name: 'Vietnam' },\r\n { code: 'YE', name: 'Yemen' },\r\n { code: 'ZM', name: 'Zambia' },\r\n { code: 'ZW', name: 'Zimbabwe' },\r\n];\r\n\r\nexport function getCountryName(code: string): string {\r\n return COUNTRIES.find(c => c.code === code.toUpperCase())?.name || code;\r\n}\r\n","// =============================================================================\r\n// CONDITIONS EDITOR — Searchable Country Multi-Select (inline styles)\r\n// =============================================================================\r\n\r\nimport React, { useState, useRef, useEffect, useMemo } from 'react';\r\nimport { COUNTRIES, getCountryName } from './countries';\r\n\r\ninterface CountryPickerProps {\r\n selected: string[];\r\n onChange: (codes: string[]) => void;\r\n disabled?: boolean;\r\n placeholder?: string;\r\n}\r\n\r\nexport const CountryPicker: React.FC<CountryPickerProps> = ({\r\n selected,\r\n onChange,\r\n disabled,\r\n placeholder = 'Search countries…',\r\n}) => {\r\n const [open, setOpen] = useState(false);\r\n const [search, setSearch] = useState('');\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const filtered = useMemo(() => {\r\n if (!search) return COUNTRIES;\r\n const q = search.toLowerCase();\r\n return COUNTRIES.filter(\r\n c => c.name.toLowerCase().includes(q) || c.code.toLowerCase().includes(q)\r\n );\r\n }, [search]);\r\n\r\n // Close on outside click\r\n useEffect(() => {\r\n if (!open) return;\r\n const handler = (e: MouseEvent) => {\r\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\r\n setOpen(false);\r\n setSearch('');\r\n }\r\n };\r\n document.addEventListener('mousedown', handler);\r\n return () => document.removeEventListener('mousedown', handler);\r\n }, [open]);\r\n\r\n const toggle = (code: string) => {\r\n if (disabled) return;\r\n onChange(\r\n selected.includes(code)\r\n ? selected.filter(c => c !== code)\r\n : [...selected, code]\r\n );\r\n };\r\n\r\n const remove = (code: string) => {\r\n if (disabled) return;\r\n onChange(selected.filter(c => c !== code));\r\n };\r\n\r\n const triggerStyle = {\r\n minHeight: 38,\r\n width: '100%',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: 6,\r\n padding: '6px 10px',\r\n borderRadius: 6,\r\n border: `1px solid ${open ? '#3b82f6' : '#d1d5db'}`,\r\n backgroundColor: 'transparent',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n opacity: disabled ? 0.5 : 1,\r\n outline: open ? '1px solid #3b82f6' : 'none',\r\n transition: 'border-color 0.15s',\r\n } as const;\r\n\r\n const chipStyle = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: 4,\r\n padding: '2px 8px',\r\n borderRadius: 9999,\r\n fontSize: 12,\r\n fontWeight: 500,\r\n backgroundColor: '#dbeafe',\r\n color: '#1d4ed8',\r\n border: '1px solid #bfdbfe',\r\n };\r\n\r\n const dropdownStyle = {\r\n position: 'absolute',\r\n zIndex: 50,\r\n marginTop: 4,\r\n width: '100%',\r\n maxHeight: 200,\r\n overflowY: 'auto',\r\n borderRadius: 6,\r\n border: '1px solid #e5e7eb',\r\n backgroundColor: '#ffffff',\r\n boxShadow: '0 4px 12px rgba(0,0,0,0.12)',\r\n } as const;\r\n\r\n const inputStyle = {\r\n flex: 1,\r\n minWidth: 120,\r\n fontSize: 14,\r\n backgroundColor: 'transparent',\r\n outline: 'none',\r\n color: '#111827',\r\n border: 'none',\r\n };\r\n\r\n return (\r\n <div ref={containerRef} style={{ position: 'relative' }}>\r\n {/* Trigger */}\r\n <div\r\n style={triggerStyle}\r\n onClick={() => {\r\n if (disabled) return;\r\n setOpen(true);\r\n setTimeout(() => inputRef.current?.focus(), 0);\r\n }}\r\n >\r\n {selected.map(code => (\r\n <span key={code} style={chipStyle}>\r\n {getCountryName(code)} ({code})\r\n {!disabled && (\r\n <button\r\n type=\"button\"\r\n onClick={(e) => { e.stopPropagation(); remove(code); }}\r\n style={{ background: 'none', border: 'none', cursor: 'pointer', padding: 0, color: '#1d4ed8', fontSize: 14, lineHeight: 1 }}\r\n >\r\n ✕\r\n </button>\r\n )}\r\n </span>\r\n ))}\r\n {selected.length === 0 && !open && (\r\n <span style={{ fontSize: 14, color: '#9ca3af' }}>{placeholder}</span>\r\n )}\r\n {open && (\r\n <input\r\n ref={inputRef}\r\n value={search}\r\n onChange={e => setSearch(e.target.value)}\r\n style={inputStyle}\r\n placeholder={placeholder}\r\n onClick={e => e.stopPropagation()}\r\n />\r\n )}\r\n <span style={{ marginLeft: 'auto', flexShrink: 0, fontSize: 12, color: '#9ca3af', transition: 'transform 0.15s', transform: open ? 'rotate(180deg)' : 'none' }}>▼</span>\r\n </div>\r\n\r\n {/* Dropdown */}\r\n {open && (\r\n <div style={dropdownStyle}>\r\n {filtered.length === 0 ? (\r\n <div style={{ padding: '8px 12px', fontSize: 14, color: '#9ca3af' }}>No countries found</div>\r\n ) : (\r\n filtered.map(country => {\r\n const isSelected = selected.includes(country.code);\r\n return (\r\n <button\r\n key={country.code}\r\n type=\"button\"\r\n onClick={() => toggle(country.code)}\r\n style={{\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 8,\r\n padding: '6px 12px',\r\n fontSize: 14,\r\n textAlign: 'left',\r\n border: 'none',\r\n cursor: 'pointer',\r\n transition: 'background-color 0.1s',\r\n backgroundColor: isSelected ? '#eff6ff' : 'transparent',\r\n color: isSelected ? '#1d4ed8' : '#374151',\r\n }}\r\n onMouseEnter={e => { if (!isSelected) (e.currentTarget.style.backgroundColor = '#f9fafb'); }}\r\n onMouseLeave={e => { e.currentTarget.style.backgroundColor = isSelected ? '#eff6ff' : 'transparent'; }}\r\n >\r\n <span style={{\r\n width: 16,\r\n height: 16,\r\n borderRadius: 3,\r\n border: `1px solid ${isSelected ? '#3b82f6' : '#d1d5db'}`,\r\n backgroundColor: isSelected ? '#3b82f6' : 'transparent',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n color: '#ffffff',\r\n fontSize: 10,\r\n }}>\r\n {isSelected && '✓'}\r\n </span>\r\n <span style={{ flex: 1 }}>{country.name}</span>\r\n <span style={{ fontSize: 12, color: '#9ca3af', fontFamily: 'monospace' }}>{country.code}</span>\r\n </button>\r\n );\r\n })\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","// =============================================================================\r\n// CONDITIONS EDITOR — Product search picker\r\n// =============================================================================\r\n// Searches products in the collection via `SL.products.query` (admin endpoint).\r\n// Stores product IDs on the condition, plus a cached `productNames` map so the\r\n// UI can show friendly labels (\"Acme Cabernet (prd_abc123)\") without needing\r\n// to re-fetch on every render.\r\n\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport * as SL from '@proveanything/smartlinks';\r\nimport { Search, X, Loader2 } from 'lucide-react';\r\n\r\ninterface ProductHit {\r\n id: string;\r\n name: string;\r\n sku?: string | null;\r\n}\r\n\r\ninterface ProductPickerProps {\r\n collectionId: string;\r\n selectedIds: string[];\r\n /** Cached id → name map persisted on the condition. */\r\n names?: Record<string, string>;\r\n onChange: (selectedIds: string[], names: Record<string, string>) => void;\r\n disabled?: boolean;\r\n}\r\n\r\nfunction toHit(p: any): ProductHit {\r\n return {\r\n id: p?.id ?? p?.productId ?? '',\r\n name: p?.name ?? p?.id ?? 'Untitled',\r\n sku: p?.sku ?? null,\r\n };\r\n}\r\n\r\nasync function queryProducts(collectionId: string, search: string): Promise<ProductHit[]> {\r\n const body: Record<string, unknown> = {\r\n page: { limit: 25 },\r\n sort: [{ field: 'name', direction: 'asc' }],\r\n };\r\n if (search.trim()) body.query = { search: search.trim() };\r\n\r\n const products: any = (SL as any)?.products ?? (SL as any)?.product;\r\n if (!products) return [];\r\n\r\n try {\r\n if (products.query) {\r\n const res = await products.query(collectionId, body, true);\r\n return (res?.items ?? []).map(toHit);\r\n }\r\n if (products.list) {\r\n const list: any[] = await products.list(collectionId, true);\r\n const term = search.trim().toLowerCase();\r\n const filtered = term\r\n ? list.filter(p => `${p?.name ?? ''} ${p?.sku ?? ''} ${p?.id ?? ''}`.toLowerCase().includes(term))\r\n : list;\r\n return filtered.slice(0, 25).map(toHit);\r\n }\r\n } catch (err) {\r\n // eslint-disable-next-line no-console\r\n console.warn('[ConditionsEditor] product search failed', err);\r\n }\r\n return [];\r\n}\r\n\r\nexport const ProductPicker: React.FC<ProductPickerProps> = ({\r\n collectionId,\r\n selectedIds,\r\n names,\r\n onChange,\r\n disabled,\r\n}) => {\r\n const [search, setSearch] = useState('');\r\n const [results, setResults] = useState<ProductHit[]>([]);\r\n const [loading, setLoading] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n const containerRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const cachedNames = useMemo(() => names ?? {}, [names]);\r\n\r\n // One-time refresh: re-fetch the current name for each selected product on\r\n // mount so chips don't stay stale forever if a product was renamed after the\r\n // condition was first saved. Runs once per mount per id set; failures are\r\n // silently ignored (we keep the cached name as a fallback).\r\n const refreshedRef = useRef<string>('');\r\n useEffect(() => {\r\n if (!collectionId || selectedIds.length === 0) return;\r\n const key = selectedIds.slice().sort().join('|');\r\n if (refreshedRef.current === key) return;\r\n refreshedRef.current = key;\r\n\r\n const products: any = (SL as any)?.products ?? (SL as any)?.product;\r\n if (!products?.get) return;\r\n\r\n let cancelled = false;\r\n (async () => {\r\n const updates: Record<string, string> = {};\r\n await Promise.all(selectedIds.map(async (id) => {\r\n try {\r\n const p = await products.get(collectionId, id, true);\r\n const name = p?.name;\r\n if (name && name !== cachedNames[id]) updates[id] = name;\r\n } catch { /* ignore — keep cached label */ }\r\n }));\r\n if (cancelled || Object.keys(updates).length === 0) return;\r\n onChange(selectedIds, { ...cachedNames, ...updates });\r\n })();\r\n return () => { cancelled = true; };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [collectionId, selectedIds.join('|')]);\r\n\r\n // Debounced search\r\n useEffect(() => {\r\n if (!open) return;\r\n let cancelled = false;\r\n setLoading(true);\r\n const t = window.setTimeout(async () => {\r\n const hits = await queryProducts(collectionId, search);\r\n if (!cancelled) {\r\n setResults(hits);\r\n setLoading(false);\r\n }\r\n }, 200);\r\n return () => { cancelled = true; window.clearTimeout(t); };\r\n }, [search, open, collectionId]);\r\n\r\n // Close on outside click\r\n useEffect(() => {\r\n if (!open) return;\r\n const onDoc = (e: MouseEvent) => {\r\n if (!containerRef.current?.contains(e.target as Node)) setOpen(false);\r\n };\r\n document.addEventListener('mousedown', onDoc);\r\n return () => document.removeEventListener('mousedown', onDoc);\r\n }, [open]);\r\n\r\n const addProduct = (hit: ProductHit) => {\r\n if (selectedIds.includes(hit.id)) return;\r\n const nextNames = { ...cachedNames, [hit.id]: hit.name };\r\n onChange([...selectedIds, hit.id], nextNames);\r\n };\r\n\r\n const removeProduct = (id: string) => {\r\n const nextNames = { ...cachedNames };\r\n delete nextNames[id];\r\n onChange(selectedIds.filter(i => i !== id), nextNames);\r\n };\r\n\r\n return (\r\n <div ref={containerRef} style={{ display: 'flex', flexDirection: 'column', gap: 8 }}>\r\n {/* Selected chips */}\r\n {selectedIds.length > 0 && (\r\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: 6 }}>\r\n {selectedIds.map(id => {\r\n const name = cachedNames[id];\r\n return (\r\n <span\r\n key={id}\r\n title={id}\r\n style={{\r\n display: 'inline-flex', alignItems: 'center', gap: 6,\r\n padding: '4px 4px 4px 10px', fontSize: 12, borderRadius: 9999,\r\n border: '1px solid #93c5fd', backgroundColor: '#dbeafe', color: '#1d4ed8',\r\n }}\r\n >\r\n <span style={{ fontWeight: 500 }}>{name || id}</span>\r\n {name && (\r\n <span style={{ opacity: 0.6, fontSize: 10, fontFamily: 'ui-monospace, monospace' }}>\r\n ({id.length > 12 ? `${id.slice(0, 6)}…${id.slice(-4)}` : id})\r\n </span>\r\n )}\r\n {!disabled && (\r\n <button\r\n type=\"button\"\r\n onClick={() => removeProduct(id)}\r\n style={{\r\n display: 'inline-flex', alignItems: 'center', justifyContent: 'center',\r\n width: 18, height: 18, borderRadius: 9999, border: 'none',\r\n backgroundColor: 'rgba(29,78,216,0.15)', cursor: 'pointer', color: '#1d4ed8',\r\n }}\r\n aria-label={`Remove ${name || id}`}\r\n >\r\n <X size={11} />\r\n </button>\r\n )}\r\n </span>\r\n );\r\n })}\r\n </div>\r\n )}\r\n\r\n {/* Search input */}\r\n {!disabled && (\r\n <div style={{ position: 'relative' }}>\r\n <div style={{\r\n display: 'flex', alignItems: 'center', gap: 6,\r\n padding: '6px 10px', fontSize: 14, borderRadius: 6,\r\n border: '1px solid #d1d5db', backgroundColor: 'transparent',\r\n }}>\r\n <Search size={14} style={{ opacity: 0.5 }} />\r\n <input\r\n type=\"text\"\r\n value={search}\r\n onChange={e => { setSearch(e.target.value); setOpen(true); }}\r\n onFocus={() => setOpen(true)}\r\n placeholder=\"Search products by name, SKU, or ID…\"\r\n style={{\r\n flex: 1, border: 'none', outline: 'none',\r\n backgroundColor: 'transparent', fontSize: 14,\r\n }}\r\n />\r\n {loading && <Loader2 size={14} className=\"animate-spin\" style={{ opacity: 0.5 }} />}\r\n </div>\r\n\r\n {open && (\r\n <div style={{\r\n position: 'absolute', top: 'calc(100% + 4px)', left: 0, right: 0,\r\n zIndex: 20, maxHeight: 280, overflowY: 'auto',\r\n backgroundColor: '#ffffff', border: '1px solid #e5e7eb',\r\n borderRadius: 8, boxShadow: '0 8px 20px rgba(0,0,0,0.08)',\r\n }}>\r\n {results.length === 0 && !loading && (\r\n <div style={{ padding: 12, fontSize: 12, color: '#9ca3af', textAlign: 'center' }}>\r\n {search ? 'No products found' : 'Start typing to search products'}\r\n </div>\r\n )}\r\n {results.map(hit => {\r\n const isSelected = selectedIds.includes(hit.id);\r\n return (\r\n <button\r\n key={hit.id}\r\n type=\"button\"\r\n disabled={isSelected}\r\n onClick={() => { addProduct(hit); setSearch(''); }}\r\n style={{\r\n display: 'flex', alignItems: 'center', justifyContent: 'space-between',\r\n width: '100%', padding: '8px 12px', border: 'none',\r\n borderBottom: '1px solid #f3f4f6',\r\n backgroundColor: isSelected ? '#f9fafb' : 'transparent',\r\n cursor: isSelected ? 'default' : 'pointer', textAlign: 'left',\r\n color: '#111827', fontSize: 13,\r\n opacity: isSelected ? 0.5 : 1,\r\n }}\r\n >\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 2, minWidth: 0 }}>\r\n <span style={{ fontWeight: 500, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>\r\n {hit.name}\r\n </span>\r\n <span style={{ fontSize: 10, color: '#9ca3af', fontFamily: 'ui-monospace, monospace' }}>\r\n {hit.sku ? `${hit.sku} · ` : ''}{hit.id}\r\n </span>\r\n </div>\r\n {isSelected && (\r\n <span style={{ fontSize: 10, color: '#9ca3af', marginLeft: 8 }}>Added</span>\r\n )}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};","// =============================================================================\r\n// CONDITIONS EDITOR — Per-type configuration UI\r\n// =============================================================================\r\n// Uses inline styles for toggle/pill elements to ensure visibility regardless\r\n// of the host app's Tailwind configuration.\r\n\r\nimport React from 'react';\r\nimport type { Condition, ConditionsEditorProps } from './types';\r\nimport { CountryPicker } from './CountryPicker';\r\nimport { ProductPicker } from './ProductPicker';\r\nimport {\r\n DISPLAY_OPTIONS, REGION_OPTIONS, USER_TYPE_OPTIONS,\r\n ITEM_STATUS_OPTIONS, VALUE_OPERATORS, FIELD_TYPES,\r\n} from './conditionMeta';\r\n\r\ninterface ConditionConfigProps {\r\n condition: Condition;\r\n onChange: (updated: Condition) => void;\r\n editorProps: Pick<ConditionsEditorProps, 'versions' | 'tags' | 'products' | 'savedConditions' | 'userGroups' | 'facets' | 'collectionId'>;\r\n readOnly?: boolean;\r\n}\r\n\r\n// Reusable pill-toggle for contains/notContains — uses inline styles\r\nconst ContainsToggle: React.FC<{\r\n value: boolean | undefined;\r\n onChange: (v: boolean) => void;\r\n trueLabel?: string;\r\n falseLabel?: string;\r\n disabled?: boolean;\r\n}> = ({ value = true, onChange, trueLabel = 'Is One Of', falseLabel = 'Is Not One Of', disabled }) => (\r\n <div style={{ display: 'flex', gap: 4, backgroundColor: '#f3f4f6', borderRadius: 6, padding: 4, width: 'fit-content' }}>\r\n {[{ v: true, label: trueLabel }, { v: false, label: falseLabel }].map(opt => (\r\n <button\r\n key={String(opt.v)}\r\n type=\"button\"\r\n onClick={() => onChange(opt.v)}\r\n disabled={disabled}\r\n style={{\r\n padding: '6px 12px',\r\n fontSize: 12,\r\n fontWeight: 600,\r\n borderRadius: 4,\r\n border: 'none',\r\n cursor: disabled ? 'default' : 'pointer',\r\n transition: 'all 0.15s',\r\n ...(value === opt.v\r\n ? { backgroundColor: '#3b82f6', color: '#ffffff', boxShadow: '0 1px 2px rgba(0,0,0,0.1)' }\r\n : { backgroundColor: 'transparent', color: '#6b7280' }\r\n ),\r\n }}\r\n >\r\n {opt.label}\r\n </button>\r\n ))}\r\n </div>\r\n);\r\n\r\n// Toggle switch — uses inline styles\r\nconst ToggleSwitch: React.FC<{\r\n checked: boolean;\r\n onChange: (v: boolean) => void;\r\n label: string;\r\n disabled?: boolean;\r\n}> = ({ checked, onChange, label, disabled }) => (\r\n <label style={{ display: 'inline-flex', alignItems: 'center', gap: 10, fontSize: 12, fontWeight: 500, color: '#4b5563', cursor: 'pointer', userSelect: 'none' }}>\r\n <span\r\n role=\"switch\"\r\n aria-checked={checked}\r\n onClick={() => !disabled && onChange(!checked)}\r\n style={{\r\n display: 'inline-block',\r\n width: 40,\r\n height: 22,\r\n borderRadius: 11,\r\n border: 'none',\r\n cursor: disabled ? 'default' : 'pointer',\r\n position: 'relative',\r\n flexShrink: 0,\r\n transition: 'background-color 0.2s',\r\n backgroundColor: checked ? '#3b82f6' : '#d1d5db',\r\n }}\r\n >\r\n <span style={{\r\n position: 'absolute',\r\n top: 3,\r\n left: checked ? 21 : 3,\r\n width: 16,\r\n height: 16,\r\n borderRadius: '50%',\r\n backgroundColor: '#ffffff',\r\n boxShadow: '0 1px 3px rgba(0,0,0,0.2)',\r\n transition: 'left 0.2s',\r\n }} />\r\n </span>\r\n <span>{label}</span>\r\n </label>\r\n);\r\n\r\n// Multi-select chip picker — uses inline styles\r\nconst ChipSelect: React.FC<{\r\n options: { title: string; value: string; description?: string }[];\r\n selected: string[];\r\n onChange: (values: string[]) => void;\r\n disabled?: boolean;\r\n}> = ({ options, selected, onChange, disabled }) => (\r\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: 6 }}>\r\n {options.map(opt => {\r\n const isSelected = selected.includes(opt.value);\r\n return (\r\n <button\r\n key={opt.value}\r\n type=\"button\"\r\n onClick={() => {\r\n if (disabled) return;\r\n onChange(isSelected ? selected.filter(v => v !== opt.value) : [...selected, opt.value]);\r\n }}\r\n disabled={disabled}\r\n title={opt.description}\r\n style={{\r\n padding: '4px 10px',\r\n fontSize: 12,\r\n borderRadius: 9999,\r\n border: '1px solid',\r\n cursor: disabled ? 'default' : 'pointer',\r\n transition: 'all 0.15s',\r\n ...(isSelected\r\n ? { backgroundColor: '#dbeafe', borderColor: '#93c5fd', color: '#1d4ed8' }\r\n : { backgroundColor: 'transparent', borderColor: '#e5e7eb', color: '#6b7280' }\r\n ),\r\n }}\r\n >\r\n {opt.title}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n);\r\n\r\nconst inputStyle = {\r\n width: '100%',\r\n padding: '6px 10px',\r\n fontSize: 14,\r\n borderRadius: 6,\r\n border: '1px solid #d1d5db',\r\n backgroundColor: 'transparent',\r\n outline: 'none',\r\n};\r\n\r\nconst labelStyle = {\r\n fontSize: 10,\r\n color: '#9ca3af',\r\n marginBottom: 2,\r\n display: 'block',\r\n};\r\n\r\n// Pill group for date/pass-fail style selectors — inline styles\r\nconst PillGroup: React.FC<{\r\n options: { value: string; label: string }[];\r\n selected: string | undefined;\r\n onChange: (v: string) => void;\r\n disabled?: boolean;\r\n}> = ({ options, selected, onChange, disabled }) => (\r\n <div style={{ display: 'flex', gap: 4, backgroundColor: '#f3f4f6', borderRadius: 6, padding: 4, width: 'fit-content' }}>\r\n {options.map(opt => (\r\n <button\r\n key={opt.value}\r\n type=\"button\"\r\n onClick={() => onChange(opt.value)}\r\n disabled={disabled}\r\n style={{\r\n padding: '6px 12px',\r\n fontSize: 12,\r\n fontWeight: 600,\r\n borderRadius: 4,\r\n border: 'none',\r\n cursor: disabled ? 'default' : 'pointer',\r\n transition: 'all 0.15s',\r\n ...(selected === opt.value\r\n ? { backgroundColor: '#3b82f6', color: '#ffffff', boxShadow: '0 1px 2px rgba(0,0,0,0.1)' }\r\n : { backgroundColor: 'transparent', color: '#6b7280' }\r\n ),\r\n }}\r\n >\r\n {opt.label}\r\n </button>\r\n ))}\r\n </div>\r\n);\r\n\r\nexport const ConditionConfig: React.FC<ConditionConfigProps> = ({\r\n condition: cond,\r\n onChange,\r\n editorProps,\r\n readOnly,\r\n}) => {\r\n const update = (patch: Partial<Condition>) => onChange({ ...cond, ...patch });\r\n\r\n switch (cond.type) {\r\n // ─── VERSION ──────────────────────────────────\r\n case 'version':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <ContainsToggle value={cond.contains} onChange={v => update({ contains: v })} disabled={readOnly} />\r\n {editorProps.versions?.length ? (\r\n <ChipSelect\r\n options={editorProps.versions.map(v => ({ title: v.title, value: v.value || '' }))}\r\n selected={(cond.versions || []).map(v => typeof v === 'string' ? v : (v.value || ''))}\r\n onChange={vals => update({ versions: vals.map(v => ({ value: v, title: editorProps.versions?.find(o => o.value === v)?.title || v })) })}\r\n disabled={readOnly}\r\n />\r\n ) : (\r\n <p style={{ fontSize: 12, color: '#9ca3af', fontStyle: 'italic' }}>No versions available</p>\r\n )}\r\n </div>\r\n );\r\n\r\n // ─── COUNTRY ──────────────────────────────────\r\n case 'country':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <ContainsToggle value={cond.contains} onChange={v => update({ contains: v })} disabled={readOnly} />\r\n <ToggleSwitch\r\n checked={!!cond.useRegions}\r\n onChange={v => update({ useRegions: v })}\r\n label=\"Use regions\"\r\n disabled={readOnly}\r\n />\r\n {cond.useRegions ? (\r\n <ChipSelect\r\n options={REGION_OPTIONS}\r\n selected={cond.regions || []}\r\n onChange={vals => update({ regions: vals })}\r\n disabled={readOnly}\r\n />\r\n ) : (\r\n <CountryPicker\r\n selected={cond.countries || []}\r\n onChange={codes => update({ countries: codes })}\r\n disabled={readOnly}\r\n />\r\n )}\r\n </div>\r\n );\r\n\r\n // ─── VALUE ────────────────────────────────────\r\n case 'value':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 8 }}>\r\n <div>\r\n <label style={labelStyle}>Field Name</label>\r\n <input style={inputStyle} value={cond.field || ''} onChange={e => update({ field: e.target.value })} placeholder=\"field_name\" disabled={readOnly} />\r\n </div>\r\n <div>\r\n <label style={labelStyle}>Field Type</label>\r\n <select style={inputStyle} value={cond.fieldType || 'text'} onChange={e => update({ fieldType: e.target.value as any })} disabled={readOnly}>\r\n {FIELD_TYPES.map(ft => <option key={ft.value} value={ft.value}>{ft.title}</option>)}\r\n </select>\r\n </div>\r\n </div>\r\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 8 }}>\r\n <div>\r\n <label style={labelStyle}>Operator</label>\r\n <select style={inputStyle} value={cond.validationType || 'equal'} onChange={e => update({ validationType: e.target.value as any })} disabled={readOnly}>\r\n {VALUE_OPERATORS.map(op => <option key={op.value} value={op.value}>{op.title}</option>)}\r\n </select>\r\n </div>\r\n <div>\r\n <label style={labelStyle}>Value</label>\r\n <input style={inputStyle} value={String(cond.value ?? '')} onChange={e => update({ value: e.target.value })} placeholder=\"value\" disabled={readOnly} />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n\r\n // ─── USER ─────────────────────────────────────\r\n case 'user':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <ChipSelect\r\n options={USER_TYPE_OPTIONS}\r\n selected={cond.userType ? [cond.userType] : []}\r\n onChange={vals => update({ userType: (vals[vals.length - 1] || undefined) as any })}\r\n disabled={readOnly}\r\n />\r\n {cond.userType === 'group' && editorProps.userGroups?.length ? (\r\n <ChipSelect\r\n options={editorProps.userGroups}\r\n selected={cond.groupIds || []}\r\n onChange={vals => update({ groupIds: vals })}\r\n disabled={readOnly}\r\n />\r\n ) : null}\r\n </div>\r\n );\r\n\r\n // ─── DATE ─────────────────────────────────────\r\n case 'date':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <PillGroup\r\n options={[\r\n { value: 'before', label: 'Is Before' },\r\n { value: 'after', label: 'Is After' },\r\n { value: 'between', label: 'Is Between' },\r\n ]}\r\n selected={cond.dateTest}\r\n onChange={v => update({ dateTest: v as any })}\r\n disabled={readOnly}\r\n />\r\n {(cond.dateTest === 'before' || cond.dateTest === 'between') && (\r\n <div>\r\n <label style={labelStyle}>{cond.dateTest === 'between' ? 'Start Date' : 'Before Date'}</label>\r\n <input type=\"date\" style={inputStyle} value={cond.beforeDate || ''} onChange={e => update({ beforeDate: e.target.value })} disabled={readOnly} />\r\n </div>\r\n )}\r\n {(cond.dateTest === 'after' || cond.dateTest === 'between') && (\r\n <div>\r\n <label style={labelStyle}>{cond.dateTest === 'between' ? 'End Date' : 'After Date'}</label>\r\n <input type=\"date\" style={inputStyle} value={cond.afterDate || ''} onChange={e => update({ afterDate: e.target.value })} disabled={readOnly} />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n\r\n // ─── DEVICE ───────────────────────────────────\r\n case 'device':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <ContainsToggle value={cond.contains} onChange={v => update({ contains: v })} disabled={readOnly} />\r\n <ChipSelect\r\n options={DISPLAY_OPTIONS}\r\n selected={cond.displays || []}\r\n onChange={vals => update({ displays: vals })}\r\n disabled={readOnly}\r\n />\r\n </div>\r\n );\r\n\r\n // ─── TAG ──────────────────────────────────────\r\n case 'tag':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <ContainsToggle value={cond.contains} onChange={v => update({ contains: v })} disabled={readOnly} />\r\n {editorProps.tags?.length ? (\r\n <ChipSelect\r\n options={editorProps.tags.map(t => ({ title: t, value: t }))}\r\n selected={cond.tags || []}\r\n onChange={vals => update({ tags: vals })}\r\n disabled={readOnly}\r\n />\r\n ) : (\r\n <input style={inputStyle} value={(cond.tags || []).join(', ')} onChange={e => update({ tags: e.target.value.split(',').map(s => s.trim()).filter(Boolean) })} placeholder=\"tag1, tag2, …\" disabled={readOnly} />\r\n )}\r\n </div>\r\n );\r\n\r\n // ─── FACET ────────────────────────────────────\r\n case 'facet': {\r\n const facets = editorProps.facets || [];\r\n const selectedFacet = facets.find(f => f.key === cond.facetKey);\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <ContainsToggle\r\n value={cond.contains !== false}\r\n onChange={v => update({ contains: v })}\r\n disabled={readOnly}\r\n />\r\n <div>\r\n <label style={labelStyle}>Facet</label>\r\n {facets.length ? (\r\n <select\r\n style={inputStyle}\r\n value={cond.facetKey || ''}\r\n onChange={e => update({ facetKey: e.target.value || undefined, values: [], valueKeys: undefined })}\r\n disabled={readOnly}\r\n >\r\n <option value=\"\">Select a facet…</option>\r\n {facets.map(f => (\r\n <option key={f.key} value={f.key}>\r\n {f.name}{f.cardinality === 'multi' ? ' (multi)' : ''}\r\n </option>\r\n ))}\r\n </select>\r\n ) : (\r\n <p style={{ fontSize: 12, color: '#9ca3af', fontStyle: 'italic' }}>\r\n No facets available for this collection\r\n </p>\r\n )}\r\n </div>\r\n {selectedFacet && (\r\n <div>\r\n <label style={labelStyle}>Value{selectedFacet.cardinality === 'multi' ? 's' : ''}</label>\r\n {selectedFacet.values.length ? (\r\n <ChipSelect\r\n options={selectedFacet.values.map(v => ({\r\n title: v.name,\r\n value: v.key,\r\n description: v.description || undefined,\r\n }))}\r\n selected={cond.values ?? cond.valueKeys ?? []}\r\n onChange={vals => update({ values: vals, valueKeys: undefined })}\r\n disabled={readOnly}\r\n />\r\n ) : (\r\n <p style={{ fontSize: 12, color: '#9ca3af', fontStyle: 'italic' }}>\r\n This facet has no values defined\r\n </p>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n // ─── GEOFENCE ─────────────────────────────────\r\n case 'geofence':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <ContainsToggle value={cond.contains} onChange={v => update({ contains: v })} trueLabel=\"Is Inside Of\" falseLabel=\"Is Outside Of\" disabled={readOnly} />\r\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 8 }}>\r\n {[\r\n { label: 'Latitude 1 (NW)', key: 'lat1' as const },\r\n { label: 'Longitude 1 (NW)', key: 'lng1' as const },\r\n { label: 'Latitude 2 (SE)', key: 'lat2' as const },\r\n { label: 'Longitude 2 (SE)', key: 'lng2' as const },\r\n ].map(f => (\r\n <div key={f.key}>\r\n <label style={labelStyle}>{f.label}</label>\r\n <input\r\n type=\"number\"\r\n step=\"any\"\r\n style={inputStyle}\r\n value={cond[f.key] ?? ''}\r\n onChange={e => update({ [f.key]: e.target.value ? parseFloat(e.target.value) : undefined })}\r\n disabled={readOnly}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n\r\n // ─── PRODUCT ──────────────────────────────────\r\n case 'product':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n <ContainsToggle value={cond.contains} onChange={v => update({ contains: v })} disabled={readOnly} />\r\n {editorProps.collectionId ? (\r\n <ProductPicker\r\n collectionId={editorProps.collectionId}\r\n selectedIds={cond.productIds || []}\r\n names={cond.productNames}\r\n onChange={(ids, names) => update({ productIds: ids, productNames: names })}\r\n disabled={readOnly}\r\n />\r\n ) : editorProps.products?.length ? (\r\n <ChipSelect\r\n options={editorProps.products}\r\n selected={cond.productIds || []}\r\n onChange={vals => update({ productIds: vals })}\r\n disabled={readOnly}\r\n />\r\n ) : (\r\n <input style={inputStyle} value={(cond.productIds || []).join(', ')} onChange={e => update({ productIds: e.target.value.split(',').map(s => s.trim()).filter(Boolean) })} placeholder=\"product-id-1, product-id-2, …\" disabled={readOnly} />\r\n )}\r\n </div>\r\n );\r\n\r\n // ─── ITEM STATUS ──────────────────────────────\r\n case 'itemStatus':\r\n return (\r\n <ChipSelect\r\n options={ITEM_STATUS_OPTIONS}\r\n selected={cond.statusType ? [cond.statusType] : []}\r\n onChange={vals => update({ statusType: (vals[vals.length - 1] || undefined) as any })}\r\n disabled={readOnly}\r\n />\r\n );\r\n\r\n // ─── CONDITION REFERENCE ──────────────────────\r\n case 'condition':\r\n return (\r\n <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\r\n {editorProps.savedConditions?.length ? (\r\n <select style={inputStyle} value={cond.conditionId || ''} onChange={e => update({ conditionId: e.target.value })} disabled={readOnly}>\r\n <option value=\"\">Select a condition…</option>\r\n {editorProps.savedConditions.map(c => <option key={c.value} value={c.value}>{c.title}</option>)}\r\n </select>\r\n ) : (\r\n <input style={inputStyle} value={cond.conditionId || ''} onChange={e => update({ conditionId: e.target.value })} placeholder=\"Condition ID\" disabled={readOnly} />\r\n )}\r\n <PillGroup\r\n options={[\r\n { value: 'true', label: 'Passes' },\r\n { value: 'false', label: 'Fails' },\r\n ]}\r\n selected={cond.passes === true ? 'true' : cond.passes === false ? 'false' : undefined}\r\n onChange={v => update({ passes: v === 'true' })}\r\n disabled={readOnly}\r\n />\r\n </div>\r\n );\r\n\r\n default:\r\n return <p style={{ fontSize: 12, color: '#9ca3af', fontStyle: 'italic' }}>Unknown condition type</p>;\r\n }\r\n};\r\n","// =============================================================================\r\n// CONDITIONS EDITOR — Single Condition Card\r\n// =============================================================================\r\n\r\nimport React, { useState } from 'react';\r\nimport type { Condition, ConditionType, ConditionsEditorProps } from './types';\r\nimport { getConditionMeta, getConditionIcon, getConditionSummary } from './conditionMeta';\r\nimport { ConditionTypePicker } from './ConditionTypePicker';\r\nimport { ConditionConfig } from './ConditionConfig';\r\nimport { cn } from '../../utils/cn';\r\nimport { ChevronDown, ChevronRight, Trash2, RefreshCw } from 'lucide-react';\r\n\r\ninterface ConditionCardProps {\r\n condition: Condition;\r\n index: number;\r\n onChange: (updated: Condition) => void;\r\n onDelete: () => void;\r\n editorProps: Pick<ConditionsEditorProps, 'versions' | 'tags' | 'products' | 'savedConditions' | 'userGroups' | 'facets'>;\r\n readOnly?: boolean;\r\n}\r\n\r\nexport const ConditionCard: React.FC<ConditionCardProps> = ({\r\n condition,\r\n index,\r\n onChange,\r\n onDelete,\r\n editorProps,\r\n readOnly,\r\n}) => {\r\n const [expanded, setExpanded] = useState(!condition.type);\r\n const meta = getConditionMeta(condition.type);\r\n const Icon = getConditionIcon(condition.type);\r\n const summary = getConditionSummary(condition, { savedConditions: editorProps.savedConditions, facets: editorProps.facets });\r\n\r\n const handleSelectType = (type: ConditionType) => {\r\n onChange({ ...condition, type });\r\n setExpanded(true);\r\n };\r\n\r\n return (\r\n <div className=\"rounded-lg border border-gray-200 dark:border-gray-700 shadow-sm transition-shadow hover:shadow-md\">\r\n {/* Header */}\r\n <div\r\n className={cn(\r\n 'flex items-center gap-3 px-4 py-3 cursor-pointer select-none transition-colors',\r\n 'hover:bg-gray-50 dark:hover:bg-gray-800/50'\r\n )}\r\n style={meta ? {\r\n background: `linear-gradient(90deg, ${meta.color}08 0%, transparent 100%)`,\r\n } : undefined}\r\n onClick={() => setExpanded(!expanded)}\r\n >\r\n {/* Icon */}\r\n <div\r\n className=\"w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0\"\r\n style={meta ? { backgroundColor: `${meta.color}18`, color: meta.color } : { backgroundColor: '#e5e7eb' }}\r\n >\r\n <Icon className=\"w-4 h-4\" />\r\n </div>\r\n\r\n {/* Title & summary */}\r\n <div className=\"flex-1 min-w-0\">\r\n <p className=\"text-sm font-medium text-gray-800 dark:text-gray-200 truncate\">\r\n {meta?.title || 'Select Condition Type'}\r\n </p>\r\n <p className=\"text-[11px] text-gray-500 dark:text-gray-400 truncate\">{summary}</p>\r\n </div>\r\n\r\n {/* Actions */}\r\n <div className=\"flex items-center gap-1 flex-shrink-0\">\r\n {condition.type && !readOnly && (\r\n <button\r\n onClick={(e) => { e.stopPropagation(); onChange({ type: null }); }}\r\n className=\"p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors\"\r\n title=\"Change type\"\r\n >\r\n <RefreshCw className=\"w-3.5 h-3.5 text-gray-400\" />\r\n </button>\r\n )}\r\n {!readOnly && (\r\n <button\r\n onClick={(e) => { e.stopPropagation(); onDelete(); }}\r\n className=\"p-1 rounded hover:bg-red-100 dark:hover:bg-red-900/30 transition-colors\"\r\n title=\"Delete\"\r\n >\r\n <Trash2 className=\"w-3.5 h-3.5 text-red-400\" />\r\n </button>\r\n )}\r\n {expanded ? <ChevronDown className=\"w-4 h-4 text-gray-400\" /> : <ChevronRight className=\"w-4 h-4 text-gray-400\" />}\r\n </div>\r\n </div>\r\n\r\n {/* Body */}\r\n {expanded && (\r\n <div className=\"border-t border-gray-100 dark:border-gray-800 px-4 py-3\">\r\n {!condition.type ? (\r\n <ConditionTypePicker onSelect={handleSelectType} />\r\n ) : (\r\n <div className=\"space-y-3\">\r\n {meta?.helpText && (\r\n <p className=\"text-[11px] text-gray-400 dark:text-gray-500 italic\">{meta.helpText}</p>\r\n )}\r\n <ConditionConfig\r\n condition={condition}\r\n onChange={onChange}\r\n editorProps={editorProps}\r\n readOnly={readOnly}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","// =============================================================================\r\n// CONDITIONS EDITOR — Main Component\r\n// =============================================================================\r\n// Supports inline and dialog modes. Dialog mode shows a summary trigger and\r\n// opens a modal with the full editor.\r\n\r\nimport React, { useCallback, useState } from 'react';\r\nimport type { Condition, ConditionGroup, ConditionsEditorProps } from './types';\r\nimport { ConditionCard } from './ConditionCard';\r\nimport { getConditionMeta, getConditionSummary } from './conditionMeta';\r\nimport { useFacets } from './useFacets';\r\nimport { cn } from '../../utils/cn';\r\nimport { Plus, GitBranch, Filter, X, ChevronRight } from 'lucide-react';\r\n\r\n// ---------------------------------------------------------------------------\r\n// Summary badge for dialog trigger\r\n// ---------------------------------------------------------------------------\r\nconst ConditionsSummary: React.FC<{\r\n value: ConditionGroup;\r\n savedConditions?: { title: string; value: string }[];\r\n facets?: import('./types').FacetOption[];\r\n}> = ({ value, savedConditions, facets }) => {\r\n const count = value.conditions.filter(c => c.type).length;\r\n if (count === 0) {\r\n return (\r\n <div className=\"flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400\">\r\n <Filter className=\"w-4 h-4\" />\r\n <span>No conditions set</span>\r\n <ChevronRight className=\"w-4 h-4 ml-auto\" />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"space-y-1\">\r\n <div className=\"flex items-center gap-2 text-xs font-medium text-gray-500 dark:text-gray-400\">\r\n <Filter className=\"w-3.5 h-3.5\" />\r\n {count} condition{count !== 1 ? 's' : ''} · {value.type === 'and' ? 'Match ALL' : 'Match ANY'}\r\n <ChevronRight className=\"w-4 h-4 ml-auto\" />\r\n </div>\r\n <div className=\"flex flex-wrap gap-1.5\">\r\n {value.conditions.filter(c => c.type).slice(0, 5).map((cond, i) => {\r\n const meta = getConditionMeta(cond.type);\r\n return (\r\n <span\r\n key={i}\r\n className=\"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium\"\r\n style={{\r\n backgroundColor: meta ? `${meta.color}15` : '#e5e7eb',\r\n color: meta?.color || '#6b7280',\r\n }}\r\n >\r\n {getConditionSummary(cond, { savedConditions, facets })}\r\n </span>\r\n );\r\n })}\r\n {count > 5 && (\r\n <span className=\"inline-flex items-center px-2 py-0.5 rounded-full text-[11px] font-medium bg-gray-100 dark:bg-gray-800 text-gray-500\">\r\n +{count - 5} more\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n// ---------------------------------------------------------------------------\r\n// Lightweight dialog\r\n// ---------------------------------------------------------------------------\r\nconst EditorDialog: React.FC<{\r\n open: boolean;\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n}> = ({ open, onClose, children }) => {\r\n if (!open) return null;\r\n return (\r\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\r\n <div className=\"absolute inset-0 bg-black/50 backdrop-blur-sm\" onClick={onClose} />\r\n <div className=\"relative z-10 w-full max-w-2xl max-h-[80vh] bg-white dark:bg-gray-900 rounded-xl shadow-2xl border border-gray-200 dark:border-gray-700 flex flex-col overflow-hidden mx-4\">\r\n <div className=\"flex items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700\">\r\n <h3 className=\"text-sm font-semibold text-gray-900 dark:text-gray-100\">\r\n Edit Conditions\r\n </h3>\r\n <button\r\n onClick={onClose}\r\n className=\"p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors\"\r\n >\r\n <X className=\"w-4 h-4 text-gray-500\" />\r\n </button>\r\n </div>\r\n <div className=\"flex-1 overflow-y-auto p-4\">\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n// ---------------------------------------------------------------------------\r\n// Inner editor content (shared by both modes)\r\n// ---------------------------------------------------------------------------\r\nconst ConditionsEditorContent: React.FC<Omit<ConditionsEditorProps, 'mode' | 'trigger' | 'open' | 'onClose'>> = ({\r\n value,\r\n onChange,\r\n isGlobal,\r\n versions,\r\n tags,\r\n products,\r\n savedConditions,\r\n userGroups,\r\n facets,\r\n collectionId,\r\n getFacets,\r\n readOnly = false,\r\n className,\r\n}) => {\r\n const resolvedFacets = useFacets(collectionId, facets, getFacets);\r\n const editorProps = { versions, tags, products, savedConditions, userGroups, facets: resolvedFacets, collectionId };\r\n\r\n const updateCondition = useCallback((index: number, updated: Condition) => {\r\n const next = { ...value, conditions: [...value.conditions] };\r\n next.conditions[index] = updated;\r\n onChange(next);\r\n }, [value, onChange]);\r\n\r\n const deleteCondition = useCallback((index: number) => {\r\n const next = { ...value, conditions: value.conditions.filter((_, i) => i !== index) };\r\n onChange(next);\r\n }, [value, onChange]);\r\n\r\n const addCondition = useCallback(() => {\r\n const next = { ...value, conditions: [...value.conditions, {} as Condition] };\r\n onChange(next);\r\n }, [value, onChange]);\r\n\r\n const toggleLogic = useCallback((logic: 'and' | 'or') => {\r\n onChange({ ...value, type: logic });\r\n }, [value, onChange]);\r\n\r\n return (\r\n <div className={cn('smartlinks-ui-conditions-editor space-y-4', className)}>\r\n {/* Global settings */}\r\n {isGlobal && (\r\n <div className=\"rounded-lg border border-gray-200 dark:border-gray-700 p-4 space-y-3\">\r\n <input\r\n className=\"w-full px-3 py-2 text-sm rounded-md border border-gray-300 dark:border-gray-600 bg-transparent focus:outline-none focus:ring-1 focus:ring-blue-500\"\r\n value={value.title || ''}\r\n onChange={e => onChange({ ...value, title: e.target.value })}\r\n placeholder=\"Condition Title\"\r\n disabled={readOnly}\r\n />\r\n <label className=\"flex items-center gap-2 text-sm text-gray-600 dark:text-gray-400 cursor-pointer\">\r\n <button\r\n onClick={() => onChange({ ...value, disabled: !value.disabled })}\r\n disabled={readOnly}\r\n className={cn(\r\n 'w-9 h-5 rounded-full transition-colors relative',\r\n value.disabled ? 'bg-blue-500' : 'bg-gray-300 dark:bg-gray-600'\r\n )}\r\n >\r\n <span className={cn(\r\n 'absolute top-0.5 w-4 h-4 rounded-full bg-white shadow transition-transform',\r\n value.disabled ? 'translate-x-4' : 'translate-x-0.5'\r\n )} />\r\n </button>\r\n Disabled / Hidden\r\n </label>\r\n </div>\r\n )}\r\n\r\n {/* Logic type toggle */}\r\n <div style={{ borderRadius: 8, border: '1px solid #e5e7eb', padding: 16 }}>\r\n <div style={{ display: 'flex', alignItems: 'center', gap: 6, fontSize: 12, fontWeight: 500, color: '#6b7280', marginBottom: 12 }}>\r\n <GitBranch className=\"w-3.5 h-3.5\" />\r\n Logic Type\r\n </div>\r\n <div style={{ display: 'flex', gap: 4, backgroundColor: '#f3f4f6', borderRadius: 6, padding: 4 }}>\r\n {([{ v: 'and' as const, l: 'Match ALL (AND)' }, { v: 'or' as const, l: 'Match ANY (OR)' }]).map(opt => (\r\n <button\r\n key={opt.v}\r\n type=\"button\"\r\n onClick={() => toggleLogic(opt.v)}\r\n disabled={readOnly}\r\n style={{\r\n flex: 1,\r\n padding: '8px 12px',\r\n fontSize: 14,\r\n fontWeight: 600,\r\n borderRadius: 4,\r\n border: 'none',\r\n cursor: readOnly ? 'default' : 'pointer',\r\n transition: 'all 0.15s',\r\n ...(value.type === opt.v\r\n ? { backgroundColor: '#3b82f6', color: '#ffffff', boxShadow: '0 1px 2px rgba(0,0,0,0.1)' }\r\n : { backgroundColor: 'transparent', color: '#6b7280' }\r\n ),\r\n }}\r\n >\r\n {opt.l}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n {/* Conditions header */}\r\n <div className=\"flex items-center gap-2\">\r\n <p className=\"text-sm font-semibold text-gray-700 dark:text-gray-300\">Conditions</p>\r\n <span className=\"px-2 py-0.5 text-[10px] font-medium rounded-full bg-blue-100 dark:bg-blue-900/40 text-blue-700 dark:text-blue-300\">\r\n {value.conditions.length}\r\n </span>\r\n </div>\r\n\r\n {/* Condition cards */}\r\n <div className=\"space-y-3\">\r\n {value.conditions.map((cond, idx) => (\r\n <ConditionCard\r\n key={idx}\r\n condition={cond}\r\n index={idx}\r\n onChange={(updated) => updateCondition(idx, updated)}\r\n onDelete={() => deleteCondition(idx)}\r\n editorProps={editorProps}\r\n readOnly={readOnly}\r\n />\r\n ))}\r\n </div>\r\n\r\n {/* Add button */}\r\n {!readOnly && (\r\n <button\r\n onClick={addCondition}\r\n className={cn(\r\n 'w-full flex items-center justify-center gap-2 py-3 rounded-lg',\r\n 'border-2 border-dashed border-gray-300 dark:border-gray-600',\r\n 'text-sm text-gray-500 dark:text-gray-400',\r\n 'hover:border-blue-400 dark:hover:border-blue-500 hover:text-blue-500 dark:hover:text-blue-400',\r\n 'transition-colors cursor-pointer'\r\n )}\r\n >\r\n <Plus className=\"w-4 h-4\" />\r\n Add New Condition\r\n </button>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\n// ---------------------------------------------------------------------------\r\n// Public API\r\n// ---------------------------------------------------------------------------\r\nexport const ConditionsEditor: React.FC<ConditionsEditorProps> = (props) => {\r\n const { mode = 'inline', trigger, open: controlledOpen, onClose, value, savedConditions, facets, collectionId, getFacets, className, ...rest } = props;\r\n\r\n const [internalOpen, setInternalOpen] = useState(false);\r\n const isOpen = controlledOpen ?? internalOpen;\r\n\r\n // Resolve facets so the collapsed dialog summary chips can render names too.\r\n const resolvedFacets = useFacets(collectionId, facets, getFacets);\r\n\r\n const handleClose = useCallback(() => {\r\n setInternalOpen(false);\r\n onClose?.();\r\n }, [onClose]);\r\n\r\n // Inline mode — render editor directly\r\n if (mode === 'inline') {\r\n return (\r\n <ConditionsEditorContent\r\n value={value}\r\n savedConditions={savedConditions}\r\n facets={facets}\r\n collectionId={collectionId}\r\n getFacets={getFacets}\r\n className={className}\r\n {...rest}\r\n />\r\n );\r\n }\r\n\r\n // Dialog mode\r\n const triggerElement = trigger || (\r\n <div className={cn(\r\n 'rounded-lg border border-gray-200 dark:border-gray-700 p-3 cursor-pointer',\r\n 'hover:border-gray-300 dark:hover:border-gray-600 transition-colors',\r\n className,\r\n )}>\r\n <ConditionsSummary value={value} savedConditions={savedConditions} facets={resolvedFacets} />\r\n </div>\r\n );\r\n\r\n return (\r\n <>\r\n <span onClick={() => setInternalOpen(true)} className=\"cursor-pointer\">\r\n {triggerElement}\r\n </span>\r\n <EditorDialog open={isOpen} onClose={handleClose}>\r\n <ConditionsEditorContent\r\n value={value}\r\n savedConditions={savedConditions}\r\n facets={facets}\r\n collectionId={collectionId}\r\n getFacets={getFacets}\r\n {...rest}\r\n />\r\n </EditorDialog>\r\n </>\r\n );\r\n};\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import React__default from 'react';
2
- import { d as ConditionsEditorProps } from '../../types-BLqki3Zy.js';
3
- export { C as Condition, a as ConditionGroup, b as ConditionType, c as ConditionTypeMeta, F as FacetOption, e as FacetValueOption, S as SelectOption, V as VersionOption } from '../../types-BLqki3Zy.js';
2
+ import { d as ConditionsEditorProps } from '../../types-CPGCbjgi.js';
3
+ export { C as Condition, a as ConditionGroup, b as ConditionType, c as ConditionTypeMeta, F as FacetOption, e as FacetValueOption, S as SelectOption, V as VersionOption } from '../../types-CPGCbjgi.js';
4
4
 
5
5
  declare const ConditionsEditor: React__default.FC<ConditionsEditorProps>;
6
6
 
@@ -1,4 +1,4 @@
1
- export { ConditionsEditor } from '../../chunk-JNCRSL2H.js';
1
+ export { ConditionsEditor } from '../../chunk-WJTD5HT7.js';
2
2
  import '../../chunk-DH5HG5DW.js';
3
3
  import '../../chunk-5UQQYXCX.js';
4
4
  import '../../chunk-L7FQ52F5.js';
@@ -1,7 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import { FacetRule } from '@proveanything/smartlinks';
3
3
  export { FacetRule, FacetRuleClause } from '@proveanything/smartlinks';
4
- import { F as FacetOption } from '../../types-BLqki3Zy.js';
4
+ import { F as FacetOption } from '../../types-CPGCbjgi.js';
5
5
 
6
6
  interface FacetRuleEditorProps {
7
7
  /** The current rule (controlled). `null` ⇒ no rule yet. */
@@ -1303,16 +1303,27 @@ var useProductBrowse = (args) => {
1303
1303
  };
1304
1304
  };
1305
1305
  var QK4 = ["records-admin", "product-children"];
1306
- var variantToItem = (v) => ({
1307
- id: v.id ?? v.variantId ?? "",
1308
- name: v.name ?? v.label ?? v.id ?? "Untitled variant",
1309
- subtitle: v.sku ?? v.size ?? void 0
1310
- });
1311
- var batchToItem = (b) => ({
1312
- id: b.id ?? b.batchId ?? "",
1313
- name: b.name ?? b.id ?? "Untitled batch",
1314
- subtitle: b.expiryDate?.iso ?? b.expiry ?? b.lotCode ?? void 0
1315
- });
1306
+ var nonEmpty = (s) => {
1307
+ if (typeof s !== "string") return void 0;
1308
+ const t = s.trim();
1309
+ return t.length > 0 ? t : void 0;
1310
+ };
1311
+ var variantToItem = (v) => {
1312
+ const id = v.id ?? v.variantId ?? "";
1313
+ return {
1314
+ id,
1315
+ name: nonEmpty(v.name) ?? nonEmpty(v.label) ?? nonEmpty(id) ?? "Untitled variant",
1316
+ subtitle: v.sku ?? v.size ?? void 0
1317
+ };
1318
+ };
1319
+ var batchToItem = (b) => {
1320
+ const id = b.id ?? b.batchId ?? "";
1321
+ return {
1322
+ id,
1323
+ name: nonEmpty(b.name) ?? nonEmpty(id) ?? "Untitled batch",
1324
+ subtitle: b.expiryDate?.iso ?? b.expiry ?? b.lotCode ?? void 0
1325
+ };
1326
+ };
1316
1327
  var useProductChildren = (args) => {
1317
1328
  const { SL, collectionId, productId, kind, enabled = true } = args;
1318
1329
  const queryClient = useQueryClient();
@@ -8204,7 +8215,9 @@ function CreateRecordChooser({
8204
8215
  secondaryLabel,
8205
8216
  onSecondary,
8206
8217
  tertiaryLabel,
8207
- onTertiary
8218
+ onTertiary,
8219
+ cancelLabel,
8220
+ onCancel
8208
8221
  }) {
8209
8222
  return /* @__PURE__ */ jsx("div", { className: "h-full flex items-center justify-center px-6 py-10", children: /* @__PURE__ */ jsxs("div", { className: "max-w-xl w-full text-center space-y-4", children: [
8210
8223
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
@@ -8265,7 +8278,20 @@ function CreateRecordChooser({
8265
8278
  ]
8266
8279
  }
8267
8280
  )
8268
- ] })
8281
+ ] }),
8282
+ cancelLabel && onCancel && /* @__PURE__ */ jsx("div", { className: "pt-1", children: /* @__PURE__ */ jsxs(
8283
+ "button",
8284
+ {
8285
+ type: "button",
8286
+ onClick: onCancel,
8287
+ className: "ra-btn",
8288
+ "data-variant": "ghost",
8289
+ children: [
8290
+ /* @__PURE__ */ jsx(X, { "aria-hidden": "true", className: "w-4 h-4" }),
8291
+ /* @__PURE__ */ jsx("span", { children: cancelLabel })
8292
+ ]
8293
+ }
8294
+ ) })
8269
8295
  ] }) });
8270
8296
  }
8271
8297
  var RuleGroupEditDialog = ({
@@ -11752,9 +11778,22 @@ function RecordsAdminShellInner(props) {
11752
11778
  ),
11753
11779
  ruleWizardStep === null && !isCollection && !editingScope && activeScope === "product" && !selectedProductId && /* @__PURE__ */ jsx(EmptyState, { title: i18n.emptyTitle, body: i18n.emptyBody }),
11754
11780
  ruleWizardStep === null && isProductTab && selectedProductId && (!isCollection || selectedItemId) && (() => {
11755
- const productName = productLookupItems.find((p) => p.id === selectedProductId)?.name ?? productBrowse.items.find((p) => p.id === selectedProductId)?.name ?? selectedProductId;
11756
- const variantName = drillTab === "variant" && selectedVariantId ? variantChildren.items.find((v) => v.id === selectedVariantId)?.name ?? selectedVariantId : void 0;
11757
- const batchName = drillTab === "batch" && selectedBatchId ? batchChildren.items.find((b) => b.id === selectedBatchId)?.name ?? selectedBatchId : void 0;
11781
+ const pickName = (n, fallback) => {
11782
+ const t = typeof n === "string" ? n.trim() : "";
11783
+ return t.length > 0 ? t : fallback;
11784
+ };
11785
+ const productName = pickName(
11786
+ productLookupItems.find((p) => p.id === selectedProductId)?.name ?? productBrowse.items.find((p) => p.id === selectedProductId)?.name,
11787
+ selectedProductId
11788
+ );
11789
+ const variantName = drillTab === "variant" && selectedVariantId ? pickName(
11790
+ variantChildren.items.find((v) => v.id === selectedVariantId)?.name,
11791
+ selectedVariantId
11792
+ ) : void 0;
11793
+ const batchName = drillTab === "batch" && selectedBatchId ? pickName(
11794
+ batchChildren.items.find((b) => b.id === selectedBatchId)?.name,
11795
+ selectedBatchId
11796
+ ) : void 0;
11758
11797
  const targetKind = variantName ? "variant" : batchName ? "batch" : "product";
11759
11798
  const targetName = variantName ?? batchName ?? productName;
11760
11799
  const pasteEntry = wizardClipboard.entry;
@@ -11803,7 +11842,13 @@ function RecordsAdminShellInner(props) {
11803
11842
  secondaryLabel: singletonGlobalSeedAvailable ? "Copy from global" : void 0,
11804
11843
  onSecondary: singletonGlobalSeedAvailable ? () => onCreateProductRecord("global") : void 0,
11805
11844
  tertiaryLabel: pasteEntry ? pasteSourceLabel ? `Paste from ${pasteSourceLabel}` : "Paste from clipboard" : void 0,
11806
- onTertiary: pasteEntry ? () => onCreateProductRecord("paste") : void 0
11845
+ onTertiary: pasteEntry ? () => onCreateProductRecord("paste") : void 0,
11846
+ cancelLabel: "Cancel",
11847
+ onCancel: () => {
11848
+ if (drillTab === "variant") setSelectedVariantId(void 0);
11849
+ else if (drillTab === "batch") setSelectedBatchId(void 0);
11850
+ else setSelectedProductId(void 0);
11851
+ }
11807
11852
  }
11808
11853
  ) : editingTargetScope ? renderEditorWithPreview() : /* @__PURE__ */ jsx(
11809
11854
  EmptyState,