All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.dist.Input.js.map Maven / Gradle / Ivy

The newest version!
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../src/Input.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AAErE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAEvF,aAAa;AACb,OAAO,SAAS,MAAM,6DAA6D,CAAC;AAEpF,OAAO,EACN,OAAO,EACP,SAAS,GACT,MAAM,wCAAwC,CAAC;AAChD,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,MAAM,EACN,KAAK,GACL,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,mEAAmE,CAAC;AAE/F,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,gBAAgB,MAAM,uDAAuD,CAAC;AACrF,OAAO,0CAA0C,CAAC;AAClD,OAAO,+CAA+C,CAAC;AACvD,OAAO,wCAAwC,CAAC;AAChD,OAAO,wCAAwC,CAAC;AAChD,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AAKtD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,YAAY;AACZ,OAAO,aAAa,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EACN,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,SAAS;AACT,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAC3F,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAC/E,OAAO,cAAc,MAAM,uCAAuC,CAAC;AAEnE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAmCvD,sBAAsB;AACtB,IAAK,YAIJ;AAJD,WAAK,YAAY;IAChB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,qDAAqC,CAAA;AACtC,CAAC,EAJI,YAAY,KAAZ,YAAY,QAIhB;AAED,wBAAwB;AACxB,IAAK,aAGJ;AAHD,WAAK,aAAa;IACjB,uCAAsB,CAAA;IACtB,4CAA2B,CAAA;AAC5B,CAAC,EAHI,aAAa,KAAb,aAAa,QAGjB;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAiGH,IAAM,KAAK,aAAX,MAAM,KAAM,SAAQ,UAAU;IAyS7B,IAAI,mBAAmB;QACtB,OAAO,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,yBAAyB;QAC5B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,YAAY;QACf,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;QACC,KAAK,EAAE,CAAC;QA7TT;;;;;;WAMG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;;;;;WAQG;QAEH,cAAS,GAAG,KAAK,CAAC;QAWlB;;;;;;;WAOG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;;WAKG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;;;;WAKG;QAEH,gBAAW,GAAG,KAAK,CAAC;QAEpB;;;;;;;;;;;WAWG;QAEH,SAAI,GAAmB,MAAM,CAAC;QAE9B;;;;;;;;WAQG;QAEH,UAAK,GAAG,EAAE,CAAC;QAEX;;;;;;WAMG;QAEH,gBAAW,GAAG,EAAE,CAAC;QAEjB;;;;WAIG;QAEH,eAAU,GAAoB,MAAM,CAAC;QAYrC;;;;;;;WAOG;QAEH,oBAAe,GAAG,KAAK,CAAC;QA+BxB;;;;;WAKG;QAEH,kBAAa,GAAG,KAAK,CAAC;QAEtB;;;;;;;WAOG;QAEH,SAAI,GAAG,KAAK,CAAC;QAEb;;;;;WAKG;QAEH,4BAAuB,GAAG,KAAK,CAAC;QAEhC;;WAEG;QAEH,YAAO,GAAG,KAAK,CAAC;QAGhB,mBAAc,GAAG,KAAK,CAAC;QAEvB;;;WAGG;QAEH,yBAAoB,GAAG,KAAK,CAAC;QAG7B,kBAAa,GAAY,EAAE,CAAC;QAG5B,2BAAsB,GAA0B,EAAE,CAAC;QASnD,sBAAiB,GAAG,KAAK,CAAC;QAyGzB,iDAAiD;QACjD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAEvC,mFAAmF;QACnF,4CAA4C;QAC5C,yEAAyE;QACzE,+EAA+E;QAC/E,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QAEnC,gFAAgF;QAChF,8EAA8E;QAC9E,gDAAgD;QAChD,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC;QAEpC,+FAA+F;QAC/F,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,2DAA2D;QAC3D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,sBAAsB;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,oDAAoD;QACpD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAE7B,oEAAoE;QACpE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,6EAA6E;QAC7E,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;QAE3C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,UAAU;QACT,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtD,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,SAAS;QACR,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxD,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,wBAAwB,CAAC,IAAoB;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC5I,CAAC;IAED,YAAY,CAAC,IAA0B;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;IACvD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;SAC9B;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjC,IAAI,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE;oBAC7C,IAAI,CAAC,wBAAwB,CAAC,IAAsB,CAAC,CAAC;iBACtD;qBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;oBACnC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE;wBAChC,IAAI,CAAC,wBAAwB,CAAC,UAA4B,CAAC,CAAC;oBAC7D,CAAC,CAAC,CAAC;iBACH;YACF,CAAC,CAAC,CAAC;SACH;QAED,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAE3F,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACjF,IAAI,IAAI,CAAC,kCAAkC,EAAE;YAC5C,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC7B;aAAM;YACN,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC9B;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QAEzD,IAAI,iBAAiB,EAAE;YACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SAClB;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1B,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SAChF;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE7C,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE;YAC1B,OAAO;SACP;QAED,MAAM,kBAAkB,GAAG,UAAU,CAAC,YAAa,GAAG,UAAU,CAAC,cAAe,CAAC;QAEjF,sEAAsE;QACtE,8EAA8E;QAC9E,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,IAAI,EAAE;gBACT,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC5B;SACD;IACF,CAAC;IAED,gBAAgB;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAG,CAAC;QAE9C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;SACnD;QAED,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC/B,yEAAyE;YACzE,yFAAyF;YACzF,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;gBAC1C,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;aACpC;YAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAClD,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC1E;YAED,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;YACZ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACzB;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;SACzB;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC7B;QAED,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAC/B;QAED,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACb,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAC1B;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;SAC5B;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,8BAA8B,EAAE,CAAC;SACtC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;SAClD;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,CAAgB;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACzB;IACF,CAAC;IAED,WAAW,CAAC,CAAgB;QAC3B,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC3B;IACF,CAAC;IAED,YAAY,CAAC,CAAgB;QAC5B,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAC5B;IACF,CAAC;IAED,UAAU;QACT,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SACzB;IACF,CAAC;IAED,YAAY,CAAC,CAAgB;QAC5B,4CAA4C;QAC5C,MAAM,qBAAqB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAG,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtD,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,EAAE;YACjB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;YAEzC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,qBAAqB,EAAE;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aAClB;SACD;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtE,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACnE;QAED,IAAI,CAAC,qBAAqB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC;YAErC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;gBACzB,UAAU,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,OAAO;SACP;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,CAAgB;QAC7B,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC/B,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC9B;aAAM;YACN,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;IACF,CAAC;IAED,eAAe,CAAC,CAAgB;QAC/B,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC/B,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;SAChC;aAAM;YACN,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;IACF,CAAC;IAED,WAAW,CAAC,CAAgB;QAC3B,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC/B,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;SAC5B;IACF,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC/B,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;IACF,CAAC;IAED,aAAa;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAClE,MAAM,MAAM,GAAG,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAG,CAAC;QAC9C,MAAM,eAAe,GAAG,UAAU,CAAC,YAAa,GAAG,UAAU,CAAC,cAAe,GAAG,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,MAAM,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;YACpF,OAAO;SACP;QAED,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE;YAClD,qBAAqB;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,yBAAyB,CAAC;YAEjE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,OAAO;SACP;QAED,IAAI,eAAe,EAAE;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACpB;IACF,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,wBAAwB;QAE7C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;SAChC;QAED,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAO,YAAY,CAAC,CAAC;QAC3F,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,YAAY,KAAsB,CAAC;IAEnC,WAAW,CAAC,CAAa;QACxB,MAAM,WAAW,GAAG,CAAC,CAAC,aAA4B,CAAC;QAEnD,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE;YACzK,OAAO;SACP;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,wBAAwB;QAE9C,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACxD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,8BAA8B;QAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC/C,OAAO;SACP;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAEvC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,MAAM;QACL,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;YACpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED,aAAa;QACZ,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,OAAO;SACP;QAED,MAAM,UAAU,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,kBAAkB,EAAG,CAAC,KAAK,EAAE;YAC5D,4FAA4F;YAC5F,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAK,IAAuB,CAAC,QAAQ,CAAC,EAAE;gBAC1J,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC7B;iBAAM;gBACN,UAAU,EAAE,CAAC;aACb;SACD;IACF,CAAC;IAED,MAAM;QACL,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAmB,YAAY,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAC/B;IACF,CAAC;IAED,cAAc;QACb,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,CAAsC;QAC7C,IAAI,CAAC,SAAS,CAAmC,mBAAmB,EAAE;YACrE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;YAC7B,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;SACnC,CAAC,CAAC;IACJ,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,CAA6C;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,MAAM,4BAA4B,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC;QAC5F,MAAM,SAAS,GAAY,CAAgB,CAAC,SAAS;eAChD,CAAC,CAAC,MAA2B,CAAC,SAAS;eACxC,EAAE,CAAC;QACP,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,MAAM,iBAAiB,GAAG;YACzB,oBAAoB;YACpB,mBAAmB;YACnB,wBAAwB;YACxB,uBAAuB;YACvB,sBAAsB;YACtB,wBAAwB;YACxB,uBAAuB;YACvB,cAAc;YACd,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,sBAAsB;YACtB,aAAa;SACb,CAAC;QAEF,IAAI,CAAC,mBAAmB,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAEvF,IAAI,CAAC,YAAY,UAAU,EAAE;YAC5B,2CAA2C;YAC3C,2CAA2C;YAE3C,0DAA0D;YAC1D,yDAAyD;YACzD,qFAAqF;YAErF,2BAA2B;YAC3B,mHAAmH;YACnH,oIAAoI;YACpI,wIAAwI;YACxI,0HAA0H;YAC1H,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY;mBACnC,CAAC,CAAC,CAAC,SAAS,KAAK,sBAAsB,IAAI,CAAC,CAAC,SAAS,KAAK,uBAAuB,CAAC;mBACnF,CAAE,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;mBACnD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE7B,8DAA8D;YAC9D,MAAM,aAAa,GAAG,4BAA4B,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;YAErE,yDAAyD;YACzD,yEAAyE;YACzE,MAAM,gBAAgB,GAAG,4BAA4B;mBACjD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;mBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;mBACvB,CAAC,CAAC,CAAC,SAAS,KAAK,sBAAsB,IAAI,CAAC,CAAC,SAAS,KAAK,uBAAuB,CAAC,CAAC;YAExF,IAAI,aAAa,IAAI,aAAa,IAAI,gBAAgB,EAAE;gBACvD,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;gBAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC5B;YACD,2CAA2C;SAC3C;QAED,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,iEAAiE;YACjE,CAAC,CAAC,wBAAwB,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,EAAE,CAAe,CAAC,CAAC;QAEpE,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,wBAAwB,CAAC,GAAW;QACnC,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,qBAAqB,CAAC,OAAe;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC/B,OAAO;SACP;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtG,IAAI,aAAa,CAAC,MAAM,EAAE;YACzB,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;SACxB;IACF,CAAC;IAED,sBAAsB,CAAC,CAA8C;QACpE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,IAAoC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAElC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,4BAA4B;QAC3B,IAAI,CAAC,sBAAsB,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,yBAAyB,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,YAAY;QACX,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,gBAAgB;QACf,wCAAwC;QACxC,IAAI,OAAO,EAAE,EAAE;YACd,CAAC,IAAI,CAAC,cAAc,EAAE,CAAE,CAAC,KAAK,EAAE,CAAC;SACjC;QAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC/B,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,qDAAqD;QACrD,IAAI,OAAO,EAAE,EAAE;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACrB;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,IAAI,CAAC,yBAAyB,EAAE;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;SACb;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,sBAAsB;QACrB,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB;QACtB,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB;QACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,sBAAsB;QACrB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,kCAAkC;QACjC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAU,eAAe,CAAE,CAAC;IAClE,CAAC;IAED,iBAAiB;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACP;QAED,MAAM,WAAW,GAAG,mBAAmB,CAA0B,kBAAkB,CAAC,CAAC;QACrF,IAAI,WAAW,EAAE;YAChB,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;SACzE;IACF,CAAC;IAED,gBAAgB,CAAC,IAAoC,EAAE,YAAqB;QAC3E,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO;SACP;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,YAAY;YAC9B,CAAC,CAAC,IAAI,CAAC,wBAAwB,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;QAEnE,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QAEtB,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,EAAE;YACpD,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC;YACzC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;YAEnC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAElC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEpC,iDAAiD;YACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;SAChC;QAED,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC;QAEpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,IAA0B;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAE,IAAuC,CAAC,IAAI,CAAC;QAE3H,IAAI,CAAC,KAAK,GAAG,SAAS,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,iBAAiB,CAAC,MAAqB,EAAE,CAAa;QACrD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,OAAO;SACP;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,KAAK,aAAa,CAAC,YAAY,CAAC;QAE1D,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC;QAE5C,IAAI,WAAW,EAAE,EAAE,QAAQ;YAC1B,IAAI,CAAC,SAAS,CAAmB,YAAY,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACjF,+BAA+B;YAC/B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,EAAE,CAAC;SAChC;IACF,CAAC;IAED,aAAa;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAI,MAAM,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAE,CAAC,KAAK,CAAC;SACtC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED,cAAc;QACb,IAAI,OAAO,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;YAClC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAG,CAAC,aAAa,CAAQ,wBAAwB,CAAE,CAAC;SACtF;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,kBAAkB;QACjB,IAAI,OAAO,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;YAChD,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAE,CAAC,UAAW,CAAC,aAAa,CAAmB,OAAO,CAAE,CAAC;SACpI;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAmB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,uBAAuB;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,OAAO,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,CAAa;QAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,cAA8C,EAAE,YAAqB;QACnF,MAAM,yBAAyB,GAAG,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI,CAAC,wBAAwB,KAAK,cAAc,CAAC,IAAI,CAAC;QAErI,IAAI,yBAAyB,EAAE;YAC9B,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,0BAA0B,CAAC,CAAwC;QAClE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,IAA0B;QACtC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,eAAe,CAAuB,iBAAiB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnF,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAA0C,CAAC;IAC7G,CAAC;IAED,IAAI,sBAAsB;QACzB,OAAO;YACN,UAAU,EAAE,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;YAC9D,aAAa,EAAE,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC;YACrE,UAAU,EAAE,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC;YAC5D,UAAU,EAAE,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC;SAC9D,CAAC;IACH,CAAC;IAED,sBAAsB;QACrB,OAAO;YACN,UAAU,EAAE,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACzD,aAAa,EAAE,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC;YAChE,UAAU,EAAE,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACvD,UAAU,EAAE,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC;SACzD,CAAC;IACH,CAAC;IAED,oBAAoB;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,gBAAgB,CAAE,CAAC;QAExE,IAAI,aAAa,EAAE;YAClB,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC;SACvD;IACF,CAAC;IAED,mBAAmB,CAAC,IAAiC,EAAE,sBAA+B;QACrF,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,SAAS,CAAkC,YAAY,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACzF,IAAI,CAAC,6BAA6B,GAAG,sBAAsB,CAAC;SAC5D;IACF,CAAC;IAED,wBAAwB;QACvB,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACvC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACtC;IACF,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxC,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,WAAW;QACd,OAAO,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,OAAO;QACV,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,CAAC;QAE7N,MAAM,IAAI,GAAG;YACZ,OAAO,EAAE;gBACR,qBAAqB,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,IAAI,SAAS,CAAC;gBAClG,iBAAiB,EAAE,eAAe,IAAI,SAAS;gBAC/C,aAAa,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC3E,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB;gBACvG,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB;gBACvH,MAAM,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI;gBACrD,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY;gBACrE,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY;gBACrE,iBAAiB,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe;gBAC3E,WAAW,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,sBAAsB,IAAI,SAAS;aACtK;SACD,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACtE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACtE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SACnF,CAAC;IACH,CAAC;IAED,IAAI,wBAAwB;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,OAAO;SACP;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3G,IAAI,IAAI,CAAC,qCAAqC,EAAE;YAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;SACjF;QAED,OAAO,GAAG,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,IAAI,UAAU;QACb,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,iBAAiB,GAAG,cAAc,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,OAAO,EAAE;gBACR,yBAAyB,EAAE,IAAI,CAAC,eAAe;gBAC/C,2CAA2C,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,oBAAoB;gBAC/G,qCAAqC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,oBAAoB;aAC1G;YACD,iBAAiB,EAAE;gBAClB,4BAA4B,EAAE,IAAI;gBAClC,8BAA8B,EAAE,IAAI;gBACpC,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACzE,8BAA8B,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACvE,gCAAgC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;gBACzE,oCAAoC,EAAE,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW;aAChF;SACD,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACT,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QAElF,MAAM,YAAY,GAAG;YACpB,aAAa,EAAE;gBACd,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE;aAC5D;YACD,uBAAuB,EAAE;gBACxB,SAAS,EAAE,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;gBAC1D,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;aACtD;YACD,kBAAkB,EAAE;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC5D,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO;aAC1G;YACD,UAAU,EAAE;gBACX,SAAS,EAAE,EAAE;aACb;SACD,CAAC;QAEF,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,kCAAkC;QACrC,OAAO,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;IAClF,CAAC;IAED,IAAI,qCAAqC;QACxC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC;IACpE,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;eAChE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,+EAA+E;mBACvG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,2CAA2C;IACzF,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzG,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,yBAAyB;QAC5B,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE;YACzE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAE5C,QAAQ,aAAa,CAAC,MAAM,EAAE;gBAC9B,KAAK,CAAC;oBACL,OAAO,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;gBAE3D,KAAK,CAAC;oBACL,OAAO,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBAE5D;oBACC,OAAO,OAAK,CAAC,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;aACnF;SACD;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,oBAAoB;QACvB,MAAM,iBAAiB,GAAG;YACzB,QAAQ,EAAE,stBAAstB;YAChuB,QAAQ,EAAE,ipBAAipB;YAC3pB,QAAQ,EAAE,mhBAAmhB;YAC7hB,WAAW,EAAE,weAAwe;SACrf,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE;YACxC,OAAO;;MAEJ,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;;IAEpC,CAAC;SACF;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,iCAAiC;QACpC,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,IAAI,2BAA2B;QAC9B,MAAM,iBAAiB,GAAG;YACzB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,aAAa;YACvB,WAAW,EAAE,aAAa;SAC1B,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACf,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAY,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,GAAkB;QAClC,gBAAgB,CAAC,IAAI,CAAC,WAAY,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,KAAa;QACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1C;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1C;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ;QACpB,OAAK,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC9D,CAAC;CACD,CAAA;AAj3CA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCACX;AAYjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACV;AASlB;IADC,QAAQ,EAAE;0CACU;AAWrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCACX;AASjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCACX;AASjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACR;AAepB;IADC,QAAQ,EAAE;mCACmB;AAY9B;IADC,QAAQ,EAAE;oCACA;AAUX;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;0CACf;AAQjB;IADC,QAAQ,EAAE;yCAC0B;AAUrC;IADC,QAAQ,EAAE;mCACG;AAWd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACJ;AAWxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACR;AASnB;IADC,QAAQ,EAAE;6CACa;AASxB;IADC,QAAQ,EAAE;gDACgB;AAS3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACN;AAWtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mCACf;AASb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACI;AAMhC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sCACZ;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACL;AAOvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACC;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACC;AAG5B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACwB;AAGnD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACN;AAGrB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCACP;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gDACrB;AAO1B;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;qDACA;AAOhC;IADC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;wDACG;AAkBnC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;8CACC;AAO9C;IADC,IAAI,EAAE;mCACa;AAoBpB;IAJC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,uBAAuB,EAAE,IAAI;KAC7B,CAAC;gDACqC;AAjRlC,KAAK;IAhGV,aAAa,CAAC;QACd,GAAG,EAAE,WAAW;QAChB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE;YACP,WAAW;YACX,0BAA0B;YAC1B,oBAAoB;YACpB,cAAc;SACd;QACD,QAAQ,EAAE,CAAC,kBAAkB,CAAC;QAC9B,IAAI,YAAY;YACf,MAAM,WAAW,GAAG,mBAAmB,CAA0B,kBAAkB,CAAC,CAAC;YACrF,OAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAA8B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7H,CAAC;KACD,CAAC;IAEF;;;OAGG;;IACF,KAAK,CAAC,QAAQ,CAAC;IAEhB;;;;OAIG;;IACF,KAAK,CAAC,OAAO,CAAC;IAEf;;;;;OAKG;;IACF,KAAK,CAAC,QAAQ,CAAC;IAEhB;;;;;;OAMG;;IACF,KAAK,CAAkC,kBAAkB,EAAE;QAC3D,MAAM,EAAE;YACP;;cAEG;YACH,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;KACD,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,YAAY,CAAC;IAEpB;;;;;;OAMG;;IACF,KAAK,CAAmC,mBAAmB,EAAE;QAC7D,MAAM,EAAE;YACP;;cAEG;YACH,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YAC3B;;cAEG;YACH,eAAe,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SACtC;KACD,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAAC,MAAM,CAAC;IAEd;;;;OAIG;;IACF,KAAK,CAAC,OAAO,CAAC;GACT,KAAK,CA03CV;AAED,KAAK,CAAC,MAAM,EAAE,CAAC;AAEf,eAAe,KAAK,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\n// @ts-ignore\nimport encodeXML from \"@ui5/webcomponents-base/dist/sap/base/security/encodeXML.js\";\n\nimport {\n\tisPhone,\n\tisAndroid,\n} from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getComponentFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisSpace,\n\tisEnter,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisTabNext,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tgetAssociatedLabelForTexts,\n\tgetAllAccessibleNameRefTexts,\n\tregisterUI5Element,\n\tderegisterUI5Element,\n} from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport { getCaretPosition, setCaretPosition } from \"@ui5/webcomponents-base/dist/util/Caret.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/not-editable.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\nimport \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport \"@ui5/webcomponents-icons/dist/information.js\";\nimport type SuggestionItem from \"./SuggestionItem.js\";\nimport type { SuggestionComponent } from \"./features/InputSuggestions.js\";\nimport type InputSuggestions from \"./features/InputSuggestions.js\";\nimport type { PopupScrollEventDetail } from \"./Popup.js\";\nimport InputType from \"./types/InputType.js\";\nimport Popover from \"./Popover.js\";\nimport Icon from \"./Icon.js\";\nimport type { IIcon } from \"./Icon.js\";\nimport type PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\n// Templates\nimport InputTemplate from \"./generated/templates/InputTemplate.lit.js\";\nimport { StartsWith } from \"./Filters.js\";\n\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_TYPE_SUCCESS,\n\tVALUE_STATE_TYPE_INFORMATION,\n\tVALUE_STATE_TYPE_ERROR,\n\tVALUE_STATE_TYPE_WARNING,\n\tINPUT_SUGGESTIONS,\n\tINPUT_SUGGESTIONS_TITLE,\n\tINPUT_SUGGESTIONS_ONE_HIT,\n\tINPUT_SUGGESTIONS_MORE_HITS,\n\tINPUT_SUGGESTIONS_NO_HIT,\n\tINPUT_CLEAR_ICON_ACC_NAME,\n\tINPUT_AVALIABLE_VALUES,\n\tFORM_TEXTFIELD_REQUIRED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport inputStyles from \"./generated/themes/Input.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\nimport ValueStateMessageCss from \"./generated/themes/ValueStateMessage.css.js\";\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\nimport type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from \"./List.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\n\n/**\n * Interface for components that represent a suggestion item, usable in `ui5-input`\n * @public\n */\ninterface IInputSuggestionItem extends UI5Element {\n\tfocused: boolean;\n\tadditionalText?: string;\n\titems?: IInputSuggestionItem[];\n}\n\ninterface IInputSuggestionItemSelectable extends IInputSuggestionItem {\n\ttext?: string;\n\tselected: boolean;\n}\n\ntype NativeInputAttributes = {\n\tmin?: number,\n\tmax?: number,\n\tstep?: number\n}\n\ntype AccInfo = {\n\tariaRoledescription?: string,\n\tariaDescribedBy?: string,\n\tariaHasPopup?: string,\n\tariaAutoComplete?: string,\n\trole?: string,\n\tariaControls?: string,\n\tariaExpanded?: string,\n\tariaDescription?: string,\n\tariaLabel?: string,\n}\n\n// all sementic events\nenum INPUT_EVENTS {\n\tCHANGE = \"change\",\n\tINPUT = \"input\",\n\tSELECTION_CHANGE = \"selection-change\",\n}\n\n// all user interactions\nenum INPUT_ACTIONS {\n\tACTION_ENTER = \"enter\",\n\tACTION_USER_INPUT = \"input\",\n}\n\ntype InputEventDetail = {\n\tinputType: string;\n}\n\ntype InputSelectionChangeEventDetail = {\n\titem: IInputSuggestionItem | null;\n}\n\ntype InputSuggestionScrollEventDetail = {\n\tscrollTop: number;\n\tscrollContainer: HTMLElement;\n}\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-input` component allows the user to enter and edit text or numeric values in one line.\n *\n * Additionally, you can provide `suggestionItems`,\n * that are displayed in a popover right under the input.\n *\n * The text field can be editable or read-only (`readonly` property),\n * and it can be enabled or disabled (`disabled` property).\n * To visualize semantic states, such as \"Negative\" or \"Critical\", the `valueState` property is provided.\n * When the user makes changes to the text, the change event is fired,\n * which enables you to react on any text change.\n *\n * **Note:** If you are using the `ui5-input` as a single npm module,\n * don't forget to import the `InputSuggestions` module from\n * \"@ui5/webcomponents/dist/features/InputSuggestions.js\"\n * to enable the suggestions functionality.\n *\n * ### Keyboard Handling\n * The `ui5-input` provides the following keyboard shortcuts:\n *\n * - [Escape] - Closes the suggestion list, if open. If closed or not enabled, cancels changes and reverts to the value which the Input field had when it got the focus.\n * - [Enter] or [Return] - If suggestion list is open takes over the current matching item and closes it. If value state or group header is focused, does nothing.\n * - [Down] - Focuses the next matching item in the suggestion list. Selection-change event is fired.\n * - [Up] - Focuses the previous matching item in the suggestion list. Selection-change event is fired.\n * - [Home] - If focus is in the text input, moves caret before the first character. If focus is in the list, highlights the first item and updates the input accordingly.\n * - [End] - If focus is in the text input, moves caret after the last character. If focus is in the list, highlights the last item and updates the input accordingly.\n * - [Page Up] - If focus is in the list, moves highlight up by page size (10 items by default). If focus is in the input, does nothing.\n * - [Page Down] - If focus is in the list, moves highlight down by page size (10 items by default). If focus is in the input, does nothing.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Input.js\";`\n *\n * `import \"@ui5/webcomponents/dist/features/InputSuggestions.js\";` (optional - for input suggestions support)\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n\ttag: \"ui5-input\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: litRender,\n\ttemplate: InputTemplate,\n\tstyles: [\n\t\tinputStyles,\n\t\tResponsivePopoverCommonCss,\n\t\tValueStateMessageCss,\n\t\tSuggestionsCss,\n\t],\n\tfeatures: [\"InputSuggestions\"],\n\tget dependencies() {\n\t\tconst Suggestions = getComponentFeature(\"InputSuggestions\");\n\t\treturn ([Popover, ResponsivePopover, Icon] as Array).concat(Suggestions ? Suggestions.dependencies : []);\n\t},\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\")\n\n/**\n * Fired when the value of the component changes at each keystroke,\n * and when a suggestion item has been selected.\n * @public\n */\n@event(\"input\")\n\n/**\n * Fired when some text has been selected.\n *\n * @since 2.0.0\n * @public\n */\n@event(\"select\")\n\n/**\n * Fired when the user navigates to a suggestion item via the ARROW keys,\n * as a preview, before the final selection.\n * @param {HTMLElement} item The previewed suggestion item.\n * @public\n * @since 2.0.0\n */\n@event(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t \t* @public\n\t \t*/\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fires when a suggestion item is autocompleted in the input.\n *\n * @private\n */\n@event(\"type-ahead\")\n\n/**\n * Fired when the user scrolls the suggestion popover.\n * @param {Integer} scrollTop The current scroll position.\n * @param {HTMLElement} scrollContainer The scroll container.\n * @protected\n * @since 1.0.0-rc.8\n */\n@event(\"suggestion-scroll\", {\n\tdetail: {\n\t\t/**\n\t \t* @public\n\t \t*/\n\t\tscrollTop: { type: Number },\n\t\t/**\n\t \t* @public\n\t \t*/\n\t\tscrollContainer: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the suggestions picker is open.\n * @public\n * @since 2.0.0\n */\n@event(\"open\")\n\n/**\n * Fired when the suggestions picker is closed.\n * @public\n * @since 2.0.0\n */\n@event(\"close\")\nclass Input extends UI5Element implements SuggestionComponent, IFormInputElement {\n\t/**\n\t * Defines whether the component is in disabled state.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines if characters within the suggestions are to be highlighted\n\t * in case the input value matches parts of the suggestions text.\n\t *\n\t * **Note:** takes effect when `showSuggestions` is set to `true`\n\t * @default false\n\t * @private\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\thighlight = false;\n\n\t/**\n\t * Defines a short hint intended to aid the user with data entry when the\n\t * component has no value.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.3\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item\n\t * @default false\n\t * @public\n\t * @since 1.4.0\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the HTML type of the component.\n\t *\n\t * **Notes:**\n\t *\n\t * - The particular effect of this property differs depending on the browser\n\t * and the current language settings, especially for type `Number`.\n\t * - The property is mostly intended to be used with touch devices\n\t * that use different soft keyboard layouts depending on the given input type.\n\t * @default \"Text\"\n\t * @public\n\t */\n\t@property()\n\ttype: `${InputType}` = \"Text\";\n\n\t/**\n\t * Defines the value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\n\t * @default \"\"\n\t * @formEvents change input\n\t * @formProperty\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Defines the inner stored value of the component.\n\t *\n\t * **Note:** The property is updated upon typing. In some special cases the old value is kept (e.g. deleting the value after the dot in a float)\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_innerValue = \"\";\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines whether the component should show suggestions, if such are present.\n\t *\n\t * **Note:** You need to import the `InputSuggestions` module\n\t * from `\"@ui5/webcomponents/dist/features/InputSuggestions.js\"` to enable this functionality.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSuggestions = false;\n\n\t/**\n\t * Sets the maximum number of characters available in the input field.\n\t *\n\t * **Note:** This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.\n\t * @default undefined\n\t * @since 1.0.0-rc.5\n\t * @public\n\t */\n\t@property({ type: Number })\n\tmaxlength?: number;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines whether the clear icon of the input will be shown.\n\t * @default false\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property({ type: Boolean })\n\tshowClearIcon = false;\n\n\t/**\n\t * Defines whether the suggestions picker is open.\n\t * The picker will not open if the `showSuggestions` property is set to `false`, the input is disabled or the input is readonly.\n\t * The picker will close automatically and `close` event will be fired if the input is not in the viewport.\n\t * @default false\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines whether the clear icon is visible.\n\t * @default false\n\t * @private\n\t * @since 1.2.0\n\t */\n\t@property({ type: Boolean })\n\t_effectiveShowClearIcon = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t@property({ type: Boolean })\n\tvalueStateOpen = false;\n\n\t/**\n\t * Indicates whether the visual focus is on the value state header\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isValueStateFocused = false;\n\n\t@property({ type: Object })\n\t_inputAccInfo: AccInfo = {};\n\n\t@property({ type: Object })\n\t_nativeInputAttributes: NativeInputAttributes = {};\n\n\t@property({ type: Number })\n\t_inputWidth?: number;\n\n\t@property({ type: Number })\n\t_listWidth?: number;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_inputIconFocused = false;\n\n\t/**\n\t * Constantly updated value of texts collected from the associated labels\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_associatedLabelsTexts?: string;\n\n\t/**\n\t * Constantly updated value of texts collected from the accessibleNameRef elements\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_accessibleLabelsRefTexts?: string;\n\n\t/**\n\t * Defines the suggestion items.\n\t *\n\t * **Note:** The suggestions would be displayed only if the `showSuggestions`\n\t * property is set to `true`.\n\t *\n\t * **Note:** The ``, `` and `ui5-suggestion-item-custom` are recommended to be used as suggestion items.\n\t *\n\t * **Note:** Importing the Input Suggestions Support feature:\n\t *\n\t * `import \"@ui5/webcomponents/dist/features/InputSuggestions.js\";`\n\t *\n\t * automatically imports the `` and `` for your convenience.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tsuggestionItems!: Array;\n\n\t/**\n\t * Defines the icon to be displayed in the component.\n\t * @public\n\t */\n\t@slot()\n\ticon!: Array;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t * The value state message slot should contain only one root element.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Critical` or `Negative` value state.\n\t *\n\t * **Note:** If the component has `suggestionItems`,\n\t * the `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\n\t * @since 1.0.0-rc.6\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: true,\n\t})\n\tvalueStateMessage!: Array;\n\n\thasSuggestionItemSelected: boolean;\n\tvalueBeforeItemSelection: string;\n\tvalueBeforeSelectionStart: string;\n\tpreviousValue: string;\n\tfirstRendering: boolean;\n\ttypedInValue: string;\n\tlastConfirmedValue: string\n\tisTyping: boolean\n\t_handleResizeBound: ResizeObserverCallback;\n\t_keepInnerValue: boolean;\n\t_shouldAutocomplete?: boolean;\n\t_keyDown?: boolean;\n\t_isKeyNavigation?: boolean;\n\tSuggestions?: InputSuggestions;\n\t_selectedText?: string;\n\t_clearIconClicked?: boolean;\n\t_focusedAfterClear: boolean;\n\t_changeToBeFired?: boolean; // used to wait change event firing after suggestion item selection\n\t_performTextSelection?: boolean;\n\t_isLatestValueFromSuggestions: boolean;\n\tstatic i18nBundle: I18nBundle;\n\n\tget formValidityMessage() {\n\t\treturn Input.i18nBundle.getText(FORM_TEXTFIELD_REQUIRED);\n\t}\n\n\tget _effectiveShowSuggestions() {\n\t\treturn !!(this.showSuggestions && this.Suggestions);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this.required && !this.value };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue(): FormData | string | null {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\t// Indicates if there is selected suggestionItem.\n\t\tthis.hasSuggestionItemSelected = false;\n\n\t\t// Represents the value before user moves selection from suggestion item to another\n\t\t// and its value is updated after each move.\n\t\t// Note: Used to register and fire \"input\" event upon [Space] or [Enter].\n\t\t// Note: The property \"value\" is updated upon selection move and can`t be used.\n\t\tthis.valueBeforeItemSelection = \"\";\n\n\t\t// Represents the value before user moves selection between the suggestion items\n\t\t// and its value remains the same when the user navigates up or down the list.\n\t\t// Note: Used to cancel selection upon [Escape].\n\t\tthis.valueBeforeSelectionStart = \"\";\n\n\t\t// tracks the value between focus in and focus out to detect that change event should be fired.\n\t\tthis.previousValue = \"\";\n\n\t\t// Indicates, if the component is rendering for first time.\n\t\tthis.firstRendering = true;\n\n\t\t// The typed in value.\n\t\tthis.typedInValue = \"\";\n\n\t\t// The last value confirmed by the user with \"ENTER\"\n\t\tthis.lastConfirmedValue = \"\";\n\n\t\t// Indicates, if the user is typing. Gets reset once popup is closed\n\t\tthis.isTyping = false;\n\n\t\t// Indicates whether the value of the input is comming from a suggestion item\n\t\tthis._isLatestValueFromSuggestions = false;\n\n\t\tthis._handleResizeBound = this._handleResize.bind(this);\n\n\t\tthis._keepInnerValue = false;\n\t\tthis._focusedAfterClear = false;\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t\tregisterUI5Element(this, this._updateAssociatedLabelsTexts.bind(this));\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t\tderegisterUI5Element(this);\n\t}\n\n\t_highlightSuggestionItem(item: SuggestionItem) {\n\t\titem.markupText = this.typedInValue ? this.Suggestions?.hightlightInput((item.text || \"\"), this.typedInValue) : encodeXML(item.text || \"\");\n\t}\n\n\t_isGroupItem(item: IInputSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-suggestion-item-group\");\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this._keepInnerValue) {\n\t\t\tthis._innerValue = this.value;\n\t\t}\n\n\t\tif (this.showSuggestions) {\n\t\t\tthis.enableSuggestions();\n\n\t\t\tthis._flattenItems.forEach(item => {\n\t\t\t\tif (item.hasAttribute(\"ui5-suggestion-item\")) {\n\t\t\t\t\tthis._highlightSuggestionItem(item as SuggestionItem);\n\t\t\t\t} else if (this._isGroupItem(item)) {\n\t\t\t\t\titem.items?.forEach(nestedItem => {\n\t\t\t\t\t\tthis._highlightSuggestionItem(nestedItem as SuggestionItem);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._effectiveShowClearIcon = (this.showClearIcon && !!this.value && !this.readonly && !this.disabled);\n\t\tthis.style.setProperty(getScopedVarName(\"--_ui5-input-icons-count\"), `${this.iconsCount}`);\n\n\t\tconst hasItems = !!this._flattenItems.length;\n\t\tconst hasValue = !!this.value;\n\t\tconst isFocused = this.shadowRoot!.querySelector(\"input\") === getActiveElement();\n\t\tif (this.shouldDisplayOnlyValueStateMessage) {\n\t\t\tthis.openValueStatePopover();\n\t\t} else {\n\t\t\tthis.closeValueStatePopover();\n\t\t}\n\n\t\tconst preventOpenPicker = this.disabled || this.readonly;\n\n\t\tif (preventOpenPicker) {\n\t\t\tthis.open = false;\n\t\t} else if (!this._isPhone) {\n\t\t\tthis.open = hasItems && (this.open || (hasValue && isFocused && this.isTyping));\n\t\t}\n\n\t\tconst value = this.value;\n\t\tconst innerInput = this.getInputDOMRefSync();\n\n\t\tif (!innerInput || !value) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst autoCompletedChars = innerInput.selectionEnd! - innerInput.selectionStart!;\n\n\t\t// Typehead causes issues on Android devices, so we disable it for now\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !isAndroid() && !autoCompletedChars && !this._isKeyNavigation) {\n\t\t\tconst item = this._getFirstMatchingItem(value);\n\t\t\tif (item) {\n\t\t\t\tthis._handleTypeAhead(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tconst innerInput = this.getInputDOMRefSync()!;\n\n\t\tif (this.showSuggestions && this.Suggestions?._getPicker()) {\n\t\t\tthis._listWidth = this.Suggestions._getListWidth();\n\t\t}\n\n\t\tif (this._performTextSelection) {\n\t\t\t// this is required to syncronize lit-html input's value and user's input\n\t\t\t// lit-html does not sync its stored value for the value property when the user is typing\n\t\t\tif (innerInput.value !== this._innerValue) {\n\t\t\t\tinnerInput.value = this._innerValue;\n\t\t\t}\n\n\t\t\tif (this.typedInValue.length && this.value.length) {\n\t\t\t\tinnerInput.setSelectionRange(this.typedInValue.length, this.value.length);\n\t\t\t}\n\n\t\t\tthis.fireEvent(\"type-ahead\");\n\t\t}\n\n\t\tthis._performTextSelection = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tthis._isKeyNavigation = true;\n\t\tthis._shouldAutocomplete = !this.noTypeahead && !(isBackSpace(e) || isDelete(e) || isEscape(e));\n\n\t\tif (isUp(e)) {\n\t\t\treturn this._handleUp(e);\n\t\t}\n\n\t\tif (isDown(e)) {\n\t\t\treturn this._handleDown(e);\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\treturn this._handleSpace(e);\n\t\t}\n\n\t\tif (isTabNext(e)) {\n\t\t\treturn this._handleTab();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\treturn this._handleEnter(e);\n\t\t}\n\n\t\tif (isPageUp(e)) {\n\t\t\treturn this._handlePageUp(e);\n\t\t}\n\n\t\tif (isPageDown(e)) {\n\t\t\treturn this._handlePageDown(e);\n\t\t}\n\n\t\tif (isHome(e)) {\n\t\t\treturn this._handleHome(e);\n\t\t}\n\n\t\tif (isEnd(e)) {\n\t\t\treturn this._handleEnd(e);\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\treturn this._handleEscape();\n\t\t}\n\n\t\tif (this.showSuggestions) {\n\t\t\tthis._clearPopoverFocusAndSelection();\n\t\t}\n\n\t\tthis._keyDown = true;\n\t\tthis._isKeyNavigation = false;\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\t// The native Delete event does not update the value property \"on time\".\n\t\t// So, the (native) change event is always fired with the old value\n\t\tif (isDelete(e)) {\n\t\t\tthis.value = (e.target as HTMLInputElement).value;\n\t\t}\n\n\t\tthis._keyDown = false;\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tif (this.Suggestions?.isOpened()) {\n\t\t\tthis.Suggestions.onUp(e);\n\t\t}\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tif (this.Suggestions?.isOpened()) {\n\t\t\tthis.Suggestions.onDown(e);\n\t\t}\n\t}\n\n\t_handleSpace(e: KeyboardEvent) {\n\t\tif (this.Suggestions) {\n\t\t\tthis.Suggestions.onSpace(e);\n\t\t}\n\t}\n\n\t_handleTab() {\n\t\tif (this.Suggestions && (this.previousValue !== this.value)) {\n\t\t\tthis.Suggestions.onTab();\n\t\t}\n\t}\n\n\t_handleEnter(e: KeyboardEvent) {\n\t\t// if a group item is focused, this is false\n\t\tconst suggestionItemPressed = !!(this.Suggestions?.onEnter(e));\n\t\tconst innerInput = this.getInputDOMRefSync()!;\n\t\tconst matchingItem = this._selectableItems.find(item => {\n\t\t\treturn item.text === this.value;\n\t\t});\n\n\t\tif (matchingItem) {\n\t\t\tconst itemText = matchingItem.text || \"\";\n\n\t\t\tinnerInput.setSelectionRange(itemText.length, itemText.length);\n\t\t\tif (!suggestionItemPressed) {\n\t\t\t\tthis.fireSelectionChange(matchingItem, true);\n\t\t\t\tthis.acceptSuggestion(matchingItem, true);\n\t\t\t\tthis.open = false;\n\t\t\t}\n\t\t}\n\n\t\tif (this._isPhone && !this._flattenItems.length && !this.isTypeNumber) {\n\t\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\t}\n\n\t\tif (!suggestionItemPressed) {\n\t\t\tthis.lastConfirmedValue = this.value;\n\n\t\t\tif (this._internals.form) {\n\t\t\t\tsubmitForm(this);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focused = true;\n\t}\n\n\t_handlePageUp(e: KeyboardEvent) {\n\t\tif (this._isSuggestionsFocused) {\n\t\t\tthis.Suggestions?.onPageUp(e);\n\t\t} else {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_handlePageDown(e: KeyboardEvent) {\n\t\tif (this._isSuggestionsFocused) {\n\t\t\tthis.Suggestions?.onPageDown(e);\n\t\t} else {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_handleHome(e: KeyboardEvent) {\n\t\tif (this._isSuggestionsFocused) {\n\t\t\tthis.Suggestions?.onHome(e);\n\t\t}\n\t}\n\n\t_handleEnd(e: KeyboardEvent) {\n\t\tif (this._isSuggestionsFocused) {\n\t\t\tthis.Suggestions?.onEnd(e);\n\t\t}\n\t}\n\n\t_handleEscape() {\n\t\tconst hasSuggestions = this.showSuggestions && !!this.Suggestions;\n\t\tconst isOpen = hasSuggestions && this.open;\n\t\tconst innerInput = this.getInputDOMRefSync()!;\n\t\tconst isAutoCompleted = innerInput.selectionEnd! - innerInput.selectionStart! > 0;\n\n\t\tthis.isTyping = false;\n\n\t\tif (!isOpen) {\n\t\t\tthis.value = this.lastConfirmedValue ? this.lastConfirmedValue : this.previousValue;\n\t\t\treturn;\n\t\t}\n\n\t\tif (isOpen && this.Suggestions?._isItemOnTarget()) {\n\t\t\t// Restore the value.\n\t\t\tthis.value = this.typedInValue || this.valueBeforeSelectionStart;\n\n\t\t\tthis.focused = true;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (isAutoCompleted) {\n\t\t\tthis.value = this.typedInValue;\n\t\t}\n\n\t\tif (this._isValueStateFocused) {\n\t\t\tthis._isValueStateFocused = false;\n\t\t\tthis.focused = true;\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tthis.focused = true; // invalidating property\n\n\t\tif (!this._focusedAfterClear) {\n\t\t\tthis.previousValue = this.value;\n\t\t}\n\n\t\tthis.valueBeforeSelectionStart = this.value;\n\t\tthis._inputIconFocused = !!e.target && e.target === this.querySelector(\"[ui5-icon]\");\n\t\tthis._focusedAfterClear = false;\n\t}\n\n\t/**\n\t * Called on \"focusin\" of the native input HTML Element.\n\t * **Note:** implemented in MultiInput, but used in the Input template.\n\t */\n\tinnerFocusIn(): void | undefined {}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tconst toBeFocused = e.relatedTarget as HTMLElement;\n\n\t\tif (this.Suggestions?._getPicker().contains(toBeFocused) || this.contains(toBeFocused) || this.getSlottedNodes(\"valueStateMessage\").some(el => el.contains(toBeFocused))) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._keepInnerValue = false;\n\t\tthis.focused = false; // invalidating property\n\n\t\tif (this.showClearIcon && !this._effectiveShowClearIcon) {\n\t\t\tthis._clearIconClicked = false;\n\t\t\tthis._handleChange();\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis._clearPopoverFocusAndSelection();\n\n\t\tif (!this._clearIconClicked) {\n\t\t\tthis.previousValue = \"\";\n\t\t}\n\n\t\tthis.lastConfirmedValue = \"\";\n\t\tthis.isTyping = false;\n\t}\n\n\t_clearPopoverFocusAndSelection() {\n\t\tif (!this.showSuggestions || !this.Suggestions) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isValueStateFocused = false;\n\t\tthis.hasSuggestionItemSelected = false;\n\n\t\tthis.Suggestions?._deselectItems();\n\t\tthis.Suggestions?._clearItemFocus();\n\t}\n\n\t_click() {\n\t\tif (isPhone() && !this.readonly && this.Suggestions) {\n\t\t\tthis.blur();\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_handleChange() {\n\t\tif (this._clearIconClicked) {\n\t\t\tthis._clearIconClicked = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst fireChange = () => {\n\t\t\tthis.fireEvent(INPUT_EVENTS.CHANGE);\n\t\t\tthis.previousValue = this.value;\n\t\t\tthis.typedInValue = this.value;\n\t\t};\n\n\t\tif (this.previousValue !== this.getInputDOMRefSync()!.value) {\n\t\t\t// if picker is open there might be a selected item, wait next tick to get the value applied\n\t\t\tif (this.Suggestions?._getPicker().open && this._flattenItems.some(item => item.hasAttribute(\"ui5-suggestion-item\") && (item as SuggestionItem).selected)) {\n\t\t\t\tthis._changeToBeFired = true;\n\t\t\t} else {\n\t\t\t\tfireChange();\n\t\t\t}\n\t\t}\n\t}\n\n\t_clear() {\n\t\tthis.value = \"\";\n\t\tthis.fireEvent(INPUT_EVENTS.INPUT, { inputType: \"\" });\n\t\tif (!this._isPhone) {\n\t\t\tthis.fireResetSelectionChange();\n\t\t\tthis.focus();\n\t\t\tthis._focusedAfterClear = true;\n\t\t}\n\t}\n\n\t_iconMouseDown() {\n\t\tthis._clearIconClicked = true;\n\t}\n\n\t_scroll(e: CustomEvent) {\n\t\tthis.fireEvent(\"suggestion-scroll\", {\n\t\t\tscrollTop: e.detail.scrollTop,\n\t\t\tscrollContainer: e.detail.targetRef,\n\t\t});\n\t}\n\n\t_handleSelect() {\n\t\tthis.fireEvent(\"select\", {});\n\t}\n\n\t_handleInput(e: InputEvent | CustomEvent) {\n\t\tconst inputDomRef = this.getInputDOMRefSync();\n\t\tconst emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef!.value;\n\t\tconst eventType: string = (e as InputEvent).inputType\n\t\t\t|| (e.detail as InputEventDetail).inputType\n\t\t\t|| \"\";\n\t\tthis._keepInnerValue = false;\n\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\tthis._shouldAutocomplete = !allowedEventTypes.includes(eventType) && !this.noTypeahead;\n\n\t\tif (e instanceof InputEvent) {\n\t\t\t// ---- Special cases of numeric Input ----\n\t\t\t// ---------------- Start -----------------\n\n\t\t\t// When the last character after the delimiter is removed.\n\t\t\t// In such cases, we want to skip the re-rendering of the\n\t\t\t// component as this leads to cursor repositioning and causes user experience issues.\n\n\t\t\t// There are few scenarios:\n\t\t\t// Example: type \"123.4\" and press BACKSPACE - the native input is firing event with the whole part as value (123).\n\t\t\t// Pressing BACKSPACE again will remove the delimiter and the native input will fire event with the whole part as value again (123).\n\t\t\t// Example: type \"123.456\", select/mark \"456\" and press BACKSPACE - the native input is firing event with the whole part as value (123).\n\t\t\t// Example: type \"123.456\", select/mark \"123.456\" and press BACKSPACE - the native input is firing event with empty value.\n\t\t\tconst delimiterCase = this.isTypeNumber\n\t\t\t\t&& (e.inputType === \"deleteContentForward\" || e.inputType === \"deleteContentBackward\")\n\t\t\t\t&& !(e.target as HTMLInputElement).value.includes(\".\")\n\t\t\t\t&& this.value.includes(\".\");\n\n\t\t\t// Handle special numeric notation with \"e\", example \"12.5e12\"\n\t\t\tconst eNotationCase = emptyValueFiredOnNumberInput && e.data === \"e\";\n\n\t\t\t// Handle special numeric notation with \"-\", example \"-3\"\n\t\t\t// When pressing BACKSPACE, the native input fires event with empty value\n\t\t\tconst minusRemovalCase = emptyValueFiredOnNumberInput\n\t\t\t\t&& this.value.startsWith(\"-\")\n\t\t\t\t&& this.value.length === 2\n\t\t\t\t&& (e.inputType === \"deleteContentForward\" || e.inputType === \"deleteContentBackward\");\n\n\t\t\tif (delimiterCase || eNotationCase || minusRemovalCase) {\n\t\t\t\tthis.value = (e.target as HTMLInputElement).value;\n\t\t\t\tthis._keepInnerValue = true;\n\t\t\t}\n\t\t\t// ----------------- End ------------------\n\t\t}\n\n\t\tif (e.target === inputDomRef) {\n\t\t\tthis.focused = true;\n\n\t\t\t// stop the native event, as the semantic \"input\" would be fired.\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.fireEventByAction(INPUT_ACTIONS.ACTION_ENTER, e as InputEvent);\n\n\t\tthis.hasSuggestionItemSelected = false;\n\t\tthis._isValueStateFocused = false;\n\n\t\tif (this.Suggestions) {\n\t\t\tthis.Suggestions.updateSelectedItemPosition(-1);\n\t\t}\n\n\t\tthis.isTyping = true;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array {\n\t\treturn StartsWith(str, this._selectableItems, \"text\");\n\t}\n\n\t_getFirstMatchingItem(current: string): IInputSuggestionItemSelectable | undefined {\n\t\tif (!this._flattenItems.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst matchingItems = this._startsWithMatchingItems(current).filter(item => !this._isGroupItem(item));\n\n\t\tif (matchingItems.length) {\n\t\t\treturn matchingItems[0];\n\t\t}\n\t}\n\n\t_handleSelectionChange(e: CustomEvent) {\n\t\tthis.Suggestions?.onItemPress(e);\n\t}\n\n\t_handleTypeAhead(item: IInputSuggestionItemSelectable) {\n\t\tconst value = item.text ? item.text : \"\";\n\n\t\tthis._innerValue = value;\n\t\tthis.value = value;\n\t\tthis._performTextSelection = true;\n\n\t\tthis._shouldAutocomplete = false;\n\t}\n\n\t_handleResize() {\n\t\tthis._inputWidth = this.offsetWidth;\n\t}\n\n\t_updateAssociatedLabelsTexts() {\n\t\tthis._associatedLabelsTexts = getAssociatedLabelForTexts(this);\n\t\tthis._accessibleLabelsRefTexts = getAllAccessibleNameRefTexts(this);\n\t}\n\n\t_closePicker() {\n\t\tthis.open = false;\n\t}\n\n\t_afterOpenPicker() {\n\t\t// Set initial focus to the native input\n\t\tif (isPhone()) {\n\t\t\t(this.getInputDOMRef())!.focus();\n\t\t}\n\n\t\tthis._handlePickerAfterOpen();\n\t}\n\n\t_afterClosePicker() {\n\t\tthis.announceSelectedItem();\n\n\t\t// close device's keyboard and prevent further typing\n\t\tif (isPhone()) {\n\t\t\tthis.blur();\n\t\t\tthis.focused = false;\n\t\t}\n\n\t\tif (this._changeToBeFired) {\n\t\t\tthis.fireEvent(INPUT_EVENTS.CHANGE);\n\t\t\tthis._changeToBeFired = false;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis.isTyping = false;\n\n\t\tif (this.hasSuggestionItemSelected) {\n\t\t\tthis.focus();\n\t\t}\n\n\t\tthis._handlePickerAfterClose();\n\t}\n\n\t_handlePickerAfterOpen() {\n\t\tthis.Suggestions?._onOpen();\n\t\tthis.fireEvent(\"open\", null, false, false);\n\t}\n\n\t_handlePickerAfterClose() {\n\t\tthis.Suggestions?._onClose();\n\t\tthis.fireEvent(\"close\", null, false, false);\n\t}\n\n\topenValueStatePopover() {\n\t\tthis.valueStateOpen = true;\n\t}\n\n\tcloseValueStatePopover() {\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_handleValueStatePopoverAfterClose() {\n\t\tthis.valueStateOpen = false;\n\t}\n\n\t_getValueStatePopover() {\n\t\treturn this.shadowRoot!.querySelector(\"[ui5-popover]\")!;\n\t}\n\n\tenableSuggestions() {\n\t\tif (this.Suggestions) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst Suggestions = getComponentFeature(\"InputSuggestions\");\n\t\tif (Suggestions) {\n\t\t\tthis.Suggestions = new Suggestions(this, \"suggestionItems\", true, false);\n\t\t}\n\t}\n\n\tacceptSuggestion(item: IInputSuggestionItemSelectable, keyboardUsed: boolean) {\n\t\tif (this._isGroupItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = this.typedInValue || this.value;\n\t\tconst itemText = item.text || \"\";\n\t\tconst fireChange = keyboardUsed\n\t\t\t? this.valueBeforeItemSelection !== itemText : value !== itemText;\n\n\t\tthis.hasSuggestionItemSelected = true;\n\t\tthis.value = itemText;\n\n\t\tif (fireChange && (this.previousValue !== itemText)) {\n\t\t\tthis.valueBeforeItemSelection = itemText;\n\t\t\tthis.lastConfirmedValue = itemText;\n\n\t\t\tthis._performTextSelection = true;\n\n\t\t\tthis.fireEvent(INPUT_EVENTS.CHANGE);\n\n\t\t\t// value might change in the change event handler\n\t\t\tthis.typedInValue = this.value;\n\t\t\tthis.previousValue = this.value;\n\t\t}\n\n\t\tthis.valueBeforeSelectionStart = \"\";\n\n\t\tthis.isTyping = false;\n\t\tthis.open = false;\n\t}\n\n\t/**\n\t * Updates the input value on item select.\n\t * @param item The item that is on select\n\t */\n\tupdateValueOnSelect(item: IInputSuggestionItem) {\n\t\tconst itemValue = this._isGroupItem(item) ? this.valueBeforeSelectionStart : (item as IInputSuggestionItemSelectable).text;\n\n\t\tthis.value = itemValue || \"\";\n\t\tthis._performTextSelection = true;\n\t}\n\n\tfireEventByAction(action: INPUT_ACTIONS, e: InputEvent) {\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst inputValue = this.getInputValue();\n\t\tconst isUserInput = action === INPUT_ACTIONS.ACTION_ENTER;\n\n\t\tthis.value = inputValue;\n\t\tthis.typedInValue = inputValue;\n\t\tthis.valueBeforeSelectionStart = inputValue;\n\n\t\tif (isUserInput) { // input\n\t\t\tthis.fireEvent(INPUT_EVENTS.INPUT, { inputType: e.inputType });\n\t\t\t// Angular two way data binding\n\t\t\tthis.fireEvent(\"value-changed\");\n\t\t\tthis.fireResetSelectionChange();\n\t\t}\n\t}\n\n\tgetInputValue() {\n\t\tconst domRef = this.getDomRef();\n\n\t\tif (domRef) {\n\t\t\treturn (this.getInputDOMRef())!.value;\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tgetInputDOMRef() {\n\t\tif (isPhone() && this.Suggestions) {\n\t\t\treturn this.Suggestions._getPicker()!.querySelector(\".ui5-input-inner-phone\")!;\n\t\t}\n\n\t\treturn this.nativeInput;\n\t}\n\n\tgetInputDOMRefSync() {\n\t\tif (isPhone() && this.Suggestions?._getPicker()) {\n\t\t\treturn this.Suggestions._getPicker().querySelector(\".ui5-input-inner-phone\")!.shadowRoot!.querySelector(\"input\")!;\n\t\t}\n\n\t\treturn this.nativeInput;\n\t}\n\n\t/**\n\t * Returns a reference to the native input element\n\t * @protected\n\t */\n\tget nativeInput() {\n\t\tconst domRef = this.getDomRef();\n\n\t\treturn domRef ? domRef.querySelector(`input`) : null;\n\t}\n\n\tget nativeInputWidth() {\n\t\treturn this.nativeInput ? this.nativeInput.offsetWidth : 0;\n\t}\n\n\t/**\n\t * Returns if the suggestions popover is scrollable.\n\t * The method returns `Promise` that resolves to true,\n\t * if the popup is scrollable and false otherwise.\n\t */\n\tisSuggestionsScrollable() {\n\t\tif (!this.Suggestions) {\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\n\t\treturn this.Suggestions?._isScrollable();\n\t}\n\n\tonItemMouseDown(e: MouseEvent) {\n\t\te.preventDefault();\n\t}\n\n\tonItemSelected(suggestionItem: IInputSuggestionItemSelectable, keyboardUsed: boolean) {\n\t\tconst shouldFireSelectionChange = !keyboardUsed && !suggestionItem?.focused && this.valueBeforeItemSelection !== suggestionItem.text;\n\n\t\tif (shouldFireSelectionChange) {\n\t\t\tthis.fireSelectionChange(suggestionItem, true);\n\t\t}\n\n\t\tthis.acceptSuggestion(suggestionItem, keyboardUsed);\n\t}\n\n\t_handleSuggestionItemPress(e: CustomEvent) {\n\t\tthis.Suggestions?.onItemPress(e);\n\t}\n\n\tonItemSelect(item: IInputSuggestionItem) {\n\t\tthis.valueBeforeItemSelection = this.value;\n\t\tthis.updateValueOnSelect(item);\n\t\tthis.announceSelectedItem();\n\n\t\tthis.fireSelectionChange(item, true);\n\t}\n\n\tget _flattenItems(): Array {\n\t\treturn this.getSlottedNodes(\"suggestionItems\").flatMap(item => {\n\t\t\treturn this._isGroupItem(item) ? [item, ...item.items!] : [item];\n\t\t});\n\t}\n\n\tget _selectableItems(): Array {\n\t\treturn this._flattenItems.filter(item => !this._isGroupItem(item)) as Array;\n\t}\n\n\tget valueStateTypeMappings() {\n\t\treturn {\n\t\t\t\"Positive\": Input.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n\t\t\t\"Information\": Input.i18nBundle.getText(VALUE_STATE_TYPE_INFORMATION),\n\t\t\t\"Negative\": Input.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n\t\t\t\"Critical\": Input.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n\t\t};\n\t}\n\n\tvalueStateTextMappings() {\n\t\treturn {\n\t\t\t\"Positive\": Input.i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": Input.i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Negative\": Input.i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Critical\": Input.i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tannounceSelectedItem() {\n\t\tconst invisibleText = this.shadowRoot!.querySelector(`#selectionText`)!;\n\n\t\tif (invisibleText) {\n\t\t\tinvisibleText.textContent = this.itemSelectionAnnounce;\n\t\t}\n\t}\n\n\tfireSelectionChange(item: IInputSuggestionItem | null, isValueFromSuggestions: boolean) {\n\t\tif (this.Suggestions) {\n\t\t\tthis.fireEvent(INPUT_EVENTS.SELECTION_CHANGE, { item });\n\t\t\tthis._isLatestValueFromSuggestions = isValueFromSuggestions;\n\t\t}\n\t}\n\n\tfireResetSelectionChange() {\n\t\tif (this._isLatestValueFromSuggestions) {\n\t\t\tthis.fireSelectionChange(null, false);\n\t\t}\n\t}\n\n\tget _readonly() {\n\t\treturn this.readonly && !this.disabled;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget clearIconAccessibleName() {\n\t\treturn Input.i18nBundle.getText(INPUT_CLEAR_ICON_ACC_NAME);\n\t}\n\n\tget _popupLabel() {\n\t\treturn Input.i18nBundle.getText(INPUT_AVALIABLE_VALUES);\n\t}\n\n\tget inputType() {\n\t\treturn this.type.toLowerCase();\n\t}\n\n\tget isTypeNumber() {\n\t\treturn this.type === InputType.Number;\n\t}\n\n\tget suggestionsTextId() {\n\t\treturn this.showSuggestions ? `suggestionsText` : \"\";\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `valueStateDesc` : \"\";\n\t}\n\n\tget accInfo() {\n\t\tconst ariaHasPopupDefault = this.showSuggestions ? \"dialog\" : undefined;\n\t\tconst ariaAutoCompleteDefault = this.showSuggestions ? \"list\" : undefined;\n\t\tconst ariaDescribedBy = this._inputAccInfo.ariaDescribedBy ? `${this.suggestionsTextId} ${this.valueStateTextId} ${this._inputAccInfo.ariaDescribedBy}`.trim() : `${this.suggestionsTextId} ${this.valueStateTextId}`.trim();\n\n\t\tconst info = {\n\t\t\t\"input\": {\n\t\t\t\t\"ariaRoledescription\": this._inputAccInfo && (this._inputAccInfo.ariaRoledescription || undefined),\n\t\t\t\t\"ariaDescribedBy\": ariaDescribedBy || undefined,\n\t\t\t\t\"ariaInvalid\": this.valueState === ValueState.Negative ? \"true\" : undefined,\n\t\t\t\t\"ariaHasPopup\": this._inputAccInfo.ariaHasPopup ? this._inputAccInfo.ariaHasPopup : ariaHasPopupDefault,\n\t\t\t\t\"ariaAutoComplete\": this._inputAccInfo.ariaAutoComplete ? this._inputAccInfo.ariaAutoComplete : ariaAutoCompleteDefault,\n\t\t\t\t\"role\": this._inputAccInfo && this._inputAccInfo.role,\n\t\t\t\t\"ariaControls\": this._inputAccInfo && this._inputAccInfo.ariaControls,\n\t\t\t\t\"ariaExpanded\": this._inputAccInfo && this._inputAccInfo.ariaExpanded,\n\t\t\t\t\"ariaDescription\": this._inputAccInfo && this._inputAccInfo.ariaDescription,\n\t\t\t\t\"ariaLabel\": (this._inputAccInfo && this._inputAccInfo.ariaLabel) || this._accessibleLabelsRefTexts || this.accessibleName || this._associatedLabelsTexts || undefined,\n\t\t\t},\n\t\t};\n\t\treturn info;\n\t}\n\n\tget nativeInputAttributes() {\n\t\treturn {\n\t\t\t\"min\": this.isTypeNumber ? this._nativeInputAttributes.min : undefined,\n\t\t\t\"max\": this.isTypeNumber ? this._nativeInputAttributes.max : undefined,\n\t\t\t\"step\": this.isTypeNumber ? (this._nativeInputAttributes.step || \"any\") : undefined,\n\t\t};\n\t}\n\n\tget ariaValueStateHiddenText() {\n\t\tif (!this.hasValueState) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst valueState = this.valueState !== ValueState.None ? this.valueStateTypeMappings[this.valueState] : \"\";\n\n\t\tif (this.shouldDisplayDefaultValueStateMessage) {\n\t\t\treturn this.valueStateText ? `${valueState} ${this.valueStateText}` : valueState;\n\t\t}\n\n\t\treturn `${valueState}`.concat(\" \", this.valueStateMessage.map(el => el.textContent).join(\" \"));\n\t}\n\n\tget itemSelectionAnnounce() {\n\t\treturn this.Suggestions ? this.Suggestions.itemSelectionAnnounce : \"\";\n\t}\n\n\tget iconsCount(): number {\n\t\tconst slottedIconsCount = this.icon ? this.icon.length : 0;\n\t\tconst clearIconCount = Number(this._effectiveShowClearIcon) ?? 0;\n\t\treturn slottedIconsCount + clearIconCount;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"ui5-suggestions-popover\": this.showSuggestions,\n\t\t\t\t\"ui5-popover-with-value-state-header-phone\": this._isPhone && this.showSuggestions && this.hasValueStateMessage,\n\t\t\t\t\"ui5-popover-with-value-state-header\": !this._isPhone && this.showSuggestions && this.hasValueStateMessage,\n\t\t\t},\n\t\t\tpopoverValueState: {\n\t\t\t\t\"ui5-valuestatemessage-root\": true,\n\t\t\t\t\"ui5-valuestatemessage-header\": true,\n\t\t\t\t\"ui5-valuestatemessage--success\": this.valueState === ValueState.Positive,\n\t\t\t\t\"ui5-valuestatemessage--error\": this.valueState === ValueState.Negative,\n\t\t\t\t\"ui5-valuestatemessage--warning\": this.valueState === ValueState.Critical,\n\t\t\t\t\"ui5-valuestatemessage--information\": this.valueState === ValueState.Information,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\tconst remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);\n\n\t\tconst stylesObject = {\n\t\t\tpopoverHeader: {\n\t\t\t\t\"max-width\": this._inputWidth ? `${this._inputWidth}px` : \"\",\n\t\t\t},\n\t\t\tsuggestionPopoverHeader: {\n\t\t\t\t\"display\": this._listWidth === 0 ? \"none\" : \"inline-block\",\n\t\t\t\t\"width\": this._listWidth ? `${this._listWidth}px` : \"\",\n\t\t\t},\n\t\t\tsuggestionsPopover: {\n\t\t\t\t\"min-width\": this._inputWidth ? `${this._inputWidth}px` : \"\",\n\t\t\t\t\"max-width\": this._inputWidth && (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : \"40rem\",\n\t\t\t},\n\t\t\tinnerInput: {\n\t\t\t\t\"padding\": \"\",\n\t\t\t},\n\t\t};\n\n\t\treturn stylesObject;\n\t}\n\n\tget suggestionSeparators() {\n\t\treturn \"None\";\n\t}\n\n\tget shouldDisplayOnlyValueStateMessage() {\n\t\treturn this.hasValueStateMessage && !this.readonly && !this.open && this.focused;\n\t}\n\n\tget shouldDisplayDefaultValueStateMessage() {\n\t\treturn !this.valueStateMessage.length && this.hasValueStateMessage;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget hasValueStateMessage() {\n\t\treturn this.hasValueState && this.valueState !== ValueState.Positive\n\t\t\t&& (!this._inputIconFocused // Handles the cases when valueStateMessage is forwarded (from datepicker e.g.)\n\t\t\t\t|| !!(this._isPhone && this.Suggestions)); // Handles Input with suggestions on mobile\n\t}\n\n\tget valueStateText() {\n\t\treturn this.valueState !== ValueState.None ? this.valueStateTextMappings()[this.valueState] : undefined;\n\t}\n\n\tget suggestionsText() {\n\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS);\n\t}\n\n\tget availableSuggestionsCount() {\n\t\tif (this.showSuggestions && (this.value || this.Suggestions?.isOpened())) {\n\t\t\tconst nonGroupItems = this._selectableItems;\n\n\t\t\tswitch (nonGroupItems.length) {\n\t\t\tcase 0:\n\t\t\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS_NO_HIT);\n\n\t\t\tcase 1:\n\t\t\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS_ONE_HIT);\n\n\t\t\tdefault:\n\t\t\t\treturn Input.i18nBundle.getText(INPUT_SUGGESTIONS_MORE_HITS, nonGroupItems.length);\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget step() {\n\t\treturn this.isTypeNumber ? \"any\" : undefined;\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _isSuggestionsFocused() {\n\t\treturn !this.focused && this.Suggestions?.isOpened();\n\t}\n\n\t/**\n\t * Returns the placeholder value.\n\t * @protected\n\t */\n\tget _placeholder() {\n\t\treturn this.placeholder;\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateInputIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tNegative: ``,\n\t\t\tCritical: ``,\n\t\t\tPositive: ``,\n\t\t\tInformation: ``,\n\t\t};\n\n\t\tif (this.valueState !== ValueState.None) {\n\t\t\treturn `\n\t\t\t\n\t\t\t\t${iconPerValueState[this.valueState]};\n\t\t\t\n\t\t\t`;\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` {\n\t\treturn this.effectiveDir !== \"rtl\" ? \"Start\" : \"End\";\n\t}\n\n\t/**\n\t * This method is relevant for sap_horizon theme only\n\t */\n\tget _valueStateMessageInputIcon() {\n\t\tconst iconPerValueState = {\n\t\t\tNegative: \"error\",\n\t\t\tCritical: \"alert\",\n\t\t\tPositive: \"sys-enter-2\",\n\t\t\tInformation: \"information\",\n\t\t};\n\n\t\treturn this.valueState !== ValueState.None ? iconPerValueState[this.valueState] : \"\";\n\t}\n\n\t/**\n\t * Returns the caret position inside the native input\n\t * @protected\n\t */\n\tgetCaretPosition(): number | null {\n\t\treturn getCaretPosition(this.nativeInput!);\n\t}\n\n\t/**\n\t * Sets the caret to a certain position inside the native input\n\t * @protected\n\t */\n\tsetCaretPosition(pos: number | null) {\n\t\tsetCaretPosition(this.nativeInput!, pos);\n\t}\n\n\t/**\n\t * Removes the fractional part of floating-point number.\n\t * @param value the numeric value of Input of type \"Number\"\n\t */\n\tremoveFractionalPart(value: string) {\n\t\tif (value.includes(\".\")) {\n\t\t\treturn value.slice(0, value.indexOf(\".\"));\n\t\t}\n\t\tif (value.includes(\",\")) {\n\t\t\treturn value.slice(0, value.indexOf(\",\"));\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tstatic async onDefine() {\n\t\tInput.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n}\n\nInput.define();\n\nexport default Input;\nexport type {\n\tIInputSuggestionItem,\n\tIInputSuggestionItemSelectable,\n\tInputSuggestionScrollEventDetail,\n\tInputSelectionChangeEventDetail,\n\tInputEventDetail,\n};\n"]}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy