{"version":3,"sources":["webpack:///./src/ts/SPIRIT.ts","webpack:///./src/ts/commons/autoFit.ts","webpack:///./src/ts/commons/base/base.ts","webpack:///./src/ts/commons/base/functionLockControl.ts","webpack:///./src/ts/commons/base/modalBase.ts","webpack:///./src/ts/commons/base/pageBase.ts","webpack:///./src/ts/commons/base/spreadBase.ts","webpack:///./src/ts/commons/business.ts","webpack:///./src/ts/commons/components/components.ts","webpack:///./src/ts/commons/components/progressBar.ts","webpack:///./src/ts/commons/components/progressTimeSpan.ts","webpack:///./src/ts/commons/components/progressTimer.ts","webpack:///./src/ts/commons/define/code/AttendantWorkOperationDiv.ts","webpack:///./src/ts/commons/define/code/_codeBase.ts","webpack:///./src/ts/commons/define/code/accountLockDiv.ts","webpack:///./src/ts/commons/define/code/aggregateTargetDateDiv.ts","webpack:///./src/ts/commons/define/code/attendantWorkDiv.ts","webpack:///./src/ts/commons/define/code/authDiv.ts","webpack:///./src/ts/commons/define/code/availabilityLevel.ts","webpack:///./src/ts/commons/define/code/boxUseDiv.ts","webpack:///./src/ts/commons/define/code/categorySelectDiv.ts","webpack:///./src/ts/commons/define/code/chargeDiv.ts","webpack:///./src/ts/commons/define/code/commandDiv.ts","webpack:///./src/ts/commons/define/code/conditionDiv.ts","webpack:///./src/ts/commons/define/code/enableFlag.ts","webpack:///./src/ts/commons/define/code/equipmentWorkOperationDiv.ts","webpack:///./src/ts/commons/define/code/executeDiv.ts","webpack:///./src/ts/commons/define/code/flag.ts","webpack:///./src/ts/commons/define/code/functionCode.ts","webpack:///./src/ts/commons/define/code/groupDiv.ts","webpack:///./src/ts/commons/define/code/importType.ts","webpack:///./src/ts/commons/define/code/inputRuleDiv.ts","webpack:///./src/ts/commons/define/code/inputTypeDiv.ts","webpack:///./src/ts/commons/define/code/insertCellDiv.ts","webpack:///./src/ts/commons/define/code/layoutDiv.ts","webpack:///./src/ts/commons/define/code/mailSendFrequencyDiv.ts","webpack:///./src/ts/commons/define/code/processDiv.ts","webpack:///./src/ts/commons/define/code/processGridDiv.ts","webpack:///./src/ts/commons/define/code/progressColumnType.ts","webpack:///./src/ts/commons/define/code/progressDiv.ts","webpack:///./src/ts/commons/define/code/questionDiv.ts","webpack:///./src/ts/commons/define/code/receiveContactFormDiv.ts","webpack:///./src/ts/commons/define/code/reflectSpiritDiv.ts","webpack:///./src/ts/commons/define/code/resultProgressDiv.ts","webpack:///./src/ts/commons/define/code/sectionType.ts","webpack:///./src/ts/commons/define/code/settingRangeDiv.ts","webpack:///./src/ts/commons/define/code/textDirectionDiv.ts","webpack:///./src/ts/commons/define/code/triggerDiv.ts","webpack:///./src/ts/commons/define/code/usageDiv.ts","webpack:///./src/ts/commons/define/code/userDiv.ts","webpack:///./src/ts/commons/define/codes.ts","webpack:///./src/ts/commons/define/constant.ts","webpack:///./src/ts/commons/define/message.ts","webpack:///./src/ts/commons/dialog.ts","webpack:///./src/ts/commons/loading.ts","webpack:///./src/ts/commons/notify.ts","webpack:///./src/ts/commons/project.ts","webpack:///./src/ts/commons/session.ts","webpack:///./src/ts/commons/spa.ts","webpack:///./src/ts/commons/spread/blankSheet.ts","webpack:///./src/ts/commons/spread/cellType.ts","webpack:///./src/ts/commons/spread/spread.ts","webpack:///./src/ts/commons/spread/workBookBase.ts","webpack:///./src/ts/commons/spread/workSheetBase.ts","webpack:///./src/ts/commons/util.ts","webpack:///./src/ts/grapecity.ts","webpack:///external \"jQuery\""],"names":[],"mappings":";;;;;;;;;;;;;AACA,gGAAgD;AAAvC,yGAAO;AAChB,uFAAkD;AAAzC,gGAAI,OAAQ;AACrB,+FAA+C;AAC/C,oFAAgD;AAAvC,8FAAI,OAAO;AAEpB,iIAAkE;AAElE,6FAAuE;AAA9D,sGAAM,OAAU;AAEzB,2DAA2D;AAC3D,yDAAyD;AACzD,6DAA6D;AAC7D,0DAA0D;AAE1D,mGAAgD;AAEhD,+DAA+D;AAC/D,iEAAiE;AACjE,2DAA2D;AAC3D,oEAAoE;AAEpE,8DAA8D;AAC9D,2EAA2E;AAC3E,2DAA2D;AAC3D,8DAA8D;AAC9D,qDAAqD;AACrD,6GAAsD;AAEtD,qDAAqD;AACrD,mGAA8D;AAArD,4GAAQ,OAAY;AAE7B,mDAAmD;AACnD,gGAA2D;AAAlD,yGAAO,OAAW;AAC3B,OAAO;AACP,gGAA2D;AAAlD,yGAAO,OAAW;AAE3B,sGAAgD;AAChD,+GAAsD;AACtD,qHAA0D;AAC1D,4GAAoD;AAEpD,gGAA4D;AAAnD,0GAAQ,OAAW;AAE5B,kBAAkB;AACL,YAAI,GAAG;IAChB,QAAQ,EAAE,cAAc,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,EAAE;;QACL,aAAO,YAAI,CAAC,QAAQ,EAAE,0CAAE,WAAW,CAAC,OAAO,GAAG;IAClD,CAAC;CACJ,CAAC;AAGF,kDAAkD;AAClD,wDAAwD;AACxD,mDAAmD;AAInD,iBAAiB;AACjB,0BAA0B;AAC1B,6BAA6B;AAC7B,iJAAiJ;AAEjJ,KAAK;AACL,KAAK;AACL,wBAAwB;AACxB,wBAAwB;AACxB,0BAA0B;AAC1B,gBAAgB;AAChB,KAAK;AACL,mDAAmD;AACnD,2DAA2D;AAC3D,sBAAsB;AACtB,6BAA6B;AAC7B,oCAAoC;AACpC,WAAW;AACX,4BAA4B;AAC5B,kDAAkD;AAClD,qCAAqC;AACrC,iDAAiD;AACjD,4CAA4C;AAC5C,mBAAmB;AACnB,eAAe;AACf,WAAW;AACX,OAAO;AACP,oBAAoB;AACpB,GAAG;AAEH,KAAK;AACL,KAAK;AACL,2BAA2B;AAC3B,gBAAgB;AAChB,KAAK;AACL,wCAAwC;AAGxC,2DAA2D;AAE3D,kCAAkC;AAClC,iCAAiC;AACjC,OAAO;AAEP,6CAA6C;AAC7C,wDAAwD;AACxD,oCAAoC;AACpC,WAAW;AACX,oCAAoC;AACpC,OAAO;AACP,oBAAoB;AACpB,GAAG;AAOH,2GAA2G;AAC3G,kFAAkF;AAMlF,8BAA8B;AAC9B,kDAAkD;AAClD,wCAAwC;AACxC,kDAAkD;AAClD,+DAA+D;AAC/D,2DAA2D;AAC3D,yDAAyD;AAEzD,gDAAgD;AAChD,8CAA8C;AAC9C,kDAAkD;AAClD,kDAAkD;AAIlD,qFAAqF;AACrF,YAAY;AACZ,sFAAsF;AAEtF,oBAAoB;AAEpB,uBAAuB;AACvB,uBAAuB;AACvB,gBAAgB;AAChB,sBAAsB;AACtB,6BAA6B;AAC7B,uBAAuB;AACvB,iBAAiB;AACjB,mBAAmB;AACnB,IAAI;AAIJ,uCAAuC;AACvC,OAAO;AACP,0CAA0C;AAC1C,OAAO;AAEP,kHAAkH;AAClH,sBAAsB;AACtB,kHAAkH;AAClH,yBAAyB;AACzB,gBAAgB;AAChB,qBAAqB;AACrB,+BAA+B;AAG/B,SAAS;AACT,SAAS;AACT,4BAA4B;AAC5B,4BAA4B;AAC5B,8BAA8B;AAC9B,oBAAoB;AACpB,SAAS;AACT,kDAAkD;AAElD,2BAA2B;AAC3B,+CAA+C;AAC/C,aAAa;AAEb,+DAA+D;AAC/D,0BAA0B;AAC1B,iCAAiC;AACjC,wCAAwC;AACxC,eAAe;AACf,gCAAgC;AAChC,sDAAsD;AACtD,yCAAyC;AACzC,qDAAqD;AACrD,gDAAgD;AAChD,uBAAuB;AACvB,mBAAmB;AACnB,eAAe;AACf,WAAW;AACX,wBAAwB;AACxB,QAAQ;AAER,SAAS;AACT,SAAS;AACT,+BAA+B;AAC/B,oBAAoB;AACpB,SAAS;AACT,uCAAuC;AACvC,+DAA+D;AAE/D,sCAAsC;AACtC,qCAAqC;AACrC,WAAW;AAEX,iDAAiD;AACjD,4DAA4D;AAC5D,wCAAwC;AACxC,eAAe;AACf,wCAAwC;AACxC,WAAW;AACX,wBAAwB;AACxB,QAAQ;AAGR,SAAS;AACT,aAAa;AACb,gBAAgB;AAChB,iCAAiC;AACjC,mCAAmC;AACnC,6BAA6B;AAC7B,0BAA0B;AAC1B,SAAS;AACT,gBAAgB;AAChB,6BAA6B;AAC7B,6BAA6B;AAC7B,QAAQ;AAER,iBAAiB;AACjB,yBAAyB;AACzB,uBAAuB;AACvB,qBAAqB;AACrB,qBAAqB;AACrB,WAAW;AACX,aAAa;AACb,+BAA+B;AAC/B,6BAA6B;AAC7B,QAAQ;AAER,iBAAiB;AACjB,mCAAmC;AACnC,0BAA0B;AAC1B,UAAU;AAEV,mBAAmB;AAEnB,iBAAiB;AACjB,oBAAoB;AAEpB,IAAI;AAEJ,oBAAoB;;;;;;;;;;;;;;;;;AClQpB,oDAA4B;AAC5B,2EAA8B;AAC9B,+FAA+C;AAI/C;IACI,MAAM;IACN;QACI,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;IACE,sBAAI,GAAZ;QACI,EAAE;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAAA,CAAC;IAEF,MAAM;IACE,2BAAS,GAAjB;QAEI,sDAAsD;QACtD,sDAAsD;QACtD,iEAAiE;QACjE,kEAAkE;QAClE,yEAAyE;QAEzE,qDAAqD;QACrD,gEAAgE;QAChE,iEAAiE;QACjE,wEAAwE;IAC5E,CAAC;IAAA,CAAC;IAEF;;OAEG;IACH,2BAAS,GAAT,UAAU,CAAE;QACR,IAAI,UAAU,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACrC,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,IAAI;YAEpB,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACpB,eAAe;YACf,IAAI,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE;gBAAE,OAAO;aAAE;YAEpC,aAAa;YACb,IAAI,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC9C,qBAAqB;YACrB,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;YACxB,qBAAqB;YACrB,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;YACvB,+BAA+B;YAC/B,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;YAC9C,+BAA+B;YAC/B,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC;YAG7C,IAAM,UAAU,GAAG,GAAG,CAAC;YACvB,IAAI,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxG,IAAI,SAAS,GAAG,gBAAgB,IAAI,UAAU,CAAC;YAC/C,IAAI,SAAS,GAAG,SAAS;YAEzB,4CAA4C;YAC5C,+BAA+B;YAC/B,IAAI,MAAM,CAAC,WAAW,GAAG,EAAE,EAAE;gBACzB,qCAAqC;gBACrC,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;gBACpC,IAAI,SAAS,GAAG,SAAS,EAAE;oBACvB,SAAS,GAAG,SAAS;iBACxB;gBACD,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC,aAAY;aAC1C;YAED,WAAW;YACX,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5F,IAAI,WAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;gBAC5B,IAAI,YAAY,EAAE;oBACd,SAAS,GAAG,YAAY;iBAC3B;aACJ;YAED,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAExB,4CAA4C;YAE5C,yEAAyE;YACzE,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;YACpG,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,GAAG;;gBAChB,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAElB,6EAA6E;gBAC7E,kCAAkC;gBAClC,gEAAgE;gBAChE,6FAA6F;gBAC7F,oCAAoC;gBACpC,gGAAgG;gBAChG,uDAAuD;gBAEvD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBAElC,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAY,CAAC,QAAQ,CAAC,EAAE;oBAClC,IAAM,MAAM,GAAiB,KAAK,CAAC,IAAI,CAAC,qBAAY,CAAC,QAAQ,CAAC,CAAC;oBAC/D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,GAAG;iBACrB;qBAAM;oBACH,oEAAoE;oBACpE,UAAI,CAAC,IAAI,CAAC,UAAU,CAAC,0CAAE,OAAO,GAAG;iBACpC;gBAED,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAEzC,CAAC,CAAC,CAAC;YAEH,EAAE;YACF,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAElE,CAAC,CAAC,CAAC;IACP,CAAC;IACL,cAAC;AAAD,CAAC;AAGD,gBAAgB;AACH,gBAAQ,GAAG,CAAC;IACrB,mCAAmC;IACnC,IAAI,GAAG,GAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,EAAE;QACN,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;KACpC;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACjIL,2CAA2C;AAC3C,kGAA0B;AAC1B,oGAA2B;AAC3B,sGAA4B;AAC5B,wHAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJrC,6EAA4B;AAC5B,2EAAuC;AAEvC;;GAEG;AACH;IAmHI;;;;;;OAMG;IACH,6BAAY,MAAc,EAAE,YAAoB,EAAE,SAAkB;QAhGpE,MAAM;QACI,eAAU,GAAG,gCAAgC,CAAC;QACxD,MAAM;QACI,YAAO,GAAG,yBAAyB,CAAC;QAC9C,MAAM;QACI,cAAS,GAAG,2BAA2B,CAAC;QA4F9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IA1FD,sBAAI,gDAAe;QAFnB,KAAK;QACL,YAAY;aACZ;YACI,EAAE;YACF,4BAA4B;YAC5B,UAAU;YACV,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC;;;OAAA;IAAA,CAAC;IAGF,sBAAI,8CAAa;QADjB,KAAK;aACL;;YACI,IAAI,QAAC,IAAI,CAAC,QAAQ,0CAAE,iBAAiB,GAAE;gBAAE,OAAO,IAAI,CAAC;aAAE;YACvD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC;;;OAAA;IAAA,CAAC;IAEF,sBAAI,sDAAqB;QADzB,KAAK;aACL;YACI,kGAAkG;YAClG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;;;OAAA;IAAA,CAAC;IAEF,sBAAI,8CAAa;QADjB,KAAK;aACL;YACI,iEAAiE;YACjE,2DAA2D;YAC3D,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjD,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3E,OAAO,aAAa,CAAC;QACzB,CAAC;;;OAAA;IAAA,CAAC;IAGF,sBAAI,sDAAqB;QADzB,KAAK;aACL;YACI,kGAAkG;YAClG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;;;OAAA;IAAA,CAAC;IAIF,sBAAI,4CAAW;QADf,KAAK;aACL;YACI,+CAA+C;YAC/C,6BAA6B;YAC7B,YAAY;YACZ,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvE,oDAAoD;YACpD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAGD,sBAAI,6CAAY;QADhB,KAAK;aACL;YACI,+CAA+C;YAC/C,6BAA6B;YAC7B,YAAY;YACZ,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvE,yDAAyD;YACzD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAGD,sBAAW,kDAAiB;QAD5B,gBAAgB;aAChB;YACI,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC;YACjE,2CAA2C;YAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAGD,sBAAW,6CAAY;QADvB,gBAAgB;aAChB;YACI,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC;YACjE,kDAAkD;YAClD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAGD,sBAAW,6CAAY;QADvB,gBAAgB;aAChB;YACI,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC;YACjE,yDAAyD;YACzD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAgBD,sBAAW,4CAAW;QADtB,KAAK;aACL;YACI,kBAAkB;YAClB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,CAAC;;;OAAA;IAGD,sBAAW,yCAAQ;QADnB,KAAK;aACL;YACI,kBAAkB;YAClB,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YACpC,4EAA4E;YAE5E,6BAA6B;YAC7B,QAAQ;YACR,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC;YACjE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;YAEtC,OAAO,GAAG,GAAG,CAAC,CAAC;QACnB,CAAC;;;OAAA;IAGD,sBAAW,6CAAY;QADvB,gBAAgB;aAChB;YACI,kBAAkB;YAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC;aACnD;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAGD,sBAAW,+CAAc;QADzB,iBAAiB;aACjB;YACI,kBAAkB;YAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC;aAClD;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAKD,SAAS;IACH,wCAAU,GAAhB;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,iBAAiB;wBACjB,iFAAiF;wBACjF,KAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAC,MAAoC;4BAC7D,0EAA0E;4BAC1E,IAAI,MAAM,EAAE;gCACR,iBAAiB;gCACjB,0CAA0C;gCAC1C,KAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gCAChC,KAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;6BAC/C;4BACD,OAAO,EAAE,CAAC;wBACd,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,EAAC;;;KACN;IAED,QAAQ;IACF,mCAAK,GAAX;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,QAAQ;wBACR,KAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,KAAI,CAAC,OAAO,EAAE;4BACd,KAAI,CAAC,OAAO,EAAE,CAAC;yBAClB;wBACD,OAAO,EAAE,CAAC;oBACd,CAAC,CAAC,EAAC;;;KACN;IAED,SAAS;IACH,oCAAM,GAAZ;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;wBAC/B,WAAI,CAAC,OAAO,0CAAE,OAAO,GAAG;wBACxB,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBAEpB,KAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;4BACnB,OAAO,KAAI,CAAC,KAAK,EAAE,CAAC;wBACxB,CAAC,CAAC,CAAC,IAAI,CAAC;4BACJ,OAAO,EAAE,CAAC;wBACd,CAAC,CAAC,CAAC;oBAEP,CAAC,CAAC,EAAC;;;KACN;IAED,MAAM;IACN,qCAAO,GAAP;;QACI,UAAI,CAAC,OAAO,0CAAE,OAAO,GAAG;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAEO,uCAAS,GAAjB;;QACI,eAAe;QACf,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,UAAI,CAAC,OAAO,0CAAE,OAAO,GAAG;gBAExB,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtL,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvD,QAAQ;gBACR,2BAA2B;gBAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;aACxB;SACJ;IACL,CAAC;IAED;;;OAGG;IACH,oCAAM,GAAN,UAAO,MAAM;QAAb,iBAwBC;QAtBG,sBAAsB;QACtB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,QAAQ;YACR,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,UAAC,SAAqD;;gBAChF,yBAAyB;gBACzB,uCAAuC;gBACvC,6BAA6B;gBAC7B,IAAI,KAAI,CAAC,cAAc,EAAE;oBACrB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;wBAC3B,8BAA8B;wBAC9B,WAAI,CAAC,aAAa,0CAAE,IAAI,CAAC,KAAI,EAAE,UAAU,EAAE;qBAC9C;iBACJ;qBAAM;oBACH,4DAA4D;oBAC5D,IAAI,SAAS,CAAC,cAAc,EAAE;wBAC1B,WAAI,CAAC,aAAa,0CAAE,IAAI,CAAC,KAAI,EAAE,QAAQ,EAAE;qBAC5C;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,2CAAa,GAAb,UAAc,MAAM;QAChB,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACtD,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC1C,OAAO;QACP,qDAAqD;QACrD,sDAAsD;QAEtD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,QAAQ,EAAE;YAAE,GAAG,IAAI,QAAQ,GAAG,GAAG,CAAC;SAAE;QACxC,IAAI,SAAS,EAAE;YAAE,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC;SAAE;QAC3C,IAAI,WAAW,EAAE;YAAE,GAAG,IAAI,WAAW,GAAG,GAAG,CAAC;SAAE;QAC9C,IAAI,WAAW,EAAE;YAAE,GAAG,IAAI,WAAW,GAAG,GAAG,CAAC;SAAE;QAC9C,IAAI,GAAG,EAAE;YACL,GAAG,GAAG,MAAM,GAAG,GAAG;SACrB;QACD,OAAO,GAAG,IAAI,GAAG,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,2CAAa,GAAb;;QACI,+BAA+B;QAC/B,UAAI,CAAC,aAAa,0CAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE;IAC9C,CAAC;IAED;;OAEG;IACa,6CAAe,GAA/B;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,kCAAkC;wBAClC,IAAI,KAAI,CAAC,YAAY,EAAE;4BACnB,6CAA6C;4BAC7C,IAAI,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC;4BAE1B,OAAO;4BACP,IAAI,IAAI,GAAQ,EAAE,YAAY,EAAE,KAAI,CAAC,YAAY,EAAE,SAAS,EAAE,KAAI,CAAC,SAAS,EAAE,CAAC;4BAC/E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;gCAC1B,IAAI,CAAC,UAAC,MAAM;gCACR,sCAAsC;gCACtC,0EAA0E;gCAC1E,sBAAsB;gCACtB,OAAO,CAAC,MAAM,CAAC,CAAC;4BACpB,CAAC,CAAC,CAAC;yBACV;6BAAM;4BACH,OAAO,EAAE,CAAC;yBACb;oBACL,CAAC,CAAC,EAAC;;;KACN;IAGD;;;;OAIG;IACU,4CAAc,GAA3B;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,wBAAwB;wBACxB,KAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAI,CAAC,YAAY,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAC,GAAQ;4BACjF,KAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;gCACf,iDAAiD;gCACjD,wCAAwC;gCACxC,uJAAuJ;gCACvJ,UAAU;gCACV,mBAAmB;gCACnB,2GAA2G;gCAC3G,GAAG;gCACH,OAAO,CAAC,GAAG,CAAC,CAAC;4BACjB,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;oBAEP,CAAC,CAAC,EAAC;;;KACN;IAED;;;;OAIG;IACU,8CAAgB,GAA7B;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,KAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAI,CAAC,YAAY,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAC,GAAQ;4BAClF,KAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;gCACf,gBAAgB;gCAChB,uGAAuG;gCACvG,OAAO,CAAC,GAAG,CAAC,CAAC;4BACjB,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,EAAC;;;KACN;IAED;;;OAGG;IACa,sDAAwB,GAAxC,UAAyC,IAAa,EAAE,YAAoB,EAAE,SAAkB;;;;;gBAExF,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBAE/C,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAY,EAAE,MAAW;wBACzC,kCAAkC;wBAClC,IAAI,KAAI,CAAC,YAAY,EAAE;4BACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gCACb,GAAG,EAAE,GAAG;gCACR,IAAI,EAAE,KAAK;gCACX,IAAI,EAAE,EAAE,YAAY,EAAE,KAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;6BAClE,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG;gCACR,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCAC1B,OAAO,CAAC,GAAG,CAAC,CAAC;4BACjB,CAAC,CAAC,CAAC,KAAK,CAAC,WAAC;gCACN,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,EAAC;;;KACN;IAGD;;OAEG;IACG,+CAAiB,GAAvB;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,iBAAiB;wBACjB,iFAAiF;wBACjF,KAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAC,MAAoC;4BAC7D,IAAI,SAAS,GACb;gCACI,QAAQ,EAAE,KAAK;gCACf,YAAY,EAAE,KAAK;gCACnB,cAAc,EAAE,KAAK;6BACxB;4BACD,0EAA0E;4BAC1E,IAAI,MAAM,EAAE;gCACR,iBAAiB;gCACjB,yCAAyC;gCACzC,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gCAC/B,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;gCAC3C,IAAI,QAAQ,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,iBAAiB,GAAE;oCACzC,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oCACzD,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;oCAC5C,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,cAAc,CAAC,CAAC;oCACtE,6BAA6B;oCAC7B,QAAQ;oCACR,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oCACpD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;oCACtC,aAAa;oCACb,SAAS,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;oCAE7B,IAAI,SAAS,CAAC,QAAQ,EAAE;wCACpB,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAI,CAAC,MAAM,EAAE;4CACrC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;yCACjC;6CAAM;4CACH,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;yCACnC;qCACJ;iCACJ;6BACJ;4BACD,OAAO,CAAC,SAAS,CAAC,CAAC;wBACvB,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,EAAC;;;KACN;IAtbe,oCAAgB,GAAW,SAAS,CAAC;IAwdzD,0BAAC;CAAA;AA1dY,kDAAmB;;;;;;;;;;;;;;;;;ACNhC,oDAA4B;AAC5B,6EAAsC;AAEtC,2EAAuC;AACvC,6EAA6B;AAG7B,oDAAoD;AAEpD;;;GAGG;AACH;IA2HI;;;;OAIG;IACH,mBAAY,OAAa,EAAE,KAAY,EAAE,iBAAyB;QAAvC,oCAAY;QAAE,6DAAyB;QAnHlE;;UAEE;QACQ,UAAK,GAAsB,IAAI,CAAC;QAC1C,8BAA8B;QAE9B;;WAEG;QACH,6CAA6C;QACnC,YAAO,GAAQ,IAAI,CAAC;QAE9B;;WAEG;QACO,YAAO,GAAQ,IAAI,CAAC;QAe9B;WACG;QACO,mBAAc,GAAY,KAAK,CAAC;QAqB1C,IAAI;QACM,aAAQ,GAAG,KAAK,CAAC;QAQ3B;;WAEG;QACI,aAAQ,GAAG,KAAK,CAAC;QAwBxB;;YAEI;QACG,WAAM,GAA6E,IAAI,CAAC;QAE/F;;WAEG;QACI,YAAO,GAA8D,IAAI,CAAC;QAEjF;;WAEG;QACI,YAAO,GAA6E,IAAI,CAAC;QAEhG;;WAEG;QACI,aAAQ,GAA8D,IAAI,CAAC;QAS9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,sCAAsC;QACtC,gDAAgD;QAChD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,GAAG,EAAE,CAAC;SACd;IACL,CAAC;IAlFD,sBAAI,6BAAM;QAFV;WACG;aACH;;YACI,aAAO,IAAI,CAAC,KAAK,0CAAE,SAAS,CAAC;QACjC,CAAC;;;OAAA;IAMD,sBAAW,oCAAa;QAHxB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;;;OAAA;IAOD,sBAAW,8BAAO;QAHlB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;;;OAAA;IAUD,sBAAW,mCAAY;QAHvB;;WAEG;aACH;YACI,gCAAgC;YAChC,oDAAoD;YACpD,sBAAsB;YACtB,2DAA2D;YAC3D,sBAAsB;YACtB,+DAA+D;YAC/D,0BAA0B;YAC1B,OAAO;YACP,GAAG;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACnC,CAAC;;;OAAA;IA4CD;;OAEG;IACI,uBAAG,GAAV;QAAA,iBA8EC;QA5EG,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACvC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC,IAAI,CAAC;YAEJ,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,SAAS;YACd,KAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACrC,KAAI,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,8CAA8C;YAC9C,yCAAyC;YACzC,0BAA0B;YAC1B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,CAAC,CAAC;oBACE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBACnC,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC3B,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC9B,KAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,2CAA2C;YAC3C,KAAK;QAET,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,EAAE;YACR,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,mBAAmB;YACnB,gBAAgB;YAChB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,EAAE,YAAY,KAAK,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAC3B;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACnB;QAEL,CAAC,CAAC,CAAC,OAAO,CAAC;YACP,aAAa;YACb,KAAI,CAAC,cAAc,EAAE,CAAC;YACtB,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,MAAM;YACN,KAAI,CAAC,aAAa,EAAE,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACxB,KAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,IAAI,EAAE,YAAY,KAAK,EAAE;oBACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;iBAC3B;qBAAM;oBACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACnB;YACL,CAAC,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC;IAEP,CAAC;IAQD,gGAAgG;IAChG,oDAAoD;IAEpD;;;;OAIG;IACO,mCAAe,GAAzB,UAA0B,OAAO,EAAE,MAAM;QAAzC,iBAoFC;QAnFG,+BAA+B;QAC/B,UAAU;QACV,IAAM,MAAM,GAAG;YACX,OAAO,EAAE,UAAC,CAAoB,EAAE,CAA2B;gBACvD,IAAI,GAAG,GAAG,IAAI,CAAC;gBACf,IAAI,KAAI,CAAC,MAAM,EAAE;oBACb,GAAG,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,EAAE,KAAI,EAAE,CAAC,CAAC,CAAC;oBACtC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;iBAChC;gBACD,OAAO,GAAG,CAAC;YACf,CAAC;YAED,KAAK,EAAE,UAAC,CAAoB,EAAE,CAAqB;;gBAC/C,QAAQ;gBACR,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAE/B,WAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAI,EAAE,KAAI,EAAE,CAAC,EAAE;YACtC,CAAC;YAED,MAAM,EAAE,UAAC,CAAoB,EAAE,CAA2B;gBACtD,SAAS;gBACT,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAC,MAAM;oBAC1C,EAAE;oBACF,IAAI,MAAM,KAAK,IAAI,EAAE;wBACjB,IAAI,GAAG,GAAG,IAAI,CAAC;wBACf,IAAI,KAAI,CAAC,OAAO,EAAE;4BACd,GAAG,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAI,EAAE,KAAI,EAAE,CAAC,CAAC,CAAC;4BACvC,+BAA+B;4BAC/B,uBAAuB;4BACvB,4CAA4C;4BAE5C,aAAa;4BACb,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;gCACpB,4BAA4B;gCAC5B,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;6BAC7C;yBAEJ;wBACD,aAAa;qBAChB;yBAAM;wBACH,MAAM;wBACN,yBAAyB;wBACzB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;qBACnB;gBACL,CAAC,EAAE,KAAI,CAAC,CAAC;YACb,CAAC;YAED,MAAM,EAAE,UAAC,CAAoB,EAAE,CAAqB;;gBAChD,QAAQ;gBACR,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAEhC,WAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,KAAI,EAAE,KAAI,EAAE,CAAC,EAAE;YACvC,CAAC;SACJ;QAED,cAAc;QACd,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,gDAAgD;QAChD,mBAAmB;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,2FAA2F;QAC3F,6EAA6E;QAC7E,gDAAgD;QAChD,kFAAkF;QAElF,yCAAyC;QACzC,0CAA0C;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;YAClC,SAAS,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC;YAE5C,+BAA+B;YAC/B,iCAAiC;YACjC,qDAAqD;YACrD,sDAAsD;SACzD;QAED,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxF,eAAe;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAG3D,OAAO,EAAE,CAAC;IACd,CAAC;IAQD,6BAA6B;IAG7B;;;;OAIG;IACO,4BAAQ,GAAlB,UAAmB,OAAO,EAAE,MAAM;QAC9B,wBAAwB;QACxB,CAAC,CAAC,IAAI,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACO,+BAAW,GAArB,UAAsB,OAAO,EAAE,MAAM;QACjC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;MAEE;IACM,iCAAa,GAArB;QACI,MAAM;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,uBAAuB;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACxC;IACL,CAAC;IAAA,CAAC;IAEF;;MAEE;IACQ,6BAAS,GAAnB,cAAwB,CAAC;IAAA,CAAC;IAE1B;;OAEG;IACH,kCAAc,GAAd;;QACI,iBAAiB;QACjB,UAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE;QAC5C,6DAA6D;QAC7D,IAAI,QAAQ,GAAgB,IAAI,CAAC,OAAO,CAAC;QACzC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1B;QACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,2BAAO,GAAP;QACI,OAAO;QACP,6DAA6D;QAC7D,IAAI,QAAQ,GAAgB,IAAI,CAAC,OAAO,CAAC;QACzC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1B;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,wBAAI,GAAJ,UAAK,SAAU;QAAf,iBAeC;QAdG,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO;SAAE;QAC7B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE;YAClD,IAAI,SAAS,KAAK,KAAK,EAAE;gBACrB,iBAAiB;gBACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;iBAAM;gBACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;SACJ;aAAM;YACH,qBAAqB;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACd,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACH,yBAAK,GAAL,UAAM,YAAkB;QAEpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAGD;;OAEG;IACH,qCAAiB,GAAjB;QAAA,iBASC;QARG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,UAAC,CAAC;YAC5B,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;gBAClC,IAAI,KAAI,CAAC,iBAAiB,EAAE;oBACxB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;iBACvB;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,uCAAmB,GAAnB,UAAoB,QAAQ;QAA5B,iBAsBC;QArBG,IAAI,QAAQ,EAAE;YACV,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SACpC;aAAM;YACH,wBAAwB;YACxB,iCAAiC;YACjC,IAAI,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC7C,IAAI,OAAK,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,KAAK;gBAClB,IAAI,GAAG,GAAc,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACvD,OAAO;gBACP,oBAAoB;gBACpB,IAAI,GAAG,IAAI,GAAG,IAAI,KAAI,EAAE;oBACpB,IAAI,GAAG,CAAC,MAAM,EAAE;wBACZ,OAAK,EAAE,CAAC;qBACX;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,IAAI,OAAK,KAAK,CAAC,EAAE;gBACb,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;aACvC;SACJ;IACL,CAAC;IAED;;;;;;;;OAQG;IACO,iCAAa,GAAvB,UAAwB,cAAmD,EAAE,aAAkD;QAE3H,IAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,cAAc,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,KAAK;YACrC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;YAEpB,IAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YACnB,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YACnB,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YACnB,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YAEnB,SAAS;YACT,IAAI,YAAY,GAAG,YAAY,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;aAAE;YAC/C,IAAI,YAAY,GAAG,YAAY,EAAE;gBAAE,OAAO,CAAC,CAAC;aAAE;YAE9C,IAAI;YACJ,IAAI,IAAI,GAAG,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;aAAE;YAC/B,IAAI,IAAI,GAAG,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC;aAAE;YAE9B,IAAI;YACJ,IAAI,IAAI,GAAG,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;aAAE;YAC/B,IAAI,IAAI,GAAG,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC;aAAE;YAE9B,OAAO,CAAC,CAAC;QAEb,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACO,mCAAe,GAAzB,UAA0B,MAA8B,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ;QAC7F,IAAM,SAAS,GAAiC;YAC5C,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,UAAU;YACtB,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAQ;SACrB,CAAC;QACF,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,+BAAW,GAAX,UAAY,KAAY,EAAE,sBAAgC;QAEtD,IAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAElC,sBAAsB,CAAC,OAAO,CAAC,UAAC,YAAY;YACxC,MAAM,CAAC,OAAO,CAAC,UAAC,IAAI;gBAChB,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;oBACpB,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClD;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IA5iBD,EAAE;IACc,kBAAQ,GAAG,QAAQ,CAAC;IACpC,EAAE;IACc,mBAAS,GAAG,mBAAmB,CAAC;IAChD,EAAE;IACc,2BAAiB,GAAG,GAAG,GAAG,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC;IAEpD,8BAAoB,GAAG,sBAAsB,CAAC;IAqB9D;;OAEG;IACuB,uBAAa,GAAG;QACtC,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;QAC1C,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;KAC7C,CAAC;IA0gBN,gBAAC;CAAA;AA/iBqB,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZ/B,6EAA4B;AAC5B,sFAAgD;AAChD,2EAAuC;AACvC,0FAAoC;AAmBpC;;GAEG;AACH;IA2EI;;;;;OAKG;IACH,kBAAY,YAAqB,EAAE,aAAuB;QApE1D;;WAEG;QACO,mBAAc,GAAY,KAAK,CAAC;QAS1C,IAAI;QACJ,qBAAgB,GAA0B;YACtC,WAAW,EAAE,YAAY;YACzB,YAAY,EAAE,eAAe;YAC7B,aAAa,EAAE,aAAa;SAC/B;QASD,IAAI;QACM,aAAQ,GAAG,KAAK,CAAC;QAQ3B;;WAEG;QACI,aAAQ,GAAG,KAAK,CAAC;QA+BpB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7D,qFAAqF;QACrF,aAAa;IACjB,CAAC;IApDD,sBAAI,mCAAa;QAHjB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;;;OAAA;IAOD,sBAAI,6BAAO;QAHX;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;;;OAAA;IAmBD,sBAAI,gCAAU;QAHd;;WAEG;aACH;YACI,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;;;OAAA;IAsBD;;OAEG;IACH,sBAAG,GAAH;QAAA,iBA+EC;QA9EG,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAE9B,mBAAmB;gBACnB,WAAW;gBACX,kBAAkB;gBAClB,kCAAkC;gBAClC,KAAK;YAET,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC,IAAI,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC/B,KAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,EAAE;YACR,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,mBAAmB;YACnB,gBAAgB;YAChB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,EAAE,YAAY,KAAK,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAC3B;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACnB;QAEL,CAAC,CAAC,CAAC,OAAO,CAAC;YACP,aAAa;YACb,KAAI,CAAC,cAAc,EAAE,CAAC;YACtB,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,MAAM;YACN,KAAI,CAAC,aAAa,EAAE,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACxB,KAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,IAAI,EAAE,YAAY,KAAK,EAAE;oBACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;iBAC3B;qBAAM;oBACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBACnB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAID;;;OAGG;IACW,6BAAU,GAAxB,UAAyB,OAAO,EAAE,MAAM;;;gBAEpC,aAAa;gBACb,mDAAmD;gBACnD,gBAAgB;gBAChB,wBAAwB;gBACxB,wBAAwB;gBACxB,+BAA+B;gBAC/B,wBAAwB;gBACxB,4BAA4B;gBAC5B,4CAA4C;gBAC5C,iBAAiB;gBACjB,gBAAgB;gBAChB,mBAAmB;gBACnB,WAAW;gBACX,eAAe;gBACf,KAAK;gBAEL,SAAS;gBACT,OAAO,CAAC,GAAG,CACP;oBACI,IAAI,CAAC,UAAU,EAAE;iBAEpB,CACJ,CAAC,IAAI,CAAC,UAAC,MAAM;oBACV,QAAQ;oBACR,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,CAAC;oBACP,KAAK;oBACL,MAAM,EAAE,CAAC;gBACb,CAAC,CAAC,CAAC,OAAO,CAAC;gBACX,CAAC,CAAC,CAAC;;;;KACN;IAED;;;;OAIG;IACH,uDAAuD;IACvD,+CAA+C;IACrC,6BAAU,GAApB,UAAqB,OAAO,EAAE,MAAM;QAChC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,0BAAO,GAAf,UAAgB,OAAO,EAAE,MAAM;QAA/B,iBAYC;QAXG,iBAAiB;QACjB,CAAC,CAAC;YACE,mCAAmC;YACnC,kDAAkD;YAClD,sBAAsB;YACtB,sCAAsC;YACtC,SAAS;YAET,YAAY;YACZ,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAAA,CAAC;IAEF;;;;OAIG;IACH,0CAA0C;IAChC,wBAAK,GAAf,UAAgB,OAAO,EAAE,MAAM;QAC3B,OAAO,EAAE,CAAC;IACd,CAAC;IAAA,CAAC;IASF;;;;OAIG;IACH,gDAAgD;IAChD,sDAAsD;IACtD,8CAA8C;IACpC,4BAAS,GAAnB,UAAoB,OAAO,EAAE,MAAM;QAC/B,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;OAGG;IACa,+BAAY,GAA5B,UAA6B,OAAO,EAAE,MAAM;;;;gBACxC,OAAO;gBAEP,8BAA8B;gBAC9B,sCAAsC;gBACtC,kDAAkD;gBAClD,oBAAoB;gBACpB,SAAS;gBACT,KAAK;gBAEL,WAAW;gBACX,4BAA4B;gBAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,UAAC,GAAG;oBACrC,IAAI,GAAG,IAAI,MAAM,EAAE;wBACf,KAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC;4BACzB,OAAO,EAAE,CAAC;wBACd,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,OAAO,EAAE,CAAC;qBACb;gBACL,CAAC,CAAC,CAAC;;;;KACN;IAED;;;;;;OAMG;IACO,8BAAW,GAArB,UAAsB,OAAO,EAAE,MAAM;QACjC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;MAEE;IACM,gCAAa,GAArB;QACI,MAAM;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,uBAAuB;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACxC;QAED,oBAAoB;QACpB,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IAAA,CAAC;IAEF;;MAEE;IACQ,4BAAS,GAAnB,cAAwB,CAAC;IAAA,CAAC;IAG1B;;OAEG;IACH,iCAAc,GAAd;QAEI,UAAU;QACV,wCAAwC;QAExC,IAAI,QAAQ,GAAgB,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1B;QACD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,0BAAO,GAAP;QACI,IAAI,QAAQ,GAAgB,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC1B;QACD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACW,6BAAU,GAAxB;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC;4BAC5C,IAAI,CAAC,UAAC,MAAM;4BACR,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;4BAChC,iGAAiG;4BACjG,sBAAsB;4BACtB,EAAE;4BACF,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,CAAC;4BAClD,qDAAqD;4BACrD,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,CAAC,CAAC;4BAEnE,uBAAuB;4BACvB,iGAAiG;4BACjG,2BAA2B;4BAC3B,qBAAqB;4BACrB,0CAA0C;4BAC1C,GAAG;4BAEH,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpB,CAAC,CAAC,CAAC;oBACX,CAAC,CAAC,EAAC;;;KACN;IAED;;;OAGG;IACa,mCAAgB,GAAhC;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAE/B,IAAI,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;wBACjD,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;wBAElC,IAAI,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;wBAC7C,IAAI,SAAS,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC;wBAEvC,qBAAqB;wBACrB,iBAAiB;wBACjB,IAAI,KAAI,CAAC,aAAa,EAAE;4BACpB,eAAe;4BACf,SAAS,GAAG,IAAI,CAAC;yBACpB;wBAGD,KAAI,CAAC,mBAAmB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;wBACrG,KAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;wBAC3D,KAAI,CAAC,mBAAmB,CAAC,aAAa,GAAG,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;wBACvE,MAAM;wBACN,KAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,WAAC;;4BAExC,OAAO;4BACP,YAAY;4BACZ,MAAM;4BACN,WAAI,CAAC,mBAAmB,0CAAE,KAAK,GAAG,IAAI,CAAC;gCACnC,OAAO,EAAE,CAAC;4BACd,CAAC,EAAE;wBACP,CAAC,CAAC;oBACN,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACa,2CAAwB,GAAxC;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;wBAC/B,oBAAoB;wBACpB,KAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAC;wBAEvD,8BAA8B;wBAC9B,IAAI,KAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;4BACpC,QAAQ;4BACR,YAAY;4BACZ,OAAO,CAAC,MAAM,CAAC,CAAC;4BAChB,OAAO;yBACV;wBAED,WAAI,CAAC,gBAAgB,0CAAE,EAAE,CAAC,OAAO,EAAE,cAAQ,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE;wBAE3E,OAAO;wBACP,iCAAiC;wBACjC,oDAAoD;wBACpD,oBAAoB;wBACpB,QAAQ;wBACR,UAAU;wBACV,gBAAgB;wBAChB,GAAG;wBAEH,OAAO,CAAC,MAAM,CAAC,CAAC;oBAEpB,CAAC,CAAC,EAAC;;;KACN;IAED,MAAM;IACE,uCAAoB,GAA5B;QAEI,OAAO;QACP,8CAA8C;QAC9C,sEAAsE;QACtE,wBAAwB;QACxB,+GAA+G;QAC/G,SAAS;QACT,gCAAgC;QAChC,uCAAuC;QACvC,uCAAuC;QACvC,6DAA6D;QAC7D,0CAA0C;QAC1C,uKAAuK;QACvK,UAAU;QACV,cAAc;QACd,kDAAkD;QAClD,oEAAoE;QACpE,yDAAyD;QACzD,gDAAgD;QAChD,+JAA+J;QAC/J,kBAAkB;QAClB,2BAA2B;QAC3B,mHAAmH;QACnH,wEAAwE;QACxE,qEAAqE;QACrE,gCAAgC;QAChC,gGAAgG;QAChG,0CAA0C;QAC1C,oCAAoC;QACpC,4DAA4D;QAC5D,qBAAqB;QACrB,oBAAoB;QACpB,4BAA4B;QAC5B,kDAAkD;QAClD,WAAW;QACX,SAAS;QACT,GAAG;QAGH,uDAAuD;QACvD,0CAA0C;QAC1C,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;YACvC,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;QACD,0CAA0C;QAC1C,uDAAuD;QACvD,gCAAgC;QAChC,uCAAuC;QACvC,uCAAuC;QACvC,wCAAwC;QACxC,qKAAqK;QACrK,GAAG;aACE;YAED,mFAAmF;YACnF,2BAA2B;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;IACL,CAAC;IAED;;;OAGG;IACa,+BAAY,GAA5B,UAA6B,MAAsB;QAAtB,sCAAsB;;;;gBAE/C,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,2CAA2C;wBAC3C,IAAI,CAAC,KAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;4BACxC,QAAQ;4BACR,4CAA4C;4BAC5C,KAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,UAAC,GAAQ;;gCAEpD,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oCACd,OAAO,EAAE,CAAC;oCACV,OAAO;iCACV;gCAED,IAAI,GAAG,CAAC,IAAI,IAAI,UAAG,CAAC,IAAI,0CAAE,MAAM,MAAK,OAAO,EAAE;oCAC1C,kCAAkC;oCAClC,iBAAiB;oCACjB,mJAAmJ;oCACnJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,aAAC,GAAG,CAAC,IAAI,0CAAE,QAAQ,0CAAE,YAAY,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;iCAE5I;qCAAM;oCACH,aAAa;oCACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;oCAGrG,0DAA0D;oCAC1D,uDAAuD;oCACvD,kBAAkB;oCAClB,kFAAkF;oCAClF,4BAA4B;oCAC5B,sBAAsB;oCACtB,8CAA8C;oCAC9C,OAAO;oCACP,MAAM;oCAEN,IAAI,MAAM,KAAK,IAAI,EAAE;wCACjB,cAAc;wCACd,KAAI,CAAC,4BAA4B,EAAE,CAAC;qCACvC;iCACJ;gCACD,EAAE;gCACF,OAAO,EAAE,CAAC;4BACd,CAAC,CAAC,CAAC;yBACN;6BAAM;4BACH,OAAO,EAAE,CAAC;yBACb;oBACL,CAAC,CAAC,EAAC;;;KAEN;IAAA,CAAC;IAEF;;;OAGG;IACa,iCAAc,GAA9B,UAA+B,MAAsB;QAAtB,sCAAsB;;;;gBAEjD,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAE/B,IAAI,KAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;4BACnC,OAAO;4BACP,IAAI,KAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;gCACvC,0BAA0B;gCAC1B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,UAAC,MAAM;oCACrC,IAAI,MAAM,KAAK,IAAI,EAAE;wCACjB,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,UAAC,GAAQ;4CACtD,cAAc;4CACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;4CACrG,IAAI,MAAM,KAAK,IAAI,EAAE;gDACjB,sBAAsB;gDACtB,KAAI,CAAC,4BAA4B,EAAE,CAAC;6CACvC;4CACD,EAAE;4CACF,OAAO,EAAE,CAAC;wCACd,CAAC,CAAC,CAAC;qCACN;yCAAM;wCACH,EAAE;wCACF,OAAO,EAAE,CAAC;qCACb;gCACL,CAAC,CAAC,CAAC;gCACH,uDAAuD;gCACvD,0BAA0B;gCAC1B,iCAAiC;gCACjC,iCAAiC;gCACjC,oCAAoC;gCACpC,iKAAiK;6BACpK;iCAAM;gCACH,OAAO,EAAE,CAAC;6BACb;yBACJ;6BAAM;4BACH,OAAO,EAAE,CAAC;yBACb;oBACL,CAAC,CAAC,EAAC;;;KACN;IAAA,CAAC;IAIF,MAAM;IACE,0CAAuB,GAA/B;QAEI,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAGrC,4EAA4E;YAC5E,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAE5J,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;gBACvC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;gBACtD,+CAA+C;gBAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;oBACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;iBACrE;aACJ;iBAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE;gBAChD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;gBACzD,kDAAkD;gBAClD,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;oBACpC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;iBACtE;aAGJ;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;gBACxD,gDAAgD;gBAChD,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;oBACrC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;iBACvE;aAEJ;SACJ;IACL,CAAC;IAAA,CAAC;IAEF,MAAM;IACI,0BAAO,GAAjB;QACI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,gBAAgB;QAChB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACpH,CAAC;IAAA,CAAC;IAEF,MAAM;IACI,gCAAa,GAAvB,UAAwB,KAAwC;QAC5D,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YACnC,IAAI,KAAK,KAAK,QAAQ,EAAE;gBACpB,+DAA+D;gBAC/D,aAAa;gBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;aACxG;iBACI,IAAI,KAAK,KAAK,UAAU,EAAE;gBAC3B,eAAe;gBACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;aACxG;iBACI;gBACD,sBAAsB;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;aACxG;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAAA,CAAC;IAEF;;;OAGG;IACO,+CAA4B,GAAtC;QACI,gBAAgB;IACpB,CAAC;IAAA,CAAC;IAEF;;OAEG;IACO,6CAA0B,GAApC,UAAqC,YAAqB,EAAE,cAAuB;QAC/E,MAAM;IACV,CAAC;IAAA,CAAC;IACF,yIAAyI;IAEzI;;;;;OAKG;IACO,yDAAsC,GAAhD,UAAiD,MAAM,EAAE,cAAmD;QAA5G,iBA2FC;QAzFG,IAAM,aAAa,GAAwC,EAAE,CAAC;QAE9D,mBAAmB;QACnB,yBAAyB;QAEzB,eAAe;QACf,iDAAiD;QACjD,uCAAuC;QACvC,iDAAiD;QACjD,KAAK;QAEL,UAAU;QACV,MAAM,CAAC,OAAO,CAAC,eAAK;YAEhB,iBAAiB;YACjB,kDAAkD;YAClD,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACtB,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YAEtC,8BAA8B;YAC9B,IAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,sBAAsB;YACtB,IAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,0CAA0C;YAC1C,IAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,kBAAkB;YAClB,IAAM,IAAI,GAAG,kBAAkB,CAAC;YAChC,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,oBAAoB;YACpB,IAAI,OAAO,IAAI,IAAI,EAAE;gBACjB,QAAQ;gBAER,4BAA4B;gBAE5B,kDAAkD;gBAElD,mBAAmB;gBACnB,IAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,SAAS,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,IAAI,SAAS,EAAd,CAAc,CAAC,IAAI,IAAI,EAA7C,CAA6C,CAAC,CAAC;gBACjG,eAAe;gBACf,IAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;gBAC3C,uBAAuB;gBACvB,IAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,YAAY,EAAtB,CAAsB,CAAC,CAAC;gBACjE,aAAa;gBACb,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE;oBAEjB,YAAY;oBAEZ,OAAO;oBACP,IAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;oBAE/C,gCAAgC;oBAChC,gCAAgC;oBAChC,IAAM,UAAU,GAAG,WAAW,CAAC;oBAE/B,mBAAmB;oBACnB,IAAM,SAAS,GAAiC,KAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;oBAEnL,yBAAyB;oBAEzB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAE9B,2BAA2B;oBAC3B,kDAAkD;oBAClD,qCAAqC;oBACrC,cAAc;oBACd,+BAA+B;oBAC/B,wCAAwC;oBACxC,kEAAkE;oBAClE,4FAA4F;iBAE/F;aAEJ;iBAAM;gBACH,WAAW;gBAEX,qBAAqB;aAExB;QACL,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,eAAe;QACf,wCAAwC;QACxC,sCAAsC;QACtC,KAAK;QAEL,6BAA6B;QAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;OAQG;IACO,kCAAe,GAAzB,UAA0B,MAA8B,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ;QAC7F,IAAM,SAAS,GAAiC;YAC5C,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,UAAU;YACtB,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAQ;SACrB,CAAC;QACF,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACO,gCAAa,GAAvB,UAAwB,cAAmD,EAAE,aAAkD;QAE3H,IAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,cAAc,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,KAAK;YACrC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;YAEpB,IAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YACnB,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YACnB,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YACnB,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YAEnB,SAAS;YACT,IAAI,YAAY,GAAG,YAAY,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;aAAE;YAC/C,IAAI,YAAY,GAAG,YAAY,EAAE;gBAAE,OAAO,CAAC,CAAC;aAAE;YAE9C,IAAI;YACJ,IAAI,IAAI,GAAG,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;aAAE;YAC/B,IAAI,IAAI,GAAG,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC;aAAE;YAE9B,IAAI;YACJ,IAAI,IAAI,GAAG,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;aAAE;YAC/B,IAAI,IAAI,GAAG,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC;aAAE;YAE9B,OAAO,CAAC,CAAC;QAEb,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACO,0CAAuB,GAAjC,UAAkC,WAAkB;QAEhD,UAAU;QACV,IAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAnD,CAAmD,CAAC,CAAC;QAE7F,UAAU;QACV,IAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAApD,CAAoD,CAAC,CAAC;QAEjG,UAAU;QACV,IAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAArD,CAAqD,CAAC,CAAC;QAElG,OAAO;YACH,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,UAAU;SACzB,CAAC;IACN,CAAC;IAED;;;;;;;;;;OAUG;IACO,oCAAiB,GAA3B,UAA4B,WAAkB,EAAE,OAAc,EAAE,MAAc,EAAE,eAAwB;QAEpG,UAAU;QACV,yKAAyK;QACzK,8GAA8G;QAC9G,IAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAArD,CAAqD,CAAC,CAAC;QAE/F,aAAa;QACb,IAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAErD,sEAAsE;QACtE,2EAA2E;QAC3E,+CAA+C;QAC/C,IAAI,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpC,2BAA2B;QAC3B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE9C,eAAe;QACf,IAAI,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAElE,4CAA4C;QAC5C,uDAAuD;QACvD,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,UAAC,EAAE,IAAO,OAAO,EAAE,EAAC,CAAC,CAAC,CAAC;QAE7D,uCAAuC;QACvC,cAAc;QACd,+EAA+E;QAC/E,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAC,IAAI,mBAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAApC,CAAoC,CAAC,CAAC;QAE9E,WAAW;QACX,4BAA4B;QAC5B,iFAAiF;QACjF,WAAW;QACX,oBAAoB;QACpB,mDAAmD;QACnD,qCAAqC;QACrC,KAAK;QAEL,sBAAsB;QACtB,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAE5B,UAAU;QACV,IAAI,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,CAAC;YAElC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;gBACrD,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE;oBACxD,4BAA4B;oBAC5B,IAAI,eAAe,EAAE;wBACjB,kDAAkD;wBAClD,IAAM,UAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;wBAC3B,IAAI,YAAY,CAAC,OAAO,CAAC,UAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;4BACtC,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,CAAC,IAAI,UAAQ,EAArB,CAAqB,CAAC,CAAC;4BACzD,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE;gCAC/C,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;6BAC/C;yBACJ;qBACJ;oBACD,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,IAAM,UAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC3B,IAAI,YAAY,CAAC,OAAO,CAAC,UAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;wBACtC,eAAe;wBACf,0DAA0D;wBAC1D,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,MAAM,CAAC,IAAI,UAAQ,EAArB,CAAqB,CAAC,CAAC;wBACzD,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE;4BAC/C,4BAA4B;4BAC5B,IAAI,eAAe,EAAE;gCACjB,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;6BAC/C;4BACD,OAAO,IAAI,CAAC;yBACf;qBACJ;iBACJ;aACJ;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,IAAI,eAAe,IAAI,kBAAkB,CAAC,MAAM,IAAI,CAAC,EAAE;YACnD,2BAA2B;YAC3B,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEhD,8BAA8B;YAC9B,IAAM,kBAAgB,GAAG,EAAE,CAAC;YAC5B,+BAA+B;YAC/B,IAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,UAAC,CAAC,IAAK,aAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAnD,CAAmD,CAAC,CAAC;YACzG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,UAAC,CAAC;gBACxB,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAC,EAAE;oBAC7B,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE;wBAC1B,kBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBAC5B;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,yCAAyC;YACzC,IAAM,oBAAoB,GAAG,CAAC,CAAC,UAAU,CAAC,kBAAgB,EAAE,UAAU,CAAC,CAAC;YACxE,mBAAmB;YACnB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SACxD;QAED,OAAO;YACH,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,UAAU;SACzB,CAAC;IACN,CAAC;IAED;;;;;;;OAOG;IACH,wCAAqB,GAArB,UAAsB,QAAe,EAAE,kBAAyB,EAAE,MAAc;QAE5E,wBAAwB;QACxB,IAAM,aAAa,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAM,uBAAuB,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAEhE,aAAa,CAAC,OAAO,CAAC,UAAC,IAAI;YAEvB,iCAAiC;YACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE;gBAExD,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAEtC;iBAAM,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;gBAEhE,IAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAC,CAAM,IAAK,QAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAzB,CAAyB,CAAC,CAAC;gBACnF,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aAE1B;iBAAM,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;gBAEjE,CAAC,CAAC,MAAM,CAAC,uBAAuB,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAzB,CAAyB,CAAC,CAAC;aAEvE;QAEL,CAAC,CAAC,CAAC;QAEH,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACO,6BAAU,GAApB,UAAqB,WAAkB,EAAE,aAAc;QAEnD,mBAAmB;QACnB,4DAA4D;QAC5D,2DAA2D;QAC3D,6DAA6D;QAC7D,8DAA8D;QAC9D,6DAA6D;QAC7D,8DAA8D;QAC9D,IAAI;QAEJ,OAAO;QAEP,WAAW;QACX,2BAA2B;QAC3B,uBAAuB;QAEvB,OAAO;QACP,mCAAmC;QACnC,uBAAuB;QAEvB,OAAO;QACP,oCAAoC;QACpC,uBAAuB;QACvB,KAAK;QACL,uBAAuB;QAEvB,OAAO;QACP,oCAAoC;QACpC,4CAA4C;QAC5C,KAAK;QACL,uBAAuB;QAEvB,IAAI,aAAa,IAAI,IAAI,EAAE;YAEvB,IAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAErD,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,UAAC,GAAU;gBACzB,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,IAAI;oBAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBACvB,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SAEN;aAAM;YAEH,IAAI,SAAO,GAAG,CAAC,CAAC;YAChB,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,UAAC,IAAI;gBACxB,IAAI,CAAC,OAAO,GAAG,SAAO,CAAC;gBACvB,SAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;SAEN;IAEL,CAAC;IAED;;;OAGG;IACH,0CAAuB,GAAvB,UAAwB,IAAW;QAE/B,0BAA0B;QAE1B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI;YAEpB,mBAAmB;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,OAAO,IAAI,CAAC;aACf;YAED,mBAAmB;YACnB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,OAAO,IAAI,CAAC;aACf;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,8BAAW,GAAX,UAAY,QAAgB,EAAE,IAAI,EAAE,QAAgB;QAApD,iBASC;QARG,IAAM,OAAO,GAAG,IAAI,iBAAK,CAAC,EAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,IAAI;YACpB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvB,KAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC,EAAE,UAAC,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YACxE,iBAAiB;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAGD;;;;OAIG;IACH,iCAAc,GAAd,UAAe,QAAgB,EAAE,QAAgB;QAC7C,sBAAsB;QAEtB,IAAM,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;QAE1C,IAAM,IAAI,GAAG;YACT,OAAO,EAAE,OAAO;SACnB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACb,GAAG,EAAE,yBAAyB;YAC9B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACO,uCAAoB,GAA9B,UAA+B,iBAAsC,EAAE,UAAU;QAE7E,iBAAiB;QACjB,IAAM,wBAAwB,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,EAAxE,CAAwE,CAAC,CAAC;QAEvI,4BAA4B;QAC5B,IAAI,CAAC,wBAAwB,IAAI,UAAU,CAAC,OAAO,IAAI,IAAI,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI,EAAE;YAC1F,iBAAiB,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,UAAU,EAAE,UAAU,CAAC,UAAU;aACpC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;OAIG;IACH,8BAAW,GAAX,UAAY,KAAY,EAAE,sBAAgC;QAEtD,IAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAElC,sBAAsB,CAAC,OAAO,CAAC,UAAC,YAAY;YACxC,MAAM,CAAC,OAAO,CAAC,UAAC,IAAI;gBAChB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;oBAC9D,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClD;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACO,0CAAuB,GAAjC,UAAkC,KAAK;QACnC,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7R,CAAC;IAED;;;;;;OAMG;IACO,6BAAU,GAApB,UAAqB,IAAW,EAAE,UAAkB,EAAE,cAAoB,EAAE,EAAU,EAAE,UAA2B;QAA3B,+CAA2B;QAE/G,0BAA0B;QAC1B,IAAM,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAA3G,CAA2G,CAAC,CAAC;QAE/J,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC,CAAC;QAElE,OAAO,CAAC,OAAO,CAAC,UAAC,QAAQ;YAErB,gBAAgB;YAChB,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,CAAC,IAAI,QAAQ,EAAzB,CAAyB,CAAC,CAAC;YAElE,kBAAkB;YAClB,uFAAuF;YAEvF,IAAI,gBAAgB,GAAG,KAAK,CAAC;oCAGpB,MAAM;gBACX,IAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,EAAnB,CAAmB,CAAC;gBAChE,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,KAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,GAAE;oBACrG,gBAAgB,GAAG,IAAI,CAAC;iBAC3B;;YALL,qCAAqC;YACrC,KAAmB,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa;gBAA3B,IAAI,MAAM;wBAAN,MAAM;aAKd;YAED,sBAAsB;YACtB,IAAI,gBAAgB,EAAE;gBAElB,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,CAAC,IAAI,QAAQ,EAAzB,CAAyB,CAAC,CAAC;gBAE3D,gBAAgB;gBAChB,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;gBAEzC,sBAAsB;gBACtB,IAAI,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAxI,CAAwI,CAAC,CAAC;gBAC/L,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;gBAEvE,uBAAuB;gBACvB,IAAM,cAAc,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;gBAEzE,IAAI,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;gBAE/D,IAAI,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,WAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAd,CAAc,CAAC,GAAG,CAAC,CAAC;gBAEpE,qCAAqC;gBACrC,KAAiB,UAAoB,EAApB,6CAAoB,EAApB,kCAAoB,EAApB,IAAoB,EAAE;oBAAlC,IAAI,IAAI;oBACT,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC7C,YAAY,EAAE,CAAC;iBAClB;gBAED,IAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,IAAI,EAApB,CAAoB,CAAC,CAAC;gBAEzE,2DAA2D;gBAC3D,IAAI,CAAC,UAAU,EAAE;oBACb,eAAe,CAAC,OAAO,CAAC,cAAI;wBACxB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC3D,CAAC,CAAC,CAAC;iBACN;gBAED,oBAAoB;gBACpB,KAAiB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;oBAA5B,IAAI,IAAI;oBACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC5B,KAAK,EAAE,CAAC;iBACX;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACO,0CAAuB,GAAjC,UAAkC,UAAwC,EAAE,SAAgB,EAAE,UAAkB,EAAE,cAAqB,EAAE,EAAU;QAAnJ,iBA2GC;QAzGG,gBAAgB;QAChB,IAAM,aAAa,GAAwC,EAAE,CAAC;QAE9D,IAAM,qBAAqB,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,IAAI,eAAe,EAAzB,CAAyB,CAAC,CAAC;QAC5F,IAAM,yBAAyB,GAAG,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC;QAEzF,aAAa;QACb,IAAM,wBAAwB,GAAG,SAAS,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAA3G,CAA2G,CAAC,CAAC;QAEpK,0BAA0B;QAC1B,IAAM,0BAA0B,GAAG,wBAAwB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,EAAzB,CAAyB,CAAC,CAAC;QAEnG,iBAAiB;QACjB,IAAM,4BAA4B,GAAG,0BAA0B,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,EAA5B,CAA4B,CAAC,CAAC;QAC1G,4BAA4B,CAAC,OAAO,CAAC,UAAC,IAAI;YACtC,IAAM,SAAS,GAAG,KAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9O,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAM,yBAAyB,GAAG,CAAC,CAAC,UAAU,CAAC,0BAA0B,EAAE,4BAA4B,CAAC,CAAC;QAEzG,iBAAiB;QACjB,IAAM,+BAA+B,GAAG,yBAAyB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,EAApD,CAAoD,CAAC,CAAC;QACpI,+BAA+B,CAAC,OAAO,CAAC,UAAC,IAAI;YACzC,IAAM,SAAS,GAAG,KAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChN,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,IAAM,0BAA0B,GAAG,CAAC,CAAC,UAAU,CAAC,yBAAyB,EAAE,+BAA+B,CAAC,CAAC;QAE5G,6EAA6E;QAC7E,IAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC,CAAC;QAE1F,2BAA2B,CAAC,OAAO,CAAC,mBAAS;YAEzC,sBAAsB;YACtB,IAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,CAAC,IAAI,SAAS,EAA1B,CAA0B,CAAC,CAAC;YAEtE,IAAM,wBAAwB,GAAG,yBAAyB,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,EAAlE,CAAkE,CAAC,CAAC;YAC3I,wBAAwB,CAAC,OAAO,CAAC,UAAC,IAAI;gBAClC,IAAM,SAAS,GAAG,KAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1P,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,aAAa;YACb,IAAI,wBAAwB,GAAG,0BAA0B,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,CAAC,IAAI,SAAS,EAA1B,CAA0B,CAAC,CAAC;YAClG,wBAAwB,GAAG,CAAC,CAAC,UAAU,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;YAE5F,IAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,wBAAwB,EAAE,eAAe,CAAC,CAAC;YAC3E,IAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,IAAK,QAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAhC,CAAgC,CAAC,CAAC,CAAC;YAC/H,IAAM,0BAA0B,GAAG,wBAAwB,CAAC,MAAM,CAAC,cAAI,IAAI,iCAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAA3D,CAA2D,CAAC,CAAC;YACxI,0BAA0B,CAAC,OAAO,CAAC,UAAC,IAAI;gBACpC,IAAM,SAAS,GAAG,KAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;gBACtO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,qBAAqB;YACrB,IAAI,0BAA0B,CAAC,MAAM,IAAI,CAAC,IAAI,wBAAwB,CAAC,MAAM,IAAI,CAAC,EAAE;gBAEhF,8BAA8B;gBAC9B,IAAI,mBAAmB,GAAG,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;gBAChE,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS;gBAC/E,IAAI,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;gBAC9D,IAAI,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,WAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAd,CAAc,CAAC,CAAC,CAAC,YAAY;gBAE7E,+BAA+B;gBAC/B,oCAAoC;gBAEpC,IAAI,mBAAmB,GAAG,KAAK,CAAC;gBAEhC,KAAiB,UAAmB,EAAnB,2CAAmB,EAAnB,iCAAmB,EAAnB,IAAmB,EAAE;oBAAjC,IAAI,IAAI;oBACT,IAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,EAAjB,CAAiB,CAAC,CAAC;oBAC/D,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,KAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,EAAC;2BACzG,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;wBAC7F,mBAAmB,GAAG,IAAI,CAAC;wBAC3B,MAAM;qBACT;iBACJ;gBAED,sBAAsB;gBACtB,IAAI,mBAAmB,EAAE;oBAErB,IAAI,WAAW,GAAG,KAAK,CAAC;oBAExB,uBAAuB;oBACvB,KAAiB,UAAmB,EAAnB,2CAAmB,EAAnB,iCAAmB,EAAnB,IAAmB,EAAE;wBAAjC,IAAI,IAAI;wBACT,IAAI,IAAI,CAAC,aAAa,IAAI,YAAY,EAAE;4BACpC,WAAW,GAAG,IAAI,CAAC;4BACnB,MAAM;yBACT;wBACD,YAAY,EAAE,CAAC;qBAClB;oBAED,IAAI,WAAW,EAAE;wBACb,wBAAwB,CAAC,OAAO,CAAC,UAAC,IAAI;4BAClC,IAAM,SAAS,GAAG,KAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;4BAC5O,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAClC,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACzB,CAAC;IAx4CD,EAAE;IACc,iBAAQ,GAAG,QAAQ,CAAC;IAEpC,EAAE;IACc,0BAAiB,GAAG,iBAAiB,CAAC;IAs4C1D,eAAC;CAAA;AA54CqB,4BAAQ;;;;;;;;;;;;;;;;;AC1B9B,6EAA4B;AAC5B,sFAAyC;AACzC,2EAAuC;AAEvC;;GAEG;AACH;IASI;;;OAGG;IACH,oBAAY,IAA8B;QAEtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAID;;;OAGG;IACI,8BAAS,GAAhB;QACI,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,6BAAQ,GAAf,UAAgB,GAAoB;QAEhC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,GAAG,CAAC,CAAC;SAC5C;aAAM;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAS,GAAG,CAAC,CAAC;SACpD;IACL,CAAC;IAGD;;SAEK;IACE,kCAAa,GAApB;QACI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;QAEI;IACM,4CAAuB,GAAjC,UAAkC,MAA8B;QAE5D,OAAO;QACP,aAAa;QACb,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;QACnC,6BAA6B;QAC7B,MAAM,CAAC,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACzC,kBAAkB;QAClB,MAAM,CAAC,OAAO,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAC5C,iBAAiB;QACjB,qCAAqC;QACrC,UAAU;QACV,oCAAoC;QACpC,MAAM,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACxC,oCAAoC;QACpC,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACvC,MAAM;QACN,4BAA4B;QAC5B,MAAM,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAE5C,QAAQ;QACR,UAAU;QACV,UAAU;QACV,IAAM,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAExC,sBAAsB;QACtB,IAAM,SAAS,GAAG;YACd,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,UAAC,OAAO,EAAE,OAAO,EAAE,MAAM;gBAC9B,IAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE;oBAC3B,MAAM;oBACN,YAAY,CAAC,SAAS,EAAE,CAAC;iBAC5B;YACL,CAAC;SACJ,CAAC;QAEF,uCAAuC;QACvC,wHAAwH;QACxH,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAE3E,CAAC;IAED;;;;OAIG;IACH,8BAA8B;IACpB,4BAAO,GAAjB,UAAkB,GAAG,EAAE,GAAG,EAAE,gBAAgB;QAExC,iGAAiG;QACjG,2CAA2C;QAE3C,6CAA6C;QAC7C,gDAAgD;QAEhD,iBAAiB;QACjB,sCAAsC;QACtC,+CAA+C;QAC/C,GAAG;QACH,oDAAoD;QACpD,gDAAgD;QAEhD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,sCAAsC;QACtC,6CAA6C;QAC7C,qDAAqD;QACrD,IAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAI1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,wBAAwB;QACxB,wBAAwB;QACxB,iCAAiC;QAEjC,mBAAmB;QAEnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;MAGE;IACF,8BAA8B;IACpB,+BAAU,GAApB,UAAqB,IAAW;QAE5B,SAAS;QACT,yDAAyD;QAEzD,YAAY;QACZ,gCAAgC;QAChC,8BAA8B;QAC9B,aAAa;QAEb,yBAAyB;QACzB,8DAA8D;QAE9D,oBAAoB;QACpB,oBAAoB;QACpB,sBAAsB;QACtB,2BAA2B;QAE3B,aAAa;QACb,IAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAIlC,mBAAmB;QACnB,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;YACxB,IAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAE1B,mBAAmB;QAEnB,OAAO,OAAO,CAAC;IACnB,CAAC;IAGD;;;;;;;;;OASG;IACO,8CAAyB,GAAnC,UAAoC,GAAW,EAAE,SAAiB,EAAE,QAAQ,EAAE,SAAiB,EAAE,iBAA0B,EAAE,EAAE;QAE3H,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;YAE/B,OAAO;YACP,IAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;YAE9B,WAAW;YACX,IAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;YAEtE,MAAM,CAAC,YAAY,EAAE,CAAC;YAEtB,IAAM,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YAEtC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC;YAClC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAE1B,OAAO;YACP,IAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACjF,IAAM,mBAAmB,GAAG,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAE7F,UAAU;YACV,IAAM,YAAY,GAAG;gBACjB,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;gBAC5D,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;gBAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;aAC/D,CAAC;YACF,IAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAEhE,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAElC,UAAU;YACV,cAAc,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;gBAE/B,cAAc;gBACd,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE;oBAChD,IAAM,EAAE,GAAG,kBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;oBAC1E,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC1B,iCAAiC;oBACjC,0EAA0E;oBAC1E,kEAAkE;oBAClE,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAClF;gBAED,MAAM;gBACN,IAAM,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACxC,KAAK,CAAC,SAAS,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACxF,KAAK,CAAC,YAAY,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3F,KAAK,CAAC,UAAU,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzF,KAAK,CAAC,WAAW,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE1F,YAAY;gBACZ,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;oBAC7C,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;iBAC/B;qBAAM;oBACH,YAAY;oBACZ,IAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACpF,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;iBAClC;gBAED,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,EAAE,CAAC;YAErB,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5F,IAAI,EAAE,IAAI,IAAI,EAAE;gBACZ,EAAE,CAAC,IAAI,CAAC,CAAC;aACZ;QACL,CAAC,CAAC,CAAC;IAEP,CAAC;IAYD;;;OAGG;IACH,qCAAgB,GAAhB,UAAiB,GAAG,EAAE,GAAG,EAAE,KAAK;QAC5B,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,uCAAkB,GAAlB,UAAmB,GAAG,EAAE,GAAG,EAAE,KAAK;QAC9B,qBAAqB;QACrB,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEtC,YAAY;QACZ,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;QAC/B,KAAK,CAAC,WAAW,GAAG;YAChB;gBACI,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ;gBACjD,OAAO,EAAE,oBAAoB;gBAC7B,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC;QACF,KAAK,CAAC,SAAS,GAAG;YACd;gBACI,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc;gBAC/C,MAAM,EAAE;oBACJ,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,kBAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM;iBAClD;aACJ;SACJ,CAAC;QACF,UAAU;QACV,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAID;;;OAGG;IACH,yCAAoB,GAApB,UAAqB,KAAK,EAAE,UAAU;QAClC,WAAW;QACX,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,WAAW,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;IAiBD;;OAEG;IACH,mCAAc,GAAd,UAAe,GAAG,EAAE,KAA8B;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,mCAAc,GAAd,UAAe,GAAG,EAAE,KAA8B;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,mCAAc,GAAd,UAAe,GAAG,EAAE,KAA0B,EAAE,KAA8B,EAAE,SAAmC;QAC/G,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAGD;;;;;OAKG;IACH,uCAAkB,GAAlB,UAAmB,GAAG,EAAE,KAA8B;QAClD,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,MAAM,CAAC,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,yCAAoB,GAApB,UAAqB,GAAG,EAAE,KAA8B;QACpD,qBAAqB;QACrB,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEtC,YAAY;QACZ,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;QAC/B,KAAK,CAAC,WAAW,GAAG;YAChB;gBACI,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ;gBACjD,OAAO,EAAE,oBAAoB;gBAC7B,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC;QACF,KAAK,CAAC,SAAS,GAAG;YACd;gBACI,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc;gBAC/C,MAAM,EAAE;oBACJ,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,kBAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM;iBAClD;aACJ;SACJ,CAAC;QAGF,YAAY;QACZ,kCAAkC;QAClC,uEAAuE;QACvE,mDAAmD;QAEnD,kBAAkB;QAClB,kEAAkE;QAElE,wBAAwB;QACxB,gDAAgD;QAChD,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE/C,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAGD;;;;OAIG;IACH,8CAAyB,GAAzB,UAA0B,GAAG,EAAE,KAA8B;QAGzD,GAAG;QACH,aAAa;QACb,4EAA4E;QAC5E,4BAA4B;QAC5B,4BAA4B;QAC5B,0FAA0F;QAC1F,yFAAyF;QAGzF,iBAAiB;QACjB,8CAA8C;QAC9C,8BAA8B;QAC9B,8BAA8B;QAC9B,4FAA4F;QAC5F,2FAA2F;QAC3F,yCAAyC;QAGzC,SAAS;QACT,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,QAAQ,CAAC,YAAY,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,QAAQ,CAAC,WAAW,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzF,cAAc;QACd,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;YAChD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1B;aAAM;YACH,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC3B;IACL,CAAC;IAIF;;;;;OAKG;IACF,uCAAkB,GAAlB,UAAmB,GAAG,EAAE,KAA8B,EAAE,KAAc;QAClE,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAGL,iBAAC;AAAD,CAAC;AAleY,gCAAU;AAqevB;;GAEG;AACH;IAAA;IAIA,CAAC;IAAD,kBAAC;AAAD,CAAC;AAJY,kCAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/exB,qFAAwC;AACxC,iGAA0C;AAI1C;;GAEG;AACH,iCAAiC;AACjC;IAAA;IAiMA,CAAC;IA/LmB,qBAAY,GAAG,gBAAgB,CAAC;IAChC,uBAAc,GAAG,uBAAuB,CAAC;IACzD,2EAA2E;IAE3E;;OAEG;IACa,aAAI,GAAG;QACnB;;;WAGG;QACH,IAAI,YAAY;YACZ,mFAAmF;YACnF,IAAM,MAAM,GAAG,CAAC,CAAC,mBAAQ,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,mBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5G,WAAW;YACX,0CAA0C;YAC1C,kDAAkD;YAElD,0BAA0B;YAC1B,YAAY;YAEZ,mCAAmC;YACnC,oBAAoB;YACpB,GAAG;YACH,cAAc;YAEd,gCAAgC;YAChC,uEAAuE;YAEvE,OAAO,MAAM,CAAC;QAClB,CAAC;QAED;;WAEG;QACH,IAAI,aAAa;YACb,IAAM,MAAM,GAAG,CAAC,CAAC,gBAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,gBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAS,CAAC,QAAQ,CAAC,CAAC;YAC/G,OAAO,MAAM,CAAC;QAClB,CAAC;QAED;;;WAGG;QACH,IAAI,QAAQ;YACR,IAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YAChD,IAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YAClD,OAAO,YAAY,IAAI,aAAa,CAAC;QACzC,CAAC;QAED;;;WAGG;QACH,IAAI,YAAY;YAEZ,8GAA8G;YAC9G,mCAAmC;YACnC,2CAA2C;YAC3C,GAAG;YAEH,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YAC1C,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,QAAQ,EAAE;oBAAE,OAAO,IAAI,CAAC;iBAAE;aACxC;YAED,oBAAoB;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC;QAGD;;;WAGG;QACH,IAAI,aAAa;YACb,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YAC3C,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,QAAQ,EAAE;oBAAE,OAAO,IAAI,CAAC;iBAAE;aACxC;YACD,oBAAoB;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED;;WAEG;QACH,mBAAmB;YACf,IAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YACzC,IAAI,KAAK,EAAE;gBAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;aAAE;YACtC,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YACxC,IAAI,IAAI,EAAE;gBAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aAAE;QACxC,CAAC;QAED;;;WAGG;QACG,YAAY,EAAlB,UAAmB,QAA4C;;;oBAE3D,iDAAiD;oBACjD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;wBACxB,qEAAqE;wBACrE,0EAA0E;wBAC1E,6CAA6C;wBAC7C,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE;4BACxE,QAAQ,CAAC,IAAI,CAAC,CAAC;yBAClB;6BAAM;4BACH,qBAAqB;4BACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;yBAClB;qBACJ;yBAAM;wBACH,QAAQ,CAAC,IAAI,CAAC,CAAC;qBAClB;;;;SACJ;QAED;;;WAGG;QACG,iBAAiB,EAAvB,UAAwB,QAA4C,EAAE,aAAyB;;;;oBACvF,MAAM,GAAG,KAAK,CAAC;oBACnB,IAAI,aAAa,EAAE;wBACf,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;qBACnC;yBAAM;wBACH,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;qBACxC;oBACD,IAAI,MAAM,EAAE;wBACR,2EAA2E;wBAC3E,+DAA+D;wBAC/D,qEAAqE;wBACrE,0EAA0E;wBAC1E,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE;4BACxE,QAAQ,CAAC,IAAI,CAAC,CAAC;yBAClB;6BAAM;4BACH,qBAAqB;4BACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;yBAClB;qBACJ;yBAAM;wBACH,QAAQ,CAAC,IAAI,CAAC,CAAC;qBAClB;;;;SACJ;QAED;;;WAGG;QACH,mBAAmB,YAAC,KAAK;YAErB,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACxB,4BAA4B;gBAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,0CAA0C;gBAC1C,4BAA4B;gBAE5B,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC;gBAC5C,OAAO,QAAQ,CAAC,cAAc,CAAC;aAClC;QACL,CAAC;QAED;;WAEG;QACH,gBAAgB;YACZ,UAAU;YACV,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,SAAS;YACT,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEhE,0DAA0D;YAC1D,oCAAoC;YACpC,uCAAuC;YACvC,kDAAkD;YAElD,uDAAuD;QAC3D,CAAC;QAGD;;;WAGG;QACH,iBAAiB;YACb,WAAW;YACX,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjE,0DAA0D;YAC1D,uDAAuD;QAC3D,CAAC;KACJ;IAEL,eAAC;CAAA;AAjMY,4BAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;ACTrB,8GAA6B;AAC7B,kHAA+B;AAC/B,wHAAkC;;;;;;;;;;;;;;;;ACDlC,oDAA4B;AAC5B,6EAA4B;AAc5B,MAAM;AACN;IA8EI;;;;OAIG;IACH,qBAAY,QAAa,EAAE,OAA4B;QAzEvD,MAAM;QACC,WAAM,GAAG,GAAG,CAAC;QAGpB,MAAM;QACI,SAAI,GAAG,GAAG,CAAC;QASrB,MAAM;QACI,SAAI,GAAG,CAAC,CAAC;QASnB,MAAM;QACI,YAAO,GAAG,IAAI,CAAC;QAQzB,MAAM;QACI,WAAM,GAAG,IAAI,CAAC;QAexB,MAAM;QACI,aAAQ,GAAG,CAAC,CAAC;QAwBnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE7B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzF,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5D,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACpE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACxE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAEpE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAChC;IAEL,CAAC;IApFD,sBAAI,4BAAG;QADP,MAAM;aACN,cAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,MAAM;aACN,UAAQ,KAAK;YACT,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;;;OAL8B;IAU/B,sBAAI,4BAAG;QADP,MAAM;aACN,cAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,MAAM;aACN,UAAQ,KAAK;YACT,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;;;OAL8B;IAU/B,sBAAI,+BAAM;QADV,MAAM;aACN,cAAe,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,MAAM;aACN,UAAW,KAAK;YACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;;;OALoC;IASrC,sBAAI,8BAAK;QADT,MAAM;aACN,cAAc,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC,MAAM;aACN,UAAU,KAAK;YACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,mCAAmC;YACnC,oBAAoB;YACpB,gDAAgD;YAChD,UAAU;YACV,mDAAmD;YACnD,GAAG;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;;;OAXkC;IAgBnC,sBAAI,gCAAO;QADX,MAAM;aACN,cAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvC,MAAM;aACN,UAAY,KAAK;YACb,wBAAwB;YACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;;;OALsC;IAyCvC,MAAM;IACE,4BAAM,GAAd;QAEI,wBAAwB;QACxB,yIAAyI;QACzI,QAAQ;QAER,6BAA6B;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAEjD,UAAU;QACV,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAGvB,oBAAoB;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACnF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC1C;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,0DAA0D;YAC1D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACvD,oCAAoC;YACpC,qCAAqC;YACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvC;IACL,CAAC;IAED;;OAEG;IACO,yBAAG,GAAb,UAAc,CAAC;QAEX,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACN,8BAAQ,GAAR;;QACI,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,uCAAuC;YACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5D;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,qGAAqG;YACrG,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1I,UAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,IAAI,EAAE;SAC3B;IACL,CAAC;IAED,MAAM;IACN,6BAAO,GAAP,UAAQ,OAAgB;QACpB,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC;SAC3E;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC;SAC9E;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEL,kBAAC;AAAD,CAAC;AA9KY,kCAAW;AA8KvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9LF,6EAA4B;AAC5B,4EAA+B;AAE/B,2GAAgE;AAKhE;;GAEG;AACH;IAAsC,oCAAW;IAoF7C;;;;;OAKG;IACH,0BAAY,QAAa,EAAE,aAAa,EAAE,WAAW,EAAE,QAA+B;QAAtF,iBA4BC;QA1BG,IAAI,OAAO,GAAuB,EAAE,CAAC;QACrC,2BAA2B;QAC3B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QACrE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC,EAAE;YAAE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;SAAE;QAClE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;QAE/B,0BAAM,QAAQ,EAAE,OAAO,CAAC,SAAC;QAGzB,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,KAAI,CAAC,GAAG,GAAG,KAAI,CAAC,WAAW,CAAC;QAC5B,UAAU;QACV,kCAAkC;QAClC,UAAU;QACV,qBAAqB;QAErB,iBAAiB;QACjB,KAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAC,EAAE;YAAE,KAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;SAAE;;IAC/E,CAAC;IAvGD,sBAAY,iCAAG;QADf,oBAAoB;aACpB;YACI,MAAM;YACN,OAAO,IAAI,IAAI,EAAE,CAAC;QACtB,CAAC;;;OAAA;IAAA,CAAC;IAGF,sBAAI,6CAAe;QADnB,KAAK;aACL;YACI,oCAAoC;YACpC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAE9B,CAAC;;;OAAA;IAAA,CAAC;IAEF,sBAAI,mDAAqB;QADzB,KAAK;aACL;YACI,OAAO,CAAC,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;;;OAAA;IAAA,CAAC;IAGF,sBAAI,iDAAmB;QADvB,KAAK;aACL;YACI,OAAO,CAAC,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;;;OAAA;IAAA,CAAC;IAIF,sBAAI,yCAAW;QADf,KAAK;aACL;YACI,+CAA+C;YAC/C,6BAA6B;YAC7B,YAAY;YACZ,IAAI,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACrE,oDAAoD;YACpD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAGD,sBAAI,0CAAY;QADhB,KAAK;aACL;YACI,+CAA+C;YAC/C,6BAA6B;YAC7B,YAAY;YACZ,IAAI,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACrE,yDAAyD;YACzD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAGD,sBAAW,mDAAqB;QADhC,gBAAgB;aAChB;YACI,IAAI,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/D,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAGD,sBAAW,8CAAgB;QAD3B,gBAAgB;aAChB;YACI,IAAI,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/D,kDAAkD;YAClD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAGD,sBAAW,8CAAgB;QAD3B,gBAAgB;aAChB;YACI,IAAI,QAAQ,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/D,yDAAyD;YACzD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/B,CAAC;;;OAAA;IAwCD;;;OAGG;IACH,gCAAK,GAAL;QACI,OAAO;QACP,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,oDAAoD;QACpD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACN,+BAAI,GAAJ;QACI,sDAAsD;QACtD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACN,kCAAO,GAAP;;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,UAAI,CAAC,SAAS,0CAAE,KAAK,GAAG;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACE,kCAAO,GAAf;QACI,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,+BAAI,GAAJ;QAEI,mBAAmB;QACnB,mEAAmE;QACnE,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,wCAAwC;YACxC,0DAA0D;YAC1D,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,iDAAiD;YACjD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBACnB,cAAc;gBACd,QAAQ,GAAG,OAAO,CAAC;aACtB;SACJ;QAED,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,2CAA2C;QAC3C,sCAAsC;QACtC,+CAA+C;QAC/C,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE;YACnB,qDAAqD;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,0BAA0B;SAC7B;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACN,qCAAU,GAAV;QAEI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,EAAE,iBAAiB;YAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAAE;SACtC;aAAM,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,EAAE,sCAAsC;YACvE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAAE;SACtC;aAAM,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,EAAE,sCAAsC;YACvE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAAE;SACtC;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;SACzD;IACL,CAAC;IAEL,uBAAC;AAAD,CAAC,CAvNqC,yBAAW,GAuNhD;AAvNY,4CAAgB;AAuN5B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClOF,6EAA4B;AAC5B,2GAAgE;AAqBhE;;GAEG;AACH;IAAmC,iCAAW;IAY1C;;;;;OAKG;IACH,uBAAY,QAAa,EAAE,KAAa,EAAE,QAA+B;QAAzE,iBAkBC;QAjBG,IAAI,OAAO,GAAuB,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QACrE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC,EAAE;YAAE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;SAAE;QAElE,0BAAM,QAAQ,EAAE,OAAO,CAAC,SAAC;QACzB,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,cAAc;QACd,4EAA4E;QAC5E,iBAAiB;QACjB,KAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,EAAE;YAAE,KAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAAE;QAClE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAC,EAAE;YAAE,KAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;SAAE;;IAC/E,CAAC;IAED;;;OAGG;IACH,6BAAK,GAAL,UAAM,EAAE;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACN,8BAAM,GAAN;QACI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACN,4BAAI,GAAJ;QACI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACE,+BAAO,GAAf;QACI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,uBAAuB;QACvB,oCAAoC;QACpC,GAAG;QACH,IAAI,IAAI,CAAC,SAAS,EAAE;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;SAAE;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,4BAAI,GAAJ;QACI,uBAAuB;QACvB,kCAAkC;QAClC,kEAAkE;QAClE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,wCAAwC;YACxC,kBAAkB;YAClB,8DAA8D;YAC9D,UAAU;YACV,+BAA+B;YAC/B,GAAG;YAEH,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBACnB,cAAc;gBACd,QAAQ,GAAG,OAAO,CAAC;aACtB;SAEJ;QAED,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM;IACN,kCAAU,GAAV;QAEI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,EAAE,iBAAiB;YAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAAE;SACtC;aAAM,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,EAAE,sCAAsC;YACvE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAAE;SACtC;aAAM,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,EAAE,sCAAsC;YACvE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;aAAE;SACtC;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;SACzD;IACL,CAAC;IAKL,oBAAC;AAAD,CAAC,CA9HkC,yBAAW,GA8H7C;AA9HY,sCAAa;AA8HzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxJF,sGAAuC;AAEvC,cAAc;AACd;IAA+C,6CAAmC;IAQ9E;;;;OAIG;IACH,mCAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,8BAAI,GAAlB;QACI,OAAO;YACH,yBAAyB,CAAC,iBAAiB;YAC3C,yBAAyB,CAAC,cAAc;SAC3C,CAAC;IACN,CAAC;IAvBD,8BAA8B;IACP,2CAAiB,GAA8B,IAAI,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAExH,8BAA8B;IACP,wCAAc,GAA8B,IAAI,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAoB1H,gCAAC;CAAA,CA1B8C,oBAAQ,GA0BtD;AA1BY,8DAAyB;;;;;;;;;;;;;;ACFtC,gBAAgB;AAChB,+DAA+D;AAC/D,GAAG;AACH,8EAA8E;AAC9E,GAAG;;;AAGH,gFAAgF;AAChF,kDAAkD;AAGlD;IAeI;;OAEG;IACH,kBAAsB,KAAU,EAAE,IAAS,EAAE,IAAU;QACnD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAjBD,sBAAW,0BAAI;QADf,aAAa;aACb,cAAoB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;;;OAAA;IAIxC,sBAAW,2BAAK;QADhB,UAAU;aACV,cAAqB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;;OAAA;IAI1C,sBAAW,0BAAI;QADf,WAAW;aACX,cAAoB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;;;OAAA;IAYxC,MAAM;IACC,2BAAQ,GAAf;QAEI,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAGD,8BAA8B;IAG9B,KAAK;IACS,eAAM,GAApB;QACI,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;YACnB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,QAAQ,EAAE;gBAChC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACjC;SACJ;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAGD;;;OAGG;IACW,oBAAW,GAAzB,UAAiD,IAAS;QACtD,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAK,CAAC;QAC3B,KAAiB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG,EAAE;YAAjB,IAAI,IAAI;YACT,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACW,2BAAkB,GAAhC,UAAwD,KAAU;QAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAK,CAAC;QAC3B,KAAiB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG,EAAE;YAAjB,IAAI,IAAI;YACT,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;gBACtB,OAAO,IAAI,CAAC;aACf;SACJ;QACD,qDAAqD;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;OACG;IACW,wBAAe,GAA7B;QACI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAK,CAAC;QAC3B,IAAI,KAAK,GAA4B,EAAE,CAAC;QACxC,KAAiB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG,EAAE;YAAjB,IAAI,IAAI;YACT,KAAK,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;aAC1B,CAAC,CAAC;SACN;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAKD,KAAK;IACL,0BAA0B;IAC1B,gBAAgB;IAChB,KAAK;IACL,uCAAuC;IACvC,4CAA4C;IAC5C,yBAAyB;IACzB,4BAA4B;IAC5B,OAAO;IACP,2DAA2D;IAC3D,kBAAkB;IAClB,GAAG;IAGH,KAAK;IACL,0BAA0B;IAC1B,iBAAiB;IACjB,KAAK;IACL,4CAA4C;IAC5C,yCAAyC;IACzC,yBAAyB;IACzB,2BAA2B;IAC3B,OAAO;IACP,2DAA2D;IAC3D,kBAAkB;IAClB,GAAG;IAEH;;;OAGG;IACI,yBAAM,GAAb,UAAc,GAAQ;QAElB,IAAI,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;SAAE;QAEjD,IAAI,WAAW,GAAG,IAAI,KAAK,GAAG,CAAC;QAC/B,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,KAAQ,GAAG,CAAC,IAAI,CAAC;QAC7C,OAAO,WAAW,IAAI,YAAY,CAAC;QAEnC,sBAAsB;IAC1B,CAAC;IAGD;;;OAGG;IACI,6BAAU,GAAjB,UAAkB,KAAU;QACxB,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;IAC/B,CAAC;IAIL,eAAC;AAAD,CAAC;AAnJqB,4BAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZ9B,sGAAuC;AAEvC;;GAEG;AACH;IAAoC,kCAAwB;IAaxD;;;;OAIG;IACH,wBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,mBAAI,GAAlB;QACI,OAAO;YACH,cAAc,CAAC,MAAM;YACrB,cAAc,CAAC,IAAI;SACtB,CAAC;IACN,CAAC;IA3BD,qCAAqC;IACrC,gCAAgC;IAChC,4FAA4F;IAC5F,oCAAoC;IACpC,8FAA8F;IACvE,qBAAM,GAAmB,IAAI,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAE3F,mCAAmC;IACZ,mBAAI,GAAmB,IAAI,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAoB5F,qBAAC;CAAA,CA/BmC,oBAAQ,GA+B3C;AA/BY,wCAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACL3B,sGAAuC;AAEvC,eAAe;AACf;IAA4C,0CAAgC;IAMxE;;;;OAIG;IACH,gCAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,2BAAI,GAAlB;QACI,OAAO;YACH,sBAAsB,CAAC,QAAQ;YAC/B,sBAAsB,CAAC,cAAc;SACxC,CAAC;IACN,CAAC;IArBD,+BAA+B;IACR,+BAAQ,GAA2B,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACrG,+BAA+B;IACR,qCAAc,GAA2B,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAmB/G,6BAAC;CAAA,CAxB2C,oBAAQ,GAwBnD;AAxBY,wDAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHnC,sGAAuC;AAIvC;;GAEG;AACH;IAAsC,oCAA0B;IA0E5D;;;;OAIG;IACH,0BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,qBAAI,GAAlB;QACI,OAAO;YACH,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;YACtB,gBAAgB,CAAC,KAAK;SACzB,CAAC;IACN,CAAC;IA/GD,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,yBAAyB;IACF,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAExF,0BAA0B;IACH,sBAAK,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IA0C5F,uBAAC;CAAA,CAlHqC,oBAAQ,GAkH7C;AAlHY,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACP7B,sGAAsC;AAEtC;;GAEG;AACH;IAA6B,2BAAiB;IAe1C;;;;OAIG;IACH,iBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,YAAI,GAAlB;QACI,OAAO;YACH,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,QAAQ;SACnB,CAAC;IACN,CAAC;IAlCD,2BAA2B;IACJ,iBAAS,GAAY,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzE,6BAA6B;IACN,iBAAS,GAAY,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3E,+BAA+B;IACR,iBAAS,GAAY,IAAI,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7E,2BAA2B;IACJ,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxE,yBAAyB;IACF,cAAM,GAAY,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpE,sBAAsB;IACC,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAwBvE,cAAC;CAAA,CArC4B,oBAAQ,GAqCpC;AArCY,0BAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLpB,sGAAuC;AAEvC;;GAEG;AACH;IAAuC,qCAA2B;IAS9D;;;;OAIG;IACH,2BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,sBAAI,GAAlB;QACI,OAAO;YACH,iBAAiB,CAAC,IAAI;YACtB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,EAAE;SACvB,CAAC;IACN,CAAC;IAzBD,yBAAyB;IACF,sBAAI,GAAsB,IAAI,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClF,sBAAsB;IACC,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5E,wBAAwB;IACD,oBAAE,GAAsB,IAAI,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAqBlF,wBAAC;CAAA,CA5BsC,oBAAQ,GA4B9C;AA5BY,8CAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACL9B,sGAAuC;AAEvC;;IAEI;AACJ;IAA+B,6BAAmB;IAS9C;;;;OAIG;IACH,mBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,cAAI,GAAlB;QACI,OAAO;YACH,SAAS,CAAC,WAAW;YACrB,SAAS,CAAC,WAAW;YACrB,SAAS,CAAC,SAAS;SAEtB,CAAC;IACN,CAAC;IA1BD,8BAA8B;IACP,qBAAW,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACnF,8CAA8C;IACvB,qBAAW,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,yBAAyB,EAAE,EAAE,CAAC,CAAC;IACnG,8BAA8B;IACP,mBAAS,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAsBrF,gBAAC;CAAA,CA7B8B,oBAAQ,GA6BtC;AA7BY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLtB,sGAAuC;AAEvC;;GAEG;AACH;IAAuC,qCAA2B;IAS9D;;;;OAIG;IACH,2BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,sBAAI,GAAlB;QACI,OAAO;YACH,iBAAiB,CAAC,GAAG;YACrB,iBAAiB,CAAC,mBAAmB;YACrC,iBAAiB,CAAC,QAAQ;SAC7B,CAAC;IACN,CAAC;IAzBD,2BAA2B;IACJ,qBAAG,GAAsB,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnF,mCAAmC;IACZ,qCAAmB,GAAsB,IAAI,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3G,8BAA8B;IACP,0BAAQ,GAAsB,IAAI,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAqB/F,wBAAC;CAAA,CA5BsC,oBAAQ,GA4B9C;AA5BY,8CAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACL9B,sGAAuC;AAGvC,UAAU;AACV;IAA+B,6BAAmB;IAY9C;;;;OAIG;IACH,mBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,cAAI,GAAlB;QACI,OAAO;YACH,SAAS,CAAC,IAAI;YACd,SAAS,CAAC,QAAQ;YAClB,SAAS,CAAC,WAAW;SAExB,CAAC;IACN,CAAC;IA7BD,gCAAgC;IACT,cAAI,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvE,yDAAyD;IAClC,kBAAQ,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,CAAC;IAE3G,iCAAiC;IACV,qBAAW,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IAuB1F,gBAAC;CAAA,CAhC8B,oBAAQ,GAgCtC;AAhCY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJtB,sGAAuC;AAEvC,YAAY;AACZ;IAAgC,8BAAoB;IAQhD;;;;OAIG;IACH,oBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,eAAI,GAAlB;QACI,OAAO;YACH,UAAU,CAAC,IAAI;YACf,UAAU,CAAC,KAAK;SACnB,CAAC;IACN,CAAC;IAtBD,yBAAyB;IACF,eAAI,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1E,yBAAyB;IACF,gBAAK,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAoB/E,iBAAC;CAAA,CA1B+B,oBAAQ,GA0BvC;AA1BY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHvB,sGAAuC;AAGvC,UAAU;AAEV;IAAkC,gCAAsB;IAiBpD;;;;OAIG;IACH,sBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,iBAAI,GAAlB;QACI,OAAO;YACH,YAAY,CAAC,IAAI;YACjB,YAAY,CAAC,SAAS;YACtB,YAAY,CAAC,KAAK;YAClB,YAAY,CAAC,QAAQ;YACrB,YAAY,CAAC,MAAM;SACtB,CAAC;IACN,CAAC;IAnCD,4BAA4B;IACL,iBAAI,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAE/E,2BAA2B;IACJ,sBAAS,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAEpF,4BAA4B;IACL,kBAAK,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAEhF,4BAA4B;IACL,qBAAQ,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAEnF,8BAA8B;IACP,mBAAM,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAwBvF,mBAAC;CAAA,CAvCiC,oBAAQ,GAuCzC;AAvCY,oCAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLzB,sGAAuC;AAEvC;;GAEG;AACH;IAAgC,8BAAoB;IAShD;;;;OAIG;IACH,oBAAsB,IAAS,EAAE,KAAa,EAAE,IAAU;eACtD,kBAAM,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,eAAI,GAAlB;QACI,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IApBD,wBAAwB;IACD,eAAI,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,yBAAyB;IACF,gBAAK,GAAe,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAkBpF,iBAAC;CAAA,CAxB+B,oBAAQ,GAwBvC;AAxBY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLvB,sGAAuC;AAEvC,cAAc;AACd;IAA+C,6CAAmC;IAS9E;;;;OAIG;IACH,mCAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,8BAAI,GAAlB;QACI,OAAO;YACH,yBAAyB,CAAC,UAAU;YACpC,yBAAyB,CAAC,QAAQ;SAGrC,CAAC;IACN,CAAC;IA1BD,4BAA4B;IACL,oCAAU,GAA8B,IAAI,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAE/G,kCAAkC;IACX,kCAAQ,GAA8B,IAAI,yBAAyB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IAuBxH,gCAAC;CAAA,CA7B8C,oBAAQ,GA6BtD;AA7BY,8DAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHtC,sGAAuC;AAEvC,UAAU;AACV;IAAgC,8BAAoB;IAchD;;;;OAIG;IACH,oBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,eAAI,GAAlB;QACI,OAAO;YACH,UAAU,CAAC,IAAI;YACf,UAAU,CAAC,OAAO;YAClB,UAAU,CAAC,QAAQ;YACnB,UAAU,CAAC,OAAO;YAClB,UAAU,CAAC,KAAK;SACnB,CAAC;IACN,CAAC;IA/BD,sBAAsB;IACC,eAAI,GAAe,IAAI,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,sBAAsB;IACC,kBAAO,GAAe,IAAI,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5E,sBAAsB;IACC,mBAAQ,GAAe,IAAI,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7E,uBAAuB;IACA,kBAAO,GAAe,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7E,uBAAuB;IACA,gBAAK,GAAe,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAuB/E,iBAAC;CAAA,CAnC+B,oBAAQ,GAmCvC;AAnCY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHvB,sGAAuC;AAEvC;;GAEG;AACH;IAA0B,wBAAc;IAYpC;;;;OAIG;IACH,cAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,SAAI,GAAlB;QACI,OAAO;YACH,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,KAAK;SACb,CAAC;IACN,CAAC;IA3BD,6BAA6B;IAC7B,gCAAgC;IAChC,4FAA4F;IAC5F,oCAAoC;IACpC,iEAAiE;IAC1C,UAAK,GAAS,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE7D,qBAAqB;IACE,SAAI,GAAS,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAoBjE,WAAC;CAAA,CA9ByB,oBAAQ,GA8BjC;AA9BY,oBAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLjB,sGAAuC;AAEvC;;;;;GAKG;AACH;IAAkC,gCAAsB;IAOpD;;;;OAIG;IACH,sBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,iBAAI,GAAlB;QACI,OAAO;YACH,YAAY,CAAC,aAAa;YAC1B,YAAY,CAAC,aAAa;SAC7B,CAAC;IACN,CAAC;IAtBD,0CAA0C;IACnB,0BAAa,GAAiB,IAAI,YAAY,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACtG,oCAAoC;IACb,0BAAa,GAAiB,IAAI,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAoBpG,mBAAC;CAAA,CAzBiC,oBAAQ,GAyBzC;AAzBY,oCAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRzB,sGAAuC;AAEvC,YAAY;AACZ;IAA8B,4BAAkB;IAW5C;;;;OAIG;IACH,kBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,aAAI,GAAlB;QACI,OAAO;YACH,QAAQ,CAAC,GAAG;YACZ,QAAQ,CAAC,GAAG;YACZ,QAAQ,CAAC,GAAG;YACZ,QAAQ,CAAC,GAAG;SACf,CAAC;IACN,CAAC;IA5BD,uBAAuB;IACA,YAAG,GAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnE,uBAAuB;IACA,YAAG,GAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnE,uBAAuB;IACA,YAAG,GAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnE,uBAAuB;IACA,YAAG,GAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAsBvE,eAAC;CAAA,CA/B6B,oBAAQ,GA+BrC;AA/BY,4BAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHrB,sGAAuC;AAEvC;;GAEG;AACH;IAAgC,8BAAoB;IAShD;;;;OAIG;IACH,oBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,eAAI,GAAlB;QACI,OAAO;YACH,UAAU,CAAC,KAAK;YAChB,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,OAAO;SACrB,CAAC;IACN,CAAC;IAzBD,sBAAsB;IACC,gBAAK,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtE,sBAAsB;IACC,iBAAM,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,sBAAsB;IACC,kBAAO,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAqB5E,iBAAC;CAAA,CA5B+B,oBAAQ,GA4BvC;AA5BY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLvB,sGAAuC;AAEvC,WAAW;AACX;IAAkC,gCAAsB;IA0BpD;;;;OAIG;IACH,sBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,iBAAI,GAAlB;QACI,OAAO;YACH,YAAY,CAAC,IAAI;YACjB,YAAY,CAAC,EAAE;YACf,YAAY,CAAC,GAAG;YAChB,YAAY,CAAC,EAAE;YACf,YAAY,CAAC,GAAG;YAChB,YAAY,CAAC,OAAO;YACpB,YAAY,CAAC,YAAY;YACzB,YAAY,CAAC,OAAO;SACvB,CAAC;IACN,CAAC;IA/CD,0BAA0B;IACH,iBAAI,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAE9E,6BAA6B;IACN,eAAE,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE/E,0BAA0B;IACH,gBAAG,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAE7E,6BAA6B;IACN,eAAE,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE/E,yBAAyB;IACF,gBAAG,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAE7E,8BAA8B;IACP,oBAAO,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAErF,0BAA0B;IACH,yBAAY,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1F,yBAAyB;IACF,oBAAO,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IA0BpF,mBAAC;CAAA,CAlDiC,oBAAQ,GAkDzC;AAlDY,oCAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHzB,sGAAuC;AAEvC,cAAc;AACd;IAAkC,gCAAsB;IAepD;;;;OAIG;IACH,sBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,iBAAI,GAAlB;QACI,OAAO;YACH,YAAY,CAAC,MAAM;YACnB,YAAY,CAAC,MAAM;YACnB,YAAY,CAAC,IAAI;YACjB,YAAY,CAAC,QAAQ;SAGxB,CAAC;IACN,CAAC;IAlCD,6BAA6B;IACN,mBAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAElE,6BAA6B;IACN,mBAAM,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjF,4BAA4B;IACL,iBAAI,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAE7E,4BAA4B;IACL,qBAAQ,GAAiB,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAyBrF,mBAAC;CAAA,CArCiC,oBAAQ,GAqCzC;AArCY,oCAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHzB,sGAAuC;AAEvC,WAAW;AACX;IAAmC,iCAAuB;IActD;;;;OAIG;IACH,uBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,kBAAI,GAAlB;QACI,OAAO;YACH,aAAa,CAAC,SAAS;YACvB,aAAa,CAAC,UAAU;YACxB,aAAa,CAAC,SAAS;YACvB,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,QAAQ;SACzB,CAAC;IACN,CAAC;IAhCD,6BAA6B;IACN,uBAAS,GAAkB,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpF,gCAAgC;IACT,wBAAU,GAAkB,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzF,+BAA+B;IACR,uBAAS,GAAkB,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACtF,2BAA2B;IACJ,kBAAI,GAAkB,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/E,2BAA2B;IACJ,sBAAQ,GAAkB,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAwBvF,oBAAC;CAAA,CAnCkC,oBAAQ,GAmC1C;AAnCY,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACH1B,sGAAuC;AAEvC,aAAa;AACb;IAA+B,6BAAmB;IAS9C;;;;OAIG;IACH,mBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IACD;;OAEG;IACW,cAAI,GAAlB;QACI,OAAO;YACH,SAAS,CAAC,OAAO;YACjB,SAAS,CAAC,MAAM;YAChB,SAAS,CAAC,MAAM;SACnB,CAAC;IACN,CAAC;IAxBD,6BAA6B;IACN,iBAAO,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACjF,8BAA8B;IACP,gBAAM,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjF,4BAA4B;IACL,gBAAM,GAAc,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAoBnF,gBAAC;CAAA,CA3B8B,oBAAQ,GA2BtC;AA3BY,8BAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHtB,sGAAuC;AAEvC,eAAe;AACf;IAA0C,wCAA8B;IASpE;;;;OAIG;IACH,8BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,yBAAI,GAAlB;QACI,OAAO;YACH,oBAAoB,CAAC,SAAS;YAC9B,oBAAoB,CAAC,OAAO;YAC5B,oBAAoB,CAAC,YAAY;SAEpC,CAAC;IACN,CAAC;IA1BD,+BAA+B;IACR,8BAAS,GAAyB,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAClG,gCAAgC;IACT,4BAAO,GAAyB,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAClG,iCAAiC;IACV,iCAAY,GAAyB,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAsB3G,2BAAC;CAAA,CA7ByC,oBAAQ,GA6BjD;AA7BY,oDAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHjC,sGAAuC;AAEvC,UAAU;AACV;IAAgC,8BAAoB;IAOhD;;;;OAIG;IACH,oBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,eAAI,GAAlB;QACI,OAAO;YACH,UAAU,CAAC,MAAM;YACjB,UAAU,CAAC,IAAI;SAClB,CAAC;IACN,CAAC;IAtBD,uBAAuB;IACA,iBAAM,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5E,wBAAwB;IACD,eAAI,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAoB/E,iBAAC;CAAA,CAzB+B,oBAAQ,GAyBvC;AAzBY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHvB,sGAAuC;AAEvC,mBAAmB;AACnB;IAAoC,kCAAwB;IAOxD;;;;OAIG;IACH,wBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,mBAAI,GAAlB;QACI,OAAO;YACH,cAAc,CAAC,MAAM;YACrB,cAAc,CAAC,SAAS;SAC3B,CAAC;IACN,CAAC;IAtBD,+BAA+B;IACR,qBAAM,GAAmB,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvF,gCAAgC;IACT,wBAAS,GAAmB,IAAI,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAoB/F,qBAAC;CAAA,CAzBmC,oBAAQ,GAyB3C;AAzBY,wCAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACH3B,sGAAuC;AAEvC;;GAEG;AACH;IAAwC,sCAA4B;IAShE;;;;OAIG;IACH,4BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,uBAAI,GAAlB;QACI,OAAO;YACH,kBAAkB,CAAC,KAAK;YACxB,kBAAkB,CAAC,MAAM;YACzB,kBAAkB,CAAC,OAAO;SAC7B,CAAC;IACN,CAAC;IAzBD,sBAAsB;IACC,wBAAK,GAAuB,IAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtF,sBAAsB;IACC,yBAAM,GAAuB,IAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvF,sBAAsB;IACC,0BAAO,GAAuB,IAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAqB5F,yBAAC;CAAA,CA5BuC,oBAAQ,GA4B/C;AA5BY,gDAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACL/B,sGAAuC;AAEvC,UAAU;AACV;IAAiC,+BAAqB;IA6DlD;;;;OAIG;IACH,qBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,gBAAI,GAAlB;QACI,OAAO;YACH,qBAAqB;YACrB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;YACb,WAAW,CAAC,CAAC;SAChB,CAAC;IACN,CAAC;IAhHD,wBAAwB;IACD,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvE,yBAAyB;IACF,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAExE,yBAAyB;IACF,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAExE,yBAAyB;IACF,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAExE,0BAA0B;IACH,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAEzE,2BAA2B;IACJ,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1E,4BAA4B;IACL,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAE3E,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,iCAAiC;IACV,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEhF,mCAAmC;IACZ,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAElF,yBAAyB;IACF,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAExE,+BAA+B;IACR,aAAC,GAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IA0DlF,kBAAC;CAAA,CApHgC,oBAAQ,GAoHxC;AApHY,kCAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHxB,sGAAuC;AAEvC,UAAU;AACV;IAAiC,+BAAqB;IAclD,wBAAwB;IACxB,6EAA6E;IAG7E;;;;MAIE;IACF,qBAAsB,IAAS,EAAE,KAAa,EAAE,IAAU;eACtD,kBAAM,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,gBAAI,GAAlB;QACI,OAAO;YACH,WAAW,CAAC,IAAI;YAChB,WAAW,CAAC,MAAM;YAClB,WAAW,CAAC,KAAK;YACjB,WAAW,CAAC,QAAQ;YACpB,WAAW,CAAC,OAAO;YACnB,WAAW,CAAC,IAAI;SAEnB,CAAC;IACN,CAAC;IAtCD,4BAA4B;IACL,gBAAI,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACjF,4BAA4B;IACL,kBAAM,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACnF,0BAA0B;IACH,iBAAK,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChF,4BAA4B;IACL,oBAAQ,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACrF,2BAA2B;IACJ,mBAAO,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACnF,sBAAsB;IACC,gBAAI,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IA4B/E,kBAAC;CAAA,CAzCgC,oBAAQ,GAyCxC;AAzCY,kCAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHxB,sGAAuC;AAEvC,aAAa;AACb;IAA2C,yCAA+B;IAQtE;;;;MAIE;IACF,+BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,0BAAI,GAAlB;QACI,OAAO;YACH,qBAAqB,CAAC,IAAI;YAC1B,qBAAqB,CAAC,OAAO;SAEhC,CAAC;IACN,CAAC;IAvBD,2BAA2B;IACJ,0BAAI,GAA0B,IAAI,qBAAqB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9F,yBAAyB;IACF,6BAAO,GAA0B,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAsBtG,4BAAC;CAAA,CA5B0C,oBAAQ,GA4BlD;AA5BY,sDAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHlC,sGAAuC;AAEvC,kBAAkB;AAClB;IAAsC,oCAA0B;IAW5D;;;;MAIE;IACF,0BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,qBAAI,GAAlB;QACI,OAAO;YACH,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,WAAW;SAC/B,CAAC;IACN,CAAC;IA3BD,8BAA8B;IACP,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAEpF,2BAA2B;IACJ,qBAAI,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAEpF,4BAA4B;IACL,4BAAW,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAqBhG,uBAAC;CAAA,CA9BqC,oBAAQ,GA8B7C;AA9BY,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACH7B,sGAAuC;AAEvC,UAAU;AACV;IAAuC,qCAA2B;IA6D9D;;;;OAIG;IACH,2BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,sBAAI,GAAlB;QACI,OAAO;YACH,qBAAqB;YACrB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC;SACtB,CAAC;IACN,CAAC;IAhHD,wBAAwB;IACD,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEnF,yBAAyB;IACF,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAEpF,yBAAyB;IACF,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAEpF,yBAAyB;IACF,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAEpF,0BAA0B;IACH,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAErF,2BAA2B;IACJ,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtF,4BAA4B;IACL,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAEvF,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,iCAAiC;IACV,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5F,mCAAmC;IACZ,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9F,yBAAyB;IACF,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAEpF,+BAA+B;IACR,mBAAC,GAAsB,IAAI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IA0D9F,wBAAC;CAAA,CApHsC,oBAAQ,GAoH9C;AApHY,8CAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACH9B,sGAAuC;AAEvC;;GAEG;AACH;IAAiC,+BAAqB;IASlD;;;;OAIG;IACH,qBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,gBAAI,GAAlB;QACI,OAAO;YACH,WAAW,CAAC,IAAI;YAChB,WAAW,CAAC,KAAK;YACjB,WAAW,CAAC,MAAM;SACrB,CAAC;IACN,CAAC;IAzBD,oBAAoB;IACG,gBAAI,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrE,sBAAsB;IACC,iBAAK,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxE,sBAAsB;IACC,kBAAM,GAAgB,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAqB7E,kBAAC;CAAA,CA5BgC,oBAAQ,GA4BxC;AA5BY,kCAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLxB,sGAAuC;AAEvC,YAAY;AACZ;IAAqC,mCAAyB;IAU1D;;;;MAIE;IACF,yBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,oBAAI,GAAlB;QACI,OAAO;YACH,eAAe,CAAC,GAAG;YACnB,eAAe,CAAC,OAAO;YACvB,eAAe,CAAC,UAAU;SAC7B,CAAC;IACN,CAAC;IA1BD,0BAA0B;IACH,mBAAG,GAAmB,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACnF,wBAAwB;IACD,uBAAO,GAAmB,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACrF,wBAAwB;IACD,0BAAU,GAAmB,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAsB5F,sBAAC;CAAA,CA7BoC,oBAAQ,GA6B5C;AA7BY,0CAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACH5B,sGAAsC;AAEtC;;GAEG;AACH;IAAsC,oCAA0B;IAQ5D;;;;OAIG;IACH,0BAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,qBAAI,GAAlB;QACI,OAAO;YACH,gBAAgB,CAAC,yBAAyB;YAC1C,gBAAgB,CAAC,uBAAuB;SAC3C,CAAC;IACN,CAAC;IAvBD,uBAAuB;IACA,0CAAyB,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrG,uBAAuB;IACA,wCAAuB,GAAqB,IAAI,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAqBvG,uBAAC;CAAA,CA1BqC,oBAAQ,GA0B7C;AA1BY,4CAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACL7B,sGAAuC;AAEvC,WAAW;AACX;IAAgC,8BAAoB;IAShD;;;;OAIG;IACH,oBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,eAAI,GAAlB;QACI,OAAO;YACH,UAAU,CAAC,WAAW;YACtB,UAAU,CAAC,kBAAkB;YAC7B,UAAU,CAAC,QAAQ;SACtB,CAAC;IACN,CAAC;IAzBD,6BAA6B;IACN,sBAAW,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAClF,kCAAkC;IACX,6BAAkB,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAC/F,6BAA6B;IACN,mBAAQ,GAAe,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAqBpF,iBAAC;CAAA,CA5B+B,oBAAQ,GA4BvC;AA5BY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHvB,sGAAuC;AAEvC,UAAU;AACV;IAA8B,4BAAkB;IAS5C;;;;OAIG;IACH,kBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,aAAI,GAAlB;QACI,OAAO;YACH,QAAQ,CAAC,IAAI;YACb,QAAQ,CAAC,MAAM;YACf,QAAQ,CAAC,OAAO;SACnB,CAAC;IACN,CAAC;IAzBD,uBAAuB;IACA,aAAI,GAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACtE,sBAAsB;IACC,eAAM,GAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACvE,sBAAsB;IACC,gBAAO,GAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAqB5E,eAAC;CAAA,CA5B6B,oBAAQ,GA4BrC;AA5BY,4BAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHrB,sGAAuC;AAEvC,YAAY;AACZ;IAA6B,2BAAiB;IAM1C;;;;OAIG;IACH,iBAAsB,KAAU,EAAE,IAAY,EAAE,IAAU;eACtD,kBAAM,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACW,YAAI,GAAlB;QACI,OAAO;YACH,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,UAAU;SACrB,CAAC;IACN,CAAC;IArBD,yBAAyB;IACF,aAAK,GAAY,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACrE,6BAA6B;IACN,kBAAU,GAAY,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAmBlF,cAAC;CAAA,CAxB4B,oBAAQ,GAwBpC;AAxBY,0BAAO;;;;;;;;;;;;;;;;;;;;;;;;;ACHpB,0HAAqC;AACrC,0IAA6C;AAC7C,8HAAuC;AACvC,gJAAgD;AAChD,4GAA8B;AAC9B,gIAAwC;AACxC,gHAAgC;AAChC,gIAAwC;AACxC,gHAAgC;AAChC,sHAAmC;AACnC,gJAAgD;AAChD,kHAAiC;AACjC,8GAA+B;AAC/B,sHAAmC;AACnC,sHAAmC;AACnC,wHAAoC;AACpC,sIAA2C;AAC3C,kHAAiC;AACjC,0HAAqC;AACrC,oHAAkC;AAClC,oHAAkC;AAClC,wIAA4C;AAC5C,8HAAuC;AACvC,gIAAwC;AACxC,4HAAsC;AACtC,kHAAiC;AACjC,8GAA+B;AAC/B,4GAA8B;AAC9B,oHAAkC;AAClC,kHAAiC;AACjC,sGAA2B;AAC3B,kIAAyC;AACzC,kHAAiC;AACjC,8HAAuC;AACvC,gHAAgC;AAChC,sHAAmC;AACnC,kHAAiC;;;;;;;;;;;;;;;;ACnCjC,YAAY;AACC,iBAAS,GAAG,IAAI,CAAC;AAE9B,UAAU;AACG,uBAAe,GAAG,OAAO,CAAC;AAEvC;;GAEG;AACH,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,uCAAI;IACJ,yCAAK;IACL,2CAAM;AACV,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAED,2BAA2B;AACd,2BAAmB,GAAG,IAAI,CAAC;AAExC,iBAAiB;AACJ,0BAAkB,GAAG,SAAS,CAAC;AAE5C,8CAA8C;AAC9C,gBAAgB;AACH,sBAAc,GAAG,SAAS,CAAC;AAExC,gBAAgB;AACH,6BAAqB,GAAG,EAAE,CAAC;AAExC,iCAAiC;AACpB,oBAAY,GAAG,EAAE,CAAC;AAE/B,kBAAkB;AACL,iCAAyB,GAAG,UAAU,CAAC;AACvC,sBAAc,GAAG,MAAM,CAAC;AACxB,oBAAY,GAAG,QAAQ,CAAC;AACxB,uBAAe,GAAG,QAAQ,CAAC;AACxC,6DAA6D;AAChD,+BAAuB,GAAG,QAAQ,CAAC;AACnC,uBAAe,GAAG,MAAM,CAAC;AACzB,wCAAgC,GAAG,cAAc,CAAC;AAClD,qCAA6B,GAAG,YAAY,CAAC;AAC7C,0BAAkB,GAAG,QAAQ,CAAC;AAC9B,wBAAgB,GAAG,SAAS,CAAC;AAC7B,6BAAqB,GAAG,QAAQ,CAAC;AACjC,mBAAW,GAAG,MAAM,CAAC;AACrB,mBAAW,GAAG,OAAO,CAAC;AACtB,6BAAqB,GAAG,WAAW,CAAC;AACpC,qCAA6B,GAAG,kBAAkB,CAAC;AACnD,kCAA0B,GAAG,iBAAiB,CAAC;AAC/C,qCAA6B,GAAG,UAAU,CAAC;AAC3C,8BAAsB,GAAG,QAAQ,CAAC;AAElC,oCAA4B,GAAG,SAAS,CAAC;AACzC,wBAAgB,GAAG,QAAQ,CAAC;AAC5B,4BAAoB,GAAG,KAAK,CAAC;AAC7B,2BAAmB,GAAG,OAAO,CAAC;AAC9B,mCAA2B,GAAG,QAAQ,CAAC;AACvC,uBAAe,GAAG,QAAQ,CAAC;AAC3B,yBAAiB,GAAG,cAAc,CAAC;AACnC,uBAAe,GAAG,UAAU,CAAC;AAC7B,4BAAoB,GAAG,WAAW,CAAC;AACnC,6BAAqB,GAAG,aAAa,CAAC;AACtC,6BAAqB,GAAG,UAAU,CAAC;AAEhD,sBAAsB;AACT,cAAM,GAAG,KAAK,CAAC;AACf,+BAAuB,GAAG,aAAa,CAAC;AAErD,4BAA4B;AACf,4BAAoB,GAAG,qEAAqE,CAAC;AAG1G,WAAW;AACE,oBAAY,GAAG,4BAA4B,CAAC;AACzD,gBAAgB;AACH,yBAAiB,GAAG,kBAAkB,CAAC;AACpD,YAAY;AACC,mBAAW,GAAG,4BAA4B,CAAC;AACxD,gBAAgB;AACH,uBAAe,GAAG,kBAAkB,CAAC;AAClD,WAAW;AACE,kBAAU,GAAG,4BAA4B,CAAC;AACvD,gBAAgB;AACH,uBAAe,GAAG,kBAAkB,CAAC;AAClD,qBAAqB;AACR,2BAAmB,GAAG,6BAA6B,CAAC;AAEpD,6BAAqB,GAAG,4BAA4B,CAAC;AAElE,SAAS;AACT,qDAAqD;AAKrD,KAAK;AACL,YAAY;AACZ,KAAK;AACL,gCAAgC;AAChC,6BAA6B;AAC7B,+BAA+B;AAC/B,iCAAiC;AACjC,iCAAiC;AACjC,kCAAkC;AAClC,iCAAiC;AACjC,kCAAkC;AAClC,iCAAiC;AACjC,+BAA+B;AAC/B,mCAAmC;AACnC,kCAAkC;AAClC,mCAAmC;AACnC,gCAAgC;AAChC,mCAAmC;AACnC,kCAAkC;AAClC,2CAA2C;AAC3C,kCAAkC;AAClC,2CAA2C;AAC3C,+BAA+B;AAC/B,mCAAmC;AACnC,sCAAsC;AACtC,mDAAmD;AACnD,8BAA8B;AAC9B,2BAA2B;AAC3B,+BAA+B;AAC/B,mCAAmC;AACnC,+BAA+B;AAC/B,mCAAmC;AACnC,qCAAqC;AACrC,mCAAmC;AACnC,8BAA8B;AAC9B,iCAAiC;AACjC,6BAA6B;AAC7B,iCAAiC;AACjC,+BAA+B;AAC/B,iCAAiC;AACjC,+BAA+B;AAC/B,iCAAiC;AACjC,qCAAqC;AACrC,iCAAiC;AACjC,mCAAmC;AACnC,iCAAiC;AACjC,gCAAgC;AAChC,iCAAiC;AACjC,kCAAkC;AAClC,iCAAiC;AACjC,+BAA+B;AAC/B,iCAAiC;AACjC,uCAAuC;AACvC,iCAAiC;AACjC,wCAAwC;AACxC,iCAAiC;AACjC,+BAA+B;AAC/B,iCAAiC;AACjC,6BAA6B;AAC7B,iCAAiC;AACjC,gCAAgC;AAChC,mCAAmC;AACnC,mCAAmC;AACnC,qCAAqC;AACrC,+BAA+B;AAC/B,iCAAiC;AACjC,+BAA+B;AAC/B,mCAAmC;AACnC,8BAA8B;AAC9B,mCAAmC;AACnC,iCAAiC;AACjC,mCAAmC;AACnC,4BAA4B;AAC5B,iCAAiC;AACjC,8BAA8B;AAC9B,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,mCAAmC;AACnC,qCAAqC;AACrC,iCAAiC;AACjC,mCAAmC;AACnC,kCAAkC;AAClC,mCAAmC;AACnC,oCAAoC;AACpC,mCAAmC;AACnC,gCAAgC;AAChC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,gCAAgC;AAChC,mCAAmC;AACnC,6BAA6B;AAC7B,mCAAmC;AACnC,4BAA4B;AAC5B,iCAAiC;AACjC,kCAAkC;AAClC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,+BAA+B;AAC/B,iCAAiC;AACjC,oCAAoC;AACpC,iCAAiC;AACjC,+BAA+B;AAC/B,iCAAiC;AACjC,mCAAmC;AACnC,iCAAiC;AACjC,mCAAmC;AACnC,iCAAiC;AACjC,qCAAqC;AACrC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,kCAAkC;AAClC,iCAAiC;AACjC,oCAAoC;AACpC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,6BAA6B;AAC7B,iCAAiC;AACjC,8BAA8B;AAC9B,iCAAiC;AACjC,2BAA2B;AAC3B,2BAA2B;AAC3B,gCAAgC;AAChC,iCAAiC;AACjC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChOH,4EAA4E;AAC/D,mBAAW,GAAG,SAAS,CAAC;AACxB,mBAAW,GAAG,YAAY,CAAC;AAC3B,mBAAW,GAAG,UAAU,CAAC;AACzB,mBAAW,GAAG,YAAY,CAAC;AAC3B,mBAAW,GAAG,WAAW,CAAC;AAC1B,mBAAW,GAAG,aAAa,CAAC;AAC5B,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,4BAA4B,CAAC;AAC3C,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,eAAe,CAAC;AAC9B,mBAAW,GAAG,SAAS,CAAC;AACxB,mBAAW,GAAG,aAAa,CAAC;AAC5B,mBAAW,GAAG,WAAW,CAAC;AAC1B,mBAAW,GAAG,YAAY,CAAC;AAC3B,mBAAW,GAAG,+CAA+C,CAAC;AAC9D,mBAAW,GAAG,cAAc,CAAC;AAC7B,mBAAW,GAAG,yOAAyO,CAAC;AACxP,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,sBAAsB,CAAC;AACrC,mBAAW,GAAG,eAAe,CAAC;AAC9B,mBAAW,GAAG,aAAa,CAAC;AAC5B,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,eAAe,CAAC;AAE3C,WAAW;AACE,mBAAW,GAAG,gCAAgC,CAAC;AAC/C,mBAAW,GAAG,gBAAgB,CAAC;AAC/B,mBAAW,GAAG,uFAAuF,CAAC;AACtG,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,uCAAuC,CAAC;AACtD,mBAAW,GAAG,0CAA0C,CAAC;AACzD,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,+BAA+B,CAAC;AAC9C,mBAAW,GAAG,kCAAkC,CAAC;AAI9D,mEAAmE;AACnE,kEAAkE;AAClE,EAAE;AACF,sDAAsD;AAEtD,WAAW;AACE,mBAAW,GAAG,cAAc,CAAC;AAC7B,mBAAW,GAAG,iDAAiD,CAAC;AAChE,mBAAW,GAAG,0BAA0B,CAAC;AACzC,mBAAW,GAAG,qCAAqC,CAAC;AACpD,mBAAW,GAAG,+BAA+B,CAAC;AAC9C,mBAAW,GAAG,YAAY,CAAC;AAC3B,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,gBAAgB,CAAC;AAC/B,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,cAAc,CAAC;AAC7B,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,qCAAqC,CAAC;AACpD,mBAAW,GAAG,4BAA4B,CAAC;AAGxD,8CAA8C;AAC9C,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AAEvD,WAAW;AAEE,mBAAW,GAAG,8BAA8B,CAAC;AAC7C,mBAAW,GAAG,cAAc,CAAC;AAC7B,mBAAW,GAAG,aAAa,CAAC;AAC5B,mBAAW,GAAG,SAAS,CAAC;AACxB,mBAAW,GAAG,iBAAiB,CAAC,CAAC,SAAS;AAC1C,mBAAW,GAAG,yBAAyB,CAAC,CAAC,UAAU;AACnD,mBAAW,GAAG,8BAA8B,CAAC;AAC7C,mBAAW,GAAG,8BAA8B,CAAC;AAC7C,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,sCAAsC,CAAC;AACrD,mBAAW,GAAG,iBAAiB,CAAC;AAChC,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,gBAAgB,CAAC;AAC/B,mBAAW,GAAG,2BAA2B,CAAC;AAC1C,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,cAAc,CAAC;AAC7B,mBAAW,GAAG,wBAAwB,CAAC;AACvC,mBAAW,GAAG,gBAAgB,CAAC;AAC/B,mBAAW,GAAG,uFAAuF,CAAC;AACtG,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,wBAAwB,CAAC;AACvC,mBAAW,GAAG,6BAA6B,CAAC;AAC5C,mBAAW,GAAG,0BAA0B,CAAC;AACzC,mBAAW,GAAG,2BAA2B,CAAC;AAC1C,mBAAW,GAAG,oCAAoC,CAAC;AACnD,mBAAW,GAAG,6BAA6B,CAAC;AAC5C,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,uFAAuF,CAAC;AACtG,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,wBAAwB,CAAC;AACvC,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,gBAAgB,CAAC;AAC/B,mBAAW,GAAG,iCAAiC,CAAC;AAChD,mBAAW,GAAG,eAAe,CAAC;AAC9B,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,sBAAsB,CAAC;AAClD,0CAA0C;AAC7B,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,eAAe,CAAC;AAC9B,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,kBAAkB,CAAC;AAC9C,kDAAkD;AACrC,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,wBAAwB,CAAC;AACvC,mBAAW,GAAG,eAAe,CAAC;AAC9B,mBAAW,GAAG,sBAAsB,CAAC;AACrC,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,wBAAwB,CAAC;AACvC,mBAAW,GAAG,wBAAwB,CAAC;AACvC,mBAAW,GAAG,mDAAmD,CAAC;AAClE,mBAAW,GAAG,2BAA2B,CAAC;AAC1C,mBAAW,GAAG,+BAA+B,CAAC;AAC9C,mBAAW,GAAG,eAAe,CAAC;AAC9B,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,0CAA0C,CAAC;AACtE,0DAA0D;AAC7C,mBAAW,GAAG,yEAAyE,CAAC;AACxF,mBAAW,GAAG,iBAAiB,CAAC;AAChC,mBAAW,GAAG,0BAA0B,CAAC;AACzC,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,0BAA0B,CAAC;AACzC,mBAAW,GAAG,WAAW,CAAC;AAC1B,mBAAW,GAAG,sBAAsB,CAAC;AACrC,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,gCAAgC,CAAC;AAC/C,mBAAW,GAAG,kBAAkB,CAAC;AAEjC,mBAAW,GAAG,oCAAoC,CAAC;AAEnD,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,gBAAgB,CAAC;AAC/B,mBAAW,GAAG,0BAA0B,CAAC;AACzC,mBAAW,GAAG,iBAAiB,CAAC;AAChC,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,oBAAoB,CAAC;AAGnC,mBAAW,GAAG,yBAAyB,CAAC;AAExC,mBAAW,GAAG,4BAA4B,CAAC;AAC3C,mBAAW,GAAG,cAAc,CAAC;AAC7B,mBAAW,GAAG,8BAA8B,CAAC;AAG7C,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,4BAA4B,CAAC;AAC3C,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,0BAA0B,CAAC;AACzC,mBAAW,GAAG,0BAA0B,CAAC;AACzC,mBAAW,GAAG,yBAAyB,CAAC;AAExC,mBAAW,GAAG,uCAAuC,CAAC;AACtD,mBAAW,GAAG,0CAA0C,CAAC;AACzD,mBAAW,GAAG,8CAA8C,CAAC;AAC7D,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,iBAAiB,CAAC;AAChC,mBAAW,GAAG,cAAc,CAAC;AAC7B,mBAAW,GAAG,mBAAmB,CAAC;AAClC,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,aAAa,CAAC;AAC5B,mBAAW,GAAG,gBAAgB,CAAC;AAC/B,mBAAW,GAAG,kBAAkB,CAAC;AACjC,mBAAW,GAAG,8CAA8C,CAAC;AAC7D,mBAAW,GAAG,gCAAgC,CAAC;AAC/C,mBAAW,GAAG,6BAA6B,CAAC;AAC5C,mBAAW,GAAG,+FAA+F,CAAC;AAC9G,mBAAW,GAAG,oFAAoF,CAAC;AACnG,mBAAW,GAAG,gEAAgE,CAAC;AAC/E,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,8CAA8C,CAAC;AAC7D,mBAAW,GAAG,8CAA8C,CAAC;AAC7D,mBAAW,GAAG,yBAAyB,CAAC;AACxC,mBAAW,GAAG,6BAA6B,CAAC;AAE5C,mBAAW,GAAG,mCAAmC,CAAC;AAClD,mBAAW,GAAG,uCAAuC,CAAC;AAEtD,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,gCAAgC,CAAC;AAC/C,mBAAW,GAAG,oBAAoB,CAAC;AACnC,mBAAW,GAAG,oBAAoB,CAAC;AAEnC,mBAAW,GAAG,kCAAkC,CAAC;AACjD,mBAAW,GAAG,uBAAuB,CAAC;AACtC,mBAAW,GAAG,4EAA4E,CAAC;AAC3F,mBAAW,GAAG,8BAA8B,CAAC;AAC7C,mBAAW,GAAG,8BAA8B,CAAC;AAC7C,mBAAW,GAAG,qBAAqB,CAAC;AACpC,mBAAW,GAAG,8BAA8B,CAAC;AAC7C,mBAAW,GAAG,wBAAwB,CAAC;AAEpD,0CAA0C;AAC1C,4CAA4C;AAC5C,6DAA6D;AAC7D,mEAAmE;AACnE,oDAAoD;AACpD,0DAA0D;AAC1D,iDAAiD;AACjD,uDAAuD;AACvD,yDAAyD;AACzD,wDAAwD;AACxD,6DAA6D;AAC7D,2DAA2D;AAC3D,mDAAmD;;;;;;;;;;;;;;;;ACxOnD,oDAA4B;AAC5B,0EAAmC;AA+CnC;;GAEG;AACH;IA6FI;;OAEG;IAEH,yDAAyD;IACzD,gBAAY,MAAoB;QAAhC,iBAkCC;QAvHD;;UAEE;QACQ,UAAK,GAAsB,IAAI,CAAC;QAE1C;;WAEG;QACO,kBAAa,GAAQ,IAAI,CAAC;QAKpC;UACE;QACQ,YAAO,GAAQ,IAAI,CAAC;QAE9B;WACG;QACO,UAAK,GAAW,IAAI,CAAC;QAE/B;WACG;QACO,gBAAW,GAAQ,IAAI,CAAC;QAElC;WACG;QACO,SAAI,GAAmB,IAAI,CAAC;QAMtC;;WAEG;QACI,WAAM,GAA0E,IAAI,CAAC;QAE5F;;WAEG;QACI,YAAO,GAA2D,IAAI,CAAC;QAE9E;;WAEG;QACI,YAAO,GAA0E,IAAI,CAAC;QAE7F;;WAEG;QACI,aAAQ,GAA2D,IAAI,CAAC;QAoC3E,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAExB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE9B,IAAI,MAAM,CAAC,SAAS,EAAE;YAClB,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;gBACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;aACzC;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;aAC3C;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;aAC3C;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC7C;SACJ;QAED,yBAAyB;QACzB,yBAAyB;QACzB,IAAI,CAAC,WAAW,CAAC,aAAG;YAChB,KAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,gBAAgB;YAChB,iCAAiC;YAEjC,KAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IA/DD,sBAAW,gCAAY;QAHvB;;WAEG;aACH;YACI,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;gBACzB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,YAAY,EAAE;oBACzC,OAAO,IAAI,CAAC;iBACf;qBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,YAAY,EAAE;oBAChD,OAAO,IAAI,CAAC;iBACf;qBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,gBAAgB,EAAE;oBACpD,OAAO,QAAQ,CAAC;iBACnB;aACJ;YACD,kCAAkC;YAClC,cAAc;YACd,OAAO,QAAQ,CAAC;QACpB,CAAC;;;OAAA;IAoDD,YAAY;IACZ,wCAAwC;IAExC;;;OAGG;IACO,4BAAW,GAArB,UAAsB,EAAkB;QAEpC,qBAAqB;QAErB,IAAI,CAAC,cAAc,EAAE,CAAC;QAGtB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAAA,CAAC;IAGF;;OAEG;IACH,4BAAW,GAAX;QAEI,WAAW;QACX,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAClD,IAAM,KAAK,GAAG,CAAC,CAAC,+BAA+B,CAAC;QAEhD,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACtB,SAAS,GAAG,CAAC,CAAC,2DAA2D,CAAC;SAC7E;aACI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YAC5B,SAAS,GAAG,CAAC,CAAC,0CAA0C,CAAC;SAC5D;aACI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YAC3B,SAAS,GAAG,CAAC,CAAC,2CAA2C,CAAC;SAC7D;QACD,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAExB,mBAAmB;QACnB,IAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC7B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAGnC,SAAS;QACT,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,4CAA4C,CAAC,CAAC,MAAK;QACjE,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,WAAW;QACX,8EAA8E;QAC9E,kEAAkE;QAClE,6CAA6C;QAC7C,wEAAwE;QAExE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAClF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,wDAAwD,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAClF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,0DAA0D,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1F,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,6DAA6D,CAAC,CAAC;YAClF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD;;OAEG;IACH,+BAAc,GAAd;QAEI,WAAW;QACX,wDAAwD;QACxD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAI;QAEhC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAC,KAAI;QAClD,IAAM,KAAK,GAAG,CAAC,CAAC,+BAA+B,CAAC;QAEhD,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACtB,SAAS,GAAG,CAAC,CAAC,2DAA2D,CAAC;SAC7E;aACI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YAC5B,SAAS,GAAG,CAAC,CAAC,0CAA0C,CAAC;SAC5D;aACI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YAC3B,SAAS,GAAG,CAAC,CAAC,2CAA2C,CAAC;SAC7D;QAED,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAExB,mBAAmB;QACnB,IAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC7B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnC,SAAS;QACT,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,KAAI;QAC9C,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,WAAW;QACX,8EAA8E;QAC9E,kEAAkE;QAClE,6CAA6C;QAC7C,wEAAwE;QAExE,oDAAoD;QACpD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAClF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,wDAAwD,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAClF,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,0DAA0D,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1F,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,6DAA6D,CAAC,CAAC;YAClF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAGD;;OAEG;IACO,gCAAe,GAAzB;QAAA,iBAuCC;QArCG,UAAU;QACV,IAAM,MAAM,GAAG;YACX,OAAO,EAAE,UAAC,CAAoB,EAAE,CAA2B;gBACvD,IAAI,GAAG,GAAG,IAAI,CAAC;gBACf,IAAI,KAAI,CAAC,MAAM,EAAE;oBACb,GAAG,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,EAAE,KAAI,EAAE,CAAC,CAAC,CAAC;oBACtC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;iBAChC;gBACD,OAAO,GAAG,CAAC;YACf,CAAC;YAED,KAAK,EAAE,UAAC,CAAoB,EAAE,CAAqB;;gBAC/C,WAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAI,EAAE,KAAI,EAAE,CAAC,EAAE;YACtC,CAAC;YAED,MAAM,EAAE,UAAC,CAAoB,EAAE,CAA2B;gBACtD,IAAI,GAAG,GAAG,IAAI,CAAC;gBACf,IAAI,KAAI,CAAC,OAAO,EAAE;oBACd,GAAG,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAI,EAAE,KAAI,EAAE,CAAC,CAAC,CAAC;oBACvC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;iBAChC;gBACD,OAAO,GAAG,CAAC;YACf,CAAC;YAED,MAAM,EAAE,UAAC,CAAoB,EAAE,CAAqB;;gBAChD,WAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,KAAI,EAAE,KAAI,EAAE,CAAC,EAAE;YACvC,CAAC;SACJ;QACD,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAE7E,eAAe;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE3D,sDAAsD;QACtD,+BAA+B;QAC/B,iCAAiC;QACjC,KAAK;IACT,CAAC;IAED;;;OAGG;IACO,yBAAQ,GAAlB;QACI,WAAW;IACf,CAAC;IAED;;;;OAIG;IACH,qBAAI,GAAJ;QACI,EAAE;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,sBAAK,GAAL,UAAM,YAA+B;QAEjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAvVD;;;;MAIE;IACwB,0BAAmB,GAAG;QAC5C,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;QAC1C,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;KAC7C,CAAC;IA+UN,aAAC;CAAA;AAID;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAa,EAAE,OAAY,EAAE,OAAqC,EAAE,IAA6B,EAAE,SAA2B;IAAjG,4CAAqC;IAAE,oCAA6B;IACtH,IAAM,MAAM,GAAiB;QACzB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,SAAS;KACvB,CAAC;IACF,IAAM,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/B,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,OAAO,GAAG,CAAC;AACf,CAAC;AAED,qBAAqB;AACrB;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,KAAa,EAAE,OAAY,EAAE,OAAqC,EAAE,IAA6B,EAAE,QAA6C;IAA3K,iBAOC;IAPuD,4CAAqC;IAAE,oCAA6B;IAExH,IAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,GAAG,CAAC,QAAQ,GAAG,UAAC,CAAC,EAAE,CAAC;QAChB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,KAAI,EAAE,CAAC,CAAC,YAAY,EAAE;IACzC,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAPD,gCAOC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAa,EAAE,OAAY,EAAE,QAA6C;IAEnG,8BAA8B;IAC9B,wEAAwE;IACxE,GAAG;IACH,qFAAqF;IACrF,iCAAiC;IACjC,4BAA4B;IAC5B,2CAA2C;IAC3C,GAAG;IACH,aAAa;IAEb,mDAAmD;IACnD,4BAA4B;IAC5B,2CAA2C;IAC3C,GAAG;IAEH,IAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC;AACf,CAAC;AAnBD,oCAmBC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAa,EAAE,OAAY,EAAE,QAA6C;IAEpG,oFAAoF;IACpF,iCAAiC;IACjC,4BAA4B;IAC5B,2CAA2C;IAC3C,GAAG;IACH,aAAa;IAEb,mDAAmD;IACnD,4BAA4B;IAC5B,2CAA2C;IAC3C,GAAG;IACH,IAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC;AACf,CAAC;AAfD,sCAeC;;;;;;;;;;;;;;;;;ACveD,oDAA4B;AAG5B;;GAEG;AACH;IAaI,6BAA6B;IAC7B,MAAM;IACN,aAAa;IACb,MAAM;IACN,qCAAqC;IAErC,MAAM;IACN,eAAe;IACf,MAAM;IACN,yCAAyC;IACzC,yCAAyC;IACzC,6CAA6C;IAC7C,6BAA6B;IAC7B,6DAA6D;IAC7D,QAAQ;IACR,wBAAwB;IACxB,6BAA6B;IAC7B,IAAI;IAEJ,MAAM;IACN,aAAa;IACb,MAAM;IACN,kCAAkC;IAClC,2CAA2C;IAC3C,mDAAmD;IACnD,4CAA4C;IAC5C,wDAAwD;IACxD,qBAAqB;IACrB,wDAAwD;IACxD,QAAQ;IACR,IAAI;IAEJ,UAAU;IACV,gDAAgD;IAEhD,6BAA6B;IAG7B;;OAEG;IACH;QACI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;QAGI;IACJ,sBAAI,GAAJ,UAAK,eAAwB;QAEzB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5C,4BAA4B;YAC5B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC3B,+BAA+B;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACvB;QAED,kDAAkD;QAClD,IAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAExF,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;YAC5B,2BAA2B;YAC3B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,qCAAqC;YACrC,iCAAiC;YACjC,sCAAsC;SACzC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,mBAAmB;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAEjB,gBAAgB;QAChB,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAC3E,WAAW;YACX,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC;gBAC1C,2BAA2B;gBAC3B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YAGH,EAAE;YACF,gCAAgC;YAChC,EAAE;YAEF,IAAI,IAAI,GAAG,4BAA4B,CAAC;YACxC,IAAI,IAAI,mCAAmC,CAAC;YAC5C,IAAI,IAAI,mCAAmC,CAAC;YAC5C,IAAI,IAAI,mCAAmC,CAAC;YAC5C,IAAI,IAAI,mCAAmC,CAAC;YAC5C,IAAI,IAAI,mCAAmC,CAAC;YAC5C,IAAI,IAAI,QAAQ,CAAC;YACjB,IAAI,IAAI,4DAA4D,CAAC;YACrE,IAAI,IAAI,UAAU,CAAC;YACnB,IAAI,IAAI,0BAA0B,CAAC;YACnC,IAAI,IAAI,kGAAkG,CAAC;YAC3G,IAAI,IAAI,uIAAuI,CAAC;YAChJ,IAAI,IAAI,mFAAmF,CAAC;YAC5F,IAAI,IAAI,eAAe,CAAC;YACxB,IAAI,IAAI,WAAW,CAAC;YACpB,IAAI,IAAI,QAAQ,CAAC;YACjB,IAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE/F,IAAI,eAAe,EAAE;gBACjB,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;aACzD;YAED,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAClC;IACL,CAAC;IAAA,CAAC;IAEF;;MAEE;IACF,sBAAI,GAAJ;QACI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9C,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3B,kBAAkB;YAClB,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAEpC,kBAAkB;YAClB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACrC,qCAAqC;gBACrC,uCAAuC;aAC1C;YACD,aAAa;YACb,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;aACxB;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAAA,CAAC;IA2FN,cAAC;AAAD,CAAC;AAGD,EAAE;AAGW,eAAO,GAAG,IAAI,OAAO,EAAE,CAAC;;;;;;;;;;;;;;AC9PrC;;;;;;GAMG;;;AAoDH,IAAM,oBAAoB,GAAkB;IACxC,4CAA4C;IAC5C,WAAW,EAAE,IAAI;IACjB,wCAAwC;IACxC,QAAQ,EAAE,IAAI;IACd,uCAAuC;IACvC,aAAa,EAAE,IAAI;IACnB,yCAAyC;IACzC,SAAS,EAAE,IAAI;IACf,uBAAuB;IACvB,SAAS,EAAE,CAAC;IACZ,4EAA4E;IAC5E,yBAAyB;IACzB,gBAAgB;IAChB,qBAAqB;IACrB,KAAK,EAAE,QAAQ;IACf,uCAAuC;IACvC,qBAAqB;IACrB,iBAAiB;IACjB,aAAa,EAAE,WAAW;IAC1B,0BAA0B;IAC1B,YAAY,EAAE,GAAG;IACjB,iBAAiB;IACjB,aAAa,EAAE,SAAS;IACxB,0BAA0B;IAC1B,YAAY,EAAE,GAAG;IACjB,2CAA2C;IAC3C,GAAG,EAAE,CAAC;CACT;AAGD,uBAAuB;AACvB,SAAS;AACT,SAAS;AACT,uBAAuB;AACvB,uBAAuB;AACvB,SAAS;AACT,uEAAuE;AACvE,gDAAgD;AAChD,QAAQ;AACR,SAAS;AACT,SAAS;AACT,uBAAuB;AACvB,uBAAuB;AACvB,SAAS;AACT,0EAA0E;AAC1E,mDAAmD;AACnD,QAAQ;AACR,SAAS;AACT,SAAS;AACT,uBAAuB;AACvB,uBAAuB;AACvB,SAAS;AACT,uEAAuE;AACvE,gDAAgD;AAChD,QAAQ;AACR,SAAS;AACT,SAAS;AACT,uBAAuB;AACvB,uBAAuB;AACvB,SAAS;AACT,wEAAwE;AACxE,iDAAiD;AACjD,QAAQ;AAER,SAAS;AACT,SAAS;AACT,uBAAuB;AACvB,yBAAyB;AACzB,uBAAuB;AACvB,SAAS;AACT,iIAAiI;AAEjI,yBAAyB;AACzB,sEAAsE;AACtE,oDAAoD;AACpD,iFAAiF;AACjF,sCAAsC;AACtC,QAAQ;AAKR,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;IACxB,oDAAoD;IACpD,IAAI,EAAE,OAAO;QACT,2CAA2C;QAC3C,+BAA+B;QAC/B,kEAAkE;QAClE,YAAY;QACZ,8DAA8D;QAC9D,UAAU;QACV,QAAQ;CAoCf,CAAC,CAAC;AACH,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;IACxB,oDAAoD;IACpD,IAAI,EAAE,OAAO;QACT,2CAA2C;QAC3C,+BAA+B;QAC/B,kEAAkE;QAClE,YAAY;QACZ,8DAA8D;QAC9D,UAAU;QACV,QAAQ;CAoCf,CAAC,CAAC;AAIH;;;;;GAKG;AACH,SAAS,IAAI,CAAC,OAAyB,EAAE,IAAsB,EAAE,SAAgD,EAAE,OAAuB;IAAjG,6CAAsB;IAE3D,eAAe;IACf,4DAA4D;IAC5D,4CAA4C;IAC5C,6FAA6F;IAC7F,0FAA0F;IAC1F,IAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IAG7F,8BAA8B;IAC9B,IAAM,IAAI,GAAG;QACT,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,IAAI;KACb,CAAC;IAGF,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAID;;;;;GAKG;AACH,SAAS,WAAW,CAAC,MAAW,EAAE,OAAyB,EAAE,IAAsB,EAAE,SAAgD,EAAE,SAAgB,EAAE,OAAuB;IAAnH,6CAAsB;IAAoD,4CAAgB;IAEnJ,eAAe;IACf,4DAA4D;IAC5D,4CAA4C;IAC5C,6FAA6F;IAC7F,0FAA0F;IAC1F,IAAI,SAAS,EAAE;QACX,SAAS,IAAI,UAAU,CAAC;KAC3B;IACD,IAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IAG7F,8BAA8B;IAC9B,IAAM,IAAI,GAAG;QACT,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,IAAI;KACb,CAAC;IAGF,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAEY,cAAM,GAAG;IAElB;;;;OAIG;IACH,IAAI,EAAJ,UAAK,OAAyB,EAAE,OAAuB;QACnD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD;;;;OAIG;IACH,OAAO,EAAP,UAAQ,OAAyB,EAAE,OAAuB;QACtD,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD;;;;OAIG;IACH,IAAI,EAAJ,UAAK,OAAyB,EAAE,OAAuB;QACnD,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD;;;;OAIG;IACH,KAAK,EAAL,UAAM,OAAyB,EAAE,OAAuB;QACpD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,OAAO,EAAP,UAAQ,MAA8C,EAAE,OAAyB,EAAE,OAAuB,EAAE,IAAsB,EAAE,SAAyD,EAAE,SAAgB;QAAnG,6CAAsB;QAAE,8CAAyD;QAAE,4CAAgB;QAC3M,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;CAEJ;;;;;;;;;;;;;;;;;AC9QD;;GAEG;AACH;IAAA;IA8BA,CAAC;IArBG,sBAAW,sBAAW;QAJtB;;;WAGG;aACH;YACI,IAAI;gBACA,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;oBAC1B,IAAM,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;oBACtD,IAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBACvD,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;iBAC9C;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM;aACT;YACD,OAAO,OAAO,CAAC,eAAe,CAAC;QACnC,CAAC;;;OAAA;IAED;;;OAGG;IACI,sBAAc,GAArB,UAAsB,kBAAkB;QACpC,0DAA0D;QAC1D,OAAO,CAAC,eAAe,GAAG,kBAAkB,CAAC;IACjD,CAAC;IACL,cAAC;AAAD,CAAC;AA9BY,0BAAO;;;;;;;;;;;;;;;;;ACtEpB,6EAA4B;AAC5B,0FAAwC;AACxC,2EAA8B;AAuD9B;;GAEG;AACH;IAAA;IAiLA,CAAC;IAtKG,sBAAW,wBAAa;QAJxB;;;WAGG;aACH;YACI,IAAI;gBACA,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;oBAC5B,IAAM,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC1D,IAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBAC3D,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;iBAClD;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM;aACT;YACD,OAAO,OAAO,CAAC,iBAAiB,CAAC;QACrC,CAAC;;;OAAA;IAED;;;OAGG;IACI,wBAAgB,GAAvB,UAAwB,oBAAyB;QAE7C,IAAI,oBAAoB,CAAC,MAAM,KAAK,IAAI,EAAE;YAAE,OAAO;SAAE;QACrD,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACjG,IAAM,WAAW,GAAG,CAAC,qBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,WAAW,KAAI,CAAC,qBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,WAAW,MAAK,IAAI,IAAI,qBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,WAAW,CAAC,WAAW,QAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACrL,OAAO,CAAC,iBAAiB,GAAG;YACxB,MAAM,EAAE,oBAAoB,CAAC,MAAM,IAAI,IAAI;YAC3C,SAAS,EAAE,oBAAoB,CAAC,SAAS,IAAI,IAAI;YACjD,SAAS,EAAE,oBAAoB,CAAC,SAAS,IAAI,IAAI;YACjD,OAAO,EAAE,oBAAoB,CAAC,OAAO,IAAI,EAAE;YAC3C,aAAa,EAAE,oBAAoB,CAAC,aAAa,IAAI,EAAE;YACvD,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,IAAI,EAAE;YAC7C,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,IAAI,EAAE;YAC7C,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,IAAI,EAAE;YAC7C,OAAO,EAAE,OAAO;YAChB,yBAAyB,EAAE,oBAAoB,CAAC,yBAAyB,IAAI,EAAE;YAC/E,0BAA0B,EAAE,oBAAoB,CAAC,0BAA0B,IAAI,KAAK;YACpF,OAAO,EAAE,oBAAoB,CAAC,OAAO,IAAI,EAAE;YAC3C,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,EAAE;YACrD,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,EAAE;YACrD,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,EAAE;YACrD,WAAW,EAAE,WAAW;SAC3B;IACL,CAAC;IAKD,sBAAW,8BAAmB;QAJ9B;;;WAGG;aACH;YACI,IAAI;gBACA,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;oBAClC,IAAM,uBAAuB,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;oBACtE,IAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAEjE,OAAO,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;iBAExD;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM;aACT;YACD,OAAO,OAAO,CAAC,uBAAuB,CAAC;QAC3C,CAAC;;;OAAA;IAED;;;OAGG;IACI,8BAAsB,GAA7B,UAA8B,oBAAoB;QAE9C,IAAI,mBAAmB,GAA+B,EAAE,CAAC;QACzD,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;YACjC,oBAAoB,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;gBAC9B,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC7E,IAAI,EAAE,GAA6B;oBAC/B,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,qCAAqC;oBACrC,OAAO,EAAE,OAAO;oBAChB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;iBACzC,CAAC;gBACF,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACN;QACD,OAAO,CAAC,uBAAuB,GAAG,mBAAmB,CAAC;IAC1D,CAAC;IAiDD;;;OAGG;IACI,0BAAkB,GAAzB;QACI,8DAA8D;QAC9D,qEAAqE;QACrE,mDAAmD;QACnD,wDAAwD;QACxD,mCAAmC;QACnC,OAAO;QACP,kBAAkB;QAClB,WAAW;QACX,KAAK;QAEL,WAAI,CAAC,IAAI,CAAC;YACN,GAAG,EAAE,2BAA2B;YAChC,IAAI,EAAE,KAAK;SACd,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;;YACxB,2BAA2B;YAC3B,IAAI;gBACA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAE5B,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;gBACtB,IAAI,aAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,0CAAE,MAAM,KAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE;oBAC1D,yCAAyC;oBACzC,8CAA8C;oBAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;iBAC5B;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC;aACR;QACL,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,UAAU,EAAE,WAAW;YAC5C,IAAI,CAAC;QACT,CAAC,CAAC,CAAC;IAEP,CAAC;IAnFD;;OAEG;IACI,gBAAQ,GAAG;QACd;;WAEG;QACH,IAAI,EAAE,UAAU,YAAoB;YAChC,IAAI,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;YACjC,IAAI,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC;YACtC,IAAI,CAAC,GAAG,EAAE;gBAAE,OAAO,IAAI,CAAC;aAAE;YAC1B,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,YAAE,IAAI,SAAE,CAAC,YAAY,KAAK,YAAY,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAzE,CAAyE,CAAC,CAAC;YACnG,OAAO,EAAE,IAAI,IAAI,CAAC;QACtB,CAAC;QACD;;WAEG;QACH,iBAAiB,EAAE,UAAU,YAAoB;YAC7C,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7C,OAAO,GAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,iBAAiB,KAAI,CAAC,CAAC;QACtC,CAAC;QACD;;WAEG;QACH,SAAS,EAAE,UAAU,YAAoB,EAAE,SAAmB;YAC1D,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACnD,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,EAAE;gBAAE,OAAO,KAAK,CAAC;aAAE;YAC1B,QAAQ;YACR,IAAI,EAAE,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC5D,OAAO,KAAK,CAAC;aAChB;YACD,oBAAoB;YACpB,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBACvE,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD;;WAEG;QACH,QAAQ,EAAE,UAAU,YAAoB,EAAE,SAAmB;YACzD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAChE,CAAC;KACJ;IAwCL,cAAC;CAAA;AAjLY,0BAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7DpB,oDAA4B;AAC5B,2EAA8B;AAC9B,uFAAsC;AACtC,qFAAwC;AAExC,MAAM;AACN,6BAA6B;AAC7B,oBAAoB;AACpB;IAgBI,MAAM;IACN,aAAY,SAAc;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAGD,MAAM;IACN,kBAAI,GAAJ;QAGI,kCAAkC;QAClC,uCAAuC;QACvC,wBAAwB;QACxB,MAAM;QAEN,sBAAsB;QACtB,mCAAmC;QACnC,yCAAyC;QACzC,8EAA8E;QAC9E,2BAA2B;QAC3B,2DAA2D;QAC3D,qCAAqC;QACrC,0CAA0C;QAE1C,iBAAiB;QACjB,+CAA+C;QAC/C,gCAAgC;QAChC,8CAA8C;QAC9C,gBAAgB;QAChB,+BAA+B;QAC/B,yDAAyD;QACzD,kBAAkB;QAClB,oCAAoC;QACpC,4CAA4C;QAC5C,mCAAmC;QACnC,sBAAsB;QACtB,qCAAqC;QACrC,4DAA4D;QAC5D,mGAAmG;QACnG,6DAA6D;QAC7D,0DAA0D;QAC1D,oDAAoD;QACpD,kDAAkD;QAClD,yCAAyC;QACzC,eAAe;QACf,aAAa;QACb,OAAO;QACP,KAAK;QAGL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAAA,CAAC;IAGF;;QAEI;IACJ,yBAAW,GAAX;QACI,4CAA4C;QAC5C,2BAA2B;QAC3B,OAAO,QAAQ,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,sBAAQ,GAAR,UAAS,GAAW,EAAE,SAAmB;QAAzC,iBAyDC;QAxDG,sCAAsC;QACtC,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,SAAS,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjD,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,GAAG,EAAE;YAEL,uCAAuC;YACvC,yBAAyB;YACzB,aAAa;YACb,GAAG;YAEH,iDAAiD;YACjD,oDAAoD;YACpD,qCAAqC;YAErC,IAAI,SAAS,EAAE;gBACX,yCAAyC;gBACzC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aACtC;YAED,MAAM,GAAG,GAAG,CAAC;SAChB;aAAM;YAEH,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;gBACnC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;aAC9B;iBAAM;gBACH,8BAA8B;gBAC9B,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACzD;YAED,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SACrC;QAID,sEAAsE;QAGtE,QAAQ;QACR,2CAA2C;QAC3C,4BAA4B;QAC5B,6DAA6D;QAG7D,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;;YAC1C,KAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,WAAI,CAAC,UAAU,0CAAE,IAAI,CAAC,KAAI,EAAE,KAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE;QAE1E,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,GAAG;QAEb,CAAC,CAAC,CAAC,OAAO,CAAC;QAEX,CAAC,CAAC,CAAC;IAEP,CAAC;IAAA,CAAC;IAGF;;;;OAIG;IACG,sBAAQ,GAAd,UAAe,GAAG,EAAE,SAAiB;;;;gBAEjC,QAAQ;gBACR,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,IAAI;4BACA,IAAI,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gCAChD,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;6BACjC;4BAED,SAAS;4BACT,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;4BAEnC,WAAI,CAAC,IAAI,CAAC;gCACN,GAAG,EAAE,GAAG;gCACR,IAAI,EAAE,KAAK;gCACX,QAAQ,EAAE,MAAM;gCAChB,KAAK,EAAE,CAAC,CAAC;6BA6BZ,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gCACf,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gCACpB,cAAc;gCACd,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gCAC3C,IAAI,KAAK,EAAE;oCACP,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iCAC1B;gCACD,sEAAsE;gCACtE,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oCACnD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iCAClD;gCAAA,CAAC;gCACF,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC;gCAClD,KAAI,CAAC,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC;gCACjD,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC;gCAC9D,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gCAClC,cAAc;gCACd,IAAI,GAAG,IAAI,CAAC;gCAEZ,OAAO,EAAE,CAAC;4BAEd,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gCACf,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;4BACvD,CAAC,CAAC,CAAC;yBAEN;wBAAC,OAAO,CAAC,EAAE;4BACR,MAAM,CAAC,CAAC,CAAC,CAAC;yBACb;oBAEL,CAAC,CAAC,EAAC;;;KACN;IAGD;;OAEG;IACH,2BAAa,GAAb,UAAc,SAAS;QACnB,sBAAsB;QACtB,IAAM,MAAM,GAAG,mBAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;QAC1C,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,GAAG;QAClB,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhC,2BAA2B;QAC3B,uCAAuC;QACvC,yFAAyF;QACzF,GAAG;QAEH,6CAA6C;QAC7C,IAAI,GAAG,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9D,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;aACxE;SACJ;QACD,sBAAsB;QACtB,IAAI,OAAO,GAAG,CAAC,CAAC,gBAAS,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,gBAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;QACtG,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,EAAE;YACf,IAAI,KAAK,GAAc,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAS,CAAC,QAAQ,CAAC,CAAC;YACtD,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,GAAG;QACrB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;QACtG,iHAAiH;QACjH,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEhD,CAAC;IAGD,MAAM;IACE,sBAAQ,GAAhB;QACI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC;IAC9D,CAAC;IAtQD,ySAAyS;IACzS,sCAAsC;IAEtC,6CAA6C;IAC7C,6MAA6M;IAC7M,MAAM;IACS,gCAA4B,GAAG,CAAC,mBAAmB,EAAE,eAAe,EAAE,mEAAmE,CAAC,CAAC;IAiQ9J,UAAC;CAAA;AAGD,gBAAgB;AACH,YAAI,GAAG;IAChB,MAAM;IACN,IAAI,QAAQ;QACR,mCAAmC;QACnC,IAAI,IAAI,GAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChSF,6GAA2D;AAI3D;IAAgC,8BAAa;IAA7C;;IAqBA,CAAC;IApBa,iCAAY,GAAtB,UAAuB,UAAe;QAClC,oBAAoB;QACpB,OAAO,UAAU,CAAC;IACtB,CAAC;IAKD,sBAAI,sCAAc;QAHlB;;WAEG;aACH;YACI,OAAO,EAAE,CAAC;QACd,CAAC;;;OAAA;IAED;;;OAGG;IACH,kCAAa,GAAb,UAAc,UAAe;QACzB,IAAI,OAAO,GAAgB,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACnB,CAAC;IACL,iBAAC;AAAD,CAAC,CArB+B,6BAAa,GAqB5C;AArBY,gCAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHvB,6EAA4B;AAC5B,sFAAuD;AACvD,4EAA+B;AAE/B;;GAEG;AACH;IAAkD,gDAAoC;IAKlF,IAAI;IACJ;QAAA,YACI,iBAAO,SAGV;QAFG,KAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,KAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC;;IAC9C,CAAC;IAED;;;;;;;;;OASG;IACH,4CAAK,GAAL,UAAM,GAA6B,EAAE,KAAU,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAA0B,EAAE,OAAa;QAC3I,iBAAM,KAAK,YAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE7D,aAAa;QACb,qCAAqC;QACrC,yCAAyC;QACzC,iCAAiC;QACjC,uFAAuF;QAEvF,yBAAyB;QACzB,OAAO;QACP,uCAAuC;QACvC,eAAe;QACf,WAAW;QACX,GAAG;QAEH,yDAAyD;QACzD,uBAAuB;QAEvB,WAAW;QACX,aAAa;QACb,kBAAkB;QAElB,oCAAoC;QACpC,2BAA2B;QAC3B,8BAA8B;QAC9B,mFAAmF;QAEnF,wCAAwC;QACxC,iGAAiG;QACjG,iBAAiB;QAEjB,uBAAuB;QACvB,gBAAgB;IAEpB,CAAC;IACD;;;;;;;;;;;OAWG;IACH,mDAAY,GAAZ,UAAa,GAA6B,EAAE,KAAU,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAE,KAA0B,EAAE,OAAa;QAClJ,WAAW;QACX,IAAI;QACJ,sEAAsE;QAEtE,gDAAgD;QAChD,qCAAqC;QACrC,cAAc;QACd,iBAAiB;QACjB,qEAAqE;QACrE,kEAAkE;QAClE,2CAA2C;QAC3C,0CAA0C;QAC1C,4BAA4B;QAC5B,2BAA2B;QAC3B,OAAO;QACP,GAAG;QACH,qEAAqE;QAErE,QAAQ;QACR,iBAAM,YAAY,YAAC,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAI3E,eAAe;QACf,cAAc;QACd,qBAAqB;QACrB,gGAAgG;QAChG,+FAA+F;QAC/F,gGAAgG;QAChG,gGAAgG;QAChG,+FAA+F;QAC/F,8FAA8F;QAC9F,WAAW;QACX,QAAQ;QACR,yEAAyE;QACzE,GAAG;IACP,CAAC;IAEL,mCAAC;AAAD,CAAC,CA7GiD,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,GA6GrF;AA7GY,oEAA4B;AAiHzC;;;;;;;;;;GAUG;AACH;IAA6C,2CAA4B;IAIrE;;;;OAIG;IACH,iCAAY,SAAU;QAAtB,YACI,iBAAO,SAEV;QADG,KAAI,CAAC,SAAS,GAAG,SAAS,IAAI,YAAY,CAAC;;IAC/C,CAAC;IAGD;;;;OAIG;IACH,gDAAc,GAAd,UAAe,aAAa,EAAE,KAAK;QAC/B,4DAA4D;QAC5D,wBAAwB;QACxB,0CAA0C;QAC1C,uBAAuB;QACvB,6FAA6F;QAC7F,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACzB,QAAQ;YACR,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE;gBAC9B,iBAAiB;gBACjB,KAAK,GAAG,iBAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aACtD;SACJ;QACD,iBAAM,cAAc,YAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAAA,CAAC;IACN,8BAAC;AAAD,CAAC,CApC4C,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,GAoCxE;AApCY,0DAAuB;AAuCpC;;GAEG;AACH;IAA6C,2CAA4B;IAErE,KAAK;IACL;;;;OAIG;IACH;eACI,iBAAO;IACX,CAAC;IAED,oCAAoC;IACpC,KAAK;IACL,2CAA2C;IAC3C,6GAA6G;IAC7G,kDAAkD;IAClD,KAAK;IACL,mDAAmD;IACnD,oDAAoD;IACpD,4GAA4G;IAC5G,mHAAmH;IAEnH,gBAAgB;IAChB,GAAG;IAGH,mCAAmC;IACnC,KAAK;IACL,KAAK;IACL,yBAAyB;IACzB,iBAAiB;IACjB,KAAK;IACL,gDAAc,GAAd,UAAe,aAA0B,EAAE,KAAK;QAC5C,WAAW;QACX,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;SAChD;QACD,iBAAM,cAAc,YAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAGD;;;;;;OAMG;IACH,uDAAqB,GAArB,UAAsB,QAAa,EAAE,QAAa,EAAE,OAAa;QAC7D,IAAI,WAAW,GAAG,QAAQ,CAAC;QAC3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;SACzD;QACD,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,WAAW,IAAI,QAAQ,EAAE;YACzB,mDAAmD;YACnD,EAAE,GAAG,KAAK,CAAC;SACd;aAAM;YACH,EAAE,GAAG,iBAAM,qBAAqB,YAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SACjE;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEL,8BAAC;AAAD,CAAC,CAhE4C,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,GAgExE;AAhEY,0DAAuB;AAmEpC;;;GAGG;AACH;IAAmC,iCAA4B;IAA/D;;IA0CA,CAAC;IAvCG;;;OAGG;IACH,2CAAmB,GAAnB,UAAoB,OAAa;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,sCAAc,GAAd,UAAe,aAA0B,EAAE,SAA8B,EAAE,QAA4B,EAAE,OAAa;QAClH,MAAM;IACV,CAAC;IAED;;;;;OAKG;IACH,sCAAc,GAAd,UAAe,KAAoB,EAAE,OAAa;QAC9C,WAAW;QACX,OAAO,KAAK,CAAC;IACjB,CAAC;IACD;;;;;OAKG;IACH,oCAAY,GAAZ,UAAa,KAAoB,EAAE,OAAa;QAC5C,WAAW;QACX,OAAO,KAAK,CAAC;IACjB,CAAC;IACL,oBAAC;AAAD,CAAC,CA1CkC,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,GA0C9D;AA1CY,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;;ACrP1B,2CAA2C;AAC3C,4GAA8B;AAC9B,8GAA+B;AAC/B,wGAA4B;AAC5B,oGAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJ1B,6EAA4B;AAC5B,sFAAgD;AAEhD,2EAAuC;AAGvC;;GAEG;AACH;IA8HI;;;;OAIG;IACH,sBAAY,IAA8B;QArH1C;;;WAGG;QACI,+CAA0C,GAAY,KAAK,CAAC;QAkEnE;;WAEG;QACK,gBAAW,GAAmB,EAAE,CAAC;QAGzC;;;WAGG;QACK,cAAS,GAAY,KAAK,CAAC;QAsC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAnCD,sBAAI,kCAAQ;QAJZ;;;WAGG;aACH;YACI,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QACD;;;WAGG;aACH,UAAa,QAAiB;YAA9B,iBAKC;YAJG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAC;gBACjB,CAAC,CAAC,QAAQ,GAAG,KAAI,CAAC,SAAS,CAAC;YAChC,CAAC,CAAC,CAAC;QACP,CAAC;;;OAVA;IAqCD;;;OAGG;IACI,gCAAS,GAAhB;QACI,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,+BAAQ,GAAf,UAAgB,SAAiB;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,SAAS,KAAK,SAAS,EAAzB,CAAyB,CAAC,CAAC;QAC/D,OAAO,KAAK,IAAI,IAAI,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,qCAAc,GAArB;QACI,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAC;QAChD,OAAO,KAAK,IAAI,IAAI,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,qCAAc,GAArB,UAAsB,SAAiB;QACnC,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,EAAE,KAAK,SAAS,EAAtB,CAAsB,CAAC,CAAC;QAClE,OAAO,KAAK,IAAI,IAAI,CAAC;IACzB,CAAC;IA+DD,sBAAkB,oCAAoB;QA7DtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4DG;aACH;YACI,OAAO;gBACH,OAAO;gBACP,aAAa;gBAEb,kBAAkB;gBAClB,wCAAwC;gBACxC,qBAAqB;gBACrB,WAAW,EAAE,IAAI;gBAEjB,6BAA6B;gBAC7B,iBAAiB,EAAE,KAAK;gBACxB,kBAAkB;gBAClB,oBAAoB,EAAE,KAAK;gBAC3B,iBAAiB;gBACjB,sBAAsB;gBAEtB,UAAU;gBACV,oCAAoC;gBACpC,iBAAiB,EAAE,IAAI;gBACvB,oCAAoC;gBACpC,gBAAgB,EAAE,IAAI;gBACtB,MAAM;gBACN,4BAA4B;gBAC5B,+BAA+B;gBAC/B,qBAAqB,EAAE,IAAI;gBAE3B,0BAA0B;gBAC1B,wBAAwB,EAAE,KAAK;gBAC/B,sCAAsC;gBACtC,iBAAiB,EAAE,KAAK;aAC3B;QACL,CAAC;;;OAAA;IAMD,sBAAc,8CAAoB;QAJlC;;;WAGG;aACH;YACI,OAAO,YAAY,CAAC,oBAAoB,CAAC;QAC7C,CAAC;;;OAAA;IAED;;QAEI;IACE,qCAAc,GAApB,UAAqB,SAAc;;;;gBAE/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAE3B,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAE/B,YAAY;wBACZ,KAAI,CAAC,sBAAsB,EAAE,CAAC;wBAE9B,cAAc;wBACd,KAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;wBAC9B,aAAa;wBACb,KAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;wBAE9B,IAAI,WAAW,GAAG,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC;wBAErC,2DAA2D;wBAC3D,wCAAwC;wBACxC,IAAI,KAAI,CAAC,YAAY,EAAE;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC/C,IAAM,WAAW,GAAG,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gCACzC,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gCAClD,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;6BAC9B;yBACJ;wBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;4BAElC,IAAI,QAAQ,GAAG,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAE9B,yCAAyC;4BACzC,IAAI,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;4BAEnC,SAAS;4BACT,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;4BAElC,cAAc;4BACd,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;4BAExB,cAAc;4BACd,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;4BAE9B,gBAAgB;4BAChB,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAEzB,qCAAqC;4BACrC,yBAAyB;4BACzB,gEAAgE;4BAEhE,wBAAwB;4BACxB,gDAAgD;4BAChD,sEAAsE;yBAEzE;wBAGD,uBAAuB;wBACvB,OAAO,CAAC,GAAG;wBACP,EAAE;wBACF,KAAI,CAAC,WAAW,CAEnB,CAAC,IAAI,CAAC,UAAC,MAAM;4BAEV,QAAQ;4BACR,OAAO,EAAE,CAAC;wBAEd,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,CAAC;4BACP,KAAK;4BACL,MAAM,EAAE,CAAC;wBAEb,CAAC,CAAC,CAAC,OAAO,CAAC;;4BAEP,OAAO;4BACP,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC/G,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAI,CAAC,CAAC;4BAExC,8BAA8B;4BAC9B,OAAO;4BACP,4BAA4B;4BAC5B,WAAI,CAAC,SAAS,0CAAE,MAAM,CAAC,OAAO,CAAC,WAAC,IAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;4BAEtD,WAAI,CAAC,SAAS,0CAAE,WAAW,GAAG;4BAC9B,WAAI,CAAC,SAAS,0CAAE,WAAW,GAAG;wBAClC,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACH,qCAAc,GAAd,UAAe,QAAuB;QAAtC,iBAcC;QAbG,aAAa;QACb,QAAQ,CAAC,oBAAoB,GAAG,UAAC,KAAoB,EAAE,UAAkB,EAAE,QAAa;;YACpF,WAAW;YACX,WAAI,CAAC,oBAAoB,0CAAE,IAAI,CAAC,KAAI,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;QACxF,CAAC,CAAC;QAEF,OAAO;QACP,WAAW;QACX,QAAQ,CAAC,eAAe,GAAG,UAAC,KAAoB,EAAE,IAAS;;YACvD,UAAU;YACV,WAAI,CAAC,eAAe,0CAAE,IAAI,CAAC,KAAI,EAAE,KAAK,EAAE,IAAI,EAAE;QAClD,CAAC,CAAC;IAEN,CAAC;IAED,KAAK;IACL,aAAa;IACb,KAAK;IACL,+EAA+E;IAC/E,cAAc;IACd,mFAAmF;IACnF,GAAG;IAGH;;OAEG;IACH,6CAAsB,GAAtB;QAEI,IAAM,aAAa,GAAG;YAClB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SACjC,CAAC;QAEF,IAAM,WAAW,GAAG;YAChB,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YAC1E,+BAA+B;YAC/B,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;SACjF;QAED,2DAA2D;QAC3D,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9F,YAAY;QACZ,IAAI,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3G,IAAI,MAAM,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7D,kGAAkG;QAElG,gBAAgB;QAChB,MAAM,CAAC,WAAW,EAAE,CAAC;QACrB,gBAAgB;QAChB,2BAA2B;QAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE/B,cAAc;QACd,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QAExB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACO,wCAAiB,GAA3B,UAA4B,MAA8B;QAEtD,QAAQ;QACR,UAAU;QACV,UAAU;QACV,IAAM,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAExC,sBAAsB;QACtB,IAAM,SAAS,GAAG;YACd,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,UAAC,OAAO,EAAE,OAAO,EAAE,MAAM;gBAC9B,IAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE;oBAC3B,MAAM;oBACN,YAAY,CAAC,SAAS,EAAE,CAAC;iBAC5B;YACL,CAAC;SACJ,CAAC;QAEF,uCAAuC;QACvC,wHAAwH;QACxH,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAEvE,kBAAkB;QAClB,cAAc;QACd,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,kBAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAG9F,mBAAmB;QACnB,sCAAsC;QACtC,qCAAqC;IACzC,CAAC;IAED;;;OAGG;IACH,6CAAsB,GAAtB,UAAuB,MAA8B;QAEjD,sCAAsC;QACtC,kBAAkB;QAClB,sCAAsC;QACtC,oDAAoD;QACpD,gFAAgF;QAChF,+DAA+D;QAC/D,iCAAiC;QACjC,wCAAwC;QACxC,IAAI;QAIJ,sCAAsC;QACtC,mCAAmC;QACnC,sCAAsC;QACtC,2CAA2C;QAC3C,mDAAmD;QACnD,iBAAiB;QACjB,IAAM,cAAc,GAAG,UAAU,GAAG;YAChC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACvC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACvC,OAAO,GAAG,CAAC;QACf,CAAC;QAED,IAAM,UAAU,GAAG,UAAU,KAA8B,EAAE,GAAG;YAC5D,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACnD,sBAAsB;gBACtB,0BAA0B;gBAC1B,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;oBACxB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;wBACnD,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;4BAE3B,IAAI,EAAE,GAAkB,KAAK,CAAC,GAAG,EAAE,CAAC;4BACpC,IAAI,EAAE,EAAE;gCACJ,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gCACxB,uBAAuB;gCACvB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;oCACf,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iCACnC;6BACJ;iCAAM;gCACH,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;6BACnC;yBACJ;qBACJ;iBACJ;aACJ;QACL,CAAC;QAED,IAAM,UAAU,GAAG;YACf,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,UAAC,MAAM,EAAE,OAAO,EAAE,MAAM;gBAC7B,IAAI,QAAQ,GAAG,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtC,IAAI,MAAM,EAAE;oBACR,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC1C,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC3C,MAAM,CAAC,YAAY,EAAE,CAAC;oBACtB,IAAI,OAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;oBACpC,IAAI,UAAU,GAAG,OAAK,CAAC,aAAa,EAAE,CAAC;oBAEvC,UAAU,CAAC,OAAO,CAAC,UAAC,GAAG;wBACnB,UAAU,CAAC,OAAK,EAAE,GAAG,CAAC,CAAC;oBAC3B,CAAC,CAAC,CAAC;oBAEH,MAAM,CAAC,WAAW,EAAE,CAAC;oBACrB,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC;iBACf;YACL,CAAC;SACJ,CAAC;QACF,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAC7C,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3C,WAAW;QACX,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,4CAAqB,GAArB,UAAsB,MAA8B;QAEhD,IAAM,YAAY,GAAG;YACjB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,UAAC,MAAM,EAAE,OAAO,EAAE,MAAM;gBAC7B,IAAI,QAAQ,GAAG,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtC,IAAI,MAAM,EAAE;oBACR,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC1C,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC3C,MAAM,CAAC,YAAY,EAAE,CAAC;oBACtB,WAAW;oBACX,wBAAwB;oBACxB,MAAM,CAAC,WAAW,EAAE,CAAC;oBACrB,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC;iBACf;YACL,CAAC;SACJ,CAAC;QACF,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,kBAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3F,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAC7C,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/C,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,kBAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7F,CAAC;IAGD;;OAEG;IACO,qCAAc,GAAxB,UAAyB,MAA8B;QAEnD,gBAAgB;QAChB,6DAA6D;QAC7D,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAGD;;;OAGG;IACH,0FAA0F;IAE1F,qBAAqB;IACrB,6BAA6B;IAC7B,8BAA8B;IAC9B,qBAAqB;IACrB,kFAAkF;IAClF,GAAG;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,8FAA8F;IACpF,wCAAiB,GAA3B,UAA4B,QAAQ,EAAE,iBAAwB,EAAE,OAAO,EAAE,MAAM;QAA/E,iBAqHC;QAnHG,eAAe;QACf,IAAI,GAAG,GAAQ,OAAO,CAAC;QAEvB,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QACpC,iCAAiC;QACjC,IAAI,SAAS,GAAkB,KAAK,CAAC,GAAG,EAAE,CAAC;QAE3C,kBAAkB;QAClB,IAAI,GAAG,CAAC,eAAe,EAAE;YACrB,gBAAgB;YAChB,oBAAoB;YACpB,wEAAwE;YAExE,6DAA6D;YAC7D,sDAAsD;YACtD,oCAAoC;YACpC,4DAA4D;YAC5D,UAAU;YACV,0BAA0B;YAC1B,eAAe;YACf,uHAAuH;YACvH,mCAAmC;YACnC,oGAAoG;YACpG,qCAAqC;YACrC,GAAG;SAGN;QAED,2BAA2B;QAC3B,yCAAyC;QACzC,IAAI,GAAG,CAAC,gBAAgB,EAAE;YACtB,YAAY;YACZ,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC5C,aAAa;gBACb,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtD,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,GAAG,CAAC,gBAAgB,CAAC,WAAW,KAAK,CAAC,EAAE;gBACxC,QAAQ;gBACR,OAAO;gBACP,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;aAEzD;iBAAM,IAAI,GAAG,CAAC,gBAAgB,CAAC,WAAW,KAAK,CAAC,EAAE;gBAC/C,WAAW;gBACX,kBAAkB;gBAClB,OAAO;gBACP,IAAI,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAI;oBACvC,iKAAiK;oBACjK,WAAI,CAAC,IAAI,KAAK,gBAAgB;gBAA9B,CAA8B,CACjC,CAAC;gBACF,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBAEvD,2DAA2D;aAC9D;iBAAM,IAAI,GAAG,CAAC,gBAAgB,CAAC,WAAW,KAAK,CAAC,EAAE;gBAC/C,WAAW;gBACX,WAAW;gBACX,kBAAkB;gBAClB,sCAAsC;gBACtC,IAAI,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAI;oBAEvC,sCAAsC;oBACtC,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAI,CAAC,0CAA0C,EAAE;wBACnF,OAAO,KAAK,CAAC;qBAChB;oBAED,IAAI,EAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,cAAc,GAAE;wBAC5B,KAAK;wBACL,iKAAiK;wBACjK,OAAO,IAAI,CAAC,IAAI,KAAK,gBAAgB;qBACxC;yBAAM;wBACH,IAAI;wBACJ,iKAAiK;wBACjK,gHAAgH;wBAChH,gHAAgH;wBAChH,OAAO,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB;qBACxH;gBACL,CAAC,CAAC,CAAC;gBAEH,WAAW;gBACX,qLAAqL;gBACrL,+KAA+K;gBAC/K,4BAA4B;gBAC5B,IAAI,CAAC,IAAI,CAAC,0CAA0C,EAAE;oBAClD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,mCAAmC,EAAE,SAAS,EAAE,wBAAwB,EAAE,QAAQ,EAAE,wCAAwC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;iBAChO;gBACD,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;aAG1D;iBAAM;gBACH,iBAAiB;gBAEjB,kBAAkB;gBAClB,KAAK;gBACL,IAAI,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAI;oBACvC,iKAAiK;oBACjK,WAAI,CAAC,IAAI,KAAK,gBAAgB;gBAA9B,CAA8B,CACjC,CAAC;gBACF,WAAW;gBACX,qLAAqL;gBACrL,+KAA+K;gBAC/K,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,mCAAmC,EAAE,SAAS,EAAE,wBAAwB,EAAE,QAAQ,EAAE,wCAAwC,EAAE,CAAC,CAAC;gBAErM,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACtD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;aAC1D;SACJ;QAED,0CAA0C;QAC1C,0CAA0C;QAC1C,4CAA4C;QAC5C,OAAO,KAAK,CAAC;IACjB,CAAC;IAID;;;OAGG;IACH,6BAAM,GAAN,UAAO,SAAkB;QACrB,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;SACrC;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC,EAAE,GAAG;gBAC9B,KAAK,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;OAEG;IACH,8BAAO,GAAP;;QACI,UAAI,CAAC,SAAS,EAAE,0CAAE,OAAO,GAAG;IAChC,CAAC;IA2BD;;OAEG;IACI,oCAAa,GAApB;QACI,qBAAqB;QACrB,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,UAAU,EAAE,SAAS,CAAC,SAAS;YAC/B,QAAQ,EAAE,SAAS,CAAC,OAAO;SAC9B;IACL,CAAC;IAED;;;;OAIG;IACH,sCAAe,GAAf;QACI,YAAY;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;IAClG,CAAC;IAGD;;;;;;;MAOE;IACF,kCAAW,GAAX,UAAY,SAAkB;QAE1B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,oCAAoC,EAAE,IAAI,CAAC,CAAC;QAG/E,IAAI,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3E,cAAc;QACd,IAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAEzC,WAAW;QACX,uCAAuC;QACvC,gDAAgD;QAChD,6BAA6B;QAC7B,4CAA4C;QAC5C,+CAA+C;QAC/C,uCAAuC;QACvC,2CAA2C;QAC3C,iDAAiD;QACjD,OAAO;QACP,GAAG;QACH,4BAA4B;QAE5B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9B,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,IAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACxC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAE7B,iCAAiC;QAEjC,kBAAkB;QAClB,IAAM,MAAM,GAAG;YACX,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,EAAE;SACjB,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;IAKD;;;;MAIE;IACF,8BAA8B;IACpB,8BAAO,GAAjB,UAAkB,GAAG,EAAE,GAAG,EAAE,gBAAgB;QAExC,iGAAiG;QACjG,2CAA2C;QAE3C,6CAA6C;QAC7C,gDAAgD;QAEhD,iBAAiB;QACjB,sCAAsC;QACtC,+CAA+C;QAC/C,GAAG;QACH,oDAAoD;QACpD,gDAAgD;QAEhD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,sCAAsC;QACtC,6CAA6C;QAC7C,qDAAqD;QACrD,IAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAI1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,wBAAwB;QACxB,wBAAwB;QACxB,iCAAiC;QAEjC,mBAAmB;QAEnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;MAGE;IACF,8BAA8B;IACpB,iCAAU,GAApB,UAAqB,IAAW;QAE5B,SAAS;QACT,yDAAyD;QAEzD,YAAY;QACZ,gCAAgC;QAChC,8BAA8B;QAC9B,aAAa;QAEb,yBAAyB;QACzB,8DAA8D;QAE9D,oBAAoB;QACpB,oBAAoB;QACpB,sBAAsB;QACtB,2BAA2B;QAE3B,aAAa;QACb,IAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAIlC,mBAAmB;QACnB,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;YACxB,IAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAE1B,mBAAmB;QAEnB,OAAO,OAAO,CAAC;IACnB,CAAC;IAGD;;;;;;;;;OASG;IACO,gDAAyB,GAAnC,UAAoC,GAAW,EAAE,SAAiB,EAAE,QAAQ,EAAE,SAAiB,EAAE,iBAA0B,EAAE,EAAE;QAE3H,cAAc;QACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;YAE/B,WAAW;YACX,IAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,YAAY,EAAE,CAAC;YAEtB,IAAM,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YAEtC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC;YAClC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAE1B,OAAO;YACP,IAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACjF,IAAM,mBAAmB,GAAG,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAE7F,UAAU;YACV,IAAM,YAAY,GAAG;gBACjB,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;gBAC5D,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;gBAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;aAC/D,CAAC;YACF,IAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAEhE,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAElC,UAAU;YACV,cAAc,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;gBAE/B,cAAc;gBACd,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE;oBAChD,IAAM,EAAE,GAAG,kBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;oBAC1E,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC1B,iCAAiC;oBACjC,0EAA0E;oBAC1E,kEAAkE;oBAClE,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAClF;gBAED,MAAM;gBACN,IAAM,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACxC,KAAK,CAAC,SAAS,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACxF,KAAK,CAAC,YAAY,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3F,KAAK,CAAC,UAAU,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzF,KAAK,CAAC,WAAW,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE1F,YAAY;gBACZ,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;oBAC7C,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;iBAC/B;qBAAM;oBACH,YAAY;oBACZ,IAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACpF,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;iBAClC;gBAED,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,EAAE,CAAC;YAErB,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5F,IAAI,EAAE,IAAI,IAAI,EAAE;gBACZ,EAAE,CAAC,IAAI,CAAC,CAAC;aACZ;QACL,CAAC,CAAC,CAAC;IAEP,CAAC;IAuBD;;;;;OAKG;IACI,oBAAO,GAAd,UAAe,IAAS,EAAE,QAAQ,EAAE,OAAY,EAAE,MAAO;QAErD,sBAAsB;QACtB,4CAA4C;QAC5C,kCAAkC;QAClC,sCAAsC;QACtC,oFAAoF;QACpF,GAAG;QAEH,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9C,YAAY;QACZ,IAAI,MAAM,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,EAAE;QAC/B,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,CAAC,CAAC,mBAAmB,GAAG,KAAK,CAAC;YAC9B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC1B;aAAM;YACH,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC;SAChC;QACD,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAGtB,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAGD;;;;OAIG;IACY,4BAAe,GAA9B,UAA+B,QAAgB,EAAE,MAAM;QACnD,IAAI,OAAO,GAAG,IAAI,iBAAK,CAAC,EAAE,EAAE,CAAC;QAE7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QAE7B,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACrB,qBAAqB;YACrB,SAAS;YACT,oBAAoB,EAAE,IAAI;SAG7B,CAAC,CAAC;QAEH,oCAAoC;QACpC,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO;QAExD,oCAAoC;QACpC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAChC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC,EAAE,UAAU,CAAC;YACV,gBAAgB;YAChB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,4BAA4B;QAChC,CAAC,CAAC,CAAC;QAGH,mCAAmC;QACnC,gCAAgC;QAChC,sCAAsC;QACtC,8EAA8E;QAC9E,oFAAoF;QACpF,gEAAgE;QAChE,6BAA6B;QAC7B,WAAW;QACX,oCAAoC;QACpC,eAAe;QACf,uBAAuB;QACvB,+BAA+B;IAEnC,CAAC;IAhpCe,qBAAQ,GAAG,iBAAiB,CAAC;IAopCjD,mBAAC;CAAA;AAtpCqB,oCAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTlC,6EAA4B;AAC5B,sFAAyC;AAEzC,8FAA4G;AAC5G,2EAAuC;AAIvC;;GAEG;AACH;IAAA;IAKA,CAAC;IAAD,mBAAC;AAAD,CAAC;AALY,oCAAY;AAwGzB,kBAAkB;AAClB,cAAc;AACd,IAAY,cAcX;AAdD,WAAY,cAAc;IACtB,2BAA2B;IAC3B,2BAA2B;IAC3B,SAAS;IACT,2BAA2B;IAC3B,OAAO;IACP,gCAAgC;IAChC,aAAa;IACb,yBAAyB;IACzB,yDAAO;IACP,4BAA4B;IAC5B,iEAAW;IACX,0BAA0B;IAC1B,mDAAI;AACR,CAAC,EAdW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAczB;AAeD;;;GAGG;AACH;IAgkBI;;;OAGG;IACH,uBAAY,MAAoB,EAAE,EAAmI;YAAnI,qBAAiI,EAAE,OAAjI,SAAS,iBAAE,OAAO,eAAE,UAAU,kBAAE,OAAO;QAriB3E;;;WAGG;QACI,cAAS,GAAY,IAAI,CAAC;QAmBjC;;;WAGG;QACI,WAAM,GAAW,EAAE,CAAC;QAE3B;;;WAGG;QACH,mCAAmC;QACnC;;WAEG;QACI,YAAO,GAAgB,EAAE,CAAC;QA2CjC;;WAEG;QACI,4BAAuB,GAAY,IAAI,CAAC;QAE/C;;WAEG;QACI,+BAA0B,GAAY,IAAI,CAAC;QAElD;;WAEG;QACI,mBAAc,GAAY,IAAI,CAAC;QAEtC;;WAEG;QACI,iBAAY,GAAY,IAAI,CAAC;QAkBpC;;WAEG;QACI,kBAAa,GAAW,EAAE,CAAC;QAElC;;WAEG;QACH,uCAAuC;QAChC,mBAAc,GAAW,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAEpE;;WAEG;QACI,sBAAiB,GAAW,IAAI,CAAC;QA0ExC,sBAAsB;QAEtB;;;WAGG;QACK,oBAAe,GAAQ,EAAE,CAAC;QAElC;;WAEG;QACI,uBAAkB,GAAU,EAAE,CAAC;QAEtC;;;UAGE;QACM,uBAAkB,GAAmB,EAAE,CAAC;QA6BhD;;;WAGG;QACH,0BAAqB,GAAQ,IAAI,CAAC;QASlC;;;WAGG;QACK,cAAS,GAAY,KAAK,CAAC;QAglCnC,kCAAkC;QACxB,uBAAkB,GAAG;YAC3B,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;YACd,kGAAkG;YAClG,gCAAgC;YAChC,6DAA6D;YAC7D,mFAAmF;YACnF,0FAA0F;YAC1F,mGAAmG;YACnG,qBAAqB;YACrB,iFAAiF;YACjF,+FAA+F;YAC/F,OAAO,EAAE,IAAI;SAChB,CAAC;QAr0BE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC;QACjC,yBAAyB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,mBAAmB;QACnB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC5B,CAAC;IAlkBD,sBAAc,oCAAS;QAJvB;;WAEG;QACH,8CAA8C;aAC9C;;YACI,aAAO,IAAI,CAAC,MAAM,0CAAE,SAAS,CAAC;QAClC,CAAC;;;OAAA;IA4BD,sBAAW,kCAAO;QALlB;;;WAGG;QACH,yBAAyB;aACzB;;YACI,OAAO,WAAI,CAAC,SAAS,0CAAE,aAAa,CAAC,IAAI,CAAC,SAAS,MAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;;;OAAA;IAKD,sBAAW,mCAAQ;QAHnB;;WAEG;aACH;;YAEI,OAAO,WAAI,CAAC,SAAS,0CAAE,cAAc,QAAO,IAAI,CAAC,QAAQ,CAAC;QAC9D,CAAC;;;OAAA;IAqBD,sBAAc,+BAAI;QAFlB;WACG;aACH;;YACI,eAAe;YACf,uCAAuC;YACvC,uCAAuC;YACvC,aAAO,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC;QAE7B,CAAC;;;OAAA;IAsFD,sBAAW,kDAAuB;QADlC,MAAM;aACN;YACI,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAC5E,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAGD,sBAAW,iDAAsB;QADjC,MAAM;aACN;YACI,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,0BAA0B,EAAE;gBACjF,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAGD,sBAAW,6CAAkB;QAD7B,MAAM;aACN;YACI,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;gBACnE,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAoED;;;;;;MAME;IACQ,sCAAc,GAAxB,UAAyB,CAAe;QACpC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAMD,sBAAW,uCAAY;QAJvB;;;UAGE;aACF;YACI,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACnC,CAAC;;;OAAA;IACD,MAAM;IACI,qCAAa,GAAvB;QACI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACjC,CAAC;IAyBD,sBAAI,mCAAQ;QAHZ;;WAEG;aACH;YACI,4CAA4C;YAC5C,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QAED;;;WAGG;aACH,UAAa,QAAiB;;YAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAE1B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE;oBACpC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;oBAChC,uCAAuC;oBACvC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAC/B;wBACI,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW;wBAC9C,iBAAiB,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC;qBAC1E,CAAC,CAAC;iBACV;gBAED,IAAI,QAAQ,EAAE;oBAEV,EAAE;oBACF,+DAA+D;oBAC/D,8DAA8D;oBAC9D,qEAAqE;oBACrE,qEAAqE;oBAErE,0BAA0B;oBAC1B,YAAY;oBACZ,gBAAgB;oBAChB,6BAA6B;oBAC7B,8CAA8C;oBAC9C,2FAA2F;oBAC3F,GAAG;oBACH,wHAAwH;oBACxH,2GAA2G;oBAG3G,OAAO;oBACP,6CAA6C;oBAC7C,+BAA+B;oBAC/B,2BAA2B;oBAC3B,0CAA0C;oBAC1C,uCAAuC;oBACvC,4CAA4C;oBAC5C,iDAAiD;oBACjD,SAAS;oBACT,gCAAgC;oBAChC,UAAU;oBACV,wDAAwD;oBACxD,yDAAyD;oBACzD,sDAAsD;oBACtD,GAAG;oBACH,MAAM;oBACN,+BAA+B;oBAE/B,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;oBACpC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;oBAC9B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;oBAC9B,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;oBAChC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,EAAE;wBAC/C,IAAI,IAAI,GAAG,EAAE,CAAC;wBACd,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,EAAE;4BAClD,qBAAqB;4BACrB,iEAAiE;4BACjE,8BAA8B;4BAC9B,0CAA0C;4BAC1C,iDAAiD;4BACjD,IAAI,QAAQ,GAAG,WAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,0CAAE,KAAK,OAAM,IAAI,CAAC;4BACjE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBACvB;wBACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACzC;oBAED,sHAAsH;oBACtH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAE;oBACzG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;oBAEnC,EAAE;oBACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;oBACzC,EAAE;oBACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,GAAG;wBACtC,uCAAuC;wBACvC,sBAAsB,EAAE,IAAI;wBAC5B,0CAA0C;wBAC1C,wBAAwB,EAAE,IAAI;wBAC9B,kCAAkC;wBAClC,SAAS,EAAE,IAAI;wBACf,sCAAsC;wBACtC,WAAW,EAAE,IAAI;wBACjB,4CAA4C;wBAC5C,gBAAgB,EAAE,KAAK;wBACvB,mCAAmC;wBACnC,+BAA+B;wBAC/B,eAAe,EAAE,KAAK;wBACtB,mCAAmC;wBACnC,kBAAkB,EAAE,IAAI;wBACxB,oCAAoC;wBACpC,mBAAmB,EAAE,KAAK;wBAC1B,oCAAoC;wBACpC,sBAAsB,EAAE,KAAK;wBAC7B,yBAAyB;wBACzB,eAAe,EAAE,KAAK;wBACtB,yBAAyB;wBACzB,kBAAkB,EAAE,KAAK;wBACzB,0BAA0B;wBAC1B,eAAe,EAAE,KAAK;wBACtB,yBAAyB;wBACzB,kBAAkB,EAAE,KAAK;qBAC5B,CAAC;iBAEL;qBAAM;oBAEH,SAAS;oBACT,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,EAAE;wBACpC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;wBACpC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;wBAC9B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,EAAE;4BAC/C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,EAAE;gCAClD,IAAI,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gCACpD,iCAAiC;gCACjC,yBAAyB;gCACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;6BAC9C;yBACJ;wBACD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;wBAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;wBAC7B,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;qBACtC;oBAED,SAAS;oBACT,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;oBAC3E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;iBACvG;aACJ;QACL,CAAC;;;OA3IA;IA8JD;;;OAGG;IACH,mCAAW,GAAX;;QACI,aAAO,IAAI,CAAC,QAAQ,0CAAE,WAAW,GAAG;IACxC,CAAC;IACD;;;OAGG;IACH,sCAAc,GAAd;;QACI,wCAAwC;QACxC,aAAO,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAC;IAChC,CAAC;IACD;;;OAGG;IACH,+BAAO,GAAP,UAAQ,CAAC,EAAE,CAAC;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAOD,sBAAc,8CAAmB;QAJjC;;;WAGG;aACH;YACI,OAAO;gBACH,mBAAmB;gBACnB,gBAAgB,EAAE,kBAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM;aAC/D,CAAC;QACN,CAAC;;;OAAA;IAKD,sBAAc,4CAAiB;QAH/B;;WAEG;aACH;YACI,cAAc;YACd,IAAM,YAAY,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAE/C,aAAa;YACb,uFAAuF;YACvF,IAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvF,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC;YAChC,YAAY,CAAC,YAAY,GAAG,MAAM,CAAC;YACnC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;YACjC,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC;YAElC,wEAAwE;YACxE,cAAc;YACd,6CAA6C;YAC7C,qCAAqC;YACrC,kBAAkB;YAClB,oEAAoE;YACpE,OAAO,YAAY,CAAC;QACxB,CAAC;;;OAAA;IAED;;;;OAIG;IACW,kCAAoB,GAAlC;QACI,cAAc;QACd,IAAM,YAAY,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAE/C,aAAa;QACb,uFAAuF;QACvF,IAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvF,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC;QAChC,YAAY,CAAC,YAAY,GAAG,MAAM,CAAC;QACnC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;QACjC,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC;QAElC,wEAAwE;QACxE,cAAc;QACd,6CAA6C;QAC7C,qCAAqC;QACrC,kBAAkB;QAClB,oEAAoE;QACpE,OAAO,YAAY,CAAC;IACxB,CAAC;IAaD,sBAAI,uCAAY;QAHhB;;WAEG;aACH;;YACI,QAAQ;YACR,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YAClC,CAAC,CAAC,MAAM,CAAC,OAAO,YAAI,GAAC,aAAa,CAAC,WAAW,IAAG,IAAI,MAAG;YACxD,WAAW;YACX,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,YAAI,GAAC,aAAa,CAAC,eAAe,IAAG,IAAI,MAAG,CAAC;aAChE;YACD,WAAW;YACX,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,CAAC,CAAC,MAAM,CAAC,OAAO,YAAI,GAAC,aAAa,CAAC,cAAc,IAAG,IAAI,MAAG,CAAC;aAC/D;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;;;OAAA;IAmBD;;;OAGG;IACH,iBAAiB;IACjB,gDAAgD;IAChD,qCAAqC;IACrC,mCAAW,GAAX;QAEI,uBAAuB;QAEvB,kBAAkB;QAClB,8BAA8B;QAE9B,WAAW;QACX,iDAAiD;QACjD,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,YAAY;QACZ,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,SAAS;QACT,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAG5B,mCAAmC;QACnC,WAAW;QACX,uBAAuB;QACvB,YAAY;QACZ,6BAA6B;QAC7B,YAAY;QACZ,wBAAwB;QACxB,kDAAkD;QAGlD,sDAAsD;QACtD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhB,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD;;;OAGG;IACG,4BAAI,GAAV;;;;gBACI,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,YAAY;wBACZ,OAAI,CAAC,UAAU,CAAC,OAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAI;4BAClC,OAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;4BAEvB,kCAAkC;4BAClC,+EAA+E;4BAE/E,MAAM;4BACN,OAAO,CAAC,GAAG,CACP,OAAI,CAAC,YAAY,CACpB,CAAC,IAAI,CAAC,UAAC,MAAM;gCACV,QAAQ;gCACR,OAAO,EAAE,CAAC;4BACd,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,CAAC;gCACP,KAAK;gCACL,MAAM,EAAE,CAAC;4BACb,CAAC,CAAC,CAAC,OAAO,CAAC;gCACP,IAAI;gCACJ,OAAI,CAAC,aAAa,EAAE,CAAC;gCACrB,YAAY;gCACZ,OAAI,CAAC,aAAa,EAAE,CAAC;4BACzB,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,EAAC;;;KACN;IAGD;;;OAGG;IACG,8BAAM,GAAZ;;;;gBAEI,qCAAqC;gBACrC,gBAAgB;gBAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAE1B,cAAc;gBACd,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC9B,aAAa;gBACb,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBAE9B,gBAAgB;gBAChB,yBAAyB;gBACzB,mCAAmC;gBACnC,0DAA0D;gBAC1D,GAAG;gBAEH,WAAW;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBAExB,MAAM;gBACN,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,kCAAkC;gBAE7D,qBAAqB;gBAErB,EAAE;gBACF,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBAC/B,OAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;4BAEb,OAAO,EAAE,CAAC;wBACd,CAAC,CAAC,CAAC,OAAO,CAAC;4BAEP,aAAa;4BACb,OAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;4BAC7B,cAAc;4BACd,OAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;wBACjC,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,EAAC;;;KACN;IAED;;QAEI;IACE,kCAAU,GAAhB,UAAiB,MAAc;;;gBAE3B,2BAA2B;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,EAAE;oBAC5B,YAAY;oBACZ,yCAAyC;oBACzC,SAAS;oBACT,yDAAyD;oBACzD,yBAAyB;oBACzB,KAAK;oBAEL,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;4BAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;gCACtC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gCACnB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BACzB,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,EAAC;iBAEN;qBAAM;oBAEH,cAAc;oBACd,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBAChC,cAAc;oBACd,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;4BAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACzB,CAAC,CAAC,EAAC;iBACN;;;;KACJ;IAID;;;;OAIG;IACO,oCAAY,GAAtB,UAAuB,IAAW;;QAE9B,6BAA6B;QAC7B,IAAI,CAAC,OAAO,CAAC,iBAAO;;YAAI,QAAC,CAAC,MAAM,CAAC,OAAO,YAAI,GAAC,aAAa,CAAC,WAAW,IAAG,KAAK,MAAG;QAAzD,CAAyD,CAAC,CAAC;QAEnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YAClC,uCAAuC;YACvC,CAAC,CAAC,MAAM,CAAC,OAAO,YAAI,GAAC,aAAa,CAAC,WAAW,IAAG,IAAI,MAAG;YACxD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD;;;;OAIG;IACO,4CAAoB,GAA9B,UAA+B,OAAoB;QAC/C,2BAA2B;QAC3B,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,YAAE,IAAI,SAAE,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe,EAAzC,CAAyC,CAAC,CAAC;QAChF,eAAe;QACf,IAAI,IAAI,GAAG,CAAC,EAAE;YACV,+FAA+F;YAC/F,IAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,eAAe,EAAE,WAAW,EAAE,aAAa,CAAC,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC/I,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;SAC3C;aACI;YACD,+BAA+B;SAClC;IACL,CAAC;IAGD;;;;OAIG;IACO,2CAAmB,GAA7B,UAA8B,OAAoB;QAC9C,2BAA2B;QAC3B,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,YAAE,IAAI,SAAE,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,EAAxC,CAAwC,CAAC,CAAC;QAC/E,eAAe;QACf,IAAI,IAAI,GAAG,CAAC,EAAE;YACV,IAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc,EAAE,WAAW,EAAE,aAAa,CAAC,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC5I,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;SAC1C;aACI;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;SAChC;IACL,CAAC;IAED;;;;OAIG;IACO,+CAAuB,GAAjC,UAAkC,OAAoB;QAClD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,YAAE,IAAI,SAAE,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe,EAAzC,CAAyC,CAAC,CAAC;QAChF,IAAI,IAAI,IAAI,CAAC,EAAE;YACX,6CAA6C;YAC7C,YAAY;YACZ,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAC3B;IACL,CAAC;IAED;;;;OAIG;IACO,8CAAsB,GAAhC,UAAiC,OAAoB;QACjD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,YAAE,IAAI,SAAE,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,EAAxC,CAAwC,CAAC,CAAC;QAC/E,IAAI,IAAI,IAAI,CAAC,EAAE;YACX,6CAA6C;YAC7C,YAAY;YACZ,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAC3B;IACL,CAAC;IAED;;;;OAIG;IACO,0CAAkB,GAA5B,UAA6B,IAAW;QACpC,oBAAoB;QACpB,sEAAsE;QACtE,IAAI,CAAC,OAAO,CAAC,iBAAO;;YAAI,QAAC,CAAC,MAAM,CAAC,OAAO,YAAI,GAAC,aAAa,CAAC,eAAe,IAAG,IAAI,MAAG;QAA5D,CAA4D,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACO,yCAAiB,GAA3B,UAA4B,IAAW;QACnC,oBAAoB;QACpB,sEAAsE;QACtE,IAAI,CAAC,OAAO,CAAC,iBAAO;;YAAI,QAAC,CAAC,MAAM,CAAC,OAAO,YAAI,GAAC,aAAa,CAAC,cAAc,IAAG,IAAI,MAAG;QAA3D,CAA2D,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;MAGE;IACF,uCAAe,GAAf;QACI,IAAI,aAAa,GAAQ,EAAE,CAAC;QAE5B,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAC7B,OAAO;QACP,uBAAuB;QACvB,oDAAoD;QACpD,uCAAuC;QACvC,GAAG;QAEH,SAAS;QACT,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,EAAE;QACF,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC7C,kBAAkB;YAClB,2BAA2B;YAE3B,iBAAiB,GAAG;gBAChB,uCAAuC;gBACvC,sBAAsB,EAAE,IAAI;gBAC5B,0CAA0C;gBAC1C,wBAAwB,EAAE,IAAI;gBAC9B,kCAAkC;gBAClC,SAAS,EAAE,IAAI;gBACf,sCAAsC;gBACtC,WAAW,EAAE,IAAI;gBAEjB,4CAA4C;gBAC5C,gBAAgB,EAAE,KAAK;gBACvB,mCAAmC;gBACnC,+BAA+B;gBAC/B,2DAA2D;gBAC3D,wBAAwB;gBACxB,eAAe,EAAE,KAAK;gBACtB,mCAAmC;gBACnC,kBAAkB,EAAE,IAAI;gBACxB,oCAAoC;gBACpC,mBAAmB,EAAE,KAAK;gBAC1B,oCAAoC;gBACpC,sBAAsB,EAAE,KAAK;gBAC7B,yBAAyB;gBACzB,eAAe,EAAE,KAAK;gBACtB,yBAAyB;gBACzB,kBAAkB,EAAE,KAAK;gBACzB,0BAA0B;gBAC1B,eAAe,EAAE,KAAK;gBACtB,yBAAyB;gBACzB,kBAAkB,EAAE,KAAK;aAC5B;SACJ;aAAM;YACH,iBAAiB,GAAG;gBAChB,uCAAuC;gBACvC,sBAAsB,EAAE,IAAI;gBAC5B,0CAA0C;gBAC1C,wBAAwB,EAAE,IAAI;gBAC9B,kCAAkC;gBAClC,SAAS,EAAE,IAAI;gBACf,sCAAsC;gBACtC,WAAW,EAAE,IAAI;gBAEjB,4CAA4C;gBAC5C,gBAAgB,EAAE,IAAI;gBACtB,mCAAmC;gBACnC,+BAA+B;gBAC/B,2DAA2D;gBAC3D,wBAAwB;gBACxB,eAAe,EAAE,KAAK;gBACtB,mCAAmC;gBACnC,kBAAkB,EAAE,IAAI;gBACxB,oCAAoC;gBACpC,mBAAmB,EAAE,IAAI;gBACzB,oCAAoC;gBACpC,sBAAsB,EAAE,IAAI;gBAC5B,yBAAyB;gBACzB,eAAe,EAAE,IAAI;gBACrB,yBAAyB;gBACzB,kBAAkB,EAAE,IAAI;gBACxB,0BAA0B;gBAC1B,eAAe,EAAE,IAAI;gBACrB,yBAAyB;gBACzB,kBAAkB,EAAE,IAAI;aAC3B;SACJ;QACD,aAAa,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAEpD,+BAA+B;QAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAGvF,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAE1C,gBAAgB;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAExC,mBAAmB;QACnB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;SAC7D;IAEL,CAAC;IAED;;;;QAII;IACJ,4CAAoB,GAApB,UAAqB,UAAgC;QACjD,IAAI,KAAK,GAAG,UAAU,IAAI,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpD,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAMD;;;OAGG;IACK,mCAAW,GAAnB,UAAoB,IAAI;QAEpB,4BAA4B;QAC5B,0BAA0B;QAC1B,sCAAsC;QAItC,kBAAkB;QAClB,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEnD,mCAAmC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,UAAU;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,+BAA+B;QAC/B,2DAA2D;QAC3D,IAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAM,YAAK,oBAAM,CAAC,KAAK,0CAAE,QAAQ,MAAK,IAAI,IAAC,CAAC;QACvF,IAAI,eAAe,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;SAClE;QAED,UAAU;QACV,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SAC/B;aAAM;YACH,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC5C,QAAQ,CAAC,OAAO,CAAC,iBAAO;;oBAAI,QAAC,CAAC,MAAM,CAAC,OAAO,YAAI,GAAC,aAAa,CAAC,WAAW,IAAG,KAAK,MAAG;gBAAzD,CAAyD,CAAC,CAAC;aAC1F;SACJ;QAED,yBAAyB;QACzB,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEvC,WAAW;QACX,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SACrC;QAED,WAAW;QACX,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SACrC;QAGD,kBAAkB;QAClB,6BAA6B;QAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErD,SAAS;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,UAAU;QACV,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,eAAe;QACf,wBAAwB;QACxB,uCAAuC;QAEvC,SAAS;QACT,0BAA0B;QAC1B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErC,UAAU;QACV,4CAA4C;QAC5C,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEtC,yCAAyC;QACzC,uCAAuC;QACvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,UAAU;QACV,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,SAAS;QACT,kBAAkB;QAClB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;QAED,uCAAuC;QACvC,UAAU;QACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,qBAAqB;QACrB,uBAAuB;IAE3B,CAAC;IAeD;;;;;;OAMG;IACO,oCAAY,GAAtB,UAAuB,UAAe;QAElC,mCAAmC;QACnC,wCAAwC;QACxC,6CAA6C;QAC7C,8DAA8D;QAC9D,+BAA+B;QAC/B,GAAG;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACO,uCAAe,GAAzB,UAA0B,UAAe,EAAE,OAAoB;QAC3D,qBAAqB;QACrB,gDAAgD;IACpD,CAAC;IAGD;;;MAGE;IACF,qCAAa,GAAb;QACI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG;QAEhD,WAAW;QACX,qCAAqC;QACrC,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3C;aAAM;YACH,sBAAsB;YACtB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,WAAW;QACX,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC1C;aAAM;YACH,sBAAsB;YACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7C;QAED,WAAW;QACX,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,WAAW;QACX,qCAAqC;QACrC,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjD;QAED,aAAa;QACb,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjD;QAED,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAChD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAExC,kBAAkB;YAClB,2BAA2B;YAC3B,kCAAkC;YAClC,+BAA+B;YAC/B,yCAAyC;YACzC,GAAG;YACH,qDAAqD;YACrD,+BAA+B;YAC/B,qEAAqE;YACrE,wCAAwC;YACxC,GAAG;YAEH,UAAU;YACV,+CAA+C;YAC/C,oDAAoD;YACpD,2EAA2E;YAC3E,IAAI,MAAM,CAAC,MAAM,YAAY,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;gBACvD,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;aACrC;iBAAM;gBACH,UAAU;gBACV,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;aAC5B;YAED,gCAAgC;YAChC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxB,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aACpC;YAED,IAAI,MAAM,CAAC,MAAM,YAAY,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC9C,4BAA4B;gBAC5B,2BAA2B;gBAC3B,mDAAmD;gBACnD,yBAAyB;gBACzB,iDAAiD;gBACjD,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aAE7C;iBAAM,IAAI,MAAM,CAAC,MAAM,YAAY,YAAY,EAAE;gBAC9C,6BAA6B;gBAC7B,YAAY;gBACZ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;oBACrB,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;iBACnD;gBAED,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACxB,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAC9C;aACJ;YAED,EAAE;YACF,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAEnC,+BAA+B;YAC/B,6EAA6E;YAC7E,6CAA6C;YAC7C,sBAAsB;YACtB,0EAA0E;YAC1E,GAAG;YAEH,yCAAyC;YACzC,IAAI,MAAM,CAAC,yBAAyB,EAAE;gBAClC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aAClD;YAED,uBAAuB;YACvB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEnC,+CAA+C;YAC/C,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC7C,wBAAwB;gBACxB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;aACzD;SAEJ;IACL,CAAC;IAGD;;;OAGG;IACH,2CAAmB,GAAnB;QAAA,mBAqBC;QAnBG,SAAS;QACT,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO;QACP,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEvE,QAAQ;QACR,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtB,QAAQ;QACR,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEtB,eAAe;QACf,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,GAAG;gBAC1B,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE;oBACvB,iCAAiC;oBACjC,OAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,uCAA4B,EAAE,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;iBAC5G;YACL,CAAC,CAAC;SACL;IACL,CAAC;IAED;;;;OAIG;IACH,4CAAoB,GAApB;QACI,QAAQ;QACR,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC7C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;YACrC,WAAW;YACX,IAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC1C;IACL,CAAC;IAED;;;OAGG;IACH,8CAAsB,GAAtB;QACI,QAAQ;QACR,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC7C,sCAAsC;QACtC,sBAAsB;QACtB,sCAAsC;QACtC,GAAG;QAEH,8DAA8D;QAC9D,gBAAgB;QAChB,iGAAiG;QAEjG,4BAA4B;QAC5B,IAAI,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,MAAM,YAAK,oBAAM,CAAC,KAAK,0CAAE,QAAQ,MAAK,IAAI,IAAC,CAAC;QACrF,IAAI,eAAe,EAAE;YAEjB,kCAAkC;YAClC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,OAAO;gBACP,4CAA4C;gBAC5C,0BAA0B;gBAC1B,oCAAoC;gBACpC,GAAG;gBACH,QAAQ;gBACR,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;iBAAM;gBACH,4BAA4B;gBAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACjG;SACJ;aAAM;YACH,kBAAkB;YAClB,gBAAgB;YAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAClG;IACL,CAAC;IAED;;;OAGG;IACH,kCAAU,GAAV;QAEI,QAAQ;QACR,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE7C,kBAAkB;QAClB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAE9B,WAAW;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YAC/B,8BAA8B;YAC9B,QAAQ;YACR,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;SACjC;QAED,kBAAkB;QAClB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAEvC,CAAC;IAED;;;OAGG;IACH,iCAAS,GAAT;QAEI,2BAA2B;QAC3B,uBAAuB;QACvB,oCAAoC;QACpC,wHAAwH;QACxH,iCAAiC;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9F,IAAI,MAAM,GAAG;YACT,sBAAsB;YACtB,WAAW,EAAE,IAAI;YACjB,SAAS;YACT,WAAW,EAAE,KAAK;YAClB,SAAS;YACT,aAAa,EAAE,IAAI;YACnB,YAAY;YACZ,aAAa,EAAE,IAAI;YACnB,SAAS;YACT,cAAc,EAAE,IAAI;SACvB,CAAC;QAEF,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAErC,sDAAsD;QACtD,qBAAqB;QACrB,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC9C,sBAAsB;YACtB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;SAC9B;QAED,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAE5C,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzC,CAAC;IAED;;;;;;OAMG;IACH,qCAAa,GAAb;QACI,qBAAqB;IACzB,CAAC;IAqBD;;;MAGE;IACF,iCAAS,GAAT,UAAU,KAA8B;QAAxC,mBA2gBC;QAxgBG,eAAe;QACf,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YAClE,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,kBAAkB;YAClB,mBAAmB;YACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAC,CAAC,EAAE,IAAI;YAClD,SAAS;YACT,OAAI,CAAC,eAAe,CAAC,OAAI,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;YAEzD,IAAI,YAAY,GAAgC,EAAE,CAAC;YACnD,IAAI,UAAU,GAAgC,EAAE,CAAC;YAEjD,SAAS;YACT,iCAAiC;YACjC,IAAI,SAAS,EAAE;gBACX,OAAO;gBACP,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;oBACpE,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,OAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC9E;gBACD,KAAK;gBACL,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAChE,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,OAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC5E;aACJ;YAED,kCAAkC;YAClC,OAAI,CAAC,kBAAkB,GAAG;gBACtB,eAAe,EAAE,IAAI;gBACrB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,YAAY;gBAC1B,UAAU,EAAE,UAAU;aACzB;YAED,kCAAkC;YAClC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE;gBACzE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACvB;iBAAM;gBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACtB;QACL,CAAC,CAAC,CAAC;QAGH;;;;;WAKG;QACH,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YACvE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,kEAAkE;YAElE,kGAAkG;YAClG,gCAAgC;YAChC,6DAA6D;YAC7D,mFAAmF;YACnF,yGAAyG;YACzG,mGAAmG;YACnG,qBAAqB;YACrB,iFAAiF;YACjF,+FAA+F;YAE/F,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEvB,UAAU;YACV,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,SAA2C,CAAC;YAEhD,kEAAkE;YAElE,WAAW;YACX,IAAI,SAAS,EAAE;gBAEX,gDAAgD;gBAChD,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;oBAC9C,8BAA8B;oBAC9B,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;wBACpE,8BAA8B;wBAC9B,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,OAAI,CAAC,YAAY,CAAC;wBAC/C,4BAA4B;wBAC5B,OAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAI,CAAC,YAAY,CAAC,CAAC;qBACpD;oBAED,yDAAyD;oBACzD,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;wBAChE,+CAA+C;wBAC/C,0BAA0B;wBAC1B,0EAA0E;qBAC7E;iBACJ;gBAED,iDAAiD;gBACjD,+BAA+B;gBAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;4CAEpC,GAAG;wBACR,YAAY;wBACR,IAAI,GAAG,OAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,WAAC,IAAM,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnF,wDAAwD;wBACxD,OAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC;;wBAF/B,IAAI;oBAHZ,qGAAqG;oBACrG,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;gCAAzD,GAAG;qBAKX;iBACJ;gBAED,oEAAoE;gBACpE,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;oBAC7C,iBAAiB;oBACjB,MAAM;iBACT;gBAED,sDAAsD;gBACtD,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;oBAC5C,uFAAuF;oBACvF,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;wBAChE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,OAAI,CAAC,YAAY,CAAC,CAAC,WAAU;wBACxE,4BAA4B;wBAC5B,OAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAI,CAAC,YAAY,CAAC,CAAC;qBACpD;iBACJ;gBAED,SAAS,GAAG;oBACR,GAAG,EAAE,IAAI,CAAC,KAAK;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,GAAG,EAAE,CAAC;oBACN,QAAQ,EAAE,OAAI,CAAC,OAAO,CAAC,MAAM;iBAChC;gBACD,QAAQ;gBACR,OAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aAEzC;iBAAM;gBACH,QAAQ;gBACR,aAAa;gBACb,iBAAiB;gBACjB,kBAAkB;gBAClB,UAAU;gBACV,GAAG;gBACH,WAAW;gBACX,SAAS,GAAG;oBACR,GAAG,EAAE,IAAI,CAAC,KAAK;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,GAAG,EAAE,IAAI,CAAC,KAAK;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBAC1B;gBACD,OAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACzC;YAGD,kCAAkC;YAClC,OAAI,CAAC,kBAAkB,GAAG;gBACtB,eAAe,EAAE,KAAK;gBACtB,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;aACnB;YACD,EAAE;YACF,wCAAwC;QAC5C,CAAC,CAAC,CAAC;QAKH,+CAA+C;QAC/C,mBAAmB;QACnB,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YACjE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEvB,iCAAiC;YACjC,iBAAiB;YACjB,IAAM,WAAW,GAAG,OAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAtB,CAAsB,CAAC,CAAC,MAAM,CAAC;YAC5E,0CAA0C;YAE1C,kBAAkB;YAClB,IAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzE,IAAI,mBAAmB,GAAG,WAAW,EAAE;gBAEnC,mDAAmD;gBACnD,iEAAiE;gBACjE,sHAAsH;gBACtH,IAAI,GAAG,GAAG,4CAA4C;gBACtD,8DAA8D;gBAC9D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO;aACV;YAED,kBAAkB;YAClB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE;gBAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO;aACV;YAED,iBAAiB;YACjB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,CAAC,EAAE;gBAC/B,IAAI,MAAM,GAAG,OAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,EAAE;oBAC/F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,OAAO;iBACV;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YAChE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,KAAuC,CAAC;YAE5C,wBAAwB;YAExB,QAAQ;YACR,kEAAkE;YAClE,yCAAyC;YACzC,8BAA8B;YAC9B,8CAA8C;YAC9C,0CAA0C;YAC1C,wBAAwB;YACxB,4BAA4B;YAC5B,0BAA0B;YAC1B,uGAAuG;YACvG,yDAAyD;YACzD,kEAAkE;YAClE,yDAAyD;YACzD,sEAAsE;YACtE,iEAAiE;YACjE,8CAA8C;YAC9C,gEAAgE;YAChE,mEAAmE;YACnE,kCAAkC;YAClC,wFAAwF;YACxF,4CAA4C;YAC5C,iEAAiE;YACjE,kCAAkC;YAClC,gDAAgD;YAChD,aAAa;YACb,SAAS;YACT,eAAe;YACf,kCAAkC;YAClC,4CAA4C;YAC5C,iBAAiB;YACjB,wCAAwC;YACxC,OAAO;YACP,UAAU;YACV,aAAa;YACb,uGAAuG;YACvG,iDAAiD;YACjD,oBAAoB;YACpB,iFAAiF;YACjF,0EAA0E;YAC1E,2GAA2G;YAC3G,yCAAyC;YACzC,kEAAkE;YAClE,aAAa;YACb,SAAS;YAET,6BAA6B;YAC7B,GAAG;YAEH,qDAAqD;QACzD,CAAC,CAAC,CAAC;QAKH,6CAA6C;QAC7C,qBAAqB;QACrB,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YAC7D,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAEpC,uBAAuB;YACvB,sBAAsB;YACtB,IAAI,GAAG,GAAG,OAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,EAAE;gBACzF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,UAAU;gBACV,kEAAkE;aACrE;YAED,wBAAwB;YACxB,qBAAqB;YACrB,kBAAkB;YAClB,qBAAqB;YACrB,yBAAyB;YACzB,GAAG;QAGP,CAAC,CAAC,CAAC;QAEH,YAAY;QACZ,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YAE7D,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,qBAAqB;YACrB,IAAI,GAAG,GAAG,OAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,EAAE;gBAAE,OAAO;aAAE;YACxG,kCAAkC;YAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAEhC,OAAO;gBACP,OAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACxD;QACL,CAAC,CAAC,CAAC;QAGH,iDAAiD;QACjD,mBAAmB;QACnB,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YAE7D,IAAI,SAAS,GAAG;gBACZ,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBAC1D,OAAO,UAAU,CAAC;iBACrB;qBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBACjE,OAAO,UAAU,CAAC;iBACrB;qBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;oBAC9D,OAAO,OAAO,CAAC;iBAClB;qBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;oBAC9D,OAAO,OAAO,CAAC;iBAClB;qBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBAC7D,OAAO,MAAM,CAAC;iBACjB;qBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,EAAE;oBACxE,OAAO,iBAAiB,CAAC;iBAC5B;qBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,EAAE;oBACxE,OAAO,iBAAiB,CAAC;iBAC5B;qBAAM;oBACH,OAAO,EAAE,CAAC;iBACb;YACL,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,SAAS,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAE9D,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEvB,IAAI,SAA2C,CAAC;YAChD,SAAS,GAAG;gBACR,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;aAC1B;YAGD,wBAAwB;YACxB,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;gBACvD,SAAS;gBACT,OAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACzC;YAED,4BAA4B;YAC5B,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;gBAEvD,wCAAwC;gBACxC,MAAM;gBACN,8CAA8C;gBAC9C,wCAAwC;gBACxC,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC5D,wCAAwC;oBACxC,mEAAmE;oBAEnE,oCAAoC;oBACpC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE;wBACxC,mDAAmD;wBACnD,kBAAkB;wBAClB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,OAAI,CAAC,YAAY,CAAC,CAAC,WAAU;wBACxE,mDAAmD;wBACnD,OAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAI,CAAC,YAAY,CAAC,CAAC;wBAGjD,qDAAqD;wBACrD,gDAAgD;wBAChD,YAAY;wBACZ,oBAAoB;wBACpB,kCAAkC;qBAGrC;iBACJ;gBACD,SAAS;gBACT,OAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACtC,GAAG;aACN;YAED,sBAAsB;YACtB,iCAAiC;YACjC,iEAAiE;YACjE,oDAAoD;YACpD,8CAA8C;YAC9C,uEAAuE;YACvE,8CAA8C;YAC9C,uDAAuD;YACvD,iEAAiE;YACjE,gCAAgC;YAChC,sFAAsF;YACtF,iEAAiE;YACjE,+DAA+D;YAC/D,WAAW;YACX,OAAO;YACP,eAAe;YACf,4CAA4C;YAC5C,SAAS;YACT,GAAG;YAGH,UAAU;YACV,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,qBAAqB;gBACrB,SAAS;gBACT,OAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACzC;QAEL,CAAC,CAAC,CAAC;QAGH,gDAAgD;QAEhD,mBAAmB;QACnB,KAAK,CAAC,IAAI,CAAC,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,UAAC,MAAM,EAAE,IAAI;YAC3D,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YACtD,wCAAwC;YAGxC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEvB,QAAQ;YACR,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;gBACjC,kDAAkD;gBAElD,gDAAgD;gBAChD,2DAA2D;gBAC3D,gFAAgF;gBAChF,eAAe;gBACf,wCAAwC;gBACxC,4DAA4D;gBAC5D,sDAAsD;gBAEtD,+CAA+C;gBAC/C,gCAAgC;gBAEhC,0BAA0B;gBAC1B,IAAI,CAAC,OAAI,CAAC,kBAAkB,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAE1D,OAAO;oBACP,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;wBACzD,oDAAoD;wBACpD,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,GAAG,OAAI,CAAC,YAAY,CAAC;wBAC/C,4BAA4B;wBAC5B,OAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAI,CAAC,YAAY,CAAC,CAAC;wBACjD,qBAAqB;wBACrB,OAAO;wBACP,OAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;qBACpC;iBACJ;aACJ;YAED,MAAM;YACN,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;gBACpC,QAAQ;gBACR,uDAAuD;gBACvD,4DAA4D;gBAC5D,yDAAyD;gBACzD,gCAAgC;gBAChC,0BAA0B;gBAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBACd,OAAO;oBACP,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACvB,IAAI,SAAS,GAAG;wBACZ,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,KAAK;wBACf,GAAG,EAAE,CAAC,CAAC;wBACP,QAAQ,EAAE,CAAC;qBACd;oBACD,OAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;iBACzC;aACJ;YAED,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;gBAC7B,sDAAsD;aACzD;QAEL,CAAC,CAAC,CAAC;QAGH,UAAU;QACV,gEAAgE;QAChE,6CAA6C;QAC7C,6CAA6C;QAC7C,sFAAsF;QACtF,gEAAgE;QAChE,kEAAkE;QAClE,8DAA8D;QAC9D,yDAAyD;QACzD,iEAAiE;QACjE,mGAAmG;QACnG,kEAAkE;QAClE,gEAAgE;QAChE,2DAA2D;QAC3D,OAAO;QACP,KAAK;IAET,CAAC;IAGD;;;;;OAKG;IACK,2CAAmB,GAA3B,UAA4B,GAAW,EAAE,GAAW,EAAE,SAAmB;;QAErE,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO;SAAE;QACxB,2DAA2D;QAC3D,+CAA+C;QAC/C,mDAAmD;QACnD,iDAAiD;QAGjD,wBAAwB;QACxB,qBAAqB;QACrB,mDAAmD;QACnD,qBAAqB;QACrB,+BAA+B;QAC/B,+DAA+D;QAC/D,GAAG;QAEH,eAAe;QACf,IAAI,MAAM,CAAC,MAAM,YAAY,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YAC9C,OAAO;YAEP,YAAY;YAEZ,0DAA0D;YAC1D,uBAAuB;YACvB,+CAA+C;YAC/C,sBAAsB;YACtB,6CAA6C;YAC7C,MAAM;YACN,4CAA4C;YAC5C,8CAA8C;YAC9C,0EAA0E;YAC1E,sDAAsD;YACtD,mCAAmC;YACnC,wCAAwC;YACxC,uCAAuC;YACvC,qHAAqH;YACrH,oCAAoC;YACpC,iDAAiD;YACjD,uCAAuC;YACvC,OAAO;YACP,GAAG;SAGN;aAAM,IAAI,MAAM,CAAC,MAAM,YAAY,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;YAC9D,uCAAuC;YACvC,2BAA2B;YAC3B,qBAAqB;YACrB,iDAAiD;SACpD;QAED,iDAAiD;QACjD,sCAAsC;QACtC,2BAA2B;QAC3B,mDAAmD;QACnD,kGAAkG;QAClG,0BAA0B;QAC1B,iDAAiD;QACjD,8CAA8C;QAC9C,0EAA0E;QAC1E,sDAAsD;QACtD,0CAA0C;QAC1C,wCAAwC;QACxC,qCAAqC;QACrC,8GAA8G;QAC9G,uCAAuC;QACvC,OAAO;QACP,GAAG;QAGH,OAAO;QACP,sBAAsB;QACtB,IAAI,aAAM,CAAC,KAAK,0CAAE,QAAQ,MAAK,IAAI,EAAE;YACjC,MAAM;YACN,OAAO;YACP,gCAAgC;YAChC,QAAQ;YACR,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,wBAAwB;QACxB,qBAAqB;QACrB,qCAAqC;QACrC,gBAAgB;QAChB,mBAAmB;QACnB,4BAA4B;QAC5B,4BAA4B;QAC5B,kCAAkC;QAClC,6DAA6D;QAC7D,wDAAwD;QACxD,WAAW;QACX,OAAO;QACP,GAAG;IAEP,CAAC;IAED;;;;GAID;IACW,+CAAuB,GAAjC,UAAkC,GAAW;QAEzC,aAAa;QACb,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAE9B,yCAAyC;YACzC,mCAAmC;YAEnC,qDAAqD;YACrD,2CAA2C;YAC3C,iDAAiD;YACjD,0FAA0F;YAC1F,4EAA4E;YAC5E,2EAA2E;YAC3E,UAAU;YACV,6EAA6E;YAC7E,4EAA4E;YAC5E,GAAG;YAEH,yBAAyB;YACzB,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAE5C,yBAAyB;YACzB,eAAe;YACf,IAAI,CAAC,OAAO,EAAE;gBAAE,OAAO,IAAI,CAAC;aAAE;YAE9B,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC7D,IAAI,WAAW,EAAE;gBACb,+CAA+C;gBAC/C,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;oBACnF,sEAAsE;oBACtE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC1E;qBAAM;oBACH,uEAAuE;oBACvE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC3E;aACJ;iBAAM;gBACH,SAAS;gBACT,MAAM;gBACN,wEAAwE;gBACxE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;aAC1C;SACJ;IACL,CAAC;IAED;;;OAGG;IACO,sCAAc,GAAxB,UAAyB,GAAW;QAApC,mBA8DC;QA5DG,yBAAyB;QACzB,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE7C,kCAAkC;QAClC,QAAQ;QACR,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,iBAAiB;QACjB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,UAAC,CAAC,IAAK,QAAC,KAAK,aAAa,CAAC,eAAe,EAAnC,CAAmC,CAAC,CAAC;QAE1D,MAAM;QACN,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAG/B,qBAAqB;QACrB,SAAS;QACT,mCAAmC;QACnC,wFAAwF;QACxF,kDAAkD;QAClD,yCAAyC;QACzC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,UAAC,KAAK,EAAE,GAAG;YACpB,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACjB,iCAAiC;gBACjC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,WAAU;gBAC5C,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;oBACjB,aAAa;oBACb,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;wBACpB,oCAAoC;wBACpC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,WAAU;qBAClD;yBAAM;wBACH,qCAAqC;wBACrC,iBAAiB;wBACjB,oCAAoC;wBACpC,GAAG;wBACH,UAAU;wBACV,aAAa;wBACb,IAAI,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,OAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,QAAC,CAAC,IAAI,KAAK,GAAG,EAAd,CAAc,CAAC,CAAC;wBAC9D,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE;4BACb,IAAI,IAAI,GAAG,OAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;4BAC9C,4CAA4C;4BAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,WAAU;yBAC1D;qBACJ;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;QACH,yBAAyB;QACzB,YAAY;QACZ,2CAA2C;QAE3C,kDAAkD;QAClD,iCAAiC;QACjC,mDAAmD;QACnD,mBAAmB;QACnB,oBAAoB;QAEpB,mCAAmC;QACnC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACO,oCAAY,GAAtB,UAAuB,GAAW,EAAE,GAAW,EAAE,KAAK,EAAE,SAAmB;QAEvE,IAAI;YACA,sEAAsE;YACtE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC9B,yBAAyB;YACzB,iDAAiD;YACjD,mFAAmF;YAEnF,mBAAmB;YACnB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,UAAU,GAAG,OAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,IAAI,CAAC;YAEtC,IAAI;YACJ,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAE9C,wBAAwB;YACxB,oBAAoB;YACpB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAEhC,SAAS;YACT,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAElC,QAAQ;YACR,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;SAE3D;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAClB;gBAAS;YACN,aAAa;YACb,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SAChC;IACL,CAAC;IAGD;;;;;OAKG;IACO,yCAAiB,GAA3B,UAA4B,SAAS,EAAE,KAAU,EAAE,SAAmB;QAClE,IAAI;YAEA,sEAAsE;YACtE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC9B,EAAE;YACF,KAAK,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;gBAC3E,KAAK,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;oBAC3E,IAAI;oBACJ,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;iBACjD;gBAED,wBAAwB;gBACxB,oBAAoB;gBACpB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAEhC,SAAS;gBACT,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;aACrC;YAED,YAAY;YACZ,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SAEvE;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAClB;gBAAS;YACN,aAAa;YACb,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SAChC;IACL,CAAC;IAED;;;;OAIG;IACO,uCAAe,GAAzB,UAA0B,KAAoB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAW,EAAE,KAAM;QACzE,yCAAyC;QACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACI,mCAAW,GAAlB,UAAmB,GAAW;QAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACI,qCAAa,GAApB;QACI,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC;IACD;;;OAGG;IACI,sCAAc,GAArB,UAAsB,GAAW;QAE7B,gCAAgC;QAChC,UAAU;QACV,oCAAoC;QACpC,4DAA4D;QAE5D,aAAa;QACb,qCAAqC;QACrC,mEAAmE;QACnE,GAAG;QACH,aAAa;QACb,oCAAoC;QACpC,kEAAkE;QAClE,GAAG;QAEH,uCAAuC;QACvC,0CAA0C;QAC1C,IAAI,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzD,eAAe;QACf,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO,IAAI,CAAC;SAAE;QAE9B,kCAAkC;QAClC,qDAAqD;QACrD,4BAA4B;QAC5B,+EAA+E;QAC/E,mFAAmF;QACnF,IAAI,sBAAsB,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC;QACrE,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,sBAAsB,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,mBAAmB;QACnB,yFAAyF;QACzF,sBAAsB,CAAC,OAAO,CAAC,WAAC;;YAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,YAAI,GAAC,CAAC,IAAG,IAAI,MAAG,CAAC;QAAC,CAAC,CAAC,CAAC,WAAU;QAGvF,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE;gCAE3B,GAAG;YACR,IAAI,MAAM,GAAG,OAAK,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;YAE7B,0CAA0C;YAC1C,IAAI,sBAAsB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;;aAAa;YAC9D,qBAAqB;YACrB,IAAI,KAAK,GAAG,OAAK,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7C,oBAAoB;YACpB,IAAI,IAAI,GAAG,OAAK,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAG3C,mBAAmB;YACnB,YAAY;YACZ,kFAAkF;YAClF,uFAAuF;YACvF,wCAAwC;YAExC,0BAA0B;YAC1B,wDAAwD;YACxD,8DAA8D;YAC9D,iEAAiE;YACjE,UAAU;YACV,mEAAmE;YACnE,yDAAyD;YAGzD,0BAA0B;YAC1B,uDAAuD;YAGvD,IAAI,MAAM,CAAC,MAAM,YAAY,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE;gBAEhJ,eAAe;gBACf,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,IAAI,OAAO,EAAE;oBACjE,gDAAgD;oBAChD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;iBAC5C;gBAED,iCAAiC;gBAGjC,oBAAoB;gBACpB,oEAAoE;gBAEpE,oBAAoB;gBACpB,0DAA0D;gBAC1D,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAuB,CAAC;gBAE1D,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAI,IAAI,WAAI,CAAC,KAAK,KAAK,KAAK,EAApB,CAAoB,CAAC,KAAK,CAAC,CAAC,EAAE;oBAEzD,uDAAuD;oBACvD,6BAA6B;oBAE7B,UAAU;oBACV,+CAA+C;oBAC/C,oDAAoD;oBACpD,2EAA2E;oBACvE,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAI,IAAI,WAAI,CAAC,IAAI,KAAK,IAAI,EAAlB,CAAkB,CAAC,CAAC;oBACxD,iCAAiC;oBACjC,IAAI,OAAO,EAAE;wBACT,sBAAsB;wBACtB,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;qBACvC;yBAAM;wBACH,qDAAqD;wBACrD,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;qBAC9B;iBACJ;qBAAM;oBACH,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;iBAC/B;gBAED,UAAU;gBACV,8CAA8C;gBAC9C,2DAA2D;gBAC3D,kCAAkC;gBAClC,GAAG;aAGN;iBAAM,IAAI,MAAM,CAAC,MAAM,YAAY,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBAErD,qBAAqB;gBAErB,4BAA4B;gBAC5B,4BAA4B;gBAC5B,wBAAwB;gBACxB,sBAAsB;gBAEtB,oEAAoE;gBACpE,0BAA0B;gBAC1B,qEAAqE;gBACrE,EAAE;gBACF,6BAA6B;gBAC7B,qCAAqC;gBACrC,EAAE;gBACF,8BAA8B;gBAC9B,qCAAqC;gBACrC,EAAE;gBACF,uBAAuB;gBACvB,gCAAgC;gBAEhC,6BAA6B;gBAE7B,iBAAiB;gBACjB,gGAAgG;gBAChG,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,qBAAqB,EAAE;oBAC/F,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;iBAC9B;qBAAM;oBACH,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;iBAC/B;aAEJ;iBAAM,IAAI,MAAM,CAAC,MAAM,YAAY,YAAY,EAAE;gBAC9C,6BAA6B;gBAC7B,iBAAiB;gBACjB,gGAAgG;gBAChG,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,KAAK,qBAAqB,EAAE;oBAC7G,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;iBAC9B;qBAAM;oBACH,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;iBAC/B;aACJ;iBAAM;gBACH,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;aAE/B;;2BAhEW,OAAO;QA3DvB,0BAA0B;QAC1B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE;oBAA9B,GAAG;SA2HX;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,sCAAc,GAArB;QAEI,uCAAuC;QACvC,kEAAkE;QAClE,+CAA+C;QAC/C,EAAE;QACF,yCAAyC;QACzC,mDAAmD;QAEnD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;QACjC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;YACrC,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;SAC3B;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAGD;;KAEC;IACD,2CAAmB,GAAnB;QACI,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;QAChD,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACtD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;QACL,CAAC,CAAC,CAAC;QACH,OAAO;QACP,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;MAGE;IACK,0CAAkB,GAAzB;QAAA,mBAQC;QAPG,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,YAAY,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,OAAO,GAAG,OAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;OAGG;IACI,mCAAW,GAAlB;QACI,IAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEhC,qBAAqB;QACrB,qCAAqC;QACrC,6CAA6C;QAC7C,kBAAkB;QAClB,qCAAqC;QACrC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE1C,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACO,2CAAmB,GAA7B,UAA8B,GAAW,EAAE,GAAS;QAChD,UAAU;QACV,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;YAAE,GAAG,GAAG,IAAI,CAAC;SAAE;QACvC,IAAI,GAAG,GAAsC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACrE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACK,2CAAmB,GAA3B,UAA4B,GAAW;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACO,4CAAoB,GAA9B,UAA+B,GAAW,EAAE,GAAS;QACjD,UAAU;QACV,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;YAAE,GAAG,GAAG,IAAI,CAAC;SAAE;QACvC,IAAI,GAAG,GAAsC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACrE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACK,4CAAoB,GAA5B,UAA6B,GAAW;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACK,6CAAqB,GAA7B,UAA8B,GAAW;QACrC,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAGD;;;;;OAKG;IACO,qCAAa,GAAvB,UAAwB,GAAW,EAAE,GAAmD;QACpF,UAAU;QACV,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;YAAE,GAAG,GAAG,IAAI,CAAC;SAAE;QACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACK,qCAAa,GAArB,UAAsB,GAAW;QAC7B,mDAAmD;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACd,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SAC3B;QACD,OAAO,GAAG,CAAC;QACX,iEAAiE;QACjE,4DAA4D;IAChE,CAAC;IAID;;;;;OAKG;IACO,sCAAc,GAAxB,UAAyB,GAAW,EAAE,GAAW,EAAE,GAAuC;QACtF,UAAU;QACV,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;YAAE,GAAG,GAAG,IAAI,CAAC;SAAE;QACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACK,sCAAc,GAAtB,UAAuB,GAAW,EAAE,GAAW;QAC3C,mDAAmD;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,+CAA+C;QAC/C,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC;IACf,CAAC;IAGD;;OAEG;IACH,oCAAY,GAAZ,UAAa,GAAoB;QAC7B,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACjB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,GAAG,EAAd,CAAc,CAAC,IAAI,EAAE,CAAC;SAC1D;aAAM;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5B;IACL,CAAC;IAED;;OAEG;IACH,sCAAc,GAAd,UAAe,GAAW;QACtB,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,GAAG,EAAd,CAAc,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,sCAAc,GAAd,UAAe,GAAG;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD;;OAEG;IACH,mCAAW,GAAX,UAAY,GAAG;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IACD;;OAEG;IACH,sCAAc,GAAd,UAAe,GAAG;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,sCAAc,GAAd,UAAe,GAAG,EAAE,KAA0B;QAC1C,yEAAyE;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,8CAAsB,GAAtB,UAAuB,GAAG,EAAE,EAAqD;QAC7E,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,mCAAW,GAAX,UAAY,GAAG;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,mCAAW,GAAX,UAAY,GAAG,EAAE,KAA0B;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IACD;;OAEG;IACH,oCAAY,GAAZ,UAAa,GAAG,EAAE,GAAG;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACzE,CAAC;IACD;;OAEG;IACH,oCAAY,GAAZ,UAAa,GAAG,EAAE,GAAG,EAAE,KAA0B;QAC7C,yEAAyE;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED;;;;;MAKE;IACF,yCAAiB,GAAjB,UAAkB,GAAG,EAAE,QAAiB,EAAE,SAAkB;QAExD,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACrC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC;QACV,IAAI,QAAQ,EAAE;YACV,iDAAiD;YACjD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC;YACpC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,IAAI,SAAS,EAAE;gBACX,KAAK,GAAG,SAAS,CAAC;aACrB;iBAAM;gBACH,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;aAC9C;SACJ;aAAM;YACH,IAAI,SAAS,EAAE;gBACX,KAAK,GAAG,SAAS,CAAC;aACrB;iBAAM;gBACH,WAAW;gBACX,qDAAqD;gBACrD,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aACxE;SACJ;QACD,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEvB,gDAAgD;QAChD,oDAAoD;QACpD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;YACrB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,UAAC,GAA8B,IAAO,GAAG,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;YAChG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,sCAAc,GAAd,UAAe,GAAG,EAAE,QAAiB,EAAE,SAAkB;;QACrD,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAE7B,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,wBAAwB;QACxB,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC;QACV,IAAI,QAAQ,EAAE;YACV,iDAAiD;YACjD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC;YACpC,wBAAwB;YACxB,iBAAiB;YACjB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YAC5B,IAAI,SAAS,EAAE;gBACX,KAAK,GAAG,SAAS,CAAC;aACrB;iBAAM;gBACH,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;aAC9C;SACJ;aAAM;YACH,IAAI,SAAS,EAAE;gBACX,KAAK,GAAG,SAAS,CAAC;aACrB;iBAAM;gBACH,WAAW;gBACX,KAAK,GAAG,CAAC,CAAC,WAAW,OAAC,MAAM,CAAC,IAAI,0CAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,OAAC,MAAM,CAAC,IAAI,0CAAE,SAAS,CAAC;aAC9F;SACJ;QACD,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAGvB,gDAAgD;QAChD,oDAAoD;QACpD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;YACrB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,UAAC,GAA8B,IAAO,GAAG,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;YAChG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAEhC,CAAC;IAED;;;;;;;OAOG;IACH,mCAAW,GAAX,UAAY,GAAG,EAAE,GAAG,EAAE,QAAiB,EAAE,SAAkB,EAAE,SAAkB;QAE3E,+BAA+B;QAC/B,kDAAkD;QAClD,IAAI,SAAS,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;SAAE;QAEhD,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC;QACV,IAAI,QAAQ,EAAE;YACV,iDAAiD;YACjD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,SAAS,EAAE;gBACX,KAAK,GAAG,SAAS,CAAC;aACrB;iBAAM;gBACH,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;aAC9C;SACJ;aAAM;YACH,IAAI,SAAS,EAAE;gBACX,KAAK,GAAG,SAAS,CAAC;aACrB;iBAAM;gBACH,WAAW;gBACX,mDAAmD;gBACnD,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACrE;SACJ;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtB,oCAAoC;QACpC,kDAAkD;QAClD,sDAAsD;QACtD,2BAA2B;QAC3B,qGAAqG;QACrG,gCAAgC;QAChC,GAAG;QAEH,IAAI,SAAS,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;SAAE;IACnD,CAAC;IAED;;;OAGG;IACH,sCAAc,GAAd,UAAe,MAAc,EAAE,QAAiB,EAAE,SAAkB,EAAE,QAAkB,EAAE,eAAyD;QAAnJ,mBAoCC;QAjCG,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC;QAC9B,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC;QACjC,QAAQ,GAAG,QAAQ,IAAI,KAAK,CAAC;QAE7B,eAAe;QACf,qFAAqF;QACrF,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YAC1B,eAAe,GAAG,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC;SACnE;QAED,IAAM,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACrD,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,KAAK,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAEvC,wBAAwB;QACxB,IAAM,gBAAgB,GAAG,EAAE,CAAC;QAE5B,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAI;YACrC,KAAiB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;gBAAlB,IAAI,IAAI;gBACT,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;aAC3E;YACD,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YAEnB,OAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,0CAA0C;QAC1C,uBAAuB;QACvB,yEAAyE;QACzE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAEvB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,0CAAkB,GAAzB,UAA0B,SAAiB;QACvC,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;YACnC,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YAC5C,2DAA2D;SAC9D;aAAM;YACH,OAAO,EAAE,CAAC;SACb;IACL,CAAC;IAED;;;;;OAKG;IACI,0CAAkB,GAAzB,UAA0B,SAAiB,EAAE,KAAa;QAEtD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,0CAAkB,GAAlB;QAEI,eAAe;QACf,yBAAyB;QAEzB,IAAM,aAAa,GAAG;YAClB,gCAAgC;YAChC,6BAA6B;YAC7B,8BAA8B;YAC9B,4BAA4B;YAC5B,aAAa;YACb,oCAAoC;YACpC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAC5E,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;SAC7E,CAAC;QACF,IAAM,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACrD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE3B,KAAK,CAAC,eAAe,CAAC,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAErE,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD;;MAEE;IACF,6CAAqB,GAArB,UAAsB,SAAkB;QACpC,IAAM,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC;QACjC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,KAAK,CAAC,MAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC;QACnD,OAAO,KAAK,CAAC;IACjB,CAAC;IAMD;;MAEE;IACF,gDAAwB,GAAxB,UAAyB,gBAA+B,EAAE,eAA8B;QAA/D,kEAA+B;QAAE,gEAA8B;QACpF,qBAAqB;QACrB,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtC,YAAY;QACZ,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG;YAChB;gBACI,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ;gBACjD,OAAO,EAAE,oBAAoB;gBAC7B,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC;QACF,KAAK,CAAC,SAAS,GAAG;YACd;gBACI,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc;gBAC/C,MAAM,EAAE;oBACJ,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,kBAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM;iBAClD;aACJ;SACJ,CAAC;QACF,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAEnC,8BAA8B;QAC9B,IAAI,QAAQ,GAA4B,IAAI,kCAAuB,CAAC,eAAe,CAAC,CAAC;QAErF,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC3C,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;QAEzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,OAAO,MAAM;IACjB,CAAC;IAID;;MAEE;IACF,2CAAmB,GAAnB;QACI,qBAAqB;QACrB,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEtC,YAAY;QACZ,iCAAiC;QACjC,KAAK,CAAC,WAAW,GAAG;YAChB;gBACI,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ;gBACjD,OAAO,EAAE,gBAAgB;gBACzB,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC;QAEF,KAAK,CAAC,SAAS,GAAG;YACd;gBACI,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU;gBAC3C,MAAM,EAAE;oBACJ,YAAY,EAAE,OAAO;iBACxB;aACJ;SACJ,CAAC;QACF,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;QAE1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;MAEE;IACF,kDAA0B,GAA1B,UAA2B,gBAA0B,EAAE,eAAyB;QAArD,6DAA0B;QAAE,2DAAyB;QAC5E,8EAA8E;QAC9E,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEtC,YAAY;QACZ,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG;YAChB;gBACI,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ;gBACjD,OAAO,EAAE,gBAAgB;gBACzB,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC;QACF,iCAAiC;QACjC,KAAK,CAAC,SAAS,GAAG;YACd;gBACI,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU;gBAC3C,MAAM,EAAE;oBACJ,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;iBACvB;aACJ;SACJ,CAAC;QAEF,IAAI,QAAQ,GAA4B,IAAI,kCAAuB,CAAC,eAAe,CAAC,CAAC;QAErF,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC3C,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;QAEzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,OAAO,MAAM;IACjB,CAAC;IAED;;MAEE;IACF,sDAA8B,GAA9B,UAA+B,gBAAwC,EAAE,eAAuC;QAAjF,2EAAwC;QAAE,yEAAuC;QAC5G,8EAA8E;QAC9E,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEtC,YAAY;QACZ,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG;YAChB;gBACI,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ;gBACjD,OAAO,EAAE,oBAAoB;gBAC7B,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC;QACF,KAAK,CAAC,SAAS,GAAG;YACd;gBACI,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc;gBAC/C,MAAM,EAAE;oBACJ,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,kBAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM;iBAClD;aACJ;SACJ,CAAC;QAEF,IAAI,QAAQ,GAA4B,IAAI,kCAAuB,CAAC,eAAe,CAAC,CAAC;QAErF,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC3C,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;QAEzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,OAAO,MAAM;IACjB,CAAC;IAED;;;MAGE;IACF,kDAA0B,GAA1B;QAEI,+DAA+D;QAC/D,IAAI,UAAU,GAAG;YACb,IAAI,EAAE,OAAO;YACb,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SAC3H;QAED,IAAI,aAAa,GAAG;YAChB,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE;gBACJ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;aACjH;SACJ,CAAC;QAEF,IAAI,WAAW,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE;gBACJ,gBAAgB;gBAChB,6HAA6H;gBAC7H,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;aACjH;SACJ,CAAC;QAEF,aAAa;QACb,IAAM,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,KAAK,CAAC,WAAW,GAAG;YAChB;gBACI,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ;gBACjD,OAAO,EAAE,iBAAiB;gBAC1B,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC;QACF,KAAK,CAAC,SAAS,GAAG;YACd;gBACI,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW;gBAC5C,MAAM,EAAE;oBACJ,cAAc,EAAE,EAAE;oBAClB,MAAM,EAAE;wBACJ,UAAU;wBACV,aAAa;qBAGhB;iBACJ;aACJ;SACJ,CAAC;QAEF,KAAK,CAAC,MAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;QAClD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,wDAAgC,GAAhC;QAEI,aAAa;QACb,IAAM,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,KAAK,CAAC,WAAW,GAAG;YAChB;gBACI,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ;gBACjD,OAAO,EAAE,iBAAiB;gBAC1B,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC;QACF,KAAK,CAAC,SAAS,GAAG;YACd;gBACI,IAAI,EAAE,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW;gBAC5C,MAAM,EAAE;oBACJ,cAAc,EAAE,EAAE;iBACrB;aACJ;SACJ,CAAC;QAEF,KAAK,CAAC,MAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;QAElD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK;IACL,mBAAmB;IACnB,eAAe;IACf,IAAI;IACJ,0DAA0D;IAC1D,mBAAmB;IACnB,8CAA8C;IAC9C,2BAA2B;IAC3B,WAAW;IACX,gEAAgE;IAChE,oCAAoC;IACpC,qDAAqD;IACrD,wEAAwE;IACxE,oFAAoF;IACpF,6CAA6C;IAC7C,4CAA4C;IAC5C,mDAAmD;IACnD,qBAAqB;IACrB,eAAe;IACf,WAAW;IACX,QAAQ;IACR,wDAAwD;IACxD,mBAAmB;IACnB,GAAG;IAGH;;OAEG;IACH,2CAAmB,GAAnB;QAEI,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtC,YAAY;QACZ,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;QAChC,KAAK,CAAC,MAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC;QACnD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,sDAA8B,GAA9B;QAEI,IAAI,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtC,YAAY;QACZ,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;QAChC,kCAAkC;QAClC,KAAK,CAAC,MAAM,GAAG,kBAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC;QACnD,IAAI,QAAQ,GAA4B,IAAI,kCAAuB,EAAE,CAAC;QACtE,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAEhC,MAAM,CAAC,gBAAgB,GAAG,aAAa,CAAC;QACxC,MAAM,CAAC,eAAe,GAAG,aAAa,CAAC;QACvC,0CAA0C;QAC1C,yCAAyC;QAEzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,OAAO,MAAM;IACjB,CAAC;IAED;;;;;OAKG;IACH,iDAAyB,GAAzB,UAA0B,KAA8B;QACpD,GAAG;QACH,aAAa;QACb,4EAA4E;QAC5E,4BAA4B;QAC5B,4BAA4B;QAC5B,0FAA0F;QAC1F,yFAAyF;QAEzF,iBAAiB;QACjB,8CAA8C;QAC9C,8BAA8B;QAC9B,8BAA8B;QAC9B,4FAA4F;QAC5F,2FAA2F;QAC3F,yCAAyC;QAEzC,SAAS;QACT,aAAa;QACb,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACtC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,4FAA4F;QAC5F,2FAA2F;QAC3F,QAAQ,CAAC,YAAY,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/F,QAAQ,CAAC,WAAW,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAClG,CAAC;IAED;;;;OAIG;IACK,oDAA4B,GAApC,UAAqC,MAAiB,EAAE,GAAW;;;QAC/D,IAAI,EAAqD,CAAC;QAC1D,QAAQ,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE;YAC3C,KAAK,cAAc,CAAC,IAAI;gBACpB,EAAE,GAAG,kBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBAC9F,MAAM;YACV,KAAK,cAAc,CAAC,OAAO;gBACvB,EAAE,GAAG,kBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBACjG,MAAM;YACV,KAAK,cAAc,CAAC,WAAW;gBAC3B,EAAE,GAAG,kBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,0BAA0B,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBACrG,MAAM;YACV;gBACI,MAAM;SACb;QACD,IAAI,EAAE,EAAE;YACJ,WAAW;YACX,EAAE,CAAC,WAAW,aAAC,MAAM,CAAC,yBAAyB,EAAC,aAAa,uCAAb,aAAa,GAAK,KAAK,EAAC,CAAC;YACzE,iBAAiB;YACjB,EAAE,CAAC,gBAAgB,aAAC,MAAM,CAAC,yBAAyB,EAAC,kBAAkB,uCAAlB,kBAAkB,GAAK,KAAK,EAAC,CAAC;YACnF,IAAI,EAAE,CAAC,gBAAgB,EAAE,EAAE;gBACvB,EAAE,CAAC,UAAU,aAAC,MAAM,CAAC,yBAAyB,EAAC,UAAU,uCAAV,UAAU,GAAK,EAAE,EAAC,CAAC;gBAClE,EAAE,CAAC,YAAY,aAAC,MAAM,CAAC,yBAAyB,EAAC,YAAY,uCAAZ,YAAY,GAAK,EAAE,EAAC,CAAC;aACzE;YACD,kBAAkB;YAClB,EAAE,CAAC,gBAAgB,aAAC,MAAM,CAAC,yBAAyB,EAAC,kBAAkB,uCAAlB,kBAAkB,GAAK,KAAK,EAAC,CAAC;YACnF,IAAI,EAAE,CAAC,gBAAgB,EAAE,EAAE;gBACvB,EAAE,CAAC,UAAU,aAAC,MAAM,CAAC,yBAAyB,EAAC,UAAU,uCAAV,UAAU,GAAK,EAAE,EAAC,CAAC;gBAClE,EAAE,CAAC,YAAY,aAAC,MAAM,CAAC,yBAAyB,EAAC,YAAY,uCAAZ,YAAY,GAAK,EAAE,EAAC,CAAC;aACzE;YACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACxC;IACL,CAAC;IAID;;;;;OAKG;IACH,0CAAkB,GAAlB,UAAmB,GAAG,EAAE,KAAc;QAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACxC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAGD;;;;;;OAMG;IACH,gCAAQ,GAAR,UAAS,KAA8B,EAAE,GAAG,EAAE,GAAG,EAAE,SAAiB;QAChE,oBAAoB;QACpB,IAAI,SAAS,IAAI,SAAS,EAAE;YAAE,OAAO;SAAE;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5E,qBAAqB;QACrB,2BAA2B;QAC3B,uCAAuC;QAEvC,gCAAgC;QAChC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,IAAI,IAAI,EAAE;YAAE,OAAO;SAAE;QAAA,CAAC;QAEtF,IAAI,UAAU,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,wBAAwB;QACvE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAGD;;;;OAIG;IACH,sCAAc,GAAd,UAAe,GAAG,EAAE,GAAG,EAAE,QAAyB;QAAzB,2CAAyB;QAE9C,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE;YACV,OAAO,GAAG,CAAC;SACd;QACD,IAAI,CAAC,GAAG,EAAE;YACN,aAAa;YACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SACrC;IACL,CAAC;IAED;;;OAGG;IACH,wCAAgB,GAAhB,UAAiB,GAAG;QAChB,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD;;;OAGG;IACH,6CAAqB,GAArB,UAAsB,QAA6B;;QAC/C,gBAAgB;QAChB,2JAA2J;QAC3J,IAAI,eAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,SAAS,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,kBAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,EAApD,CAAoD,KAAI,CAAC,CAAC,EAAE;YAChG,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAID;;MAEE;IACK,oCAAY,GAAnB;QACI,MAAM;QACN,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB;IACL,CAAC;IAID;;;MAGE;IACQ,sCAAc,GAAxB,UAAyB,IAAW;QAEhC,sDAAsD;QACtD,IAAI,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;YACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD;;;;MAIE;IACK,sDAA8B,GAArC,UAAsC,IAAW,EAAE,UAAkB;QAEjE,IAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QAEhD,OAAO,CAAC,OAAO,CAAC,UAAC,QAAQ;YAErB,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAC,IAAI,QAAC,CAAC,UAAU,CAAC,IAAI,QAAQ,EAAzB,CAAyB,CAAC,CAAC;YAElE,oBAAoB;YACpB,aAAa,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;gBAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,8CAAsB,GAAtB,UAAuB,cAAqB;QAA5C,mBAiBC;QAfG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAE9B,cAAc,CAAC,OAAO,CAAC,UAAC,IAAI;YAExB,mDAAmD;YACnD,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,cAAc,EAAE;gBAAE,OAAO;aAAE;YAEzH,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,IAAM,GAAG,GAAG,OAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAvB,CAAuB,CAAC,CAAC;YACjE,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;gBACV,OAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;aACxD;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAGD;;;OAGG;IACH,wCAAgB,GAAhB,UAAiB,aAAkD;QAE/D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,0CAAkB,GAAlB;QAEI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,yCAAiB,GAAzB,UAA0B,OAAgB;QAA1C,mBAmBC;QAjBG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAE9B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAC,IAAI;YAC5B,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAC,CAAC;oBACf,GAAG,GAAG,CAAC,CAAC;oBACR,OAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACjF,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAChF;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IAEjC,CAAC;IAED;;;;;;;;;OASG;IACO,sCAAc,GAAxB,UAAyB,GAAW,EAAE,SAAiB,EAAE,QAAqB,EAAE,SAAiB,EAAE,iBAA0B,EAAE,EAAE,EAAE,UAAyB;QAA5J,mBAWC;QAXkI,8CAAyB;QACxJ,cAAc;QACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;YAC/B,yBAAyB;YACzB,IAAI,KAAK,GAAG,OAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,UAAU,EAAE;gBACZ,OAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;aAC1D;YACD,EAAE;YACF,OAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACO,oCAAY,GAAtB,UAAuB,IAAW,EAAE,SAAiB,EAAE,QAAqB,EAAE,SAAiB,EAAE,iBAA0B,EAAE,EAAE;QAE3H,cAAc;QAEd,WAAW;QACX,IAAM,MAAM,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnE,MAAM,CAAC,YAAY,EAAE,CAAC;QAEtB,IAAM,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAEtC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAClC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE1B,OAAO;QACP,IAAM,gBAAgB,GAAgB,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc,EAAE,WAAW,EAAE,aAAa,CAAC,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5I,IAAM,mBAAmB,GAAG,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE7F,UAAU;QACV,IAAM,YAAY,GAAG;YACjB,EAAE,IAAI,EAAE,aAAa,CAAC,kBAAkB,EAAE,WAAW,EAAE,aAAa,CAAC,0BAA0B,EAAE,IAAI,EAAE,GAAG,EAAE;YAC5G,EAAE,IAAI,EAAE,aAAa,CAAC,qBAAqB,EAAE,WAAW,EAAE,aAAa,CAAC,6BAA6B,EAAE,IAAI,EAAE,GAAG,EAAE;YAClH,EAAE,IAAI,EAAE,aAAa,CAAC,oBAAoB,EAAE,WAAW,EAAE,aAAa,CAAC,4BAA4B,EAAE,IAAI,EAAE,GAAG,EAAE;SACnH,CAAC;QACF,IAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEhE,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAElC,UAAU;QACV,cAAc,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;;YAE/B,OAAO;YACP,IAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAEpF,cAAc;YACd,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,cAAc,EAAE;gBAChE,IAAM,EAAE,GAAG,kBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5L,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC1B,iCAAiC;gBACjC,0EAA0E;gBAC1E,kEAAkE;gBAClE,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;aAClF;YAED,MAAM;YACN,IAAM,KAAK,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACxC,KAAK,CAAC,SAAS,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxF,KAAK,CAAC,YAAY,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3F,KAAK,CAAC,UAAU,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzF,KAAK,CAAC,WAAW,GAAG,IAAI,kBAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAE1F,oCAAoC;YACpC,YAAY;YACZ,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;gBAC7C,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;aAC/B;iBAAM;gBACH,YAAY;gBACZ,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;aAClC;YAED,cAAc;YACd,MAAM;YACN,gGAAgG;YAChG,+CAA+C;YAC/C,UAAI,IAAI,CAAC,KAAK,0CAAE,SAAS,EAAE;gBACvB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;aAC1C;YAED,UAAI,IAAI,CAAC,MAAM,0CAAE,eAAe,EAAE;gBAC9B,YAAY;gBACZ,SAAS,CAAC,SAAS,OAAC,IAAI,CAAC,MAAM,0CAAE,eAAe,CAAC,CAAC;aACrD;YAED,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,WAAW,EAAE,CAAC;QAErB,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5F,IAAI,EAAE,IAAI,IAAI,EAAE;YACZ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACpB;IACL,CAAC;IAGD;;;;;OAKG;IACH,kDAA0B,GAA1B,UAA2B,KAAK,EAAE,GAAG,EAAE,GAAG;QACtC,iCAAiC;QACjC,IAAI,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC;YACpC,GAAG,EAAE,UAAU;YACf,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;YACvB,GAAG;YACH,GAAG;SACN,CAAC,CAAC;QAEH,6CAA6C;QAC7C,2BAA2B;QAC3B,wGAAwG;QACxG,wCAAwC;QACxC,uDAAuD;QACvD,2EAA2E;QAC3E,gFAAgF;QAChF,oCAAoC;QACpC,iDAAiD;QAEjD,QAAQ;QACR,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,YAAY,GAAG,CAAC,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC;QACjE,2CAA2C;QAC3C,IAAI,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;QAC5C,IAAI,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC;QAC9C,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC/E,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAEjD,OAAO;QACP,0CAA0C;QAC1C,yCAAyC;QACzC,IAAI,WAAW,GAAG,CAAC,CAAC,uDAAuD,EAAE,WAAW,CAAC,CAAC;QAC1F,mBAAmB;QACnB,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAKD;;;;OAIG;IACH,6CAAqB,GAArB,UAAsB,GAAY,EAAE,gBAA0B;QAC1D,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACI,mCAAqB,GAA5B,UAA6B,KAA8B,EAAE,GAAY,EAAE,gBAA0B;QAEjG,wBAAwB;QACxB,0EAA0E;QAE1E,SAAS;QACT,kDAAkD;QAClD,EAAE;QACF,WAAW;QACX,mDAAmD;QACnD,cAAc;QAEd,uDAAuD;QACvD,+BAA+B;QAC/B,6CAA6C;QAE7C,WAAW;QACX,IAAI,cAAc,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,WAAW;QACX,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhB,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACd,SAAS;YACT,KAAK,IAAI,KAAG,GAAG,CAAC,EAAE,KAAG,GAAG,KAAK,CAAC,WAAW,EAAE,EAAE,KAAG,EAAE,EAAE;gBAChD,oBAAoB;gBACpB,aAAa,CAAC,yBAAyB,CAAC,KAAK,EAAE,KAAG,EAAE,gBAAgB,CAAC,CAAC;aACzE;SACJ;aAAM;YACH,aAAa,CAAC,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;SACzE;QACD,UAAU;QACV,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IAKD;;;;;OAKG;IACY,uCAAyB,GAAxC,UAAyC,KAA8B,EAAE,GAAW,EAAE,gBAA0B;;QAE5G,OAAO;QACP,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,EAAE;YACnD,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnC,gCAAgC;YAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAChD,IAAI,QAAQ,GAAG,YAAK,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,0CAAE,KAAK,OAAM,IAAI,CAAC;gBAC/D,IAAI,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAE1C,MAAM;gBACN,uDAAuD;gBACvD,gCAAgC;gBAChC,uCAAuC;gBACvC,sCAAsC;gBACtC,4CAA4C;gBAC5C,kCAAkC;gBAElC,IAAI,UAAU,GAAG,GAAG,CAAC,WAAU;gBAC/B,IAAI,OAAO,GAAG,IAAI,CAAC;gBACnB,IAAI,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBAEvG,6EAA6E;gBAC7E,IAAI,CAAC,KAAK,aAAa,EAAE;oBACrB,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,OAAO;oBACP,IAAI,gBAAgB,EAAE;wBAClB,aAAa,IAAI,IAAI,CAAC;qBACzB;iBACJ;gBAED,IAAI,SAAS,GAAG,aAAa,EAAE;oBAC3B,SAAS,GAAG,aAAa,CAAC;iBAC7B;aACJ;SACJ;QACD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IA6BD,0DAA0D;IAE1D;;;;;OAKG;IACO,8CAAsB,GAAhC,UAAiC,OAAY,EAAE,GAAW,EAAE,GAAW,EAAE,SAAmB;QAExF,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YAAE,SAAS,GAAG,KAAK,CAAC;SAAE;QAG9C,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAEpC,mBAAmB;QACnB,IAAI,MAAM,CAAC,MAAM,YAAY,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;YAE3D,YAAY;YACZ,kFAAkF;YAClF,uFAAuF;YACvF,wCAAwC;YACxC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE;gBAE/G,yEAAyE;gBACzE,kDAAkD;gBAClD,uBAAuB;gBACvB,6CAA6C;gBAC7C,8CAA8C;gBAC9C,yEAAyE;gBAGzE,oBAAoB;gBACpB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAE3C,eAAe;gBACf,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,IAAI,OAAO,EAAE;oBACjE,gDAAgD;oBAChD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;iBAC5C;gBAED,OAAO;gBACP,WAAW;gBACX,oEAAoE;gBACpE,uCAAuC;gBAGvC,iDAAiD;gBACjD,IAAI,SAAS,EAAE;oBACX,eAAe;oBACf,wBAAwB;oBACxB,uDAAuD;oBACvD,8CAA8C;oBAC9C,wCAAwC;oBACxC,mBAAmB;oBACnB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;iBAC7B;gBAED,+BAA+B;gBAC/B,+CAA+C;gBAE/C,kDAAkD;gBAClD,uBAAuB;gBACvB,6CAA6C;gBAC7C,8CAA8C;gBAC9C,yEAAyE;aAC5E;SACJ;IAEL,CAAC;IAED;;;;OAIG;IACO,iDAAyB,GAAnC,UAAoC,UAAiB,EAAE,SAAkB,EAAE,QAAyC;QAEhH,sCAAsC;QACtC,8BAA8B;QAC9B,kCAAkC;QAClC,eAAe;QACf,iDAAiD;QACjD,GAAG;QAEH,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE;YACnC,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;gBAC7C,MAAM;gBACN,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;oBACrC,+CAA+C;oBAC/C,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;oBAE9B,mBAAmB;oBACnB,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;oBAE1D,kEAAkE;oBAClE,+CAA+C;oBAC/C,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;iBAC7B;aACJ;SACJ;IACL,CAAC;IArwHD;;OAEG;IACoB,6BAAe,GAAG,aAAa,CAAC;IAChC,qCAAuB,GAAG,IAAI,CAAC;IAEtD;;OAEG;IACoB,4BAAc,GAAG,YAAY,CAAC;IAC9B,oCAAsB,GAAG,MAAM,CAAC;IAEvD;;MAEE;IACqB,gCAAkB,GAAG,gBAAgB,CAAC;IACtC,wCAA0B,GAAG,QAAQ,CAAC;IACtC,mCAAqB,GAAG,mBAAmB,CAAC;IAC5C,2CAA6B,GAAG,UAAU,CAAC;IAC3C,kCAAoB,GAAG,kBAAkB,CAAC;IAC1C,0CAA4B,GAAG,MAAM,CAAC;IAI7D;;OAEG;IACoB,yBAAW,GAAG,SAAS,CAAC;IA2uHnD,oBAAC;CAAA;AAx1HqB,sCAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtJnC,6EAA6B;AAC7B,+EAAoC;AACpC,kFAAsC;AACtC,mGAA8C;AAC9C,uFAAsC;AAEtC;;GAEG;AACH,6BAA6B;AAC7B;IAAA;IAupCA,CAAC;IAr9BG;;;;OAIG;IACI,SAAI,GAAX,UAAY,GAAG,EAAE,eAAsB;QAAtB,wDAAsB;QACnC,oBAAoB;QACpB,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,oEAAoE;QACpE,+CAA+C;QAC/C,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,wDAAwD;QACxD,4CAA4C;QAC5C,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,WAAW,EAAE;YACb,gDAAgD;YAChD,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC9C,kBAAkB;gBAClB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;aAChD;iBAAM;gBACH,6BAA6B;gBAC7B,mDAAmD;gBACnD,aAAa;gBACb,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;gBAChD,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;aACvD;SACJ;QAED,+BAA+B;QAC/B,kEAAkE;QAClE,IAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE;YACrC,KAAK,EAAE,KAAK;YACZ,cAAc;YACd,gBAAgB;YAChB,wCAAwC;YACxC,8EAA8E;YAC9E,sBAAsB;YAEtB,UAAU,EAAE,UAAU,GAAG,EAAE,QAAQ;gBAC/B,wBAAwB;gBACxB,iEAAiE;gBACjE,+CAA+C;gBAC/C,0DAA0D;gBAC1D,oEAAoE;gBACpE,kCAAkC;gBAClC,IAAI,SAAS,EAAE;oBACX,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;iBACnD;YACL,CAAC;SACJ,EAAE,GAAG,CAAC,CAAC;QAER,IAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,YAAY;QACZ,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,KAAK;YACxC,OAAO;YACP,eAAe;YACf,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,YAAY;QACZ,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,UAAU,EAAE,WAAW;YAC/C,OAAO;YACP,eAAe;YACf,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAErC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEvB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,IAAI;gBACA,mBAAmB;gBACnB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;aAC3C;YACD,OAAO,CAAC,EAAE;gBACN,kEAAkE;gBAClE,KAAK,GAAG,IAAI,CAAC;aAChB;YAED,IAAI,eAAe,EAAE;gBACjB,cAAc;gBACd,QAAQ;gBACR,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE;oBACrB,qCAAqC;oBACrC,IAAM,aAAa,GAAG,CAAC,CAAC,yBAAqB,OAAO,CAAC,MAAM,4JAA8C,OAAO,CAAC,QAAQ,WAAQ,CAAC,CAAC;oBACnI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,UAAC,GAAG;wBAClD,yBAAyB;wBACzB,qBAAqB;wBACrB,kCAAkC;wBAClC,uCAAuC;wBACvC,kCAAkC;wBAClC,0BAA0B;wBAC1B,mBAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACzB,GAAG;oBACP,CAAC,CAAC,CAAC;oBACH,OAAO;iBACV;qBAAM;oBACH,IAAI,CAAC,KAAK,EAAE;wBAER,IAAM,aAAa,GAAG,CAAC,CAAC,yBAAqB,OAAO,CAAC,MAAM,0LAAmD,OAAO,CAAC,QAAQ,WAAQ,CAAC,CAAC;wBAExI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,UAAC,GAAG;4BAClD,qBAAqB;4BACrB,GAAG;wBACP,CAAC,CAAC,CAAC;qBAEN;yBAAM;wBAEH,IAAM,aAAa,GAAG,CAAC,CAAC,2EAA2E,CAAC,CAAC;wBACrG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;wBAEvC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,UAAC,GAAG;4BAC9C,qBAAqB;4BACrB,GAAG;wBACP,CAAC,CAAC,CAAC;qBAEN;iBACJ;aAEJ;QACL,CAAC,CAAC,CAAC;QACH,WAAW;QACX,KAAK,CAAC,MAAM,CAAC;YACT,OAAO;QAEX,CAAC,CAAC,CAAC;QACH,6BAA6B;QAC7B,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAGD;;OAEG;IACU,YAAO,GAApB,UAAqB,GAAW,EAAE,IAAU;;;gBACxC,qDAAqD;gBACrD,sBAAO,IAAI,OAAO,CAAM,UAAC,OAAO,EAAE,MAAM;wBACpC,IAAI,CAAC,IAAI,CAAC;4BACN,GAAG,EAAE,GAAG;4BACR,IAAI,EAAE,KAAK;4BACX,IAAI,EAAE,IAAI;yBAEb,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;4BACjB,2BAA2B;4BAC3B,IAAI;gCACA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gCAC5B,IAAI,GAAG,CAAC,OAAO,EAAE;oCACb,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;iCACzB;qCAAM;oCACH,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;iCAC1B;6BACJ;4BAAC,OAAO,CAAC,EAAE;gCACR,UAAU;gCACV,MAAM,EAAE,CAAC;6BACZ;wBACL,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,UAAU,EAAE,WAAW;4BAC5C,MAAM,CAAC,WAAW,CAAC,CAAC;wBACxB,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACU,aAAQ,GAArB,UAAsB,GAAW,EAAE,IAAU,EAAE,WAAqB;;;gBAChE,qDAAqD;gBACrD,sBAAO,IAAI,OAAO,CAAM,UAAC,OAAO,EAAE,MAAM;wBACpC,IAAI,CAAC,IAAI,CAAC;4BACN,GAAG,EAAE,GAAG;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI;yBAEb,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;4BACjB,2BAA2B;4BAC3B,IAAI;gCACA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gCAC5B,IAAI,WAAW,EAAE;oCACb,OAAO,CAAC,GAAG,CAAC,CAAC;iCAChB;qCAAM;oCACH,IAAI,GAAG,CAAC,OAAO,EAAE;wCACb,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;qCACzB;yCAAM;wCACH,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;qCAC1B;iCACJ;6BACJ;4BAAC,OAAO,CAAC,EAAE;gCACR,UAAU;gCACV,MAAM,EAAE,CAAC;6BACZ;wBACL,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,UAAU,EAAE,WAAW;4BAC5C,MAAM,CAAC,WAAW,CAAC,CAAC;wBACxB,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,EAAC;;;KACN;IAED;;;;OAIG;IACI,aAAQ,GAAf,UAAgB,MAAM,EAAE,IAAK;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACI,YAAO,GAAd,UAAe,MAAM,EAAE,IAAK;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACI,YAAO,GAAd,UAAe,MAAM,EAAE,MAAyC,EAAE,IAAK,EAAE,IAAoB;QAApB,kCAAoB;QACzF,UAAU;QACV,IAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEhC,UAAU;QACV,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,KAAK,IAAM,SAAS,IAAI,IAAI,EAAE;gBAC1B,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC9C,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACrC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBACtC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAC3B;SACJ;QAED,cAAc;QACd,sEAAsE;QACtE,IAAI,MAAM,KAAK,MAAM,IAAI,IAAI,EAAE;YAC3B,oBAAoB;YACpB,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrC,2CAA2C;YAC3C,mCAAmC;YACnC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;YACzD,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3B;QAGD,+CAA+C;QAC/C,IAAI,MAAM,KAAK,MAAM,EAAE;YAEnB,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5C,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACzC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAGxB,eAAe;YACf,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACxC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC3C,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC3B;QAED,SAAS;QACT,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,cAAS,GAAhB,UAAiB,KAAK;QAClB,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC;QACvB,IAAI,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACd,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACxB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACtB;YACD,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;aAC7C;SACJ;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAGD;;;OAGG;IACI,iBAAY,GAAnB;QACI,QAAQ;QACR,sBAAsB;QACtB,0GAA0G;QAC1G,4DAA4D;QAC5D,oEAAoE;QACpE,kCAAkC;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAGD;;;OAGG;IACI,iBAAY,GAAnB;QACI,yBAAyB;QACzB,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACI,mBAAc,GAArB;QACI,yBAAyB;QACzB,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;IACjD,CAAC;IAsWD;;;;;;OAMG;IACI,sBAAiB,GAAxB,UAAyB,IAAW;QAChC,oEAAoE;QAEpE,0BAA0B;QAC1B,qEAAqE;QACrE,EAAE;QACF,6BAA6B;QAC7B,qCAAqC;QACrC,EAAE;QACF,8BAA8B;QAC9B,qCAAqC;QACrC,EAAE;QACF,uBAAuB;QACvB,gCAAgC;QAEhC,2BAA2B;QAC3B,+DAA+D;QAC/D,+DAA+D;QAE/D,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,KAAK;YACpB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE,GAAG;gBAC7B,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBAChB,WAAW;oBACX,gFAAgF;oBAChF,6CAA6C;oBAC7C,2CAA2C;oBAC3C,yCAAyC;oBACzC,2BAA2B;oBAC3B,iDAAiD;oBACjD,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;iBAC3C;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAAA,CAAC;IAEF;;;;;MAKE;IACK,eAAU,GAAjB,UAAkB,GAAW,EAAE,MAAc;QAEzC,IAAI,CAAC,GAAG,GAAG,CAAC;QAEZ,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;gBACpB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAI,CAAC,MAAG,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACN;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAAA,CAAC;IAEF;;;MAGE;IACK,wBAAmB,GAA1B,UAA2B,IAAY;QAEnC,yBAAyB;QACzB,IAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC;QAEtD,aAAa;QACb,IAAM,MAAM,GAAG,IAAI,IAAI,SAAS;YAC5B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAEnB,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF;;;;OAIG;IACI,iBAAY,GAAnB,UAAoB,GAAG,EAAE,QAAQ;QAE7B,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,aAAa;QACb,IAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,YAAY,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,GAAG,gBAAgB,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;QACzH,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,MAAM,EAAE,CAAC;QAEX,+DAA+D;QAC/D,6CAA6C;QAC7C,4CAA4C;QAC5C,OAAO;QACP,aAAa;QACb,qCAAqC;QACrC,mBAAmB;QACnB,oCAAoC;QACpC,KAAK;IAET,CAAC;IA+BD,eAAe;IACR,0BAAqB,GAA5B;QACI,OAAO,CAAC,EAAE,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;YACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;SAC3F,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,aAAQ,GAAf,UAAgB,GAAW,EAAE,IAAI;QAAjC,iBAuEC;QArEG,IAAI,MAAM,GAAG,SAAS,CAAC;QAEvB,OAAO,IAAI,OAAO,CAAM,iBAAO;YAC3B,KAAI,CAAC,IAAI,CAAC;gBACN,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;aACtC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,KAAK;gBAE5C,IAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;gBACnE,IAAI,QAAQ,CAAC,CAAC,uBAAuB;gBACrC,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;oBACzD,OAAO;oBACP,IAAI,aAAa,GAAG,uCAAuC,CAAC;oBAC5D,IAAI,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC9C,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC/B,0EAA0E;wBAC1E,iCAAiC;wBACjC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;qBAC9E;iBACJ;gBACD,IAAI,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;oBACnC,eAAe;oBACf,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAClD,iBAAiB;iBACpB;qBAAM;oBACH,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;oBACpE,IAAM,WAAW,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC9C,IAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACtC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC;oBACrB,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;oBACV,CAAC,CAAC,MAAM,EAAE,CAAC;iBACd;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC;iBACG,IAAI,CAAC,UAAU,KAAK,EAAE,UAAU,EAAE,WAAW;gBAC1C,iDAAiD;gBACjD,iDAAiD;gBACjD,MAAM,GAAG,OAAO,CAAC;gBACjB,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9P,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE;oBACrB,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,0BAA0B;oBACxE,IAAM,OAAO,GAAG,YAAY,CAAC;oBAC7B,IAAM,aAAa,GAAG,CAAC,CAAC,yBAAqB,OAAO,4JAA8C,OAAO,WAAQ,CAAC,CAAC;oBACnH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,UAAC,GAAG;wBAC1C,mBAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC7B,CAAC,CAAC,CAAC;oBACH,OAAO;iBACV;qBAAM;oBACH,8CAA8C;oBAC9C,IAAM,KAAK,GAAG,SAAS,CAAC,CAAC,iBAAiB;oBAC1C,IAAM,OAAO,GAAG,iBAAiB,CAAC;oBAClC,IAAM,aAAa,GAAG,CAAC,CAAC,yBAAqB,OAAO,0LAAmD,OAAO,WAAQ,CAAC,CAAC;oBACxH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,UAAC,GAAG;oBAE9C,CAAC,CAAC,CAAC;iBACN;gBAED,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC;iBACD,MAAM,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,WAAW;YAC/C,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;IAcD;;;OAGG;IACI,sBAAiB,GAAxB,UAAyB,KAAK;QAE1B,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,kBAAkB;QAClB,IAAI,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YAC5B,OAAO,iBAAiB,CAAC;SAC5B;QAED,kBAAkB;QAClB,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YAC/B,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;SACpD;QAED,mBAAmB;QACnB,IAAI,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;YAC7B,iBAAiB,GAAG,CAAC,GAAG,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/H;QAED,iBAAiB;QACjB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClC,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9D;QAED,qBAAqB;QACrB,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAExD,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED;;SAEK;IACE,yBAAoB,GAA3B,UAA4B,cAAoB;QAE5C,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvD,wBAAwB;QACxB,IAAI,cAAc,GAAG,OAAO,EAAE;YAC1B,MAAM,GAAG,IAAI,CAAC;SACjB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAppCD,aAAa;IAEb,4DAA4D;IAC5D,kDAAkD;IAElD,+BAA+B;IAC/B,uEAAuE;IACvE,aAAa;IACG,iBAAY,GAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrE,aAAa;IACG,iBAAY,GAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAErE,KAAK;IACW,WAAM,GAAG;QAErB,IAAI;QACJ,cAAc,EAAE;YACZ,iBAAiB,EAAE,mBAAmB;YACtC,kBAAkB,EAAE,oBAAoB;YACxC,YAAY,EAAE,cAAc;YAC5B,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,kBAAkB;YACpC,cAAc,EAAE,gBAAgB;YAChC,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,gBAAgB;YAChC,iBAAiB,EAAE,mBAAmB;YACtC,YAAY,EAAE,cAAc;SAE/B;QAED,KAAK;QACL,UAAU,EAAE,EAAE;QAEd;;;;;;;WAOG;QACH,IAAI,EAAE,UAAU,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM;YAC7D,sCAAsC;YACtC,wCAAwC;YACxC,IAAI,gBAAgB,EAAE;gBAClB,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;aAChC;YAGD,UAAU;YACV,8KAA8K;YAC9K,uCAAuC;YACvC,2DAA2D;YAE3D,2EAA2E;YAC3E,mDAAmD;YAEnD,6CAA6C;YAC7C,6CAA6C;YAC7C,+DAA+D;YAC/D,QAAQ;YACR,6CAA6C;YAC7C,GAAG;YAEH,4DAA4D;YAC5D,qDAAqD;YACrD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACzB,IAAI,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,OAAO,CAAC,EAAE;oBAClE,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBACjD,mDAAmD;oBACnD,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,IAAI,aAAa,EAAE;wBAC7C,4DAA4D;wBAC5D,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,GAAG;qBACzB;iBACJ;aACJ;YAED,IAAM,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/E,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,EAAE,KAAK;gBAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,cAAc;YACd,sEAAsE;YACtE,IAAI,MAAM,KAAK,MAAM,EAAE;gBACnB,oBAAoB;gBACpB,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,2CAA2C;gBAC3C,mCAAmC;gBACnC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBAErF,oEAAoE;gBACpE,+CAA+C;gBAC/C,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBACrE,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;aAC5E;YAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC;QAED,SAAS;QACT,QAAQ,EAAE;YACN;;;;eAIG;YACH,QAAQ,EAAE,UAAU,IAAI,EAAE,GAAI;gBAC1B,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG;gBACjC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,mBAAmB,CAAC,EACvD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,EAAE;oBAAE,OAAO,IAAI,CAAC;iBAAE;gBAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAAE,OAAO,EAAE,CAAC;iBAAE;gBAC/B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9D,CAAC;SACJ;QAED;;gBAEQ;QACR,WAAW,EAAE;YACT;;;;eAIG;YACH,QAAQ,EAAE,UAAU,IAAI,EAAE,GAAI;gBAC1B,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG;gBACjC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,mBAAmB,CAAC,EACvD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,EAAE;oBAAE,OAAO,IAAI,CAAC;iBAAE;gBAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAAE,OAAO,EAAE,CAAC;iBAAE;gBAC/B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9D,CAAC;SACJ;QAED;;WAEG;QACH,gBAAgB;YACZ,QAAQ;YACR,sDAAsD;YACtD,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,UAAU,KAAK;gBACnD,WAAW;gBACX,SAAS;gBACT,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;QACP,CAAC;QAED;;WAEG;QACH,cAAc;YAEV,SAAS;YACT,KAAK,IAAI,MAAI,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;gBACzC,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAI,CAAC,CAAC,CAAQ,kBAAkB;gBAC7D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,GAAG;aACnB;QACL,CAAC;KAwBJ;IAkVD;;OAEG;IACa,cAAS,GAAG;QACxB;;WAEG;QACH,QAAQ,EAAE;YAEN,sEAAsE;YACtE,yEAAyE;YAEzE,4DAA4D;YAC5D,kBAAkB;YAClB,UAAU;YACV,mBAAmB;YACnB,GAAG;YACH,IAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;YAC5C,IAAI,oCAAoC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,IAAI,QAAQ,EAAE;gBAC3E,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,OAAO,KAAK,CAAC;aAChB;QACL,CAAC;KACJ,CAAC;IAGF,KAAK;IACW,eAAU,GAAG;QACzB;;;UAGE;QACF,gBAAgB,EAAE,UAAU,CAAE;YAC1B,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ;YAC1B,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM;YACxB,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpC,IAAI,KAAK,IAAI,MAAM,EAAE;gBACjB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;aAC3C;iBAAM,IAAI,MAAM,GAAG,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;gBAC1C,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;aAC3C;iBAAM;gBACH,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;aAC5C;QACL,CAAC;QAED,KAAK;QACL,IAAI,EAAE;YACF,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3C,IAAI,MAAM,KAAK,QAAQ,EAAE;gBACrB,OAAO,QAAQ,CAAC;aACnB;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;gBAC5B,OAAO,QAAQ,CAAC;aACnB;iBAAM;gBACH,OAAO,SAAS,CAAC;aACpB;QACL,CAAC;QAED,KAAK;QACL,QAAQ,EAAE;;YACN,OAAO,WAAI,CAAC,UAAU,0CAAE,IAAI,QAAO,QAAQ,CAAC;QAChD,CAAC;QAED,KAAK;QACL,QAAQ,EAAE;;YACN,OAAO,WAAI,CAAC,UAAU,0CAAE,IAAI,QAAO,QAAQ,CAAC;QAChD,CAAC;QACD,KAAK;QACL,SAAS,EAAE;;YACP,OAAO,WAAI,CAAC,UAAU,0CAAE,IAAI,QAAO,SAAS,CAAC;QACjD,CAAC;KACJ;IAED;;OAEG;IACa,SAAI,GAAG;QAEnB;;;;WAIG;QACH,WAAW,EAAE,UAAU,IAAI,EAAE,OAAQ;YACjC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE;gBAAE,OAAO,IAAI,CAAC;aAAE;YAChD,IAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAM,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAM,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;aAChC;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAAA,CAAC;aACrB;QACL,CAAC;QAED;;;WAGG;QACH,cAAc,EAAE,UAAU,OAAQ;YAC9B,IAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAED;;aAEK;QACL,oBAAoB,EAAE;YAClB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3N,CAAC;QAED;;;WAGG;QACH,kBAAkB,EAAE,UAAU,OAAQ;YAClC,IAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;YACtB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAED;;;WAGG;QACH,cAAc,EAAE,UAAU,IAAI;YAC1B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE;gBAAE,OAAO,IAAI,CAAC;aAAE;YAChD,IAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAM,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAM,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAM,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;YACtB,IAAM,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnD,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACnD,CAAC;QAED;;;;WAIG;QACH,OAAO,EAAE,UAAU,MAAM,EAAE,MAAO;YAC9B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE;gBAAE,OAAO,CAAC,CAAC;aAAE;YACrD,IAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAM,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YACxF,IAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;YACjE,uBAAuB;YACvB,OAAO,OAAO,CAAC;QACnB,CAAC;QAED;;;;WAIG;QACH,QAAQ,EAAE,UAAU,MAAM,EAAE,MAAM;YAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAClD,CAAC;QAED;;;WAGG;QACH,MAAM,EAAE,UAAU,QAAQ;YACtB,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC;aAAE;YACxC,IAAI,EAAQ,CAAC;YACb,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACtB,IAAI,CAAC,GAAW,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAW,IAAI,CAAC;gBACrB,IAAI,CAAC,GAAW,IAAI,CAAC;gBACrB,OAAO;gBACP,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxC,OAAO;gBACP,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAExC,6BAA6B;gBAC7B,yBAAyB;gBACzB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACpC;gBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvB,UAAU;oBACV,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3C,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB;oBACnE,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC9C;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,QAAQ;oBACR,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3C,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB;oBACnE,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC9C;qBAAM;oBACH,UAAU;oBACV,OAAO,KAAK,CAAC;iBAChB;gBAED,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;oBACrB,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;oBAClB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;oBACnB,OAAO,KAAK,CAAC;iBAChB;aAEJ;iBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAC3B,EAAE,GAAG,QAAQ,CAAC;aACjB;YAED,YAAY;YACZ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE;gBAC/B,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE;gBAClD,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED;;;YAGI;QACJ,YAAY,EAAE,UAAU,QAAQ;YAE5B,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC;aAAE;YAExC,2BAA2B;YAC3B,kBAAkB;YAClB,gDAAgD;YAChD,uBAAuB;YACvB,OAAO;YACP,GAAG;YAEH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC;aAAE;YAC/D,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;gBACxE,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED;;;YAGI;QACJ,aAAa,EAAE,UAAU,QAAQ;YAC7B,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC;aAAE;YACxC,IAAI,EAAQ,CAAC;YACb,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAE9C,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAE/B,mBAAmB;gBACnB,IAAI,OAAO,GAAa,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAE9D,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;oBACrB,QAAQ;oBACR,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,qCAAqC,CAAC,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;iBAEhF;qBAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC5B,OAAO;oBACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAEhE,gBAAgB;oBAChB,IAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBAC1C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;iBAExC;qBAAM;oBACH,WAAW;oBACX,OAAO,KAAK,CAAC;iBAChB;gBAED,IAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;oBAClE,OAAO,KAAK,CAAC;iBAChB;aACJ;iBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAC3B,EAAE,GAAG,QAAQ,CAAC;aACjB;YAED,YAAY;YACZ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE;gBAC/B,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE;gBAClD,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED;;;WAGG;QACH,MAAM,EAAE,UAAU,GAAG;YACjB,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC;aAAE;YACnC,GAAG,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,KAAK,IAAI,CAAC;QACpE,CAAC;QAED;;;;WAIG;QACH,mBAAmB,EAAE,UAAU,QAAQ;YACnC,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,QAAQ,CAAC;aAAE;YAEvD,IAAI,iBAAiB,GAAG,QAAQ,CAAC;YACjC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBACpB,WAAW;gBACX,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACxD;iBAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAC3B,sBAAsB;gBACtB,IAAI,OAAO,GAAa,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9D,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;oBACrB,yBAAyB;oBACzB,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;iBACjE;gBACD,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;aACjE;YACD,OAAO,iBAAiB,CAAC;QAC7B,CAAC;QAED;;WAEG;QACH,UAAU,EAAE,UAAU,QAAQ,EAAE,QAAwB;YAAxB,0CAAwB;YACpD,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACnB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvC;YACD,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;gBACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvC;YACD,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE;gBAC/B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvC;YACD,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE;gBAClD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvC;YACD,OAAO,EAAE,CAAC;QACd,CAAC;KACJ,CAAC;IAmHF;;OAEG;IACa,SAAI,GAAG;QACnB;;YAEI;QACJ,MAAM,EAAE,UAAU,MAAM;YACpB,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;iBAChC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;iBACtB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;iBACtB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;iBACxB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;QAED;;WAEG;QACH,KAAK,EAAE,UAAU,MAAM;YACnB,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YACtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC;QAClB,CAAC;KACJ;IAwFD;;;SAGK;IACE,WAAM,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5E;;;SAGK;IACE,WAAM,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAsDhF,WAAC;CAAA;AAvpCY,oBAAI;;;;;;;;;;;;;;;;;ACTjB,8BAA8B;AAC9B,kDAAkD;AAClD,sGAAgC;AAEhC,sGAA0C;AA6EjC,sBAAK;AA5Ed,qHAAmD;AA4EnC,4BAAQ;AA3ExB,qHAAmD;AA2EmG,4BAAQ;AA1E9J,+GAA+C;AA0EiH,wBAAM;AAzEtK,kHAAiD;AAyEd,0BAAO;AAxE1C,kHAAiD;AAwEvB,0BAAO;AAvEjC,sIAA8D;AAuElB,sCAAa;AAtEzD,sIAA8D;AAsEH,sCAAa;AArExE,kJAAsE;AAqEI,8CAAiB;AApE3F,+IAAoE;AAoEyB,4CAAgB;AAnE7G,gIAA0D;AAmE+E,kCAAW;AAlEpJ,kJAA0E;AAkEqC,yFAlEtG,8BAAQ,OAkEsG;AAAE,+FAlEtG,oCAAc,OAkEsG;AAhEvI,6EAA6E;AAC7E,sIAAoD,iBAAgB;AAGpE,iDAAiD;AACjD,8HAAkD;AA2DsH,uFA3D/J,sBAAM,OA2D+J;AA1D9K,sHAAmD;AA0D6H,sBAAK;AAzDrL,sHAAyC;AACzC,sHAAyC;AACzC,oHAAwC;AAExC,mEAAmE;AACnE,2EAA2E;AAC3E,kIAA+C;AAE/C,yDAAyD;AACzD,yFAAoB;AAEpB,SAAS;AACT,wEAAwE;AACxE,mDAAmD;AACnD,sBAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE9C,QAAQ;AACR,IAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACzE,IAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC/E,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;AACrC,mDAAmD;AACnD,2BAA2B;AAC3B,sBAAM,CAAC,MAAM,CAAC,UAAU,GAAG,kBAAkB,CAAC;AAC9C,wCAAwC;AAClC,KAAM,CAAC,UAAU,GAAG,kBAAkB,CAAC;AAK7C,2BAA2B;AAC3B,0BAA0B;AAC1B,GAAG;AACH,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;AACzB,GAAG;AACH,uBAAuB;AACvB,qBAAqB;AAErB,oBAAoB;AACpB,YAAY;AACZ,sCAAsC;AACtC,sBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACzF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;KAAE;IAEtD,IAAI,SAAS,GAAS,sBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAU,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACpG,+FAA+F;IAC/F,OAAO,sBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAC7D,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;QAChE,MAAM;QACN,OAAO;KAAC,CAAC,CAAC;AAClB,CAAC;;;;;;;;;;;;AC7ED,wB","file":"SPIRIT.js","sourcesContent":["\r\nexport { loading } from \"../ts/commons/loading\";\r\nexport { Util as util } from \"../ts/commons/util\";\r\nexport * as dialog from \"../ts/commons/dialog\";\r\nexport { _SPA as SPA } from \"../ts/commons/spa\";\r\n\r\nexport * as components from \"../ts/commons/components/components\";\r\n\r\nexport { Notify as notify, notifyOptions } from \"../ts/commons/notify\";\r\n\r\n//import { ModalBase } from \"../ts/commons/base/modalBase\";\r\n//import { PageBase } from \"../ts/commons/base/pageBase\";\r\n//import { SpreadBase } from \"../ts/commons/base/spreadBase\";\r\n//export const base = { ModalBase, PageBase, SpreadBase };\r\n\r\nexport * as base from \"../ts/commons/base/base\";\r\n\r\n//import { WorkBookBase } from \"./commons/spread/workbookBase\";\r\n//import { WorkSheetBase } from \"./commons/spread/workSheetBase\";\r\n//import { BlankSheet } from \"./commons/spread/BlankSheet\";\r\n//export const spread = { WorkBookBase, WorkSheetBase, BlankSheet };\r\n\r\n//************************************************************\r\n//export class PlantGroupInfoGrid extends SPIRIT.spread.WorkBookBase {←これOK\r\n// sheet SPIRIT.spread.WorkSheetBase               ←これNG\r\n//************************************************************\r\n//下記のようにしないと駄目みたい(Classのextendsには使用できるが、変数の型では使用できない)\r\nexport * as spread from \"../ts/commons/spread/spread\";\r\n\r\n//export * as business from \"../ts/commons/business\";\r\nexport { Business as business } from \"../ts/commons/business\";\r\n\r\n//export * as session from \"../ts/commons/session\";\r\nexport { Session as session } from \"../ts/commons/session\";\r\n//#2599\r\nexport { Project as project } from \"../ts/commons/project\";\r\n\r\nexport * as codes from \"./commons/define/codes\";\r\nexport * as constant from \"./commons/define/constant\";\r\nexport * as interfaces from \"./commons/define/interfaces\";\r\nexport * as message from \"./commons/define/message\";\r\n\r\nexport { _AutoFit as autoFit } from \"../ts/commons/autoFit\";\r\n\r\n/** siteのインスタンス */\r\nexport const navi = {\r\n instance: function () { return $(document).data('site'); },\r\n rebuild: function (): Promise {\r\n return navi.instance()?.naviManager.rebuild();\r\n }\r\n};\r\n\r\n\r\n//import * as codes from \"./commons/define/codes\";\r\n//import * as constant from \"./commons/define/constant\";\r\n//export const define = { codeValues, constant } ;\r\n\r\n\r\n\r\n//下記はdeprecated!!\r\n//export const views = {};\r\n//export const global = this;\r\n//export const enumerables = ['hasOwnProperty', 'valueOf', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'constructor'];\r\n\r\n///**\r\n// * \r\n// * @param {any} object\r\n// * @param {any} config\r\n// * @param {any} defaults\r\n// * @deprecated\r\n// */\r\n//export function apply(object, config, defaults) {\r\n// if (object && config && typeof config === 'object') {\r\n// let i, j, k;\r\n// for (i in config) {\r\n// object[i] = config[i];\r\n// }\r\n// if (enumerables) {\r\n// for (j = enumerables.length; j--;) {\r\n// k = enumerables[j];\r\n// if (config.hasOwnProperty(k)) {\r\n// object[k] = config[k];\r\n// }\r\n// }\r\n// }\r\n// }\r\n// return object;\r\n//}\r\n\r\n///**\r\n// * \r\n// * @param {any} ns_string\r\n// * @deprecated\r\n// */\r\n//export function namespace(ns_string) {\r\n\r\n\r\n// let parts = ns_string.split('.'), parent = SPIRIT, i;\r\n\r\n// if (parts[0] === 'SPIRIT') {\r\n// parts = parts.slice(1);\r\n// }\r\n\r\n// for (i = 0; i < parts.length; i += 1) {\r\n// if (typeof parent[parts[i]] === 'undefined') {\r\n// parent[parts[i]] = {};\r\n// }\r\n// parent = parent[parts[i]];\r\n// }\r\n// return parent;\r\n//}\r\n\r\n\r\n\r\n\r\n\r\n\r\n// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification\r\n// for details on configuring this project to bundle and minify static web assets.\r\n\r\n\r\n\r\n\r\n\r\n// Write your JavaScript code.\r\n//import { loading } from \"../ts/commons/loading\";\r\n//import Util from \"../ts/commons/util\";\r\n//import * as Dialog from \"../ts/commons/dialog\";\r\n//import { Notify, notifyOptions } from \"../ts/commons/notify\";\r\n//import { ModalBase } from \"../ts/commons/base/modalBase\";\r\n//import { PageBase } from \"../ts/commons/base/pageBase\";\r\n\r\n//import Business from \"../ts/commons/business\";\r\n//import Session from \"../ts/commons/session\";\r\n//import * as Codes from \"./commons/define/codes\";\r\n//import * as Enums from \"./commons/define/enums\";\r\n\r\n\r\n\r\n///**********************************************************************************\r\n// * private\r\n// **********************************************************************************/\r\n\r\n//let global = this;\r\n\r\n//const enumerables = [\r\n// 'hasOwnProperty',\r\n// 'valueOf',\r\n// 'isPrototypeOf',\r\n// 'propertyIsEnumerable',\r\n// 'toLocaleString',\r\n// 'toString',\r\n// 'constructor'\r\n//];\r\n\r\n\r\n\r\n////$(document).ajaxStart(function () {\r\n////});\r\n////$(document).ajaxComplete(function () {\r\n////});\r\n\r\n////==============================================================================================================\r\n//// プロジェクトnamespace定義\r\n////==============================================================================================================\r\n//export const SPIRIT = {\r\n// views: {},\r\n// global: global,\r\n// enumerables: enumerables,\r\n\r\n\r\n// /**\r\n// * \r\n// * @param {any} object\r\n// * @param {any} config\r\n// * @param {any} defaults\r\n// * @deprecated\r\n// */\r\n// apply: function (object, config, defaults) {\r\n\r\n// //if (defaults) {\r\n// // SPIRIT.apply(object, defaults);\r\n// //}\r\n\r\n// if (object && config && typeof config === 'object') {\r\n// let i, j, k;\r\n// for (i in config) {\r\n// object[i] = config[i];\r\n// }\r\n// if (enumerables) {\r\n// for (j = enumerables.length; j--;) {\r\n// k = enumerables[j];\r\n// if (config.hasOwnProperty(k)) {\r\n// object[k] = config[k];\r\n// }\r\n// }\r\n// }\r\n// }\r\n// return object;\r\n// },\r\n\r\n// /**\r\n// * \r\n// * @param {any} ns_string\r\n// * @deprecated\r\n// */\r\n// namespace: function (ns_string) {\r\n// let parts = ns_string.split('.'), parent = SPIRIT, i;\r\n\r\n// if (parts[0] === 'SPIRIT') {\r\n// parts = parts.slice(1);\r\n// }\r\n\r\n// for (i = 0; i < parts.length; i += 1) {\r\n// if (typeof parent[parts[i]] === 'undefined') {\r\n// parent[parts[i]] = {};\r\n// }\r\n// parent = parent[parts[i]];\r\n// }\r\n// return parent;\r\n// },\r\n\r\n\r\n// /**\r\n// * TODO\r\n// * このままだと、\r\n// * Loadingクラスがシングルトンではないため、\r\n// * SPRITをモジュールをimportしているところで\r\n// * 各々インスタンスを作成してし待っている.\r\n// * よって2重でかかることも想定される\r\n// */\r\n// loading: {\r\n// show: loading.show,\r\n// hide: loading.hide,\r\n// },\r\n\r\n// util: Util,\r\n// business: Business,\r\n// session: Session,\r\n// dialog: Dialog,\r\n// notify: Notify,\r\n// /***/\r\n// base: {\r\n// ModalBase: ModalBase,\r\n// PageBase: PageBase,\r\n// },\r\n\r\n// //define: {\r\n// // codeValues: CodeValues,\r\n// // //enums: Enums\r\n// //},\r\n\r\n// codes: Codes,\r\n\r\n// //↓なんか駄目らしい\r\n// //enums: Enums\r\n\r\n//};\r\n\r\n////export = SPIRIT;\r\n\r\n","import * as _ from \"lodash\";\r\nimport * as $ from \"jquery\";\r\nimport { Util } from \"./util\";\r\nimport { WorkBookBase } from \"./spread/spread\";\r\n\r\n\r\n\r\nclass AutoFit {\r\n /** */\r\n constructor() {\r\n this.init();\r\n }\r\n\r\n /** */\r\n private init() {\r\n //\r\n this.setEvents();\r\n };\r\n\r\n /** */\r\n private setEvents() {\r\n\r\n //ここでは実装しない!あくまで中枢のsite.tsにて実装(イベントの発動タイミングが前後する恐れがある)\r\n // $(window).off('resize', this.fitScreen.bind(this));\r\n // $(window).off('shown.bs.collapse', this.fitScreen.bind(this));\r\n // $(window).off('hidden.bs.collapse', this.fitScreen.bind(this));\r\n // $(window).off('completed.spirit.pageBase', this.fitScreen.bind(this));\r\n\r\n // $(window).on('resize', this.fitScreen.bind(this));\r\n // $(window).on('shown.bs.collapse', this.fitScreen.bind(this));\r\n // $(window).on('hidden.bs.collapse', this.fitScreen.bind(this));\r\n // $(window).on('completed.spirit.pageBase', this.fitScreen.bind(this));\r\n };\r\n\r\n /**\r\n * @param e\r\n */\r\n fitScreen(e?) {\r\n let components = $('[data-autofit]');\r\n components.each((i, comp) => {\r\n\r\n let $comp = $(comp);\r\n //DOM上で見えている物のみ\r\n if ($comp.is(':hidden')) { return; }\r\n\r\n // 要素の位置座標を取得\r\n let clientRect = comp.getBoundingClientRect();\r\n // 画面の左端から、要素の左端までの距離\r\n let x = clientRect.left;\r\n // 画面の上端から、要素の上端までの距離\r\n let y = clientRect.top;\r\n // ページの左端から、要素の左端までの距離(スクロール加味)\r\n var px = window.pageXOffset + clientRect.left;\r\n // ページの上端から、要素の上端までの距離(スクロール加味)\r\n var py = window.pageYOffset + clientRect.top;\r\n\r\n\r\n const _minHeight = 300;\r\n let autoFitMinHeight = $comp.data('autofitMinHeight') ? parseInt($comp.data('autofitMinHeight')) : null;\r\n let minHeight = autoFitMinHeight || _minHeight;\r\n let newHeight = minHeight\r\n\r\n //画面高さがminHeightよりも小さい場合はキャンセル(minHeightで調整)\r\n //if (window.innerHeight > y) {\r\n if (window.innerHeight > py) {\r\n //newHeight = window.innerHeight - y;\r\n newHeight = window.innerHeight - py;\r\n if (newHeight < minHeight) {\r\n newHeight = minHeight\r\n }\r\n newHeight = newHeight - 35;//Padding?? \r\n }\r\n\r\n //Extention\r\n let mobileHeight = $comp.data('mobileHeight') ? parseInt($comp.data('mobileHeight')) : null;\r\n if (Util.screenMode.isMobile()) {\r\n if (mobileHeight) {\r\n newHeight = mobileHeight\r\n }\r\n }\r\n\r\n $comp.height(newHeight);\r\n\r\n //spreadがある場合 リフレッシュする(wijmo-FlexGridは必要無要だ)\r\n\r\n //自身を含め,子要素も捜索[data-autofit]がGrid対象そのものについているわけではい!コンテナについていても動作するように....\r\n let spreads = $(comp).find('[gcuielement=\"gcSpread\"]').addBack().filter('[gcuielement=\"gcSpread\"]');\r\n spreads.each((i, elm) => {\r\n let $elm = $(elm);\r\n\r\n //対象コンテナの高さを調整したとて、Grid自体の高さが瞬時に変わるわけでない為、offsetParentのoverflowがvisibleのままだと、\r\n //scrollParentのscrollの表示有無に支障をきたす。\r\n //その為、最適化後のサイズでも、スクロールバーが残っており、その状態でrefreshしても、ちゃんとしたサイズに最適化されない\r\n //よって、親コンテナがoverflow:visibleだった場合に備え、一度強制的にoverflow:hiddenにして、スクロールバーの表示有無の最適化を行ってからrefreshする\r\n //(本当は全ての対象要素のscrollParentに対し掛けるべき!)\r\n //わざとoverflow-hidden(bootstrap)は使用せず、overflow-suspend(カスタム定義)を使用する(overflow-hiddenが既についている場合も考慮)\r\n //因みにbodyのoverflowをoverlay(外側にスクロール領域が出ない)にすればこの処理は不要!!\r\n\r\n $elm.addClass('overflow-suspend');\r\n\r\n if ($elm.data(WorkBookBase.DATA_KEY)) {\r\n const spread: WorkBookBase = $comp.data(WorkBookBase.DATA_KEY);\r\n spread?.refresh();\r\n } else {\r\n //Lucky!!spreadjsが内部で入れてくれている(基盤を使用していないケースが考えられるので...その為のバックアッププラン)\r\n $elm.data('workbook')?.refresh();\r\n }\r\n\r\n $elm.removeClass('overflow-suspend');\r\n\r\n });\r\n\r\n //\r\n $('body').trigger('autoFited.spirit', { target: components });\r\n\r\n });\r\n }\r\n}\r\n\r\n\r\n/** singleton */\r\nexport const _AutoFit = (function () {\r\n //documentのdataに隠ぺいし、いつでも使用できるようにする\r\n let _af: AutoFit = $(document).data('autoFit');\r\n if (!_af) {\r\n _af = new AutoFit();\r\n $(document).data('autoFit', _af);\r\n }\r\n return _af;\r\n})();\r\n","//この形式で再exportしないと、なぜだか、変数の型(typeとして使用できない)\r\nexport * from \"./pageBase\"\r\nexport * from \"./modalBase\"\r\nexport * from \"./spreadBase\"\r\nexport * from \"./functionLockControl\"\r\n\r\n","import * as _ from \"lodash\";\r\nimport * as SPIRIT from \"../../SPIRIT\";\r\n\r\n/**\r\n * 機能権限管理\r\n */\r\nexport class FunctionLockControl {\r\n\r\n static readonly timerContainerId: string = 'pgTimer';\r\n\r\n\r\n UserId: number;\r\n ProjectId: number;\r\n FunctionCode: string;\r\n\r\n LockInfo: {\r\n //FunctionLockId: null,\r\n //FunctionCode: '',\r\n //ProjectId: null,\r\n LockUserId: null,\r\n LockUserName: null,\r\n LockStartDateTime: null,\r\n };\r\n\r\n TimeoutMinutes: 0;\r\n\r\n pgTimer: SPIRIT.components.ProgressTimeSpan;\r\n $timerContainer: JQuery;\r\n\r\n public onStart: () => void;\r\n public onStateChange: (state: 'locked' | 'unlocked' | 'timeout') => void;\r\n\r\n /** */\r\n protected getInfoURL = '/CommonAPI/GetFunctionLockInfo';\r\n /** */\r\n protected lockURL = '/CommonAPI/FunctionLock';\r\n /** */\r\n protected unLockURL = '/CommonAPI/FunctionUnLock';\r\n\r\n\r\n /***/\r\n //now: Date;\r\n get nowMilliseconds() {\r\n //\r\n //return this.now.getTime();\r\n //リアルタイム参照\r\n return new Date().getTime();\r\n };\r\n\r\n /***/\r\n get startDateTime(): Date {\r\n if (!this.LockInfo?.LockStartDateTime) { return null; }\r\n return new Date(this.LockInfo.LockStartDateTime);\r\n };\r\n /***/\r\n get startDateMilliseconds(): number {\r\n //return (SPIRIT.util.date.isDate(this.startDateTime)) ? this.startDateTime.getMilliseconds() : 0;\r\n return (SPIRIT.util.date.isDate(this.startDateTime)) ? this.startDateTime.getTime() : 0;\r\n };\r\n /***/\r\n get validDateTime(): Date {\r\n //if (!this.FunctionLockInfo?.LockValidDateTime) { return null; }\r\n //return new Date(this.FunctionLockInfo.LockValidDateTime);\r\n var validDateTime = new Date(this.startDateTime);\r\n validDateTime.setMinutes(validDateTime.getMinutes() + this.TimeoutMinutes);\r\n return validDateTime;\r\n };\r\n\r\n /***/\r\n get validDateMilliseconds(): number {\r\n //return (SPIRIT.util.date.isDate(this.validDateTime)) ? this.validDateTime.getMilliseconds() : 0;\r\n return (SPIRIT.util.date.isDate(this.validDateTime)) ? this.validDateTime.getTime() : 0;\r\n };\r\n\r\n\r\n /***/\r\n get ToTalSecond() {\r\n //定義をそのまま使用する場合は下記(validDateTimeが仮に存在しないカラムの場合)\r\n //return this.TimeoutMinutes;\r\n //開始から終了までの差\r\n let interval = this.validDateMilliseconds - this.startDateMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval) / (1000));\r\n let cal = Math.floor(interval / (1000));\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /***/\r\n get ToTalMinutes() {\r\n //定義をそのまま使用する場合は下記(validDateTimeが仮に存在しないカラムの場合)\r\n //return this.TimeoutMinutes;\r\n //開始から終了までの差\r\n let interval = this.validDateMilliseconds - this.startDateMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval) / (60 * 1000));\r\n let cal = Math.floor(interval / (60 * 1000));\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /**制限時間までの秒を返す*/\r\n public get LimitMilliSeconds() {\r\n let interval = this.validDateMilliseconds - this.nowMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval));\r\n let cal = Math.floor(interval);\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /**制限時間までの秒を返す*/\r\n public get LimitSeconds() {\r\n let interval = this.validDateMilliseconds - this.nowMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval) / 1000);\r\n let cal = Math.floor(interval / 1000);\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /**制限時間までの分を返す*/\r\n public get LimitMinutes() {\r\n let interval = this.validDateMilliseconds - this.nowMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval) / (60 * 1000));\r\n let cal = Math.floor(interval / (60 * 1000));\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /**\r\n * \r\n * @param userId\r\n * @param functionCode\r\n * @param projectId マスタ計はNULL\r\n * @param timeoutMinutes\r\n */\r\n constructor(userId: number, functionCode: string, projectId?: number) {\r\n this.UserId = userId;\r\n this.ProjectId = projectId;\r\n this.FunctionCode = functionCode;\r\n }\r\n\r\n /***/\r\n public get IsEffective() {\r\n //ロック情報がない場合はfalse\r\n return (_.isNil(this.LockInfo)) ? false : true;\r\n }\r\n\r\n /***/\r\n public get IsLocked() {\r\n //ロック情報がない場合はfalse\r\n if (!this.IsEffective) return false;\r\n //return (this.nowMilliseconds < this.validDateMilliseconds) ? true : false;\r\n\r\n //タイマーの判断基準にあわせ、milli秒で無く秒で判定\r\n //残り秒数判定\r\n let interval = this.validDateMilliseconds - this.nowMilliseconds;\r\n let cal = Math.floor(interval / 1000);\r\n\r\n return cal > 0;\r\n }\r\n\r\n /**自身がロックしているか*/\r\n public get IsLockedSelf() {\r\n //ロック情報がない場合はfalse\r\n if (this.IsLocked) {\r\n return this.LockInfo.LockUserId === this.UserId;\r\n }\r\n return false;\r\n }\r\n\r\n /**他の人がロックしているか*/\r\n public get IsLockedOthers() {\r\n //ロック情報がない場合はfalse\r\n if (this.IsLocked) {\r\n return this.LockInfo.LockUserId != this.UserId;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n\r\n /** 初期化*/\r\n async initialize() {\r\n return new Promise((resolve, reject) => {\r\n //#4085 抽象的な名称に変更\r\n //this.getFunctionLock().then((source: { FunctionLockInfo, TimeoutMinutes }) => {\r\n this.getFunctionLock().then((source: { LockInfo, TimeoutMinutes }) => {\r\n //{ FunctionLockInfo = functionLockInfo, TimeoutMinutes = timeoutMinutes }\r\n if (source) {\r\n //#4085 抽象的な名称に変更\r\n //this.LockInfo = source.FunctionLockInfo;\r\n this.LockInfo = source.LockInfo;\r\n this.TimeoutMinutes = source.TimeoutMinutes;\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n /** 起動*/\r\n async start() {\r\n return new Promise((resolve, reject) => {\r\n //タイマー作成\r\n this.makeTimer();\r\n if (this.onStart) {\r\n this.onStart();\r\n }\r\n resolve();\r\n });\r\n }\r\n\r\n /** 再起動*/\r\n async reload() {\r\n return new Promise((resolve, reject) => {\r\n this.pgTimer?.destroy();\r\n this.pgTimer = null;\r\n\r\n this.initialize().then(() => {\r\n return this.start();\r\n }).then(() => {\r\n resolve();\r\n });\r\n\r\n });\r\n }\r\n\r\n /** */\r\n destroy() {\r\n this.pgTimer?.destroy();\r\n this.pgTimer = null;\r\n this.LockInfo = null;\r\n this.TimeoutMinutes = null;\r\n }\r\n\r\n private makeTimer() {\r\n //対象がない場合は動きません\r\n this.$timerContainer = $('#' + FunctionLockControl.timerContainerId);\r\n if (this.$timerContainer.length > 0) {\r\n if (this.IsLocked) {\r\n this.pgTimer?.destroy();\r\n\r\n this.pgTimer = new SPIRIT.components.ProgressTimeSpan('#' + FunctionLockControl.timerContainerId, this.startDateTime, this.validDateTime, { height: 10, width: 150, interval: 1000 });\r\n this.pgTimer.onTick = this.onTick.bind(this);\r\n this.pgTimer.onTickedLabel = this.onTickedLabel;\r\n this.pgTimer.onTimeOut = this.onTimeOutFork.bind(this);\r\n\r\n ////一旦0に\r\n //this.pgTimer.current = 0;\r\n this.pgTimer.start();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param c\r\n */\r\n onTick(second) {\r\n\r\n //他人がロックしている場合は解除監視を行う\r\n if (this.IsLockedOthers) {\r\n //都度チェック\r\n this.checkFunctionLock().then((lockeInfo: { isLocked, isLockedSelf, isLockedOthers }) => {\r\n //console.log(lockeInfo);\r\n //console.log('checking.....unlocked');\r\n //Start時の状態比べる(基本他の人の状態変化を返す)\r\n if (this.IsLockedOthers) {\r\n if (!lockeInfo.isLockedOthers) {\r\n //console.log('unlocked!!!!');\r\n this.onStateChange?.call(this, 'unlocked');\r\n }\r\n } else {\r\n //コッチは基本ない(他人がロックしている場合は解除監視を行ので、起動時にロック掛かってない場合は監視しないので...)\r\n if (lockeInfo.isLockedOthers) {\r\n this.onStateChange?.call(this, 'locked');\r\n }\r\n }\r\n });\r\n }\r\n\r\n return second;\r\n }\r\n\r\n /**\r\n * \r\n * @param c\r\n */\r\n onTickedLabel(second) {\r\n var daysLeft = Math.floor(second / (24 * 60 * 60));\r\n var hoursLeft = (Math.floor(second / (60 * 60))) % 24;\r\n var minitesLeft = (Math.floor(second / 60)) % 60;\r\n var secondsLeft = Math.floor(second) % 60;\r\n // 二桁表示\r\n //var padMinitesLefts= (\"0\" + minitesLeft).slice(-2);\r\n //var padSecondsLefts = (\"0\" + secondsLeft).slice(-2);\r\n\r\n let cap = \"\";\r\n if (daysLeft) { cap += daysLeft + \"日\"; }\r\n if (hoursLeft) { cap += hoursLeft + \"時間\"; }\r\n if (minitesLeft) { cap += minitesLeft + \"分\"; }\r\n if (secondsLeft) { cap += secondsLeft + \"秒\"; }\r\n if (cap) {\r\n cap = \"残り: \" + cap\r\n }\r\n return cap || ' ';\r\n }\r\n\r\n /**\r\n * \r\n * @param c\r\n */\r\n onTimeOutFork() {\r\n //console.log('onTimeOutFork');\r\n this.onStateChange?.call(this, 'timeout');\r\n }\r\n\r\n /**\r\n * FunctionLock情報情報の取得\r\n */\r\n protected async getFunctionLock() {\r\n return new Promise((resolve, reject) => {\r\n //FunctionCodeの指定がある場合,ロック情報取得しに行く\r\n if (this.FunctionCode) {\r\n //var url = '/CommonAPI/GetFunctionLockInfo';\r\n var url = this.getInfoURL;\r\n\r\n //param\r\n var data: any = { functionCode: this.FunctionCode, projectId: this.ProjectId };\r\n SPIRIT.util.getData(url, data).\r\n then((source) => {\r\n //console.log('----FunctionLock----');\r\n //{ FunctionLockInfo = functionLockInfo, TimeoutMinutes = timeoutMinutes }\r\n //console.log(source);\r\n resolve(source);\r\n });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param functionCode\r\n * @param projectId\r\n */\r\n public async doFunctionLock() {\r\n return new Promise((resolve, reject) => {\r\n //TODO 最新の画面データを取得するべきか?\r\n this.functionLockUnlockReqest(true, this.FunctionCode, this.ProjectId).then((ret: any) => {\r\n this.reload().then(() => {\r\n //if (ret.Data && ret.Data?.Status === 'Error') {\r\n // // '他ユーザ({0} さん)が編集中のため、ロックできません。'\r\n // SPIRIT.notify.warn(SPIRIT.util.getMessage(SPIRIT.message.MSG_W_00008, [ret.Data?.FunctionLockInfo?.LockUserName]), { position: 'bottom right' });\r\n //} else {\r\n // // 'ロックしました。'\r\n // SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00003), { position: 'bottom right' });\r\n //}\r\n resolve(ret);\r\n });\r\n });\r\n\r\n });\r\n }\r\n\r\n /**\r\n * \r\n * @param functionCode\r\n * @param projectId\r\n */\r\n public async doFunctionUnLock() {\r\n return new Promise((resolve, reject) => {\r\n this.functionLockUnlockReqest(false, this.FunctionCode, this.ProjectId).then((ret: any) => {\r\n this.reload().then(() => {\r\n //// ロック解除しました。'\r\n //SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00004), { position: 'bottom right' });\r\n resolve(ret);\r\n });\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @param functionCode\r\n * @param projectId\r\n */\r\n protected async functionLockUnlockReqest(lock: boolean, functionCode: string, projectId?: number) {\r\n //let url = lock ? '/CommonAPI/FunctionLock' : '/CommonAPI/FunctionUnLock';\r\n let url = lock ? this.lockURL : this.unLockURL;\r\n\r\n return new Promise((resolve: any, reject: any) => {\r\n //FunctionCodeの指定がある場合,ロック情報取得しに行く\r\n if (this.FunctionCode) {\r\n SPIRIT.util.ajax({\r\n url: url,\r\n type: 'GET',\r\n data: { functionCode: this.FunctionCode, projectId: projectId },\r\n }).then((res) => {\r\n let ret = JSON.parse(res);\r\n resolve(ret);\r\n }).catch(e => {\r\n reject(e);\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * 最新のロック状態をチェック\r\n */\r\n async checkFunctionLock() {\r\n return new Promise((resolve, reject) => {\r\n //#4085 抽象的な名称に変更\r\n //this.getFunctionLock().then((source: { FunctionLockInfo, TimeoutMinutes }) => {\r\n this.getFunctionLock().then((source: { LockInfo, TimeoutMinutes }) => {\r\n let lockeInfo =\r\n {\r\n isLocked: false,\r\n isLockedSelf: false,\r\n isLockedOthers: false\r\n }\r\n //{ FunctionLockInfo = functionLockInfo, TimeoutMinutes = timeoutMinutes }\r\n if (source) {\r\n //#4085 抽象的な名称に変更\r\n //var LockInfo = source.FunctionLockInfo;\r\n var LockInfo = source.LockInfo;\r\n var TimeoutMinutes = source.TimeoutMinutes;\r\n if (LockInfo && LockInfo?.LockStartDateTime) {\r\n var startDateTime = new Date(LockInfo.LockStartDateTime);\r\n var validDateTime = new Date(startDateTime);\r\n validDateTime.setMinutes(validDateTime.getMinutes() + TimeoutMinutes);\r\n //タイマーの判断基準にあわせ、milli秒で無く秒で判定\r\n //残り秒数判定\r\n let interval = validDateTime.getTime() - Date.now();\r\n let cal = Math.floor(interval / 1000);\r\n //残りの時間がある場合は\r\n lockeInfo.isLocked = cal > 0;\r\n\r\n if (lockeInfo.isLocked) {\r\n if (LockInfo.LockUserId === this.UserId) {\r\n lockeInfo.isLockedSelf = true;\r\n } else {\r\n lockeInfo.isLockedOthers = true;\r\n }\r\n }\r\n }\r\n }\r\n resolve(lockeInfo);\r\n });\r\n });\r\n }\r\n\r\n\r\n //private nObserveIntervId;\r\n ///**\r\n // * 別で通信してロック状態を取得し、監視する(通信を圧迫するなら、やめる)\r\n // * @deprecated\r\n // */\r\n //observe() {\r\n // //ハートビート間隔(5秒)\r\n // this.nObserveIntervId = setInterval(() => {\r\n // this.checkFunctionLock().then((lockeInfo: { isLocked, isLockedSelf, isLockedOthers }) => {\r\n // console.log('Heart Beat:' + lockeInfo.isLocked);\r\n // console.log(lockeInfo);\r\n // if (!lockeInfo.isLocked) {\r\n // //ロック解除されたら強制終了\r\n // }\r\n // });\r\n // }, 5000);\r\n //}\r\n\r\n ///** \r\n // * 監視をやめる\r\n // * @deprecated\r\n // */\r\n //observeStop() {\r\n // try {\r\n // clearInterval(this.nObserveIntervId);\r\n // } catch (e) {\r\n // //noop\r\n // }\r\n //}\r\n\r\n\r\n}","import * as $ from \"jquery\";\r\nimport * as GC from '../../grapecity';\r\nimport { Spread } from \"../../grapecity\";\r\nimport * as SPIRIT from \"../../SPIRIT\";\r\nimport * as _ from \"lodash\";\r\n\r\n\r\n//TODO MODALの基盤はのちに改修!!(ライフサイクル、メソッド名,Promiseモデルの採用)\r\n\r\n/**\r\n * \r\n * \r\n */\r\nexport abstract class ModalBase {\r\n\r\n //\r\n static readonly DATA_KEY = 'SPIRIT';\r\n //\r\n static readonly DATA_ATTR = 'data-spirit-modal';\r\n //\r\n static readonly INSTANCE_RETAINER = '[' + ModalBase.DATA_ATTR + ']';\r\n\r\n static readonly CLASS_DO_NOT_RELEASE = 'modal-do-not-release';\r\n\r\n\r\n\r\n /**\r\n * modalのインスタンス\r\n */\r\n protected modal: GC.wjcInput.Popup = null;\r\n //protected modal: any = null;\r\n\r\n /**\r\n * コントロールをホストするDOM要素、またはホスト要素のCSS セレクター(例: '#theCtrl')。\r\n */\r\n //protected content: Element | string = null;\r\n protected content: any = null;\r\n\r\n /**\r\n *\r\n */\r\n protected options: any = null;\r\n\r\n /**\r\n * \r\n */\r\n protected static readonly defaultOption = {\r\n isDraggable: true,\r\n showTrigger: GC.wjcInput.PopupTrigger.None,\r\n hideTrigger: GC.wjcInput.PopupTrigger.None,\r\n };\r\n\r\n /**\r\n */\r\n protected promise: Promise;\r\n\r\n /**\r\n */\r\n protected _IsInitialized: boolean = false;\r\n\r\n /**\r\n * ESCでcloseしまう動作をキャンセル\r\n */\r\n public cancelESCKeyClose: boolean;\r\n\r\n /**\r\n */\r\n get isShow() {\r\n return this.modal?.isVisible;\r\n }\r\n\r\n\r\n /**\r\n * 初期化終了(エラーがあっても終了したらTrue)\r\n */\r\n public get IsInitialized() {\r\n return this._IsInitialized;\r\n }\r\n\r\n /**/\r\n protected _isAbort = false;\r\n /**\r\n * 初期失敗\r\n */\r\n public get isAbort() {\r\n return this._isAbort;\r\n }\r\n\r\n /**\r\n * 編集されたかどうか\r\n */\r\n public isEdited = false;\r\n\r\n /**\r\n * dialogResult\r\n */\r\n public get dialogResult(): any {\r\n //if (this.modal.dialogResult) {\r\n // if (this.modal.dialogResult == 'wj-hide-ok') {\r\n // return 'ok';\r\n // } else if (this.modal.dialogResult == 'wj-hide-no') {\r\n // return 'no';\r\n // } else if (this.modal.dialogResult == 'wj-hide-cancel') {\r\n // return 'cancel';\r\n // }\r\n //}\r\n return this.modal.dialogResult;\r\n }\r\n\r\n /**\r\n * 準備完了(外部ハントリング用のイベント)\r\n * 初期化失敗時にはisAbortがTureである\r\n */\r\n public onCompleted: (Popup: ModalBase, isAbort: boolean) => void;\r\n\r\n /**\r\n * show前のイベント\r\n */\r\n public onShow: (Popup: ModalBase, CancelEventArgs: GC.wijmo.CancelEventArgs) => boolean = null;\r\n\r\n /**\r\n * show後のイベント\r\n */\r\n public onShown: (Popup: ModalBase, EventArgs: GC.wijmo.EventArgs) => void = null;\r\n\r\n /**\r\n * close前のイベント\r\n */\r\n public onClose: (Popup: ModalBase, CancelEventArgs: GC.wijmo.CancelEventArgs) => boolean = null;\r\n\r\n /**\r\n * close後のイベント\r\n */\r\n public onClosed: (Popup: ModalBase, EventArgs: GC.wijmo.EventArgs) => void = null;\r\n\r\n\r\n /**\r\n * \r\n * @param options\r\n * @param doRun\r\n */\r\n constructor(options?: any, doRun = true, cancelESCKeyClose = false) {\r\n this.options = options;\r\n //子クラス独自のコンストラクタパラメータがある場合に困ることになるだろう!\r\n //その場合は子クラスのコンストラクタにて,doRun=falsにして、当コンストラクタを呼び、\r\n this.cancelESCKeyClose = cancelESCKeyClose;\r\n if (doRun) {\r\n this.run();\r\n }\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public run() {\r\n\r\n this.promise = new Promise((resolve, reject) => {\r\n console.log('1 : Modal initialize Start!!');\r\n resolve();\r\n }).then(() => {\r\n\r\n return new Promise((resolve, reject) => {\r\n console.log('2 : initialize!!');\r\n this.initialize(resolve, reject);\r\n });\r\n }).then(($contents) => {\r\n this.content = $contents;\r\n return new Promise((resolve, reject) => {\r\n console.log('3 : initializePopUp!!');\r\n this.initializePopUp(resolve, reject);\r\n });\r\n }).then(() => {\r\n //TODO [Just in case!!]--今後の状況を見て、下記の存在価値は評価する\r\n //インスタンス生成とともに、表示しようとした際にDOMが無いとよろしくないので、\r\n //内部処理なしで、DOMReadyを保証はしておく\r\n return new Promise((resolve, reject) => {\r\n $(() => {\r\n console.log('XX : DOM created!! ');\r\n resolve();\r\n });\r\n });\r\n\r\n }).then(() => {\r\n return new Promise((resolve, reject) => {\r\n console.log('4 : build!!');\r\n this.build(resolve, reject);\r\n });\r\n }).then(() => {\r\n return new Promise((resolve, reject) => {\r\n console.log('5 : setEvent!!');\r\n this.setEvent(resolve, reject);\r\n });\r\n }).then(() => {\r\n console.log('6 : initialize end!!');\r\n //return new Promise((resolve, reject) => {\r\n //});\r\n\r\n }).catch((ex) => {\r\n this._isAbort = true;\r\n //TODO system Error\r\n //common process\r\n console.log('Error!!');\r\n if (ex instanceof Error) {\r\n console.log(ex.message);\r\n } else {\r\n console.log(ex);\r\n }\r\n\r\n }).finally(() => {\r\n //インスタンスを保持する\r\n this.retainInstance();\r\n this._IsInitialized = true;\r\n\r\n console.log('7 : completed');\r\n //準備完了\r\n this.completedFork();\r\n\r\n console.log('--------------------------');\r\n console.log('8 : deffereLoad!!');\r\n new Promise((resolve, reject) => {\r\n this.deffereLoad(resolve, reject);\r\n }).catch((ex) => {\r\n console.log('deffereLoad Error!!');\r\n if (ex instanceof Error) {\r\n console.log(ex.message);\r\n } else {\r\n console.log(ex);\r\n }\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * コンテントの生成を行うレイアウトのみ(レイアウトデータ取得の為の通信や大枠のDOMを生成する)\r\n * @param resolve\r\n * @param reject\r\n */\r\n protected abstract async initialize(resolve, reject);\r\n //protected abstract async initialize(resolve: (content: HTMLElement | JQuery) => void, reject);\r\n //protected abstract initialize(cb: (elem) => void);\r\n\r\n /**\r\n * \r\n * @param resolve\r\n * @param reject\r\n */\r\n protected initializePopUp(resolve, reject) {\r\n //protected initializePopUp() {\r\n //イベントFork\r\n const events = {\r\n showing: (p: GC.wjcInput.Popup, e: GC.wijmo.CancelEventArgs) => {\r\n let ret = true;\r\n if (this.onShow) {\r\n ret = this.onShow.call(this, this, e);\r\n ret = (ret) ? e.cancel : ret;\r\n }\r\n return ret;\r\n },\r\n\r\n shown: (p: GC.wjcInput.Popup, e: GC.wijmo.EventArgs) => {\r\n //#3370 \r\n this.bodyOverflowControl(true);\r\n\r\n this.onShown?.call(this, this, e);\r\n },\r\n\r\n hiding: (p: GC.wjcInput.Popup, e: GC.wijmo.CancelEventArgs) => {\r\n //編集未確定確認\r\n SPIRIT.business.page.confirmCloseModal((result) => {\r\n //\r\n if (result === \"ok\") {\r\n let ret = true;\r\n if (this.onClose) {\r\n ret = this.onClose.call(this, this, e);\r\n //ret = (ret) ? e.cancel : ret;\r\n ////falseが帰ってきたらキャンセルする\r\n //e.cancel = (ret === false) ? true : false;\r\n\r\n //キャンセルがfalse\r\n if (e.cancel === false) {\r\n //falseが帰ってきたらキャンセルする(戻り値優先)\r\n e.cancel = (ret === false) ? true : false;\r\n }\r\n\r\n }\r\n //return ret;\r\n } else {\r\n //閉じない\r\n //return e.cancel = true;\r\n e.cancel = true;\r\n }\r\n }, this);\r\n },\r\n\r\n hidden: (p: GC.wjcInput.Popup, e: GC.wijmo.EventArgs) => {\r\n //#3370 \r\n this.bodyOverflowControl(false);\r\n\r\n this.onClosed?.call(this, this, e);\r\n }\r\n }\r\n\r\n //念のためjquery変換\r\n this.content = $(this.content);\r\n //#2587 閉じれないモーダル(dissmissがない)で、ESCkey押下で閉じれてしまう\r\n //escKeyキャンセラーのバインド\r\n this.escapeKeyCanceler();\r\n\r\n //デフォルトでは、showTrigger プロパティはPopupTrigger.ClickOwner に設定されており、 オーナー要素をクリックすると、ポップアップが表示されます。\r\n //showTrigger プロパティをPopupTrigger.None に設定すると、 ポップアップはshow メソッドを呼び出すのみで表示されます。\r\n //loadsh(_.defaults)を使用する場合は,引数の順序が逆になるので注意が必要です\r\n //const _options = jQuery.extend(true, {}, ModalBase.defaultOption, this.options);\r\n\r\n // #3071 モーダル内のコンテンツが長い場合にモーダルフッターが表示されない\r\n // モバイルでモーダルを移動することは現実的に厳しいので一旦移動できないようにする\r\n if (SPIRIT.util.userAgent.isMobile()) {\r\n ModalBase.defaultOption.isDraggable = false;\r\n\r\n //#3349 スクロール出来ないくなってしまうので有効にする\r\n //// モーダルbody内でのスクロールを一旦できないようにする\r\n //// どうやらiPhone(safari)と相性が悪い!!!wijmoも関係してそうな気はするが。。。\r\n //this.content.removeClass('modal-dialog-scrollable');\r\n }\r\n\r\n const _options = jQuery.extend(true, {}, ModalBase.defaultOption, this.options, events);\r\n // create forms\r\n this.modal = new GC.wjcInput.Popup(this.content, _options);\r\n\r\n\r\n resolve();\r\n }\r\n\r\n /**\r\n * PopUp中のコンテンツ(initializeCententで生成したcontainer)の実際の中身のインスタンス化及び生成\r\n * @param resolve\r\n * @param reject\r\n */\r\n protected abstract build(resolve, reject);\r\n //protected abstract build();\r\n\r\n\r\n /**\r\n * イベントのバインド等を行える\r\n * @param resolve\r\n * @param reject\r\n */\r\n protected setEvent(resolve, reject) {\r\n //protected setEvent() {\r\n $.noop();\r\n resolve();\r\n }\r\n\r\n /**\r\n * 遅延処理などを実行する\r\n * 画面のメインの制御とは関係しない、MashUpコンテンツ等ののレンダリングに使用する\r\n * 全てのライフサイクルが最後に実施されます\r\n * @description\r\n * @override\r\n * @param resolve\r\n * @param reject\r\n */\r\n protected deffereLoad(resolve, reject) {\r\n resolve();\r\n }\r\n\r\n /**\r\n * 準備完了\r\n */\r\n private completedFork() {\r\n //準備完了\r\n this.completed();\r\n // 準備完了(外部ハントリング用のイベント)\r\n if (this.onCompleted) {\r\n this.onCompleted(this, this.isAbort);\r\n }\r\n };\r\n\r\n /**\r\n * 準備完了\r\n */\r\n protected completed() { };\r\n\r\n /**\r\n * インスタンスを保持する\r\n */\r\n retainInstance() {\r\n //コンテンツに識別用属性をつける\r\n this.content?.attr(ModalBase.DATA_ATTR, '');\r\n //let RETAINER: JQuery = $(ModalBase.INSTANCE_RETAINER);\r\n let RETAINER: JQuery = this.content;\r\n if (RETAINER.length == 0) {\r\n RETAINER = $(document);\r\n }\r\n RETAINER.data(ModalBase.DATA_KEY, this);\r\n }\r\n\r\n /**\r\n * @description \r\n */\r\n destroy() {\r\n //#4468\r\n //let RETAINER: JQuery = $(ModalBase.INSTANCE_RETAINER);\r\n let RETAINER: JQuery = this.content;\r\n if (RETAINER.length == 0) {\r\n RETAINER = $(document);\r\n }\r\n this.close(null);\r\n RETAINER.data(ModalBase.DATA_KEY, null);\r\n }\r\n\r\n /**\r\n * \r\n * @param modalFlag モーダルフラグ\r\n */\r\n show(modalFlag?) {\r\n if (this.isAbort) { return; }\r\n if (this.modal && this.content && this.IsInitialized) {\r\n if (modalFlag === false) {\r\n // falseの場合、モーダレス\r\n this.modal.show(false);\r\n } else {\r\n this.modal.show(true);\r\n }\r\n } else {\r\n //#1155 準備出来てない場合リトライ\r\n this.promise.then(() => {\r\n this.show(modalFlag);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * @param dialogResult\r\n */\r\n close(dialogResult?: any) {\r\n\r\n this.modal.hide(dialogResult);\r\n }\r\n\r\n\r\n /**\r\n * escで閉じてしまう動作をキャンセル\r\n */\r\n escapeKeyCanceler() {\r\n $(this.content).on(\"keydown\", (e) => {\r\n if (e.keyCode == GC.wijmo.Key.Escape) {\r\n if (this.cancelESCKeyClose) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Modal表示条件下においてはBodyのスクロールはしない\r\n * iosでは、場合によって動作しないかのしれないが、現状は動作しているので入れておく\r\n * bootstrapでは、Bodyに対してoverflowを制御を掛けるの対し、wijmoはない為 同様の処理を追加\r\n * @param block\r\n */\r\n bodyOverflowControl(blocking) {\r\n if (blocking) {\r\n $('body').addClass('modal-open');\r\n } else {\r\n //複数モーダルが同時表示される場合があるので、\r\n //自分以外で表示されているモーダルがある場合はクラスを外さない!\r\n let $modals = $(ModalBase.INSTANCE_RETAINER);\r\n let count = 0;\r\n $modals.each((i, modal) => {\r\n let ins: ModalBase = $(modal).data(ModalBase.DATA_KEY);\r\n //#4468\r\n //if (ins != this) {\r\n if (ins && ins != this) {\r\n if (ins.isShow) {\r\n count++;\r\n }\r\n }\r\n });\r\n if (count === 0) {\r\n $('body').removeClass('modal-open');\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * エラー情報をソートする\r\n * @param spread\r\n * @param spreadName\r\n * @param row\r\n * @param col\r\n * @param colName\r\n * @param messages\r\n */\r\n protected sortErrorInfo(spreadInfoList: Array, errorInfoList: Array): Array {\r\n\r\n const spreadOrder = {};\r\n\r\n spreadInfoList.forEach((spreadInfo, index) => {\r\n spreadOrder[spreadInfo.spreadName] = index;\r\n });\r\n\r\n // 並び順を指定のSpread > 行 > 列 で並べる\r\n errorInfoList.sort((a, b) => {\r\n\r\n const spreadOrderA = spreadOrder[a.spreadName];\r\n const spreadOrderB = spreadOrder[b.spreadName];\r\n const rowA = a.row;\r\n const rowB = b.row;\r\n const colA = a.col;\r\n const colB = b.col;\r\n\r\n // Spread\r\n if (spreadOrderA < spreadOrderB) { return -1; }\r\n if (spreadOrderA > spreadOrderB) { return 1; }\r\n\r\n // 行\r\n if (rowA < rowB) { return -1; }\r\n if (rowA > rowB) { return 1; }\r\n\r\n // 列\r\n if (colA < colB) { return -1; }\r\n if (colA > colB) { return 1; }\r\n\r\n return 0;\r\n\r\n });\r\n\r\n return errorInfoList;\r\n }\r\n\r\n /**\r\n * エラー情報を作成して返却する\r\n * @param spread\r\n * @param spreadName\r\n * @param row\r\n * @param col\r\n * @param colName\r\n * @param messages\r\n */\r\n protected createErrorInfo(spread: Spread.Sheets.Workbook, spreadName, row, col, colName, messages): SPIRIT.interfaces.IErrorInfo {\r\n const errorInfo: SPIRIT.interfaces.IErrorInfo = {\r\n spread: spread,\r\n spreadName: spreadName,\r\n row: row,\r\n col: col,\r\n colName: colName,\r\n messages: messages\r\n };\r\n return errorInfo;\r\n }\r\n\r\n /**\r\n * 指定されたプロパティの値をtrimする\r\n * @param array\r\n * @param targetPropertyNameList\r\n */\r\n doTrimValue(array: any[], targetPropertyNameList: string[]) {\r\n\r\n const result = _.cloneDeep(array);\r\n\r\n targetPropertyNameList.forEach((propertyName) => {\r\n result.forEach((item) => {\r\n if (item[propertyName]) {\r\n item[propertyName] = item[propertyName].trim();\r\n }\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import { debug } from \"console\";\r\nimport * as _ from \"lodash\";\r\nimport { Excel, Spread } from \"../../grapecity\";\r\nimport * as SPIRIT from \"../../SPIRIT\";\r\nimport * as DATEFNS from 'date-fns';\r\n\r\n/**\r\n * サマリ集計に必要なプラントID、カテゴリIDのリスト\r\n * */\r\nexport interface PlantCategoryList {\r\n PlantId: any,\r\n CategoryId: any\r\n}\r\n\r\n\r\n\r\nexport interface FuncitonLockAttribute {\r\n lockedClass: string,\r\n lockingClass: string\r\n unLockedClass: string\r\n}\r\n\r\n\r\n/**\r\n * 業務ページ基底クラス\r\n */\r\nexport abstract class PageBase {\r\n\r\n //\r\n static readonly DATA_KEY = 'SPIRIT';\r\n\r\n //\r\n static readonly INSTANCE_RETAINER = '#body-container';\r\n\r\n /**\r\n * \r\n */\r\n private promise: Promise;\r\n\r\n /**\r\n * \r\n */\r\n protected _IsInitialized: boolean = false;\r\n\r\n /**\r\n * \r\n * \r\n */\r\n $btnFuncitonLock: JQuery;\r\n\r\n\r\n /**/\r\n funcitonLockAttr: FuncitonLockAttribute = {\r\n lockedClass: 'btn-spirit',\r\n lockingClass: 'btn-secondary',\r\n unLockedClass: 'btn-primary'\r\n }\r\n\r\n /**\r\n * 初期化終了(エラーがあっても終了したらTrue)\r\n */\r\n get IsInitialized() {\r\n return this._IsInitialized;\r\n }\r\n\r\n /**/\r\n protected _isAbort = false;\r\n /**\r\n * 失敗\r\n */\r\n get isAbort() {\r\n return this._isAbort;\r\n }\r\n\r\n /**\r\n * 編集されたかどうか\r\n */\r\n public isEdited = false;\r\n\r\n /***/\r\n public functionCode: string;\r\n\r\n /** プロジェクトに属さないページかどうか(マスタ等)*/\r\n public isNoneProject: boolean;\r\n\r\n /***/\r\n public functionLockControl: SPIRIT.base.FunctionLockControl;\r\n\r\n /**\r\n * 権限による画面編集可能かどうか\r\n */\r\n get isEditable(): boolean {\r\n return SPIRIT.session.FuncAuth.isAllowed(this.functionCode, true);\r\n }\r\n\r\n /**\r\n * 準備完了(外部ハントリング用のイベント)\r\n * 初期化失敗時にはisAbortがTureである\r\n */\r\n public onCompleted: (page: PageBase, isAbort: boolean) => void;\r\n\r\n /**\r\n * ctor\r\n * @constructor\r\n * @param functionCode\r\n * @param isNoneProject\r\n */\r\n constructor(functionCode?: string, isNoneProject?: boolean) {\r\n this.functionCode = functionCode;\r\n this.isNoneProject = (isNoneProject === true) ? true : false;\r\n\r\n // //本来はコンストラクタでrunしたい。ただし、その実装だと、派生クラスの先頭でbase.runしなければないため、固有の引数を使って、buildすることができない\r\n //this.run();\r\n }\r\n\r\n /**\r\n * run\r\n */\r\n run() {\r\n console.log('====================================');\r\n this.promise = new Promise((resolve, reject) => {\r\n console.log('1 : start!!');\r\n resolve();\r\n }).then(() => {\r\n console.log('2 : preProcess!!');\r\n return new Promise((resolve, reject) => {\r\n this.preProcess(resolve, reject);\r\n });\r\n }).then(() => {\r\n console.log('3 : initialize!!');\r\n return new Promise((resolve, reject) => {\r\n this.initialize(resolve, reject);\r\n });\r\n\r\n }).then(() => {\r\n console.log('4 : onReady!! (DOM created!!) ');\r\n return new Promise((resolve, reject) => {\r\n this.onReady(resolve, reject);\r\n\r\n ////$(function () {\r\n //$(() => {\r\n // //resolve();\r\n // this.ready(resolve, reject);\r\n //});\r\n\r\n });\r\n }).then(() => {\r\n console.log('5 : build!!');\r\n return new Promise((resolve, reject) => {\r\n this.build(resolve, reject);\r\n });\r\n\r\n }).then(() => {\r\n console.log('6 : setEvents!!');\r\n return new Promise((resolve, reject) => {\r\n this.setEvents(resolve, reject);\r\n });\r\n\r\n }).then(() => {\r\n console.log('7 : finalProcess!!');\r\n return new Promise((resolve, reject) => {\r\n this.finalProcess(resolve, reject);\r\n });\r\n\r\n }).catch((ex) => {\r\n this._isAbort = true;\r\n //TODO system Error\r\n //common process\r\n console.log('Error!!');\r\n if (ex instanceof Error) {\r\n console.log(ex.message);\r\n } else {\r\n console.log(ex);\r\n }\r\n\r\n }).finally(() => {\r\n //インスタンスを保持する\r\n this.retainInstance();\r\n this._IsInitialized = true;\r\n\r\n console.log('7 : completed');\r\n //準備完了\r\n this.completedFork();\r\n\r\n console.log('--------------------------');\r\n console.log('8 : deffereLoad!!');\r\n new Promise((resolve, reject) => {\r\n this.deffereLoad(resolve, reject);\r\n }).catch((ex) => {\r\n console.log('deffereLoad Error!!');\r\n if (ex instanceof Error) {\r\n console.log(ex.message);\r\n } else {\r\n console.log(ex);\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n /**\r\n * Base専用 前提条件(セッション、権限管理)を構築する\r\n * @description \r\n */\r\n private async preProcess(resolve, reject) {\r\n\r\n ////waterfall\r\n //this.promise = new Promise((resolve, reject) => {\r\n // resolve();\r\n //}).then((session) => {\r\n // /** session情報の取得*/\r\n // return this.getSession();\r\n //}).then((session) => {\r\n // // FunctionLock情報情報の取得\r\n // return this.initFunctionLock(session);\r\n //}).then(() => {\r\n // resolve();\r\n //}).catch((e) => {\r\n // //エラー\r\n // reject();\r\n //});\r\n\r\n //pararel\r\n Promise.all(\r\n [\r\n this.getSession(),\r\n //this.initFunctionLock()//やめた最後にした(バラバラしてるのが嫌なので)\r\n ]\r\n ).then((values) => {\r\n //完了(成功)\r\n resolve();\r\n }).catch((e) => {\r\n //エラー\r\n reject();\r\n }).finally(() => {\r\n });\r\n }\r\n\r\n /**\r\n * 非同期処理、バックグランド処理なのどを行う(optional)\r\n * @description \r\n * @override\r\n */\r\n //protected abstract async initialize(resolve, reject);\r\n //protected async initialize(resolve, reject) {\r\n protected initialize(resolve, reject) {\r\n resolve();\r\n }\r\n\r\n /**\r\n * ページの初期処理を担保\r\n * @description \r\n */\r\n private onReady(resolve, reject) {\r\n //$(function () {\r\n $(() => {\r\n //起動タイミングをずらす(spread等のエレメントが出来てない為)\r\n // this.readyFunctionLockControl().then(() => {\r\n // //resolve();\r\n // this.ready(resolve, reject);\r\n // });\r\n\r\n //resolve();\r\n this.ready(resolve, reject);\r\n });\r\n };\r\n\r\n /**\r\n * Domのreadyのタイミング(optional)\r\n * @description \r\n * @override\r\n */\r\n //protected async ready(resolve, reject) {\r\n protected ready(resolve, reject) {\r\n resolve();\r\n };\r\n\r\n /**\r\n * ページの初期処理(required)\r\n * @description \r\n * @abstract\r\n */\r\n protected abstract async build(resolve, reject);\r\n\r\n /**\r\n * 画面項目のイベントをバインドする(optional)\r\n * @description \r\n * @override\r\n */\r\n //protected abstract setEvents(resolve, reject);\r\n //protected abstract async setEvents(resolve, reject);\r\n //protected async setEvents(resolve, reject) {\r\n protected setEvents(resolve, reject) {\r\n resolve();\r\n }\r\n\r\n /**\r\n * 条件(セッション、権限管理)を構築する\r\n * @description \r\n */\r\n protected async finalProcess(resolve, reject) {\r\n //#4085\r\n\r\n ////機能ロック(全てこのタイミングシーケンスの一番最後)\r\n //this.initFunctionLock().then(() => {\r\n // this.readyFunctionLockControl().then(() => {\r\n // resolve();\r\n // });\r\n //});\r\n\r\n //debugger;\r\n //機能ロック(全てこのタイミングシーケンスの一番最後)\r\n this.readyFunctionLockControl().then((res) => {\r\n if (res == \"done\") {\r\n this.initFunctionLock().then(() => {\r\n resolve();\r\n });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 遅延処理などを実行する\r\n * 画面のメインの制御とは関係しない、MashUpコンテンツ等ののレンダリングに使用する\r\n * 全てのライフサイクルが最後に実施されます\r\n * @description \r\n * @override\r\n */\r\n protected deffereLoad(resolve, reject) {\r\n resolve();\r\n }\r\n\r\n /**\r\n * 準備完了\r\n */\r\n private completedFork() {\r\n //準備完了\r\n this.completed();\r\n // 準備完了(外部ハントリング用のイベント)\r\n if (this.onCompleted) {\r\n this.onCompleted(this, this.isAbort);\r\n }\r\n\r\n //#3269 usually call\r\n $(PageBase.INSTANCE_RETAINER).trigger('completed.spirit.pageBase', { page: this });\r\n };\r\n\r\n /**\r\n * 準備完了\r\n */\r\n protected completed() { };\r\n\r\n\r\n /**\r\n * インスタンスを保持する\r\n */\r\n retainInstance() {\r\n\r\n //debugger\r\n //console.log(this instanceof PageBase);\r\n\r\n let RETAINER: JQuery = $(PageBase.INSTANCE_RETAINER);\r\n if (RETAINER.length == 0) {\r\n RETAINER = $(document);\r\n }\r\n RETAINER.data(PageBase.DATA_KEY, this);\r\n }\r\n\r\n /**\r\n * @description \r\n */\r\n destroy() {\r\n let RETAINER: JQuery = $(PageBase.INSTANCE_RETAINER);\r\n if (RETAINER.length == 0) {\r\n RETAINER = $(document);\r\n }\r\n RETAINER.data(PageBase.DATA_KEY, null);\r\n }\r\n\r\n /**\r\n * session情報の取得\r\n * (これは保険!DOMの準備が出来てない場合SPIRIT.sessionの値が取得できない場合を考慮!)\r\n */\r\n private async getSession() {\r\n return new Promise((resolve, reject) => {\r\n SPIRIT.util.getData('/CommonAPI/GetSessionInfo').\r\n then((source) => {\r\n console.log('----Sessions----');\r\n //{ UserInfo = userInfo, ProjectInfo = projectInfo, FunctionAuthorities = functionAuthorities });\r\n //console.log(source);\r\n //\r\n SPIRIT.session.setLoginUserInfo(source?.UserInfo);\r\n //SPIRIT.session.setProjectInfo(source?.ProjectInfo);\r\n SPIRIT.session.setFunctionAuthorities(source?.FunctionAuthorities);\r\n\r\n ////管理者HOMEからのマスタ系は空です。\r\n ////というか、マスタ系は空にすべき(historybackバックで、Home/Indexのアクションにリクエストが来ないケースがありその場合セッションにプロジェクト情報が残ってしまっている)\r\n //if (this.isNoneProject) {\r\n // //仮に入っていても、空にする\r\n // SPIRIT.session.setProjectInfo(null);\r\n //}\r\n\r\n resolve(source);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * FunctionLock情報情報の取得\r\n * @param session?{ UserInfo = userInfo, ProjectInfo = projectInfo, FunctionAuthorities = functionAuthorities });\r\n */\r\n protected async initFunctionLock() {\r\n return new Promise((resolve, reject) => {\r\n\r\n var loginUserInfo = SPIRIT.session.loginUserInfo;\r\n var userId = loginUserInfo.UserId;\r\n\r\n var projectInfo = SPIRIT.project.projectInfo;\r\n var projectId = projectInfo?.ProjectId;\r\n\r\n //管理者HOMEからのマスタ系は空です。\r\n //というか、マスタ系は空にすべき\r\n if (this.isNoneProject) {\r\n //仮に入っていても、空にする\r\n projectId = null;\r\n }\r\n\r\n\r\n this.functionLockControl = new SPIRIT.base.FunctionLockControl(userId, this.functionCode, projectId);\r\n this.functionLockControl.onStart = this.onStart.bind(this);\r\n this.functionLockControl.onStateChange = this.onStateChange.bind(this);\r\n //初期化等\r\n this.functionLockControl.initialize().then(r => {\r\n\r\n //#4085\r\n //resolve();\r\n //始動する\r\n this.functionLockControl?.start().then(() => {\r\n resolve();\r\n });\r\n })\r\n });\r\n }\r\n\r\n /** \r\n *機能ロックを準備する\r\n */\r\n protected async readyFunctionLockControl(): Promise<'none' | 'done'> {\r\n return new Promise((resolve, reject) => {\r\n //ロックボタンがあればインスタンス保持\r\n this.$btnFuncitonLock = $('button[data-funcitonLock]');\r\n\r\n //ボタンが無かったら、機能しないこと(管理しない)とみなす\r\n if (this.$btnFuncitonLock.length === 0) {\r\n //なにもしない\r\n //resolve();\r\n resolve('none');\r\n return;\r\n }\r\n\r\n this.$btnFuncitonLock?.on('click', () => { this.btnFuncitonLockClick(); });\r\n\r\n //#4085\r\n //if (this.functionLockControl) {\r\n // this.functionLockControl?.start().then(() => {\r\n // resolve();\r\n // })\r\n //} else {\r\n // resolve();\r\n //}\r\n\r\n resolve('done');\r\n\r\n });\r\n }\r\n\r\n /** */\r\n private btnFuncitonLockClick() {\r\n\r\n //#3887\r\n //if (this.functionLockControl.IsLockedSelf) {\r\n // this.functionLockControl.doFunctionUnLock().then((ret: any) => {\r\n // // ロック解除しました。'\r\n // SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00004), { position: 'bottom right' });\r\n // });\r\n // //!!!!他のユーザーがロックしている場合!!!!\r\n // //※一応ロック取得にチャレンジする(解除されてるかもしれない為)\r\n // //解除されていたらロックする(通常のロック処理を同じことをする)\r\n // //} else if (this.functionLockControl.IsLockedOthers) {\r\n // //// '他ユーザ({0} さん)が編集中のため、ロックできません。'\r\n // //SPIRIT.notify.warn(SPIRIT.util.getMessage(SPIRIT.message.MSG_W_00008, [this.functionLockControl.FunctionLockInfo.LockUserName]), { position: 'bottom right' });\r\n //} else {\r\n // //#1288 \r\n // //this.functionLockControl.doFunctionLock();\r\n // this.functionLockControl.doFunctionLock().then((ret: any) => {\r\n // if (ret.Data && ret.Data?.Status === 'Error') {\r\n // // '他ユーザ({0} さん)が編集中のため、ロックできません。'\r\n // SPIRIT.notify.warn(SPIRIT.util.getMessage(SPIRIT.message.MSG_W_00008, [ret.Data?.FunctionLockInfo?.LockUserName]), { position: 'bottom right' });\r\n // } else {\r\n // // 'ロックしました。'\r\n // SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00003), { position: 'bottom right' });\r\n // ////ロック開始直後最新の直後最新のデータを取得するか確認し、取得するとした場合各画面にreload命令を通知する\r\n // ////現在編集されているかのダイアログは出さない。どのみち無効だから(ロック取得前の編集は編集とみなさない)\r\n // ////ユーザーにどちらかを選ばせる\r\n // //SPIRIT.dialog.ConfirmDialog('最新のデータを取得しますか?', '※編集されている内容は破棄されます。', (result => {\r\n // // if (result === 'ok') {\r\n // // //リロードの要請をする\r\n // // this.onFunctionLockedReloadNotify();\r\n // // }\r\n // //}));\r\n // //常にリロードの要請をする\r\n // this.onFunctionLockedReloadNotify();\r\n // }\r\n // });\r\n //}\r\n\r\n\r\n //他のユーザーがロックしているかどうかはロック使用としたときに確認しに行くので、条件としてはこれで良しとする\r\n //if (this.functionLockControl.IsLocked) {\r\n if (this.functionLockControl.IsLockedSelf) {\r\n this.functionUnLock();\r\n }\r\n //(なぜこうしたか記憶に無い...恐らくリアルタイム性を考慮した結果だと思われる)\r\n //} else if (this.functionLockControl.IsLockedOthers) {\r\n // //!!!!他のユーザーがロックしている場合!!!!\r\n // //※一応ロック取得にチャレンジする(解除されてるかもしれない為)\r\n // //解除されていたらロックする(通常のロック処理を同じことをする)\r\n // // '他ユーザ({0} さん)が編集中のため、ロックできません。'\r\n // SPIRIT.notify.warn(SPIRIT.util.getMessage(SPIRIT.message.MSG_W_00008, [this.functionLockControl.FunctionLockInfo.LockUserName]), { position: 'bottom right' });\r\n //}\r\n else {\r\n\r\n //#3811 基本ロック中はGridを触れなくなった為、最新を取得する必要がなくなったが、他のユーザーが更新をしたかもしれないので、ロックしたら最新の情報にする!!\r\n //this.functionLock(false);\r\n this.functionLock();\r\n }\r\n }\r\n\r\n /**\r\n * 機能ロックを掛ける\r\n * @param reload\r\n */\r\n protected async functionLock(reload: boolean = true) {\r\n\r\n return new Promise((resolve, reject) => {\r\n //if (!this.functionLockControl.IsLocked) {\r\n if (!this.functionLockControl.IsLockedSelf) {\r\n //#1288 \r\n //this.functionLockControl.doFunctionLock();\r\n this.functionLockControl.doFunctionLock().then((ret: any) => {\r\n\r\n if (_.isNil(ret)) {\r\n resolve();\r\n return;\r\n }\r\n\r\n if (ret.Data && ret.Data?.Status === 'Error') {\r\n // '他ユーザ({0} さん)が編集中のため、ロックできません。'\r\n //#4085 抽象的な名称に変更\r\n //SPIRIT.notify.warn(SPIRIT.util.getMessage(SPIRIT.message.MSG_W_00005, [ret.Data?.FunctionLockInfo?.LockUserName]), { position: 'bottom right' });\r\n SPIRIT.notify.warn(SPIRIT.util.getMessage(SPIRIT.message.MSG_W_00005, [ret.Data?.LockInfo?.LockUserName]), { position: 'bottom right' });\r\n\r\n } else {\r\n // 'ロックしました。'\r\n SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00003), { position: 'bottom right' });\r\n\r\n\r\n ////ロック開始直後最新の直後最新のデータを取得するか確認し、取得するとした場合各画面にreload命令を通知する\r\n ////現在編集されているかのダイアログは出さない。どのみち無効だから(ロック取得前の編集は編集とみなさない)\r\n ////ユーザーにどちらかを選ばせる\r\n //SPIRIT.dialog.ConfirmDialog('最新のデータを取得しますか?', '※編集されている内容は破棄されます。', (result => {\r\n // if (result === 'ok') {\r\n // //リロードの要請をする\r\n // this.onFunctionLockedReloadNotify();\r\n // }\r\n //}));\r\n\r\n if (reload === true) {\r\n //常にリロードの要請をする\r\n this.onFunctionLockedReloadNotify();\r\n }\r\n }\r\n //\r\n resolve();\r\n });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n\r\n };\r\n\r\n /**\r\n * 機能ロック解除\r\n * @param reload\r\n */\r\n protected async functionUnLock(reload: boolean = true) {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n if (this.functionLockControl.IsLocked) {\r\n //自分自身が\r\n if (this.functionLockControl.IsLockedSelf) {\r\n //#3887 1.編集中ロック解除の場合は確認する\r\n SPIRIT.business.page.confirmClose((result) => {\r\n if (result === 'ok') {\r\n this.functionLockControl.doFunctionUnLock().then((ret: any) => {\r\n // ロック解除しました。'\r\n SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00004), { position: 'bottom right' });\r\n if (reload === true) {\r\n //編集済みで、ロック解除の際はリロードする\r\n this.onFunctionLockedReloadNotify();\r\n }\r\n //\r\n resolve();\r\n });\r\n } else {\r\n //\r\n resolve();\r\n }\r\n });\r\n //} else if (this.functionLockControl.IsLockedOthers) {\r\n //!!!!他のユーザーがロックしている場合!!!!\r\n //※一応ロック取得にチャレンジする(解除されてるかもしれない為)\r\n //解除されていたらロックする(通常のロック処理を同じことをする)\r\n //// '他ユーザ({0} さん)が編集中のため、ロックできません。'\r\n //SPIRIT.notify.warn(SPIRIT.util.getMessage(SPIRIT.message.MSG_W_00008, [this.functionLockControl.FunctionLockInfo.LockUserName]), { position: 'bottom right' });\r\n } else {\r\n resolve();\r\n }\r\n } else {\r\n resolve();\r\n }\r\n });\r\n };\r\n\r\n\r\n\r\n /** */\r\n private functionLockButtonState() {\r\n\r\n if (this.$btnFuncitonLock.length > 0) {\r\n var icon = this.$btnFuncitonLock.find('i.material-icons');\r\n var textSpan = icon.siblings('span');\r\n\r\n\r\n //this.$btnFuncitonLock.removeClass('btn-primary btn-secondary btn-spirit');\r\n this.$btnFuncitonLock.removeClass(this.funcitonLockAttr.lockedClass + ' ' + this.funcitonLockAttr.lockingClass + ' ' + this.funcitonLockAttr.unLockedClass);\r\n\r\n if (this.functionLockControl.IsLockedSelf) {\r\n icon.text('lock_open');\r\n textSpan.text('解除');\r\n this.$btnFuncitonLock.attr('title', 'ロック解除');\r\n this.$btnFuncitonLock.attr('data-lockAction', 'lock');\r\n //this.$btnFuncitonLock.addClass('btn-spirit');\r\n if (this.funcitonLockAttr.lockedClass) {\r\n this.$btnFuncitonLock.addClass(this.funcitonLockAttr.lockedClass);\r\n }\r\n } else if (this.functionLockControl.IsLockedOthers) {\r\n icon.text('lock_clock');\r\n textSpan.text('ロック中');\r\n this.$btnFuncitonLock.attr('title', 'ロック解除できません');\r\n this.$btnFuncitonLock.attr('data-lockAction', 'invalid');\r\n //this.$btnFuncitonLock.addClass('btn-secondary');\r\n if (this.funcitonLockAttr.lockingClass) {\r\n this.$btnFuncitonLock.addClass(this.funcitonLockAttr.lockingClass);\r\n }\r\n\r\n\r\n } else {\r\n icon.text('lock');\r\n textSpan.text('ロック');\r\n this.$btnFuncitonLock.attr('title', 'ロック');\r\n this.$btnFuncitonLock.attr('data-lockAction', 'unlock');\r\n //this.$btnFuncitonLock.addClass('btn-primary');\r\n if (this.funcitonLockAttr.unLockedClass) {\r\n this.$btnFuncitonLock.addClass(this.funcitonLockAttr.unLockedClass);\r\n }\r\n\r\n }\r\n }\r\n };\r\n\r\n /** */\r\n protected onStart() {\r\n this.functionLockButtonState();\r\n //子クラスで変更通知を受け取る\r\n this.onFunctionLockStateChanged(this.functionLockControl.IsLockedSelf, this.functionLockControl.IsLockedOthers);\r\n };\r\n\r\n /** */\r\n protected onStateChange(state: 'locked' | 'unlocked' | 'timeout') {\r\n this.functionLockControl.reload().then(() => {\r\n if (state === 'locked') {\r\n //このパターンは基本ない(他人がロックしている場合は解除監視を行ので、起動時にロック掛かってない場合は監視しないので...)\r\n // ロックされました。'\r\n SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00005), { position: 'bottom right' });\r\n }\r\n else if (state === 'unlocked') {\r\n // ロック解除されました。'\r\n SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00006), { position: 'bottom right' });\r\n }\r\n else {\r\n // タイムアウト。ロック解除されました。'\r\n SPIRIT.notify.info(SPIRIT.util.getMessage(SPIRIT.message.MSG_I_00007), { position: 'bottom right' });\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * 機能ロック時のリロード要請(#1288)\r\n * overrides!\r\n */\r\n protected onFunctionLockedReloadNotify() {\r\n //noop(override)\r\n };\r\n\r\n /** \r\n * overrides!\r\n */\r\n protected onFunctionLockStateChanged(isLockedSelf: boolean, isLockedOthers: boolean) {\r\n //noop\r\n };\r\n /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * サーバー側バリデーション結果をもとに\r\n * 入力エラー一覧に渡すエラー情報リストを生成して返却\r\n * @param errors サーバー側から返却されたエラー情報\r\n * @param spreadInfoList Spread情報リスト\r\n */\r\n protected createErrorInfoListForServerValidation(errors, spreadInfoList: Array): Array {\r\n\r\n const errorInfoList: Array = [];\r\n\r\n // 背景色を設定しないので廃止!!!\r\n //const spreadOrder = {};\r\n\r\n //// spread描画停止\r\n //spreadInfoList.forEach((spreadInfo, index) => {\r\n // spreadInfo.spread.suspendPaint();\r\n // spreadOrder[spreadInfo.spreadName] = index;\r\n //});\r\n\r\n // エラー情報解析\r\n errors.forEach(error => {\r\n\r\n // サーバーで検証したフィールド\r\n // Listの場合、Listのフィールド名[index].クラスのフィールド名になる\r\n const key = error.Key;\r\n const visualIndex = error.VisualIndex;\r\n\r\n // Listのフィールド名をspread情報のkeyとする\r\n const spreadKey = key.substring(0, key.indexOf('['));\r\n // Classのフィールド名を属性名とする\r\n const propertyName = key.slice(key.indexOf('.') + 1);\r\n // サーバーで検知したエラーメッセージ(フィールドに複数エラーがある可能性がある)\r\n const errorMessages = error.ErrorMessages.join(' / ');\r\n // 上記のkeyから[]を取得する\r\n const myRe = /\\[([^\\[\\]\\s ]+)/g;\r\n const myArray = myRe.exec(key);\r\n\r\n // keyに配列識別子が含まれるか確認\r\n if (myArray != null) {\r\n // 配列の場合\r\n\r\n // 一覧入力データと仮定してSpread情報を補完する\r\n\r\n // 画面から渡されているspread情報とエラー情報を解析し、エラー一覧画面に必要な情報を設定する\r\n\r\n // 対象Spreadをkeyから特定\r\n const targetSpreadInfo = spreadInfoList.find(_ => _.spreadKey.find(s => s == spreadKey) != null);\r\n // 対象Spreadの列情報\r\n const colInfos = targetSpreadInfo.colInfos;\r\n // 対象Spreadの列情報から列番号を取得\r\n const colIndex = colInfos.findIndex(_ => _.name == propertyName);\r\n // 列番号が取れたか確認\r\n if (colIndex !== -1) {\r\n\r\n // 列番号がとれた場合\r\n\r\n // 列名取得\r\n const colName = colInfos[colIndex].displayName;\r\n\r\n // 行番号取得(上記のkeyから[]内のindexを取得する)\r\n //const paramIndex = myArray[1];\r\n const paramIndex = visualIndex;\r\n\r\n // エラー一覧画面に必要な情報を作成\r\n const errorInfo: SPIRIT.interfaces.IErrorInfo = this.createErrorInfo(targetSpreadInfo.spread, targetSpreadInfo.spreadName, parseInt(paramIndex), colIndex, colName, errorMessages);\r\n\r\n //console.log(errorInfo);\r\n\r\n errorInfoList.push(errorInfo);\r\n\r\n // 本当は背景色は各Gridで実装してもらいたいが、\r\n // エラー情報が複数Gridに及ぶため振り分けるのが面倒なため共通的にエラー背景色をここで設定する\r\n // ただし、保存後のリフレッシュ等で色を戻すのは各Gridで実装すること\r\n // エラー箇所の背景色設定\r\n // エラー情報を解析する際に、背景色を設定するのは廃止!!!\r\n // 廃止理由は、背景色をクリアする情報がない(全セルクリアしかできない)ので、\r\n // エラー情報を結局Gridに渡すことになるのでそこで背景色を設定する方式にする。そうするとエラー箇所だけクリアすることもできる。\r\n //errorInfo.spread.getSheet(0).getCell(errorInfo.row, errorInfo.col).backColor('lightpink');\r\n\r\n }\r\n\r\n } else {\r\n // 配列ではない場合\r\n\r\n // 何か必要か?必要になればその時に対応\r\n\r\n }\r\n });\r\n\r\n // 背景色を設定しないので廃止!!!\r\n //// spread描画再開\r\n //spreadInfoList.forEach(spreadInfo => {\r\n // spreadInfo.spread.resumePaint();\r\n //});\r\n\r\n // 並び順を指定のSpread > 行 > 列 で並べる\r\n return this.sortErrorInfo(spreadInfoList, errorInfoList);\r\n }\r\n\r\n /**\r\n * エラー情報を作成して返却する\r\n * @param spread\r\n * @param spreadName\r\n * @param row\r\n * @param col\r\n * @param colName\r\n * @param messages\r\n */\r\n protected createErrorInfo(spread: Spread.Sheets.Workbook, spreadName, row, col, colName, messages): SPIRIT.interfaces.IErrorInfo {\r\n const errorInfo: SPIRIT.interfaces.IErrorInfo = {\r\n spread: spread,\r\n spreadName: spreadName,\r\n row: row,\r\n col: col,\r\n colName: colName,\r\n messages: messages\r\n };\r\n return errorInfo;\r\n }\r\n\r\n /**\r\n * エラー情報をソートする\r\n * @param spread\r\n * @param spreadName\r\n * @param row\r\n * @param col\r\n * @param colName\r\n * @param messages\r\n */\r\n protected sortErrorInfo(spreadInfoList: Array, errorInfoList: Array): Array {\r\n\r\n const spreadOrder = {};\r\n\r\n spreadInfoList.forEach((spreadInfo, index) => {\r\n spreadOrder[spreadInfo.spreadName] = index;\r\n });\r\n\r\n // 並び順を指定のSpread > 行 > 列 で並べる\r\n errorInfoList.sort((a, b) => {\r\n\r\n const spreadOrderA = spreadOrder[a.spreadName];\r\n const spreadOrderB = spreadOrder[b.spreadName];\r\n const rowA = a.row;\r\n const rowB = b.row;\r\n const colA = a.col;\r\n const colB = b.col;\r\n\r\n // Spread\r\n if (spreadOrderA < spreadOrderB) { return -1; }\r\n if (spreadOrderA > spreadOrderB) { return 1; }\r\n\r\n // 行\r\n if (rowA < rowB) { return -1; }\r\n if (rowA > rowB) { return 1; }\r\n\r\n // 列\r\n if (colA < colB) { return -1; }\r\n if (colA > colB) { return 1; }\r\n\r\n return 0;\r\n\r\n });\r\n\r\n return errorInfoList;\r\n }\r\n\r\n /**\r\n * インポート用に保存データを追加、変更、削除に分ける\r\n * @param currentData 保存データ(現在のSpreadの状態から取得したデータ)\r\n * @return {Object} result\r\n * @return {Object} result.addData 追加データ\r\n * @return {Object} result.changeData 変更データ\r\n * @return {Object} result.deleteData 削除データ\r\n */\r\n protected getDivideImportSaveData(currentData: any[]) {\r\n\r\n // 追加データ抽出\r\n const addData = currentData.filter(e => e.ImportType == SPIRIT.codes.ImportType.ADDED.value);\r\n\r\n // 変更データ抽出\r\n const changeData = currentData.filter(e => e.ImportType == SPIRIT.codes.ImportType.EDITED.value);\r\n\r\n // 削除データ抽出\r\n const deleteData = currentData.filter(e => e.ImportType == SPIRIT.codes.ImportType.DELETED.value);\r\n\r\n return {\r\n addData: addData,\r\n changeData: changeData,\r\n deleteData: deleteData,\r\n };\r\n }\r\n\r\n /**\r\n * 保存データを追加、変更、削除に分ける\r\n * @param currentData 保存データ(現在のSpreadの状態から取得したデータ)\r\n * @param rawData オリジナルデータ(Spreadを初期表示したデータ)\r\n * @param idName ユニークになるIDの名称\r\n * @param orderChangedKey 並び替えにより変更となったデータから変更となるデータを紐づかせるIDの名称(機器情報、必須作業情報、作業情報で用いられる)\r\n * @return {Object} result\r\n * @return {Object} result.addData 追加データ\r\n * @return {Object} result.changeData 変更データ\r\n * @return {Object} result.deleteData 削除データ\r\n */\r\n protected getDivideSaveData(currentData: any[], rawData: any[], idName: string, orderChangedKey?: string) {\r\n\r\n // 追加データ抽出\r\n //const addData = currentData.filter(e => e.isBlank && (e.SectionType == SPIRIT.codes.SectionType.ADDED.value || (idName in e && e[idName] == null || e[idName] == '')));\r\n //const addData = currentData.filter(e => e.isBlank && e.SectionType == SPIRIT.codes.SectionType.ADDED.value);\r\n const addData = currentData.filter(e => e.SectionType == SPIRIT.codes.SectionType.ADDED.value);\r\n\r\n // 削除データを抽出する\r\n const currentDataIdList = _.map(currentData, idName);\r\n\r\n //rawDataはsaveDataと違って、DateオブジェクトをJsonConvertしていないので、ここでコンバートして、肩を合わせる\r\n //と同時に、そのままだと削除リストにDateオブジェクトがそのまま乗ってしまい、ISOStringとなって、サーバーでパースエラーの発生を防止する為\r\n //const rawDataIdList = _.map(rawData, idName);\r\n let _rawData = _.cloneDeep(rawData);\r\n //Date型をJSONで正しく扱える文字列に変換する\r\n SPIRIT.util.convertDateToJSON(_rawData);\r\n\r\n const rawDataIdList = _.map(_rawData, idName);\r\n\r\n // 差集合(左から右を除去)\r\n let deleteIdList = _.difference(rawDataIdList, currentDataIdList);\r\n\r\n // #4379 空白50行を削除すると空白行がdeleteIdListの中に含まれる為\r\n // idが存在するものを抽出する。idがnullや''空文字ではないもののみdeleteIdListに入れる\r\n deleteIdList = _.filter(deleteIdList, (id) => { return id });\r\n\r\n // 削除で投げる情報はIDのみでいい気がするけど、一旦そのまま形を返却する。\r\n // TODO 要検討!!!\r\n //const deleteData = rawData.filter(e => deleteIdList.indexOf(e[idName]) > -1);\r\n const deleteData = _rawData.filter(e => deleteIdList.indexOf(e[idName]) > -1);\r\n\r\n //debugger;\r\n ////下記でも良い(余計なものがない分通信は軽いかも)\r\n //const _deleteData = _rawData.filter(e => deleteIdList.indexOf(e[idName]) > -1);\r\n ////Keyのみ抽出\r\n ////複合Key対応して無いじゃん!!\r\n //const deleteData = _deleteData.map(function (v) {\r\n // return { [idName]: v[idName] };\r\n //});\r\n\r\n // orderChangedKeyのリスト\r\n let orderChangedIdList = [];\r\n\r\n // 変更データ抽出\r\n let changeData = currentData.filter((e) => {\r\n\r\n if (idName in e && e[idName] != null && e[idName] != '') {\r\n if (e.SectionType == SPIRIT.codes.SectionType.EDITED.value) {\r\n // orderChangedKeyが指定されていた場合\r\n if (orderChangedKey) {\r\n // 並び順の変更があったかチェック。あった場合orderChangedIdListへキーを格納する\r\n const targetId = e[idName];\r\n if (deleteIdList.indexOf(targetId) == -1) {\r\n const target = _rawData.find(r => r[idName] == targetId);\r\n if (target != null && target.OrderNo != e.OrderNo) {\r\n orderChangedIdList.push(e[orderChangedKey]);\r\n }\r\n }\r\n }\r\n return true;\r\n } else {\r\n const targetId = e[idName];\r\n if (deleteIdList.indexOf(targetId) == -1) {\r\n // 並び順が異なる場合を抽出\r\n //const target = rawData.find(r => r[idName] == targetId);\r\n const target = _rawData.find(r => r[idName] == targetId);\r\n if (target != null && target.OrderNo != e.OrderNo) {\r\n // orderChangedKeyが指定されていた場合\r\n if (orderChangedKey) {\r\n orderChangedIdList.push(e[orderChangedKey]);\r\n }\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n\r\n // orderChangedKeyが指定されていた場合かつorderChangedIdListが1件以上ある場合\r\n if (orderChangedKey && orderChangedIdList.length != 0) {\r\n // orderChangedKeyリストの重複を除く\r\n orderChangedIdList = _.uniq(orderChangedIdList);\r\n\r\n // orderChangedKeyに紐づくデータを全て取得\r\n const orderChangedData = [];\r\n // 画面上の追加、空白行を除いた(削除も)データを取得する。\r\n const targetDataList = _.filter(currentData, (c) => idName in c && c[idName] != null && c[idName] != '');\r\n _.forEach(targetDataList, (t) => {\r\n _.forEach(orderChangedIdList, (id) => {\r\n if (t[orderChangedKey] == id) {\r\n orderChangedData.push(t);\r\n }\r\n });\r\n });\r\n\r\n // changeDataからorderChangedDataの差分のデータを抽出\r\n const differenceChangeData = _.difference(orderChangedData, changeData);\r\n // 差分のデータを変更リストに加える\r\n changeData = changeData.concat(differenceChangeData);\r\n }\r\n\r\n return {\r\n addData: addData,\r\n changeData: changeData,\r\n deleteData: deleteData,\r\n };\r\n }\r\n\r\n /**\r\n * インポート用のバリデーションデータ作成\r\n * インポート前のDBデータとインポートするデータをマージして返す(中のobjectの参照は切る)\r\n * ※削除データはバリデーション対象外のため削除しているので注意\r\n * @param saveData\r\n * @param beforeImportDbData\r\n * @param idName\r\n */\r\n getImportValidateData(saveData: any[], beforeImportDbData: any[], idName: string) {\r\n\r\n // 中でマージするため、参照を切るためクローン\r\n const cloneSaveData = _.cloneDeep(saveData);\r\n const cloneBeforeImportDbData = _.cloneDeep(beforeImportDbData);\r\n\r\n cloneSaveData.forEach((item) => {\r\n\r\n // マージしてしまうと、入力データか判断できないため識別子を付与\r\n item.isInput = true;\r\n\r\n if (item.ImportType == SPIRIT.codes.ImportType.ADDED.value) {\r\n\r\n cloneBeforeImportDbData.push(item);\r\n\r\n } else if (item.ImportType == SPIRIT.codes.ImportType.EDITED.value) {\r\n\r\n const target = cloneBeforeImportDbData.find((e: any) => e[idName] == item[idName]);\r\n _.assign(target, item);\r\n\r\n } else if (item.ImportType == SPIRIT.codes.ImportType.DELETED.value) {\r\n\r\n _.remove(cloneBeforeImportDbData, (e) => e[idName] == item[idName]);\r\n\r\n }\r\n\r\n });\r\n\r\n return cloneBeforeImportDbData;\r\n }\r\n\r\n /**\r\n * 表示順を設定\r\n * @param currentData 保存データ(現在のSpreadの状態から取得したデータ)\r\n * @param groupFunction グループ分けルール関数\r\n */\r\n protected setOrderNo(currentData: any[], groupFunction?) {\r\n\r\n //const records = [\r\n // { player: 'a', team: 'red', subteam: 'A', score: 10 },\r\n // { player: 'b', team: 'red', subteam: 'B', score: 3 },\r\n // { player: 'c', team: 'green', subteam: 'A', score: 4 },\r\n // { player: 'd', team: 'green', subteam: 'A', score: 15 },\r\n // { player: 'e', team: 'green', subteam: 'B', score: 4 },\r\n // { player: 'f', team: 'green', subteam: 'B', score: 15 },\r\n //];\r\n\r\n // 使用方法\r\n\r\n //// グループなし\r\n //this.setOrderNo(records);\r\n //console.log(records);\r\n\r\n //// 単数\r\n //this.setOrderNo(records, 'team');\r\n //console.log(records);\r\n\r\n //// 単数\r\n //this.setOrderNo(records, item => {\r\n // return item.team;\r\n //});\r\n //console.log(records);\r\n\r\n //// 複数\r\n //this.setOrderNo(records, item => {\r\n // return item.team + '#' + item.subteam;\r\n //});\r\n //console.log(records);\r\n\r\n if (groupFunction != null) {\r\n\r\n const groups = _.groupBy(currentData, groupFunction);\r\n\r\n _.forEach(groups, (arr: any[]) => {\r\n let orderNo = 1;\r\n _.forEach(arr, (item) => {\r\n item.OrderNo = orderNo;\r\n orderNo++;\r\n });\r\n });\r\n\r\n } else {\r\n\r\n let orderNo = 1;\r\n _.forEach(currentData, (item) => {\r\n item.OrderNo = orderNo;\r\n orderNo++;\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 空行で入力されていない行を除外した配列を返却する\r\n * @param data\r\n */\r\n excludeBlankRowNotInput(data: any[]) {\r\n\r\n // TODO 条件やプロパティ名が変わる可能性あり\r\n\r\n return data.filter((item) => {\r\n\r\n // デフォルト空行ではないものを拾う\r\n if (!item.isBlank) {\r\n return true;\r\n }\r\n\r\n // 区分列に値が入っている場合を拾う\r\n if (item.SectionType) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n /**\r\n * エクセルエクスポート\r\n * @param fileName\r\n * @param json\r\n * @param viewName\r\n */\r\n exportExcel(fileName: string, json, viewName: string) {\r\n const excelIo = new Excel.IO();\r\n excelIo.save(json, (blob) => {\r\n saveAs(blob, fileName);\r\n this.exportExcelLog(fileName, viewName);\r\n }, (e) => {\r\n SPIRIT.notify.error(SPIRIT.util.getMessage(SPIRIT.message.MSG_E_00019));\r\n //console.log(e);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * エクセルエクスポート時のログ登録\r\n * @param fileName\r\n * @param viewName\r\n */\r\n exportExcelLog(fileName: string, viewName: string) {\r\n // ajaxでログコントローラに非同期通信\r\n\r\n const message = viewName + ':' + fileName;\r\n\r\n const data = {\r\n message: message,\r\n };\r\n\r\n SPIRIT.util.ajax({\r\n url: '/LogInfo/ExportExcelLog',\r\n type: 'POST',\r\n data: data\r\n });\r\n }\r\n\r\n /**\r\n * サマリ集計に必要なプラントID、カテゴリIDをリストに詰める処理\r\n * 対象画面:機器工事情報、必須作業情報、作業情報\r\n * @param plantCategoryList\r\n * @param targetData\r\n */\r\n protected setPlantCategoryList(plantCategoryList: PlantCategoryList[], targetData) {\r\n\r\n // 重複しないように存在チェック\r\n const doExistPlantCategoryList = plantCategoryList.find(_ => _.PlantId == targetData.PlantId && _.CategoryId == targetData.CategoryId);\r\n\r\n // 変更後のデータのプラントID、カテゴリIDを詰める\r\n if (!doExistPlantCategoryList && targetData.PlantId != null && targetData.CategoryId != null) {\r\n plantCategoryList.push({\r\n PlantId: targetData.PlantId,\r\n CategoryId: targetData.CategoryId\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 指定されたプロパティの値をtrimする\r\n * @param array\r\n * @param targetPropertyNameList\r\n */\r\n doTrimValue(array: any[], targetPropertyNameList: string[]) {\r\n\r\n const result = _.cloneDeep(array);\r\n\r\n targetPropertyNameList.forEach((propertyName) => {\r\n result.forEach((item) => {\r\n if (item[propertyName] && typeof item[propertyName] === 'string') {\r\n item[propertyName] = item[propertyName].trim();\r\n }\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * プロジェクト期間内かどうか\r\n * @param value\r\n */\r\n protected isProjectWithinInterval(value) {\r\n return DATEFNS.isWithinInterval(new Date(SPIRIT.util.date.getYYYYMMDD(value, true)), { start: new Date(SPIRIT.util.date.getYYYYMMDD(SPIRIT.project.projectInfo.ProjectStartDate, true)), end: new Date(SPIRIT.util.date.getYYYYMMDD(SPIRIT.project.projectInfo.ProjectEndDate, true)) });\r\n }\r\n\r\n /**\r\n * インポートの並び順にリストを並べ替える\r\n * @param list\r\n * @param orderNoKey\r\n * @param isOrderKeyNullCheck\r\n * @param isValidate\r\n */\r\n protected doSortList(list: any[], orderNoKey: string, beforeDataList:any[], id: string, isValidate: boolean = false) {\r\n\r\n // インポートで追加、変更のあったリストを取得する\r\n const importChangeOrInsertList = list.filter(_ => _.ImportType == SPIRIT.codes.ImportType.ADDED.value || _.ImportType == SPIRIT.codes.ImportType.EDITED.value);\r\n\r\n let keyList = _.uniq(_.map(importChangeOrInsertList, orderNoKey));\r\n\r\n keyList.forEach((keyValue) => {\r\n\r\n // キー単位のリストを取得する\r\n const targetKeyList = list.filter(_ => _[orderNoKey] == keyValue);\r\n\r\n // 並び順が設定されているかどうか\r\n //const isSetOrderNo = targetKeyList.filter(_ => _.ImportOrderNo != null && _.isInput);\r\n\r\n let isSetOrderNoFlag = false;\r\n\r\n // #4971 保守 並び順が入力かつ、変更されていたら並び順を設定する\r\n for (let target of targetKeyList) {\r\n const beforeData = beforeDataList.find(b => b[id] == target[id])\r\n if (target.ImportOrderNo != null && target.isInput && target.ImportOrderNo != beforeData?.ImportOrderNo) {\r\n isSetOrderNoFlag = true;\r\n }\r\n }\r\n\r\n // 設定されている場合、並び順に並び替える\r\n if (isSetOrderNoFlag) {\r\n\r\n let index = list.findIndex(_ => _[orderNoKey] == keyValue);\r\n\r\n // 全体から対象のリストを抜く\r\n list = _.difference(list, targetKeyList);\r\n\r\n // 並び順に設定されているリストを抜き出す\r\n let isChangeOrInsertList = targetKeyList.filter(_ => _.ImportOrderNo != null && (_.ImportType == SPIRIT.codes.ImportType.ADDED.value || _.ImportType == SPIRIT.codes.ImportType.EDITED.value));\r\n isChangeOrInsertList = _.sortBy(isChangeOrInsertList, 'ImportOrderNo'); \r\n\r\n // 並び替えを設定していないリストを抜き出す\r\n const setOrderNoList = _.difference(targetKeyList, isChangeOrInsertList);\r\n\r\n let orderNoList = _.map(isChangeOrInsertList, 'ImportOrderNo');\r\n\r\n let firstOrderNo = orderNoList.reduce((a, b) => Math.min(a, b)) - 1;\r\n\r\n // 並び替えを設定していないリストに並び替えを設定したデータを入れていく\r\n for (let data of isChangeOrInsertList) {\r\n setOrderNoList.splice(firstOrderNo, 0, data);\r\n firstOrderNo++;\r\n }\r\n\r\n const isNotChangeList = setOrderNoList.filter(e => e.ImportType == null);\r\n\r\n // 並び替えによって変更になったデータを更新対象に入れる⇒バリデーションチェック(作業情報)の場合はこの処理はしない\r\n if (!isValidate) {\r\n isNotChangeList.forEach(item => {\r\n item.ImportType = SPIRIT.codes.ImportType.EDITED.value;\r\n });\r\n }\r\n\r\n // 対象のリストを全体のリストへ入れる\r\n for (let data of setOrderNoList) {\r\n list.splice(index, 0, data);\r\n index++;\r\n }\r\n }\r\n });\r\n return list;\r\n }\r\n\r\n /**\r\n * インポート並び順のバリデーションチェック\r\n * @param spreadInfo\r\n * @param inputData\r\n * @param orderNoKey\r\n * @param beforeDataList 変更前データリスト\r\n * @param id 主キー 作業情報ならWorkId、機器工事情報ならEquipmentId\r\n */\r\n protected doValidateImportOrderNo(spreadInfo: SPIRIT.interfaces.SpreadInfo, inputData: any[], orderNoKey: string, beforeDataList: any[], id: string): Array{\r\n\r\n // エラー一覧を格納するリスト\r\n const errorInfoList: Array = [];\r\n\r\n const importOrderNoColIndex = spreadInfo.colInfos.findIndex(_ => _.name == 'ImportOrderNo');\r\n const importOrderNoIndexColName = spreadInfo.colInfos[importOrderNoColIndex].displayName;\r\n\r\n // 更新、追加データ取得\r\n const isChangeOrInsertDataList = inputData.filter(_ => _.ImportType == SPIRIT.codes.ImportType.ADDED.value || _.ImportType == SPIRIT.codes.ImportType.EDITED.value);\r\n\r\n // 並び順が入力されていた場合⇒これをチェックする\r\n const isExistedImportOrderNoList = isChangeOrInsertDataList.filter(d => !_.isNil(d.ImportOrderNo));\r\n\r\n // 数値以外が入力されていた場合\r\n const isNotNumberImportOrderNoList = isExistedImportOrderNoList.filter(d => !_.isNumber(d.ImportOrderNo));\r\n isNotNumberImportOrderNoList.forEach((item) => {\r\n const errorInfo = this.createErrorInfo(spreadInfo.spread, spreadInfo.spreadName, item.VisualIndex, importOrderNoColIndex, importOrderNoIndexColName, SPIRIT.util.getMessage(SPIRIT.message.MSG_E_00015, [importOrderNoIndexColName, '半角数字']));\r\n errorInfoList.push(errorInfo);\r\n });\r\n\r\n // 数値が入力されているリスト\r\n const isNumberImportOrderNoList = _.difference(isExistedImportOrderNoList, isNotNumberImportOrderNoList);\r\n\r\n // 整数以外が入力されていた場合\r\n const isNotIsIntegerImportOrderNoList = isNumberImportOrderNoList.filter(d => d.ImportOrderNo < 1 || !_.isInteger(d.ImportOrderNo));\r\n isNotIsIntegerImportOrderNoList.forEach((item) => {\r\n const errorInfo = this.createErrorInfo(spreadInfo.spread, spreadInfo.spreadName, item.VisualIndex, importOrderNoColIndex, importOrderNoIndexColName, SPIRIT.util.getMessage(SPIRIT.message.MSG_E_00043, ['1']));\r\n errorInfoList.push(errorInfo);\r\n });\r\n\r\n // 整数で入力されているもの\r\n const isIntegerImportOrderNoList = _.difference(isNumberImportOrderNoList, isNotIsIntegerImportOrderNoList);\r\n\r\n // キー単位毎でチェック(機器工事情報、作業情報ではPlantCategoryCompanyId、キーが無いものはProjectIdで良いかと思われる)\r\n const orderNoKeyImportOrderNoList = _.uniq(_.map(isIntegerImportOrderNoList, orderNoKey));\r\n\r\n orderNoKeyImportOrderNoList.forEach(targetKey => {\r\n\r\n // キー単位でリスト数以上の数値の入力不可\r\n const keyDataList = inputData.filter(_ => _[orderNoKey] == targetKey);\r\n\r\n const isOrverImportOrderNoList = isNumberImportOrderNoList.filter(_ => _[orderNoKey] == targetKey && _.ImportOrderNo > keyDataList.length);\r\n isOrverImportOrderNoList.forEach((item) => {\r\n const errorInfo = this.createErrorInfo(spreadInfo.spread, spreadInfo.spreadName, item.VisualIndex, importOrderNoColIndex, importOrderNoIndexColName, SPIRIT.util.getMessage(SPIRIT.message.MSG_E_00101, [importOrderNoIndexColName, keyDataList.length]));\r\n errorInfoList.push(errorInfo);\r\n });\r\n\r\n // 重複がないかチェック\r\n let isCheckImportOrderNoList = isIntegerImportOrderNoList.filter(_ => _[orderNoKey] == targetKey);\r\n isCheckImportOrderNoList = _.difference(isCheckImportOrderNoList, isOrverImportOrderNoList);\r\n\r\n const importOrderNoList = _.map(isCheckImportOrderNoList, 'ImportOrderNo');\r\n const diplicateImportOrderNoData = _.uniq(_.filter(importOrderNoList, (val, i, iteratee) => _.includes(iteratee, val, i + 1)));\r\n const diplicateImportOrderNoList = isCheckImportOrderNoList.filter(item => diplicateImportOrderNoData.indexOf(item.ImportOrderNo) > -1);\r\n diplicateImportOrderNoList.forEach((item) => {\r\n const errorInfo = this.createErrorInfo(spreadInfo.spread, spreadInfo.spreadName, item.VisualIndex, importOrderNoColIndex, importOrderNoIndexColName, SPIRIT.util.getMessage(SPIRIT.message.MSG_E_00017, [importOrderNoIndexColName]));\r\n errorInfoList.push(errorInfo);\r\n });\r\n\r\n // 並び順でここまでエラーが無かった場合\r\n if (diplicateImportOrderNoList.length == 0 && isOrverImportOrderNoList.length == 0) {\r\n\r\n // 連番になっているかチェック(飛び番になってたらエラー)\r\n let isSerialOrderNoList = _.cloneDeep(isCheckImportOrderNoList);\r\n isSerialOrderNoList = _.sortBy(isSerialOrderNoList, 'ImportOrderNo'); // 並び順に設定\r\n let orderNoList = _.map(isSerialOrderNoList, 'ImportOrderNo');\r\n let firstOrderNo = orderNoList.reduce((a, b) => Math.min(a, b)); //並び順の最小値を取得\r\n\r\n // #4971 保守 並び順に変更がない場合はエラーとしない\r\n // ⇒まずキー単位の中で全てチェックし、1つでも変更がないか確認する。\r\n\r\n let isChangeOrderNoFlag = false;\r\n\r\n for (var data of isSerialOrderNoList) {\r\n const beforeData = beforeDataList.find(b => b[id] == data[id]);\r\n if ((data.ImportType == SPIRIT.codes.ImportType.EDITED.value && data.ImportOrderNo != beforeData?.ImportOrderNo)\r\n || (data.ImportType == SPIRIT.codes.ImportType.ADDED.value && !_.isNil(data.ImportOrderNo))) {\r\n isChangeOrderNoFlag = true;\r\n break;\r\n }\r\n }\r\n\r\n // 変更があった場合のみ、連番チェックする\r\n if (isChangeOrderNoFlag) {\r\n\r\n let isNotSerial = false;\r\n\r\n // 並び順を一つずつ回し、連番になっているか\r\n for (var data of isSerialOrderNoList) {\r\n if (data.ImportOrderNo != firstOrderNo) {\r\n isNotSerial = true;\r\n break;\r\n }\r\n firstOrderNo++;\r\n }\r\n\r\n if (isNotSerial) {\r\n isCheckImportOrderNoList.forEach((item) => {\r\n const errorInfo = this.createErrorInfo(spreadInfo.spread, spreadInfo.spreadName, item.VisualIndex, importOrderNoColIndex, importOrderNoIndexColName, SPIRIT.util.getMessage(SPIRIT.message.MSG_E_00015, [importOrderNoIndexColName, '連番']));\r\n errorInfoList.push(errorInfo);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n return errorInfoList;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import * as _ from \"lodash\";\r\nimport { Spread } from \"../../grapecity\";\r\nimport * as SPIRIT from \"../../SPIRIT\";\r\n\r\n/**\r\n * Spread基底クラス\r\n */\r\nexport class SpreadBase {\r\n\r\n protected gridMode: SPIRIT.constant.GridMode;\r\n\r\n protected spread: Spread.Sheets.Workbook;\r\n\r\n protected settingInfo;\r\n\r\n\r\n /**\r\n * \r\n * @param mode\r\n */\r\n constructor(mode: SPIRIT.constant.GridMode) {\r\n\r\n this.gridMode = mode;\r\n }\r\n\r\n\r\n\r\n /**\r\n * spreadメソッドを返却\r\n * @returns spreadメソッドl\r\n */\r\n public getSpread() {\r\n return this.spread;\r\n }\r\n\r\n /**\r\n * sheetメソッドを返却\r\n * @returns spreadメソッドl\r\n */\r\n public getSheet(pos: string | number) {\r\n\r\n if (_.isNumber(pos)) {\r\n return this.spread.getSheet(pos);\r\n } else {\r\n return this.spread.getSheetFromName(pos);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Spread情報\r\n * */\r\n public getSpreadInfo() {\r\n this.settingInfo.spread = this.spread;\r\n return this.settingInfo;\r\n }\r\n\r\n /**\r\n * Spreadの設定\r\n * */\r\n protected setDefaultSpreadSetting(spread: Spread.Sheets.Workbook) {\r\n\r\n // タブ関連\r\n // シート名編集禁止設定\r\n spread.options.tabEditable = false;\r\n // シートタブをドラッグして順序を変更できないように設定\r\n spread.options.allowSheetReorder = false;\r\n // タブナビゲーションの非表示設定\r\n spread.options.tabNavigationVisible = false;\r\n // タブストリップ幅の比率を設定\r\n //spread.options.tabStripRatio = 0.5;\r\n // スクロール関連\r\n // スクロールバーがアクティブシートの最後の行および列に揃うように設定\r\n spread.options.scrollbarMaxAlign = true;\r\n // 表示されるスクロールバーがシートの全体の列数と行数と揃うように設定\r\n spread.options.scrollbarShowMax = true;\r\n // その他\r\n // 貼り付け範囲が足りない場合に貼り付け範囲を拡張する\r\n spread.options.allowExtendPasteRange = true;\r\n\r\n // Event\r\n // F2 イベント\r\n // F2キーの設定\r\n const manager = spread.commandManager();\r\n\r\n // F2キー押下時にコールされる処理の設定\r\n const commandF2 = {\r\n canUndo: true,\r\n execute: (context, options, isUndo) => {\r\n const currentSheet = context.getSheetFromName(options.sheetName);\r\n if (!currentSheet.isEditing()) {\r\n //編集開始\r\n currentSheet.startEdit();\r\n }\r\n }\r\n };\r\n\r\n // F2キー(キーコード113)に上記の処理\"commandF2\"を割り当て\r\n // 引数詳細(https://docs.grapecity.com/help/this.spread-js/sheets/#SpreadJS~GC.Spread.Commands.CommandManager~register.html)\r\n manager.register(\"f2Edit\", commandF2, 113, false, false, false, false);\r\n\r\n }\r\n\r\n /**\r\n * 配列内のObjectを比較し、差分があったObjectの配列のみ返却\r\n * @param src 比較元\r\n * @param dst 比較先\r\n */\r\n // 共通にできるか検討が必要なため一旦呼ばないでください。\r\n protected getDiff(src, dst, customComparator) {\r\n\r\n //let arrayA = [{ 'id': 1, 'name': '花子' }, { 'id': 2, 'name': '太郎' }, { 'id': 3, 'name': '次郎' }];\r\n //let arrayB = [{ 'id': 1, 'name': '花子' }];\r\n\r\n //_.differenceWith(arrayA, arrayB, _.isEqual)\r\n //// [{\"id\":2,\"name\":\"太郎\"},{\"id\":3,\"name\":\"次郎\"}]\r\n\r\n //// こんな感じでも指定できる\r\n //const customComparator = (a, b) => {\r\n // return a.id === b.id && a.name === b.name\r\n //}\r\n //_.differenceWith(arrayA, arrayB, customComparator)\r\n //// [{\"id\":2,\"name\":\"太郎\"},{\"id\":3,\"name\":\"次郎\"}]\r\n\r\n console.log(src);\r\n console.log(dst);\r\n // これだとプロパティ数も一致する必要があるので、項目を絞って比較しないと\r\n // spreadjsの操作でなくなるプロパティ(列定義されていないもの)があるのでダメ。\r\n //const diff = _.differenceWith(src, dst, _.isEqual);\r\n const diff = _.differenceWith(src, dst, customComparator);\r\n\r\n\r\n\r\n console.log(diff);\r\n\r\n // TODO 配列の差は確認できることを確認。\r\n // もう少し使いやすいように処理も検討が必要。\r\n // その前にデータソースの確立を優先するため一旦ここまでとする。\r\n\r\n // 共通でなく個別でやってもらうか?\r\n\r\n return diff;\r\n }\r\n\r\n /**\r\n * 現在の状態で表示順を設定\r\n * @param list 現在のGridの状態の配列\r\n */\r\n // 共通にできるか検討が必要なため一旦呼ばないでください。\r\n protected SetOrderNo(list: any[]) {\r\n\r\n //// 名前降順\r\n //_.orderBy(members, 'name', 'desc'); // => membersが書き換わる\r\n\r\n //// 名前の長さ昇順\r\n //_.orderBy(members, (item) => {\r\n // return item.name.length;\r\n //}, 'desc');\r\n\r\n //// 名前昇順・作成日降順(名前のほうが優先)\r\n //_.orderBy(members, ['name', 'created_at'], ['asc', 'desc']);\r\n\r\n // sortBy / orderBy \r\n // 関数あるいはプロパティ名で並び替え\r\n // orderByの方が、昇順降順が選べる\r\n // 破壊的(元の配列の順番を変えてしまう)なので注意\r\n\r\n // 破壊的のためクローン\r\n const tmpList = _.cloneDeep(list);\r\n\r\n\r\n\r\n // 現在の順番でorderNoを変更\r\n tmpList.forEach((item, index) => {\r\n const orderNo = index + 1;\r\n item.OrderNo = orderNo;\r\n });\r\n\r\n // TODO グループ毎の順番を設定する必要がある\r\n\r\n // 共通でなく個別でやってもらうか?\r\n\r\n return tmpList;\r\n }\r\n\r\n\r\n /**\r\n * Exportするファイルを作成し、コールバックにSpreadのJSONを返却\r\n * ※一覧形式のみ対応。マトリックス表現するようなものは個別で実装してください!!!\r\n * @param url データ取得URL\r\n * @param sheetName シート名\r\n * @param colInfos カラム情報(取込区分、システムカラムは除く)\r\n * @param idColName ID列名\r\n * @param hasImportUserAuth インポート権限を持つユーザか(trueの場合、取込区分がつく)\r\n * @param cb ダウンロード処理関数\r\n */\r\n protected exportSpreadJsonForMaster(url: string, sheetName: string, colInfos, idColName: string, hasImportUserAuth: boolean, cb) {\r\n\r\n SPIRIT.util.getData(url).then((data) => {\r\n\r\n // 仮DOM\r\n const $tmp = $('
');\r\n\r\n // Spread作成\r\n const spread = new Spread.Sheets.Workbook($tmp[0], { sheetCount: 1 });\r\n\r\n spread.suspendPaint();\r\n\r\n const sheet = spread.getActiveSheet();\r\n\r\n sheet.name(sheetName);\r\n sheet.autoGenerateColumns = false;\r\n sheet.setDataSource(data);\r\n\r\n // 取込区分\r\n const firstFixColInfos = [{ name: 'ImportType', displayName: '取込区分', size: 80 }];\r\n const firstConcatColInfos = hasImportUserAuth ? firstFixColInfos.concat(colInfos) : colInfos;\r\n\r\n // システムカラム\r\n const lastColInfos = [\r\n { name: 'UpdateUserName', displayName: '更新ユーザ名', size: 150 },\r\n { name: 'UpdateUserLoginId', displayName: '更新ユーザID', size: 100 },\r\n { name: 'UpdateDateString', displayName: '更新日時', size: 200 },\r\n ];\r\n const concatColInfos = firstConcatColInfos.concat(lastColInfos);\r\n\r\n sheet.bindColumns(concatColInfos);\r\n\r\n // 列スタイル設定\r\n concatColInfos.forEach((item, index) => {\r\n\r\n // 取込区分列のリスト設定\r\n if (hasImportUserAuth && item.name == 'ImportType') {\r\n const dv = Spread.Sheets.DataValidation.createListValidator('追加, 変更, 削除');\r\n dv.showErrorMessage(true);\r\n // ヘッダ行も設定される(行数指定がないので本来はこうするべき)\r\n //sheet.setDataValidator(-1, index, dv, Spread.Sheets.SheetArea.viewport);\r\n // ヘッダ行が設定されない方法(行数指定が必要:一旦Excel最大行数は1048576なのでヘッダ数を引いて1048575にする)\r\n sheet.setDataValidator(0, 0, 1048575, 1, dv, Spread.Sheets.SheetArea.viewport);\r\n }\r\n\r\n // 列罫線\r\n const style = new Spread.Sheets.Style();\r\n style.borderTop = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderBottom = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderLeft = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderRight = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n\r\n // ID列の背景色指定\r\n if (hasImportUserAuth && item.name == idColName) {\r\n style.backColor = '#FFFF00';\r\n } else {\r\n // ヘッダー背景色指定\r\n const colHeader = sheet.getRange(0, index, 1, 1, Spread.Sheets.SheetArea.colHeader);\r\n colHeader.backColor('#E8E8E8');\r\n }\r\n\r\n sheet.setStyle(-1, index, style, Spread.Sheets.SheetArea.viewport);\r\n });\r\n\r\n spread.resumePaint();\r\n\r\n const json = spread.toJSON({ includeBindingSource: true, columnHeadersAsFrozenRows: true });\r\n\r\n if (cb != null) {\r\n cb(json);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n * 数値型制御用イベント\r\n * @deprecated\r\n */\r\n createNumberArea(row, col, sheet) {\r\n var cell = sheet.getCell(row, col, Spread.Sheets.SheetArea.viewport);\r\n cell.hAlign(Spread.Sheets.HorizontalAlign.right);\r\n }\r\n\r\n /**\r\n * カレンダー型制御用イベント\r\n * @deprecated\r\n */\r\n createCalenderArea(row, col, sheet) {\r\n // カレンダードロップダウンリストの作成\r\n var style = new Spread.Sheets.Style();\r\n\r\n // フォーマットの指定\r\n style.formatter = \"yyyy/MM/dd\";\r\n style.cellButtons = [\r\n {\r\n imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n command: \"openDateTimePicker\",\r\n useButtonStyle: false,\r\n }\r\n ];\r\n style.dropDowns = [\r\n {\r\n type: Spread.Sheets.DropDownType.dateTimePicker,\r\n option: {\r\n showTime: false,\r\n startDay: Spread.Sheets.CalendarStartDay.sunday,\r\n }\r\n }\r\n ];\r\n // 該当行にセット\r\n sheet.setStyle(row, col, style);\r\n var cell = sheet.getCell(row, col, Spread.Sheets.SheetArea.viewport);\r\n cell.hAlign(Spread.Sheets.HorizontalAlign.right);\r\n }\r\n\r\n\r\n\r\n /**\r\n * 区分列のレイアウトをセットする\r\n * @deprecated\r\n */\r\n setSectionTypeLayout(sheet, contentRow) {\r\n // 区分列の色を変更\r\n var cell = sheet.getCell(contentRow, 0, Spread.Sheets.SheetArea.viewport);\r\n cell.backColor(\"#e6e6e6\");\r\n cell.foreColor(\"#3f3f3f\");\r\n cell.borderBottom(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium));\r\n cell.borderRight(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n * \r\n */\r\n getColumnRange(col, sheet: Spread.Sheets.Worksheet): Spread.Sheets.CellRange {\r\n return sheet.getRange(-1, col, -1, 1);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n getColumnStyle(col, sheet: Spread.Sheets.Worksheet): Spread.Sheets.Style {\r\n return sheet.getStyle(-1, col) || new Spread.Sheets.Style();\r\n }\r\n\r\n /**\r\n * \r\n */\r\n setColumnStyle(col, style: Spread.Sheets.Style, sheet: Spread.Sheets.Worksheet, sheetArea?: Spread.Sheets.SheetArea) {\r\n return sheet.setStyle(-1, col, style, sheetArea);\r\n }\r\n\r\n\r\n /**\r\n * 数値型カラム\r\n * \r\n * @param col\r\n * @param sheet\r\n */\r\n createNumberColumn(col, sheet: Spread.Sheets.Worksheet) {\r\n var colRange = this.getColumnRange(col, sheet);\r\n colRange.hAlign(Spread.Sheets.HorizontalAlign.right);\r\n }\r\n\r\n /**\r\n * カレンダー型カラム\r\n * \r\n * @param col\r\n * @param sheet\r\n */\r\n createCalenderColumn(col, sheet: Spread.Sheets.Worksheet) {\r\n // カレンダードロップダウンリストの作成\r\n var style = new Spread.Sheets.Style();\r\n\r\n // フォーマットの指定\r\n style.formatter = \"yyyy/MM/dd\";\r\n style.cellButtons = [\r\n {\r\n imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n command: \"openDateTimePicker\",\r\n useButtonStyle: false,\r\n }\r\n ];\r\n style.dropDowns = [\r\n {\r\n type: Spread.Sheets.DropDownType.dateTimePicker,\r\n option: {\r\n showTime: false,\r\n startDay: Spread.Sheets.CalendarStartDay.sunday,\r\n }\r\n }\r\n ];\r\n\r\n\r\n //// 該当行にセット\r\n //sheet.setStyle(row, col, style);\r\n //var cell = sheet.getCell(row, col, Spread.Sheets.SheetArea.viewport);\r\n //cell.hAlign(Spread.Sheets.HorizontalAlign.right);\r\n\r\n //// スタイルを列に設定します。\r\n //sheet.setStyle(-1, col, style, Spread.Sheets.SheetArea.viewport)\r\n\r\n // Rangeで指定スタイルを列に設定します。\r\n //var colRange = sheet.getRange(-1, col, -1, 1);\r\n var colRange = this.getColumnRange(col, sheet);\r\n\r\n colRange.formatter(\"yyyy/MM/dd\");\r\n colRange.cellButtons(style.cellButtons);\r\n colRange.dropDowns(style.dropDowns);\r\n colRange.locked(false);\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param col\r\n * @param sheet\r\n */\r\n setSectionTypeColumnStyle(col, sheet: Spread.Sheets.Worksheet) {\r\n\r\n\r\n //旧\r\n //// 区分列の色を変更\r\n //var cell = sheet.getCell(contentRow, 0, Spread.Sheets.SheetArea.viewport);\r\n //cell.backColor(\"#e6e6e6\");\r\n //cell.foreColor(\"#3f3f3f\");\r\n //cell.borderBottom(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium));\r\n //cell.borderRight(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium));\r\n\r\n\r\n // ①スタイルを列に設定します。\r\n //var style = this.getColumnStyle(col, sheet);\r\n //style.backColor = \"#e6e6e6\";\r\n //style.foreColor = \"#3f3f3f\";\r\n //style.borderBottom = new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium);\r\n //style.borderRight = new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium);\r\n //this.setColumnStyle(col, style, sheet);\r\n\r\n\r\n // ②Range\r\n var colRange = this.getColumnRange(col, sheet);\r\n colRange.backColor(\"#e6e6e6\");\r\n colRange.foreColor(\"#3f3f3f\");\r\n colRange.borderBottom(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.thin));\r\n colRange.borderRight(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.thin));\r\n\r\n //権限に応じて非表示にする\r\n if (this.gridMode == SPIRIT.constant.GridMode.EDIT) {\r\n colRange.visible(true);\r\n } else {\r\n colRange.visible(false);\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * 指定のカラムにshowEllipsis(...)を設定\r\n * @param col\r\n * @param sheet\r\n * @param value\r\n */\r\n showColumnEllipsis(col, sheet: Spread.Sheets.Worksheet, value: boolean) {\r\n var colRange = this.getColumnRange(col, sheet);\r\n colRange.showEllipsis(value);\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * Sheet\r\n */\r\nexport class SpreadSheet {\r\n\r\n\r\n\r\n}\r\n\r\n","import { ModalBase } from './base/base';\r\nimport { PageBase } from './base/pageBase'\r\nimport { ConfirmDialog, DialogResultType } from './dialog'\r\n\r\n\r\n/**\r\n * 業務共通処理ユーティリティ\r\n */\r\n//export default class Business {\r\nexport class Business {\r\n\r\n static readonly conifrmTitie = 'このページから移動しますか?';\r\n static readonly conifrmMessage = '行った変更が保存されない可能性があります。';\r\n //static readonly conifrmMessage = 'このページから移動しますか?\\n行った変更が保存されない可能性があります。';\r\n\r\n /**\r\n * 表示ページの状態を取得・設定\r\n */\r\n static readonly page = {\r\n /**\r\n * 編集中チェック\r\n * @param event\r\n */\r\n get pageInstance(): PageBase {\r\n //const spirit = $('#body-container').data('SPIRIT') || $(document).data('SPIRIT');\r\n const spirit = $(PageBase.INSTANCE_RETAINER).data(PageBase.DATA_KEY) || $(document).data(PageBase.DATA_KEY);\r\n //debugger;\r\n //console.log(spirit instanceof PageBase);\r\n //console.log(spirit._proto_ instanceof PageBase);\r\n\r\n ////参照先がかわった?効かなくなった(謎???)\r\n ////少し気持ち悪い。\r\n\r\n //if (spirit instanceof PageBase) {\r\n // return spirit;\r\n //}\r\n //return null;\r\n\r\n ////おそらくWebPackModule化していることにより、\r\n ////ページで作ったPageBaseと当global領域で作成したpageBaseは別物になっている様な気がする(レキシカルスコープなので)\r\n\r\n return spirit;\r\n },\r\n\r\n /**\r\n * 編集中チェック(Modal)\r\n */\r\n get modalInstance(): ModalBase {\r\n const spirit = $(ModalBase.INSTANCE_RETAINER).data(ModalBase.DATA_KEY) || $(document).data(ModalBase.DATA_KEY);\r\n return spirit;\r\n },\r\n\r\n /**\r\n * 編集中チェック(All)\r\n * @param event\r\n */\r\n get isEdited(): boolean {\r\n const isEditedPage = Business.page.isEditedPage;\r\n const isEditedModal = Business.page.isEditedModal;\r\n return isEditedPage || isEditedModal;\r\n },\r\n\r\n /**\r\n * 編集中チェック(Modal)\r\n * @param event\r\n */\r\n get isEditedPage(): boolean {\r\n\r\n //const spirit = $(PageBase.INSTANCE_RETAINER).data(PageBase.DATA_KEY) || $(document).data(PageBase.DATA_KEY);\r\n //if (spirit instanceof PageBase) {\r\n // if (spirit.isEdited) { return true; }\r\n //}\r\n\r\n const spirit = Business.page.pageInstance;\r\n if (spirit) {\r\n if (spirit.isEdited) { return true; }\r\n }\r\n\r\n //return true;//stub\r\n return false;\r\n },\r\n\r\n\r\n /**\r\n * 編集中チェック(Modal)\r\n * @param event\r\n */\r\n get isEditedModal(): boolean {\r\n const spirit = Business.page.modalInstance;\r\n if (spirit) {\r\n if (spirit.isEdited) { return true; }\r\n }\r\n //return true;//stub\r\n return false;\r\n },\r\n\r\n /**\r\n * 強制的に編集状態をキャンセルする\r\n */\r\n immediateEditCancel() {\r\n const modal = Business.page.pageInstance;\r\n if (modal) { modal.isEdited = false; }\r\n const page = Business.page.pageInstance;\r\n if (page) { page.isEdited = false; }\r\n },\r\n\r\n /**\r\n * 編集中チェック\r\n * @param event\r\n */\r\n async confirmClose(callback: (result: DialogResultType) => void) {\r\n\r\n //if (window.confirm && Business.page.isEdited) {\r\n if (Business.page.isEdited) {\r\n //ConfirmDialog('このページから移動しますか?', '行った変更が保存されない可能性があります。', callback);\r\n //ConfirmDialog(Business.conifrmTitie, Business.conifrmMessage, callback);\r\n //自前のダイアログは廃止。Legacyなスタイルに変更(Mobileでどうなるかが心配)\r\n if (window.confirm(Business.conifrmTitie + \"\\n\" + Business.conifrmMessage)) {\r\n callback(\"ok\");\r\n } else {\r\n //callback(\"cancel\");\r\n callback(\"no\");\r\n }\r\n } else {\r\n callback(\"ok\");\r\n }\r\n },\r\n\r\n /**\r\n * 編集中チェック(Modalのみ)\r\n * @param event\r\n */\r\n async confirmCloseModal(callback: (result: DialogResultType) => void, modalInstance?: ModalBase) {\r\n var isEdit = false;\r\n if (modalInstance) {\r\n isEdit = modalInstance.isEdited;\r\n } else {\r\n isEdit = Business.page.isEditedModal;\r\n }\r\n if (isEdit) {\r\n //Modalの「hiding」イベントでインターセプト仕様としたが、下記自前のダイアログにしてしまうと非同期になり、hiding処理を止められない為\r\n //Legacyなスタイルにする(beforeUnloadではそもそも自前のダイアログを表示出来ない為、平仄があっていいかも)\r\n //ConfirmDialog('このページから移動しますか?', '行った変更が保存されない可能性があります。', callback);\r\n //ConfirmDialog(Business.conifrmTitie, Business.conifrmMessage, callback);\r\n if (window.confirm(Business.conifrmTitie + \"\\n\" + Business.conifrmMessage)) {\r\n callback(\"ok\");\r\n } else {\r\n //callback(\"cancel\");\r\n callback(\"no\");\r\n }\r\n } else {\r\n callback(\"ok\");\r\n }\r\n },\r\n\r\n /**\r\n * 編集中チェック\r\n * @param event\r\n */\r\n confirmCloseHandler(event) {\r\n\r\n if (Business.page.isEdited) {\r\n //そもそもiOS-Safariではうまく動かないらしい\r\n event.preventDefault();\r\n //ChromeやFireFoxなどではメッセージは変更不可!IE、EdgeはOK?\r\n //const message = 'UnLoad?';\r\n\r\n event.returnValue = Business.conifrmMessage;\r\n return Business.conifrmMessage;\r\n }\r\n },\r\n\r\n /**\r\n * ページの破棄を監視する\r\n */\r\n checkPageCloseOn() {\r\n //一旦アンバインド\r\n Business.page.checkPageCloseOff();\r\n //編集中チェック\r\n $(window).on('beforeunload', Business.page.confirmCloseHandler);\r\n\r\n //TODO mobile Safari対応 https://zapanet.info/blog/item/3361\r\n //mobile Safariではbeforeunloadは効かなくて、\r\n //それどころかブラウザによって挙動も少しずつ変わってくることがわかりました。\r\n //beforeunloadではなくpagehideを使ったり、実装するのはけっこう面倒くさそうです\r\n\r\n //$(window).on('pagehide', Business.page.confirmClose);\r\n },\r\n\r\n\r\n /**\r\n * ページの破棄を解除する\r\n * 更新処理で、スクリーンナビゲーション(PostBackなどが発生する場合はこれで解除する)\r\n */\r\n checkPageCloseOff() {\r\n //編集中チェック解除\r\n $(window).off('beforeunload', Business.page.confirmCloseHandler);\r\n //TODO mobile Safari対応 https://zapanet.info/blog/item/3361\r\n //$(window).on('pagehide', Business.page.confirmClose);\r\n }\r\n }\r\n\r\n}\r\n","export * from \"./progressBar\"\r\nexport * from \"./progressTimer\"\r\nexport * from \"./progressTimeSpan\"\r\n","import { debug } from 'console';\r\nimport * as $ from 'jquery';\r\nimport * as _ from 'lodash';\r\n\r\n\r\nexport type ProgressBarOptions = {\r\n min?: number,\r\n max?: number,\r\n now?: number,\r\n height?: number,\r\n width?: number,\r\n prefix?: string,\r\n showLabel?: boolean,\r\n showInnerLabel?: boolean,\r\n}\r\n\r\n/** */\r\nexport class ProgressBar {\r\n\r\n /** */\r\n public container: JQuery;\r\n /** */\r\n public progress: JQuery;\r\n /** */\r\n public progressBar: JQuery;\r\n /***/\r\n public labels: JQuery;\r\n /** */\r\n public prefix = '%';\r\n /** */\r\n public parRemaining: number;\r\n /** */\r\n protected _max = 100;\r\n /** */\r\n get max() { return this._max; }\r\n /** */\r\n set max(value) {\r\n this._max = value;\r\n this.progressBar.prop('aria-valuemax', this.max);\r\n }\r\n\r\n /** */\r\n protected _min = 0;\r\n /** */\r\n get min() { return this._min; }\r\n /** */\r\n set min(value) {\r\n this._min = value;\r\n this.progressBar.prop('aria-valuemin', this.min);\r\n }\r\n\r\n /** */\r\n protected _height = null;\r\n /** */\r\n get height() { return this._height; }\r\n /** */\r\n set height(value) {\r\n this._height = value;\r\n this.progress.height(this._height);\r\n }\r\n /** */\r\n protected _width = null;\r\n /** */\r\n get width() { return this._width; }\r\n /** */\r\n set width(value) {\r\n this._width = value;\r\n //this.progress.width(this._width);\r\n //if (this._width) {\r\n // this.container.addClass('d-inline-block');\r\n //} else {\r\n // this.container.removeClass('d-inline-block');\r\n //}\r\n this.container.width(this._width);\r\n }\r\n\r\n /** */\r\n protected _current = 0;\r\n /** */\r\n get current() { return this._current; }\r\n /** */\r\n set current(value) {\r\n //this._current = value;\r\n this.set(value);\r\n }\r\n\r\n /**/\r\n protected showLabel: boolean;\r\n /**/\r\n protected showInnerLabel: boolean;\r\n\r\n\r\n /***/\r\n public onTickedLabel: (current: number) => string;\r\n\r\n /**\r\n * \r\n * @param selector\r\n * @param options\r\n */\r\n constructor(selector: any, options?: ProgressBarOptions) {\r\n this.container = $(selector);\r\n\r\n this.showLabel = (!_.isNil(options.showLabel)) ? options.showLabel : true;\r\n this.showInnerLabel = (!_.isNil(options.showInnerLabel)) ? options.showInnerLabel : true;\r\n\r\n this.create();\r\n\r\n this.max = (!_.isNil(options.max)) ? options.max : this.max;\r\n this.min = (!_.isNil(options.min)) ? options.min : this.min;\r\n this.current = (!_.isNil(options.now)) ? options.now : this.current;\r\n this.height = (!_.isNil(options.height)) ? options.height : this.height;\r\n this.width = (!_.isNil(options.width)) ? options.width : this.width;\r\n\r\n if (!_.isNil(options.prefix)) {\r\n this.prefix = options.prefix;\r\n }\r\n\r\n }\r\n\r\n /** */\r\n private create() {\r\n\r\n //
\r\n //
25%
\r\n //
\r\n\r\n //自身が.progressの場合、許さない(クラス消す)\r\n if (this.container.is('.progress')) {\r\n this.container.removeClass('progress');\r\n }\r\n this.container.addClass('sp-progress-container');\r\n\r\n //中身を一旦クリア\r\n this.container.empty();\r\n\r\n\r\n //基本モジュール勝ちで勝手に構造を構築\r\n this.progress = $('
').addClass('progress').addClass('sp-progress');\r\n this.container.append(this.progress);\r\n this.progressBar = $('div.progress-bar', this.progress);\r\n if (this.progressBar.length === 0) {\r\n this.progressBar = $('
').addClass('progress-bar').addClass('sp-progress-bar');\r\n this.progress.append(this.progressBar);\r\n }\r\n\r\n if (this.showLabel) {\r\n //this.labels = $('').addClass('sp-progress-label');\r\n this.labels = $('
').addClass('sp-progress-label');\r\n //this.progress.append(this.labels);\r\n //this.container.append(this.labels);\r\n this.container.prepend(this.labels);\r\n }\r\n }\r\n\r\n /**\r\n * @param n\r\n */\r\n protected set(n) {\r\n\r\n this._current = (n > this.max) ? this.max : n;\r\n this.parRemaining = Math.ceil((this._current / this.max) * 100);\r\n this.parRemaining = Number.isSafeInteger(this.parRemaining) ? this.parRemaining : null;\r\n this.progressBar.css('width', this.parRemaining + '%').prop('aria-valuenow', this._current);\r\n this.setLabel();\r\n return this;\r\n }\r\n\r\n /** */\r\n setLabel() {\r\n if (this.showInnerLabel) {\r\n //this.progressBar.text(this._current);\r\n this.progressBar.text(this.parRemaining + + this.prefix);\r\n }\r\n if (this.showLabel) {\r\n //var text = (this.setLabelFunc) ? this.setLabelFunc(this.current) : this.parRemaining + this.prefix;\r\n var text = (this.onTickedLabel) ? this.onTickedLabel(this.current) : (!_.isNil(this.parRemaining)) ? this.parRemaining + this.prefix : '';\r\n this.labels?.text(text);\r\n }\r\n }\r\n\r\n /** */\r\n animate(animate: boolean) {\r\n if (animate) {\r\n this.progressBar.addClass('progress-bar-striped progress-bar-animated');\r\n } else {\r\n this.progressBar.removeClass('progress-bar-striped progress-bar-animated');\r\n }\r\n return this;\r\n }\r\n\r\n};\r\n","import * as $ from 'jquery';\r\nimport * as _ from 'lodash';\r\nimport { Util } from '../util';\r\nimport { ProgressTimerOptions } from './components';\r\nimport { ProgressBar, ProgressBarOptions } from './progressBar';\r\n\r\n\r\n\r\n\r\n/**\r\n * ProgressTimerで実装するとタイムラグがかなりあるので、固有実装\r\n */\r\nexport class ProgressTimeSpan extends ProgressBar {\r\n\r\n private nIntervId;\r\n private interval: number;\r\n\r\n private startDateTime: Date;\r\n private endDateTime: Date;\r\n\r\n public onTick: (current: number) => number;\r\n public onAt25: () => void;\r\n public onAt50: () => void;\r\n public onAt75: () => void;\r\n public onTimeOut: () => void;\r\n\r\n //private now: Date;\r\n private get now(): Date {\r\n //都度最新\r\n return new Date();\r\n };\r\n\r\n /***/\r\n get nowMilliseconds() {\r\n //return this.now.getMilliseconds();\r\n return this.now.getTime();\r\n\r\n };\r\n /***/\r\n get startDateMilliseconds(): number {\r\n return (Util.date.isDate(this.startDateTime)) ? this.startDateTime.getTime() : 0;\r\n };\r\n\r\n /***/\r\n get endDateMilliseconds(): number {\r\n return (Util.date.isDate(this.endDateTime)) ? this.endDateTime.getTime() : 0;\r\n };\r\n\r\n\r\n /***/\r\n get ToTalSecond() {\r\n //定義をそのまま使用する場合は下記(validDateTimeが仮に存在しないカラムの場合)\r\n //return this.TimeoutMinutes;\r\n //開始から終了までの差\r\n let interval = this.endDateMilliseconds - this.startDateMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval) / (1000));\r\n let cal = Math.floor(interval / (1000));\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /***/\r\n get ToTalMinutes() {\r\n //定義をそのまま使用する場合は下記(validDateTimeが仮に存在しないカラムの場合)\r\n //return this.TimeoutMinutes;\r\n //開始から終了までの差\r\n let interval = this.endDateMilliseconds - this.startDateMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval) / (60 * 1000));\r\n let cal = Math.floor(interval / (60 * 1000));\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /**制限時間までの秒を返す*/\r\n public get RemainingMilliSeconds() {\r\n let interval = this.endDateMilliseconds - this.nowMilliseconds;\r\n let cal = Math.floor(interval);\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /**制限時間までの秒を返す*/\r\n public get RemainingSeconds() {\r\n let interval = this.endDateMilliseconds - this.nowMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval) / 1000);\r\n let cal = Math.floor(interval / 1000);\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n /**制限時間までの分を返す*/\r\n public get RemainingMinutes() {\r\n let interval = this.endDateMilliseconds - this.nowMilliseconds;\r\n //let cal = Math.floor(Math.abs(interval) / (60 * 1000));\r\n let cal = Math.floor(interval / (60 * 1000));\r\n return (cal < 0) ? 0 : cal;\r\n }\r\n\r\n\r\n\r\n /**\r\n * \r\n * @param selector\r\n * @param limit\r\n * @param _options\r\n */\r\n constructor(selector: any, startDateTime, endDateTime, _options?: ProgressTimerOptions) {\r\n\r\n var options: ProgressBarOptions = {};\r\n //options.max = limit || 0;\r\n if (!_.isNil(_options?.height)) { options.height = _options.height; }\r\n if (!_.isNil(_options?.width)) { options.width = _options.width; }\r\n options.max = 0;\r\n options.now = 0;\r\n options.showInnerLabel = false;\r\n\r\n super(selector, options);\r\n\r\n\r\n this.startDateTime = startDateTime;\r\n this.endDateTime = endDateTime;\r\n this.max = this.ToTalSecond;\r\n ////一旦100に\r\n //this.current = this.ToTalSecond;\r\n //////一旦0に\r\n ////this.current = 0;\r\n\r\n //0はまずいのでfalsyとする\r\n this.interval = (_options?.interval) ? _options.interval : 1000;\r\n if (!_.isNil(_options?.onTick)) { this.onTick = _options.onTick; }\r\n if (!_.isNil(_options?.onAt25)) { this.onAt25 = _options.onAt25; }\r\n if (!_.isNil(_options?.onAt50)) { this.onAt50 = _options.onAt50; }\r\n if (!_.isNil(_options?.onAt75)) { this.onAt75 = _options.onAt75; }\r\n if (!_.isNil(_options?.onTimeOut)) { this.onTimeOut = _options.onTimeOut; }\r\n }\r\n\r\n /**\r\n * \r\n * @param at 開始\r\n */\r\n start() {\r\n //開始しない\r\n if (this.RemainingSeconds <= 0) {\r\n this.destroy();\r\n return this;\r\n }\r\n\r\n this.current = this.RemainingSeconds;\r\n this.nIntervId = setInterval(this.tick.bind(this), this.interval);\r\n //console.log('start:nIntervId :' + this.nIntervId);\r\n return this;\r\n }\r\n\r\n /** */\r\n stop() {\r\n //console.log('timeout:nIntervId :' + this.nIntervId);\r\n clearInterval(this.nIntervId);\r\n return this;\r\n }\r\n\r\n /** */\r\n destroy() {\r\n this.onTick = null;\r\n this.onTickedLabel = null;\r\n this.onTimeOut = null;\r\n this.stop();\r\n this.container?.empty();\r\n return this;\r\n }\r\n\r\n /** */\r\n private timeOut() {\r\n this.stop();\r\n\r\n if (this.onTimeOut) {\r\n this.onTimeOut();\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param n\r\n */\r\n tick() {\r\n\r\n //時間補正をかねて、都度計算しなおす\r\n //var nextTick = Math.floor(this.current - (this.interval / 1000));\r\n var nextTick = this.RemainingSeconds;\r\n if (this.onTick) {\r\n //var labelText = this.onTick(nextTick);\r\n //this.setLabelFunc = (c): string => { return labelText; }\r\n var retTick = this.onTick(nextTick);\r\n //var retTick = this.onTick.call(this, nextTick);\r\n if (!_.isNil(retTick)) {\r\n //補正値があればそれを使用\r\n nextTick = retTick;\r\n }\r\n }\r\n\r\n this.current = nextTick;\r\n //console.log('current : ' + this.current);\r\n //計算した結果と生で比較した場合とで若干誤差が生じる為、生データで判断する\r\n //if (this.current <= 0) {RemainingMilliSeconds\r\n if (this.current <= 0) {\r\n //console.log('this.current <= 0 : ' + this.current);\r\n this.timeOut();\r\n //this.timeOut.call(this);\r\n }\r\n this.appearance();\r\n return this;\r\n }\r\n\r\n /** */\r\n appearance() {\r\n\r\n this.progressBar.removeClass('bg-danger bg-warning bg-info bg-succsess');\r\n if (this.parRemaining < 25) { // less than 25 %\r\n this.progressBar.addClass('progress-bar bg-danger');\r\n if (this.onAt25) { this.onAt25(); }\r\n } else if (this.parRemaining < 50) { // less than 50 % (and more than 25 %)\r\n this.progressBar.addClass('progress-bar bg-warning');\r\n if (this.onAt50) { this.onAt50(); }\r\n } else if (this.parRemaining < 75) { // less than 75 % (and more than 50 %)\r\n this.progressBar.addClass('progress-bar bg-info');\r\n if (this.onAt75) { this.onAt75(); }\r\n } else {\r\n this.progressBar.addClass('progress-bar bg-succsess');\r\n }\r\n }\r\n\r\n};\r\n","import * as $ from 'jquery';\r\nimport * as _ from 'lodash';\r\nimport { ProgressBar, ProgressBarOptions } from './progressBar';\r\n\r\n\r\n\r\n/** */\r\nexport type ProgressTimerOptions = {\r\n interval?: number\r\n height?: number\r\n width?: number\r\n //direction: 'decrese' | 'increse';\r\n /**\r\n * return label Text\r\n */\r\n onTick?: (current: number) => number;\r\n onAt25?: () => void;\r\n onAt50?: () => void;\r\n onAt75?: () => void;\r\n onTimeOut?: () => void;\r\n /** */\r\n}\r\n\r\n/**\r\n * \r\n */\r\nexport class ProgressTimer extends ProgressBar {\r\n\r\n private nIntervId;\r\n private interval: number;\r\n private limit: number;\r\n private at: number;\r\n public onTick: (current: number) => number;\r\n public onAt25: () => void;\r\n public onAt50: () => void;\r\n public onAt75: () => void;\r\n public onTimeOut: () => void;\r\n\r\n /**\r\n * \r\n * @param selector\r\n * @param limit\r\n * @param _options\r\n */\r\n constructor(selector: any, limit: number, _options?: ProgressTimerOptions) {\r\n var options: ProgressBarOptions = {};\r\n options.max = limit;\r\n if (!_.isNil(_options?.height)) { options.height = _options.height; }\r\n if (!_.isNil(_options?.width)) { options.width = _options.width; }\r\n\r\n super(selector, options);\r\n this.limit = limit;\r\n //デフォルト1000ミリ秒\r\n //this.interval = (!_.isNil(_options?.interval)) ? _options.interval : 1000;\r\n //0はまずいのでfalsyとする\r\n this.interval = (_options?.interval) ? _options.interval : 1000;\r\n\r\n if (!_.isNil(_options?.onTick)) { this.onTick = _options.onTick; }\r\n if (!_.isNil(_options?.onAt25)) { this.onAt25 = _options.onAt25; }\r\n if (!_.isNil(_options?.onAt50)) { this.onAt50 = _options.onAt50; }\r\n if (!_.isNil(_options?.onAt75)) { this.onAt75 = _options.onAt75; }\r\n if (!_.isNil(_options?.onTimeOut)) { this.onTimeOut = _options.onTimeOut; }\r\n }\r\n\r\n /**\r\n * \r\n * @param at 開始\r\n */\r\n start(at) {\r\n this.current = this.at = at;\r\n this.nIntervId = setInterval(this.tick.bind(this), this.interval);\r\n return this;\r\n }\r\n\r\n /** */\r\n resume() {\r\n this.stop();\r\n this.start(this.current);\r\n return this;\r\n }\r\n\r\n /** */\r\n stop() {\r\n clearInterval(this.nIntervId);\r\n return this;\r\n }\r\n\r\n /** */\r\n private timeOut() {\r\n this.stop();\r\n //if (this.showLabel) {\r\n // this.labels.text('timeout!!');\r\n //}\r\n if (this.onTimeOut) { this.onTimeOut(); }\r\n return this;\r\n }\r\n\r\n /**\r\n * \r\n * @param n\r\n */\r\n tick() {\r\n //increase or decrease?\r\n //var nextTick = this.current - 1;\r\n //var nextTick = Math.ceil(this.current - (this.interval / 1000));\r\n var nextTick = Math.floor(this.current - (this.interval / 1000));\r\n\r\n if (this.onTick) {\r\n //var labelText = this.onTick(nextTick);\r\n //if (labelText) {\r\n // this.setLabelFunc = (c): string => { return labelText; }\r\n //} else {\r\n // this.setLabelFunc = null;\r\n //}\r\n\r\n var retTick = this.onTick(nextTick);\r\n if (!_.isNil(retTick)) {\r\n //補正値があればそれを使用\r\n nextTick = retTick;\r\n }\r\n\r\n }\r\n\r\n this.current = nextTick;\r\n if (this.current <= 0) {\r\n this.timeOut();\r\n }\r\n this.appearance();\r\n return this;\r\n }\r\n\r\n /** */\r\n appearance() {\r\n\r\n this.progressBar.removeClass('bg-danger bg-warning bg-info bg-succsess');\r\n if (this.parRemaining < 25) { // less than 25 %\r\n this.progressBar.addClass('progress-bar bg-danger');\r\n if (this.onAt25) { this.onAt25(); }\r\n } else if (this.parRemaining < 50) { // less than 50 % (and more than 25 %)\r\n this.progressBar.addClass('progress-bar bg-warning');\r\n if (this.onAt50) { this.onAt50(); }\r\n } else if (this.parRemaining < 75) { // less than 75 % (and more than 50 %)\r\n this.progressBar.addClass('progress-bar bg-info');\r\n if (this.onAt75) { this.onAt75(); }\r\n } else {\r\n this.progressBar.addClass('progress-bar bg-succsess');\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n};\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 立会作業操作区分*/\r\nexport class AttendantWorkOperationDiv extends CodeBase\r\n{\r\n /** 立会作業操作区分: \"01\", \"操作制限なし\"*/\r\n public static readonly OPERATIONNONLIMIT: AttendantWorkOperationDiv = new AttendantWorkOperationDiv(\"01\", \"操作制限なし\", \"\");\r\n\r\n /** 立会作業操作区分: \"02\", \"操作制限有り\"*/\r\n public static readonly OPERATIONLIMIT: AttendantWorkOperationDiv = new AttendantWorkOperationDiv(\"02\", \"操作制限有り\", \"○\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): AttendantWorkOperationDiv[] {\r\n return [\r\n AttendantWorkOperationDiv.OPERATIONNONLIMIT,\r\n AttendantWorkOperationDiv.OPERATIONLIMIT,\r\n ];\r\n }\r\n}\r\n","\r\n//親より先に子がロードされる。\r\n//class childView extends keyof Backbone.View{\r\n//}\r\n//class pareView extends Backbone.View{\r\n//}\r\n\r\n\r\n//public abstract class CodeValue : IComparable where T : CodeValue, new()\r\n//abstract class CodeValue>\r\n\r\n\r\nexport abstract class CodeBase>\r\n{\r\n /** コード値を保持*/\r\n protected _code: any\r\n /** コード値を返す*/\r\n public get code() { return this._code; }\r\n /** 値を保持*/\r\n protected _value: any\r\n /** 値を返す*/\r\n public get value() { return this._value; }\r\n /** 略称を返す*/\r\n protected _abbr: any\r\n /** 略称を返す*/\r\n public get abbr() { return this._abbr; }\r\n\r\n /**\r\n * ctor\r\n */\r\n protected constructor(value: any, text: any, abbr?: any) {\r\n this._code = value;\r\n this._value = text;\r\n this._abbr = abbr;\r\n }\r\n\r\n\r\n /** */\r\n public toString(): string {\r\n\r\n return this.value;\r\n }\r\n\r\n\r\n //public abstract List(): T[];\r\n\r\n\r\n /***/\r\n public static getAll>(): CodeBase[] {\r\n let locatedValue = [];\r\n for (var info in this) {\r\n if (this[info] instanceof CodeBase) {\r\n locatedValue.push(this[info]);\r\n }\r\n }\r\n return locatedValue;\r\n }\r\n\r\n\r\n /**\r\n * 指定しコード値に合致した定義に変換する\r\n * @param code\r\n */\r\n public static toCodeValue>(code: any): CodeBase {\r\n var all = this.getAll();\r\n for (var item of all) {\r\n if (item.equalsCode(code)) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * 指定した値に合致した定義に変換する\r\n * @param value\r\n */\r\n public static toCodeValueByValue>(value: any): CodeBase {\r\n var all = this.getAll();\r\n for (var item of all) {\r\n if (item.value === value) {\r\n return item;\r\n }\r\n }\r\n //throw new InvalidCastException(\"指定した値の列挙値はありません。\");\r\n return null;\r\n }\r\n\r\n /**\r\n */\r\n public static getPlaneObjects>(): { code, value, abbr }[] {\r\n var all = this.getAll();\r\n var array: { code, value, abbr }[] = [];\r\n for (var item of all) {\r\n array.push({\r\n code: item.code,\r\n value: item.value,\r\n abbr: item.abbr || null,\r\n });\r\n }\r\n return array;\r\n }\r\n\r\n\r\n\r\n\r\n ///**\r\n // * 指定した文字に合致したValueに変換する\r\n // * @param text\r\n // */\r\n //public static ToValue(text: string) {\r\n // var item = CodeValue.ToEmunText(text);\r\n // if (item != null) {\r\n // return item.Value;\r\n // }\r\n // //throw new InvalidCastException(\"指定した値の列挙値はありません。\");\r\n // return null;\r\n //}\r\n\r\n\r\n ///**\r\n // * 指定したValueに合致した文字に変換する\r\n // * @param value\r\n // */\r\n //public static ToText(value: any): string {\r\n // var item = CodeValue.ToEmun(value);\r\n // if (item != null) {\r\n // return item.Text;\r\n // }\r\n // //throw new InvalidCastException(\"指定した値の列挙値はありません。\");\r\n // return null;\r\n //}\r\n\r\n /**\r\n * \r\n * @param obj\r\n */\r\n public equals(obj: any): boolean {\r\n\r\n if (!(obj instanceof CodeBase)) { return false; }\r\n\r\n var typeMatches = this === obj;\r\n var valueMatches = this.code === obj.code;\r\n return typeMatches && valueMatches;\r\n\r\n //return this === obj;\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n */\r\n public equalsCode(value: any): boolean {\r\n return this.code === value;\r\n }\r\n\r\n\r\n // Other utility methods ...\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * アカウントロック区分\r\n */\r\nexport class AccountLockDiv extends CodeBase\r\n{\r\n\r\n /** アカウントロック区分: \"01\", \"ロック状態でない場合\" */\r\n //空文字だとSpreadのコンボボックスが機能しないようである\r\n //public static readonly UNLOCK: AccountLockDiv = new AccountLockDiv(\"01\", \"ロック状態でない場合\",'');\r\n //#862 Text値未設定のコンボボックスについて(空文字問題解消)\r\n //public static readonly UNLOCK: AccountLockDiv = new AccountLockDiv(\"01\", \"ロック状態でない場合\", '-');\r\n public static readonly UNLOCK: AccountLockDiv = new AccountLockDiv(\"01\", \"ロック状態でない場合\", '');\r\n\r\n /** アカウントロック区分: \"02\", \"ロック状態の場合\" */\r\n public static readonly LOCK: AccountLockDiv = new AccountLockDiv(\"02\", \"ロック状態の場合\", '○');\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): AccountLockDiv[] {\r\n return [\r\n AccountLockDiv.UNLOCK,\r\n AccountLockDiv.LOCK,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 進捗集計基準日区分*/\r\nexport class AggregateTargetDateDiv extends CodeBase\r\n{\r\n /** 進捗集計基準日区分: \"01\", \"当日\", \"\"*/\r\n public static readonly THAT_DAY: AggregateTargetDateDiv = new AggregateTargetDateDiv(\"01\", \"当日\", \"\");\r\n /** 進捗集計基準日区分: \"02\", \"前日\", \"\"*/\r\n public static readonly THE_DAY_BEFORE: AggregateTargetDateDiv = new AggregateTargetDateDiv(\"02\", \"前日\", \"\");\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): AggregateTargetDateDiv[] {\r\n return [\r\n AggregateTargetDateDiv.THAT_DAY,\r\n AggregateTargetDateDiv.THE_DAY_BEFORE,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n\r\n\r\n/**\r\n * 立会作業区分\r\n */\r\nexport class AttendantWorkDiv extends CodeBase\r\n{\r\n /** 立会作業区分: \"01\", \"立会1\"*/\r\n public static readonly AW_1: AttendantWorkDiv = new AttendantWorkDiv(\"01\", \"立会1\", \"\");\r\n\r\n /** 立会作業区分: \"02\", \"立会2\"*/\r\n public static readonly AW_2: AttendantWorkDiv = new AttendantWorkDiv(\"02\", \"立会2\", \"\");\r\n\r\n /** 立会作業区分: \"03\", \"立会3\"*/\r\n public static readonly AW_3: AttendantWorkDiv = new AttendantWorkDiv(\"03\", \"立会3\", \"\");\r\n\r\n /** 立会作業区分: \"04\", \"立会4\"*/\r\n public static readonly AW_4: AttendantWorkDiv = new AttendantWorkDiv(\"04\", \"立会4\", \"\");\r\n\r\n /** 立会作業区分: \"05\", \"立会5\"*/\r\n public static readonly AW_5: AttendantWorkDiv = new AttendantWorkDiv(\"05\", \"立会5\", \"\");\r\n\r\n /** 立会作業区分: \"06\", \"立会6\"*/\r\n public static readonly AW_6: AttendantWorkDiv = new AttendantWorkDiv(\"06\", \"立会6\", \"\");\r\n\r\n /** 立会作業区分: \"07\", \"立会7\"*/\r\n public static readonly AW_7: AttendantWorkDiv = new AttendantWorkDiv(\"07\", \"立会7\", \"\");\r\n\r\n /** 立会作業区分: \"08\", \"立会8\"*/\r\n public static readonly AW_8: AttendantWorkDiv = new AttendantWorkDiv(\"08\", \"立会8\", \"\");\r\n\r\n /** 立会作業区分: \"09\", \"立会9\"*/\r\n public static readonly AW_9: AttendantWorkDiv = new AttendantWorkDiv(\"09\", \"立会9\", \"\");\r\n\r\n /** 立会作業区分: \"10\", \"立会10\"*/\r\n public static readonly AW_10: AttendantWorkDiv = new AttendantWorkDiv(\"10\", \"立会10\", \"\");\r\n\r\n /** 立会作業区分: \"11\", \"立会11\"*/\r\n public static readonly AW_11: AttendantWorkDiv = new AttendantWorkDiv(\"11\", \"立会11\", \"\");\r\n\r\n /** 立会作業区分: \"12\", \"立会12\"*/\r\n public static readonly AW_12: AttendantWorkDiv = new AttendantWorkDiv(\"12\", \"立会12\", \"\");\r\n\r\n /** 立会作業区分: \"13\", \"立会13\"*/\r\n public static readonly AW_13: AttendantWorkDiv = new AttendantWorkDiv(\"13\", \"立会13\", \"\");\r\n\r\n /** 立会作業区分: \"14\", \"立会14\"*/\r\n public static readonly AW_14: AttendantWorkDiv = new AttendantWorkDiv(\"14\", \"立会14\", \"\");\r\n\r\n /** 立会作業区分: \"15\", \"立会15\"*/\r\n public static readonly AW_15: AttendantWorkDiv = new AttendantWorkDiv(\"15\", \"立会15\", \"\");\r\n\r\n /** 立会作業区分: \"16\", \"立会16\"*/\r\n public static readonly AW_16: AttendantWorkDiv = new AttendantWorkDiv(\"16\", \"立会16\", \"\");\r\n\r\n /** 立会作業区分: \"17\", \"立会17\"*/\r\n public static readonly AW_17: AttendantWorkDiv = new AttendantWorkDiv(\"17\", \"立会17\", \"\");\r\n\r\n /** 立会作業区分: \"18\", \"立会18\"*/\r\n public static readonly AW_18: AttendantWorkDiv = new AttendantWorkDiv(\"18\", \"立会18\", \"\");\r\n\r\n /** 立会作業区分: \"19\", \"立会19\"*/\r\n public static readonly AW_19: AttendantWorkDiv = new AttendantWorkDiv(\"19\", \"立会19\", \"\");\r\n\r\n /** 立会作業区分: \"20\", \"立会20\"*/\r\n public static readonly AW_20: AttendantWorkDiv = new AttendantWorkDiv(\"20\", \"立会20\", \"\");\r\n\r\n /** 立会作業区分: \"21\", \"立会21\"*/\r\n public static readonly AW_21: AttendantWorkDiv = new AttendantWorkDiv(\"21\", \"立会21\", \"\");\r\n\r\n /** 立会作業区分: \"22\", \"立会22\"*/\r\n public static readonly AW_22: AttendantWorkDiv = new AttendantWorkDiv(\"22\", \"立会22\", \"\");\r\n\r\n /** 立会作業区分: \"23\", \"立会23\"*/\r\n public static readonly AW_23: AttendantWorkDiv = new AttendantWorkDiv(\"23\", \"立会23\", \"\");\r\n\r\n /** 立会作業区分: \"24\", \"立会24\"*/\r\n public static readonly AW_24: AttendantWorkDiv = new AttendantWorkDiv(\"24\", \"立会24\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): AttendantWorkDiv[] {\r\n return [\r\n AttendantWorkDiv.AW_1,\r\n AttendantWorkDiv.AW_2,\r\n AttendantWorkDiv.AW_3,\r\n AttendantWorkDiv.AW_4,\r\n AttendantWorkDiv.AW_5,\r\n AttendantWorkDiv.AW_6,\r\n AttendantWorkDiv.AW_7,\r\n AttendantWorkDiv.AW_8,\r\n AttendantWorkDiv.AW_9,\r\n AttendantWorkDiv.AW_10,\r\n AttendantWorkDiv.AW_11,\r\n AttendantWorkDiv.AW_12,\r\n AttendantWorkDiv.AW_13,\r\n AttendantWorkDiv.AW_14,\r\n AttendantWorkDiv.AW_15,\r\n AttendantWorkDiv.AW_16,\r\n AttendantWorkDiv.AW_17,\r\n AttendantWorkDiv.AW_18,\r\n AttendantWorkDiv.AW_19,\r\n AttendantWorkDiv.AW_20,\r\n AttendantWorkDiv.AW_21,\r\n AttendantWorkDiv.AW_22,\r\n AttendantWorkDiv.AW_23,\r\n AttendantWorkDiv.AW_24,\r\n ];\r\n }\r\n}\r\n","import { CodeBase} from \"./_codeBase\";\r\n\r\n/**\r\n * 権限区分\r\n */\r\nexport class AuthDiv extends CodeBase\r\n{\r\n /** 権限区分 \"01\", \"システム管理者\" */\r\n public static readonly SYS_ADMIN: AuthDiv = new AuthDiv(\"01\", \"システム管理者\");\r\n /** 権限区分 \"02\", \"プロジェクト管理者\" */\r\n public static readonly PRJ_ADMIN: AuthDiv = new AuthDiv(\"02\", \"プロジェクト管理者\");\r\n /** 権限区分 \"03\", \"プロジェクトサブ管理者\" */\r\n public static readonly SUB_ADMIN: AuthDiv = new AuthDiv(\"03\", \"プロジェクトサブ管理者\");\r\n /** 権限区分 \"04\", \"現場運用担当者\" */\r\n public static readonly OPERATOR: AuthDiv = new AuthDiv(\"04\", \"現場運用担当者\");\r\n /** 権限区分 \"05\", \"現場作業者\" */\r\n public static readonly WORKER: AuthDiv = new AuthDiv(\"05\", \"現場作業者\");\r\n /** 権限区分 \"06\", \"顧客\" */\r\n public static readonly CUSTOMER: AuthDiv = new AuthDiv(\"06\", \"顧客\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): AuthDiv[] {\r\n return [\r\n AuthDiv.SYS_ADMIN,\r\n AuthDiv.PRJ_ADMIN,\r\n AuthDiv.SUB_ADMIN,\r\n AuthDiv.OPERATOR,\r\n AuthDiv.WORKER,\r\n AuthDiv.CUSTOMER\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * 使用可能レベル\r\n */\r\nexport class AvailabilityLevel extends CodeBase\r\n{\r\n /** 使用可能レベル: 0, \"none\" */\r\n public static readonly NONE: AvailabilityLevel = new AvailabilityLevel(0, \"NONE\");\r\n /** 使用可能レベル: 1, \"R\" */\r\n public static readonly R: AvailabilityLevel = new AvailabilityLevel(1, \"R\");\r\n /** 使用可能レベル: 2, \"R/W\" */\r\n public static readonly RW: AvailabilityLevel = new AvailabilityLevel(2, \"RW\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): AvailabilityLevel[] {\r\n return [\r\n AvailabilityLevel.NONE,\r\n AvailabilityLevel.R,\r\n AvailabilityLevel.RW,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * box使用区分\r\n **/\r\nexport class BoxUseDiv extends CodeBase\r\n{\r\n /** box使用区分: \"01\", \"box使用禁止\"*/\r\n public static readonly UNAVAILABLE: BoxUseDiv = new BoxUseDiv(\"01\", \"box使用禁止\", \"\");\r\n /** box使用区分: \"02\", \"サブプロジェクト管理者以上のみアップロード可能\"*/\r\n public static readonly CONDITIONAL: BoxUseDiv = new BoxUseDiv(\"02\", \"サブプロジェクト管理者以上のみアップロード可能\", \"\");\r\n /** box使用区分: \"03\", \"box使用可能\"*/\r\n public static readonly AVAILABLE: BoxUseDiv = new BoxUseDiv(\"03\", \"box使用可能\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): BoxUseDiv[] {\r\n return [\r\n BoxUseDiv.UNAVAILABLE,\r\n BoxUseDiv.CONDITIONAL,\r\n BoxUseDiv.AVAILABLE,\r\n\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * カテゴリ選択区分\r\n */\r\nexport class CategorySelectDiv extends CodeBase\r\n{\r\n /** カテゴリ選択区分 \"01\", \"ALL\" */\r\n public static readonly ALL: CategorySelectDiv = new CategorySelectDiv(\"01\", \"ALL\");\r\n /** カテゴリ選択区分 \"02\", \"ALL(承認表非表示)\" */\r\n public static readonly ALLAPPROVEINVISIVLE: CategorySelectDiv = new CategorySelectDiv(\"02\", \"ALL(承認表非表示)\");\r\n /** カテゴリ選択区分 \"03\", \"カテゴリID\" */\r\n public static readonly CATEGORY: CategorySelectDiv = new CategorySelectDiv(\"03\", \"カテゴリID\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): CategorySelectDiv[] {\r\n return [\r\n CategorySelectDiv.ALL,\r\n CategorySelectDiv.ALLAPPROVEINVISIVLE,\r\n CategorySelectDiv.CATEGORY,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n\r\n/** 担当区分*/\r\nexport class ChargeDiv extends CodeBase\r\n{\r\n /** 担当区分: \"01\", \"(空白)\", \"(空白)\"*/\r\n public static readonly NONE: ChargeDiv = new ChargeDiv(\"01\", \" \", \" \");\r\n\r\n /** 担当区分: \"02\", \"一般ユーザ(機器・工事別担当ユーザ)、権限あり(作業別担当ユーザ)\" \"○\"*/\r\n public static readonly ORDINARY: ChargeDiv = new ChargeDiv(\"02\", \"一般ユーザ(機器・工事別担当ユーザ)、権限あり(作業別担当ユーザ)\", \"○\");\r\n\r\n /** 担当区分: \"03\", \"機器工事の代表者\", \"☆\"*/\r\n public static readonly REPRESENTER: ChargeDiv = new ChargeDiv(\"03\", \"機器・工事の代表者\", \"☆\");\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ChargeDiv[] {\r\n return [\r\n ChargeDiv.NONE,\r\n ChargeDiv.ORDINARY,\r\n ChargeDiv.REPRESENTER,\r\n\r\n ];\r\n }\r\n}\r\n\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** コマンド区分*/\r\nexport class CommandDiv extends CodeBase\r\n{\r\n\r\n /** コマンド区分: \"01\", \"ユーザ\"*/\r\n public static readonly USER: CommandDiv = new CommandDiv(\"01\", \"ユーザ\", \"\");\r\n /** コマンド区分: \"02\", \"バッチ\"*/\r\n public static readonly BATCH: CommandDiv = new CommandDiv(\"02\", \"バッチ\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): CommandDiv[] {\r\n return [\r\n CommandDiv.USER,\r\n CommandDiv.BATCH\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n\r\n/** 条件区分*/\r\n\r\nexport class ConditionDiv extends CodeBase\r\n{\r\n /** 条件区分: \"01\", \"作業指定\", \"\"*/\r\n public static readonly WORK: ConditionDiv = new ConditionDiv(\"01\", \"作業指定\", \"\");\r\n\r\n /** 条件区分: \"02\", \"機器指定\" \"\"*/\r\n public static readonly EQUIPMENT: ConditionDiv = new ConditionDiv(\"02\", \"機器指定\", \"\");\r\n\r\n /** 条件区分: \"03\", \"進捗遅延\", \"\"*/\r\n public static readonly DELAY: ConditionDiv = new ConditionDiv(\"03\", \"進捗遅延\", \"\");\r\n\r\n /** 条件区分: \"04\", \"承認状況\", \"\"*/\r\n public static readonly APPROVAL: ConditionDiv = new ConditionDiv(\"04\", \"承認状況\", \"\");\r\n\r\n /** 条件区分: \"05\", \"カスタム指定\", \"\"*/\r\n public static readonly CUSTOM: ConditionDiv = new ConditionDiv(\"05\", \"カスタム指定\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ConditionDiv[] {\r\n return [\r\n ConditionDiv.WORK,\r\n ConditionDiv.EQUIPMENT,\r\n ConditionDiv.DELAY,\r\n ConditionDiv.APPROVAL,\r\n ConditionDiv.CUSTOM,\r\n ];\r\n }\r\n\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * 単純にフラグ\r\n */\r\nexport class EnableFlag extends CodeBase\r\n{\r\n\r\n /** 有効フラグ: true, \"有効\" */\r\n public static readonly TRUE: EnableFlag = new EnableFlag(true, \"有効\", 'true');\r\n /** 有効フラグ: false, \"無効\" */\r\n public static readonly FALSE: EnableFlag = new EnableFlag(false, '無効', 'false');\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(code: any, value: string, abbr?: any) {\r\n super(code, value, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): EnableFlag[] {\r\n return [EnableFlag.TRUE, EnableFlag.FALSE,];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 機器作業操作区分*/\r\nexport class EquipmentWorkOperationDiv extends CodeBase\r\n{\r\n /** 機器作業操作区分: \"01\", \"操作不可\"*/\r\n public static readonly INOPERABLE: EquipmentWorkOperationDiv = new EquipmentWorkOperationDiv(\"01\", \"操作不可\", \"\");\r\n\r\n /** 機器作業操作区分: \"02\", \"操作可(追加・削除)\"*/\r\n public static readonly OPERABLE: EquipmentWorkOperationDiv = new EquipmentWorkOperationDiv(\"02\", \"操作可(追加・削除)\", \"○\");\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): EquipmentWorkOperationDiv[] {\r\n return [\r\n EquipmentWorkOperationDiv.INOPERABLE,\r\n EquipmentWorkOperationDiv.OPERABLE,\r\n\r\n\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 実行区分*/\r\nexport class ExecuteDiv extends CodeBase\r\n{\r\n\r\n /** 実行区分: \"0\", \"待機中\"*/\r\n public static readonly WAIT: ExecuteDiv = new ExecuteDiv(\"0\", \"待機中\", \"\");\r\n /** 実行区分: \"1\", \"実行中\"*/\r\n public static readonly RUNNING: ExecuteDiv = new ExecuteDiv(\"1\", \"実行中\", \"\");\r\n /** 実行区分: \"2\", \"予約済\"*/\r\n public static readonly RESERVED: ExecuteDiv = new ExecuteDiv(\"2\", \"予約済\", \"\");\r\n /** 実行区分: \"3\", \"正常終了\"*/\r\n public static readonly SUCCESS: ExecuteDiv = new ExecuteDiv(\"3\", \"正常終了\", \"\");\r\n /** 実行区分: \"4\", \"異常終了\"*/\r\n public static readonly ERROR: ExecuteDiv = new ExecuteDiv(\"4\", \"異常終了\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ExecuteDiv[] {\r\n return [\r\n ExecuteDiv.WAIT,\r\n ExecuteDiv.RUNNING,\r\n ExecuteDiv.RESERVED,\r\n ExecuteDiv.SUCCESS,\r\n ExecuteDiv.ERROR\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * 単純にフラグ\r\n */\r\nexport class Flag extends CodeBase\r\n{\r\n /** フラグ: \"01\", \"<半角スペース> \" */\r\n //空文字だとSpreadのコンボボックスが機能しないようである\r\n //public static readonly UNLOCK: AccountLockDiv = new AccountLockDiv(\"01\", \"ロック状態でない場合\",'');\r\n //#862 Text値未設定のコンボボックスについて(空文字問題解消)\r\n //public static readonly FALSE: Flag = new Flag(false, \" \", '-');\r\n public static readonly FALSE: Flag = new Flag(false, '', '');\r\n \r\n /** フラグ: \"02\", \"○\" */\r\n public static readonly TRUE: Flag = new Flag(true, \"○\", '○');\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): Flag[] {\r\n return [\r\n Flag.TRUE,\r\n Flag.FALSE,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * 機能コード\r\n * \r\n * ※一旦必要なものだけ用意します。\r\n * \r\n */\r\nexport class FuncitonCode extends CodeBase\r\n{\r\n /** 機能コード: F_04_APPR_002, \"予定表(カスタマイズ)\" */\r\n public static readonly F_04_APPR_002: FuncitonCode = new FuncitonCode(\"F_04_APPR_002\", \"予定表(カスタマイズ)\");\r\n /** 機能コード: F_04_APPR_003, \"予定承認表\" */\r\n public static readonly F_04_APPR_003: FuncitonCode = new FuncitonCode(\"F_04_APPR_003\", \"予定承認表\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): FuncitonCode[] {\r\n return [\r\n FuncitonCode.F_04_APPR_002,\r\n FuncitonCode.F_04_APPR_003,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** グループ区分*/\r\nexport class GroupDiv extends CodeBase\r\n{\r\n /** グループ区分: \"01\", \"1\"*/\r\n public static readonly G_1: GroupDiv = new GroupDiv(\"01\", \"1\", \"\");\r\n /** グループ区分: \"02\", \"2\"*/\r\n public static readonly G_2: GroupDiv = new GroupDiv(\"02\", \"2\", \"\");\r\n /** グループ区分: \"03\", \"3\"*/\r\n public static readonly G_3: GroupDiv = new GroupDiv(\"03\", \"3\", \"\");\r\n /** グループ区分: \"04\", \"4\"*/\r\n public static readonly G_4: GroupDiv = new GroupDiv(\"04\", \"4\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): GroupDiv[] {\r\n return [\r\n GroupDiv.G_1,\r\n GroupDiv.G_2,\r\n GroupDiv.G_3,\r\n GroupDiv.G_4,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * 取込区分\r\n */\r\nexport class ImportType extends CodeBase\r\n{\r\n /** 取込区分 \"01\", \"追加\" */\r\n public static readonly ADDED: ImportType = new ImportType(\"01\", \"追加\");\r\n /** 取込区分 \"02\", \"取込\" */\r\n public static readonly EDITED: ImportType = new ImportType(\"02\", \"変更\");\r\n /** 取込区分 \"03\", \"削除\" */\r\n public static readonly DELETED: ImportType = new ImportType(\"03\", \"削除\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ImportType[] {\r\n return [\r\n ImportType.ADDED,\r\n ImportType.EDITED,\r\n ImportType.DELETED,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** ルール区分*/\r\nexport class InputRuleDiv extends CodeBase\r\n{\r\n /** 入力ルール区分: \"01\", \"未指定\"*/\r\n public static readonly NONE: InputRuleDiv = new InputRuleDiv(\"01\", \"未指定\", \"\");\r\n\r\n /** 入力ルール区分: \"02\", \"~より大きい\"*/\r\n public static readonly GT: InputRuleDiv = new InputRuleDiv(\"02\", \"~より大きい\", \"\");\r\n\r\n /** 入力ルール区分: \"03\", \"~以上\"*/\r\n public static readonly GTE: InputRuleDiv = new InputRuleDiv(\"03\", \"~以上\", \"\");\r\n\r\n /** 入力ルール区分: \"04\", \"~より小さい\"*/\r\n public static readonly LT: InputRuleDiv = new InputRuleDiv(\"04\", \"~より小さい\", \"\");\r\n\r\n /**入力ルール区分: \"05\", \"~以下\"*/\r\n public static readonly LTE: InputRuleDiv = new InputRuleDiv(\"05\", \"~以下\", \"\");\r\n\r\n /** 入力ルール区分: \"06\", \"AとBの範囲内\"*/\r\n public static readonly BETWEEN: InputRuleDiv = new InputRuleDiv(\"06\", \"AとBの範囲内\", \"\");\r\n\r\n /** 入力ルール区分: \"07\", \"~以下\"*/\r\n public static readonly OUT_OF_RANGE: InputRuleDiv = new InputRuleDiv(\"07\", \"AとBの範囲外\", \"\");\r\n\r\n /** 入力ルール区分: \"08\", \"整数\"*/\r\n public static readonly INTEGER: InputRuleDiv = new InputRuleDiv(\"08\", \"整数\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): InputRuleDiv[] {\r\n return [\r\n InputRuleDiv.NONE,\r\n InputRuleDiv.GT,\r\n InputRuleDiv.GTE,\r\n InputRuleDiv.LT,\r\n InputRuleDiv.LTE,\r\n InputRuleDiv.BETWEEN,\r\n InputRuleDiv.OUT_OF_RANGE,\r\n InputRuleDiv.INTEGER,\r\n ];\r\n }\r\n}","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 入力形式区分区分*/\r\nexport class InputTypeDiv extends CodeBase\r\n{\r\n /** 入力形式区分: \"01\", \"文字列\", \"\"*/\r\n public static readonly STRING = new InputTypeDiv(\"01\", \"文字列\", \"\");\r\n\r\n /** 入力形式区分: \"02\", \"数値のみ\" \"\"*/\r\n public static readonly NUMBER: InputTypeDiv = new InputTypeDiv(\"02\", \"数値のみ\", \"\");\r\n\r\n /** 入力形式区分: \"03\", \"日付\", \"\"*/\r\n public static readonly DATE: InputTypeDiv = new InputTypeDiv(\"03\", \"日付\", \"\");\r\n\r\n /** 入力形式区分: \"04\", \"時刻\", \"\"*/\r\n public static readonly DATETIME: InputTypeDiv = new InputTypeDiv(\"04\", \"時刻\", \"\");\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): InputTypeDiv[] {\r\n return [\r\n InputTypeDiv.STRING,\r\n InputTypeDiv.NUMBER,\r\n InputTypeDiv.DATE,\r\n InputTypeDiv.DATETIME,\r\n\r\n\r\n ];\r\n }\r\n}","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 挿入先セル*/\r\nexport class InsertCellDiv extends CodeBase\r\n{\r\n /** 挿入先セル区分: \"01\", \"機器\", \"\"*/\r\n public static readonly EQUIPMENT: InsertCellDiv = new InsertCellDiv(\"01\", \"機器\", \"\");\r\n /** 挿入先セル区分: \"02\", \"機器付帯項目\" \"\"*/\r\n public static readonly INCIDENTAL: InsertCellDiv = new InsertCellDiv(\"02\", \"機器付帯項目\", \"\");\r\n /** 挿入先セル区分: \"03\", \"立会作業\", \"\"*/\r\n public static readonly ATTENDANT: InsertCellDiv = new InsertCellDiv(\"03\", \"立会作業\", \"\");\r\n /** 挿入先セル区分: \"04\", \"作業 \"\"*/\r\n public static readonly WORK: InsertCellDiv = new InsertCellDiv(\"04\", \"作業\", \"\");\r\n /** 挿入先セル区分: \"05\", \"進捗 \"\"*/\r\n public static readonly PROGRESS: InsertCellDiv = new InsertCellDiv(\"05\", \"進捗\", \"\");\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): InsertCellDiv[] {\r\n return [\r\n InsertCellDiv.EQUIPMENT,\r\n InsertCellDiv.INCIDENTAL,\r\n InsertCellDiv.ATTENDANT,\r\n InsertCellDiv.WORK,\r\n InsertCellDiv.PROGRESS,\r\n ];\r\n }\r\n}","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** レイアウト区分*/\r\nexport class LayoutDiv extends CodeBase\r\n{\r\n /** レイアウト区分: \"01\", \"共通\", \"\"*/\r\n public static readonly GENERAL: LayoutDiv = new LayoutDiv(\"01\", \"共通\", \"general\");\r\n /** レイアウト区分: \"02\", \"ヘッダー\" \"\"*/\r\n public static readonly HEADER: LayoutDiv = new LayoutDiv(\"02\", \"ヘッダー\", \"header\");\r\n /** レイアウト区分: \"03\", \"詳細\" \"\"*/\r\n public static readonly DETAIL: LayoutDiv = new LayoutDiv(\"03\", \"詳細\", \"detail\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n /**\r\n * \r\n */\r\n public static List(): LayoutDiv[] {\r\n return [\r\n LayoutDiv.GENERAL,\r\n LayoutDiv.HEADER,\r\n LayoutDiv.DETAIL,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** メール送信頻度区分*/\r\nexport class MailSendFrequencyDiv extends CodeBase\r\n{\r\n /** メール送信頻度区分: \"01\", \"即時\", \"\"*/\r\n public static readonly IMMEDIATE: MailSendFrequencyDiv = new MailSendFrequencyDiv(\"01\", \"即時\", \"\");\r\n /** メール送信頻度区分: \"02\", \"n回/日\" \"\"*/\r\n public static readonly PER_DAY: MailSendFrequencyDiv = new MailSendFrequencyDiv(\"02\", \"n回/日\", \"\");\r\n /** メール送信頻度区分: \"03\", \"n分間隔\", \"\"*/\r\n public static readonly MIN_INTERVAL: MailSendFrequencyDiv = new MailSendFrequencyDiv(\"03\", \"n分間隔\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): MailSendFrequencyDiv[] {\r\n return [\r\n MailSendFrequencyDiv.IMMEDIATE,\r\n MailSendFrequencyDiv.PER_DAY,\r\n MailSendFrequencyDiv.MIN_INTERVAL,\r\n\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 処理区分*/\r\nexport class ProcessDiv extends CodeBase\r\n{\r\n /** 処理区分: \"00\", \"未更新\"*/\r\n public static readonly UNDONE: ProcessDiv = new ProcessDiv(\"00\", \"未更新\", \"\");\r\n /** 処理区分: \"01\", \"更新済み\"*/\r\n public static readonly DONE: ProcessDiv = new ProcessDiv(\"01\", \"更新済み\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ProcessDiv[] {\r\n return [\r\n ProcessDiv.UNDONE,\r\n ProcessDiv.DONE,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 工程表グリッド区分*/\r\nexport class ProcessGridDiv extends CodeBase\r\n{\r\n /** 工程表グリッド区分: \"01\", \"ヘッダー項目\"*/\r\n public static readonly HEADER: ProcessGridDiv = new ProcessGridDiv(\"01\", \"ヘッダー項目\", \"\");\r\n /** 工程表グリッド区分: \"02\", \"機器・工事項目\"*/\r\n public static readonly EQUIPMENT: ProcessGridDiv = new ProcessGridDiv(\"02\", \"機器・工事項目\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ProcessGridDiv[] {\r\n return [\r\n ProcessGridDiv.HEADER,\r\n ProcessGridDiv.EQUIPMENT,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * 進捗表通常の列区分\r\n */\r\nexport class ProgressColumnType extends CodeBase\r\n{\r\n /** 取込区分 \"01\", \"追加\" */\r\n public static readonly ADDED: ProgressColumnType = new ProgressColumnType(\"01\", \"追加\");\r\n /** 取込区分 \"02\", \"取込\" */\r\n public static readonly EDITED: ProgressColumnType = new ProgressColumnType(\"02\", \"変更\");\r\n /** 取込区分 \"03\", \"削除\" */\r\n public static readonly DELETED: ProgressColumnType = new ProgressColumnType(\"03\", \"削除\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ProgressColumnType[] {\r\n return [\r\n ProgressColumnType.ADDED,\r\n ProgressColumnType.EDITED,\r\n ProgressColumnType.DELETED,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 進捗区分*/\r\nexport class ProgressDiv extends CodeBase\r\n{\r\n\r\n /** 進捗区分:\"a\", \" \", \" \"*/\r\n public static readonly A: ProgressDiv = new ProgressDiv(\"a\", \" \", \" \");\r\n\r\n /** 進捗区分:\"b\", \"新規\", \"○\"*/\r\n public static readonly B: ProgressDiv = new ProgressDiv(\"b\", \"新規\", \"○\");\r\n\r\n /** 進捗区分:\"d\", \"完了\", \"●\"*/\r\n public static readonly D: ProgressDiv = new ProgressDiv(\"d\", \"完了\", \"●\");\r\n\r\n /** 進捗区分:\"f\", \"中断\", \"△\"*/\r\n public static readonly F: ProgressDiv = new ProgressDiv(\"f\", \"中断\", \"△\");\r\n\r\n /** 進捗区分:\"g\", \"該当無\", \"×\"*/\r\n public static readonly G: ProgressDiv = new ProgressDiv(\"g\", \"該当無\", \"×\");\r\n\r\n /** 進捗区分:\"e\", \"完了見込\", \"▲\"*/\r\n public static readonly E: ProgressDiv = new ProgressDiv(\"e\", \"完了見込\", \"▲\");\r\n\r\n /** 進捗区分:\"i\", \"キャンセル\", \"■\"*/\r\n public static readonly I: ProgressDiv = new ProgressDiv(\"i\", \"キャンセル\", \"■\");\r\n\r\n /** 進捗区分:\"j\", \"進捗率(10%)\", \"10%\"*/\r\n public static readonly J: ProgressDiv = new ProgressDiv(\"j\", \"進捗率(10%)\", \"10%\");\r\n\r\n /** 進捗区分:\"k\", \"進捗率(20%)\", \"20%\"*/\r\n public static readonly K: ProgressDiv = new ProgressDiv(\"k\", \"進捗率(20%)\", \"20%\");\r\n\r\n /** 進捗区分:\"l\", \"進捗率(30%)\", \"30%\"*/\r\n public static readonly L: ProgressDiv = new ProgressDiv(\"l\", \"進捗率(30%)\", \"30%\");\r\n\r\n /** 進捗区分:\"m\", \"進捗率(40%)\", \"40%\"*/\r\n public static readonly M: ProgressDiv = new ProgressDiv(\"m\", \"進捗率(40%)\", \"40%\");\r\n\r\n /** 進捗区分:\"n\", \"進捗率(50%)\", \"50%\"*/\r\n public static readonly N: ProgressDiv = new ProgressDiv(\"n\", \"進捗率(50%)\", \"50%\");\r\n\r\n /** 進捗区分:\"o\", \"進捗率(60%)\", \"60%\"*/\r\n public static readonly O: ProgressDiv = new ProgressDiv(\"o\", \"進捗率(60%)\", \"60%\");\r\n\r\n /** 進捗区分:\"p\", \"進捗率(70%)\", \"70%\"*/\r\n public static readonly P: ProgressDiv = new ProgressDiv(\"p\", \"進捗率(70%)\", \"70%\");\r\n\r\n /** 進捗区分:\"q\", \"進捗率(80%)\", \"80%\"*/\r\n public static readonly Q: ProgressDiv = new ProgressDiv(\"q\", \"進捗率(80%)\", \"80%\");\r\n\r\n /** 進捗区分:\"r\", \"進捗率(90%)\", \"90%\"*/\r\n public static readonly R: ProgressDiv = new ProgressDiv(\"r\", \"進捗率(90%)\", \"90%\");\r\n\r\n /** 進捗区分:\"s\", \"進捗率(100%)\", \"100%\"*/\r\n public static readonly S: ProgressDiv = new ProgressDiv(\"s\", \"進捗率(100%)\", \"100%\");\r\n\r\n /** 進捗区分:\"c\", \"継続\", \"◎\"*/\r\n public static readonly C: ProgressDiv = new ProgressDiv(\"c\", \"継続\", \"◎\");\r\n\r\n /** 進捗区分:\"h\", \"予定提出後に変更\", \"◇\"*/\r\n public static readonly H: ProgressDiv = new ProgressDiv(\"h\", \"予定提出後に変更\", \"◇\");\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ProgressDiv[] {\r\n return [\r\n // 並び順を変更(#6213 V2.4)\r\n //ProgressDiv.A,\r\n //ProgressDiv.B,\r\n //ProgressDiv.C,\r\n //ProgressDiv.D,\r\n //ProgressDiv.E,\r\n //ProgressDiv.F,\r\n //ProgressDiv.G,\r\n //ProgressDiv.H,\r\n //ProgressDiv.I,\r\n //ProgressDiv.J,\r\n //ProgressDiv.K,\r\n //ProgressDiv.L,\r\n //ProgressDiv.M,\r\n //ProgressDiv.N,\r\n //ProgressDiv.O,\r\n //ProgressDiv.P,\r\n //ProgressDiv.Q,\r\n //ProgressDiv.R,\r\n //ProgressDiv.S,\r\n ProgressDiv.A,\r\n ProgressDiv.B,\r\n ProgressDiv.D,\r\n ProgressDiv.F,\r\n ProgressDiv.G,\r\n ProgressDiv.E,\r\n ProgressDiv.I,\r\n ProgressDiv.J,\r\n ProgressDiv.K,\r\n ProgressDiv.L,\r\n ProgressDiv.M,\r\n ProgressDiv.N,\r\n ProgressDiv.O,\r\n ProgressDiv.P,\r\n ProgressDiv.Q,\r\n ProgressDiv.R,\r\n ProgressDiv.S,\r\n ProgressDiv.C,\r\n ProgressDiv.H,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 設問区分*/\r\nexport class QuestionDiv extends CodeBase\r\n{\r\n /** 設問区分: \"01\", \"テキスト(文章)\"*/\r\n public static readonly TEXT: QuestionDiv = new QuestionDiv(\"01\", \"テキスト(文章)\", \"\");\r\n /** 設問区分: \"02\", \"テキスト(数値)\"*/\r\n public static readonly NUMBER: QuestionDiv = new QuestionDiv(\"02\", \"テキスト(数値)\", \"\");\r\n /** 設問区分: \"03\", \"ラジオボタン\"*/\r\n public static readonly RADIO: QuestionDiv = new QuestionDiv(\"03\", \"ラジオボタン\", \"\");\r\n /** 設問区分: \"04\", \"チェックボックス\"*/\r\n public static readonly CHECKBOX: QuestionDiv = new QuestionDiv(\"04\", \"チェックボックス\", \"\");\r\n /** 設問区分: \"05\", \"リストボックス\"*/\r\n public static readonly LISTBOX: QuestionDiv = new QuestionDiv(\"05\", \"リストボックス\", \"\");\r\n /** 設問区分: \"06\", \"時刻\"*/\r\n public static readonly TIME: QuestionDiv = new QuestionDiv(\"06\", \"時刻\", \"\");\r\n ///** 設問区分: \"07\", \"日付\"*/\r\n //public static readonly DATE: QuestionDiv = new QuestionDiv(\"07\", \"日付\", \"\");\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(code: any, value: string, abbr?: any) {\r\n super(code, value, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): QuestionDiv[] {\r\n return [\r\n QuestionDiv.TEXT,\r\n QuestionDiv.NUMBER,\r\n QuestionDiv.RADIO,\r\n QuestionDiv.CHECKBOX,\r\n QuestionDiv.LISTBOX,\r\n QuestionDiv.TIME,\r\n //QuestionDiv.DATE,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 連絡書受領区分*/\r\nexport class ReceiveContactFormDiv extends CodeBase\r\n{\r\n\r\n /** 連絡書受領区分: \"01\", \"(空白)\"*/\r\n public static readonly NONE: ReceiveContactFormDiv = new ReceiveContactFormDiv(\"01\", \" \", \"\");\r\n /** 連絡書受領区分: \"02\", \"受領\"*/\r\n public static readonly RECEIPT: ReceiveContactFormDiv = new ReceiveContactFormDiv(\"02\", \"受領\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ReceiveContactFormDiv[] {\r\n return [\r\n ReceiveContactFormDiv.NONE,\r\n ReceiveContactFormDiv.RECEIPT,\r\n\r\n ];\r\n }\r\n\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** SPIRIT反映区分*/\r\nexport class ReflectSpiritDiv extends CodeBase\r\n{\r\n /** SPIRIT反映区分: \"01\", \"(空白)\"*/\r\n public static readonly NONE: ReflectSpiritDiv = new ReflectSpiritDiv(\"01\", \" \", \"\");\r\n\r\n /** SPIRIT反映区分: \"02\", \"○\"*/\r\n public static readonly DONE: ReflectSpiritDiv = new ReflectSpiritDiv(\"02\", \"○\", \"\");\r\n\r\n /** SPIRIT反映区分: \"03\", \"不要\"*/\r\n public static readonly UNNECESSARY: ReflectSpiritDiv = new ReflectSpiritDiv(\"03\", \"不要\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ReflectSpiritDiv[] {\r\n return [\r\n ReflectSpiritDiv.NONE,\r\n ReflectSpiritDiv.DONE,\r\n ReflectSpiritDiv.UNNECESSARY,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 実績区分*/\r\nexport class ResultProgressDiv extends CodeBase\r\n{\r\n\r\n /** 実績区分:\"a\", \" \", \" \"*/\r\n public static readonly A: ResultProgressDiv = new ResultProgressDiv(\"a\", \" \", \" \");\r\n\r\n /** 実績区分:\"b\", \"新規\", \"○\"*/\r\n public static readonly B: ResultProgressDiv = new ResultProgressDiv(\"b\", \"新規\", \"○\");\r\n\r\n /** 実績区分:\"d\", \"完了\", \"●\"*/\r\n public static readonly D: ResultProgressDiv = new ResultProgressDiv(\"d\", \"完了\", \"●\");\r\n\r\n /** 実績区分:\"f\", \"中断\", \"△\"*/\r\n public static readonly F: ResultProgressDiv = new ResultProgressDiv(\"f\", \"中断\", \"△\");\r\n\r\n /** 実績区分:\"g\", \"該当無\", \"×\"*/\r\n public static readonly G: ResultProgressDiv = new ResultProgressDiv(\"g\", \"該当無\", \"×\");\r\n\r\n /** 実績区分:\"e\", \"完了見込\", \"▲\"*/\r\n public static readonly E: ResultProgressDiv = new ResultProgressDiv(\"e\", \"完了見込\", \"▲\");\r\n\r\n /** 実績区分:\"i\", \"キャンセル\", \"■\"*/\r\n public static readonly I: ResultProgressDiv = new ResultProgressDiv(\"i\", \"キャンセル\", \"■\");\r\n\r\n /** 実績区分:\"j\", \"進捗率(10%)\", \"10%\"*/\r\n public static readonly J: ResultProgressDiv = new ResultProgressDiv(\"j\", \"進捗率(10%)\", \"10%\");\r\n\r\n /** 実績区分:\"k\", \"進捗率(20%)\", \"20%\"*/\r\n public static readonly K: ResultProgressDiv = new ResultProgressDiv(\"k\", \"進捗率(20%)\", \"20%\");\r\n\r\n /** 実績区分:\"l\", \"進捗率(30%)\", \"30%\"*/\r\n public static readonly L: ResultProgressDiv = new ResultProgressDiv(\"l\", \"進捗率(30%)\", \"30%\");\r\n\r\n /** 実績区分:\"m\", \"進捗率(40%)\", \"40%\"*/\r\n public static readonly M: ResultProgressDiv = new ResultProgressDiv(\"m\", \"進捗率(40%)\", \"40%\");\r\n\r\n /** 実績区分:\"n\", \"進捗率(50%)\", \"50%\"*/\r\n public static readonly N: ResultProgressDiv = new ResultProgressDiv(\"n\", \"進捗率(50%)\", \"50%\");\r\n\r\n /** 実績区分:\"o\", \"進捗率(60%)\", \"60%\"*/\r\n public static readonly O: ResultProgressDiv = new ResultProgressDiv(\"o\", \"進捗率(60%)\", \"60%\");\r\n\r\n /** 実績区分:\"p\", \"進捗率(70%)\", \"70%\"*/\r\n public static readonly P: ResultProgressDiv = new ResultProgressDiv(\"p\", \"進捗率(70%)\", \"70%\");\r\n\r\n /** 実績区分:\"q\", \"進捗率(80%)\", \"80%\"*/\r\n public static readonly Q: ResultProgressDiv = new ResultProgressDiv(\"q\", \"進捗率(80%)\", \"80%\");\r\n\r\n /** 実績区分:\"r\", \"進捗率(90%)\", \"90%\"*/\r\n public static readonly R: ResultProgressDiv = new ResultProgressDiv(\"r\", \"進捗率(90%)\", \"90%\");\r\n\r\n /** 実績区分:\"s\", \"進捗率(100%)\", \"100%\"*/\r\n public static readonly S: ResultProgressDiv = new ResultProgressDiv(\"s\", \"進捗率(100%)\", \"100%\");\r\n\r\n /** 実績区分:\"c\", \"継続\", \"◎\"*/\r\n public static readonly C: ResultProgressDiv = new ResultProgressDiv(\"c\", \"継続\", \"◎\");\r\n\r\n /** 実績区分:\"h\", \"予定提出後に変更\", \"◇\"*/\r\n public static readonly H: ResultProgressDiv = new ResultProgressDiv(\"h\", \"予定提出後に変更\", \"◇\");\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): ResultProgressDiv[] {\r\n return [\r\n // 並び順を変更(#6213 V2.4)\r\n //ResultProgressDiv.A,\r\n //ResultProgressDiv.B,\r\n //ResultProgressDiv.C,\r\n //ResultProgressDiv.D,\r\n //ResultProgressDiv.E,\r\n //ResultProgressDiv.F,\r\n //ResultProgressDiv.G,\r\n //ResultProgressDiv.H,\r\n //ResultProgressDiv.I,\r\n //ResultProgressDiv.J,\r\n //ResultProgressDiv.K,\r\n //ResultProgressDiv.L,\r\n //ResultProgressDiv.M,\r\n //ResultProgressDiv.N,\r\n //ResultProgressDiv.O,\r\n //ResultProgressDiv.P,\r\n //ResultProgressDiv.Q,\r\n //ResultProgressDiv.R,\r\n //ResultProgressDiv.S,\r\n ResultProgressDiv.A,\r\n ResultProgressDiv.B,\r\n ResultProgressDiv.D,\r\n ResultProgressDiv.F,\r\n ResultProgressDiv.G,\r\n ResultProgressDiv.E,\r\n ResultProgressDiv.I,\r\n ResultProgressDiv.J,\r\n ResultProgressDiv.K,\r\n ResultProgressDiv.L,\r\n ResultProgressDiv.M,\r\n ResultProgressDiv.N,\r\n ResultProgressDiv.O,\r\n ResultProgressDiv.P,\r\n ResultProgressDiv.Q,\r\n ResultProgressDiv.R,\r\n ResultProgressDiv.S,\r\n ResultProgressDiv.C,\r\n ResultProgressDiv.H,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/**\r\n * 変更区分\r\n */\r\nexport class SectionType extends CodeBase\r\n{\r\n /** 変更区分 \"00\", \"\" */\r\n public static readonly NONE: SectionType = new SectionType(\"00\", \"\");\r\n /** 変更区分 \"01\", \"追加\" */\r\n public static readonly ADDED: SectionType = new SectionType(\"01\", \"追加\");\r\n /** 変更区分 \"02\", \"変更\" */\r\n public static readonly EDITED: SectionType = new SectionType(\"02\", \"変更\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): SectionType[] {\r\n return [\r\n SectionType.NONE,\r\n SectionType.ADDED,\r\n SectionType.EDITED,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 設定範囲区分*/\r\nexport class SettingRangeDiv extends CodeBase\r\n{\r\n /** 設定範囲区分: \"01\", \"全ユーザ\"*/\r\n public static readonly ALL: SettingRangeDiv= new SettingRangeDiv(\"01\", \"全ユーザ\", \"\");\r\n /** 設定範囲区分: \"02\", \"会社\"*/\r\n public static readonly COMPANY: SettingRangeDiv= new SettingRangeDiv(\"02\", \"会社\", \"\");\r\n /** 設定範囲区分: \"03\", \"個人\"*/\r\n public static readonly INDIVIDUAL: SettingRangeDiv= new SettingRangeDiv(\"03\", \"個人\", \"\");\r\n\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): SettingRangeDiv[] {\r\n return [\r\n SettingRangeDiv.ALL,\r\n SettingRangeDiv.COMPANY,\r\n SettingRangeDiv.INDIVIDUAL,\r\n ];\r\n }\r\n}\r\n","import { CodeBase} from \"./_codeBase\";\r\n\r\n/**\r\n * 文字方向区分\r\n */\r\nexport class TextDirectionDiv extends CodeBase\r\n{\r\n /** 文字方向区分 \"01\", \"横\" */\r\n public static readonly TEXT_DIRECTION_HORIZONTAL: TextDirectionDiv = new TextDirectionDiv(\"01\", \"横\");\r\n /** 文字方向区分 \"02\", \"縦\" */\r\n public static readonly TEXT_DIRECTION_VERTICAL: TextDirectionDiv = new TextDirectionDiv(\"02\", \"縦\");\r\n \r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): TextDirectionDiv[] {\r\n return [\r\n TextDirectionDiv.TEXT_DIRECTION_HORIZONTAL,\r\n TextDirectionDiv.TEXT_DIRECTION_VERTICAL,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** トリガ区分*/\r\nexport class TriggerDiv extends CodeBase\r\n{\r\n /** トリガ区分: \"01\", \"値の変更\", \"\"*/\r\n public static readonly VAUE_CHANGE: TriggerDiv = new TriggerDiv(\"01\", \"値の変更\", \"\");\r\n /** トリガ区分: \"02\", \"特定文言が入力された\" \"\"*/\r\n public static readonly SPEC_WORDING_INPUT: TriggerDiv = new TriggerDiv(\"02\", \"特定文言が入力された\", \"\");\r\n /** トリガ区分: \"03\", \"項目の追加\" \"\"*/\r\n public static readonly ADD_ITEM: TriggerDiv = new TriggerDiv(\"03\", \"項目の追加\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): TriggerDiv[] {\r\n return [\r\n TriggerDiv.VAUE_CHANGE,\r\n TriggerDiv.SPEC_WORDING_INPUT,\r\n TriggerDiv.ADD_ITEM,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** 使用区分*/\r\nexport class UsageDiv extends CodeBase\r\n{\r\n /** 使用区分: \"01\", \"未使用\"*/\r\n public static readonly NONE: UsageDiv = new UsageDiv(\"01\", \"未使用\", \"\");\r\n /** 使用区分: \"02\", \"共通\"*/\r\n public static readonly COMMON: UsageDiv = new UsageDiv(\"02\", \"共通\", \"\");\r\n /** 使用区分: \"03\", \"担当\"*/\r\n public static readonly SECTION: UsageDiv = new UsageDiv(\"03\", \"担当\", \"\");\r\n\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): UsageDiv[] {\r\n return [\r\n UsageDiv.NONE,\r\n UsageDiv.COMMON,\r\n UsageDiv.SECTION,\r\n ];\r\n }\r\n}\r\n","import { CodeBase } from \"./_codeBase\";\r\n\r\n/** ユーザー区分*/\r\nexport class UserDiv extends CodeBase\r\n{\r\n /** ユーザー区分: \"00\", \"管理者\"*/\r\n public static readonly ADMIN: UserDiv = new UserDiv(\"00\", \"管理者\", \"\");\r\n /** ユーザー区分: \"01\", \"プロジェクト別\"*/\r\n public static readonly BY_PROJECT: UserDiv = new UserDiv(\"01\", \"プロジェクト別\", \"\");\r\n /**\r\n * \r\n * @param value\r\n * @param text\r\n */\r\n protected constructor(value: any, text: string, abbr?: any) {\r\n super(value, text, abbr);\r\n }\r\n\r\n /**\r\n * \r\n */\r\n public static List(): UserDiv[] {\r\n return [\r\n UserDiv.ADMIN,\r\n UserDiv.BY_PROJECT,\r\n ];\r\n }\r\n}\r\n","export * from \"./code/accountLockDiv\"\r\nexport * from \"./code/aggregateTargetDateDiv\"\r\nexport * from \"./code/attendantWorkDiv\"\r\nexport * from \"./code/AttendantWorkOperationDiv\"\r\nexport * from \"./code/authDiv\"\r\nexport * from \"./code/availabilityLevel\"\r\nexport * from \"./code/boxUseDiv\"\r\nexport * from \"./code/categorySelectDiv\"\r\nexport * from \"./code/chargeDiv\"\r\nexport * from \"./code/conditionDiv\"\r\nexport * from \"./code/equipmentWorkOperationDiv\"\r\nexport * from \"./code/executeDiv\"\r\nexport * from \"./code/groupDiv\"\r\nexport * from \"./code/inputRuleDiv\"\r\nexport * from \"./code/inputTypeDiv\"\r\nexport * from \"./code/insertCellDiv\"\r\nexport * from \"./code/mailSendFrequencyDiv\"\r\nexport * from \"./code/processDiv\"\r\nexport * from \"./code/processGridDiv\"\r\nexport * from \"./code/progressDiv\"\r\nexport * from \"./code/questionDiv\"\r\nexport * from \"./code/receiveContactFormDiv\"\r\nexport * from \"./code/reflectSpiritDiv\"\r\nexport * from \"./code/resultProgressDiv\"\r\nexport * from \"./code/settingRangeDiv\"\r\nexport * from \"./code/triggerDiv\"\r\nexport * from \"./code/usageDiv\"\r\nexport * from \"./code/userDiv\"\r\nexport * from \"./code/sectionType\"\r\nexport * from \"./code/importType\"\r\nexport * from \"./code/flag\"\r\nexport * from \"./code/progressColumnType\"\r\nexport * from \"./code/enableFlag\"\r\nexport * from \"./code/textDirectionDiv\"\r\nexport * from \"./code/layoutDiv\"\r\nexport * from \"./code/functionCode\"\r\nexport * from \"./code/commandDiv\"\r\n","\r\n/**サンプルです */\r\nexport const SAMPLE_01 = \"01\";\r\n\r\n// エクセル拡張子\r\nexport const EXCEL_EXTENSION = '.xlsx';\r\n\r\n/**\r\n * 編集モード\r\n */\r\nexport enum GridMode {\r\n EDIT,\r\n REFER,\r\n IMPORT\r\n}\r\n\r\n/** spreadの初期拡大率 : 0.85% */\r\nexport const SPREAD_INITIAL_ZOOM = 0.85;\r\n\r\n/**読み取り専用セル背景色 */\r\nexport const READONLY_BACKCOLOR = '#ccffcc';\r\n\r\n//#4108で#c7dfb4→#ccffccに変更→読み取り専用セルとは別の定数にしておく\r\n/**作業デフォルト背景色 */\r\nexport const WORK_BACKCOLOR = '#ccffcc';\r\n\r\n/** シート名最大文字数 */\r\nexport const MAX_SHEET_NAME_LENGTH = 31;\r\n\r\n/** アップロード可能なアップロードファイルサイズ30MB */\r\nexport const MAX_FILESIZE = 30;\r\n\r\n/** ダウンロード時の画面名 */\r\nexport const V_CUSTOMER_FACTORY_MASTER = '顧客・工場マスタ';\r\nexport const V_COMPANY_INFO = '会社情報';\r\nexport const V_PLANT_INFO = 'プラント情報';\r\nexport const V_CATEGORY_INFO = 'カテゴリ情報';\r\n//export const V_PROGRESS_HISTORY_MANAGEMENT = '進捗履歴・最新実績管理';\r\nexport const V_PROGRESS_HISTORY_INFO = '進捗履歴情報';\r\nexport const V_PROGRESS_INFO = '進捗情報';\r\nexport const V_PLANT_CATEGORY_COMPANY_SETTING = 'プラントカテゴリ会社設定';\r\nexport const V_TESTSYSTEM_LEGISLATION_INFO = 'テスト系統・法規情報';\r\nexport const V_WORK_CHARGE_INFO = '作業担当情報';\r\nexport const V_EQUIPMENT_INFO = '機器・工事情報';\r\nexport const V_ESSENTIAL_WORK_INFO = '必須作業情報';\r\nexport const V_WORK_INFO = '作業情報';\r\nexport const V_USER_INFO = 'ユーザ情報';\r\nexport const V_EQUIPMENT_USER_INFO = '機器担当ユーザ設定';\r\nexport const V_WORK_CHARGE_USER_BY_COMPANY = '作業担当ユーザ設定(所属会社毎)';\r\nexport const V_WORK_CHARGE_USER_BY_USER = '作業担当ユーザ設定(ユーザ毎)';\r\nexport const V_APPROVE_WORK_CHARGE_SETTING = '承認作業担当設定';\r\nexport const V_APPROVE_HOLD_SETTING = 'ホールド設定';\r\n\r\nexport const V_PROGRESS_MANAGEMENT_NORMAL = '進捗表(通常)';\r\nexport const V_VIEW_PROGRESS_ = 'ビュー進捗表';\r\nexport const V_PROCESS_MANAGEMENT = '工程表';\r\nexport const V_SCHEDULE_APPROVAL = '予定承認表';\r\nexport const V_ADDITIONAL_EQUIPMENT_INFO = '追加工事管理';\r\nexport const V_SUMMARY_GRAPH = 'サマリグラフ';\r\nexport const V_SUMMARY_MEETING = 'サマリ表(ミーティング)';\r\nexport const V_SUMMARY_WHOLE = 'サマリ表(全体)';\r\nexport const V_SUMMARY_INCOMPLETE = 'サマリ表(未完了)';\r\nexport const V_SUMMARY_TEST_SYSTEM = 'サマリ表(テスト系統)';\r\nexport const V_SUMMARY_LEGISLATION = 'サマリ表(法規)';\r\n\r\n/** 機器工事フォルダ作成時の画面名 */\r\nexport const V_HOME = 'ホーム';\r\nexport const V_PROJECT_MASTER_DETAIL = 'プロジェクトマスタ詳細';\r\n\r\n/** 進捗表エクスポート 凡例(進捗) #4587*/\r\nexport const EXPLANATORY_PROGRESS = '○:新規、 ◎:継続、 △:中断、 ●:完了、 ▲:完了見込、 ◇:予定提出後に変更、 ×:該当無、 ■:キャンセル、 %:実績進捗率';\r\n\r\n\r\n/** 9pt */\r\nexport const FONT_DEFAULT = \"normal normal 12px MS ゴシック\";\r\n/** 9pt BOLD */\r\nexport const FONT_DEFAULT_BOLD = \"700 12px MS ゴシック\";\r\n/** 10pt */\r\nexport const FONT_MIDDLE = \"normal normal 13px MS ゴシック\";\r\n/** 10pt BOLD */\r\nexport const FONT_MIDDL_BOLD = \"700 13px MS ゴシック\";\r\n/** 12pt */\r\nexport const FONT_LARGE = \"normal normal 16px MS ゴシック\";\r\n/** 12pt BOLD */\r\nexport const FONT_LARGE_BOLD = \"700 16px MS ゴシック\";\r\n/** 14pt HGSゴシックM */\r\nexport const FONT_APPROVE_HEADER = \"normal normal 14px HGSゴシックM\";\r\n\r\nexport const FONT_DEFAULT_MSGOTHIC = \"normal normal 14px MS ゴシック\";\r\n\r\n//下のが良いかも\r\n//export type GridMode = 'EDIT' | 'VIEW' | 'IMPORT' ;\r\n\r\n\r\n\r\n\r\n///**\r\n// * pending\r\n// */\r\n//export const FUNCTION_CODE = {\r\n// /**マスタ管理---02_MASTER */\r\n// F_02_MASTER: '02_MASTER',\r\n// /**顧客・工場マスタ---02_MST_001 */\r\n// F_02_MST_001: '02_MST_001',\r\n// /**プロジェクトマスタ---02_MST_002 */\r\n// F_02_MST_002: '02_MST_002',\r\n// /**管理者ユーザマスタ---02_MST_004 */\r\n// F_02_MST_004: '02_MST_004',\r\n// /**承認表設定---03_APPR_001 */\r\n// F_03_APPR_001: '03_APPR_001',\r\n// /**承認作業担当設定---03_APPR_002 */\r\n// F_03_APPR_002: '03_APPR_002',\r\n// /**ホールド設定---03_APPR_003 */\r\n// F_03_APPR_003: '03_APPR_003',\r\n// /**承認設定---03_APPR_SETTING */\r\n// F_03_APPR_SETTING: '03_APPR_SETTING',\r\n// /**基本設定---03_BASE_SETTING */\r\n// F_03_BASE_SETTING: '03_BASE_SETTING',\r\n// /**メール設定---03_MAIL_001 */\r\n// F_03_MAIL_001: '03_MAIL_001',\r\n// /**担当設定---03_OPERATOR_SETTING */\r\n// F_03_OPERATOR_SETTING: '03_OPERATOR_SETTING',\r\n// /**プロジェクト計画---03_PLAN */\r\n// F_03_PLAN: '03_PLAN',\r\n// /**工程表設定---03_PROC_001 */\r\n// F_03_PROC_001: '03_PROC_001',\r\n// /**進捗表設定---03_PROG_001 */\r\n// F_03_PROG_001: '03_PROG_001',\r\n// /**進捗履歴・最新実績管理---03_PROG_006 */\r\n// F_03_PROG_006: '03_PROG_006',\r\n// /**ユーザ情報---03_SET_001 */\r\n// F_03_SET_001: '03_SET_001',\r\n// /**会社情報---03_SET_002 */\r\n// F_03_SET_002: '03_SET_002',\r\n// /**プラント情報---03_SET_003 */\r\n// F_03_SET_003: '03_SET_003',\r\n// /**カテゴリ情報---03_SET_004 */\r\n// F_03_SET_004: '03_SET_004',\r\n// /**プラントカテゴリ会社設定---03_SET_005 */\r\n// F_03_SET_005: '03_SET_005',\r\n// /**テスト系統・法規情報---03_SET_006 */\r\n// F_03_SET_006: '03_SET_006',\r\n// /**機器・工事情報---03_SET_007 */\r\n// F_03_SET_007: '03_SET_007',\r\n// /**機器担当ユーザ設定---03_SET_008 */\r\n// F_03_SET_008: '03_SET_008',\r\n// /**作業担当情報---03_SET_009 */\r\n// F_03_SET_009: '03_SET_009',\r\n// /**作業担当ユーザ設定(所属会社毎) 03_SET_010 */\r\n// F_03_SET_010: '03_SET_010',\r\n// /**作業担当ユーザ設定(ユーザ毎) 03_SET_011 */\r\n// F_03_SET_011: '03_SET_011',\r\n// /**必須作業情報---03_SET_012 */\r\n// F_03_SET_012: '03_SET_012',\r\n// /**作業情報---03_SET_013 */\r\n// F_03_SET_013: '03_SET_013',\r\n// /**サマリ表設定---03_SUMM_001 */\r\n// F_03_SUMM_001: '03_SUMM_001',\r\n// /**ビュー進捗表設定---03_VPROG_001 */\r\n// F_03_VPROG_001: '03_VPROG_001',\r\n// /**体調チェック---04_ANS_001 */\r\n// F_04_ANS_001: '04_ANS_001',\r\n// /**予定承認表---04_APPR_001 */\r\n// F_04_APPR_001: '04_APPR_001',\r\n// /**予定変更---04_APPR_004 */\r\n// F_04_APPR_004: '04_APPR_004',\r\n// /**予定・実績比較---04_APPR_005 */\r\n// F_04_APPR_005: '04_APPR_005',\r\n// /**予定表---04_APPROVE */\r\n// F_04_APPROVE: '04_APPROVE',\r\n// /**カレンダー---04_CAL_001 */\r\n// F_04_CAL_001: '04_CAL_001',\r\n// /**体調チェック設定---04_CHK_001 */\r\n// F_04_CHK_001: '04_CHK_001',\r\n// /**プロジェクト情報---04_IMPLEMENT */\r\n// F_04_IMPLEMENT: '04_IMPLEMENT',\r\n// /**進捗表(通常)---04_PROG_001 */\r\n// F_04_PROG_001: '04_PROG_001',\r\n// /**進捗表(リスト)---04_PROG_002 */\r\n// F_04_PROG_002: '04_PROG_002',\r\n// /**進捗表(カレンダー)---04_PROG_003 */\r\n// F_04_PROG_003: '04_PROG_003',\r\n// /**ビュー進捗表---04_PROG_004 */\r\n// F_04_PROG_004: '04_PROG_004',\r\n// /**機器番号・名称検索---04_PROG_005 */\r\n// F_04_PROG_005: '04_PROG_005',\r\n// /**追加工事管理---04_PROG_006 */\r\n// F_04_PROG_006: '04_PROG_006',\r\n// /**進捗表---04_PROGRESS */\r\n// F_04_PROGRESS: '04_PROGRESS',\r\n// /**掲示板---04_SHR_001 */\r\n// F_04_SHR_001: '04_SHR_001',\r\n// /**ミーティング掲示板---04_SHR_004 */\r\n// F_04_SHR_004: '04_SHR_004',\r\n// /**ドキュメント情報---04_SHR_005 */\r\n// F_04_SHR_005: '04_SHR_005',\r\n// /**リンクの編集---04_SHR_008 */\r\n// F_04_SHR_008: '04_SHR_008',\r\n// /**登録された任意のリンク---04_SHR_009 */\r\n// F_04_SHR_009: '04_SHR_009',\r\n// /**サマリグラフ---04_SUM_001 */\r\n// F_04_SUM_001: '04_SUM_001',\r\n// /**サマリ表(プラント)---04_SUM_002 */\r\n// F_04_SUM_002: '04_SUM_002',\r\n// /**サマリ表(カテゴリ)---04_SUM_003 */\r\n// F_04_SUM_003: '04_SUM_003',\r\n// /**サマリ表(ミーティング)---04_SUM_004 */\r\n// F_04_SUM_004: '04_SUM_004',\r\n// /**サマリ表(全体)---04_SUM_005 */\r\n// F_04_SUM_005: '04_SUM_005',\r\n// /**サマリ表(未完了)---04_SUM_006 */\r\n// F_04_SUM_006: '04_SUM_006',\r\n// /**サマリ表(テスト系統)---04_SUM_007 */\r\n// F_04_SUM_007: '04_SUM_007',\r\n// /**サマリ表(法規)---04_SUM_008 */\r\n// F_04_SUM_008: '04_SUM_008',\r\n// /**サマリ表---04_SUMMARY */\r\n// F_04_SUMMARY: '04_SUMMARY',\r\n// /**アンケート---05_ANS_001 */\r\n// F_05_ANS_001: '05_ANS_001',\r\n// /**外部リンク---05_LINK */\r\n// F_05_LINK: '05_LINK',\r\n// /**アンケート設定---05_QUE_001 */\r\n// F_05_QUE_001: '05_QUE_001',\r\n//}\r\n","// メッセージ定義書.xlsxに記載されている内容(そもそも設計と合っていないし、IDのルールも微妙、一旦MSGは必ずつける。あと区切りで_をつける)\r\nexport const MSG_I_00001 = '保存しました。';\r\nexport const MSG_I_00002 = '削除が完了しました。';\r\nexport const MSG_I_00003 = 'ロックしました。';\r\nexport const MSG_I_00004 = 'ロック解除しました。';\r\nexport const MSG_I_00005 = 'ロックされました。';\r\nexport const MSG_I_00006 = 'ロック解除されました。';\r\nexport const MSG_I_00007 = 'タイムアウト。ロック解除されました。';\r\nexport const MSG_I_00008 = 'ネットワーク不良により、保存内容を保留します。';\r\nexport const MSG_I_00009 = 'ローカルデータをサーバに保存しました。';\r\nexport const MSG_I_00010 = 'オフラインのため機能が制限されます。';\r\nexport const MSG_I_00011 = 'ローカルデータが見つかりました。自動保存を行います。';\r\nexport const MSG_I_00012 = 'BOXのフォルダの作成を開始しました。';\r\nexport const MSG_I_00013 = 'パスワードを変更しました。';\r\nexport const MSG_I_00014 = '選択しました。';\r\nexport const MSG_I_00015 = 'お知らせはありません。';\r\nexport const MSG_I_00016 = '警告はありません。';\r\nexport const MSG_I_00017 = '更新が完了しました。';\r\nexport const MSG_I_00018 = '送信頻度が「即時」で 送信条件に「進捗遅延」を設定した場合、メールは0時頃に送信されます。';\r\nexport const MSG_I_00019 = '更新データがありません。';\r\nexport const MSG_I_00020 = 'プロジェクトデータの作成が完了しました。
コピー項目設定に応じて現在データをコピーしております。
数分かかる場合がございますのでご了承ください。
コピー状況は、プロジェクトマスタ一覧のコピー状況列でご確認いただけます。
※1.コピーが完了するまで、新規のデータ作成はご遠慮ください。
※2.コピーが完了しない場合やコピー状況列にエラーが表示されている場合は
恐れ入りますが、システム管理者までお問い合わせください。';\r\nexport const MSG_I_00021 = 'マスタデータのコピーを開始しました。';\r\nexport const MSG_I_00022 = 'クリップボードにURLをコピーしました。';\r\nexport const MSG_I_00023 = '取込が正常に完了しました。';\r\nexport const MSG_I_00024 = '削除を受け付けました。';\r\nexport const MSG_I_00025 = '{0}を{1}しています。少々お待ちください。';\r\nexport const MSG_I_00026 = 'サマリ集計が完了しました。';\r\n\r\n//---------\r\nexport const MSG_Q_00001 = '保存されていないデータがあります。移動してもよろしいですか?';\r\nexport const MSG_Q_00002 = '削除します。よろしいですか?';\r\nexport const MSG_Q_00003 = 'ローカルデータが見つかりました。既に変更データが更新されています。
ローカルデータで上書きしますか?
※上書きしない場合は、ローカルデータは破棄されます。';\r\nexport const MSG_Q_00004 = 'メールが送信されなくなります。よろしいですか?';\r\nexport const MSG_Q_00005 = 'モードを切り替えます。よろしいですか?';\r\nexport const MSG_Q_00006 = '初期テンプレートを取得します。よろしいですか?';\r\nexport const MSG_Q_00007 = 'このページから移動しますか?\\n行った変更が保存されない可能性があります。';\r\nexport const MSG_Q_00008 = '削除処理を受け付けました。完了には数分かかる場合がございますのでご了承ください。';\r\nexport const MSG_Q_00009 = 'リセットします。よろしいですか?';\r\nexport const MSG_Q_00010 = '並び替えを行うと、保存ができなくなります。よろしいですか?';\r\nexport const MSG_Q_00011 = '並び替えを行うと、変更した内容は保存されません。よろしいですか?';\r\n\r\n\r\n\r\n//export const MSG_Q_00003 = '送信条件が設定されていないデータがあります。移動してもよろしいですか?';\r\n//export const MSG_Q_00004 = '送信先が設定されていないデータがあります。移動してもよろしいですか?';\r\n//\r\n//export const MSG_Q_00006 = '送信先が設定されていません。よろしいですか?';\r\n\r\n//---------\r\nexport const MSG_W_00001 = '対象データがありません。';\r\nexport const MSG_W_00002 = 'データが多すぎるため表示することができません。プラントグループを選択して読込を行ってください。';\r\nexport const MSG_W_00003 = '対象のプラントカテゴリ会社行を選択してください。';\r\nexport const MSG_W_00004 = '保存されていないデータがあります。保存後、当初計画を確定してください。';\r\nexport const MSG_W_00005 = '他ユーザ({0} さん)が編集中のため、ロックできません。';\r\nexport const MSG_W_00006 = '{0}が未入力です。';\r\nexport const MSG_W_00007 = '{0}には{1}以降の日付を入力してください。';\r\nexport const MSG_W_00008 = '前の作業が完了していません。';\r\nexport const MSG_W_00009 = 'オフラインのため機能制限されています。';\r\nexport const MSG_W_00010 = '機器を選択してください。';\r\nexport const MSG_W_00011 = '有効な機器を先に選択してください。';\r\nexport const MSG_W_00012 = '無効な設定のため、{0}へ遷移できません。';\r\nexport const MSG_W_00013 = 'オフラインのため{0}を中断します。';\r\nexport const MSG_W_00014 = 'オフラインのため{0}できません。';\r\nexport const MSG_W_00015 = 'サマリ集計処理でエラーが発生しました。もう一度集計を実行してください。';\r\nexport const MSG_W_00016 = '事前申請で既に承認済のデータは、実行選択できません。'; \r\n\r\n\r\n//export const MSG_W_00001 = '{0}が登録されていません。';\r\n//export const MSG_W_00004 = '{0}及び{1}のいずれかを入力してください。';\r\n//export const MSG_W_00005 = '{0}及び{1}に紐づくデータは存在しません。';\r\n//export const MSG_W_00009 = '他のユーザによって更新された情報が存在します。';\r\n\r\n//---------\r\n\r\nexport const MSG_E_00001 = 'システムエラーが発生しました。管理者に連絡してください。';\r\nexport const MSG_E_00002 = '入力エラーがありました。';\r\nexport const MSG_E_00003 = '{0}は入力必須です。';\r\nexport const MSG_E_00004 = '入力必須です。';\r\nexport const MSG_E_00005 = '{0}は既に使用されています。'; // ログインID\r\nexport const MSG_E_00006 = '{0}はユーザ間で重複した指定がされています。'; // メールアドレス\r\nexport const MSG_E_00007 = '新しいパスワードと新しいパスワード(確認)が異なります。';\r\nexport const MSG_E_00008 = 'パスワードはログインIDと異なる内容を指定してください。';\r\nexport const MSG_E_00009 = '前回までと同じパスワードは指定できません。';\r\nexport const MSG_E_00010 = 'このアカウントは現在、ロックされています。管理者へお問い合わせください。';\r\nexport const MSG_E_00011 = 'ファイルが選択されていません。';\r\nexport const MSG_E_00012 = 'ファイルフォーマットが不正です。';\r\nexport const MSG_E_00013 = '{0}シートが存在しません。';\r\nexport const MSG_E_00014 = '下記のいずれかの列が存在しません。
{0}';\r\nexport const MSG_E_00015 = '{0}は{1}で入力してください。';\r\nexport const MSG_E_00016 = '{0}は{1}文字以内で入力してください。';\r\nexport const MSG_E_00017 = '{0}が重複しています。';\r\nexport const MSG_E_00018 = '{0}と{1}の組み合わせが重複しています。';\r\nexport const MSG_E_00019 = 'エクスポートに失敗しました。';\r\nexport const MSG_E_00020 = '選択したファイルを読み込めませんでした。
選択ファイルを確認の上、再度お試しください。
それでも改善されない場合は、システム管理者へお問い合わせください。';\r\nexport const MSG_E_00021 = '読み込み対象のデータが存在しません。';\r\nexport const MSG_E_00022 = '入力された検索条件名は既に使用されています。';\r\nexport const MSG_E_00023 = '{0}:{1}が選択されていないためコピーできません。';\r\nexport const MSG_E_00024 = '有効なデータが0件になるような登録はできません。';\r\nexport const MSG_E_00025 = 'システム管理者が0件になるような登録はできません。';\r\nexport const MSG_E_00026 = 'ログインユーザ自身のデータを削除、または無効化することはできません。';\r\nexport const MSG_E_00027 = 'ログインユーザ自身のデータを削除することはできません。';\r\nexport const MSG_E_00028 = '{0}には{1}以降の日付を入力してください。';\r\nexport const MSG_E_00029 = '{0}の組み合わせは未登録です。';\r\nexport const MSG_E_00030 = '承認情報の入力期間外のため、保存できない承認情報があります。保存できなかったプラント-カテゴリ-会社は以下の通りです。プラント名:{0} カテゴリ名:{1} 会社:{2}';\r\nexport const MSG_E_00031 = '担当の作業項目以外の変更はできません。';\r\nexport const MSG_E_00032 = '設問が回答されている{0}は削除できません。';\r\nexport const MSG_E_00033 = '同一機器内で、テスト系統が重複しています。';\r\nexport const MSG_E_00034 = '同一機器内で、法規が重複しています。';\r\nexport const MSG_E_00035 = '{0}に未来日付は入力できません。';\r\nexport const MSG_E_00036 = '前の作業が完了していません。';\r\nexport const MSG_E_00037 = '{0}を「プロジェクト開始日、終了日」の範囲内にしてください。';\r\nexport const MSG_E_00038 = '1件以上選択してください。';\r\nexport const MSG_E_00039 = '{0}に不正な値が入力されています。';\r\nexport const MSG_E_00040 = '{0}から{1}の間で指定してください。';\r\n//export const MSG_E_00041 = '日付形式が不正です。';\r\nexport const MSG_E_00042 = '{0}桁以内で入力してください。';\r\nexport const MSG_E_00043 = '{0}以上の整数を入力してください。';\r\nexport const MSG_E_00044 = '{0}を選択してください。';\r\nexport const MSG_E_00045 = '{0}は期間内に入力してください。';\r\nexport const MSG_E_00046 = '{0}は日付を入力してください。';\r\n//export const MSG_E_00047 = '{0}に不正な値が入力されています。';\r\nexport const MSG_E_00048 = 'すでに進捗が入力されているため削除できません。';\r\nexport const MSG_E_00049 = 'グループ列が含まれているため削除できません。';\r\nexport const MSG_E_00050 = '進捗表を保存してください。';\r\nexport const MSG_E_00051 = '{0}は当日日付以降を入力してください。';\r\nexport const MSG_E_00052 = '{0}は未来日付を入力してください。';\r\nexport const MSG_E_00053 = '作業担当が限定されているため追加できません。';\r\nexport const MSG_E_00054 = '作業担当が限定されているため削除できません。';\r\nexport const MSG_E_00055 = '行/列が絞り込まれている状態の時は移動や削除ができません。絞り込みを解除してから実行してください。';\r\nexport const MSG_E_00056 = '作業担当が限定されているためグループ化できません。';\r\nexport const MSG_E_00057 = '作業担当が限定されているためグループ化の解除ができません。';\r\nexport const MSG_E_00058 = '移動する権限がありません。';\r\nexport const MSG_E_00059 = 'グループ化する権限がありません。';\r\nexport const MSG_E_00060 = 'グループ化を解除する権限がありません。';\r\nexport const MSG_E_00061 = 'ファイルアップロードサイズ上限({0})を超えているためアップロードできません。';\r\n//export const MSG_E_00062 = '表示されていない機器が存在するため、移動できません。';\r\nexport const MSG_E_00062 = '現在表示中のプラントカテゴリ会社単位内で、全作業の進捗マークが×となり、非表示中の機器・工事Noが1つ以上あるため、機器順序を指定できません。';\r\nexport const MSG_E_00063 = '回答済の設問は編集できません。';\r\nexport const MSG_E_00064 = '自由入力欄は設問1つにつき1つのみ設定できます。';\r\nexport const MSG_E_00065 = '{0}は{1}以上の値を入力してください。';\r\nexport const MSG_E_00066 = '編集タブで保存を押下しないと{0}できません。';\r\nexport const MSG_E_00067 = '最大値を0以上で設定してください。';\r\nexport const MSG_E_00068 = '必須の項目では1以上の数値を設定してください。';\r\nexport const MSG_E_00069 = '{0}には登録されているものを入力してください。';\r\nexport const MSG_E_00070 = '入力値が不正です。';\r\nexport const MSG_E_00071 = '項目を入力した場合は選択をしてください。';\r\nexport const MSG_E_00072 = '選択した場合は項目を入力してください。';\r\nexport const MSG_E_00073 = '選択または項目を入力してください。';\r\nexport const MSG_E_00074 = '{0}は{1}以下もしくは{2}以上の値を入力してください。';\r\nexport const MSG_E_00075 = '作業が1件も選択されていません。';\r\n\r\nexport const MSG_E_00078 = 'メール文面または送信条件が未登録のため、送信設定を有効化できません。';\r\n\r\nexport const MSG_E_00081 = '他に段がないため、削除できません。';\r\nexport const MSG_E_00082 = '作業が登録されているため、削除できません。';\r\nexport const MSG_E_00083 = 'DBに保存できませんでした。';\r\nexport const MSG_E_00084 = '{0}を入力した場合は{1}を入力してください。';\r\nexport const MSG_E_00085 = '{0}が取得できませんでした。';\r\nexport const MSG_E_00086 = '他の承認者の承認は取り消しできません。';\r\nexport const MSG_E_00087 = 'Boxフォルダが作成されていません。';\r\nexport const MSG_E_00088 = 'テンプレートの構文に誤りがあります。';\r\n\r\n\r\nexport const MSG_E_00092 = '{0}には{1}以降の時刻を入力してください。';\r\n\r\nexport const MSG_E_00094 = '設定が有効なため、条件を0件にすることはできません。';\r\nexport const MSG_E_00095 = '{0}は入力できません。';\r\nexport const MSG_E_00096 = '{0}は{1}文字以上{2}文字以内で入力してください。';\r\n\r\n\r\nexport const MSG_E_00099 = '{0}は{1}文字以上で入力してください。';\r\nexport const MSG_E_00100 = '{0}は{1}以上{2}以下の値を入力してください。';\r\nexport const MSG_E_00101 = '{0}は{1}以下の値を入力してください。';\r\nexport const MSG_E_00102 = '選択系の設問には選択肢を設定してください。';\r\nexport const MSG_E_00103 = '{0}は数値を入力してください。';\r\nexport const MSG_E_00104 = '{0}は時刻を入力してください。';\r\nexport const MSG_E_00105 = '{0}には{1}より前の日付を入力してください。';\r\nexport const MSG_E_00106 = '{0}には{1}より後の日付を入力してください。';\r\nexport const MSG_E_00107 = '{0}は{1}分単位の時刻を入力してください。';\r\n\r\nexport const MSG_E_00108 = '対象データが上限({0}件)を超えるため、条件を絞って{1}してください。';\r\nexport const MSG_E_00109 = '編集中データのためクリップボードにコピーできません。保存後に再度お試しください。';\r\nexport const MSG_E_00110 = 'プラント、カテゴリ、会社の何れかが設定されていないためクリップボードにコピーできません。';\r\nexport const MSG_E_00111 = '最新の承認情報を更新してください。';\r\nexport const MSG_E_00112 = '{0}が複数選択されています。';\r\nexport const MSG_E_00113 = '{0}権限がありません。';\r\nexport const MSG_E_00114 = '{0}文字以内で入力してください。';\r\nexport const MSG_E_00115 = '不正な{0}が選択されています。';\r\nexport const MSG_E_00116 = '既に使用されています。';\r\nexport const MSG_E_00117 = '{0}が選択されていません。';\r\nexport const MSG_E_00118 = 'エラーにより取込に失敗しました。';\r\nexport const MSG_E_00119 = '[作業ID][機器・工事ID]ファイル内で同一の機器と作業の組み合わせは設定できません。';\r\nexport const MSG_E_00120 = '[進捗情報ID]ファイル内で同一の進捗情報は設定できません。';\r\nexport const MSG_E_00121 = '[{0}]プロジェクト期間内の日付を指定してください。';\r\nexport const MSG_E_00122 = '[実績]以下のいずれかを入力してください。\\n●、10 %、20 %、30 %、40 %、50 %、60 %、70 %、80 %、90 %、100 %\\nまたは進捗率: 1~99の数値。';\r\nexport const MSG_E_00123 = '[進捗]以下のいずれかを入力してください。\\n(空白) 、〇、◎、●、▲、△、◇、■\\nまたは進捗率: 1~99の数値。\\n※取込区分が追加の場合、「×」は指定不可';\r\nexport const MSG_E_00124 = '[進捗]以下のいずれかを入力してください。\\n(空白) 、〇、◎、●、▲、△、×、◇、■\\nまたは進捗率: 1~99の数値。';\r\nexport const MSG_E_00125 = '[{0}]不正な{1}が設定されています。';\r\nexport const MSG_E_00126 = '作業グループ内で連番になりません。同じ作業グループ内で連番となるように入力してください。';\r\nexport const MSG_E_00127 = '一度に{0}件を超えるデータを操作することはできません。複数回に分けて実行してください。';\r\nexport const MSG_E_00128 = '登録済みの機器・工事は1つしか選択できません。';\r\nexport const MSG_E_00129 = '機器に対して同一の作業 / 作業担当は選択できません。';\r\n\r\nexport const MSG_E_00130 = \"登録処理を受け付けました。時間を置いてから進捗を確認してください。\";\r\nexport const MSG_E_00131 = '現在日付がプロジェクト終了日を過ぎているため、プレビュー表示ができません。';\r\n\r\nexport const MSG_E_00132 = '空白(全角/半角)の入力はできません。';\r\nexport const MSG_E_00133 = '{0}は既に使用されているため、変更または削除ができません。';\r\nexport const MSG_E_00134 = '所属会社の担当者を指定してください。';\r\nexport const MSG_E_00135 = '{0}のセルを1つ選択してください。';\r\n\r\nexport const MSG_E_00142 = '複数の担当者を{0}とする場合、連続したセルを指定してください。';\r\nexport const MSG_E_00143 = '{0}に{1}と同一の値を設定できません。'; \r\nexport const MSG_E_00144 = '初期値は、入力形式が文字列以外の場合は設定できません。\\n入力形式に「数値のみ」、「日付」、「時刻」が選択されているため、「文字列」へ変更ください。'; \r\nexport const MSG_E_00145 = '{0}に所属会社以外が含まれているため、削除できません。'; \r\nexport const MSG_E_00146 = '{0}に所属会社以外が含まれているため、追加できません。'; \r\nexport const MSG_E_00147 = '{0}は、所属会社以外変更できません。'; \r\nexport const MSG_E_00148 = '開始時刻と終了時刻が同じ場合、間隔を空白にしてください。'; \r\nexport const MSG_E_00149 = '{0}と{1}に同一の日付を設定できません。'; \r\n\r\n//export const MSG_E_00014 = '文字種が異なります。';\r\n//export const MSG_E_00004 = 'ログインに失敗しました。';\r\n//export const MSG_E_00010 = '入力内容がパスワードポリシーを満たしていません。({0})';\r\n//export const MSG_E_00020 = '先に{0}が更新されました。最新の情報を取得して再度保存してください。';\r\n//export const MSG_E_00035 = '計画開始日と計画終了日が間違っています。';\r\n//export const MSG_E_00037 = 'テスト系統:{0}はテスト系統の登録値と異なります。';\r\n//export const MSG_E_00043 = '{0}の値は{1}に存在しません。';\r\n//export const MSG_E_00047 = '次のプラントのHW期間が逆転しています。{0}';\r\n//export const MSG_E_00048 = '次のプラントのHW期間が設定されていません。{0}';\r\n//export const MSG_E_00049 = '次のプラントのHW期間が正しくありません。{0}';\r\n//export const MSG_E_00050 = '次のプラントのHW期間が作成可能期間を超えています。{0}';\r\n//export const MSG_E_00056 = '運用チェックを入力した場合は{0}を入力してください。';\r\n//export const MSG_E_00059 = '{0}は{1}以前に設定してください。';","import * as $ from \"jquery\";\r\nimport * as GC from '../grapecity';\r\n\r\n\r\n/**\r\n * \r\n */\r\nexport type DialogButtonsType = 'okOnly' | 'noOnly' | 'cancelOnly' | 'okOrNo' | 'okOrCancel' | 'all';\r\n\r\n/**\r\n *\r\n */\r\nexport type DialogResultType = 'ok' | 'no' | 'cancel';\r\n\r\n/**\r\n *\r\n */\r\ntype DialogIconType = 'info' | 'error' | 'warn';\r\n\r\n/**\r\n *\r\n */\r\ntype DialogCallbacks = {\r\n onShow?: (Popup: Dialog, CancelEventArgs: GC.wijmo.CancelEventArgs) => boolean;\r\n onShown?: (Popup: Dialog, EventArgs: GC.wijmo.EventArgs) => void;\r\n onClose?: (Popup: Dialog, CancelEventArgs: GC.wijmo.CancelEventArgs) => boolean;\r\n onClosed?: (Popup: Dialog, EventArgs: GC.wijmo.EventArgs) => void;\r\n};\r\n\r\nexport type DialogOption = {\r\n title: string;\r\n /**\r\n */\r\n bodyContent: any;\r\n /**\r\n */\r\n icon?: DialogIconType;\r\n /**\r\n */\r\n buttons?: DialogButtonsType;\r\n /**\r\n * \r\n */\r\n callbacks?: DialogCallbacks;\r\n}\r\n\r\n\r\n\r\n/**\r\n * ダイアログに関する基底基盤\r\n */\r\nclass Dialog {\r\n\r\n /*\r\n * \r\n * デフォルトでは、showTrigger プロパティはPopupTrigger.ClickOwner に設定されており、 オーナー要素をクリックすると、ポップアップが表示されます。\r\n * showTrigger プロパティをPopupTrigger.None に設定すると、 ポップアップはshow メソッドを呼び出すのみで表示されます。\r\n */\r\n protected static readonly defaultVenderOption = {\r\n isDraggable: false,\r\n showTrigger: GC.wjcInput.PopupTrigger.None,\r\n hideTrigger: GC.wjcInput.PopupTrigger.None,\r\n };\r\n\r\n /**\r\n * modalのインスタンス\r\n */\r\n protected modal: GC.wjcInput.Popup = null;\r\n\r\n /**\r\n * @deprecated\r\n */\r\n protected venderOptions: any = null;\r\n\r\n\r\n public readonly dialogOption: DialogOption;\r\n\r\n /**\r\n */\r\n protected content: any = null;\r\n\r\n /**\r\n */\r\n protected title: string = null;\r\n\r\n /**\r\n */\r\n protected bodyContent: any = null;\r\n\r\n /**\r\n */\r\n protected icon: DialogIconType = null;\r\n\r\n /**\r\n */\r\n protected buttons: DialogButtonsType;\r\n\r\n /**\r\n * show前\r\n */\r\n public onShow: (Popup: Dialog, CancelEventArgs: GC.wijmo.CancelEventArgs) => boolean = null;\r\n\r\n /**\r\n * show後\r\n */\r\n public onShown: (Popup: Dialog, EventArgs: GC.wijmo.EventArgs) => void = null;\r\n\r\n /**\r\n * close前\r\n */\r\n public onClose: (Popup: Dialog, CancelEventArgs: GC.wijmo.CancelEventArgs) => boolean = null;\r\n\r\n /**\r\n * close後\r\n */\r\n public onClosed: (Popup: Dialog, EventArgs: GC.wijmo.EventArgs) => void = null;\r\n\r\n /**\r\n * dialogResult\r\n */\r\n public get dialogResult(): DialogResultType {\r\n if (this.modal.dialogResult) {\r\n if (this.modal.dialogResult == 'wj-hide-ok') {\r\n return 'ok';\r\n } else if (this.modal.dialogResult == 'wj-hide-no') {\r\n return 'no';\r\n } else if (this.modal.dialogResult == 'wj-hide-cancel') {\r\n return 'cancel';\r\n }\r\n }\r\n //1623 確認メッセージでEscキーを押下するとOKと判断される\r\n //return 'ok';\r\n return 'cancel';\r\n }\r\n\r\n private container: JQuery;\r\n private header: JQuery;\r\n private body: JQuery;\r\n private footer: JQuery;\r\n private btnOk: JQuery;\r\n private btnNo: JQuery;\r\n private btnCancel: JQuery;\r\n\r\n\r\n /**\r\n * @param options\r\n */\r\n\r\n //constructor(content: Element | string, options?: any) {\r\n constructor(option: DialogOption) {\r\n\r\n this.dialogOption = option;\r\n this.title = option.title;\r\n this.bodyContent = option.bodyContent;\r\n this.icon = option.icon;\r\n\r\n this.buttons = option.buttons;\r\n\r\n if (option.callbacks) {\r\n if (option.callbacks.onShow) {\r\n this.onShow = option.callbacks.onShow;\r\n }\r\n if (option.callbacks.onShown) {\r\n this.onShown = option.callbacks.onShown;\r\n }\r\n if (option.callbacks.onClose) {\r\n this.onClose = option.callbacks.onClose;\r\n }\r\n if (option.callbacks.onClosed) {\r\n this.onClosed = option.callbacks.onClosed;\r\n }\r\n }\r\n\r\n //this.options = options;\r\n //this.content = element;\r\n this.makeContent(ret => {\r\n this.content = ret;\r\n //parentの指定は必要かも\r\n //$('body').append(this.content);\r\n\r\n this.initializePopUp();\r\n this.setEvent();\r\n });\r\n }\r\n\r\n //promiseモデル\r\n //protected abstract async setContent();\r\n\r\n /**\r\n * コンテントの収集(CBモデル)\r\n * @param \r\n */\r\n protected makeContent(cb: (elem) => void) {\r\n\r\n //this.wijimoStyle();\r\n\r\n this.bootStrapStyle();\r\n\r\n\r\n cb(this.container);\r\n };\r\n\r\n\r\n /**\r\n * wijimoを主体としたStyle\r\n */\r\n wijimoStyle() {\r\n\r\n // * Header\r\n this.container = $('
');\r\n this.header = $('
');\r\n const title = $('
')\r\n\r\n let titleIcon;\r\n if (this.icon === 'info') {\r\n titleIcon = $('notification_important')\r\n }\r\n else if (this.icon === 'error') {\r\n titleIcon = $('error')\r\n }\r\n else if (this.icon === 'warn') {\r\n titleIcon = $('warnig')\r\n }\r\n title.append(titleIcon);\r\n\r\n //エスケープ必要?(サニタイジング)\r\n const titleText = $('')\r\n titleText.append(this.title);\r\n title.append(titleText);\r\n this.header.append(title);\r\n this.container.append(this.header);\r\n\r\n\r\n // * Body\r\n this.body = $('
');//wjm\r\n //エスケープ必要?(サニタイジング)\r\n this.body.append(this.bodyContent);\r\n this.container.append(this.body);\r\n\r\n // * Footer\r\n //Popup 内に'wj-hide'文字列で始まるクラスを持つクリック可能な 要素がある場合は、その要素がクリックされるとPopup は非表示になります。\r\n //さらに、そのクラス名にPopup.dialogResult プロパティが設定され、 呼び出し元が適切なアクションを実行できます。\r\n //たとえば、ユーザーが[OK]または[キャンセル]ボタンを クリックすると非表示になり、\r\n //Popup.dialogResult プロパティが 'wj-hide-cancel'または'wj-hide-ok'のいずれかに設定されます。\r\n\r\n this.footer = $('
');\r\n if (this.buttons === \"okOnly\" || this.buttons === \"okOrNo\" || this.buttons === \"all\") {\r\n this.btnOk = $('');\r\n this.footer.append(this.btnOk);\r\n }\r\n\r\n if (this.buttons === \"noOnly\" || this.buttons === \"okOrNo\" || this.buttons === \"all\") {\r\n this.btnNo = $('');\r\n this.footer.append(this.btnNo);\r\n }\r\n\r\n if (this.buttons === \"cancelOnly\" || this.buttons === \"okOrCancel\" || this.buttons === \"all\") {\r\n this.btnCancel = $('');\r\n this.footer.append(this.btnCancel);\r\n }\r\n this.container.append(this.footer);\r\n }\r\n /**\r\n * bootStrapを主体としたStyle\r\n */\r\n bootStrapStyle() {\r\n\r\n // * Header\r\n //this.container = $('
');//bs\r\n this.container = $('
');//bs\r\n\r\n this.header = $('
');//bs\r\n const title = $('
')\r\n\r\n let titleIcon;\r\n if (this.icon === 'info') {\r\n titleIcon = $('notification_important')\r\n }\r\n else if (this.icon === 'error') {\r\n titleIcon = $('error')\r\n }\r\n else if (this.icon === 'warn') {\r\n titleIcon = $('warnig')\r\n }\r\n\r\n title.append(titleIcon);\r\n\r\n //エスケープ必要?(サニタイジング)\r\n const titleText = $('')\r\n titleText.append(this.title);\r\n title.append(titleText);\r\n\r\n this.header.append(title);\r\n this.container.append(this.header);\r\n\r\n // * Body\r\n this.body = $('
');//bs\r\n //エスケープ必要?(サニタイジング)\r\n this.body.append(this.bodyContent);\r\n this.container.append(this.body);\r\n\r\n // * Footer\r\n //Popup 内に'wj-hide'文字列で始まるクラスを持つクリック可能な 要素がある場合は、その要素がクリックされるとPopup は非表示になります。\r\n //さらに、そのクラス名にPopup.dialogResult プロパティが設定され、 呼び出し元が適切なアクションを実行できます。\r\n //たとえば、ユーザーが[OK]または[キャンセル]ボタンを クリックすると非表示になり、\r\n //Popup.dialogResult プロパティが 'wj-hide-cancel'または'wj-hide-ok'のいずれかに設定されます。\r\n\r\n //this.footer = $('
');\r\n this.footer = $('
');\r\n\r\n if (this.buttons === \"okOnly\" || this.buttons === \"okOrNo\" || this.buttons === \"all\") {\r\n this.btnOk = $('');\r\n this.footer.append(this.btnOk);\r\n }\r\n\r\n if (this.buttons === \"noOnly\" || this.buttons === \"okOrNo\" || this.buttons === \"all\") {\r\n this.btnNo = $('');\r\n this.footer.append(this.btnNo);\r\n }\r\n\r\n if (this.buttons === \"cancelOnly\" || this.buttons === \"okOrCancel\" || this.buttons === \"all\") {\r\n this.btnCancel = $('');\r\n this.footer.append(this.btnCancel);\r\n }\r\n this.container.append(this.footer);\r\n }\r\n\r\n\r\n /**\r\n * \r\n */\r\n protected initializePopUp() {\r\n\r\n //イベントFork\r\n const events = {\r\n showing: (p: GC.wjcInput.Popup, e: GC.wijmo.CancelEventArgs) => {\r\n let ret = true;\r\n if (this.onShow) {\r\n ret = this.onShow.call(this, this, e);\r\n ret = (ret) ? e.cancel : ret;\r\n }\r\n return ret;\r\n },\r\n\r\n shown: (p: GC.wjcInput.Popup, e: GC.wijmo.EventArgs) => {\r\n this.onShown?.call(this, this, e);\r\n },\r\n\r\n hiding: (p: GC.wjcInput.Popup, e: GC.wijmo.CancelEventArgs) => {\r\n let ret = true;\r\n if (this.onClose) {\r\n ret = this.onClose.call(this, this, e);\r\n ret = (ret) ? e.cancel : ret;\r\n }\r\n return ret;\r\n },\r\n\r\n hidden: (p: GC.wjcInput.Popup, e: GC.wijmo.EventArgs) => {\r\n this.onClosed?.call(this, this, e);\r\n }\r\n }\r\n const _options = jQuery.extend(true, {}, Dialog.defaultVenderOption, events);\r\n\r\n // create forms\r\n this.modal = new GC.wjcInput.Popup(this.content, _options);\r\n\r\n //各種イベントはReadOnlyな為、下記は許可されない。コンストラクタでOptionとして渡す必要がある\r\n //this.modal.hiding((p, e) => {\r\n // this.onShow?.call(this, e);\r\n //});\r\n }\r\n\r\n /**\r\n * \r\n * @param closeCb\r\n */\r\n protected setEvent() {\r\n //$.noop();\r\n }\r\n\r\n /**\r\n * \r\n * @param _param\r\n * @param _closeCb\r\n */\r\n show() {\r\n //\r\n this.modal.show(true);\r\n }\r\n\r\n /**\r\n * @param dialogResult\r\n */\r\n close(dialogResult?: DialogResultType) {\r\n\r\n this.modal.hide(dialogResult);\r\n }\r\n}\r\n\r\n\r\n\r\n/**\r\n * ダイアログの表示\r\n * @param title\r\n * @param content\r\n * @param buttons\r\n * @param callback\r\n */\r\nfunction ShowDialogInner(title: string, content: any, buttons: DialogButtonsType = 'okOrNo', icon: DialogIconType = 'info', callbacks?: DialogCallbacks): Dialog {\r\n const option: DialogOption = {\r\n title: title,\r\n bodyContent: content,\r\n buttons: buttons,\r\n icon: icon,\r\n callbacks: callbacks\r\n };\r\n const dlg = new Dialog(option);\r\n\r\n dlg.show();\r\n return dlg;\r\n}\r\n\r\n/** Publish Method */\r\n/**\r\n * ダイアログの表示\r\n * @param title\r\n * @param content\r\n * @param buttons\r\n * @param callback\r\n */\r\nexport function ShowDialog(title: string, content: any, buttons: DialogButtonsType = 'okOrNo', icon: DialogIconType = 'info', callback?: (result: DialogResultType) => void): Dialog {\r\n\r\n const dlg = ShowDialogInner(title, content, buttons, icon);\r\n dlg.onClosed = (d, e) => {\r\n callback?.call(this, d.dialogResult);\r\n }\r\n return dlg;\r\n}\r\n\r\n/**\r\n * メッセージダイアログの表示\r\n * @param title\r\n * @param content\r\n * @param callback\r\n */\r\nexport function MessgeDialog(title: string, content: any, callback?: (result: DialogResultType) => void): Dialog {\r\n\r\n //let potion: dialogOption = {\r\n // title: title, content: content, callbacks: { onClosed : callback }\r\n //}\r\n //const option: dialogOption = { title: title, content: content, buttons: \"okOnly\" };\r\n //const dlg = new dialog(option);\r\n //dlg.onClosed = (d, e) => {\r\n // callback?.call(this, d.dialogResult);\r\n //}\r\n //return dlg;\r\n\r\n //const dlg = ShowDialog(title, content, \"okOnly\");\r\n //dlg.onClosed = (d, e) => {\r\n // callback?.call(this, d.dialogResult);\r\n //}\r\n\r\n const dlg = ShowDialog(title, content, 'okOnly', 'info', callback);\r\n return dlg;\r\n}\r\n\r\n/**\r\n * 確認ダイアログの表示\r\n * @param title\r\n * @param content\r\n * @param callback\r\n */\r\nexport function ConfirmDialog(title: string, content: any, callback?: (result: DialogResultType) => void): Dialog {\r\n\r\n //const option: dialogOption = { title: title, content: content, buttons: \"okOrNo\" }\r\n //const dlg = new dialog(option);\r\n //dlg.onClosed = (d, e) => {\r\n // callback?.call(this, d.dialogResult);\r\n //}\r\n //return dlg;\r\n\r\n //const dlg = ShowDialog(title, content, \"okOrNo\");\r\n //dlg.onClosed = (d, e) => {\r\n // callback?.call(this, d.dialogResult);\r\n //}\r\n const dlg = ShowDialog(title, content, 'okOrNo', 'info', callback);\r\n return dlg;\r\n}\r\n","import * as $ from 'jquery';\r\nimport * as _ from 'lodash';\r\n\r\n/**\r\n * loading Animation\r\n */\r\nclass Loading {\r\n\r\n /* */\r\n private _isLoading: boolean;\r\n /* */\r\n private _count: number;\r\n\r\n /* フォーカスされた要素の保存*/\r\n private $actFoc;\r\n /*disabledされたボタンの保存*/\r\n private $actDis;\r\n\r\n\r\n /////////シングルトンパターン /////////\r\n // /**\r\n // * インスタンス\r\n // */\r\n // private static _instance: Loading;\r\n\r\n // /**\r\n // * インスタンスの取得\r\n // */\r\n // public static getInstance(): Loading {\r\n // // インスタンスが存在しない場合、new演算子でインスタンスを作成\r\n // // 引数に渡すのは、Hoge.getInstanceというFunction\r\n // if (!this._instance) {\r\n // this._instance = new Loading(Loading.getInstance);\r\n // }\r\n // // 生成済みのインスタンスを返す\r\n // return this._instance;\r\n // }\r\n\r\n // /**\r\n // * コンストラクタ\r\n // */\r\n // constructor(caller: Function) {\r\n // if (caller == Loading.getInstance) {\r\n // //console.log(\"2 インスタンスを作成。一度しか呼ばれない。\");\r\n // //} else if (Loading._instance) {\r\n // // throw new Error(\"既にインスタンスが存在するためエラー。\");\r\n // //} else {\r\n // // throw new Error(\"コンストラクタの引数が不正な為エラー。\");\r\n // }\r\n // }\r\n\r\n // //Usage\r\n // //let hoge1: Loading = Loading.getInstance();\r\n\r\n /////////シングルトンパターン /////////\r\n\r\n\r\n /**\r\n * ctor\r\n */\r\n constructor() {\r\n this._isLoading = false;\r\n this._count = 0;\r\n this.$actFoc = null;\r\n this.$actDis = null;\r\n }\r\n\r\n /**\r\n * Loading Animationを表示\r\n * @param backgroundColor\r\n */\r\n show(backgroundColor?: string) {\r\n\r\n if (!this.$actFoc || this.$actFoc.length === 0) {\r\n // 現在フォーカスが与えられている要素を取得し保存する\r\n this.$actFoc = $(':focus');\r\n // エンターキーで連打が可能なため、フォーカスをblurする\r\n this.$actFoc.blur();\r\n }\r\n\r\n // このeventによって、押した場所が特定できるので、chromeやie11でしか使えないが重要\r\n const e = /firefox/g.test(window.navigator.userAgent.toLowerCase()) ? undefined : event;\r\n\r\n if (e && this.$actDis === null) {\r\n // eventから現在押されたボタンを取得し保存する\r\n this.$actDis = $(e.target);\r\n //#4343 site.tsにて、別に2重送信防止機能があるので不要!!\r\n //// eventから現在押されたボタンをdisabledにする\r\n //this.$actDis.prop('disabled', true);\r\n }\r\n\r\n this._isLoading = true;\r\n //this._count += 1;\r\n this._count = this._count || 0;\r\n this._count += 1;\r\n\r\n //Loadingアイコンの作成\r\n if ((!$('#loadingIcon') || $('#loadingIcon').length === 0) && this._isLoading) {\r\n // フォーカスを制御\r\n $('a,button').on('focus.disabled', function (e) {\r\n // lodingアイコン中はfocusをblurする\r\n $(e.target).blur();\r\n });\r\n\r\n\r\n //\r\n //created by http://cssload.net/\r\n //\r\n\r\n let load = '
';\r\n load += '
';\r\n load += '
';\r\n load += '
';\r\n load += '
';\r\n load += '
';\r\n load += '
';\r\n load += '';\r\n load += ' ';\r\n load += ' ';\r\n load += ' ';\r\n load += ' ';\r\n load += ' ';\r\n load += ' ';\r\n load += ' ';\r\n load += '';\r\n const $loadingIcon = $('
').attr('id', 'loadingIcon').addClass('loading-bg').append(load);\r\n\r\n if (backgroundColor) {\r\n $loadingIcon.css('background-color', backgroundColor);\r\n }\r\n\r\n $('body').append($loadingIcon);\r\n }\r\n };\r\n\r\n /**\r\n * Loadingアニメーションを解除\r\n */\r\n hide() {\r\n this._count -= 1;\r\n if ($('#loadingIcon').length && this._count <= 0) {\r\n $('#loadingIcon').remove();\r\n // フォーカス制御イベントをoff\r\n $('a,button').off('focus.disabled');\r\n\r\n // ボタンのdisabledを解除\r\n if (this.$actDis && this.$actDis.length) {\r\n //#4343 site.tsにて、別に2重送信防止機能があるので不要!!\r\n //this.$actDis.prop('disabled', false);\r\n }\r\n // フォーカスを元に戻す\r\n if (this.$actFoc) {\r\n this.$actFoc.focus();\r\n }\r\n this.$actFoc = null;\r\n this.$actDis = null;\r\n }\r\n this._isLoading = false;\r\n };\r\n\r\n\r\n\r\n ///**\r\n // * Loading Animationを表示\r\n // * @param icon\r\n // * @param message\r\n // * @param animate\r\n // */\r\n //loadingShow(icon, message, animate) {\r\n // if (this.$actFoc.length === 0) {\r\n // // 現在フォーカスが与えられている要素を取得し保存する\r\n // this.$actFoc = $(':focus');\r\n // // エンターキーで連打が可能なため、フォーカスをblurする\r\n // this.$actFoc.blur();\r\n // }\r\n // // このeventによって、押した場所が特定できるので、chromeやie11でしか使えないが重要\r\n // const e = /firefox/g.test(window.navigator.userAgent.toLowerCase()) ? undefined : event;\r\n // if (e && this.$actDis.length === 0) {\r\n // // eventから現在押されたボタンを取得し保存する\r\n // this.$actDis = $(e.target);\r\n // // eventから現在押されたボタンをdisabledにする\r\n // this.$actDis.prop('disabled', true);\r\n // }\r\n // this._isLoading = true;\r\n // this._count += 1;\r\n\r\n // //Loadingアイコンの作成\r\n // if ((!$('#loadingIcon') || $('#loadingIcon').length === 0) && this._isLoading) {\r\n // // フォーカスを制御\r\n // $('a,button').on('focus.disabled', function (e) {\r\n // // lodingアイコン中はfocusをblurする\r\n // $(e.target).blur();\r\n // });\r\n // const _icon = icon || 'fa-compass';\r\n // const _message = message || 'Loading...';\r\n // const _animate = animate || 'fa-spin';\r\n // // var $icon = $('').addClass('fa fa-fw fa-spin loading-icon').addClass(icon || 'fa-compass'); //'fa-circle-o-notch';\r\n // const $icon = $('').addClass('fa fa-fw loading-icon').addClass(_icon).addClass(_animate); //'fa-circle-o-notch';\r\n // const $message = $('').addClass('loading-msg').text(_message);\r\n\r\n // const $loadingIcon = $('
').attr('id', 'loadingIcon').addClass('loading-bg').append($icon).append($message);\r\n\r\n // //data保持\r\n // $loadingIcon.data({ icon: _icon, message: _message, animate: _animate });\r\n // $('body').append($loadingIcon);\r\n // }\r\n\r\n //};\r\n\r\n ///**\r\n // * Loadingアニメーションを解除\r\n // */\r\n //loadingHide() {\r\n // this._count -= 1;\r\n // if ($('#loadingIcon').length && this._count <= 0) {\r\n // $('#loadingIcon').remove();\r\n // // フォーカス制御イベントをoff\r\n // $('a,button').off('focus.disabled');\r\n // // ボタンのdisabledを解除\r\n // if (this.$actDis.length) { this.$actDis.prop('disabled', false); }\r\n // // フォーカスを元に戻す\r\n // this.$actFoc.focus();\r\n // this.$actFoc = '';\r\n // this.$actDis = '';\r\n // }\r\n // this._isLoading = false;\r\n //};\r\n\r\n ///**\r\n // * Loadingアニメーションの内容を変更\r\n // * @param icon\r\n // * @param message\r\n // * @param animate\r\n // * @deprecated\r\n // */\r\n //changeContents(icon, message, animate) {\r\n // const $loadingIcon = $('#loadingIcon');\r\n // if ($loadingIcon && this._isLoading) {\r\n // //data取得\r\n // const cache = $loadingIcon.data();\r\n // const _icon = (!_.isNil(icon)) ? icon : cache.icon;\r\n // const _animate = (!_.isNil(animate)) ? animate : cache.animate;\r\n // const _message = (!_.isNil(message)) ? message : cache.message;\r\n // $loadingIcon.find('i').removeClass(cache.icon).removeClass(cache.animate);\r\n // $loadingIcon.find('i').addClass(_icon).addClass(_animate);\r\n // $loadingIcon.find('span').text(_message);\r\n // $loadingIcon.data({ icon: _icon, message: _message, animate: animate });\r\n // }\r\n //};\r\n}\r\n\r\n\r\n//\r\n\r\n\r\nexport const loading = new Loading();\r\n","\r\n/**\r\n * 通知\r\n * wrap of \"notifyjs\"\r\n *http://notifyjs.jpillora.com/\r\n * npm \"notifyjs-browser\": \"0.4.2\"\r\n *\r\n */\r\n\r\n//import * as $ from 'jquery';\r\n\r\n\r\n//下記の問題もあるのでtoasterにきりかえるかもしれない!\r\n//ライブラリの作りが悪い!SPAにすると,にビルドインのstyleタグを埋め込んでしまうため重複する。存在すれば消す\r\n\r\n//#515 Notifyだけは、Extarnalにして,外部ファイルにしても,なぜかうまくいかない(ライブラリの作りがそうなっているらしい)\r\n//importは禁ずる\r\n//$('head #notify-bootstrap').remove();\r\n////下は初回なぜか2つ刺さる(タイミングの問題だと思う)\r\n//$('head #core-notify').remove();\r\n//$('div.notifyjs-corner').remove();\r\n//import 'notifyjs-browser';\r\n\r\n/**\r\n * \r\n */\r\nexport type notifyOptions = {\r\n // whether to hide the notification on click\r\n clickToHide?: boolean;\r\n // whether to auto-hide the notification\r\n autoHide?: boolean;\r\n // if autoHide, hide after milliseconds\r\n autoHideDelay?: number;\r\n // show the arrow pointing at the element\r\n arrowShow?: boolean;\r\n // arrow size in pixels\r\n arrowSize?: number;\r\n // position defines the notification position though uses the defaults below\r\n position?: any;\r\n // default positions\r\n //elementPosition?: string;\r\n // default positions(window)\r\n //globalPosition?: string;\r\n // default style\r\n style?: string;\r\n //// default class (string or [string])\r\n //className: 'error';\r\n // show animation\r\n showAnimation?: string;\r\n // show animation duration\r\n showDuration?: number;\r\n // hide animation\r\n hideAnimation?: string;\r\n // hide animation duration\r\n hideDuration?: number;\r\n // padding between element and notification\r\n gap?: number;\r\n}\r\n\r\nconst DefaultNotifyOptions: notifyOptions = {\r\n // whether to hide the notification on click\r\n clickToHide: true,\r\n // whether to auto-hide the notification\r\n autoHide: true,\r\n // if autoHide, hide after milliseconds\r\n autoHideDelay: 5000,\r\n // show the arrow pointing at the element\r\n arrowShow: true,\r\n // arrow size in pixels\r\n arrowSize: 5,\r\n // position defines the notification position though uses the defaults below\r\n //position: 'top center',\r\n // default style\r\n //style: 'bootstrap',\r\n style: 'spirit',\r\n //// default class (string or [string])\r\n //className: 'error',\r\n // show animation\r\n showAnimation: 'slideDown',\r\n // show animation duration\r\n showDuration: 400,\r\n // hide animation\r\n hideAnimation: 'slideUp',\r\n // hide animation duration\r\n hideDuration: 400,\r\n // padding between element and notification\r\n gap: 2\r\n}\r\n\r\n\r\n//export class Notify {\r\n// /**\r\n// * \r\n// * @param content\r\n// * @param options\r\n// */\r\n// static info(content: string | Element, options?: notifyOptions) {\r\n// Notify.show(content, 'info', options);\r\n// };\r\n// /**\r\n// * \r\n// * @param content\r\n// * @param options\r\n// */\r\n// static success(content: string | Element, options?: notifyOptions) {\r\n// Notify.show(content, 'success', options);\r\n// };\r\n// /**\r\n// * \r\n// * @param content\r\n// * @param options\r\n// */\r\n// static warn(content: string | Element, options?: notifyOptions) {\r\n// Notify.show(content, 'warn', options);\r\n// };\r\n// /**\r\n// * \r\n// * @param content\r\n// * @param options\r\n// */\r\n// static error(content: string | Element, options?: notifyOptions) {\r\n// Notify.show(content, 'error', options);\r\n// };\r\n\r\n// /**\r\n// * \r\n// * @param content\r\n// * @param className\r\n// * @param options\r\n// */\r\n// private static show(content: string | Element, className: 'info' | 'success' | 'warn' | 'error', options?: notifyOptions) {\r\n\r\n// //for customize\r\n// //const _options = $.extend(true, {}, customStyle, options);\r\n// options = options || DefaultNotifyOptions;\r\n// const _options = $.extend(true, {}, options, { className: className });\r\n// $.notify(content, _options);\r\n// };\r\n\r\n\r\n\r\n\r\n$.notify.addStyle(\"spirit\", {\r\n //html: \"
\",\r\n html: '
' +\r\n '
' +\r\n '
' +\r\n ' ' +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
',\r\n\r\n //classes: {\r\n // base: {\r\n // \"font-weight\": \"bold\",\r\n // \"padding\": \"8px 15px 8px 14px\",\r\n // //\"text-shadow\": \"0 1px 0 rgba(255, 255, 255, 0.5)\",\r\n // \"background-color\": \"#fcf8e3\",\r\n // \"border\": \"1px solid #fbeed5\",\r\n // \"border-radius\": \"4px\",\r\n // \"white-space\": \"nowrap\",\r\n // \"padding-left\": \"25px\",\r\n // //\"background-repeat\": \"no-repeat\",\r\n // //\"background-position\": \"3px 7px\"\r\n // },\r\n // error: {\r\n // \"color\": \"#B94A48\",\r\n // \"background-color\": \"#F2DEDE\",\r\n // \"border-color\": \"#EED3D7\",\r\n // },\r\n // success: {\r\n // \"color\": \"#468847\",\r\n // \"background-color\": \"#DFF0D8\",\r\n // \"border-color\": \"#D6E9C6\",\r\n // },\r\n // info: {\r\n // \"color\": \"#3A87AD\",\r\n // \"background-color\": \"#D9EDF7\",\r\n // \"border-color\": \"#BCE8F1\",\r\n // },\r\n // warn: {\r\n // \"color\": \"#C09853\",\r\n // \"background-color\": \"#FCF8E3\",\r\n // \"border-color\": \"#FBEED5\",\r\n // }\r\n //}\r\n});\r\n$.notify.addStyle(\"spirit\", {\r\n //html: \"
\",\r\n html: '
' +\r\n '
' +\r\n '
' +\r\n ' ' +\r\n \"
\" +\r\n '
' +\r\n '
' +\r\n '
',\r\n\r\n //classes: {\r\n // base: {\r\n // \"font-weight\": \"bold\",\r\n // \"padding\": \"8px 15px 8px 14px\",\r\n // //\"text-shadow\": \"0 1px 0 rgba(255, 255, 255, 0.5)\",\r\n // \"background-color\": \"#fcf8e3\",\r\n // \"border\": \"1px solid #fbeed5\",\r\n // \"border-radius\": \"4px\",\r\n // \"white-space\": \"nowrap\",\r\n // \"padding-left\": \"25px\",\r\n // //\"background-repeat\": \"no-repeat\",\r\n // //\"background-position\": \"3px 7px\"\r\n // },\r\n // error: {\r\n // \"color\": \"#B94A48\",\r\n // \"background-color\": \"#F2DEDE\",\r\n // \"border-color\": \"#EED3D7\",\r\n // },\r\n // success: {\r\n // \"color\": \"#468847\",\r\n // \"background-color\": \"#DFF0D8\",\r\n // \"border-color\": \"#D6E9C6\",\r\n // },\r\n // info: {\r\n // \"color\": \"#3A87AD\",\r\n // \"background-color\": \"#D9EDF7\",\r\n // \"border-color\": \"#BCE8F1\",\r\n // },\r\n // warn: {\r\n // \"color\": \"#C09853\",\r\n // \"background-color\": \"#FCF8E3\",\r\n // \"border-color\": \"#FBEED5\",\r\n // }\r\n //}\r\n});\r\n\r\n\r\n\r\n/**\r\n * \r\n * @param content\r\n * @param className\r\n * @param options\r\n */\r\nfunction show(content: string | Element, icon = 'notifications', className: 'info' | 'success' | 'warn' | 'error', options?: notifyOptions) {\r\n\r\n //for customize\r\n //const _options = $.extend(true, {}, customStyle, options);\r\n //options = options || DefaultNotifyOptions;\r\n //const _options = $.extend(true, {}, options, { className: className, style: 'bootstrap' });\r\n //const _options = $.extend(true, {}, options, { className: className, style: 'spirit' });\r\n const _options = $.extend(true, {}, DefaultNotifyOptions, options, { className: className });\r\n\r\n\r\n //$.notify(content, _options);\r\n const data = {\r\n title: content,\r\n icon: icon,\r\n };\r\n\r\n\r\n $.notify(data, _options);\r\n}\r\n\r\n\r\n\r\n/**\r\n * \r\n * @param content\r\n * @param className\r\n * @param options\r\n */\r\nfunction showElement(target: any, content: string | Element, icon = 'notifications', className: 'info' | 'success' | 'warn' | 'error', isCompact = true, options?: notifyOptions) {\r\n\r\n //for customize\r\n //const _options = $.extend(true, {}, customStyle, options);\r\n //options = options || DefaultNotifyOptions;\r\n //const _options = $.extend(true, {}, options, { className: className, style: 'bootstrap' });\r\n //const _options = $.extend(true, {}, options, { className: className, style: 'spirit' });\r\n if (isCompact) {\r\n className += ' compact';\r\n }\r\n const _options = $.extend(true, {}, DefaultNotifyOptions, options, { className: className });\r\n\r\n\r\n //$.notify(content, _options);\r\n const data = {\r\n title: content,\r\n icon: icon,\r\n };\r\n\r\n\r\n $(target).notify(data, _options);\r\n}\r\n\r\nexport const Notify = {\r\n\r\n /**\r\n * \r\n * @param content\r\n * @param options\r\n */\r\n info(content: string | Element, options?: notifyOptions) {\r\n show(content, 'info', 'info', options);\r\n },\r\n /**\r\n * \r\n * @param content\r\n * @param options\r\n */\r\n success(content: string | Element, options?: notifyOptions) {\r\n show(content, 'check_circle', 'success', options);\r\n },\r\n /**\r\n * \r\n * @param content\r\n * @param options\r\n */\r\n warn(content: string | Element, options?: notifyOptions) {\r\n show(content, 'warning', 'warn', options);\r\n },\r\n /**\r\n * \r\n * @param content\r\n * @param options\r\n */\r\n error(content: string | Element, options?: notifyOptions) {\r\n show(content, 'error', 'error', options);\r\n },\r\n\r\n /**\r\n * \r\n * @param content\r\n * @param options\r\n */\r\n element(target: string | Element | JQuery, content: string | Element, options?: notifyOptions, icon = 'notifications', className: 'info' | 'success' | 'warn' | 'error' = 'info', isCompact = true) {\r\n showElement(target, content, icon, className, isCompact, options);\r\n }\r\n\r\n}","\r\nimport * as _ from \"lodash\";\r\nimport * as codes from \"./define/codes\";\r\n\r\n\r\n\r\n/** */\r\nexport type ProjectInfo = {\r\n /** プロジェクトID*/\r\n ProjectId: number;\r\n /** プロジェクトcode*/\r\n ProjectCode: string;\r\n /** 顧客ID*/\r\n CustomerId: number;\r\n /** 工場ID*/\r\n FactoryId: number;\r\n /** プロジェクト管理番号*/\r\n ProjectManageNo: string;\r\n /** プロジェクト名*/\r\n ProjectName: string;\r\n /** 開始年月日*/\r\n ProjectStartDate: Date;\r\n /** 終了年月日*/\r\n ProjectEndDate: Date;\r\n /** プラントGr列数*/\r\n PlantGroupColumnNumber: number;\r\n /** box使用区分*/\r\n BoxUseDiv: string;\r\n /** バックアップ有無フラグ*/\r\n BackupFlg: boolean;\r\n /** 誤入力警報表示フラグ */\r\n WrongWordWarningFlg: boolean;\r\n /** お知らせ表示フラグ */\r\n NoticeFlg: boolean;\r\n /** 前日実績入力締切時間 */\r\n PrevDateResultInputCutOffTime: Date;\r\n /** 集計基準日区分 */\r\n AggregateTargetDateDiv: string;\r\n\r\n //#4347\r\n /** パスワード有効期限*/\r\n PasswordExpireDays: number;\r\n\r\n /** 2要素認証フラグ */\r\n TwoFactorAuthenticationFlg: boolean;\r\n\r\n //#5906\r\n /** 未来進捗反映フラグ */\r\n FutureProgressInfoMergeEnableFlg: boolean;\r\n\r\n //#6215\r\n /** 出力帳票ID */\r\n ExportFileId: string;\r\n /** 予定変更ボタン表示フラグ */\r\n DirectReHoldFlg: boolean;\r\n\r\n ///** 顧客名*/\r\n //CustomerNm: string;\r\n ///** 工場名*/\r\n //FactoryNm: string;\r\n\r\n /** 有効フラグ */\r\n EnableFlg: boolean;\r\n\r\n}\r\n\r\n\r\n\r\n/**\r\n * 業務共通処理ユーティリティ\r\n */\r\nexport class Project {\r\n\r\n /***/\r\n private static projectInfoData: ProjectInfo;\r\n\r\n /**\r\n * projectInfo\r\n * @param event\r\n */\r\n static get projectInfo(): ProjectInfo {\r\n try {\r\n if (!Project.projectInfoData) {\r\n const _projectInfoRaw = $('#_projectInfo').val() + '';\r\n const _projectInfoObject = JSON.parse(_projectInfoRaw);\r\n Project.setProjectInfo(_projectInfoObject);\r\n }\r\n } catch (e) {\r\n //noop\r\n }\r\n return Project.projectInfoData;\r\n }\r\n\r\n /**\r\n * projectInfo\r\n * @param event\r\n */\r\n static setProjectInfo(_projectInfoObject) {\r\n //_.assignIn(Session.projectInfoData, _projectInfoObject);\r\n Project.projectInfoData = _projectInfoObject;\r\n }\r\n}\r\n","\r\nimport * as _ from \"lodash\";\r\nimport * as codes from \"./define/codes\";\r\nimport { Util } from \"./util\";\r\n\r\n/** */\r\nexport type SessionLoginUserInfo = {\r\n /** ユーザID(管理者の場合はAdminUserIdが入る) */\r\n UserId: number;\r\n /** プロジェクトID(管理者の場合は空)*/\r\n ProjectId?: number;\r\n /** 会社ID(管理者の場合は空)*/\r\n CompanyId?: number;\r\n /** ログインID*/\r\n LoginId: string;\r\n /** ユーザID(S-TORAGE)*/\r\n StorageUserId: string;\r\n /** ユーザ名*/\r\n UserName: string;\r\n /** 表示名*/\r\n DispName: string;\r\n /** サイン名*/\r\n SignName: string;\r\n /** 権限区分*/\r\n AuthDiv: codes.AuthDiv;\r\n /** 機器作業操作区分 */\r\n EquipmentWorkOperationDiv: codes.EquipmentWorkOperationDiv;\r\n /** パスワード変更要否フラグ*/\r\n PasswordChangeNecessityFlg?: boolean;\r\n /** 備考*/\r\n Remarks: string;\r\n /** 管理者フラグ(システム管理者、プロジェクト管理者)*/\r\n //IsAdminUser: boolean;\r\n IsAdminUser: boolean;\r\n // メールアドレス1\r\n MailAddress1: string;\r\n // メールアドレス2\r\n MailAddress2: string;\r\n // メールアドレス3\r\n MailAddress3: string;\r\n}\r\n\r\n\r\n\r\n/** */\r\nexport type SessionFunctionAuthority = {\r\n /***/\r\n FunctionCode: string;\r\n ///***/\r\n //FunctionName: string;\r\n /***/\r\n //AuthDiv: string;\r\n AuthDiv: codes.AuthDiv;\r\n /***/\r\n AvailabilityLevel: number;\r\n}\r\n\r\n\r\n/**\r\n * セッションユーティリティ\r\n */\r\nexport class Session {\r\n\r\n /***/\r\n private static loginUserInfoData: SessionLoginUserInfo;\r\n /***/\r\n private static functionAuthoritiesData: SessionFunctionAuthority[];\r\n\r\n /**\r\n * loginUserInfo\r\n * @param event\r\n */\r\n static get loginUserInfo(): SessionLoginUserInfo {\r\n try {\r\n if (!Session.loginUserInfoData) {\r\n const _loginUserInfoRaw = $('#_loginUserInfo').val() + '';\r\n const _loginUserInfoObject = JSON.parse(_loginUserInfoRaw);\r\n Session.setLoginUserInfo(_loginUserInfoObject);\r\n }\r\n } catch (e) {\r\n //noop\r\n }\r\n return Session.loginUserInfoData;\r\n }\r\n\r\n /**\r\n * loginUserInfo\r\n * @param event\r\n */\r\n static setLoginUserInfo(_loginUserInfoObject: any) {\r\n\r\n if (_loginUserInfoObject.UserId === null) { return; }\r\n const authDiv = codes.AuthDiv.toCodeValue(_loginUserInfoObject?.AuthDiv) || codes.AuthDiv.WORKER;\r\n const isAdminUser = (_loginUserInfoObject?.IsAdminUser && (_loginUserInfoObject?.IsAdminUser === true || _loginUserInfoObject?.IsAdminUser.toLowerCase() === 'true')) ? true : false;\r\n Session.loginUserInfoData = {\r\n UserId: _loginUserInfoObject.UserId || null,\r\n ProjectId: _loginUserInfoObject.ProjectId || null,\r\n CompanyId: _loginUserInfoObject.CompanyId || null,\r\n LoginId: _loginUserInfoObject.LoginId || '',\r\n StorageUserId: _loginUserInfoObject.StorageUserId || '',\r\n UserName: _loginUserInfoObject.UserName || '',\r\n DispName: _loginUserInfoObject.DispName || '',\r\n SignName: _loginUserInfoObject.SignName || '',\r\n AuthDiv: authDiv,\r\n EquipmentWorkOperationDiv: _loginUserInfoObject.EquipmentWorkOperationDiv || '',\r\n PasswordChangeNecessityFlg: _loginUserInfoObject.PasswordChangeNecessityFlg || false,\r\n Remarks: _loginUserInfoObject.Remarks || '',\r\n MailAddress1: _loginUserInfoObject.MailAddress1 || '',\r\n MailAddress2: _loginUserInfoObject.MailAddress2 || '',\r\n MailAddress3: _loginUserInfoObject.MailAddress3 || '',\r\n IsAdminUser: isAdminUser,\r\n }\r\n }\r\n /**\r\n * functionAuthorities\r\n * @param event\r\n */\r\n static get functionAuthorities(): SessionFunctionAuthority[] {\r\n try {\r\n if (!Session.functionAuthoritiesData) {\r\n const _functionAuthoritiesRaw = $('#_functionAuthorities').val() + '';\r\n const _functionAuthorities = JSON.parse(_functionAuthoritiesRaw);\r\n\r\n Session.setFunctionAuthorities(_functionAuthorities);\r\n\r\n }\r\n } catch (e) {\r\n //noop\r\n }\r\n return Session.functionAuthoritiesData;\r\n }\r\n\r\n /**\r\n * functionAuthorities\r\n * @param event\r\n */\r\n static setFunctionAuthorities(_functionAuthorities) {\r\n\r\n var FunctionAuthorities: SessionFunctionAuthority[] = [];\r\n if (_.isArray(_functionAuthorities)) {\r\n _functionAuthorities.forEach((f, i) => {\r\n const authDiv = codes.AuthDiv.toCodeValue(f.AuthDiv) || codes.AuthDiv.WORKER;\r\n let fa: SessionFunctionAuthority = {\r\n FunctionCode: f.FunctionCode,\r\n //FunctionName: f.FunctionName || '',\r\n AuthDiv: authDiv,\r\n AvailabilityLevel: f.AvailabilityLevel\r\n };\r\n FunctionAuthorities.push(fa);\r\n });\r\n }\r\n Session.functionAuthoritiesData = FunctionAuthorities;\r\n }\r\n\r\n /**\r\n * \r\n */\r\n static FuncAuth = {\r\n /**\r\n * \r\n */\r\n item: function (functionCode: string): SessionFunctionAuthority {\r\n let user = Session.loginUserInfo;\r\n let FAS = Session.functionAuthorities;\r\n if (!FAS) { return null; }\r\n let FA = FAS.find(fa => fa.FunctionCode === functionCode && fa.AuthDiv.code === user.AuthDiv.code);\r\n return FA || null;\r\n },\r\n /**\r\n * \r\n */\r\n AvailabilityLevel: function (functionCode: string): number {\r\n let FA = Session.FuncAuth.item(functionCode);\r\n return FA?.AvailabilityLevel || 0;\r\n },\r\n /**\r\n * 実行可能か\r\n */\r\n isAllowed: function (functionCode: string, writeable?: boolean): boolean {\r\n writeable = _.isNil(writeable) ? false : writeable;\r\n let FA = Session.FuncAuth.item(functionCode);\r\n if (!FA) { return false; }\r\n //権限があるか\r\n if (FA.AvailabilityLevel === codes.AvailabilityLevel.NONE.code) {\r\n return false;\r\n }\r\n //書き込み権限があるかどうかのチェック\r\n if (writeable && (FA.AvailabilityLevel < codes.AvailabilityLevel.RW.code)) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n /**\r\n * 実行不可(isAllowedの逆値)\r\n */\r\n isDenied: function (functionCode: string, writeable?: boolean): boolean {\r\n return !Session.FuncAuth.isAllowed(functionCode, writeable);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * セッション情報の整合性チェック\r\n * 画面インスタンスのログイン情報とサーバーセッションのそれにアンマッチがあった場合、画面をreloadする\r\n */\r\n static checkLoginUserInfo() {\r\n //Util.getData('/CommonAPI/GetSessionInfo').then((source) => {\r\n // if (source?.UserInfo?.UserId != Session.loginUserInfo.UserId) {\r\n // //画面インスタンスのログイン情報とアンマッチがあった場合、画面をreloadする\r\n // //そうすることににより、強制的に切り替え先ログインユーザーの権限に応じた画面状態になる想定\r\n // window.location.reload();\r\n // }\r\n //}).catch(() => {\r\n // null;\r\n //});\r\n\r\n Util.ajax({\r\n url: '/CommonAPI/GetSessionInfo',\r\n type: 'GET'\r\n }, false).done(function (res) {\r\n // なぜjsonにならない?とりあえずparseする\r\n try {\r\n res = JSON.parse(res) || {};\r\n\r\n let source = res.Data;\r\n if (source?.UserInfo?.UserId != Session.loginUserInfo.UserId) {\r\n //画面インスタンスのログイン情報とアンマッチがあった場合、画面をreloadする\r\n //そうすることににより、強制的に切り替え先ログインユーザーの権限に応じた画面状態になる想定\r\n window.location.reload();\r\n }\r\n } catch (e) {\r\n null;\r\n }\r\n }).fail(function (jqXHR, statusText, errorThrown) {\r\n null;\r\n });\r\n\r\n }\r\n}\r\n","import * as $ from \"jquery\";\r\nimport { Util } from \"./util\";\r\nimport { Business } from \"./business\";\r\nimport { ModalBase } from \"./base/base\";\r\n\r\n/** */\r\n//#1273 SPAの基盤のインスタンスの保管場所を変更\r\n//export class SPA {\r\nclass SPA {\r\n\r\n //private static ignore_key_elms = [\"#userinfo, #header, #side-menu, #ribbon, #main, #footer, #shortcut, #divSmallBoxes, #divMiniIcons, #divbigBoxes, #voiceModal, script, .ui-chatbox, #sideMenuContextMenu, .hidden, #TccNotifyBoxes, #TccDtPicker, #tccToolTip, #ezcHint, .tcc-component.datepicker\"];\r\n //private static ignore_key_elms = [];\r\n\r\n //#1298 grapecity関連の不要なelement(SPA実行時に残ってしまう)\r\n //private static forced_remove_elms_selectors = ['.gc-theme-version', '[gcuielement]', 'span[style=\"visibility: hidden; top: -10000px; left: -10000px; font: bold 14.6667px Calibri; position: absolute;\"]'];\r\n //恒久対応\r\n private static forced_remove_elms_selectors = ['.gc-theme-version', '[gcuielement]', 'span[style*=\"visibility: hidden; top: -10000px; left: -10000px;\"]'];\r\n\r\n private container: JQuery;\r\n\r\n currentPageUrl: string;\r\n\r\n onNavigate: (newPage, oldPage, pushStated: boolean) => void;\r\n\r\n /** */\r\n constructor(container: any) {\r\n this.container = $(container);\r\n this.init();\r\n }\r\n\r\n\r\n /** */\r\n init() {\r\n\r\n\r\n //////Legacy(URLhashを用いてうまいことやる場合)\r\n ////$(window).on(\"hashchange\", (e) => {\r\n //// this.navigate();\r\n ////})\r\n\r\n ////戻る・進むボタンがクリックされたとき\r\n //$(window).on('popstate', (e) => {\r\n // //popstateイベントはcancellableではありません。 \r\n // //https://developer.mozilla.org/en-US/docs/Web/API/Window/popstate_event\r\n // //e.preventDefault();\r\n // //popstateはstateがチェンジした後なので、topFrameのlocationが移動対象になる\r\n // const page = spa.getLocation();\r\n // const lastPage = spa.currentPageUrl;\r\n\r\n // if (page) {\r\n // //クリックしたリンク先のURLと現在のURLが一致する場合は処理を終える\r\n // //historyの場合は、あっても良いかも\r\n // //if (page === lastPage) { return; }\r\n // ////移動\r\n // //spa.navigate(page);\r\n // SPIRIT.business.page.confirmClose((result) => {\r\n // //移動\r\n // if (result === \"ok\") {\r\n // spa.navigate(page, false);\r\n // this.normalize();\r\n // } else {\r\n // ////よって新しくエントリしてしまう\r\n // //history.pushState(null, null, lastPage);\r\n // //下記だと、「戻り」「進む」のあとのエントリの書き換えになるので、URLは書き換えになってくれるが履歴自体も書き変わってしまう(課題stateをうまく使うか?)\r\n // history.replaceState(null, null, lastPage);\r\n // //windowタブのタイトルが勝手に切り替わっている(メカニズムがわからんが)\r\n // //よってDocumentのタイトルを再度設定しなおす(すると治る)\r\n // const title = $('title').text();\r\n // $('title').text(title);\r\n // }\r\n // });\r\n // }\r\n //});\r\n\r\n\r\n this.currentPageUrl = this.getLocation();\r\n };\r\n\r\n\r\n /**\r\n * 現在のページ名を取得する\r\n **/\r\n getLocation() {\r\n //return location.pathname.split('/').pop();\r\n //return location.pathname;\r\n return location.pathname + (location.search || '');\r\n }\r\n\r\n /**\r\n * \r\n * @param url\r\n * @param pushState\r\n */\r\n navigate(url: string, pushState?: boolean) {\r\n //const lastPage = this.getLocation();\r\n const lastPage = this.currentPageUrl;\r\n pushState = (pushState === false) ? false : true;\r\n\r\n let target = \"\";\r\n\r\n if (url) {\r\n\r\n ////クリックしたリンク先のURLと現在のURLが一致する場合は処理を終える\r\n //if (url === lastPage) {\r\n // return;\r\n //}\r\n\r\n //新しい URLが、変更前のURLから hash のみを変更した URL である場合であっても、\r\n //pushState() は hashchange イベントを発火させることはないと注記しておきます。\r\n //history.pushState(null, null, url);\r\n\r\n if (pushState) {\r\n //history.pushState(lastPage, null, url);\r\n history.pushState(null, null, url);\r\n }\r\n\r\n target = url;\r\n } else {\r\n\r\n if (0 > location.href.indexOf(\"#\", 0)) {\r\n target = location.pathname;\r\n } else {\r\n //\"#\"hashchangeで行うLegacyタイプを担保\r\n target = location.href.split(\"#\").splice(1).join(\"#\");\r\n }\r\n\r\n target = target + location.search;\r\n }\r\n\r\n\r\n\r\n //this.loadPage(target + location.search, $(this.container));//Legacy用\r\n\r\n\r\n //#1944 \r\n //this.loadPage(target, $(this.container));\r\n //this.currentPageUrl = url;\r\n //this.onNavigate?.call(this, this.currentPageUrl, lastPage);\r\n\r\n\r\n this.loadPage(target, $(this.container)).then(() => {\r\n this.currentPageUrl = url;\r\n this.onNavigate?.call(this, this.currentPageUrl, lastPage, pushState);\r\n\r\n }).catch((err) => {\r\n\r\n }).finally(() => {\r\n\r\n });\r\n\r\n };\r\n\r\n\r\n /**\r\n * \r\n * @param url\r\n * @param container\r\n */\r\n async loadPage(url, container: JQuery) {\r\n\r\n //#1944 \r\n return new Promise((resolve, reject) => {\r\n try {\r\n if (container && container[0] != this.container[0]) {\r\n this.container = $(container);\r\n }\r\n\r\n //クリーンアップ\r\n this.destroyScreen(this.container);\r\n\r\n Util.ajax({\r\n url: url,\r\n type: \"GET\",\r\n dataType: \"html\",\r\n cache: !0,\r\n\r\n //CSRF対策の妨げになるので別で...\r\n //beforeSend: function () {\r\n // //破棄する画面instannceを破棄する\r\n // const spirit = Business.page.pageInstance;\r\n // spirit?.destroy();\r\n // container.removeData().html(\"\");\r\n // //下記のロジックは微妙!(有効にするとすべて消える)\r\n // //if (SPA.ignore_key_elms.length > 0) {\r\n // // $(\"body\").find(\"> *\").filter(\":not(\" + SPA.ignore_key_elms + \")\").empty().remove();\r\n // //}\r\n // //#1298 grapecity関連の不要なelement(SPA実行時に残ってしまう)\r\n // if (SPA.forced_remove_elms_selectors.length > 0) {\r\n // for (var i = 0; i < SPA.forced_remove_elms_selectors.length; i++) {\r\n // $(\"body\").find(SPA.forced_remove_elms_selectors[i]).empty().remove();\r\n // }\r\n // }\r\n // //開いているモーダル(モードレスも)を消す\r\n // let $modals = $(ModalBase.INSTANCE_RETAINER).filter(':not(.' + ModalBase.CLASS_DO_NOT_RELEASE + ' )');\r\n // $modals.each((i, el) => {\r\n // let modal: ModalBase = $(el).data(ModalBase.DATA_KEY);\r\n // modal.destroy();\r\n // });\r\n // container.html('

');\r\n // //container.html('

');\r\n // $(\"html\").animate({ scrollTop: 0 }, \"fast\");\r\n //}\r\n\r\n }).done((data, t, n) => {\r\n let $data = $(data);\r\n //「title」を切り替え\r\n const title = $data.filter('title').text();\r\n if (title) {\r\n $('title').text(title);\r\n }\r\n //FullPageで送られた場合を考慮(タグから始まるHTML文字列。その中から#body-containerの要素を取得し)\r\n if ($data.find('#' + container.attr('id')).length > 0) {\r\n $data = $data.find('#' + container.attr('id'));\r\n };\r\n this.container.off('animationend', this.animated);\r\n this.container.on('animationend', this.animated);\r\n this.container.addClass(\"animate__animated animate__fadeIn \");\r\n this.container.html($data.html());\r\n //pageSetUp(),\r\n data = null;\r\n\r\n resolve();\r\n\r\n }).fail((data, t, n) => {\r\n reject({ data: data, ErrorStatus: t, message: n });\r\n });\r\n\r\n } catch (e) {\r\n reject(e);\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n /**\r\n * 画面(領域)をクリーンする\r\n */\r\n destroyScreen(container) {\r\n //破棄する画面instannceを破棄する\r\n const spirit = Business.page.pageInstance;\r\n spirit?.destroy();\r\n container.removeData().html(\"\");\r\n\r\n //下記のロジックは微妙!(有効にするとすべて消える)\r\n //if (SPA.ignore_key_elms.length > 0) {\r\n // $(\"body\").find(\"> *\").filter(\":not(\" + SPA.ignore_key_elms + \")\").empty().remove();\r\n //}\r\n\r\n //#1298 grapecity関連の不要なelement(SPA実行時に残ってしまう)\r\n if (SPA.forced_remove_elms_selectors.length > 0) {\r\n for (var i = 0; i < SPA.forced_remove_elms_selectors.length; i++) {\r\n $(\"body\").find(SPA.forced_remove_elms_selectors[i]).empty().remove();\r\n }\r\n }\r\n //開いているモーダル(モードレスも)を消す\r\n let $modals = $(ModalBase.INSTANCE_RETAINER).filter(':not(.' + ModalBase.CLASS_DO_NOT_RELEASE + ' )');\r\n $modals.each((i, el) => {\r\n let modal: ModalBase = $(el).data(ModalBase.DATA_KEY);\r\n modal?.destroy();\r\n });\r\n\r\n container.html('

');\r\n //container.html('

');\r\n $(\"html\").animate({ scrollTop: 0 }, \"fast\");\r\n\r\n }\r\n\r\n\r\n /** */\r\n private animated() {\r\n $(this).removeClass(\"animate__animated animate__fadeIn \");\r\n }\r\n}\r\n\r\n\r\n/** singleton */\r\nexport const _SPA = {\r\n /** */\r\n get instance(): SPA {\r\n //documentのdataに隠ぺいし、いつでも使用できるようにする\r\n let _spa: SPA = $(document).data('spa');\r\n if (!_spa) {\r\n _spa = new SPA($('#body-container'));\r\n $(document).data('spa', _spa);\r\n }\r\n return _spa;\r\n }\r\n};\r\n","import { columnDef, WorkSheetBase } from \"./workSheetBase\";\r\n\r\n\r\n\r\nexport class BlankSheet extends WorkSheetBase {\r\n protected modelingData(sourceData: any): any[] {\r\n //加工変更の必要がないのでそのまま返す\r\n return sourceData;\r\n }\r\n\r\n /**\r\n *\r\n */\r\n get DefaultRowData(): {} {\r\n return {};\r\n }\r\n\r\n /**\r\n * カラム定義を構築\r\n * @param sourceData --- サーバデータの生データ\r\n */\r\n defineColumns(sourceData: any): columnDef[] {\r\n let columns: columnDef[] = [];\r\n return columns;\r\n }\r\n}\r\n","import { debug } from \"console\";\r\nimport * as _ from \"lodash\";\r\nimport { Spread, Excel, wijmo } from \"../../grapecity\";\r\nimport { Util } from \"../util\";\r\n\r\n/**\r\n * 必須項目カラムヘッダー\r\n */\r\nexport class RequiredColumnHeaderCellType extends Spread.Sheets.CellTypes.ColumnHeader {\r\n\r\n RADIUS: number;\r\n NORMAL_COLOR: string;\r\n\r\n /**/\r\n constructor() {\r\n super();\r\n this.RADIUS = 8;\r\n this.NORMAL_COLOR = \"rgba(228,65,52,0.9)\";\r\n }\r\n\r\n /**\r\n * @param ctx\r\n * @param value\r\n * @param x\r\n * @param y\r\n * @param width\r\n * @param height\r\n * @param style\r\n * @param context\r\n */\r\n paint(ctx: CanvasRenderingContext2D, value: any, x: number, y: number, width: number, height: number, style: Spread.Sheets.Style, context?: any) {\r\n super.paint(ctx, value, x, y, width, height, style, context);\r\n\r\n ////debugger;\r\n //// 出力テキストストの描画サイズ (TextMetrics) の取得\r\n //const metrics = ctx.measureText(value);\r\n //const textWidth = metrics.width\r\n //const textHeight = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent\r\n\r\n //let harfValueWidth = 0;\r\n //try {\r\n // harfValueWidth = (textWidth / 2);\r\n //} catch (e) {\r\n // null;\r\n //}\r\n\r\n //////paddhingとして5pxあたえる(足りない!テキストにtransformが掛かってるっぽい+15)\r\n //harfValueWidth += 20;\r\n\r\n //debugger;\r\n //ctx.save();\r\n //ctx.beginPath();\r\n\r\n //ctx.fillStyle = this.NORMAL_COLOR;\r\n //ctx.textAlign = 'center';\r\n //ctx.textBaseline = 'middle';\r\n //ctx.fillText(\"*\", (x + width / 2) - harfValueWidth, (y + height / 2) + 5, width);\r\n\r\n //////ctx.fillStyle = this.NORMAL_COLOR;\r\n //////ctx.arc((x + width / 2) - harfValueWidth, y + height / 2, this.RADIUS / 2, 0, Math.PI * 2);\r\n //////ctx.fill();\r\n\r\n ////↓重要、全体的に描画がおかしくなります\r\n //ctx.restore();\r\n\r\n }\r\n /**\r\n * \r\n * \r\n * @param ctx\r\n * @param value\r\n * @param x\r\n * @param y\r\n * @param width\r\n * @param height\r\n * @param style\r\n * @param context\r\n */\r\n paintContent(ctx: CanvasRenderingContext2D, value: any, x: number, y: number, width: number, height: number, style: Spread.Sheets.Style, context?: any) {\r\n //debugger;\r\n //通常\r\n //super.paintContent(ctx, value, x, y, width, height, style, context);\r\n\r\n ////※対応が一番良い(Pending! 選択時、selectedなStykeが当たらない為)\r\n ////マニュアルにはないが下記が一番よさそう(問題ありそうならやめるか)\r\n //var text = {\r\n // richText: [\r\n // //{ text: \"* \", style: { foreColor: this.NORMAL_COLOR } },\r\n // { text: \"* \", style: { foreColor: this.NORMAL_COLOR } },\r\n // //style入れると変な感じになる(スケーリングでおかしくなる)\r\n // //{ text: value, style: style },\r\n // //{ text: value },\r\n // { text: value },\r\n // ]\r\n //}\r\n //super.paintContent(ctx, text, x, y, width, height, style, context);\r\n\r\n //※のみにする\r\n super.paintContent(ctx, \"* \" + value, x, y, width, height, style, context);\r\n\r\n\r\n\r\n //google Sample\r\n //var text = {\r\n // richText: [\r\n // { text: \"G\", style: { font: \"bold 36px Calibri\", foreColor: \"rgb(78,133,242)\" } },\r\n // { text: \"o\", style: { font: \"bold 36px Calibri\", foreColor: \"rgb(228,65,52)\" } },\r\n // { text: \"o\", style: { font: \"bold 36px Calibri\", foreColor: \"rgb(247,188,32)\" } },\r\n // { text: \"g\", style: { font: \"bold 36px Calibri\", foreColor: \"rgb(78,133,242)\" } },\r\n // { text: \"l\", style: { font: \"bold 36px Calibri\", foreColor: \"rgb(65,168,87)\" } },\r\n // { text: \"e\", style: { font: \"bold 36px Calibri\", foreColor: \"rgb(228,65,52)\" } }\r\n // ]\r\n // };\r\n // super.paintContent(ctx, text, x, y, width, height, style, context);\r\n //}\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n/**\r\n * 編集開始時日付format外の値の表示抑止\r\n * #2033 編集開始時日付format外の値の表示抑止\r\n * 日付形式(カレンダー選択可能)のセルで、年月日までの項目にも関わらず、\r\n * 特定のオペレーション(F2)で時分秒まで表示されることがある。\r\n * \r\n * 原因:datePickerで取得した値は時刻にその時の時間が刻まれている(Truncされていない)\r\n * その後編集MODEに入った時に、有効な値としてEditor上に入ってしまうようだ(セルのフォーマット無視、恐らくバグか考慮漏だろう)\r\n * datePickerで取得した値が表示上の値と同じフォーマットで時刻が切り捨てられていれば、00:00:00は表示されない仕様らしい。。(いまいち動きがつかみづらい...)\r\n * @deprecated 結果、workSheetBase.valueChangedProcessで抑止した。\r\n */\r\nexport class DateTimeEditInterceptor extends Spread.Sheets.CellTypes.Text {\r\n\r\n /***/\r\n formatter;\r\n /**\r\n * \r\n * @constructor\r\n * @param formatter\r\n */\r\n constructor(formatter?) {\r\n super();\r\n this.formatter = formatter || \"yyyy/MM/dd\";\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param editorContext\r\n * @param value\r\n */\r\n setEditorValue(editorContext, value) {\r\n //直接入力で数値を入れると通常とは違う変換方式(OADate形式?変換)でパースされ、(例:2→1900/01/01)\r\n //通常new Date等で日付に変換物と違う。\r\n //よってそれは仕様と受け止め。日付Likeではない値の変換は行わず、そのまま表示。\r\n //公式のサイトでも確認出来る(F:22セル)\r\n //https://demo.grapecity.com/spreadjs/demos/features/cells/drop-downs/date-time-picker/purejs\r\n if (Util.date.isDate(value)) {\r\n //日付にパース\r\n var dt = new Date(value);\r\n if (!isNaN(dt.getMilliseconds())) {\r\n //書式変換(時刻以下を切り捨て)\r\n value = wijmo.Globalize.format(dt, this.formatter);\r\n }\r\n }\r\n super.setEditorValue(editorContext, value);\r\n };\r\n}\r\n\r\n\r\n/**\r\n * \r\n */\r\nexport class PasswordEditInterceptor extends Spread.Sheets.CellTypes.Text {\r\n\r\n /***/\r\n /**\r\n * \r\n * @constructor\r\n * @param formatter\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n //案①、編集コントロールをinput type=passwordにする\r\n ///**\r\n // * Creates a DOM element then returns it.\r\n // * @param {Object} context The context associated with the cell type. See the Remarks for more information.\r\n // * @returns {HTMLElement} Returns a DOM element.\r\n // */\r\n //createEditorElement(context?: any): HTMLElement {\r\n // //let sp = super.createEditorElement(context);\r\n // //let sp = $('').get(0);\r\n // let sp = $('').get(0);\r\n\r\n // return sp;\r\n //}\r\n\r\n\r\n //案②、編集時、強制的にパスワード文字数分の[*]に変換して表示する\r\n ///**\r\n // * \r\n // * @param editorContext\r\n // * @param value\r\n // */\r\n setEditorValue(editorContext: HTMLElement, value) {\r\n //debugger;\r\n if (value && value.length > 0) {\r\n value = _.padStart('', value.length, '*'); //\r\n }\r\n super.setEditorValue(editorContext, value);\r\n }\r\n\r\n\r\n /**\r\n * Whether the editing value has changed.\r\n * @param {Object} oldValue Old editing value.\r\n * @param {Object} newValue New editing value.\r\n * @param {Object} context The context associated with the cell type. See the Remarks for more information.\r\n * @returns {boolean} true if oldValue equals newValue; otherwise, false.\r\n */\r\n isEditingValueChanged(oldValue: any, newValue: any, context?: any): boolean {\r\n let oldValueAst = oldValue;\r\n if (oldValue && oldValue.length > 0) {\r\n oldValueAst = _.padStart('', oldValue.length, '*'); //\r\n }\r\n let sp = false;\r\n if (oldValueAst == newValue) {\r\n //元の******文字列(数)と同じだったら変更無しとみなす(編集モードにして、そのまま戻した場合)\r\n sp = false;\r\n } else {\r\n sp = super.isEditingValueChanged(oldValue, newValue, context);\r\n }\r\n return sp;\r\n }\r\n\r\n}\r\n\r\n\r\n/**\r\n * \r\n * コピペは抑止でkない\r\n */\r\nexport class NoInputEditor extends Spread.Sheets.CellTypes.Base {\r\n\r\n\r\n /**\r\n * \r\n * @param context\r\n */\r\n createEditorElement(context?: any): HTMLElement {\r\n return null;\r\n }\r\n\r\n /**\r\n * \r\n * @param editorContext\r\n * @param cellStyle\r\n * @param cellRect\r\n * @param context\r\n */\r\n activateEditor(editorContext: HTMLElement, cellStyle: Spread.Sheets.Style, cellRect: Spread.Sheets.Rect, context?: any): void {\r\n //noop\r\n }\r\n\r\n /**\r\n * Processes key down in display mode.\r\n * @param {KeyboardEvent} event The KeyboardEvent.\r\n * @param {Object} context The context associated with the cell type. See the Remarks for more information.\r\n * @returns {boolean} Returns true if the process is successful; otherwise, false.\r\n */\r\n processKeyDown(event: KeyboardEvent, context?: any): boolean {\r\n //debugger;\r\n return false;\r\n }\r\n /**\r\n * Processes key up in display mode.\r\n * @param {KeyboardEvent} event The KeyboardEvent.\r\n * @param {Object} context The context associated with the cell type. See the Remarks for more information.\r\n * @returns {boolean} Returns true if the process is successful; otherwise, false.\r\n */\r\n processKeyUp(event: KeyboardEvent, context?: any): boolean {\r\n //debugger;\r\n return false;\r\n }\r\n}\r\n","//この形式で再exportしないと、なぜだか、変数の型(typeとして使用できない)\r\nexport * from \"./workBookBase\"\r\nexport * from \"./workSheetBase\"\r\nexport * from \"./blankSheet\"\r\nexport * from \"./cellType\"\r\n","import * as _ from \"lodash\";\r\nimport { Spread, Excel } from \"../../grapecity\";\r\nimport { WorkSheetBase } from \"./workSheetBase\";\r\nimport * as SPIRIT from \"../../SPIRIT\";\r\n\r\n\r\n/**\r\n * Spread基底クラス\r\n */\r\nexport abstract class WorkBookBase {\r\n\r\n static readonly DATA_KEY = 'SPIRIT-workbook';\r\n\r\n /**\r\n * コンテナID\r\n */\r\n public container: any;\r\n\r\n /**\r\n * モード\r\n */\r\n public mode: SPIRIT.constant.GridMode;\r\n\r\n /**\r\n * 行ヘッダーを右クリックした際にコンテキストメニュー「コピー」「貼付け」を非表示にする #4328\r\n * 非活性列があるSpreadはこのプロパティをtrueにする\r\n */\r\n public doHideCopyAndPastingContextMenuAtRowHeader: boolean = false;\r\n\r\n /**\r\n * Spread option\r\n * 全て項目は下記\r\n * allowUserDragMerge:ユーザーがセルをドラッグしてマージできるかどうか(オプション)。\r\n * allowUserDragDrop:ユーザーが範囲データをドラッグ&ドロップできるかどうかを指定します(オプション)。\r\n * allowUserDragFill:ユーザーが範囲をドラッグフィルできるかどうかを指定します(オプション)。\r\n * allowUserZoom:[Ctrl]キーを押しながらマウスホイールを回すことによって表示をズームできるかどうかを指定します(オプション)。\r\n * allowUserResize:ユーザーが行および列のサイズを変更できるかどうかを指定します(オプション)。\r\n * allowUndo:ユーザーが編集をアンドゥできるかどうかを指定します(オプション)。\r\n * allowSheetReorder:ユーザーがSpreadコンポーネントのシートの順序を変更できるかどうかを指定します(オプション)。\r\n * allowContextMenu:ユーザーが組み込みのコンテキストメニューを開くことができるかどうか(オプション)。\r\n * allowCopyPasteExcelStyle:ユーザーがSpread.SheetsのスタイルをコピーしてExcelに貼り付ける、またはExcelのスタイルをコピーしてSpread.Sheetsに貼り付けることができるかどうかを指定します(オプション)。\r\n * allowExtendPasteRange:貼り付け範囲が足りない場合に貼り付け範囲を拡張するかどうかを指定します(オプション)。\r\n * copyPasteHeaderOptions:データをコピーまたは貼り付けるときに含めるヘッダを指定します(オプション)。\r\n * defaultDragFillType:デフォルトのフィルタイプ(オプション)。\r\n * showDragFillSmartTag:ドラッグフィルダイアログを表示するかどうかを指定します(オプション)。\r\n * showHorizontalScrollbar:水平スクロールバーを表示するかどうかを指定します(オプション)。\r\n * showVerticalScrollbar:垂直スクロールバーを表示するかどうかを指定します(オプション)。\r\n * scrollbarShowMax:表示されるスクロールバーがシートの全体の列数と行数に基づくかどうかを指定します(オプション)。\r\n * scrollbarMaxAlign:スクロールバーがアクティブシートの最後の行および列に揃うかどうかを指定します(オプション)。\r\n * tabStripVisible:シートタブストリップを表示するかどうかを指定します(オプション)。\r\n * tabStripRatio:水平スクロールバーの幅全体に対する割合として表されたタブストリップの幅(オプション)。\r\n * tabEditable:ユーザーがシートタブストリップを編集できるかどうかを指定します(オプション)。\r\n * newTabVisible:ユーザーが新しいシートを挿入するための特殊なタブをスプレッドシートに表示するかどうかを指定します(オプション)。\r\n * tabNavigationVisible:シートタブナビゲーションを表示するかどうかを指定します(オプション)。\r\n * cutCopyIndicatorVisible:選択した項目をコピーまたは切り取るときにインジケーターを表示するかどうかを指定します(オプション)。\r\n * cutCopyIndicatorBorderColor:ユーザーが選択した項目をコピーまたは切り取るときに表示されるインジケーターの境界線の色(オプション)。\r\n * backColor:Spreadコンポーネントの背景色を表す色文字列(オプション)。\"red\"、\"#FFFF00\"、\"rgb(255,0,0)\"、\"Accent 5\"など。\r\n * backgroundImage:Spreadコンポーネントの背景画像(オプション)。\r\n * backgroundImageLayout:Spreadコンポーネントの背景画像レイアウト(オプション)。\r\n * grayAreaBackColor:灰色領域の背景色を表す色文字列(オプション)。\"red\"、\"#FFFF00\"、\"rgb(255,0,0)\"、\"Accent 5\"など。\r\n * showResizeTip:サイズ変更チップの表示方法を指定します(オプション)。\r\n * showDragDropTip:ドラッグ&ドロップチップを表示するかどうかを指定します(オプション)。\r\n * showDragFillTip:ドラッグフィルチップを表示するかどうかを指定します(オプション)。\r\n * showScrollTip:スクロールチップの表示方法を指定します(オプション)。\r\n * scrollIgnoreHidden:スクロールバーが非表示の行または列を無視するかどうかを指定します(オプション)。\r\n * highlightInvalidData:無効なデータを強調表示するかどうかを指定します(オプション)。\r\n * useTouchLayout:Spreadコンポーネントを表示するためにタッチレイアウトを使用するかどうかを指定します(オプション)。\r\n * hideSelection:Spreadコンポーネントがフォーカスを持たないときに選択範囲をハイライト表示するかどうかを指定します(オプション)。\r\n * resizeZeroIndicator:行または列のサイズがゼロに変更されたときの描画ポリシー(オプション)。\r\n * allowUserEditFormula:ユーザーがスプレッドシートのセルに設定された数式を編集できるかどうかを指定します(オプション)。\r\n * enableFormulaTextbox:スプレッドシートで数式テキストボックスを有効にするかどうかを指定します(オプション)。\r\n * autoFitType:セル内またはセルおよびヘッダ内に収まるように内容を書式設定するかどうかを指定します(オプション)。\r\n * referenceStyle:このシート上のセル数式でのセルおよび範囲参照のスタイル(オプション)。\r\n */\r\n public options: {};\r\n\r\n /**\r\n * Spread.Sheets.Workbook(Raw)\r\n */\r\n public rawSpread: Spread.Sheets.Workbook;\r\n\r\n /**\r\n * 内包Sheet\r\n */\r\n public sheets: WorkSheetBase[];\r\n\r\n // #4119\r\n /**\r\n * 拡張WorkSheet\r\n * SpreadJSのWorkSheetを使いたい場合にセットする\r\n * */\r\n public extentSheets?: Spread.Sheets.Worksheet[];\r\n\r\n /**\r\n * 中枢処理\r\n */\r\n private promisePool: Promise[] = [];\r\n\r\n\r\n /**\r\n * 活性状態\r\n * @param disabled\r\n */\r\n private _disabled: boolean = false;\r\n /**\r\n * 活性状態\r\n * @param disabled\r\n */\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n /**\r\n * 活性制御\r\n * @param disabled\r\n */\r\n set disabled(disabled: boolean) {\r\n this._disabled = disabled;\r\n this.sheets.forEach(s => {\r\n s.disabled = this._disabled;\r\n });\r\n }\r\n\r\n\r\n /**\r\n * delegate\r\n * シートの値の変更を通知する\r\n */\r\n onNotifyValueChanged?: (ins: WorkSheetBase, sheetName: string, colmunName: string, newValue: any) => void;\r\n\r\n /**\r\n * delegate\r\n * #5736\r\n */\r\n onNotifySorting?: (ins: WorkSheetBase, args: any) => void;\r\n\r\n /**\r\n * \r\n * @param mode\r\n * @param editAuthList\r\n */\r\n constructor(mode: SPIRIT.constant.GridMode) {\r\n this.mode = mode;\r\n this.sheets = [];\r\n }\r\n\r\n\r\n\r\n /**\r\n * spreadメソッドを返却\r\n * @returns spreadメソッドl\r\n */\r\n public getSpread() {\r\n return this.rawSpread;\r\n }\r\n\r\n /**\r\n * sheetメソッドを返却\r\n * @returns spreadメソッドl\r\n */\r\n public getSheet(sheetName: string): WorkSheetBase {\r\n const sheet = this.sheets.find(s => s.sheetName === sheetName);\r\n return sheet || null;\r\n }\r\n\r\n /**\r\n * sheetメソッドを返却\r\n * @returns spreadメソッドl\r\n */\r\n public getActiveSheet(): WorkSheetBase {\r\n const sheet = this.sheets.find(s => s.isActive);\r\n return sheet || null;\r\n }\r\n\r\n /**\r\n * extentSheetメソッドを返却\r\n * @returns workSheetメソッドl\r\n */\r\n public getExtentSheet(sheetName: string): Spread.Sheets.Worksheet {\r\n const sheet = this.extentSheets.find(s => s.name() === sheetName);\r\n return sheet || null;\r\n }\r\n\r\n /**\r\n * Spreadのデフォルト設定(全て項目は下記)公開用(#5636)\r\n * \r\n * sheetCount : number : シートの数(オプション)。\r\n * font : string : タブストリップのフォント(オプション)。\r\n * allowUserDragDrop : boolean : ユーザーが範囲データをドラッグ&ドロップできるかどうかを指定します(オプション)。\r\n * allowUserDragFill : boolean : ユーザーが範囲をドラッグフィルできるかどうかを指定します(オプション)。\r\n * allowUserZoom : boolean : [Ctrl]キーを押しながらマウスホイールを回すことによって表示をズームできるかどうかを指定します(オプション)。\r\n * allowUserResize : boolean : ユーザーが行および列のサイズを変更できるかどうかを指定します(オプション)。\r\n * allowUndo : boolean : ユーザーが編集をアンドゥできるかどうかを指定します(オプション)。\r\n * allowSheetReorder : boolean : ユーザーがSpreadコンポーネントのシートの順序を変更できるかどうかを指定します(オプション)。\r\n * allowCopyPasteExcelStyle : boolean : ユーザーがSpread.SheetsのスタイルをコピーしてExcelに貼り付ける、またはExcelのスタイルをコピーしてSpread.Sheetsに貼り付けることができるかどうかを指定します(オプション)。\r\n * allowExtendPasteRange : boolean : 貼り付け範囲が足りない場合に貼り付け範囲を拡張するかどうかを指定します(オプション)。\r\n * copyPasteHeaderOptions : GC.Spread.Sheets.CopyPasteHeaderOptions : データをコピーまたは貼り付けるときに含めるヘッダを指定します(オプション)。\r\n * defaultDragFillType : GC.Spread.Sheets.Fill.AutoFillType : デフォルトのフィルタイプ(オプション)。\r\n * showDragFillSmartTag : boolean : ドラッグフィルダイアログを表示するかどうかを指定します(オプション)。\r\n * showHorizontalScrollbar : boolean : 水平スクロールバーを表示するかどうかを指定します(オプション)。\r\n * showVerticalScrollbar : boolean : 垂直スクロールバーを表示するかどうかを指定します(オプション)。\r\n * scrollbarShowMax : boolean : 表示されるスクロールバーがシートの全体の列数と行数に基づくかどうかを指定します(オプション)。\r\n * scrollbarMaxAlign : boolean : スクロールバーがアクティブシートの最後の行および列に揃うかどうかを指定します(オプション)。\r\n * tabStripVisible : boolean : シートタブストリップを表示するかどうかを指定します(オプション)。\r\n * tabStripRatio : number : 水平スクロールバーの幅全体に対する割合として表されたタブストリップの幅(オプション)。\r\n * tabEditable : boolean : ユーザーがシートタブストリップを編集できるかどうかを指定します(オプション)。\r\n * newTabVisible : boolean : ユーザーが新しいシートを挿入するための特殊なタブをスプレッドシートに表示するかどうかを指定します(オプション)。\r\n * tabNavigationVisible : boolean : シートタブナビゲーションを表示するかどうかを指定します(オプション)。\r\n * cutCopyIndicatorVisible : boolean : 選択した項目をコピーまたは切り取るときにインジケーターを表示するかどうかを指定します(オプション)。\r\n * cutCopyIndicatorBorderColor : string : ユーザーが選択した項目をコピーまたは切り取るときに表示されるインジケーターの境界線の色(オプション)。\r\n * backColor : string : Spreadコンポーネントの背景色を表す色文字列(オプション)。\"red\"、\"#FFFF00\"、\"rgb(255,0,0)\"、\"Accent 5\"など。\r\n * backgroundImage : string : Spreadコンポーネントの背景画像(オプション)。\r\n * backgroundImageLayout : GC.Spread.Sheets.ImageLayout : Spreadコンポーネントの背景画像レイアウト(オプション)。\r\n * grayAreaBackColor : string : 灰色領域の背景色を表す色文字列(オプション)。\"red\"、\"#FFFF00\"、\"rgb(255,0,0)\"、\"Accent 5\"など。\r\n * showResizeTip : GC.Spread.Sheets.ShowResizeTip : サイズ変更チップの表示方法を指定します(オプション)。\r\n * showDragDropTip : boolean : ドラッグ&ドロップチップを表示するかどうかを指定します(オプション)。\r\n * showDragFillTip : boolean : ドラッグフィルチップを表示するかどうかを指定します(オプション)。\r\n * showScrollTip : GC.Spread.Sheets.ShowScrollTip : スクロールチップの表示方法を指定します(オプション)。\r\n * scrollIgnoreHidden : boolean : スクロールバーが非表示の行または列を無視するかどうかを指定します(オプション)。\r\n * highlightInvalidData : boolean : 無効なデータを強調表示するかどうかを指定します(オプション)。\r\n * useTouchLayout : boolean : Spreadコンポーネントを表示するためにタッチレイアウトを使用するかどうかを指定します(オプション)。\r\n * hideSelection : boolean : Spreadコンポーネントがフォーカスを持たないときに選択範囲をハイライト表示するかどうかを指定します(オプション)。\r\n * resizeZeroIndicator : GC.Spread.Sheets.ResizeZeroIndicator : 行または列のサイズがゼロに変更されたときの描画ポリシー(オプション)。\r\n * allowUserEditFormula : boolean : ユーザーがスプレッドシートのセルに設定された数式を編集できるかどうかを指定します(オプション)。\r\n * enableFormulaTextbox : boolean : スプレッドシートで数式テキストボックスを有効にするかどうかを指定します(オプション)。\r\n * autoFitType : GC.Spread.Sheets.AutoFitType : セル内またはセルおよびヘッダ内に収まるように内容を書式設定するかどうかを指定します(オプション)。\r\n * referenceStyle : GC.Spread.Sheets.ReferenceStyle : このシート上のセル数式でのセルおよび範囲参照のスタイル(オプション)。\r\n * rowResizeMode : GC.Spread.Sheets.ResizeMode : 行のサイズを変更する方法を指定します(オプション)。\r\n * columnResizeMode : GC.Spread.Sheets.ResizeMode : 列のサイズを変更する方法を指定します(オプション)。\r\n * scrollByPixel : boolean : ピクセル単位による正確なスクロールを有効にするかどうかを指定します(オプション)。\r\n * scrollPixel : number : scrollByPixelがtrueの場合に、一度にスクロールするピクセルの数を決定します。 最終的なスクロール量は、スクロールデルタとscrollPixelの乗算結果になります。 たとえば、スクロールデルタが3、scrollPixelが5の場合、スクロール量は15ピクセルになります。\r\n * customList : array : ユーザーがドラッグアンドフィルをカスタマイズするためのリスト。各フィル処理でこのリストが優先されます。 各配列型項目は、文字列配列です。\r\n * calcOnDemand : boolean : 数式が要求されたときにのみ計算するかどうかを指定します(オプション)。\r\n * font : string : タブストリップのフォント。\r\n * allowUserDeselect : boolean : ユーザーが選択範囲内の選択を解除できるかどうかを指定します(オプション)。\r\n * sheetCount : number : シートの数。\r\n * allowAutoCreateHyperlink : boolean : シートでハイパーリンクの自動作成を有効にするかどうかを指定します。\r\n * scrollbarAppearance : GC.Spread.Sheets.ScrollbarAppearance : skinとmobileの2つの列挙型を含むスクロールバーの外観。 デフォルトはスキンです。\r\n * allowDynamicArray : boolean : 動的配列を有効にするかどうかを指定します(オプション)。\r\n * enableAccessibility : boolean : スプレッドシートでアクセシビリティサポートを有効にするかどうかを指定します。\r\n * iterativeCalculation : boolean : 反復計算を有効にするかどうかを指定します。\r\n * iterativeCalculationMaximumIterations : number : 反復計算時の最大反復。\r\n * iterativeCalculationMaximumChange : number : 反復計算時の最大変更。\r\n */\r\n public static get DefaultSpreadOptions() {\r\n return {\r\n // タブ関連\r\n // シート名編集禁止設定\r\n\r\n //【SpreadJSグリッド操作】\r\n // 名前の変更(ユーザが新規追加したシートに限り、シート名の変更を許容する。)\r\n //tabEditable: false,\r\n tabEditable: true,\r\n\r\n // シートタブをドラッグして順序を変更できないように設定\r\n allowSheetReorder: false,\r\n // タブナビゲーションの非表示設定\r\n tabNavigationVisible: false,\r\n // タブストリップ幅の比率を設定\r\n //tabStripRatio : 0.5,\r\n\r\n // スクロール関連\r\n // スクロールバーがアクティブシートの最後の行および列に揃うように設定\r\n scrollbarMaxAlign: true,\r\n // 表示されるスクロールバーがシートの全体の列数と行数と揃うように設定\r\n scrollbarShowMax: true,\r\n // その他\r\n // 貼り付け範囲が足りない場合に貼り付け範囲を拡張する\r\n //allowExtendPasteRange: false,\r\n allowExtendPasteRange: true,\r\n\r\n //Excelスタイルのコピーと貼り付けを無効にする\r\n allowCopyPasteExcelStyle: false,\r\n //ユーザーが範囲をドラッグフィルできるかどうかを指定します(#1282)。\r\n allowUserDragFill: false,\r\n }\r\n }\r\n\r\n /**\r\n * Spreadのデフォルト設定(全て項目は下記)\r\n *#5636\r\n */\r\n protected get DefaultSpreadOptions() {\r\n return WorkBookBase.DefaultSpreadOptions;\r\n }\r\n\r\n /**\r\n * ワークブックを作成する\r\n */\r\n async createWorkBook(container: any): Promise {\r\n\r\n this.container = container;\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n //実ワークブックの作成\r\n this.createWorkBookInstatce();\r\n\r\n // レイアウト処理の無効化\r\n this.rawSpread.suspendPaint();\r\n // イベント処理の無効化\r\n this.rawSpread.suspendEvent();\r\n\r\n var sheetLenght = this.sheets.length;\r\n\r\n // #4119 pureSheetsは末尾に追加しておかないとrawSheetがここで追加したシートになってしまう。\r\n // また、列設定などを行う関係上、他のシートより先に追加しておく。\r\n if (this.extentSheets) {\r\n for (var i = 0; i < this.extentSheets.length; i++) {\r\n const extentSheet = this.extentSheets[i];\r\n this.rawSpread.addSheet(sheetLenght, extentSheet);\r\n extentSheet.visible(false);\r\n }\r\n }\r\n\r\n for (var i = 0; i < sheetLenght; i++) {\r\n\r\n let sheetIns = this.sheets[i];\r\n\r\n //var sheet = sheetIns.createSheet(this);\r\n let sheet = sheetIns.createSheet();\r\n\r\n //bookに追加\r\n this.rawSpread.addSheet(i, sheet);\r\n\r\n //シートデータ反映処理()\r\n let g = sheetIns.load();\r\n\r\n //シートのイベントFork\r\n this.sheetEventFork(sheetIns);\r\n\r\n //promisePoolに登録\r\n this.promisePool.push(g);\r\n\r\n //コンボボックスの収集などが、この登録の段階で、間に合ってない場合がある\r\n //(各シートのコンストラクタ等で行わないケース)\r\n //よって、各シートの「load」無いで、シートのPromiseを保証するように変更(体感loadが遅くなった気がするが...)\r\n\r\n ////Sheetが持つ非同期プロミスも登録する\r\n ////TODO 検討!(画面を固めてしまうので、並列のまま、投げっぱなしで良ければ登録しない)\r\n //Array.prototype.push.apply(this.promisePool, sheetIns.miscPromises);\r\n\r\n }\r\n\r\n\r\n //並列実行(順序性を担保しないで良いケース)\r\n Promise.all(\r\n //\r\n this.promisePool\r\n\r\n ).then((values) => {\r\n\r\n //完了(成功)\r\n resolve();\r\n\r\n }).catch((e) => {\r\n //エラー\r\n reject();\r\n\r\n }).finally(() => {\r\n\r\n //#3269\r\n let $cntr = $(_.isString(this.container) ? document.getElementById(this.container) : $(this.container).get(0));\r\n $cntr.data(WorkBookBase.DATA_KEY, this);\r\n\r\n //コンボボックス等の値の反映が間に合わないケースがあるので\r\n //リペイント\r\n //this.rawSpread?.refresh();\r\n this.rawSpread?.sheets.forEach(s => { s.repaint(); });\r\n\r\n this.rawSpread?.resumeEvent();\r\n this.rawSpread?.resumePaint();\r\n });\r\n });\r\n }\r\n\r\n /** \r\n * シートのイベントFork\r\n */\r\n sheetEventFork(sheetIns: WorkSheetBase) {\r\n //値の変更をハンドリング\r\n sheetIns.onNotifyValueChanged = (sheet: WorkSheetBase, colmunName: string, newValue: any) => {\r\n // シートの変更通知\r\n this.onNotifyValueChanged?.call(this, sheet, sheet.sheetName, colmunName, newValue);\r\n };\r\n\r\n //#5736\r\n //並び替えが行われた\r\n sheetIns.onNotifySorting = (sheet: WorkSheetBase, args: any) => {\r\n // ソート実行通知\r\n this.onNotifySorting?.call(this, sheet, args);\r\n };\r\n\r\n }\r\n\r\n ///**\r\n // * シートの変更通知\r\n // */\r\n //onSheetValueChange(sheet: WorkSheetBase, colmunName: string, newValue: any) {\r\n // //イベント通知\r\n // this.onValueChange?.call(this, sheet, sheet.sheetName, colmunName, newValue);\r\n //}\r\n\r\n\r\n /**\r\n * 実ワークブックの作成\r\n */\r\n createWorkBookInstatce(): Spread.Sheets.Workbook {\r\n\r\n const spreadOptions = {\r\n sheetCount: this.sheets.length\r\n };\r\n\r\n const modeOptions = {\r\n newTabVisible: (this.mode == SPIRIT.constant.GridMode.EDIT) ? true : false,\r\n //#1257 インポートプレビュー画面で行移動ができてしまう\r\n allowUserDragDrop: (this.mode == SPIRIT.constant.GridMode.EDIT) ? true : false\r\n }\r\n\r\n //_.defaultsDeep(spreadOptions, this.DefaultSpreadOptions);\r\n _.defaultsDeep(spreadOptions, _.assign(this.DefaultSpreadOptions, modeOptions, this.options));\r\n\r\n // ワークブックの作成\r\n var cntr = _.isString(this.container) ? document.getElementById(this.container) : $(this.container).get(0);\r\n var spread = new Spread.Sheets.Workbook(cntr, spreadOptions);\r\n //var spread = new Spread.Sheets.Workbook(document.getElementById(this.container), spreadOptions);\r\n\r\n //空シートができるので一旦削除\r\n spread.clearSheets();\r\n // 右クリック時のメニュー制御\r\n //(シートごとの設定にしたいが、切り分けられない!)\r\n this.setContextMenu(spread);\r\n\r\n this.setWorkBookEvents(spread);\r\n\r\n // スプレッド情報をセット\r\n this.rawSpread = spread;\r\n\r\n return spread;\r\n }\r\n\r\n /**\r\n * Spread本体のイベント設定\r\n */\r\n protected setWorkBookEvents(spread: Spread.Sheets.Workbook) {\r\n\r\n // Event\r\n // F2 イベント\r\n // F2キーの設定\r\n const manager = spread.commandManager();\r\n\r\n // F2キー押下時にコールされる処理の設定\r\n const commandF2 = {\r\n canUndo: true,\r\n execute: (context, options, isUndo) => {\r\n const currentSheet = context.getSheetFromName(options.sheetName);\r\n if (!currentSheet.isEditing()) {\r\n //編集開始\r\n currentSheet.startEdit();\r\n }\r\n }\r\n };\r\n\r\n // F2キー(キーコード113)に上記の処理\"commandF2\"を割り当て\r\n // 引数詳細(https://docs.grapecity.com/help/this.spread-js/sheets/#SpreadJS~GC.Spread.Commands.CommandManager~register.html)\r\n manager.register(\"f2Edit\", commandF2, 113, false, false, false, false);\r\n\r\n //【SpreadJSグリッド操作】\r\n //切り取り(cut)禁ずる\r\n var cut = manager.setShortcutKey(undefined, Spread.Commands.Key.x, true, false, false, false);\r\n\r\n\r\n //キーボードイベントnインターセプト\r\n //this.registerDeleteKeyEvent(spread);\r\n //this.registerPasteKeyEvent(spread);\r\n }\r\n\r\n /**\r\n * DeleteKey\r\n * @param spread\r\n */\r\n registerDeleteKeyEvent(spread: Spread.Sheets.Workbook) {\r\n\r\n //------------------------------------\r\n //①範囲削除を考慮してないので却下\r\n //------------------------------------\r\n //let old = GC.Spread.Sheets.Commands.clear.execute;\r\n //GC.Spread.Sheets.Commands.clear.execute = function (spread, options, isUndo) {\r\n // let col = spread.getActiveSheet().getActiveColumnIndex();\r\n // if (col === 3) return true;\r\n // return old.apply(this, arguments);\r\n //};\r\n\r\n\r\n\r\n //------------------------------------\r\n //②SelectionChangedイベントが発火しなくなるため却下\r\n //------------------------------------\r\n //恐らく→ return old.apply(this, arguments);\r\n //を読んでない為、ただし呼ぶとデフォルト動作になる(範囲でreadonlyのセルをスキップ出来ない)\r\n //Delete Key イベント\r\n const getActualRange = function (sel) {\r\n sel.row = sel.row === -1 ? 0 : sel.row;\r\n sel.col = sel.col === -1 ? 0 : sel.col;\r\n return sel;\r\n }\r\n\r\n const clearRange = function (sheet: Spread.Sheets.Worksheet, sel) {\r\n sel = getActualRange(sel);\r\n for (let i = sel.row; i < sel.row + sel.rowCount; i++) {\r\n //Filter等で消えているのを削除しない\r\n //見えているセルのみ削除(visibleの物のみ)\r\n if (sheet.getRowVisible(i)) {\r\n for (let j = sel.col; j < sel.col + sel.colCount; j++) {\r\n if (sheet.getColumnVisible(j)) {\r\n\r\n var ws: WorkSheetBase = sheet.tag();\r\n if (ws) {\r\n var def = ws.columns[j];\r\n //定義上readonlyに設定されている場合\r\n if (!def.readonly) {\r\n sheet.getCell(i, j).value(null);\r\n }\r\n } else {\r\n sheet.getCell(i, j).value(null);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const commandDel = {\r\n canUndo: true,\r\n execute: (spread, options, isUndo) => {\r\n var Commands = Spread.Sheets.Commands;\r\n if (isUndo) {\r\n Commands.undoTransaction(spread, options);\r\n return true;\r\n } else {\r\n Commands.startTransaction(spread, options);\r\n spread.suspendPaint();\r\n let sheet = spread.getActiveSheet();\r\n let selections = sheet.getSelections();\r\n\r\n selections.forEach((sel) => {\r\n clearRange(sheet, sel);\r\n });\r\n\r\n spread.resumePaint();\r\n Commands.endTransaction(spread, options);\r\n return true;\r\n }\r\n }\r\n };\r\n var commandManager = spread.commandManager();\r\n commandManager.register(\"Del\", commandDel);\r\n //deleteKey\r\n commandManager.setShortcutKey(\"Del\", 46, false, false, false, false);\r\n }\r\n\r\n /**\r\n * ClipBoardsPasteのインターセプト(やってみた)\r\n * @param spread\r\n */\r\n registerPasteKeyEvent(spread: Spread.Sheets.Workbook) {\r\n\r\n const commandPaste = {\r\n canUndo: true,\r\n execute: (spread, options, isUndo) => {\r\n var Commands = Spread.Sheets.Commands;\r\n if (isUndo) {\r\n Commands.undoTransaction(spread, options);\r\n return true;\r\n } else {\r\n Commands.startTransaction(spread, options);\r\n spread.suspendPaint();\r\n //debugger;\r\n //情報が一切ないので、これでは何も出来ない!!\r\n spread.resumePaint();\r\n Commands.endTransaction(spread, options);\r\n return true;\r\n }\r\n }\r\n };\r\n commandManager.setShortcutKey(undefined, Spread.Commands.Key.v, true, false, false, false);\r\n var commandManager = spread.commandManager();\r\n commandManager.register(\"Paste\", commandPaste);\r\n commandManager.setShortcutKey(\"Paste\", Spread.Commands.Key.v, true, false, false, false);\r\n }\r\n\r\n\r\n /**\r\n * コンテキストメニュクリック押下時の定\r\n */\r\n protected setContextMenu(spread: Spread.Sheets.Workbook) {\r\n\r\n // コンテキストメニューの制御\r\n //spread.contextMenu.onOpenMenu = this.onOpenContextMenuFork;\r\n spread.contextMenu.onOpenMenu = this.onOpenContextMenu.bind(this);\r\n }\r\n\r\n\r\n /**\r\n * コンテキストメニュクリック押下時の処理\r\n * @param spread\r\n */\r\n //protected onOpenContextMenuFork(menuData, itemsDataForShown, hitInfo, spread): boolean {\r\n\r\n // // 右クリックした箇所を取得\r\n // let hit: any = hitInfo;\r\n // //共通的な物は、ここに記載でもいいかもね!!!\r\n // //return false;\r\n // return this.onOpenContextMenu(menuData, itemsDataForShown, hitInfo, spread);\r\n //}\r\n\r\n /**\r\n * コンテキストメニュクリック押下時の処理\r\n * @description\r\n *\t0: {text: \"コピー\", name: \"gc.spread.copy\", command: \"gc.spread.contextMenu.copy\", iconClass: \"gc-spread-copy\", workArea: \"viewportcolHeaderrowHeaderslicercorner\"}\r\n *\t1: {text: \"切り取り\", name: \"gc.spread.cut\", command: \"gc.spread.contextMenu.cut\", iconClass: \"gc-spread-cut\", workArea: \"viewportcolHeaderrowHeaderslicercorner\"}\r\n *\t2: {text: \"貼り付けのオプション:\", name: \"gc.spread.pasteOptions\", iconClass: \"gc-spread-pasteOptions\", type: \"groupHeader\", workArea: \"viewportcolHeaderrowHeaderslicercorner\"}\r\n *\t3: {command: \"gc.spread.contextMenu.pasteAll\", name: \"gc.spread.pasteAll\", iconClass: \"gc-spread-pasteAll\", group: \"gc.spread.pasteOptions\", text: \"すべて\", …}\r\n *\t4: {command: \"gc.spread.contextMenu.pasteFormula\", name: \"gc.spread.pasteFormula\", iconClass: \"gc-spread-pasteFormula\", group: \"gc.spread.pasteOptions\", text: \"数式\", …}\r\n *\t5: {command: \"gc.spread.contextMenu.pasteValues\", name: \"gc.spread.pasteValues\", iconClass: \"gc-spread-pasteValues\", group: \"gc.spread.pasteOptions\", text: \"値\", …}\r\n *\t6: {command: \"gc.spread.contextMenu.pasteFormatting\", name: \"gc.spread.pasteFormatting\", iconClass: \"gc-spread-pasteFormatting\", group: \"gc.spread.pasteOptions\", text: \"書式\", …}\r\n *\t7: {command: \"gc.spread.contextMenu.pasteValuesFormatting\", name: \"gc.spread.pasteValuesFormatting\", iconClass: \"gc-spread-pasteValuesFormatting\", group: \"gc.spread.pasteOptions\", text: \"値&書式\", …}\r\n *\t8: {command: \"gc.spread.contextMenu.pasteFormulaFormatting\", name: \"gc.spread.pasteFormulaFormatting\", iconClass: \"gc-spread-pasteFormulaFormatting\", group: \"gc.spread.pasteOptions\", text: \"数式&書式\", …}\r\n *\t9: {type: \"separator\"}\r\n *\t10: {text: \"数式と値のクリア\", command: \"gc.spread.contextMenu.clearContents\", name: \"gc.spread.clearContents\", workArea: \"viewportcolHeaderrowHeadercorner\"}\r\n *\t11: {type: \"separator\"}\r\n *\t12: {text: \"コピーしたセルの挿入\", name: \"gc.spread.rowHeaderinsertCopiedCells\", command: \"gc.spread.contextMenu.rowHeaderinsertCopiedCells\", workArea: \"rowHeader\"}\r\n *\t13: {text: \"切り取ったセルの挿入\", name: \"gc.spread.rowHeaderinsertCutCells\", command: \"gc.spread.contextMenu.rowHeaderinsertCutCells\", workArea: \"rowHeader\"}\r\n *\t14: {text: \"コピーしたセルの挿入\", name: \"gc.spread.colHeaderinsertCopiedCells\", command: \"gc.spread.contextMenu.colHeaderinsertCopiedCells\", workArea: \"colHeader\"}\r\n *\t15: {text: \"切り取ったセルの挿入\", name: \"gc.spread.colHeaderinsertCutCells\", command: \"gc.spread.contextMenu.colHeaderinsertCutCells\", workArea: \"colHeader\"}\r\n *\t16: {text: \"コピーしたセルの挿入...\", name: \"gc.spread.insertCopiedCells\", subMenu: Array(2), workArea: \"viewport\"}\r\n *\t17: {text: \"切り取ったセルの挿入...\", name: \"gc.spread.insertCutCells\", subMenu: Array(2), workArea: \"viewport\"}\r\n *\t18: {text: \"挿入\", name: \"gc.spread.insertRows\", command: \"gc.spread.contextMenu.insertRows\", workArea: \"rowHeader\"}\r\n *\t19: {text: \"挿入\", name: \"gc.spread.insertColumns\", command: \"gc.spread.contextMenu.insertColumns\", workArea: \"colHeader\"}\r\n *\t20: {text: \"削除\", name: \"gc.spread.deleteRows\", command: \"gc.spread.contextMenu.deleteRows\", workArea: \"rowHeader\"}\r\n *\t21: {text: \"削除\", name: \"gc.spread.deleteColumns\", command: \"gc.spread.contextMenu.deleteColumns\", workArea: \"colHeader\"}\r\n *\t22: {type: \"separator\"}\r\n *\t23: {text: \"挿入\", name: \"gc.spread.tableInsert\", subMenu: Array(4), workArea: \"table\"}\r\n *\t24: {text: \"削除\", name: \"gc.spread.tableDelete\", subMenu: Array(2), workArea: \"table\"}\r\n *\t25: {type: \"separator\"}\r\n *\t26: {text: \"挿入\", name: \"gc.spread.insertSheet\", command: \"gc.spread.contextMenu.insertSheet\", workArea: \"sheetTab\"}\r\n *\t27: {text: \"削除\", name: \"gc.spread.deleteSheet\", command: \"gc.spread.contextMenu.deleteSheet\", workArea: \"sheetTab\"}\r\n *\t28: {type: \"separator\"}\r\n *\t29: {text: \"フィルタリング \", name: \"gc.spread.filter\", command: \"gc.spread.contextMenu.filter\", workArea: \"viewportcorner\"}\r\n *\t30: {text: \"ソート\", name: \"gc.spread.sort\", subMenu: Array(2), workArea: \"viewportcorner\"}\r\n *\t31: {text: \"昇順\", name: \"gc.spread.slicerSortAscend\", command: \"gc.spread.contextMenu.slicerSortAscend\", iconClass: \"gc-spread-sortAscend\", workArea: \"slicer\"}\r\n *\t32: {text: \"降順\", name: \"gc.spread.slicerSortDescend\", command: \"gc.spread.contextMenu.slicerSortDescend\", iconClass: \"gc-spread-sortDescend\", workArea: \"slicer\"}\r\n *\t33: {type: \"separator\"}\r\n *\t34: {text: \"コメントの挿入\", name: \"gc.spread.insertComment\", command: \"gc.spread.contextMenu.insertComment\", iconClass: \"gc-spread-insertComment\", workArea: \"viewportcorner\"}\r\n *\t35: {text: \"コメントの編集\", name: \"gc.spread.editComment\", command: \"gc.spread.contextMenu.editComment\", iconClass: \"gc-spread-editComment\", workArea: \"viewportcorner\"}\r\n *\t36: {text: \"コメントの削除\", name: \"gc.spread.deleteComment\", command: \"gc.spread.contextMenu.deleteComment\", iconClass: \"gc-spread-deleteComment\", workArea: \"viewportcorner\"}\r\n *\t37: {text: \"コメントの表示/非表示\", name: \"gc.spread.toggleComment\", command: \"gc.spread.contextMenu.toggleComment\", workArea: \"viewportcorner\"}\r\n *\t38: {type: \"separator\"}\r\n *\t39: {text: \"非表示\", name: \"gc.spread.hideRows\", command: \"gc.spread.contextMenu.hideRows\", workArea: \"rowHeader\"}\r\n *\t40: {text: \"再表示\", name: \"gc.spread.unhideRows\", command: \"gc.spread.contextMenu.unhideRows\", workArea: \"rowHeader\"}\r\n *\t41: {text: \"非表示\", name: \"gc.spread.hideColumns\", command: \"gc.spread.contextMenu.hideColumns\", workArea: \"colHeader\"}\r\n *\t42: {text: \"再表示\", name: \"gc.spread.unhideColumns\", command: \"gc.spread.contextMenu.unhideColumns\", workArea: \"colHeader\"}\r\n *\t43: {type: \"separator\"}\r\n *\t44: {text: \"非表示\", name: \"gc.spread.hideSheet\", command: \"gc.spread.contextMenu.hideSheet\", workArea: \"sheetTab\"}\r\n *\t45: {text: \"再表示\", name: \"gc.spread.unhideSheet\", command: \"gc.spread.contextMenu.unhideSheet\", workArea: \"sheetTab\"}\r\n *\t46: {type: \"separator\"}\r\n *\t47: {text: \"削除\", name: \"gc.spread.removeSlicer\", command: \"gc.spread.contextMenu.removeSlicer\", workArea: \"slicer\"}\r\n * @param spread\r\n */\r\n //protected abstract onOpenContextMenu(menuData, itemsDataForShown, hitInfo, spread): boolean;\r\n protected onOpenContextMenu(menuData, itemsDataForShown: any[], hitInfo, spread): boolean {\r\n\r\n // 右クリックした箇所を取得\r\n let hit: any = hitInfo;\r\n\r\n let sheet = spread.getActiveSheet();\r\n //タグにworkSheetのインスタンスを隠しているので取得する\r\n let workSheet: WorkSheetBase = sheet.tag();\r\n\r\n // タブを右クリックしたときの処理\r\n if (hit.tabStripHitInfo) {\r\n //各Bookで実装してください\r\n //overrideしたうえで下記を呼ぶ\r\n //super.onOpenContextMenu(menuData, itemsDataForShown, hitInfo, spread);\r\n\r\n //if (hit.tabStripHitInfo.sheetTab.sheetName == \"プラントグループ\") {\r\n // //メモ: IE8 では、deleteCount が省略された場合はすべての要素を削除しません。\r\n // //itemsDataForShown.splice(0);\r\n // itemsDataForShown.splice(0, itemsDataForShown.length);\r\n //} else {\r\n // //新規追加したTabのみ削除可能とする\r\n // //削除以外、除去\r\n // //{text: \"削除\", name: \"gc.spread.deleteSheet\", command: \"gc.spread.contextMenu.deleteSheet\", workArea: \"sheetTab\"}\r\n // //下記はダメ!参照を意識し配列その物を変更する必要がある\r\n // //itemsDataForShown = itemsDataForShown.filter(item => item.name === 'gc.spread.deleteSheet');\r\n // itemsDataForShown.splice(1, 5);\r\n //}\r\n\r\n\r\n }\r\n\r\n //一覧の列ヘッダ、行ヘッダ、セルを選択し、右クリック\r\n //表示する内容はコピー、切り取り、挿入、削除とする。貼り付けのオプションは不要。\r\n if (hit.worksheetHitInfo) {\r\n //編集モードでない場合\r\n if (this.mode != SPIRIT.constant.GridMode.EDIT) {\r\n //持っていない場合、無効\r\n itemsDataForShown.splice(0, itemsDataForShown.length);\r\n return false;\r\n }\r\n\r\n if (hit.worksheetHitInfo.hitTestType === 0) {\r\n //左上コーナー\r\n //何もしない\r\n itemsDataForShown.splice(0, itemsDataForShown.length);\r\n\r\n } else if (hit.worksheetHitInfo.hitTestType === 1) {\r\n //列ヘッダークリック\r\n //【SpreadJSグリッド操作】\r\n //コピーのみ\r\n var filterd = itemsDataForShown.filter(item =>\r\n //{ text: \"コピー\", name: \"gc.spread.copy\", command: \"gc.spread.contextMenu.copy\", iconClass: \"gc-spread-copy\", workArea: \"viewportcolHeaderrowHeaderslicercorner\" }\r\n item.name === 'gc.spread.copy'\r\n );\r\n itemsDataForShown.splice(0, itemsDataForShown.length);\r\n Array.prototype.push.apply(itemsDataForShown, filterd);\r\n\r\n //} else if (hit.worksheetHitInfo.colViewportIndex == -1) {\r\n } else if (hit.worksheetHitInfo.hitTestType === 2) {\r\n //行ヘッダークリック\r\n //debugger;\r\n //【SpreadJSグリッド操作】\r\n //対象を引っこ抜いて、再度投入(配列の参照をそのまま変更する必要がある為)\r\n var filterd = itemsDataForShown.filter(item => {\r\n\r\n // #4328 行ヘッダーのコンテキストメニューに「コピー」を表示させない\r\n if (item.name === 'gc.spread.copy' && this.doHideCopyAndPastingContextMenuAtRowHeader) {\r\n return false;\r\n }\r\n\r\n if (!workSheet?.isNeedExtraRow) {\r\n //固定列\r\n //{ text: \"コピー\", name: \"gc.spread.copy\", command: \"gc.spread.contextMenu.copy\", iconClass: \"gc-spread-copy\", workArea: \"viewportcolHeaderrowHeaderslicercorner\" }\r\n return item.name === 'gc.spread.copy'\r\n } else {\r\n //通常\r\n //{ text: \"コピー\", name: \"gc.spread.copy\", command: \"gc.spread.contextMenu.copy\", iconClass: \"gc-spread-copy\", workArea: \"viewportcolHeaderrowHeaderslicercorner\" }\r\n //{text: \"挿入\", name: \"gc.spread.insertRows\", command: \"gc.spread.contextMenu.insertRows\", workArea: \"rowHeader\"}\r\n //{text: \"削除\", name: \"gc.spread.deleteRows\", command: \"gc.spread.contextMenu.deleteRows\", workArea: \"rowHeader\"}\r\n return item.name === 'gc.spread.copy' || item.name === 'gc.spread.insertRows' || item.name === 'gc.spread.deleteRows'\r\n }\r\n });\r\n\r\n //貼り付け(値のみ)\r\n //filterd.push({ text: \"貼り付けのオプション:\", name: \"gc.spread.pasteOptions\", iconClass: \"gc-spread-pasteOptions\", type: \"groupHeader\", workArea: \"viewportcolHeaderrowHeaderslicercorner\" })\r\n //filterd.push({ command: \"gc.spread.contextMenu.pasteValues\", name: \"gc.spread.pasteValues\", iconClass: \"gc-spread-pasteValues\", group: \"gc.spread.pasteOptions\", text: \"値\" })\r\n // コンテキストメニュー「貼付け」を非表示にするか否か\r\n if (!this.doHideCopyAndPastingContextMenuAtRowHeader) {\r\n filterd.push({ text: \"貼り付け\", name: \"gc.spread.pasteValues\", command: \"gc.spread.contextMenu.pasteValues\", iconClass: \"gc-spread-pasteOptions\", workArea: \"viewportcolHeaderrowHeaderslicercorner\", disable: this.disabled });\r\n }\r\n itemsDataForShown.splice(0, itemsDataForShown.length);\r\n Array.prototype.push.apply(itemsDataForShown, filterd);\r\n\r\n\r\n } else {\r\n //セルクリック(挿入って無い?)\r\n\r\n //【SpreadJSグリッド操作】\r\n //コピー\r\n var filterd = itemsDataForShown.filter(item =>\r\n //{ text: \"コピー\", name: \"gc.spread.copy\", command: \"gc.spread.contextMenu.copy\", iconClass: \"gc-spread-copy\", workArea: \"viewportcolHeaderrowHeaderslicercorner\" }\r\n item.name === 'gc.spread.copy'\r\n );\r\n //貼り付け(値のみ)\r\n //filterd.push({ text: \"貼り付けのオプション:\", name: \"gc.spread.pasteOptions\", iconClass: \"gc-spread-pasteOptions\", type: \"groupHeader\", workArea: \"viewportcolHeaderrowHeaderslicercorner\" })\r\n //filterd.push({ command: \"gc.spread.contextMenu.pasteValues\", name: \"gc.spread.pasteValues\", iconClass: \"gc-spread-pasteValues\", group: \"gc.spread.pasteOptions\", text: \"値\" })\r\n filterd.push({ text: \"貼り付け\", name: \"gc.spread.pasteValues\", command: \"gc.spread.contextMenu.pasteValues\", iconClass: \"gc-spread-pasteOptions\", workArea: \"viewportcolHeaderrowHeaderslicercorner\" });\r\n\r\n itemsDataForShown.splice(0, itemsDataForShown.length);\r\n Array.prototype.push.apply(itemsDataForShown, filterd);\r\n }\r\n }\r\n\r\n //itemsDataForShownを変更することで、フィルタ結果を変更できます。\r\n //フィルタ結果を変更するだけの場合は、falseを返すか、何も返さないでください。\r\n //また、独自のコンテキストメニューを開くこともできます。その場合はtrueを返します。\r\n return false;\r\n }\r\n\r\n\r\n\r\n /**\r\n * データを再取得しなおす\r\n * @param data\r\n */\r\n reload(sheetName?: string) {\r\n if (sheetName) {\r\n this.getSheet(sheetName).reload();\r\n } else {\r\n this.sheets.forEach((sheet, i, all) => {\r\n sheet.reload();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 描画のリフレッシュ\r\n */\r\n refresh() {\r\n this.getSpread()?.refresh();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n * Spread情報\r\n */\r\n public getSpreadInfo() {\r\n // TODO リファクタ STUB ? \r\n let sheet = this.getActiveSheet();\r\n let sheetInfo = sheet.getSheetInfo();\r\n return {\r\n spread: this.rawSpread,\r\n spreadName: sheetInfo.sheetName,\r\n colInfos: sheetInfo.columns\r\n }\r\n }\r\n\r\n /**\r\n * Spreadの現在の状態からJSONを取得\r\n * \r\n * @return {Object} \r\n */\r\n getSpreadToJSON() {\r\n //TODO リファクタ\r\n return this.rawSpread.toJSON({ includeBindingSource: true, columnHeadersAsFrozenRows: true });\r\n }\r\n\r\n\r\n /**\r\n * 保存データ取得\r\n * \r\n * @return {Object} result\r\n * @return {Object} result.addData 追加データ\r\n * @return {Object} result.changeData 変更データ\r\n * @return {Object} result.deleteData 削除データ\r\n */\r\n getSaveData(sheetName?: string): any {\r\n\r\n SPIRIT.dialog.MessgeDialog('注意!!', 'この処理はもう古いソースです!カテゴリ情報を参考に修正してください!', null);\r\n\r\n\r\n let sheet = (sheetName) ? this.getSheet(sheetName) : this.getActiveSheet();\r\n // TODO リファクタ \r\n const dataSource = sheet.getDataSource();\r\n\r\n // エラー背景色解除\r\n // 全セルを対応するとまずいか?エラー情報を退避させ、その情報で処理するか?\r\n // 一旦全セルを対応とし、パフォーマンスに問題があれば、エラー箇所のみ処理するように変更する。\r\n //this.spread.suspendPaint();\r\n //const rowCount = this.sheet.getRowCount();\r\n //const colCount = this.sheet.getColumnCount();\r\n //for (let i = 0; i <= rowCount; i++) {\r\n // for (let j = 1; j <= colCount; j++) {\r\n // this.sheet.getCell(i, j).backColor('');\r\n // }\r\n //}\r\n //this.spread.resumePaint();\r\n\r\n this.rawSpread.suspendPaint();\r\n const rowCount = sheet.getRowCount();\r\n const colCount = sheet.getColumnCount();\r\n sheet.rawSheet.getRange(0, 0, rowCount, colCount).backColor('');\r\n\r\n this.rawSpread.resumePaint();\r\n\r\n // TODO クライアントバリデーション(ここではやらない!!)\r\n\r\n // TODO 保存データのみに絞る\r\n const result = {\r\n addData: dataSource,\r\n changeData: dataSource,\r\n deleteData: [],\r\n };\r\n\r\n return result;\r\n }\r\n\r\n\r\n\r\n\r\n /**\r\n * 配列内のObjectを比較し、差分があったObjectの配列のみ返却\r\n * @param src 比較元\r\n * @param dst 比較先\r\n */\r\n // 共通にできるか検討が必要なため一旦呼ばないでください。\r\n protected getDiff(src, dst, customComparator) {\r\n\r\n //let arrayA = [{ 'id': 1, 'name': '花子' }, { 'id': 2, 'name': '太郎' }, { 'id': 3, 'name': '次郎' }];\r\n //let arrayB = [{ 'id': 1, 'name': '花子' }];\r\n\r\n //_.differenceWith(arrayA, arrayB, _.isEqual)\r\n //// [{\"id\":2,\"name\":\"太郎\"},{\"id\":3,\"name\":\"次郎\"}]\r\n\r\n //// こんな感じでも指定できる\r\n //const customComparator = (a, b) => {\r\n // return a.id === b.id && a.name === b.name\r\n //}\r\n //_.differenceWith(arrayA, arrayB, customComparator)\r\n //// [{\"id\":2,\"name\":\"太郎\"},{\"id\":3,\"name\":\"次郎\"}]\r\n\r\n console.log(src);\r\n console.log(dst);\r\n // これだとプロパティ数も一致する必要があるので、項目を絞って比較しないと\r\n // spreadjsの操作でなくなるプロパティ(列定義されていないもの)があるのでダメ。\r\n //const diff = _.differenceWith(src, dst, _.isEqual);\r\n const diff = _.differenceWith(src, dst, customComparator);\r\n\r\n\r\n\r\n console.log(diff);\r\n\r\n // TODO 配列の差は確認できることを確認。\r\n // もう少し使いやすいように処理も検討が必要。\r\n // その前にデータソースの確立を優先するため一旦ここまでとする。\r\n\r\n // 共通でなく個別でやってもらうか?\r\n\r\n return diff;\r\n }\r\n\r\n /**\r\n * 現在の状態で表示順を設定\r\n * @param list 現在のGridの状態の配列\r\n */\r\n // 共通にできるか検討が必要なため一旦呼ばないでください。\r\n protected SetOrderNo(list: any[]) {\r\n\r\n //// 名前降順\r\n //_.orderBy(members, 'name', 'desc'); // => membersが書き換わる\r\n\r\n //// 名前の長さ昇順\r\n //_.orderBy(members, (item) => {\r\n // return item.name.length;\r\n //}, 'desc');\r\n\r\n //// 名前昇順・作成日降順(名前のほうが優先)\r\n //_.orderBy(members, ['name', 'created_at'], ['asc', 'desc']);\r\n\r\n // sortBy / orderBy \r\n // 関数あるいはプロパティ名で並び替え\r\n // orderByの方が、昇順降順が選べる\r\n // 破壊的(元の配列の順番を変えてしまう)なので注意\r\n\r\n // 破壊的のためクローン\r\n const tmpList = _.cloneDeep(list);\r\n\r\n\r\n\r\n // 現在の順番でorderNoを変更\r\n tmpList.forEach((item, index) => {\r\n const orderNo = index + 1;\r\n item.OrderNo = orderNo;\r\n });\r\n\r\n // TODO グループ毎の順番を設定する必要がある\r\n\r\n // 共通でなく個別でやってもらうか?\r\n\r\n return tmpList;\r\n }\r\n\r\n\r\n /**\r\n * Exportするファイルを作成し、コールバックにSpreadのJSONを返却\r\n * ※一覧形式のみ対応。マトリックス表現するようなものは個別で実装してください!!!\r\n * @param url データ取得URL\r\n * @param sheetName シート名\r\n * @param colInfos カラム情報(取込区分、システムカラムは除く)\r\n * @param idColName ID列名\r\n * @param hasImportUserAuth インポート権限を持つユーザか(trueの場合、取込区分がつく)\r\n * @param cb ダウンロード処理関数\r\n */\r\n protected exportSpreadJsonForMaster(url: string, sheetName: string, colInfos, idColName: string, hasImportUserAuth: boolean, cb) {\r\n\r\n // TODO リファクタ \r\n SPIRIT.util.getData(url).then((data) => {\r\n\r\n // Spread作成\r\n const spread = new Spread.Sheets.Workbook(null, { sheetCount: 1 });\r\n\r\n spread.suspendPaint();\r\n\r\n const sheet = spread.getActiveSheet();\r\n\r\n sheet.name(sheetName);\r\n sheet.autoGenerateColumns = false;\r\n sheet.setDataSource(data);\r\n\r\n // 取込区分\r\n const firstFixColInfos = [{ name: 'ImportType', displayName: '取込区分', size: 80 }];\r\n const firstConcatColInfos = hasImportUserAuth ? firstFixColInfos.concat(colInfos) : colInfos;\r\n\r\n // システムカラム\r\n const lastColInfos = [\r\n { name: 'UpdateUserName', displayName: '更新ユーザ名', size: 150 },\r\n { name: 'UpdateUserLoginId', displayName: '更新ユーザID', size: 100 },\r\n { name: 'UpdateDateString', displayName: '更新日時', size: 200 },\r\n ];\r\n const concatColInfos = firstConcatColInfos.concat(lastColInfos);\r\n\r\n sheet.bindColumns(concatColInfos);\r\n\r\n // 列スタイル設定\r\n concatColInfos.forEach((item, index) => {\r\n\r\n // 取込区分列のリスト設定\r\n if (hasImportUserAuth && item.name == 'ImportType') {\r\n const dv = Spread.Sheets.DataValidation.createListValidator('追加, 変更, 削除');\r\n dv.showErrorMessage(true);\r\n // ヘッダ行も設定される(行数指定がないので本来はこうするべき)\r\n //sheet.setDataValidator(-1, index, dv, Spread.Sheets.SheetArea.viewport);\r\n // ヘッダ行が設定されない方法(行数指定が必要:一旦Excel最大行数は1048576なのでヘッダ数を引いて1048575にする)\r\n sheet.setDataValidator(0, 0, 1048575, 1, dv, Spread.Sheets.SheetArea.viewport);\r\n }\r\n\r\n // 列罫線\r\n const style = new Spread.Sheets.Style();\r\n style.borderTop = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderBottom = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderLeft = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderRight = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n\r\n // ID列の背景色指定\r\n if (hasImportUserAuth && item.name == idColName) {\r\n style.backColor = '#FFFF00';\r\n } else {\r\n // ヘッダー背景色指定\r\n const colHeader = sheet.getRange(0, index, 1, 1, Spread.Sheets.SheetArea.colHeader);\r\n colHeader.backColor('#E8E8E8');\r\n }\r\n\r\n sheet.setStyle(-1, index, style, Spread.Sheets.SheetArea.viewport);\r\n });\r\n\r\n spread.resumePaint();\r\n\r\n const json = spread.toJSON({ includeBindingSource: true, columnHeadersAsFrozenRows: true });\r\n\r\n if (cb != null) {\r\n cb(json);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n * \r\n * @param columns\r\n * @param data\r\n * @param option\r\n */\r\n static toExcel(data: any, filename, columns?: [], option?) {\r\n\r\n //let spreadOption = {\r\n // sheetCount: this.sheetSettings.length,\r\n // allowExtendPasteRange: true,\r\n // allowCopyPasteExcelStyle: false,\r\n // newTabVisible: (this.gridMode == SPIRIT.constant.GridMode.EDIT) ? true : false\r\n //}\r\n\r\n let spreadOption = {};\r\n spreadOption = _.assign(spreadOption, option);\r\n // ワークブックの作成\r\n var spread = new Spread.Sheets.Workbook(null, spreadOption);\r\n var s = spread.getActiveSheet()\r\n if (columns && columns.length > 0) {\r\n s.autoGenerateColumns = false;\r\n s.bindColumns(columns);\r\n } else {\r\n s.autoGenerateColumns = true;\r\n }\r\n s.setDataSource(data);\r\n\r\n\r\n WorkBookBase.exportExcelFile(filename, spread);\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param filename\r\n * @param spread\r\n */\r\n private static exportExcelFile(filename: string, spread) {\r\n var excelIO = new Excel.IO();\r\n\r\n console.time(\"func\"); // 計測開始\r\n\r\n var json = spread.toJSON({\r\n //ignoreStyle: false,\r\n // データを出力\r\n includeBindingSource: true,\r\n // ヘッダを出力\r\n //columnHeadersAsFrozenRows: true\r\n });\r\n\r\n //console.timeLog(\"func\"); // 必要に応じて\r\n var fileName = filename + new Date().valueOf() + '.xlsx'\r\n\r\n // here is excel IO API(for browser)\r\n excelIO.save(json, function (blob) {\r\n console.timeEnd(\"func\"); // 計測終了\r\n saveAs(blob, fileName);\r\n console.log(\"Export success\");\r\n }, function (e) {\r\n // process error\r\n console.log(e);\r\n // }, {password: password});\r\n });\r\n\r\n\r\n // here is excel IO API(for NodeJs)\r\n //excelIO.save(json, (data) => {\r\n // console.timeEnd(\"func\"); // 計測終了\r\n // //fs.appendFileSync(fileName, new Uint8Array(data), function (err) {//OK\r\n // // //fs.appendFileSync(fileName, new Buffer(data), function (err) { //なんか駄目\r\n // // //fs.appendFileSync(fileName, data, function (err) {\r\n // // console.log(err);\r\n // //});\r\n // console.log(\"Export success\");\r\n //}, (err) => {\r\n // console.log(err);\r\n //}, { useArrayBuffer: true });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","import * as _ from \"lodash\";\r\nimport { Spread } from \"../../grapecity\";\r\nimport { WorkBookBase } from \"./workbookBase\";\r\nimport { DateTimeEditInterceptor, PasswordEditInterceptor, RequiredColumnHeaderCellType } from \"./cellType\";\r\nimport * as SPIRIT from \"../../SPIRIT\";\r\n\r\n\r\n\r\n/**\r\n * カラムEditor(複合型)\r\n */\r\nexport class ColumnEditor {\r\n displayFormatter: string;\r\n editorFormatter: string;\r\n style?: Spread.Sheets.Style;\r\n cellType?: Spread.Sheets.CellTypes.Base;\r\n}\r\n\r\n/** */\r\nexport type columnDef = {\r\n name?: string;\r\n displayName?: string;\r\n width?: number;\r\n resizable?: boolean;\r\n value?: Function;\r\n size?: number | string;\r\n\r\n //type?: '' | 'number' | 'calendar' | 'color';\r\n //type?: Spread.Sheets.Style | Spread.Sheets.CellTypes.Base;\r\n editor?: Spread.Sheets.Style | Spread.Sheets.CellTypes.Base | ColumnEditor;\r\n\r\n /**関連項目Key名 */\r\n relatedTextTarget?: string;\r\n\r\n /** */\r\n required?: boolean;\r\n readonly?: boolean;\r\n /**Excel出力カスタマイズ項目 */\r\n export?: {\r\n headerBackColor?: string;\r\n }\r\n style?: {\r\n hAlign?: Spread.Sheets.HorizontalAlign;\r\n vAlign?: Spread.Sheets.VerticalAlign;\r\n formatter?: string | Spread.Formatter.GeneralFormatter;\r\n wordWrap?: boolean;\r\n //* { string | GC.Spread.Sheets.IPatternFill | GC.Spread.Sheets.IGradientFill | GC.Spread.Sheets.IGradientPathFill } backColor The background color.\r\n //* { string } foreColor The foreground color.\r\n //* { GC.Spread.Sheets.HorizontalAlign } hAlign The horizontal alignment.\r\n //* { GC.Spread.Sheets.VerticalAlign } vAlign The vertical alignment.\r\n //* { string } font The font.\r\n //* { string } themeFont The font theme.\r\n //* { string | GC.Spread.Formatter.GeneralFormatter } formatter The formatting object.\r\n //* { GC.Spread.Sheets.LineBorder } borderLeft The left border.\r\n //* { GC.Spread.Sheets.LineBorder } borderTop The top border.\r\n //* { GC.Spread.Sheets.LineBorder } borderRight The right border.\r\n //* { GC.Spread.Sheets.LineBorder } borderBottom The bottom border.\r\n //* { GC.Spread.Sheets.LineBorder } diagonalDown The diagonal with LeftTop to bottomRight.\r\n //* { GC.Spread.Sheets.LineBorder } diagonalUp The diagonal with topRight to bottomLeft.\r\n //* { boolean } locked Whether the cell, row, or column is locked.\r\n //* { number } textIndent The text indent amount.\r\n //* { boolean } wordWrap Whether words wrap within the cell or cells.\r\n //* { boolean } shrinkToFit Whether content shrinks to fit the cell or cells.\r\n //* { string } backgroundImage The background image to display.\r\n //* { GC.Spread.Sheets.CellTypes.Base } cellType The cell type.\r\n //* { GC.Spread.Sheets.ImageLayout } backgroundImageLayout The layout for the background image.\r\n //* { boolean } tabStop Whether the user can set focus to the cell using the Tab key.\r\n //* { GC.Spread.Sheets.TextDecorationType } textDecoration Specifies the decoration added to text.\r\n //* { GC.Spread.Sheets.ImeMode } imeMode Specifies the input method editor mode.\r\n //* { string } name Specifies the name.\r\n //* { string } parentName Specifies the name of the parent style.\r\n //* { string } watermark Specifies the watermark content.\r\n //* { string } cellPadding Specifies the cell padding.\r\n //* { Object } labelOptions Specifies the cell label options.\r\n //* { GC.Spread.Sheets.LabelAlignment } [labelOptions.alignment] The cell label position.\r\n //* { GC.Spread.Sheets.LabelVisibility } [labelOptions.visibility] The cell label visibility.\r\n //* { string } [labelOptions.font] The cell label font.\r\n //* { string } [labelOptions.foreColor] The cell label forecolor.\r\n //* { string } [labelOptions.margin] The cell label margin.\r\n //* { boolean } isVerticalText Whether to set the cell's text vertical.\r\n //* { number } textOrientation he cell text rotation angle.\r\n }\r\n\r\n //TODO\r\n //※廃止、コピーで非表示cellもコピーできてしまう!!\r\n //表示しないカラムは追加しないこと\r\n visible?: boolean;\r\n\r\n // #4119 データ検証を設定できるようにする。createXxxValidator()で引数が2つ以上あるものについては未対応とします。\r\n /**\r\n * データ検証のデータバリデーター(数式、数式リスト、リスト用)\r\n * */\r\n dataFomulaOrListValidator?: {\r\n /** データ検証の種別 */\r\n type: ValidationType;\r\n /** データバリデーター */\r\n value: string;\r\n /** 空白を無視するかどうか */\r\n isIgnoreBlank?: boolean;\r\n /** 入力タイトルと入力メッセージを表示するかどうか */\r\n isShowInputMessage?: boolean;\r\n /** 入力タイトル */\r\n inputTitle?: string;\r\n /** 入力メッセージ */\r\n inputMessage?: string;\r\n /** エラーメッセージの表示有無 */\r\n isShowErrorMessage?: boolean;\r\n /** エラータイトル */\r\n errorTitle?: string;\r\n /** エラーメッセージ */\r\n errorMessage?: string;\r\n }\r\n\r\n}\r\n\r\n// #4119 データ検証用の定義\r\n/** データ検証種別 */\r\nexport enum ValidationType {\r\n // 現状は使う予定が無いので、コメントアウトしておく\r\n ///** 数値に基づくバリデーターを作成します */\r\n //Number,\r\n ///** 日付に基づくバリデーターを作成します */\r\n //Date,\r\n ///** テキストの長さに基づくバリデーターを作成します */\r\n //TextLength,\r\n /** 数式に基づくバリデーターを作成します */\r\n Formula,\r\n /** 数式リストに基づくバリデーターを作成します */\r\n FormulaList,\r\n /** リストに基づくバリデーターを作成します */\r\n List,\r\n}\r\n\r\n\r\n/** \r\n * データ元情報\r\n */\r\nexport type Source = {\r\n /** 取得先URL*/\r\n url?: string;\r\n /** 元データ(加工前)*/\r\n //data?: any[];\r\n data?: any;\r\n}\r\n\r\n\r\n/**\r\n * 基本シート\r\n * 生成されたworkSheetのFacade\r\n */\r\nexport abstract class WorkSheetBase {\r\n\r\n\r\n /***/\r\n public spread: WorkBookBase;\r\n\r\n\r\n\r\n /**\r\n * Workbook(Raw)\r\n */\r\n //protected rawSpread: Spread.Sheets.Workbook;\r\n protected get rawSpread(): Spread.Sheets.Workbook {\r\n return this.spread?.rawSpread;\r\n }\r\n\r\n /**\r\n * Worksheet(Raw)\r\n */\r\n public rawSheet: Spread.Sheets.Worksheet;\r\n\r\n /**\r\n * filter インスタンス\r\n */\r\n public filter: Spread.Sheets.Filter.HideRowFilter;\r\n\r\n /**\r\n * シート名\r\n */\r\n public sheetName: string;\r\n\r\n /**\r\n * 高さ自動調整を実行するかどうか\r\n * ※WordWrap:trueのカラムが一件でもある場合、自動調整になるが、本変数がfalseの場合、自動調整をしない\r\n */\r\n public doAutoFit: boolean = true;\r\n\r\n /**\r\n * シートNO\r\n * @deprecated\r\n */\r\n //public sheetNo: number;\r\n public get sheetNo(): number {\r\n return this.rawSpread?.getSheetIndex(this.sheetName) || -1;\r\n }\r\n\r\n /**\r\n * アクティブシートかどうか\r\n */\r\n public get isActive(): boolean {\r\n\r\n return this.rawSpread?.getActiveSheet() === this.rawSheet;\r\n }\r\n\r\n /**\r\n * シートに設定するデータの情報\r\n *\r\n */\r\n public source: Source = {};\r\n\r\n /**\r\n * シートで参照するデータの情報\r\n * (コンボボックスなどのデータ情報)\r\n */\r\n //public referenceSource: Source[];\r\n /**\r\n * カラム定義\r\n */\r\n public columns: columnDef[] = [];\r\n\r\n\r\n /**\r\n */\r\n protected get mode(): SPIRIT.constant.GridMode {\r\n //this.spread?.\r\n //return SPIRIT.constant.GridMode.VIEW;\r\n //return SPIRIT.constant.GridMode.EDIT;\r\n return this.spread?.mode;\r\n\r\n }\r\n\r\n\r\n /**\r\n * 変更管理区分列、データKey\r\n */\r\n public static readonly KEY_SectionType = 'SectionType';\r\n public static readonly KEY_SectionType_Display = '区分';\r\n\r\n /**\r\n * 取込管理区分列、データKey\r\n */\r\n public static readonly KEY_ImportType = 'ImportType';\r\n public static readonly KEY_ImportType_Display = '取込区分';\r\n\r\n /**\r\n * エクスポート時のシステムカラム\r\n */\r\n public static readonly KEY_UpdateUserName = 'UpdateUserName';\r\n public static readonly KEY_UpdateUserName_Display = '更新ユーザ名';\r\n public static readonly KEY_UpdateUserLoginId = 'UpdateUserLoginId';\r\n public static readonly KEY_UpdateUserLoginId_Display = '更新ログインID';\r\n public static readonly KEY_UpdateDateString = 'UpdateDateString';\r\n public static readonly KEY_UpdateDateString_Display = '更新日時';\r\n\r\n\r\n\r\n /**\r\n * 新規登録用の余白行Key\r\n */\r\n public static readonly KEY_isBlank = 'isBlank';\r\n\r\n /**\r\n * 変更管理区分列が必要か\r\n */\r\n public isNeedSectionTypeColumn: boolean = true;\r\n\r\n /**\r\n * 取込管理区分列が必要か\r\n */\r\n public isNeedImportTypeTypeColumn: boolean = true;\r\n\r\n /**\r\n * 新規登録用の余白行が必要か\r\n */\r\n public isNeedExtraRow: boolean = true;\r\n\r\n /**\r\n * Filterが必要か\r\n */\r\n public isNeedFilter: boolean = true;\r\n\r\n /** */\r\n public filterOptions: {\r\n // sortByValueを非表示にする。\r\n sortByValue?: boolean,\r\n // 色で並べ替え\r\n sortByColor?: boolean,\r\n // 色フィルター\r\n filterByColor?: boolean,\r\n // テキストフィルター\r\n filterByValue?: boolean,\r\n // 選択肢リスト\r\n listFilterArea?: boolean\r\n };\r\n\r\n\r\n\r\n /**\r\n * 新規登録用行カウント\r\n */\r\n public extraRowCount: number = 50;\r\n\r\n /**\r\n *初期拡大率 0.85\r\n */\r\n //public initZoomfactor: number = 0.85;\r\n public initZoomfactor: number = SPIRIT.constant.SPREAD_INITIAL_ZOOM;\r\n\r\n /**\r\n * デフォルト行高さ\r\n */\r\n public defaultsRowHeight: number = null;\r\n\r\n\r\n /****/\r\n public get shouldSectionTypeColumn(): boolean {\r\n if (this.mode == SPIRIT.constant.GridMode.EDIT && this.isNeedSectionTypeColumn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /****/\r\n public get shouldImportTypeColumn(): boolean {\r\n if (this.mode == SPIRIT.constant.GridMode.IMPORT && this.isNeedImportTypeTypeColumn) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /****/\r\n public get shouldNeedExtraRow(): boolean {\r\n if (this.mode == SPIRIT.constant.GridMode.EDIT && this.isNeedExtraRow) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * spread sheetOption\r\n *\r\n * allowCellOverflow : boolean : データが隣接する空白セルにオーバーフローできるかどうかを指定します(オプション)。\r\n * sheetTabColor : string : シートタブの色を表す色文字列(オプション)。\"red\"、\"#FFFF00\"、\"rgb(255,0,0)\"、\"Accent 5\"など。\r\n * frozenlineColor : string : 固定線の色を表す色文字列(オプション)。\"red\"、\"#FFFF00\"、\"rgb(255,0,0)\"、\"Accent 5\"など。\r\n * clipBoardOptions : GC.Spread.Sheets.ClipboardPasteOptions : クリップボードオプション(オプション)。\r\n * gridline : object : グリッド線のオプション(オプション)。\r\n * gridline.color : string : グリッド線の色(オプション)。\r\n * gridline.showVerticalGridline : boolean : 垂直グリッド線を表示するかどうかを指定します(オプション)。\r\n * gridline.showHorizontalGridline : boolean : 水平グリッド線を表示するかどうかを指定します(オプション)。\r\n * rowHeaderVisible : boolean : 行ヘッダが表示されるかどうかを指定します(オプション)。\r\n * colHeaderVisible : boolean : 列ヘッダが表示されるかどうかを指定します(オプション)。\r\n * rowHeaderAutoText : GC.Spread.Sheets.HeaderAutoText : 行ヘッダに英字または数字を表示するか、空白にするかを指定します(オプション)。\r\n * colHeaderAutoText : GC.Spread.Sheets.HeaderAutoText : 列ヘッダに英字または数字を表示するか、空白にするかを指定します(オプション)。\r\n * rowHeaderAutoTextIndex : number : 複数の行ヘッダ列があるときに自動テキストを表示する行ヘッダ列を指定します(オプション)。\r\n * colHeaderAutoTextIndex : number : 複数の列ヘッダ行があるときに自動テキストを表示する列ヘッダ行を指定します(オプション)。\r\n * isProtected : boolean : このシート上の保護対象としてマークされたセルを編集できないかどうかを指定します(オプション)。\r\n * protectionOptions : object : ユーザーが変更できるようにする要素を示す値(オプション)。\r\n * protectionOptions.allowSelectLockedCells : boolean : ユーザーがロックされたセルを選択できるかどうかを指定します(オプション)。\r\n * protectionOptions.allowSelectUnlockedCells : boolean : ユーザーがロックされていないセルを選択できるかどうかを指定します(オプション)。\r\n * protectionOptions.allowSort : boolean : ユーザーが範囲をソートできるかどうかを指定します(オプション)。\r\n * protectionOptions.allowFilter : boolean : ユーザーが範囲をフィルタリングできるかどうかを指定します(オプション)。\r\n * protectionOptions.allowEditObjects : boolean : ユーザーがフローティングオブジェクトを編集できるかどうかを指定します(オプション)。\r\n * protectionOptions.allowResizeRows : boolean : ユーザーが行をサイズ変更できるかどうかを指定します(オプション)。\r\n * protectionOptions.allowResizeColumns : boolean : ユーザーが列をサイズ変更できるかどうかを指定します(オプション)。\r\n * protectionOptions.allowDragInsertRows : boolean : ユーザーがドラッグ操作によって行を挿入できるかどうかを指定します。\r\n * protectionOptions.allowDragInsertColumns : boolean : ユーザーがドラッグ操作によって列を挿入できるかどうかを指定します。\r\n * protectionOptions.allowInsertRows : boolean : ユーザーが行を挿入できるかどうかを指定します。\r\n * protectionOptions.allowInsertColumns : boolean : ユーザーが列を挿入できるかどうかを指定します。\r\n * protectionOptions.allowDeleteRows : boolean : ユーザーが行を削除できるかどうかを指定します。\r\n * protectionOptions.allowDeleteColumns : boolean : ユーザーが列を削除できるかどうかを指定します。\r\n * selectionBackColor : string : シートの選択の背景色(オプション)。\r\n * selectionBorderColor : string : シートの選択の境界線の色(オプション)。\r\n * sheetAreaOffset : Object : sheetAreaOffsetのオプション(オプション)。\r\n * sheetAreaOffset.left : number : シートの、ホストからの左オフセット(オプション)。\r\n * sheetAreaOffset.top : number シートの、ホストからの上オフセット(オプション)。\r\n * \r\n * @see https://docs.grapecity.com/help/spread-js/sheets/#SpreadJS~GC.Spread.Sheets.Worksheet~_ctor.html\r\n */\r\n public options: {};\r\n\r\n\r\n /**\r\n * シートに投入した生データ(dataSourceで指定されたdataは加工が必要だったりするので、加工後、直接投入する直前のデータ)\r\n */\r\n public rawData: any[];\r\n //public rawData: any;\r\n\r\n /**\r\n * コンボボックスに投入した生データ\r\n * key:コンボボックス作成時のvalueName / value:Source\r\n */\r\n private dropDownSources: any = {};\r\n\r\n /**\r\n * インポート前DBデータ\r\n */\r\n public beforeImportDbData: any[] = [];\r\n\r\n /**\r\n * 非同期処理のプロミスをざっくり管理\r\n * (登録しておくと、workBookのMainPromiseにラインアップ登録されます。つまり、workBookのCreatePromiseにその状態を登録できます)\r\n */\r\n private miscellanyPromises: Promise[] = [];\r\n\r\n /**\r\n * 非同期処理のプロミスに登録\r\n * コンボなどの参照用のデータをRemoteから取得する際などに登録しても良い\r\n * 登録しておいて、使用しなくてもいい\r\n * とにかく、ケースバイで、後の処理でresolveを保証したい場合などに使用する\r\n * (登録しておくと、workBookのMainPromiseにラインアップ登録されます。つまり、workBookのCreatePromiseにその状態を登録できます)\r\n */\r\n protected registPromises(p: Promise) {\r\n this.miscellanyPromises = this.miscellanyPromises || [];\r\n this.miscellanyPromises.push(p);\r\n }\r\n\r\n /**\r\n * 非同期処理のプロミス群を取得(公開用)\r\n * (登録しておくと、workBookのMainPromiseにラインアップ登録されます。つまり、workBookのCreatePromiseにその状態を登録できます)\r\n */\r\n public get miscPromises(): Promise[] {\r\n return this.miscellanyPromises;\r\n }\r\n /** */\r\n protected clearPromises() {\r\n this.miscPromises.slice(0);\r\n this.miscellanyPromises = null;\r\n this.miscellanyPromises = [];\r\n }\r\n\r\n\r\n /**\r\n *シートに基本設定されているprotectionOptionsを保持する\r\n * (活性制御に使用する、isProtected=true,falseの切り替えだけでは完全に制御出来ないシートもあるはず\r\n */\r\n tempProtectionOptions: any = null;\r\n\r\n /**\r\n *非活性状態直前のセルStyle(locked)を保持する\r\n * (活性制御に使用する、isProtected=true,falseの切り替えだけでは完全に制御出来ないシートもあるはず\r\n */\r\n tempCellStyleSettings: any[];\r\n\r\n\r\n /**\r\n * 活性状態\r\n * @param disabled\r\n */\r\n private _disabled: boolean = false;\r\n\r\n /**\r\n * 活性状態\r\n */\r\n get disabled(): boolean {\r\n //return this.rawSheet?.options.isProtected;\r\n return this._disabled;\r\n }\r\n\r\n /**\r\n * 活性制御\r\n * @param disabled\r\n */\r\n set disabled(disabled: boolean) {\r\n this._disabled = disabled;\r\n\r\n if (this.rawSheet) {\r\n if (this.tempProtectionOptions == null) {\r\n this.tempProtectionOptions = {};\r\n //当初のProtectionOptionsとisProtectedを保持する\r\n _.assign(this.tempProtectionOptions,\r\n {\r\n isProtected: this.rawSheet.options.isProtected,\r\n protectionOptions: _.cloneDeep(this.rawSheet.options.protectionOptions)\r\n });\r\n }\r\n\r\n if (disabled) {\r\n\r\n //\r\n //https://docs.grapecity.com/help/spread-js/sheets/#styles.html\r\n //セルのスタイルは、優先順位に基づいて適用された各種設定の組み合わせです。セルに対するスタイルは、優先度が最高となります。\r\n //次に優先度が高いのは、このセルが属する行のスタイルであり、このセルが属する列のスタイルがその次、最後はシートのデフォルトスタイルです。\r\n //Styleオブジェクトを割り当てるには、setStyleメソッドを使用します。行全体または列全体を指定するには、「-1」を使用します。\r\n\r\n //「ボツ1」 jsonシリアライズ/デシリアライズ\r\n //・場合により重そう。\r\n //・さらに再描画が走りちらつく\r\n //・コンボボックス等のインスタンス参照が切れそう(かも)\r\n //if (this.tempCellStyleSettingJson == null) {\r\n // this.tempCellStyleSettingJson = this.rawSheet.toJSON({ includeBindingSource: true });\r\n //}\r\n ////this.rawSheet.getRange(-1, -1, -1, -1).locked(true);//これではセル毎に設定されている場合、そっちが優先される(defaultDataNodeと言われるsheet全体の設定に入る)\r\n //this.rawSheet.getRange(0, 0, this.rawSheet.getRowCount(), this.rawSheet.getColumnCount()).locked(true);//\r\n\r\n\r\n //「ボツ2」\r\n //var namedStyle = new Spread.Sheets.Style();\r\n //namedStyle.name = \"disabled\";\r\n //namedStyle.locked = true;\r\n //this.rawSheet.addNamedStyle(namedStyle);\r\n //this.rawSheet.getCell(1, 5).locked();\r\n //this.rawSheet.getActualStyle(1, 5).locked;\r\n //this.rawSheet.setStyleName(-1, -1, \"disabled\");\r\n //// 描画停止\r\n //this.rawSpread.suspendPaint();\r\n //// ロック解除\r\n ////for (var row = 0; row < this.getRowCount(); row++) {\r\n //for (var col = 0; col < this.getColumnCount(); col++) {\r\n // this.rawSheet.setStyleName(-1, col, 'disabled');\r\n //}\r\n /////}\r\n //this.rawSpread.resumePaint();\r\n\r\n this.rawSpread.suspendCalcService();\r\n this.rawSpread.suspendEvent();\r\n this.rawSpread.suspendPaint();\r\n this.tempCellStyleSettings = [];\r\n for (var row = 0; row < this.getRowCount(); row++) {\r\n let cols = [];\r\n for (var col = 0; col < this.getColumnCount(); col++) {\r\n //セル単品に設定されたstyleのみ抽出\r\n //セルに指定されていない場合はnullになっていることはありうる。その場合はカラムに指定されているstyleが当たっているだろう\r\n //(上記のコメントの通り優先順位:全体<カラム<行<セル)\r\n //クローンして参照を切らないと、後で全体で設定するlock処理で共に変わってしまう\r\n //let colStyle = this.rawSheet.getStyle(row, col;\r\n let colStyle = this.rawSheet.getStyle(row, col)?.clone() || null;\r\n cols.push(colStyle);\r\n }\r\n this.tempCellStyleSettings.push(cols);\r\n }\r\n\r\n //this.rawSheet.getRange(-1, -1, -1, -1).locked(true);//これではセル毎に設定されている場合、そっちが優先される(defaultDataNodeと言われるsheet全体の設定に入る)\r\n this.rawSheet.getRange(0, 0, this.rawSheet.getRowCount(), this.rawSheet.getColumnCount()).locked(true);//\r\n this.rawSpread.resumePaint();\r\n this.rawSpread.resumeEvent();\r\n this.rawSpread.resumeCalcService();\r\n\r\n //\r\n this.rawSheet.options.isProtected = true;\r\n //\r\n this.rawSheet.options.protectionOptions = {\r\n //ユーザーがロックされたセルを選択できるかどうかを指定します(オプション)。\r\n allowSelectLockedCells: true,\r\n //ユーザーがロックされていないセルを選択できるかどうかを指定します(オプション)。\r\n allowSelectUnlockedCells: true,\r\n //ユーザーが範囲をソートできるかどうかを指定します(オプション)。\r\n allowSort: true,\r\n //ユーザーが範囲をフィルタリングできるかどうかを指定します(オプション)。\r\n allowFilter: true,\r\n //ユーザーがフローティングオブジェクトを編集できるかどうかを指定します(オプション)。\r\n allowEditObjects: false,\r\n //ユーザーが行をサイズ変更できるかどうかを指定します(オプション)。\r\n //#2616,2617,2656 行高さ調整は基本できない。\r\n allowResizeRows: false,\r\n //ユーザーが列をサイズ変更できるかどうかを指定します(オプション)。\r\n allowResizeColumns: true,\r\n // ユーザーがドラッグ操作によって行を挿入できるかどうかを指定します。\r\n allowDragInsertRows: false,\r\n // ユーザーがドラッグ操作によって列を挿入できるかどうかを指定します。\r\n allowDragInsertColumns: false,\r\n //ユーザーが行を挿入できるかどうかを指定します。\r\n allowInsertRows: false,\r\n //ユーザーが列を挿入できるかどうかを指定します。\r\n allowInsertColumns: false,\r\n // ユーザーが行を削除できるかどうかを指定します。\r\n allowDeleteRows: false,\r\n //ユーザーが列を削除できるかどうかを指定します。\r\n allowDeleteColumns: false,\r\n };\r\n\r\n } else {\r\n\r\n //元の状態に戻す\r\n if (this.tempCellStyleSettings != null) {\r\n this.rawSpread.suspendCalcService();\r\n this.rawSpread.suspendEvent();\r\n this.rawSpread.suspendPaint();\r\n for (var row = 0; row < this.getRowCount(); row++) {\r\n for (var col = 0; col < this.getColumnCount(); col++) {\r\n let colStyle = this.tempCellStyleSettings[row][col];\r\n //セルに指定されていない場合はnullになっていることはありうる\r\n //nullならnullで上書くことで初期化される\r\n this.rawSheet.setStyle(row, col, colStyle);\r\n }\r\n }\r\n this.rawSpread.resumePaint();\r\n this.rawSpread.resumeEvent();\r\n this.rawSpread.resumeCalcService();\r\n }\r\n\r\n //元の状態に戻す\r\n this.rawSheet.options.isProtected = this.tempProtectionOptions.isProtected;\r\n this.rawSheet.options.protectionOptions = _.cloneDeep(this.tempProtectionOptions.protectionOptions);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * エラー情報\r\n */\r\n public errorInfoList: Array;\r\n\r\n /**\r\n * delegate\r\n */\r\n onNotifyValueChanged?: (ins: WorkSheetBase, colmunName: string, newValue: any) => void;\r\n\r\n\r\n /**\r\n * delegate\r\n * #5736 【保守:C】0285_SpreadJSのソート機能実行後の保存によるデータ不整合発生について\r\n */\r\n onNotifySorting?: (ins: WorkSheetBase, args: any) => void;\r\n\r\n /**\r\n * 委譲メソッド\r\n * TODO ここは改良\r\n */\r\n getRowCount(): number {\r\n return this.rawSheet?.getRowCount();\r\n }\r\n /**\r\n * 委譲メソッド\r\n * TODO ここは改良\r\n */\r\n getColumnCount(): number {\r\n //return this.rawSheet.getColumnCount();\r\n return this.columns?.length;\r\n }\r\n /**\r\n * 委譲メソッド\r\n * TODO ここは改良\r\n */\r\n getCell(i, j): Spread.Sheets.CellRange {\r\n return this.rawSheet.getCell(i, j);\r\n }\r\n\r\n\r\n /**\r\n * シート設定\r\n * @param sheet\r\n */\r\n protected get DefaultSheetOptions(): any {\r\n return {\r\n // 貼り付けオプションを値のみに設定\r\n clipBoardOptions: Spread.Sheets.ClipboardPasteOptions.values,\r\n };\r\n }\r\n\r\n /**\r\n * \r\n */\r\n protected get DefaultSheetStyle(): Spread.Sheets.Style {\r\n // デフォルトスタイル設定\r\n const defaultStyle = new Spread.Sheets.Style();\r\n\r\n // セル罫線(濃すぎ!)\r\n //const border = new Spread.Sheets.LineBorder('#999999', Spread.Sheets.LineStyle.thin);\r\n const border = new Spread.Sheets.LineBorder('#00000033', Spread.Sheets.LineStyle.thin);\r\n defaultStyle.borderTop = border;\r\n defaultStyle.borderBottom = border;\r\n defaultStyle.borderLeft = border;\r\n defaultStyle.borderRight = border;\r\n\r\n //sheet.setDefaultStyle(defaultStyle, Spread.Sheets.SheetArea.viewport);\r\n //// 区分列の背景色指定\r\n //const colStyle = new Spread.Sheets.Style();\r\n // colStyle.backColor = '#e8e8e8';\r\n //// スタイルを列に設定します。\r\n //sheet.setStyle(-1, 0, colStyle, Spread.Sheets.SheetArea.viewport);\r\n return defaultStyle;\r\n }\r\n\r\n /**\r\n * #3953\r\n * 正直ここに用意したくないが、基盤に載っていない○振り画面用に作成\r\n * ※継承していないのでstaticで宣言するため、this.DefaultSheetStyleは参照できない。\r\n */\r\n public static getDefaultSheetStyle(): Spread.Sheets.Style {\r\n // デフォルトスタイル設定\r\n const defaultStyle = new Spread.Sheets.Style();\r\n\r\n // セル罫線(濃すぎ!)\r\n //const border = new Spread.Sheets.LineBorder('#999999', Spread.Sheets.LineStyle.thin);\r\n const border = new Spread.Sheets.LineBorder('#00000033', Spread.Sheets.LineStyle.thin);\r\n defaultStyle.borderTop = border;\r\n defaultStyle.borderBottom = border;\r\n defaultStyle.borderLeft = border;\r\n defaultStyle.borderRight = border;\r\n\r\n //sheet.setDefaultStyle(defaultStyle, Spread.Sheets.SheetArea.viewport);\r\n //// 区分列の背景色指定\r\n //const colStyle = new Spread.Sheets.Style();\r\n // colStyle.backColor = '#e8e8e8';\r\n //// スタイルを列に設定します。\r\n //sheet.setStyle(-1, 0, colStyle, Spread.Sheets.SheetArea.viewport);\r\n return defaultStyle;\r\n }\r\n\r\n /**\r\n * 行新規追加時用初期化変数\r\n */\r\n abstract get DefaultRowData(): {};\r\n\r\n\r\n\r\n\r\n /**\r\n * 行を新規に追加された場合に使用する\r\n */\r\n get BlankRowData(): {} {\r\n //空の器を用意\r\n let element = this.DefaultRowData;\r\n _.assign(element, { [WorkSheetBase.KEY_isBlank]: true })\r\n //変更管理列が必要か\r\n if (this.shouldSectionTypeColumn) {\r\n _.assign(element, { [WorkSheetBase.KEY_SectionType]: null });\r\n }\r\n //取込管理列が必要か\r\n if (this.shouldImportTypeColumn) {\r\n _.assign(element, { [WorkSheetBase.KEY_ImportType]: null });\r\n }\r\n return element;\r\n }\r\n\r\n\r\n /**\r\n * ctor\r\n * @param param0\r\n */\r\n constructor(spread: WorkBookBase, { sheetName, columns, dataSource, options }: { sheetName?: string; columns?: columnDef[]; dataSource?: Source; options?: {}; } = {}) {\r\n this.spread = spread;\r\n\r\n this.sheetName = sheetName || '';\r\n //this.sheetNo = sheetNo;\r\n this.columns = columns || [];\r\n this.source = dataSource || {};\r\n this.options = options || {};\r\n //this.mode = mode;\r\n this.errorInfoList = [];\r\n }\r\n\r\n /**\r\n *\r\n * @param rawdata\r\n */\r\n //createSheet() {\r\n //createSheet(spread?: Spread.Sheets.Workbook) {\r\n //createSheet(parent: WorkBookBase) {\r\n createSheet() {\r\n\r\n //this.spread = parent;\r\n\r\n //// 右クリック時のメニュー制御\r\n //this.setContextMenu(spread);\r\n\r\n // シート情報を取得\r\n //let sheet = this.spread.getSheet(this.sheetNo);\r\n let sheet = new Spread.Sheets.Worksheet(this.sheetName);\r\n //// シート名を設定\r\n //sheet.name(this.sheetName);\r\n this.rawSheet = sheet;\r\n\r\n // シートの設定\r\n this.setSheetSetting();\r\n\r\n this.setDefaultSheetStyle();\r\n\r\n\r\n //--------【動的レイアウト 横軸展開系対応】--------\r\n //// カラムの設定\r\n //this.setColSetting();\r\n //// ヘッダ行の設定\r\n //this.setHeaderRowSetting();\r\n //// イベントの追加\r\n //this.setEvents(sheet);\r\n //------------------------------------------------\r\n\r\n\r\n //sheetのtagにはデフォルトで、sheetのインスタンスが含まれているが、当オブジェクトを入れておく\r\n sheet.tag(this);\r\n\r\n return sheet;\r\n }\r\n\r\n\r\n /**\r\n * sourceの情報をもとにシートのデータを生成反映する\r\n * @param data\r\n */\r\n async load() {\r\n return new Promise((resolve, reject) => {\r\n //グリッドデータの取得\r\n this.loadSource(this.source).then(data => {\r\n this.setGridData(data);\r\n\r\n ////コンボボックスアイテム収集などの小さなPromiseの集合体\r\n //console.log(this.sheetName + ' :miscPromises : ' + this.miscPromises.length);\r\n\r\n //並列実行\r\n Promise.all(\r\n this.miscPromises\r\n ).then((values) => {\r\n //完了(成功)\r\n resolve();\r\n }).catch((e) => {\r\n //エラー\r\n reject();\r\n }).finally(() => {\r\n //削除\r\n this.clearPromises();\r\n // loadの終了通知\r\n this.loadCompleted();\r\n });\r\n });\r\n });\r\n }\r\n\r\n\r\n /**\r\n * データを再取得しなおす\r\n * @param data\r\n */\r\n async reload() {\r\n\r\n //#1256 インポート画面表示時に親画面のエラー背景色がクリアされない\r\n //設定していたエラー色をクリア\r\n this.clearErrorInfoList();\r\n\r\n // レイアウト処理の無効化\r\n this.rawSpread.suspendPaint();\r\n // イベント処理の無効化\r\n this.rawSpread.suspendEvent();\r\n\r\n ////中身をしっかりと除去する\r\n //if (this.source.data) {\r\n // //this.source.data.splice(0);\r\n // this.source.data.splice(0, this.source.data.length);\r\n //}\r\n\r\n //ポインタをリセット\r\n this.source.data = null;\r\n\r\n //#948\r\n this.rawSheet.unbindAll(); //cancel monitoring of all events.\r\n\r\n //return this.load();\r\n\r\n //\r\n return new Promise((resolve, reject) => {\r\n this.load().then(() => {\r\n\r\n resolve();\r\n }).finally(() => {\r\n\r\n // イベント処理の有効化\r\n this.rawSpread.resumeEvent();\r\n // レイアウト処理の有効化\r\n this.rawSpread.resumePaint();\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * データをロードする\r\n */\r\n async loadSource(source: Source): Promise {\r\n\r\n //データの指定が無い場合で、かつURL指定がある場合\r\n if (!source.data && source.url) {\r\n //グリッドデータの取得\r\n //return SPIRIT.util.getData(source.url);\r\n // 下記だとダメ\r\n //return SPIRIT.util.getData(source.url).then((data) => {\r\n // source.data = data;\r\n //});\r\n\r\n return new Promise((resolve, reject) => {\r\n SPIRIT.util.getData(source.url).then((data) => {\r\n source.data = data;\r\n resolve(source.data);\r\n });\r\n });\r\n\r\n } else {\r\n\r\n //未定義なら初期化して渡す\r\n source.data = source.data || [];\r\n //生のデータ設置済みの場合\r\n return new Promise((resolve, reject) => {\r\n resolve(source.data);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * ブランク行の追加\r\n * \r\n * @param sourceData\r\n */\r\n protected addBlankRows(data: any[]): any[] {\r\n\r\n //※注 ECMAScript 2015 での新しい表記法\r\n data.forEach(element => _.assign(element, { [WorkSheetBase.KEY_isBlank]: false }));\r\n\r\n for (let i = 0; i < this.extraRowCount; i++) {\r\n let newData = this.DefaultRowData;\r\n //_.assign(newData, { 'isEdit': true })\r\n _.assign(newData, { [WorkSheetBase.KEY_isBlank]: true })\r\n data.push(newData);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n\r\n /**\r\n * 変更管理区分列の追加\r\n * \r\n * @param columns\r\n */\r\n protected addSectionTypeColumn(columns: columnDef[]): void {\r\n //if (!columns) { return; }\r\n columns = columns || [];\r\n const find = columns.findIndex(el => el.name === WorkSheetBase.KEY_SectionType);\r\n //見つからなかったら登録する\r\n if (find < 0) {\r\n //let SectionTypeColumn = { name: \"SectionType\", displayName: \"区分\", size: 50, visible: false };\r\n const SectionTypeColumn = { name: WorkSheetBase.KEY_SectionType, displayName: WorkSheetBase.KEY_SectionType_Display, size: 50, visible: true };\r\n columns.splice(0, 0, SectionTypeColumn);\r\n }\r\n else {\r\n //columns[find].visible = true;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 取込管理区分列の追加\r\n * \r\n * @param columns\r\n */\r\n protected addImportTypeColumn(columns: columnDef[]): void {\r\n //if (!columns) { return; }\r\n columns = columns || [];\r\n const find = columns.findIndex(el => el.name === WorkSheetBase.KEY_ImportType);\r\n //見つからなかったら登録する\r\n if (find < 0) {\r\n const ImportTypeColumn = { name: WorkSheetBase.KEY_ImportType, displayName: WorkSheetBase.KEY_ImportType_Display, size: 80, visible: true };\r\n columns.splice(0, 0, ImportTypeColumn);\r\n }\r\n else {\r\n columns[find].visible = true;\r\n }\r\n }\r\n\r\n /**\r\n * 変更管理区分列の削除\r\n * \r\n * @param columns\r\n */\r\n protected removeSectionTypeColumn(columns: columnDef[]): void {\r\n columns = columns || [];\r\n const find = columns.findIndex(el => el.name === WorkSheetBase.KEY_SectionType);\r\n if (find >= 0) {\r\n //columns[find].visible = false;//(非表示でもいいかも)\r\n //見つかったら削除する\r\n columns.splice(find, 1);\r\n }\r\n }\r\n\r\n /**\r\n * 取込管理区分列の削除\r\n * \r\n * @param columns\r\n */\r\n protected removeImportTypeColumn(columns: columnDef[]): void {\r\n columns = columns || [];\r\n const find = columns.findIndex(el => el.name === WorkSheetBase.KEY_ImportType);\r\n if (find >= 0) {\r\n //columns[find].visible = false;//(非表示でもいいかも)\r\n //見つかったら削除する\r\n columns.splice(find, 1);\r\n }\r\n }\r\n\r\n /**\r\n * 変更管理区分項目の追加\r\n * \r\n * @param data\r\n */\r\n protected addSectionTypeItem(data: any[]): any[] {\r\n //defaultで足りないものを入れる\r\n //data.forEach(element => _.assign(element, { 'SectionType': null }));\r\n data.forEach(element => _.assign(element, { [WorkSheetBase.KEY_SectionType]: null }));\r\n return data;\r\n }\r\n\r\n /**\r\n * 取込管理区分項目の追加\r\n * \r\n * @param data\r\n */\r\n protected addImportTypeItem(data: any[]): any[] {\r\n //defaultで足りないものを入れる\r\n //data.forEach(element => _.assign(element, { 'SectionType': null }));\r\n data.forEach(element => _.assign(element, { [WorkSheetBase.KEY_ImportType]: null }));\r\n return data;\r\n }\r\n\r\n /**\r\n * シート設定\r\n * @param sheet\r\n */\r\n setSheetSetting() {\r\n let spreadOptions: any = {};\r\n\r\n let protectionOptions = null;\r\n //#1238\r\n //// 参照、インポートモードの時は編集不可\r\n //if (this.mode == SPIRIT.constant.GridMode.REFER) {\r\n // spreadOptions.isProtected = true;\r\n //}\r\n\r\n //基本シート保護\r\n spreadOptions.isProtected = true;\r\n //\r\n if (this.mode == SPIRIT.constant.GridMode.REFER) {\r\n //Nullにしておく(フルロック)\r\n //protectionOptions = null;\r\n\r\n protectionOptions = {\r\n //ユーザーがロックされたセルを選択できるかどうかを指定します(オプション)。\r\n allowSelectLockedCells: true,\r\n //ユーザーがロックされていないセルを選択できるかどうかを指定します(オプション)。\r\n allowSelectUnlockedCells: true,\r\n //ユーザーが範囲をソートできるかどうかを指定します(オプション)。\r\n allowSort: true,\r\n //ユーザーが範囲をフィルタリングできるかどうかを指定します(オプション)。\r\n allowFilter: true,\r\n\r\n //ユーザーがフローティングオブジェクトを編集できるかどうかを指定します(オプション)。\r\n allowEditObjects: false,\r\n //ユーザーが行をサイズ変更できるかどうかを指定します(オプション)。\r\n //#2616,2617,2656 行高さ調整は基本できない。\r\n //折り返し設定ありのGrid(列定義にwordWrap: trueが1列でもある場合)は、行高さ調整できるで対応する\r\n //allowResizeRows: true,\r\n allowResizeRows: false,\r\n //ユーザーが列をサイズ変更できるかどうかを指定します(オプション)。\r\n allowResizeColumns: true,\r\n // ユーザーがドラッグ操作によって行を挿入できるかどうかを指定します。\r\n allowDragInsertRows: false,\r\n // ユーザーがドラッグ操作によって列を挿入できるかどうかを指定します。\r\n allowDragInsertColumns: false,\r\n //ユーザーが行を挿入できるかどうかを指定します。\r\n allowInsertRows: false,\r\n //ユーザーが列を挿入できるかどうかを指定します。\r\n allowInsertColumns: false,\r\n // ユーザーが行を削除できるかどうかを指定します。\r\n allowDeleteRows: false,\r\n //ユーザーが列を削除できるかどうかを指定します。\r\n allowDeleteColumns: false,\r\n }\r\n } else {\r\n protectionOptions = {\r\n //ユーザーがロックされたセルを選択できるかどうかを指定します(オプション)。\r\n allowSelectLockedCells: true,\r\n //ユーザーがロックされていないセルを選択できるかどうかを指定します(オプション)。\r\n allowSelectUnlockedCells: true,\r\n //ユーザーが範囲をソートできるかどうかを指定します(オプション)。\r\n allowSort: true,\r\n //ユーザーが範囲をフィルタリングできるかどうかを指定します(オプション)。\r\n allowFilter: true,\r\n\r\n //ユーザーがフローティングオブジェクトを編集できるかどうかを指定します(オプション)。\r\n allowEditObjects: true,\r\n //ユーザーが行をサイズ変更できるかどうかを指定します(オプション)。\r\n //#2616,2617,2656 行高さ調整は基本できない。\r\n //折り返し設定ありのGrid(列定義にwordWrap: trueが1列でもある場合)は、行高さ調整できるで対応する\r\n //allowResizeRows: true,\r\n allowResizeRows: false,\r\n //ユーザーが列をサイズ変更できるかどうかを指定します(オプション)。\r\n allowResizeColumns: true,\r\n // ユーザーがドラッグ操作によって行を挿入できるかどうかを指定します。\r\n allowDragInsertRows: true,\r\n // ユーザーがドラッグ操作によって列を挿入できるかどうかを指定します。\r\n allowDragInsertColumns: true,\r\n //ユーザーが行を挿入できるかどうかを指定します。\r\n allowInsertRows: true,\r\n //ユーザーが列を挿入できるかどうかを指定します。\r\n allowInsertColumns: true,\r\n // ユーザーが行を削除できるかどうかを指定します。\r\n allowDeleteRows: true,\r\n //ユーザーが列を削除できるかどうかを指定します。\r\n allowDeleteColumns: true,\r\n }\r\n }\r\n spreadOptions.protectionOptions = protectionOptions;\r\n\r\n //sheet.options = spreadOptions\r\n _.assign(this.rawSheet.options, this.DefaultSheetOptions, spreadOptions, this.options);\r\n\r\n\r\n // ヘッダの自動セットを無効化(どうする?)\r\n this.rawSheet.autoGenerateColumns = false;\r\n\r\n //#3809 初期拡大率の設定\r\n this.rawSheet.zoom(this.initZoomfactor);\r\n\r\n // 行高さが指定されている場合は設定\r\n if (this.defaultsRowHeight) {\r\n this.rawSheet.defaults.rowHeight = this.defaultsRowHeight;\r\n }\r\n\r\n }\r\n\r\n /**\r\n *\r\n * @param sheet\r\n * @param settingInfo\r\n */\r\n setDefaultSheetStyle(additional?: Spread.Sheets.Style) {\r\n let style = additional || new Spread.Sheets.Style();\r\n _.defaultsDeep(style, this.DefaultSheetStyle);\r\n this.rawSheet.setDefaultStyle(style, Spread.Sheets.SheetArea.viewport);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n * データをグリッドに反映\r\n * @param data\r\n */\r\n private setGridData(data) {\r\n\r\n //もういらない、すでに設定済みloadSourceにて\r\n //this.source.data = data;\r\n //(data === this.source.data) => TRUE!\r\n\r\n\r\n\r\n //加工が必要な場合は適宜成型する!\r\n let _rawData = this.modelingData(this.source.data);\r\n\r\n //--------【動的レイアウト 横軸展開系対応】--------\r\n this.columns = null;\r\n //カラムを定義する\r\n this.columns = this.defineColumns(_.cloneDeep(this.source.data));\r\n\r\n //#2616,2617,2656 行高さ調整は基本できない。\r\n //折り返し設定ありのGrid(列定義にwordWrap: trueが1列でもある場合)は、行高さ調整できるで対応する\r\n const isExistWordWrap = this.columns.some((column) => column.style?.wordWrap === true);\r\n if (isExistWordWrap) {\r\n this.rawSheet.options.protectionOptions.allowResizeRows = true;\r\n }\r\n\r\n //新規余白が必要か\r\n if (this.shouldNeedExtraRow) {\r\n this.addBlankRows(_rawData);\r\n } else {\r\n if (this.mode == SPIRIT.constant.GridMode.EDIT) {\r\n _rawData.forEach(element => _.assign(element, { [WorkSheetBase.KEY_isBlank]: false }));\r\n }\r\n }\r\n\r\n //自分で行数をコントロールしたい場合はここで実施\r\n _rawData = this.modelingRows(_rawData);\r\n\r\n //変更管理列が必要か\r\n if (this.shouldSectionTypeColumn) {\r\n this.addSectionTypeItem(_rawData);\r\n }\r\n\r\n //取込管理列が必要か\r\n if (this.shouldImportTypeColumn) {\r\n this.addSectionTypeItem(_rawData);\r\n }\r\n\r\n\r\n //加工が必要な場合は適宜成型する!\r\n //加工が必要な場合は適宜成型する!(念のため取っておく)\r\n this.modelingColumns(this.source.data, this.columns);\r\n\r\n // カラムの設定\r\n this.setColSetting();\r\n // ヘッダ行の設定\r\n this.setHeaderRowSetting();\r\n //// イベントの追加←最後\r\n //this.setEvents(sheet);\r\n //-------------------------------------\r\n\r\n //元データを退避\r\n //this.rawData = _rawData;\r\n this.rawData = _.cloneDeep(_rawData);\r\n\r\n // データをセット\r\n //this.rawSheet.setDataSource(this.rawData);\r\n this.rawSheet.setDataSource(_rawData);\r\n\r\n // 元データを行のtagに保有しておく(最終detaSourceとして使用する)\r\n //②タグ保有バージョン(行タグに元データを入れて、最終画面項目で上書きする)\r\n this.setTagSourceItemRows();\r\n\r\n // グリッド行設定\r\n this.setContentsRowsSetting();\r\n\r\n // フィルタ設定\r\n //【SpreadJSグリッド操作】\r\n if (this.isNeedFilter) {\r\n this.setFilter();\r\n }\r\n\r\n //--------【動的レイアウト 横軸展開系対応】場所替え--------\r\n // イベントの追加\r\n this.setEvents(this.rawSheet);\r\n\r\n //// SetGridDataの終了通知\r\n //this.loadCompleted();\r\n\r\n }\r\n\r\n /**\r\n * デフォルトカラム定義\r\n * @param sourceData --- サーバデータの生データ\r\n */\r\n abstract defineColumns(sourceData: any): columnDef[];\r\n\r\n /**\r\n * ここでrawDataにsource.dataを詰め替える!!\r\n * 加工が必要な場合は適宜成型する!\r\n * @param sourceData\r\n */\r\n protected abstract modelingData(sourceData: any): any[];\r\n\r\n /**\r\n * データ取得後、manualで、ブランク行等を追加したい場合オーバーライド\r\n * 加工が必要な場合は適宜成型する!(念のため取っておく)\r\n * @param sourceData\r\n * @param columns\r\n * @override\r\n */\r\n protected modelingRows(sourceData: any,): any[] {\r\n\r\n //for (let i = 0; i < 50000; i++) {\r\n // let newData = this.DefaultRowData;\r\n // //_.assign(newData, { 'isEdit': true })\r\n // _.assign(newData, { [WorkSheetBase.KEY_isBlank]: true })\r\n // sourceData.push(newData);\r\n //}\r\n\r\n return sourceData;\r\n }\r\n\r\n /**\r\n * データ取得後、横軸展開等が必要なレイアウトに関してはここでthis.columnnsに対して手を加える(abstractでもよかったかも)\r\n * 加工が必要な場合は適宜成型する!(念のため取っておく)\r\n * @param sourceData\r\n * @param columns\r\n * @override\r\n */\r\n protected modelingColumns(sourceData: any, columns: columnDef[]): void {\r\n //overridable method!\r\n //this.columns.push({ name: 'addedCol1' });//的な!\r\n }\r\n\r\n\r\n /**\r\n * Girdの列の設定\r\n * @param sheet\r\n */\r\n setColSetting() {\r\n if (this.columns && this.columns.length > 0) { }\r\n\r\n //変更管理列が必要か\r\n //if (this.isNeedSectionTypeColumn) {\r\n if (this.shouldSectionTypeColumn) {\r\n this.addSectionTypeColumn(this.columns);\r\n } else {\r\n //削除してしまう(非表示にしてもいいかも)\r\n this.removeSectionTypeColumn(this.columns);\r\n }\r\n\r\n //取込管理列が必要か\r\n if (this.shouldImportTypeColumn) {\r\n this.addImportTypeColumn(this.columns);\r\n } else {\r\n //削除してしまう(非表示にしてもいいかも)\r\n this.removeImportTypeColumn(this.columns);\r\n }\r\n\r\n // カラムをバインド\r\n this.rawSheet.bindColumns(this.columns);\r\n\r\n // 区分列の色を変更\r\n //if (this.isNeedSectionTypeColumn) {\r\n if (this.shouldSectionTypeColumn) {\r\n this.setSectionTypeColumnStyle(this.rawSheet);\r\n }\r\n\r\n // 取込区分列の色を変更\r\n if (this.shouldImportTypeColumn) {\r\n this.setSectionTypeColumnStyle(this.rawSheet);\r\n }\r\n\r\n for (let col = 0; col < this.columns.length; col++) {\r\n const column = this.columns[col];\r\n let colStyle = this.getColumnStyle(col);\r\n\r\n ////#1173 基本文字列にする\r\n //colStyle.formatter = '@';\r\n ////カスタムStyleの設定(typeがある場合はそちらが優先)\r\n //if (!_.isNil(column.style)) {\r\n // _.assignIn(colStyle, column.style);\r\n //}\r\n //if (column.editor instanceof Spread.Sheets.Style) {\r\n // colStyle = column.editor;\r\n //} else if (column.editor instanceof Spread.Sheets.CellTypes.Base) {\r\n // colStyle.cellType = column.editor;\r\n //}\r\n\r\n //#1173 再考\r\n //コンボの場合はstyleでformatterの指定がない場合'General'のままにする\r\n //({ value: <数値(文字列以外) >、text: <文字列>}形式の場合おかしな挙動を示す)\r\n //GR列区分は特殊な動きをする{value:'01',text:'1'}のような 値はマッチングがあいまいなのか、コピペした段階でおかしな挙動になる\r\n if (column.editor instanceof Spread.Sheets.CellTypes.Base) {\r\n colStyle.cellType = column.editor;\r\n } else {\r\n //基本文字列にする\r\n colStyle.formatter = '@';\r\n }\r\n\r\n //カスタムStyleの設定(typeがある場合はそちらが優先)\r\n if (!_.isNil(column.style)) {\r\n _.assign(colStyle, column.style);\r\n }\r\n\r\n if (column.editor instanceof Spread.Sheets.Style) {\r\n //設定の仕方によって同一参照してしまうので、参照を切る\r\n //colStyle = column.editor;\r\n //#1516 cloneDeepでは完全に切れない(なぜ?参照?内部の管理なのか...理解しがたい)\r\n //builtInのclone()ならうまくいった\r\n //_.assign(colStyle, _.cloneDeep(column.editor));\r\n _.assign(colStyle, column.editor.clone());\r\n\r\n } else if (column.editor instanceof ColumnEditor) {\r\n // #2033編集開始時日付format外の値の表示抑止\r\n //この場合は全て上書き\r\n if (column.editor.style) {\r\n _.assign(colStyle, column.editor.style.clone());\r\n }\r\n\r\n if (column.editor.cellType) {\r\n colStyle.cellType = column.editor.cellType;\r\n }\r\n }\r\n\r\n //\r\n this.setColumnStyle(col, colStyle);\r\n\r\n //// #2033編集開始時日付format外の値の表示抑止\r\n //// 「workSheetBase.valueChangedProcess」で抑止しようとした結果、hh:mmやMM/DDが対応出来ない為、コッチ行う\r\n //if (this.isDateTimePickerStyle(colStyle)) {\r\n // //入力開始のインターセプター;\r\n // colStyle.cellType = new DateTimeEditInterceptor(colStyle.formatter);\r\n //}\r\n\r\n // #4119 データバリデーターが設定されている場合は、データ検証をセットする\r\n if (column.dataFomulaOrListValidator) {\r\n this.setDataFomulaOrListValidator(column, col);\r\n }\r\n\r\n // ellipsis(...)を追加する処理\r\n this.showColumnEllipsis(col, true);\r\n\r\n //参照モード以外(isLockはdefaultでtrueなので、とりわけ設定する必要は無い)\r\n if (this.mode != SPIRIT.constant.GridMode.REFER) {\r\n //#1238 シート保護、セルロック方式に変更\r\n this.setReadonlyColumn(col, column.readonly || false);\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Girdのヘッダ行の設定\r\n * @param sheet\r\n */\r\n setHeaderRowSetting() {\r\n\r\n // ヘッダ行取得\r\n let row = this.rawSheet.getRange(0, -1, 1, -1, Spread.Sheets.SheetArea.colHeader);\r\n // 高さ設定\r\n this.rawSheet.setRowHeight(0, 40.0, Spread.Sheets.SheetArea.colHeader);\r\n\r\n // 背景色設定\r\n row.backColor(\"#eee\");\r\n // 文字色設定\r\n row.foreColor(\"#444\");\r\n\r\n //必須項目列には'*'を表示\r\n if (this.columns) {\r\n this.columns.forEach((col, ind) => {\r\n if (col.required === true) {\r\n //RequiredColumnHeaderCellTypeを付与\r\n this.rawSheet.setCellType(0, ind, new RequiredColumnHeaderCellType(), Spread.Sheets.SheetArea.colHeader);\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * 元データを行のtagに保有しておく(最終detaSourceとして使用する)\r\n *②タグ保有バージョン(行タグに元データを入れて、最終画面項目で上書きする)\r\n * @param sheet\r\n */\r\n setTagSourceItemRows() {\r\n // 行数を取得\r\n const rowCount = this.rawSheet.getRowCount();\r\n for (let row = 0; row < rowCount; row++) {\r\n //クローンして入れる\r\n const element = _.cloneDeep(this.rawSheet.getDataItem(row));\r\n this.setOriginSourceItem(row, element);\r\n }\r\n }\r\n\r\n /**\r\n * Girdのコンテンツ行の設定\r\n * @param sheet\r\n */\r\n setContentsRowsSetting() {\r\n // 行数を取得\r\n const rowCount = this.rawSheet.getRowCount();\r\n //for (let i = 0; i < rowCount; i++) {\r\n // // 行の高さの編集を不可にする\r\n // sheet.setRowResizable(i, false);\r\n //}\r\n\r\n //#1258 SpreadJSのセルで改行そ含む値を入力すると、1行で繋がって表示されるので改行して表示できないか検討する\r\n // 行の高さの編集を不可にする\r\n //this.rawSheet.getRange(1, -1, rowCount, -1, Spread.Sheets.SheetArea.viewport).resizable(false);\r\n\r\n //WordWrap:trueのカラムが一件でもある場合\r\n let isExistWordWrap = this.columns.some((column) => column.style?.wordWrap === true);\r\n if (isExistWordWrap) {\r\n\r\n // #4068 spread描画時に高さ自動調整を実行するかどうか\r\n if (this.doAutoFit) {\r\n //#4309\r\n //for (let row = 0; row < rowCount; row++) {\r\n // //自動調整(正直少しおそくなります。)\r\n // this.rawSheet.autoFitRow(row);\r\n //}\r\n //高速化対応版\r\n this.autoFitRowForWordWrap();\r\n } else {\r\n //遅くて、ユーザーにマニュアルでやってもらう場合は下記\r\n this.rawSheet.getRange(0, -1, rowCount, -1, Spread.Sheets.SheetArea.viewport).resizable(true);\r\n }\r\n } else {\r\n //【SpreadJSグリッド操作】\r\n // 行の高さの編集を不可にする\r\n this.rawSheet.getRange(0, -1, rowCount, -1, Spread.Sheets.SheetArea.viewport).resizable(false);\r\n }\r\n }\r\n\r\n /**\r\n * 行の高さ自動調整\r\n * ※マニュアルで呼び出したい場合に使用\r\n */\r\n autoFitRow() {\r\n\r\n // 行数を取得\r\n const rowCount = this.rawSheet.getRowCount();\r\n\r\n // spread描画、イベント停止\r\n this.rawSpread.suspendCalcService();\r\n this.rawSpread.suspendEvent();\r\n this.rawSpread.suspendPaint();\r\n\r\n // 自動調整(遅い)\r\n for (let i = 0; i < rowCount; i++) {\r\n //this.rawSheet.autoFitRow(i);\r\n //高速化対応版\r\n this.autoFitRowForWordWrap(i);\r\n }\r\n\r\n // spread描画、イベント再開\r\n this.rawSpread.resumePaint();\r\n this.rawSpread.resumeEvent();\r\n this.rawSpread.resumeCalcService();\r\n\r\n }\r\n\r\n /**\r\n *\r\n * @param sheet\r\n */\r\n setFilter() {\r\n\r\n // フィルタ設定 データが全部でそろってから設定する\r\n //後でなくても良い(データ入れた後は再設定)\r\n //#2070 【不具合】行移動をすると、列フィルタが列ヘッダから外れる\r\n //this.filter = new Spread.Sheets.Filter.HideRowFilter(new Spread.Sheets.Range(0, -1, this.rawSheet.getRowCount(), -1));\r\n //-1の全カラム指定に問題があるようだが、全域だと問題ないらしい\r\n this.filter = new Spread.Sheets.Filter.HideRowFilter(new Spread.Sheets.Range(-1, -1, -1, -1));\r\n\r\n let option = {\r\n // sortByValueを非表示にする。\r\n sortByValue: true,\r\n // 色で並べ替え\r\n sortByColor: false,\r\n // 色フィルター\r\n filterByColor: true,\r\n // テキストフィルター\r\n filterByValue: true,\r\n // 選択肢リスト\r\n listFilterArea: true\r\n };\r\n\r\n _.assign(option, this.filterOptions);\r\n\r\n //#5736 【保守:A】0285_SpreadJSのソート機能実行後の保存によるデータ不整合発生について\r\n //インポート時は並び替えを一律無効とする\r\n if (this.mode == SPIRIT.constant.GridMode.IMPORT) {\r\n // sortByValueを非表示にする。\r\n option.sortByValue = false;\r\n }\r\n\r\n this.filter.filterDialogVisibleInfo(option);\r\n\r\n // フィルタ設定 データが全部でそろってから設定する(本当か?なにかいいやり方はないのか、rengeを変更するとか...)\r\n this.rawSheet.rowFilter(this.filter);\r\n\r\n }\r\n\r\n /**\r\n * DataSourcのloadを通知する\r\n * 見た目の成型に用いる\r\n * setGridDataメソッドの最後に発火する\r\n * 適宜オーバーライドすること\r\n * @override\r\n */\r\n loadCompleted() {\r\n //overridable method!\r\n }\r\n\r\n\r\n //1325 【不具合】行移動をし、Undoすると予期せぬ結果になる\r\n protected dragDropInfomation = {\r\n isDragDropBlock: false,\r\n isRowDrag: false,\r\n prevFromTags: [],\r\n prevToTags: [],\r\n //[DnD] copy:false insert : false -- :移動 (RangeChanged [from]+[to] 2回)\r\n // from側:ds及び、Tagをブランクにする必要あり\r\n // to側:dsに、Tagを_.defaultで保管(画面上に無いカラムアイテムが(fromに置いてけぼりな為))\r\n //「Ctrl+DnD」 copy:true insert : false -- :コピー RangeChanged [to] 1回)\r\n // to側:from側のTagがコピーされてしまう(元がなくなる)Tagをもとに戻す必要あり(※DragDropBlockでTo側のRowのTagを保管しておく必要がある)\r\n //「Shift+DnD」 copy:false insert : true -- :移動挿入 (RowChanged [addRows]+[deleteRows] の2回)\r\n // 正常。逆になにもしてはいけない\r\n //「Shift+Ctrl+DnD」 copy:true insert : true -- :コピー挿入(RowChanged [addRows] の1回)\r\n // addRowsのTagを初期化(dsをassginしたもの)元の情報もコピーされてしまう為、dsにはblankを_.defaultしたものをセット(画面項目しかコピーされない為)\r\n argsDnD: null\r\n };\r\n\r\n /**\r\n *\r\n * @param sheet\r\n */\r\n setEvents(sheet: Spread.Sheets.Worksheet) {\r\n\r\n\r\n // シート名変更時のイベント\r\n sheet.bind(Spread.Sheets.Events.SheetNameChanging, this, (sender, args) => {\r\n let _this = sender.data;\r\n let sheet = args.sheet;\r\n //【SpreadJSグリッド操作】\r\n // シート名変更はできないようにする\r\n args.cancel = true;\r\n });\r\n\r\n //#5736 【保守:C】0285_SpreadJSのソート機能実行後の保存によるデータ不整合発生について\r\n sheet.bind(Spread.Sheets.Events.RangeSorting, (e, args) => {\r\n //ソート実行通知\r\n this.onNotifySorting(this, args);\r\n });\r\n\r\n //セルのD&D時に呼ばれるイベント\r\n sheet.bind(Spread.Sheets.Events.DragDropBlock, this, (sender, args) => {\r\n console.log('DragDropBlock');\r\n let _this = sender.data;\r\n let sheet = args.sheet;\r\n let isRowDrag = (args.fromCol == -1 && args.toCol == -1);\r\n\r\n let prevFromTags: { row: number, tag: any }[] = [];\r\n let prevToTags: { row: number, tag: any }[] = [];\r\n\r\n //行のソレの場合\r\n //変更される前のTag(originSource)を保管しておく\r\n if (isRowDrag) {\r\n //From側\r\n for (let row = args.fromRow; row < args.rowCount + args.fromRow; row++) {\r\n prevFromTags.push({ row: row, tag: _.cloneDeep(this.getTagRowItem(row)) });\r\n }\r\n //to側\r\n for (let row = args.toRow; row < args.rowCount + args.toRow; row++) {\r\n prevToTags.push({ row: row, tag: _.cloneDeep(this.getTagRowItem(row)) });\r\n }\r\n }\r\n\r\n //1325 【不具合】行移動をし、Undoすると予期せぬ結果になる\r\n this.dragDropInfomation = {\r\n isDragDropBlock: true,\r\n isRowDrag: isRowDrag,\r\n argsDnD: args,\r\n prevFromTags: prevFromTags,\r\n prevToTags: prevToTags,\r\n }\r\n\r\n //section列を含む場合と横への移動は禁止(縦軸のみ移動可能)\r\n if ((args.fromCol == -1 || args.fromCol == args.toCol) && args.fromCol != 0) {\r\n args.cancel = false;\r\n } else {\r\n args.cancel = true;\r\n }\r\n });\r\n\r\n\r\n /** \r\n * ユーザーがセル範囲のドラッグ&ドロップを完了したときに発生します。\r\n * クリップボードコピーと動きが違う...\r\n * クリップボードコピー ・・・ コピー対象行にTagデータがある場合、張り付けた際に「上書きしない」\r\n * DnDコピー ・・・ コピー対象行にTagデータがある場合、張り付けた際に「上書きする」\r\n */\r\n sheet.bind(Spread.Sheets.Events.DragDropBlockCompleted, this, (sender, args) => {\r\n console.log('DragDropBlockCompleted');\r\n //console.log('copy:' + args.copy + ' insert : ' + args.insert);\r\n\r\n //[DnD] copy:false insert : false -- :移動 (RangeChanged [from]+[to] 2回)\r\n // from側:ds及び、Tagをブランクにする必要あり\r\n // to側:dsに、Tagを_.defaultで保管(画面上に無いカラムアイテムが(fromに置いてけぼりな為))\r\n //「Ctrl+DnD」 copy:true insert : false -- :コピー RangeChanged [to] 1回)\r\n // to側:from側のTagがコピーされてしまう(元がなくなる、Fromの情報が一覧上重複する)Tagを元に戻す必要あり(※DragDropBlockでTo側のRowのTagを保管しておく必要がある)\r\n //「Shift+DnD」 copy:false insert : true -- :移動挿入 (RowChanged [addRows]+[deleteRows] の2回)\r\n // 正常。逆になにもしてはいけない\r\n //「Shift+Ctrl+DnD」 copy:true insert : true -- :コピー挿入(RowChanged [addRows] の1回)\r\n // addRowsのTagを初期化(dsをassginしたもの)元の情報もコピーされてしまう為、dsにはblankを_.defaultしたものをセット(画面項目しかコピーされない為)\r\n\r\n let _this = sender.data;\r\n let sheet = args.sheet;\r\n\r\n //行の移動かどうか\r\n let isRowDrag = (args.fromCol == -1 && args.toCol == -1);\r\n let cellRange: { row, rowCount, col, colCount };\r\n\r\n //※SelectionChangeに全て任せる(DnDの場合はFrom側とTo側で計2回の「SelectionChange」が走る\r\n\r\n //行選択移動・コピー\r\n if (isRowDrag) {\r\n\r\n //※[DnD] -- : 移動 (RangeChanged[from] + [to] 2回)\r\n //copy: false insert: false\r\n if (args.copy === false && args.insert === false) {\r\n ////from側:ds及び、Tagをブランクにする必要あり\r\n for (let row = args.fromRow; row < args.rowCount + args.fromRow; row++) {\r\n //BlankRowDataでDataSourceも更新する\r\n sheet.getDataSource()[row] = this.BlankRowData;\r\n //TagItemを生成し、セットする(nullなので)\r\n this.setOriginSourceItem(row, this.BlankRowData);\r\n }\r\n\r\n //to側:dsに、Tagを_.defaultで保管(画面上に無いカラムアイテムが(fromに置いてけぼりな為))\r\n for (let row = args.toRow; row < args.rowCount + args.toRow; row++) {\r\n //※dsの値は最終使用しない項目なので、目をつぶる(無視。放置)(方式を策定する面倒である)\r\n //productItemは担保できるので良しとする\r\n //_.defaultsDeep(sheet.getDataSource()[row], this.BlankRowData);//取得時の値を保持\r\n }\r\n }\r\n\r\n //※「Ctrl+DnD」-- : コピー RangeChanged[to] 1回)\r\n //copy: true insert: false \r\n if (args.copy === true && args.insert === false) {\r\n //to側:from側のTagがコピーされてしまう(元がなくなる、Fromの情報が一覧上重複する)Tagを元に戻す必要あり(※DragDropBlockでTo側のRowのTagを保管しておく必要がある)\r\n for (let row = args.toRow; row < args.rowCount + args.toRow; row++) {\r\n //移動前の情報から抽出\r\n var prev = this.dragDropInfomation.prevToTags.find(v => { return v.row === row; });\r\n //※移動元のTagとコピーされたTagで同一参照な為、参照を切る必要がある為、Tagの中身をごっそり入れ替える\r\n this.setTagRowItem(row, prev?.tag);\r\n }\r\n }\r\n\r\n //※「Shift+DnD」-- : 移動挿入(RowChanged[addRows] + [deleteRows] の2回)\r\n //copy: false insert: true \r\n if (args.copy === false && args.insert === true) {\r\n //正常。逆になにもしてはいけない\r\n //noop\r\n }\r\n\r\n //※「Shift+Ctrl+DnD」-- :コピー挿入(RowChanged [addRows] の1回)\r\n //copy: true insert: true \r\n if (args.copy === true && args.insert === true) {\r\n // toのTagを初期化(dsをassginしたもの)元の情報もコピーされてしまう為、dsにはblankを_.defaultしたものをセット(画面項目しかコピーされない為)\r\n for (let row = args.toRow; row < args.rowCount + args.toRow; row++) {\r\n _.defaultsDeep(sheet.getDataSource()[row], this.BlankRowData);//取得時の値を保持\r\n //TagItemを生成し、セットする(nullなので)\r\n this.setOriginSourceItem(row, this.BlankRowData);\r\n }\r\n }\r\n\r\n cellRange = {\r\n row: args.toRow,\r\n rowCount: args.rowCount,\r\n col: 0,\r\n colCount: this.columns.length,\r\n }\r\n //変更確定通知\r\n this.valueChangedRange(cellRange, '');\r\n\r\n } else {\r\n //セル値の移動\r\n //この判断は特に必要無い\r\n //CtrKey押下状態で値コピー\r\n //if (args.copy) {\r\n //} else {\r\n //}\r\n //debugger;\r\n cellRange = {\r\n row: args.toRow,\r\n rowCount: args.rowCount,\r\n col: args.toCol,\r\n colCount: args.colCount,\r\n }\r\n this.valueChangedRange(cellRange, '');\r\n }\r\n\r\n\r\n //1325 【不具合】行移動をし、Undoすると予期せぬ結果になる\r\n this.dragDropInfomation = {\r\n isDragDropBlock: false,\r\n isRowDrag: false,\r\n argsDnD: null,\r\n prevFromTags: null,\r\n prevToTags: null\r\n }\r\n //\r\n //this.valueChangedRange(cellRange, '');\r\n });\r\n\r\n\r\n\r\n\r\n //******************Clipboard******************\r\n //クリップボード貼り付け時のイベント\r\n sheet.bind(Spread.Sheets.Events.ClipboardPasting, this, (sender, args) => {\r\n console.log('ClipboardPasting');\r\n let _this = sender.data;\r\n let sheet = args.sheet;\r\n\r\n //領域以上(columnn)のデータを張り付けようとした場合無効\r\n //visibleなくすつもりです\r\n const visColCount = this.columns.filter(s => !(s.visible === false)).length;\r\n //const visColCount = this.columns.length;\r\n\r\n //貼り付け対象の最大列インデックス\r\n const tryPasteMaxColIndex = args.cellRange.col + args.cellRange.colCount;\r\n if (tryPasteMaxColIndex > visColCount) {\r\n\r\n //「allowExtendPasteRange: false」な場合必要ない処理(発生しないだろう)\r\n //[SpreadJSのシートレベルバインディング時に、行をコピー後「コピーしたセルを挿入」を行ったところ、値が挿入されません。]\r\n //の問い合わせの回答結果でallowExtendPasteRange: trueとなったようだ。現状「コピーしたセルを挿入」自体使用しないので、allowExtendPasteRange: trueでも良いかも(動作に問題は無かった)\r\n let msg = 'コピー領域と貼り付け領域のサイズが違うため、これをここに張り付けることができません。'\r\n //msg += '貼り付け領域内のいづれか1つのセルを選ぶか、または同じサイズの領域を選び、もう一度張り付けてください。'\r\n SPIRIT.notify.warn(msg, { position: 'bottom right' });\r\n args.cancel = true;\r\n return;\r\n }\r\n\r\n // 列全体のコピーペーストを無効化\r\n if (args.cellRange.row == -1 && args.cellRange.rowCount == -1) {\r\n args.cancel = true;\r\n return;\r\n }\r\n\r\n // 「区分」列だけのコピペは禁止\r\n if (args.cellRange.colCount === 1) {\r\n let coldef = this.getColumnDef(args.cellRange.col);\r\n if (coldef.name === WorkSheetBase.KEY_SectionType || coldef.name === WorkSheetBase.KEY_ImportType) {\r\n args.cancel = true;\r\n return;\r\n }\r\n }\r\n });\r\n\r\n // クリップボード貼り付け時のイベント\r\n sheet.bind(Spread.Sheets.Events.ClipboardPasted, this, (sender, args) => {\r\n console.log('ClipboardPasted');\r\n let _this = sender.data;\r\n let sheet = args.sheet;\r\n let range: { row, rowCount, col, colCount };\r\n\r\n //※SelectionChangeに全て任せる\r\n\r\n ////行コピー\r\n //if (args.cellRange.col == -1 && args.cellRange.colCount == -1) {\r\n // //※下記はあえてやらない。既存行へのコピーをした場合が少し問題...\r\n // //コピー元の行を「既存行」に張り付けた段階で、\r\n // //「新規」行ととらえるか、はたまた、単純に値の上書き「変更」ととらえるかである\r\n // //ここは「更新」と捉えて、Tag(元データ)はそのままにしておく...\r\n // //※DnDコピーを動きが違います。\r\n // //ここは保険 RangeChangeに移動\r\n // ////【SpreadJSグリッド操作】\r\n // //for (let row = args.cellRange.row; row < args.cellRange.rowCount + args.cellRange.row; row++) {\r\n // // //console.log(this.getOriginSourceItem(row));\r\n // // //シートの最終行等で自動追加された行はTagにDataが存在しないのでデータが無い場合は初期データを入れる\r\n // // if (_.isNil(this.getOriginSourceItem(row))) {\r\n // // ////isBlankがそれに相当するみたい、なのでBlankRowDataでDataSourceも更新する\r\n // // //sheet.getDataSource()[row] = this.BlankRowData;\r\n // // ////TagItemを生成し、セットする(nullなので)\r\n // // //this.setTagSourceItem(row, this.BlankRowData);\r\n // // //他とは違う点としては、この段階としてDataSourceには値がペーストしたデータが既に入っている\r\n // // //よって足りない項目を追加しなおす\r\n // // _.defaultsDeep(sheet.getDataSource()[row], this.BlankRowData);//取得時の値を保持\r\n // // //TagItemを生成し、セットする(nullなので)\r\n // // this.setOriginSourceItem(row, this.BlankRowData);\r\n // // //今現在の値を、直近のデータとする\r\n // // this.savePreviewSourceItem(row);\r\n // // }\r\n // //}\r\n // range = {\r\n // row: args.cellRange.row,\r\n // rowCount: args.cellRange.rowCount,\r\n // col: 0,\r\n // colCount: this.columns.length,\r\n // }\r\n //} else {\r\n // //範囲コピー\r\n // //for (let row = args.cellRange.row; row < args.cellRange.row + args.cellRange.rowCount; row++) {\r\n // // //let rowData = sheet.getDataItem(i);\r\n // // //イベント発火\r\n // // //_this.valueChanged(_this, args.row, args.col, args.pasteData.text);\r\n // // //_this.valueChanged(args.row, args.col, args.pasteData.text);\r\n // // for (let col = args.cellRange.col; col < args.cellRange.col + args.cellRange.colCount; col++) {\r\n // // //TODO pasteDataも展開すべきかも!\r\n // // _this.valueChanged(row, col, args.pasteData.text);\r\n // // }\r\n // //}\r\n\r\n // range = args.cellRange;\r\n //}\r\n\r\n //this.valueChangedRange(range, args.pasteData.text);\r\n });\r\n\r\n\r\n\r\n\r\n //******************Editing******************\r\n // 「区分」の場合入力させないようにする\r\n sheet.bind(Spread.Sheets.Events.EditStarting, this, (sender, args) => {\r\n console.log(\"EditStarting ------ \");\r\n\r\n //SectionTypeはイベントキャンセル\r\n //if (args.col == 0) {\r\n let col = this.getColumnDef(args.col);\r\n if (col.name === WorkSheetBase.KEY_SectionType || col.name === WorkSheetBase.KEY_ImportType) {\r\n args.cancel = true;\r\n //} else {\r\n // this.editingValue = args.sheet.getValue(args.row, args.col);\r\n }\r\n\r\n //#1238 シート保護、セルロック方式に変更\r\n //【独自readonly(ロック)方式】\r\n ////readonlyはキャンセル\r\n //if (col.readonly) {\r\n // args.cancel = true;\r\n //}\r\n\r\n\r\n });\r\n\r\n // 値変更時のイベント\r\n sheet.bind(Spread.Sheets.Events.ValueChanged, this, (sender, args) => {\r\n\r\n console.log('ValueChanged');\r\n //SectionTypeは変更管理しない\r\n let col = this.getColumnDef(args.col);\r\n if (col.name === WorkSheetBase.KEY_SectionType || col.name === WorkSheetBase.KEY_ImportType) { return; }\r\n // 入力値が入力前のものと異なる場合「変更」、「追加」の文言を追加\r\n if (args.newValue != args.oldValue) {\r\n\r\n //値変更処理\r\n this.valueChanged(args.row, args.col, args.newValue);\r\n }\r\n });\r\n\r\n\r\n //******************RangeChange******************\r\n // deleteキー押下時のイベント\r\n sheet.bind(Spread.Sheets.Events.RangeChanged, this, (sender, args) => {\r\n\r\n var getAction = function () {\r\n if (args.action == Spread.Sheets.RangeChangedAction.dragDrop) {\r\n return 'dragDrop';\r\n } else if (args.action == Spread.Sheets.RangeChangedAction.dragFill) {\r\n return 'dragFill';\r\n } else if (args.action == Spread.Sheets.RangeChangedAction.clear) {\r\n return 'clear';\r\n } else if (args.action == Spread.Sheets.RangeChangedAction.paste) {\r\n return 'paste';\r\n } else if (args.action == Spread.Sheets.RangeChangedAction.sort) {\r\n return 'sort';\r\n } else if (args.action == Spread.Sheets.RangeChangedAction.setArrayFormula) {\r\n return 'setArrayFormula';\r\n } else if (args.action == Spread.Sheets.RangeChangedAction.evaluateFormula) {\r\n return 'evaluateFormula';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n console.log('RangeChanged --' + getAction() + ':' + args.row);\r\n\r\n let _this = sender.data;\r\n let sheet = args.sheet;\r\n\r\n let cellRange: { row, rowCount, col, colCount };\r\n cellRange = {\r\n row: args.row,\r\n rowCount: args.rowCount,\r\n col: args.col,\r\n colCount: args.colCount,\r\n }\r\n\r\n\r\n // deleteキーが押下されたときのイベント\r\n if (args.action == Spread.Sheets.RangeChangedAction.clear) {\r\n //値変更処理 \r\n this.valueChangedRange(cellRange, '');\r\n }\r\n\r\n // pasteされたときキーが押下されたときのイベント\r\n if (args.action == Spread.Sheets.RangeChangedAction.paste) {\r\n\r\n //「ClipboardPasted」でも同じことをしているが、コッチが先に入る\r\n //行コピー\r\n //if (args.col == -1 && args.colCount == -1) {\r\n //「ClipboardPasted」でも同じことをしているが、コッチが先に入る\r\n for (let row = args.row; row < args.rowCount + args.row; row++) {\r\n //単純なDnDだけの移動とshift+DnDでは切り分ける為値が存在しない!!\r\n //shift+DnDでは、移動では無く「入れ替え」。その場合tagのsourceも残っているので、ここで入れてしまうと飛んでしまう。\r\n\r\n //TagにDataが存在しないを時を単純なDnD移動とみなし初期化する\r\n if (_.isNil(this.getOriginSourceItem(row))) {\r\n //他とは違う点としては、この段階としてDataSourceには値がペーストしたデータが既に入っている\r\n //よって足りない項目を追加しなおす\r\n _.defaultsDeep(sheet.getDataSource()[row], this.BlankRowData);//取得時の値を保持\r\n //新規行なので、既に入っているdataSourceとの差異を出すためにOriginはBlankとする\r\n this.setOriginSourceItem(row, this.BlankRowData);\r\n\r\n\r\n //※↓をここに入れると、readonlyなセルに対して、直近の値が入る為、コピー出来たように見えてしまう\r\n //対象のreadonlyセルの内容にもよると思うが、コピー出来たほうが良いケースもある気がする\r\n //現状はコメントアウト\r\n ////今現在の値を、直近のデータとする\r\n //this.savePreviewSourceItem(row);\r\n\r\n\r\n }\r\n }\r\n //値変更処理 \r\n this.valueChangedRange(cellRange, '');\r\n //}\r\n }\r\n\r\n //DropBlockComplateで行う\r\n //// dragDropされたときキーが押下されたときのイベント\r\n //if (args.action == Spread.Sheets.RangeChangedAction.dragDrop) {\r\n // //if (args.col == -1 && args.colCount == -1) {\r\n // //「ClipboardPasted」でも同じことをしているが、コッチが先に入る\r\n // for (let row = args.row; row < args.rowCount + args.row; row++) {\r\n // //TagにDataが存在しないを時を単純なDnD移動とみなし初期化する\r\n // if (_.isNil(this.getOriginSourceItem(row))) {\r\n // //他とは違う点としては、この段階としてDataSourceには値がペーストしたデータが既に入っている\r\n // //よって足りない項目を追加しなおす\r\n // _.defaultsDeep(sheet.getDataSource()[row], this.BlankRowData);//取得時の値を保持\r\n // //新規行なので、既に入っているdataSourceとの差異を出すためにOriginはBlankとする\r\n // this.setOriginSourceItem(row, this.BlankRowData);\r\n // }\r\n // }\r\n // //値変更処理 \r\n // this.valueChangedRange(cellRange, '');\r\n // //}\r\n //}\r\n\r\n\r\n //UndoRedo\r\n if (args.isUndo) {\r\n //この場合はおもにステータスをもとに戻す\r\n //値変更処理()\r\n this.valueChangedRange(cellRange, '');\r\n }\r\n\r\n });\r\n\r\n\r\n //******************RowChanged******************\r\n\r\n //行追加、行削除、Tagのセットなど\r\n sheet.bind(Spread.Sheets.Events.RowChanged, this, (sender, args) => {\r\n console.log(\"RowChanged ------ \" + args.propertyName);\r\n //console.log('args.row : ' + args.row);\r\n\r\n\r\n let _this = sender.data;\r\n let sheet = args.sheet;\r\n\r\n //行追加の場合\r\n if (args.propertyName === 'addRows') {\r\n // 下記の以外にも、複数行選択からの移動にて、もともとあった行のTAGがundefinedになる。\r\n\r\n ////console.log(this.getTagSourceItem(args.row))\r\n ////この場合は、spreadが用意したDataItemをもとにTagItemを生成し、セットする(nullなので)\r\n // this.setTagSourceItem(args.row, _.cloneDeep(sheet.getDataItem(args.row)));\r\n //spreadにバグがある。\r\n //「最終列の値がFalseの場合、コピーしたセルのシフト挿入動作が不正になる」\r\n //https://dev.grapecity.co.jp/support/kb/detail.asp?id=86287\r\n ////isBlankがそれに相当するみたい、なのでBlankRowDataでDataSourceも更新する\r\n\r\n //Shift+DnDでの場合、恐らくspreadが内部処理として新規行を追加している様である\r\n //とくに、不必要そうだし、入れない方が良さそうなので、入れない\r\n\r\n //Undo以外で単純な行追加のみ空データを作成する\r\n if (!this.dragDropInfomation.isDragDropBlock && !args.isUndo) {\r\n\r\n //複数行対応\r\n for (let row = args.row; row < args.row + args.count; row++) {\r\n //isBlankがそれに相当するみたい、なのでBlankRowDataでDataSourceも更新する\r\n sheet.getDataSource()[row] = this.BlankRowData;\r\n //TagItemを生成し、セットする(nullなので)\r\n this.setOriginSourceItem(row, this.BlankRowData);\r\n //行を追加しただけで、変更とみなすか否か\r\n //値変更処理\r\n this.valueChanged(row, -1, null);\r\n }\r\n }\r\n }\r\n\r\n //1266\r\n if (args.propertyName === 'deleteRows') {\r\n //#2071 \r\n //恐らくspreadjsがUnDoの場合は、全行に影響が加わるらしい、よってargs.countが行数になる\r\n //その為、args.row() + args.countではオーバーフローを起こす、その際に例外が発生している様である\r\n //addRows同様、Shift+DnDでの場合、恐らくspreadが内部処理として新規行を追加している様である\r\n //とくに、不必要そうだし、入れない方が良さそうなので、入れない\r\n //Undo以外で単純な行追加のみ空データを作成する\r\n if (!args.isUndo) {\r\n //行数の補正\r\n let count = args.count;\r\n let cellRange = {\r\n row: args.row,\r\n rowCount: count,\r\n col: -1,\r\n colCount: 0,\r\n }\r\n this.valueChangedRange(cellRange, '');\r\n }\r\n }\r\n\r\n if (args.propertyName === 'tag') {\r\n //console.log('tag', this.getTagSourceItem(args.row));\r\n }\r\n\r\n });\r\n\r\n\r\n //TAGデバッグ用\r\n //sheet.bind(Spread.Sheets.Events.CellClick, (sender, args) => {\r\n // let selections = sheet.getSelections();\r\n // let sel = selections[0], row = sel.row;\r\n // //console.log('[debug] ' + sel.row + ' ---------------------------------------')\r\n // //console.log('origin : ', this.getOriginSourceItem(row));\r\n // //console.log('preveiw : ', this.getPreviewSourceItem(row));\r\n // //console.log('raw : ', this.rawSheet.getDataItem(row));\r\n // //console.log('product : ', this.getDataItem(row));\r\n // if (args.sheetArea === Spread.Sheets.SheetArea.rowHeader) {\r\n // console.log('[debug CellClick] ' + args.row + ' ---------------------------------------')\r\n // console.log('origin : ', this.getOriginSourceItem(row));\r\n // console.log('raw : ', this.rawSheet.getDataItem(row));\r\n // console.log('product : ', this.getDataItem(row));\r\n // }\r\n //});\r\n\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param row\r\n * @param col\r\n * @param immediate 現在は機能しません\r\n */\r\n private valueChangedProcess(row: number, col: number, immediate?: boolean) {\r\n\r\n let column = this.getColumnDef(col);\r\n\r\n if (!column) { return; }\r\n //getDataItemで取得すると、getDataSourceとの参照切れるみたいなので、再度セットする必要がある\r\n //let rowData = this.rawSheet.getDataItem(row);\r\n //let rowData = this.rawSheet.getDataSource()[row];\r\n //let originData = this.getOriginSourceItem(row);\r\n\r\n\r\n //#1238 シート保護、セルロック方式に変更\r\n //【独自readonly(ロック)方式】\r\n //let previewData = this.getPreviewSourceItem(row);\r\n //if (!previewData) {\r\n // //前回履歴が無い場合、初期データを前回履歴とする\r\n // previewData = _.cloneDeep(this.getOriginSourceItem(row));\r\n //}\r\n\r\n //編集タイプによる個別の処理\r\n if (column.editor instanceof Spread.Sheets.Style) {\r\n //null;\r\n\r\n //下記一旦ペンディング\r\n\r\n //var colStyle = this.getColumnStyle(col, this.rawSheet);\r\n ////現在表示(入力)されたValueを取得\r\n //let value = this.rawSheet.getValue(row, col);\r\n ////現在表示(入力)されたTextを取得\r\n //let text = this.rawSheet.getText(row, col);\r\n ////日付\r\n //if (colStyle.formatter === \"yyyy/MM/dd\") {\r\n // //日付コントロールは数値を直接入力されると、それなりに解釈してしまうことがある\r\n // //一度'あ'などの文字を入力したあと、数値を入れると本来はDate型が入る'value'に数値、'Text'に日付がはいってしまうため\r\n // //再度入力しようとした際に、一旦数値が表示されてしまう(リクエストする際にもおかしくなりそう)\r\n // if (_.isSafeInteger(value)) {\r\n // this.rawSpread.suspendEvent();\r\n // ////なので、Value値をDateにキャストしてしまう\r\n // // this.rawSheet.setValue(row, col, new Date(value));//これだと/OADate形式にならない(spreadが内部で,net用の日付形式に変換してるっぽい)\r\n // //なので、Text値をいれてしまう(その後勝手に)\r\n // this.rawSheet.setValue(row, col, text);\r\n // this.rawSpread.resumeEvent();\r\n // }\r\n //}\r\n\r\n\r\n } else if (column.editor instanceof Spread.Sheets.CellTypes.Base) {\r\n //廃止!!最後(当オブジェクトのgetDataSourceで帳尻を合わせる)\r\n ////※過剰実装?最終保存前に実施すればよいかも!!\r\n ////関連項目のDataSource反映\r\n //this.applyRelatedTextTarget(rowData, row, col);\r\n }\r\n\r\n //#2033 でコミット仕様とした、本来の恒久対応(hh:mmやMM/DDが対応出来ない為却下)\r\n //if (this.isDateTimeCell(row, col)) {\r\n // //現在表示(入力)されたValueを取得\r\n // let value = this.rawSheet.getValue(row, col);\r\n // let OADatevalue = this.rawSheet.getDataItem(row)[column.name];//OAData形式文字列(データソースには先で入っている)\r\n // //現在表示(入力)されたTextを取得\r\n // let text = this.rawSheet.getText(row, col);\r\n // //日付コントロールは数値を直接入力されると、それなりに解釈してしまうことがある\r\n // //一度'あ'などの文字を入力したあと、数値を入れると本来はDate型が入る'value'に数値、'Text'に日付がはいってしまうため\r\n // //再度入力しようとした際に、一旦数値が表示されてしまう(リクエストする際にもおかしくなりそう)\r\n // if (SPIRIT.util.date.isDate(text)) {\r\n // this.rawSpread.suspendEvent();\r\n // //なので、Value値をDateにキャストしてしまう\r\n // this.rawSheet.setValue(row, col, new Date(text));//これだと/OADate形式にならない(spreadが内部で,net用の日付形式に変換してるっぽい)\r\n // this.rawSpread.resumeEvent();\r\n // }\r\n //}\r\n\r\n\r\n //#1258\r\n //WordWrap:trueのカラムの場合\r\n if (column.style?.wordWrap === true) {\r\n //自動調整\r\n //#4309\r\n //this.rawSheet.autoFitRow(row);\r\n //高速化対応版\r\n this.autoFitRowForWordWrap(row);\r\n }\r\n\r\n //#1238 シート保護、セルロック方式に変更\r\n //【独自readonly(ロック)方式】\r\n ////readonly(消さないは出来ないので、一旦受け入れて元に戻す)\r\n ////一旦消えるが疑似的に戻す\r\n //if (!immediate) {\r\n // if (column.readonly) {\r\n // if (previewData) {\r\n // //値を戻し、変更されなかったこととする\r\n // var prevVal = previewData[column.name] || null;\r\n // this.rawSheet.setValue(row, col, prevVal);\r\n // }\r\n // }\r\n //}\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param sender\r\n * @param args\r\n */\r\n protected updateSectionTypeColumn(row: number) {\r\n\r\n // 変更管理列がある場合\r\n if (this.shouldSectionTypeColumn) {\r\n\r\n //※なぜだか下の旧式の区分名称設定ロジックだと、UndoRedoで反応しないが、\r\n //その下の、ロジックだと、うまいこと動く...(なぜか理解できない)\r\n\r\n ////let rowData = this.rawSheet.getDataSource()[row];\r\n //let rowData = this.getTagSourceItem(row);\r\n ////isBlankの定義が存在しない(spreadのオペレーション当で自動で追加された行など)\r\n //if (_.isNil(rowData[WorkSheetBase.KEY_isBlank]) || rowData[WorkSheetBase.KEY_isBlank]) {\r\n // //this.rawSheet.setText(row, 0, SPIRIT.codes.SectionType.ADDED.value);\r\n // this.rawSheet.setValue(row, 0, SPIRIT.codes.SectionType.ADDED.value);\r\n //} else {\r\n // //this.rawSheet.setText(row, 0, SPIRIT.codes.SectionType.EDITED.value);\r\n // this.rawSheet.setValue(row, 0, SPIRIT.codes.SectionType.EDITED.value);\r\n //}\r\n\r\n //タグ上の元データとsheetのRawを比較する\r\n let isRowEdited = this.checkRowEdited(row);\r\n let rowData = this.getOriginSourceItem(row);\r\n\r\n //#2071 問題はここ、恐らくundo処理中で\r\n //NULLだと落ちるので返す\r\n if (!rowData) { return null; }\r\n\r\n let col = this.getColumnIndex(WorkSheetBase.KEY_SectionType);\r\n if (isRowEdited) {\r\n //isBlankの定義が存在しない(spreadのオペレーション当で自動で追加された行など)\r\n if (_.isNil(rowData[WorkSheetBase.KEY_isBlank]) || rowData[WorkSheetBase.KEY_isBlank]) {\r\n //this.rawSheet.setText(row, 0, SPIRIT.codes.SectionType.ADDED.value);\r\n this.rawSheet.setValue(row, col, SPIRIT.codes.SectionType.ADDED.value);\r\n } else {\r\n //this.rawSheet.setText(row, 0, SPIRIT.codes.SectionType.EDITED.value);\r\n this.rawSheet.setValue(row, col, SPIRIT.codes.SectionType.EDITED.value);\r\n }\r\n } else {\r\n //変更がない場合\r\n //リセット\r\n //this.rawSheet.setValue(row, col, SPIRIT.codes.SectionType.NONE.value);\r\n this.rawSheet.setValue(row, col, null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 対象行に変更が加わっているか判断する\r\n * @param row\r\n */\r\n protected checkRowEdited(row: number): boolean {\r\n\r\n //タグ上の元データとsheetのRawを比較する\r\n let tagData = this.getOriginSourceItem(row);\r\n let rowData = this.rawSheet.getDataItem(row);\r\n\r\n //編集行為が行われるのは、column定義されているもののみで比較\r\n //名前のみ取得\r\n let def = _.map(this.columns, 'name');\r\n //変更区分列がある場合は除去する\r\n _.remove(def, (n) => n === WorkSheetBase.KEY_SectionType);\r\n\r\n //対象抽出\r\n let src = _.pick(tagData, def);\r\n let dst = _.pick(rowData, def);\r\n\r\n\r\n //日付項目が入っていると正常に動作しない\r\n //理由:型の違い\r\n //元データはDateオブジェクト(途中で文字列からキャストしている)\r\n //spread上のDatasourceに入っているそれはOADate(microsoft関連の形式)と言われる独特な文字列形式。キャストが出来ない(方法はあるようだが、独特)\r\n //追記:moment.jsなら出来るかもfullcalendarでの使用も検討してるから後で見直す\r\n //srcの項目の内容が日付の場合,dstも日付に変換し比較する、文字列にして比較\r\n _.forIn(src, (value, key) => {\r\n if (_.isDate(value)) {\r\n //src[key] = value.toISOString();\r\n src[key] = value.toLocaleString();//ミリ秒は切り捨て\r\n if (_.has(dst, key)) {\r\n //日付ならそのまま採用し\r\n if (_.isDate(dst[key])) {\r\n //dst[key] = dst[key].toISOString();\r\n dst[key] = dst[key].toLocaleString();//ミリ秒は切り捨て\r\n } else {\r\n //AODate型なのでキャストが出来ない(moment.jsなら...)\r\n //if (dst[key]) {\r\n // dst[key] = new Date(dst[key]);\r\n //}\r\n //日付で無い場合は\r\n //画面のテキストから取得\r\n let colidx = _.findIndex(this.columns, (o) => o.name === key);\r\n if (colidx > -1) {\r\n let text = this.rawSheet.getText(row, colidx);\r\n //dst[key] = (new Date(text)).toISOString();\r\n dst[key] = (new Date(text)).toLocaleString();//ミリ秒は切り捨て\r\n }\r\n }\r\n }\r\n }\r\n });\r\n //タグ上の元データとsheetのRawを比較する\r\n //変更差分があれば変更\r\n //let isEdited = !_.eq(src, dst);//instancy\r\n\r\n //var dif = _.omitBy(src, (v, k) => dst[k] === v);\r\n //let isEdited = !_.isEmpty(dif);\r\n //var dif1 = _.omitBy(dst, (v, k) => src[k] === v);\r\n //console.log(dif);\r\n //console.log(dif1);\r\n\r\n //.isEqualたまにうまく動かない?(まったく同じなのに...)\r\n let isEdited = !_.isEqual(src, dst);\r\n return isEdited;\r\n }\r\n\r\n /**\r\n * \r\n * @param row\r\n * @param col\r\n * @param value\r\n * @param immediate 現在は機能しません\r\n */\r\n protected valueChanged(row: number, col: number, value, immediate?: boolean) {\r\n\r\n try {\r\n //内部的にValueを変更してしまうため。SpreadのイベントvalueChangedが走ってしまうため、イベントのsuspendを行う\r\n this.rawSpread.suspendEvent();\r\n //DisplayNameがとれる?なんかおかしい\r\n //let displayName = sheet.getDataColumnName(col);\r\n //let columnName = _this.columns.find(col => col.displayName === displayName).name;\r\n\r\n //colが-1の場合もある(行削除)\r\n let column = this.getColumnDef(col);\r\n let columnName = column?.name || null;\r\n\r\n //保険\r\n this.valueChangedProcess(row, col, immediate);\r\n\r\n //#1238 シート保護、セルロック方式に変更\r\n //なので必要では無いが、一旦残しておく\r\n this.savePreviewSourceItem(row);\r\n\r\n //更新区分の更新\r\n this.updateSectionTypeColumn(row);\r\n\r\n //イベント発火\r\n this.fireValueChange(this, row, col, columnName, value);\r\n\r\n } catch (e) {\r\n console.log(e);\r\n } finally {\r\n //イベントハンドルの再開\r\n this.rawSpread.resumeEvent();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param cellRange\r\n * @param value\r\n * @param immediate 現在は機能しません\r\n */\r\n protected valueChangedRange(cellRange, value: any, immediate?: boolean) {\r\n try {\r\n\r\n //内部的にValueを変更してしまうため。SpreadのイベントvalueChangedが走ってしまうため、イベントのsuspendを行う\r\n this.rawSpread.suspendEvent();\r\n //\r\n for (let row = cellRange.row; row < cellRange.row + cellRange.rowCount; row++) {\r\n for (let col = cellRange.col; col < cellRange.col + cellRange.colCount; col++) {\r\n //保険\r\n this.valueChangedProcess(row, col, immediate);\r\n }\r\n\r\n //#1238 シート保護、セルロック方式に変更\r\n //なので必要では無いが、一旦残しておく\r\n this.savePreviewSourceItem(row);\r\n\r\n //更新区分の更新\r\n this.updateSectionTypeColumn(row);\r\n }\r\n\r\n //イベント発火(先頭)\r\n this.fireValueChange(this, cellRange.row, cellRange.col, '', value);\r\n\r\n } catch (e) {\r\n console.log(e);\r\n } finally {\r\n //イベントハンドルの再開\r\n this.rawSpread.resumeEvent();\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param sender\r\n * @param args\r\n */\r\n protected fireValueChange(sheet: WorkSheetBase, row, col, columnName?, value?) {\r\n //this.onValueChange(_this, name, value);\r\n this.onNotifyValueChanged.call(sheet, sheet, columnName, value);\r\n }\r\n\r\n /**\r\n * 行データ取得 (※削除予定)\r\n * shorts cut of getProductItem\r\n * @param row\r\n * @deprecated\r\n */\r\n public getDataItem(row: number): any {\r\n return this.getProductItem(row);\r\n }\r\n\r\n /**\r\n * データ取得 (※削除予定)\r\n * shorts cut of getProductSource\r\n * (※削除予定)\r\n * @deprecated\r\n */\r\n public getDataSource(): any[] {\r\n return this.getProductData();\r\n }\r\n /**\r\n * 正規データの取得\r\n * @param row\r\n */\r\n public getProductItem(row: number): any {\r\n\r\n //①非表示列バージョン(都度新しいItemを生成して作り出す)\r\n ////空の器を用意\r\n //let element = this.DefaultRowData;\r\n ////_.assign(newData, { [WorkSheetBase.KEY_isBlank]: true })\r\n\r\n ////変更管理列が必要か\r\n //if (this.shouldSectionTypeColumn) {\r\n // _.assign(element, { [WorkSheetBase.KEY_SectionType]: null });\r\n //}\r\n ////取込管理列が必要か\r\n //if (this.shouldImportTypeColumn) {\r\n // _.assign(element, { [WorkSheetBase.KEY_ImportType]: null });\r\n //}\r\n\r\n //②タグ保有バージョン(行タグに元データを入れて、最終画面項目で上書きする)\r\n //tag上のデータを取得(この場合tagのデータが変わらないようにCloneする)\r\n let element = _.cloneDeep(this.getOriginSourceItem(row));\r\n\r\n //NULLだと落ちるので返す\r\n if (!element) { return null; }\r\n\r\n //relatedTextTargetに登録されているKey名を退避\r\n //(このカラムの定義がある場合、初回表示時の値が設定されていて、画面状態による最新の情報でないことがある\r\n //(恐らくリクエスト用のプロパティであるケースが多い)\r\n //よって画面の値ではなくrelatedTextTarget指定がある項目(現状、概ねcombobox)のcell.text項目を設定してelementとする\r\n //仮にcolumnの定義にあっても、無くても、上記のrelatedTextTarget指定がある項目のrelatedTextTargetの名称でプロパティを生成する\r\n let relatedTextTargetNames = _.map(this.columns, 'relatedTextTarget')\r\n relatedTextTargetNames = _.reject(relatedTextTargetNames, function (o) { return _.isNil(o); });\r\n //定義上存在しないようなら、追加する\r\n //relatedTextTargetNames.forEach(r => { _.assign(element, { [r]: null }); });//取得時の値をリセット\r\n relatedTextTargetNames.forEach(r => { _.defaults(element, { [r]: null }); });//取得時の値を保持\r\n\r\n\r\n let colCount = this.getColumnCount()\r\n //要するにカラム定義したItemしか更新しない!!\r\n for (let col = 0; col < colCount; col++) {\r\n let column = this.columns[col];\r\n let columnName = column.name;\r\n\r\n //relatedTextTargetNames内に存在している、実カラムはスキップ\r\n if (relatedTextTargetNames.includes(columnName)) { continue; }\r\n //現在表示(入力)されたValueを取得\r\n let value = this.rawSheet.getValue(row, col);\r\n //現在表示(入力)されたTextを取得\r\n let text = this.rawSheet.getText(row, col);\r\n\r\n\r\n //コンボボックスエディタの振る舞い方\r\n /**重要**** */\r\n //編集可能で、Spread.Sheets.CellTypes.EditorValueType.valueのコンボボックスは、選択リストに存在しない値を入力した際、\r\n //cell.value及びDatasource(DataItem)に入力した値が登録されてしまう。(cell.textにも入ります!こっちは見た目上の値なので、取っておく)\r\n //その為、relatedTargetに入力した値を退避(サーバーリクエスト用)\r\n\r\n //**警告!! コンボ ペースト時の**** */\r\n //column.editor.editable(編集可能)なコンボと、そうでない場合の動作が違う!!!!!!」\r\n //編集可能なコンボの場合、値の貼り付けなどで、選択リストに入っているvalue、Textでマッチしていれば(どちらでも可)\r\n //例:「value: 660, text: 'AAA'」の場合、どっちの値を張り付けても、value:660となり良い感じになる\r\n //--------\r\n //対してcolumn.editor.editable() ==false (編集不可)の場合、張り付けた値がそのままValueとなる\r\n //例:「value: 660, text: 'AAA'」の場合、AAAを張り付けた場合、value:AAAとなる\r\n\r\n\r\n //**(警告)ペースト時の通常の問題**** */\r\n //'04'など前ゼロ文字列をペーストすると、4(数値)に勝手に変換されてしまう(恐らく書式の問題だろう!!)\r\n\r\n\r\n if (column.editor instanceof Spread.Sheets.CellTypes.ComboBox && column.editor.editorValueType() === Spread.Sheets.CellTypes.EditorValueType.value) {\r\n\r\n //リクエストする様の値を退避\r\n if (column.relatedTextTarget && column.relatedTextTarget in element) {\r\n //関連プロパティがある場合はコンボボックスのText値を直接データソースそのアイテムに設定する\r\n element[column.relatedTextTarget] = text;\r\n }\r\n\r\n //if (column.editor.editable()) {\r\n\r\n\r\n //value値が選択リストにあるか判定\r\n //spreadJsのコンボはeditable=trueの場合、候補リスト内に存在しないものが入ると、入力値がどちらにも入ってしまう!!\r\n\r\n //※ブラウザでのDebug可視性の向上\r\n //let cmbItems = <{ text, value }[]>column.editor.items();\r\n let cmbItems = column.editor.items() as { text, value }[];\r\n\r\n if (cmbItems.findIndex(item => item.value === value) === -1) {\r\n\r\n ////不用意に入ってしまったcell.value及びDatasource(DataItem)の値は登録しない\r\n //element[columnName] = null;\r\n\r\n //#1173 再考\r\n //コンボの場合はstyleでformatterの指定がない場合'General'のままにする\r\n //({ value: <数値(文字列以外) >、text: <文字列>}形式の場合おかしな挙動を示す)\r\n //GR列区分は特殊な動きをする{value:'01',text:'1'}のような 値はマッチングがあいまいなのか、コピペした段階でおかしな共同になる\r\n var namedBy = cmbItems.find(item => item.text === text);\r\n //valueで当たらない場合、名称で当てて取得できるかテストする\r\n if (namedBy) {\r\n //名称でヒットしたらそのvalueを入れる\r\n element[columnName] = namedBy.value;\r\n } else {\r\n //不用意に入ってしまったcell.value及びDatasource(DataItem)の値は登録しない\r\n element[columnName] = null;\r\n }\r\n } else {\r\n element[columnName] = value;\r\n }\r\n\r\n //} else {\r\n // let di = this.rawSheet.getDataItem(row);\r\n // //Editable:falseの場合はうまいことマッチしたアイテムのValueが入っているので、活用する\r\n // element[columnName] = value;\r\n //}\r\n\r\n\r\n } else if (column.editor instanceof Spread.Sheets.Style) {\r\n\r\n //!!Excel Export 対応!!\r\n\r\n //日付形式(そのままリクエスト送信するとエラーになる)\r\n //cellText-- - yyyy/MM/dd文字列\r\n //cellValue-- - OAdate形式\r\n //dataSource-- - Date型\r\n\r\n // Date型をそのままjQuery.Ajaxに渡すと、toStringされて、 日付として解釈できないのでJSONの文字列に変換する\r\n //(new Date()).toString();\r\n // >>>\"Wed Mar 10 2021 09:19:08 GMT+0900 (日本標準時)\"←これでリクエストにのり、サーバーエラー\r\n //\r\n //(new Date()).toUTCString();\r\n // >>>\"Wed, 10 Mar 2021 00:19:14 GMT\"\r\n //\r\n // (new Date()).toGMTString();\r\n // >>>\"Wed, 10 Mar 2021 00:19:23 GMT\"\r\n //\r\n //(new Date()).toJSON()\r\n // >>>\"2021-03-10T00:49:50.829Z\"\r\n\r\n //toJSONも考えたが、そのまま文字列を返すようにする\r\n\r\n //よって、文字列でかえしてしまう\r\n //TODO formatter指定は現状'yyyy/MM/dd'とパスワードしかないが、今後増えてきたら考えましょう(パスワードはtext入れたら全部*******になってしまうのでダメ!)\r\n if (column.editor.formatter === 'yyyy/MM/dd' || column.editor.formatter === 'yyyy/MM/dd hh:mm:ss') {\r\n element[columnName] = text;\r\n } else {\r\n element[columnName] = value;\r\n }\r\n\r\n } else if (column.editor instanceof ColumnEditor) {\r\n // #2033編集開始時日付format外の値の表示抑止\r\n //よって、文字列でかえしてしまう\r\n //TODO formatter指定は現状'yyyy/MM/dd'とパスワードしかないが、今後増えてきたら考えましょう(パスワードはtext入れたら全部*******になってしまうのでダメ!)\r\n if (column.editor.displayFormatter === 'yyyy/MM/dd' || column.editor.displayFormatter === 'yyyy/MM/dd hh:mm:ss') {\r\n element[columnName] = text;\r\n } else {\r\n element[columnName] = value;\r\n }\r\n } else {\r\n element[columnName] = value;\r\n\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n\r\n /**\r\n * 正規データの取得\r\n */\r\n public getProductData(): any[] {\r\n\r\n //return this.rawSheet.getDataSource();\r\n //SpreadJsか管理しているDataSourceは、操作次第では、滅茶苦茶になってしまう(行移動、追加、範囲貼り付け等...)\r\n //よって、画面上で目に見えているものを正として、画面項目から、Itemを生成することとした!\r\n //\r\n //留意する点は、Key項目はdelete Key等で消されないようにすること!!\r\n //visible?もしくは拡張プロパティを用意しようかな…(「key」もしくは「readonly」)\r\n\r\n let dataSource = [];\r\n let rowCount = this.getRowCount()\r\n for (let row = 0; row < rowCount; row++) {\r\n let element = this.getProductItem(row);\r\n dataSource.push(element)\r\n }\r\n return dataSource;\r\n }\r\n\r\n\r\n /**\r\n * 選択行Indexの取得\r\n */\r\n getSeletedRowsIndex(): number[] {\r\n var range = this.rawSheet.getSelections() || [];\r\n let rows: number[] = [];\r\n range.forEach((item, i) => {\r\n for (let j = item.row; j < item.rowCount + item.row; j++) {\r\n rows.push(j);\r\n }\r\n });\r\n //重複排除。\r\n rows = _.uniq(rows);\r\n return rows;\r\n }\r\n\r\n /**\r\n * 選択行データの取得\r\n * @param row\r\n */\r\n public getSeletedRowsData(): any[] {\r\n let dataSource = [];\r\n let selectedRows = this.getSeletedRowsIndex();\r\n selectedRows.forEach((index, i) => {\r\n let element = this.getProductItem(index);\r\n dataSource.push(element)\r\n });\r\n return dataSource;\r\n }\r\n\r\n /**\r\n * 保存データの取得\r\n * ※正規データの取得を行い、見た目上のindexを設定する(見た目上のindexはバリデーションエラー時に使用する)\r\n */\r\n public getSaveData(): any[] {\r\n const dataSource = this.getProductData();\r\n this.SetVisualIndex(dataSource);\r\n\r\n //!!Excel Export 対応!!\r\n //getProductData内で、上手く帳尻合わせてしまうこととした!\r\n //※↑ 対応が不十分。画面入力項目ではない項目も対応する為に、念のため行うこととした!!\r\n //DateはJSON文字列変換する\r\n //this.convertDateToJSON(dataSource);\r\n SPIRIT.util.convertDateToJSON(dataSource);\r\n\r\n return dataSource;\r\n }\r\n\r\n /**\r\n * 行の元情報を保持\r\n * (行タグに情報をセット)\r\n * @param row\r\n * @param obj\r\n */\r\n protected setOriginSourceItem(row: number, obj?: any) {\r\n // row tag\r\n if (_.isUndefined(obj)) { obj = null; }\r\n var tag: { origin: any[], preview: any[] } = this.getTagRowItem(row);\r\n tag.origin = obj;\r\n this.rawSheet.setTag(row, -1, tag);\r\n }\r\n\r\n /**\r\n * 行の元情報を取得\r\n *(行タグの情報を取得)\r\n * @param row\r\n * @param obj\r\n */\r\n private getOriginSourceItem(row: number): any {\r\n return this.getTagRowItem(row).origin;\r\n }\r\n\r\n /**\r\n * 編集後(一つ前)のデータをを保持\r\n * (行タグに情報をセット)\r\n * @param row\r\n * @param obj\r\n */\r\n protected setPreviewSourceItem(row: number, obj?: any) {\r\n // row tag\r\n if (_.isUndefined(obj)) { obj = null; }\r\n var tag: { origin: any[], preview: any[] } = this.getTagRowItem(row);\r\n tag.preview = obj;\r\n this.rawSheet.setTag(row, -1, tag);\r\n }\r\n\r\n /**\r\n * 一つ前の内容を取得\r\n *(行タグの情報を取得)\r\n * @param row\r\n * @param obj\r\n */\r\n private getPreviewSourceItem(row: number): any {\r\n return this.getTagRowItem(row).preview;\r\n }\r\n\r\n /**\r\n * 一つ前の内容を保存\r\n * @param row\r\n * @param obj\r\n */\r\n private savePreviewSourceItem(row: number): any {\r\n return this.setPreviewSourceItem(row, this.getProductItem(row));\r\n }\r\n\r\n\r\n /**\r\n * 行の元情報を保持\r\n * (行タグに情報をセット)\r\n * @param row\r\n * @param obj\r\n */\r\n protected setTagRowItem(row: number, obj?: { origin: any[], preview: any[], temp?: any }) {\r\n // row tag\r\n if (_.isUndefined(obj)) { obj = null; }\r\n this.rawSheet.setTag(row, -1, obj);\r\n }\r\n\r\n /**\r\n * 行の元情報を取得\r\n *(行タグの情報を取得)\r\n * @param row\r\n * @param obj\r\n */\r\n private getTagRowItem(row: number): { origin: any[], preview: any[], temp?: any } {\r\n //行追加での新規行や 複数行選択からの移動にて、もともとあった行のTAGがundefinedになる。\r\n var tag = this.rawSheet.getTag(row, -1);\r\n if (_.isNil(tag)) {\r\n tag = { origin: null, preview: null, temp: null };\r\n this.setTagRowItem(tag);\r\n }\r\n return tag;\r\n //全てのケースを担保するのは難儀なので、「getTagSourceItem」でnilだった場合にdefaultちを返すようにする\r\n //return this.rawSheet.getTag(row, -1) || this.BlankRowData;\r\n }\r\n\r\n\r\n\r\n /**\r\n * 行の元情報を保持\r\n * (行タグに情報をセット)\r\n * @param row\r\n * @param obj\r\n */\r\n protected setTagCellItem(row: number, col: number, obj?: { origin: any[], preview: any[] }) {\r\n // row tag\r\n if (_.isUndefined(obj)) { obj = null; }\r\n this.rawSheet.setTag(row, col, obj);\r\n }\r\n\r\n /**\r\n * 行の元情報を取得\r\n *(行タグの情報を取得)\r\n * @param row\r\n * @param obj\r\n */\r\n private getTagCellItem(row: number, col: number): { origin: any[], preview: any[] } {\r\n //行追加での新規行や 複数行選択からの移動にて、もともとあった行のTAGがundefinedになる。\r\n var tag = this.rawSheet.getTag(row, col);\r\n //tag = tag || { origin: null, preview: null };\r\n tag = tag || {};\r\n return tag;\r\n }\r\n\r\n\r\n /**\r\n * カラム定義を返す\r\n */\r\n getColumnDef(col: string | number): columnDef {\r\n if (_.isString(col)) {\r\n return _.find(this.columns, c => c.name === col) || {};\r\n } else {\r\n return this.columns[col];\r\n }\r\n }\r\n\r\n /**\r\n * カラムIndex\r\n */\r\n getColumnIndex(col: string): number {\r\n return _.findIndex(this.columns, c => c.name === col);\r\n }\r\n\r\n /**\r\n *\r\n */\r\n getColumnRange(col): Spread.Sheets.CellRange {\r\n return this.rawSheet.getRange(-1, col, -1, 1);\r\n }\r\n /**\r\n *\r\n */\r\n getRowRange(row): Spread.Sheets.CellRange {\r\n return this.rawSheet.getRange(row, -1, 1, -1);\r\n }\r\n /**\r\n *\r\n */\r\n getColumnStyle(col): Spread.Sheets.Style {\r\n return this.rawSheet.getStyle(-1, col) || new Spread.Sheets.Style();\r\n }\r\n\r\n /**\r\n *\r\n */\r\n setColumnStyle(col, style: Spread.Sheets.Style) {\r\n //return this.rawSheet.setStyle(-1, col, style, Spread.Sheets.SheetArea);\r\n return this.rawSheet.setStyle(-1, col, style);\r\n }\r\n\r\n /**\r\n *\r\n */\r\n setColumnDataValidator(col, dv: Spread.Sheets.DataValidation.DefaultDataValidator) {\r\n return this.rawSheet.getCell(-1, col).validator(dv);\r\n }\r\n\r\n /**\r\n *\r\n */\r\n getRowStyle(row): Spread.Sheets.Style {\r\n return this.rawSheet.getStyle(row, -1) || new Spread.Sheets.Style();\r\n }\r\n\r\n /**\r\n *\r\n */\r\n setRowStyle(row, style: Spread.Sheets.Style) {\r\n return this.rawSheet.setStyle(row, -1, style);\r\n }\r\n /**\r\n *\r\n */\r\n getCellStyle(row, col): Spread.Sheets.Style {\r\n return this.rawSheet.getStyle(row, col) || new Spread.Sheets.Style();\r\n }\r\n /**\r\n *\r\n */\r\n setCellStyle(row, col, style: Spread.Sheets.Style) {\r\n //return this.rawSheet.setStyle(-1, col, style, Spread.Sheets.SheetArea);\r\n return this.rawSheet.setStyle(row, col, style);\r\n }\r\n\r\n /**\r\n * readonly(列)\r\n * @param col\r\n * @param isLocked\r\n * @param backColor(オプショナル)\r\n */\r\n setReadonlyColumn(col, isLocked: boolean, backColor?: string) {\r\n\r\n this.rawSheet.suspendPaint();\r\n let range = this.getColumnRange(col);\r\n range.locked(isLocked);\r\n var color;\r\n if (isLocked) {\r\n //色の残しはうまく機能しないだろう(設定の仕方が多方あるので、どの値が正しい値か判断できない為)\r\n var org = range.backColor() || null;\r\n range.tag(org);\r\n if (backColor) {\r\n color = backColor;\r\n } else {\r\n color = SPIRIT.constant.READONLY_BACKCOLOR;\r\n }\r\n } else {\r\n if (backColor) {\r\n color = backColor;\r\n } else {\r\n //nullは許容する\r\n //color = (range.tag() || range.backColor()) || null;\r\n color = _.isUndefined(range.tag()) ? range.backColor() : range.tag();\r\n }\r\n }\r\n range.backColor(color);\r\n\r\n //1402 既にLockが掛かっている為必要は無いが.、シート保護無しの場合に備えて、一応実装\r\n //↓recalcしないと反映されない。効率悪いか(遅かったらやめるこのenabledの処理自体やめる)\r\n if (range.cellButtons()) {\r\n _.forEach(range.cellButtons(), (btn: Spread.Sheets.ICellButton) => { btn.enabled = !isLocked });\r\n this.rawSheet.recalcAll();\r\n }\r\n this.rawSheet.resumePaint();\r\n }\r\n\r\n /**\r\n * readonly(行)\r\n * @param row\r\n * @param isLocked\r\n * @param backColor(オプショナル)\r\n */\r\n setReadonlyRow(row, isLocked: boolean, backColor?: string) {\r\n this.rawSheet.suspendPaint();\r\n\r\n let range = this.getRowRange(row);\r\n range.locked(isLocked);\r\n // rowのTagは生ではえない(使わせない)\r\n let rowtag = this.getTagRowItem(row);\r\n var color;\r\n if (isLocked) {\r\n //色の残しはうまく機能しないだろう(設定の仕方が多方あるので、どの値が正しい値か判断できない為)\r\n var org = range.backColor() || null;\r\n // rowのTagは生ではえない(使わせない)\r\n //range.tag(org);\r\n rowtag.temp = rowtag.temp || {}\r\n rowtag.temp.backColor = org;\r\n if (backColor) {\r\n color = backColor;\r\n } else {\r\n color = SPIRIT.constant.READONLY_BACKCOLOR;\r\n }\r\n } else {\r\n if (backColor) {\r\n color = backColor;\r\n } else {\r\n //nullは許容する\r\n color = _.isUndefined(rowtag.temp?.backColor) ? range.backColor() : rowtag.temp?.backColor;\r\n }\r\n }\r\n range.backColor(color);\r\n\r\n\r\n //1402 既にLockが掛かっている為必要は無いが.、シート保護無しの場合に備えて、一応実装\r\n //↓recalcしないと反映されない。効率悪いか(遅かったらやめるこのenabledの処理自体やめる)\r\n if (range.cellButtons()) {\r\n _.forEach(range.cellButtons(), (btn: Spread.Sheets.ICellButton) => { btn.enabled = !isLocked });\r\n this.rawSheet.recalcAll();\r\n }\r\n this.rawSheet.resumePaint();\r\n\r\n }\r\n\r\n /**\r\n * readonly(セル)\r\n * @param row\r\n * @param col\r\n * @param isLocked\r\n * @param doSuspend\r\n * @param backColor(オプショナル)\r\n */\r\n setReadonly(row, col, isLocked: boolean, doSuspend: boolean, backColor?: string) {\r\n\r\n // #3344 【性能】進捗表(リスト)のパフォーマンス向上\r\n // 外側でループして呼ぶときに毎回suspendとresumeが繰り返されるため遅くなる場合がある\r\n if (doSuspend) { this.rawSheet.suspendPaint(); }\r\n\r\n let cell = this.rawSheet.getCell(row, col);\r\n cell.locked(isLocked);\r\n var color;\r\n if (isLocked) {\r\n //色の残しはうまく機能しないだろう(設定の仕方が多方あるので、どの値が正しい値か判断できない為)\r\n var org = cell.backColor() || null;\r\n cell.tag(org);\r\n if (backColor) {\r\n color = backColor;\r\n } else {\r\n color = SPIRIT.constant.READONLY_BACKCOLOR;\r\n }\r\n } else {\r\n if (backColor) {\r\n color = backColor;\r\n } else {\r\n //nullは許容する\r\n //color = (cell.tag() || cell.backColor()) || null;\r\n color = _.isUndefined(cell.tag()) ? cell.backColor() : cell.tag();\r\n }\r\n }\r\n\r\n cell.backColor(color);\r\n //カラムに掛かってると全部非活性になってしまうのでCellの場合やめる\r\n ////1402 既にLockが掛かっている為必要は無いが.、シート保護無しの場合に備えて、一応実装\r\n ////↓recalcしないと反映されない。効率悪いか(遅かったらやめるこのenabledの処理自体やめる)\r\n //if (cell.cellButtons()) {\r\n // _.forEach(cell.cellButtons(), (btn: Spread.Sheets.ICellButton) => { btn.enabled = !isLocked });\r\n // this.rawSheet.recalcAll();\r\n //}\r\n\r\n if (doSuspend) { this.rawSheet.resumePaint(); }\r\n }\r\n\r\n /**\r\n * コンボボックス\r\n * @description\r\n */\r\n createDropDown(source: Source, textName?: string, valueName?: string, editable?: boolean, editorValueType?: Spread.Sheets.CellTypes.EditorValueType): Spread.Sheets.CellTypes.ComboBox {\r\n\r\n\r\n textName = textName || 'text';\r\n valueName = valueName || 'value';\r\n editable = editable || false;\r\n\r\n //数値にfalsyは使えない\r\n //editorValueType = editorValueType || Spread.Sheets.CellTypes.EditorValueType.value;\r\n if (_.isNil(editorValueType)) {\r\n editorValueType = Spread.Sheets.CellTypes.EditorValueType.value;\r\n }\r\n\r\n const combo = new Spread.Sheets.CellTypes.ComboBox();\r\n combo.editable(editable);\r\n combo.editorValueType(editorValueType);\r\n\r\n // ドロップダウンリストに入れるデータをセット\r\n const dropDownDataList = [];\r\n\r\n let p = this.loadSource(source).then(data => {\r\n for (let item of data) {\r\n dropDownDataList.push({ text: item[textName], value: item[valueName] });\r\n }\r\n combo.items(dropDownDataList);\r\n source.data = data;\r\n\r\n this.dropDownSources[valueName] = source;\r\n });\r\n\r\n //※ここで登録しておくと、workBookのMainPromiseに連結されます。\r\n //非同期で、投げっぱなしで良ければ登録しない\r\n //上述の「combo.items(dropDownDataList)」のあと、sheet.repaint(refresh) が必要になるが...\r\n this.registPromises(p);\r\n\r\n return combo;\r\n }\r\n\r\n /**\r\n * コンボボックスの作成時のデータ取得\r\n */\r\n public getDropDownSources(valueName: string) {\r\n if (valueName in this.dropDownSources) {\r\n return this.dropDownSources[valueName].data;\r\n //return _.cloneDeep(this.dropDownSources[valueName].data);\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n /**\r\n * コンボボックスの作成時のデータ設定\r\n * @param valueName\r\n * @param value\r\n */\r\n public setDropDownSources(valueName: string, value: Source) {\r\n\r\n this.dropDownSources[valueName] = value;\r\n }\r\n\r\n /**\r\n * フラグ系コンボボックス型制御用イベント\r\n */\r\n createBoolDropDown(): Spread.Sheets.CellTypes.ComboBox {\r\n\r\n // フラグ系項目のコンボ項目\r\n //boolCombo = [\" \", \"○\"];\r\n\r\n const boolComboItem = [\r\n //空文字だとSpreadのコンボボックスが機能しないようである\r\n //{ text: '', value: false },\r\n //{ text: '-', value: false },\r\n //{ text: '○', value: true }\r\n //下記半角スペースで対応\r\n //#862 Text値未設定のコンボボックスについて(空文字問題解消)\r\n { text: SPIRIT.codes.Flag.FALSE.value, value: SPIRIT.codes.Flag.FALSE.code },\r\n { text: SPIRIT.codes.Flag.TRUE.value, value: SPIRIT.codes.Flag.TRUE.code }\r\n ];\r\n const combo = new Spread.Sheets.CellTypes.ComboBox();\r\n combo.editable(false);\r\n combo.items(boolComboItem);\r\n\r\n combo.editorValueType(Spread.Sheets.CellTypes.EditorValueType.value);\r\n\r\n return combo;\r\n }\r\n\r\n\r\n /**\r\n * 数値型\r\n */\r\n createNumberCellStyle(formatter?: string): Spread.Sheets.Style {\r\n const style = new Spread.Sheets.Style();\r\n formatter = formatter || '#,##0';\r\n style.formatter = formatter;\r\n style.hAlign = Spread.Sheets.HorizontalAlign.right;\r\n return style;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n * カレンダー\r\n */\r\n createCalendarCellEditor(displayFormatter = \"yyyy/MM/dd\", editorFormatter = \"yyyy/MM/dd\"): ColumnEditor {\r\n // カレンダードロップダウンリストの作成\r\n let style = new Spread.Sheets.Style();\r\n // フォーマットの指定\r\n style.formatter = displayFormatter;\r\n style.cellButtons = [\r\n {\r\n imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n command: \"openDateTimePicker\",\r\n useButtonStyle: false,\r\n }\r\n ];\r\n style.dropDowns = [\r\n {\r\n type: Spread.Sheets.DropDownType.dateTimePicker,\r\n option: {\r\n showTime: false,\r\n startDay: Spread.Sheets.CalendarStartDay.sunday,\r\n }\r\n }\r\n ];\r\n style.formatter = displayFormatter;\r\n\r\n // #2033 編集開始時日付format外の値の表示抑止\r\n let cellType: DateTimeEditInterceptor = new DateTimeEditInterceptor(editorFormatter);\r\n\r\n let editor = new ColumnEditor();\r\n editor.displayFormatter = displayFormatter;\r\n editor.editorFormatter = editorFormatter;\r\n\r\n editor.style = style;\r\n editor.cellType = cellType;\r\n return editor\r\n }\r\n\r\n\r\n\r\n /**\r\n * 時刻型\r\n */\r\n createTimeCellStyle(): Spread.Sheets.Style {\r\n // カレンダードロップダウンリストの作成\r\n let style = new Spread.Sheets.Style();\r\n\r\n // フォーマットの指定\r\n //style.formatter = \"yyyy/MM/dd\";\r\n style.cellButtons = [\r\n {\r\n imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n command: \"openTimePicker\",\r\n useButtonStyle: false,\r\n }\r\n ];\r\n\r\n style.dropDowns = [\r\n {\r\n type: Spread.Sheets.DropDownType.timePicker,\r\n option: {\r\n formatString: \"hh:mm\"\r\n }\r\n }\r\n ];\r\n style.formatter = \"hh:mm\";\r\n\r\n return style;\r\n }\r\n\r\n /**\r\n * Time\r\n */\r\n createTimePickerCellEditor(displayFormatter = \"hh:mm\", editorFormatter = \"hh:mm\"): ColumnEditor {\r\n // -------------------- Date Time Picker : showTime true ---------------------\r\n let style = new Spread.Sheets.Style();\r\n\r\n // フォーマットの指定\r\n style.formatter = displayFormatter;\r\n style.cellButtons = [\r\n {\r\n imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n command: \"openTimePicker\",\r\n useButtonStyle: false,\r\n }\r\n ];\r\n // #4525 保守 10分単位の時刻設定(プルダウン式)に変更\r\n style.dropDowns = [\r\n {\r\n type: Spread.Sheets.DropDownType.timePicker, // リスト内10分刻みはtypeを左記のようにしなければならない\r\n option: {\r\n showTime: true,\r\n step: { minute: 10 }, // 10分刻み\r\n }\r\n }\r\n ];\r\n\r\n let cellType: DateTimeEditInterceptor = new DateTimeEditInterceptor(editorFormatter);\r\n\r\n let editor = new ColumnEditor();\r\n editor.displayFormatter = displayFormatter;\r\n editor.editorFormatter = editorFormatter;\r\n\r\n editor.style = style;\r\n editor.cellType = cellType;\r\n return editor\r\n }\r\n\r\n /**\r\n * DateTime\r\n */\r\n createDateTimePickerCellEditor(displayFormatter = \"yyyy/MM/dd hh:mm:ss\", editorFormatter = \"yyyy/MM/dd hh:mm:ss\"): ColumnEditor {\r\n // -------------------- Date Time Picker : showTime true ---------------------\r\n let style = new Spread.Sheets.Style();\r\n\r\n // フォーマットの指定\r\n style.formatter = displayFormatter;\r\n style.cellButtons = [\r\n {\r\n imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n command: \"openDateTimePicker\",\r\n useButtonStyle: false,\r\n }\r\n ];\r\n style.dropDowns = [\r\n {\r\n type: Spread.Sheets.DropDownType.dateTimePicker,\r\n option: {\r\n showTime: true,\r\n startDay: Spread.Sheets.CalendarStartDay.sunday,\r\n }\r\n }\r\n ];\r\n\r\n let cellType: DateTimeEditInterceptor = new DateTimeEditInterceptor(editorFormatter);\r\n\r\n let editor = new ColumnEditor();\r\n editor.displayFormatter = displayFormatter;\r\n editor.editorFormatter = editorFormatter;\r\n\r\n editor.style = style;\r\n editor.cellType = cellType;\r\n return editor\r\n }\r\n\r\n /**\r\n * 拡張カラーピッカー型制御\r\n * #4536\r\n */\r\n createColorPickerCellStyle(): Spread.Sheets.Style {\r\n\r\n // -------------------- Custom Calculator ---------------------\r\n var themeColor = {\r\n name: 'テーマの色',\r\n needScaleColor: true,\r\n colors: [['#ffffff', '#000000', '#e7e6e6', '#44546a', '#5b9bd5', '#ed7d31', '#a5a5a5', '#ffc000', '#4472c4', '#70ad47']]\r\n }\r\n\r\n var standardColor = {\r\n name: '標準の色',\r\n needScaleColor: true,\r\n colors: [\r\n ['#C00000', '#FF0000', '#FFC000', '#FFFF00', '#92D050', '#00B050', '#00B0F0', '#0070C0', '#002060', '#7030A0']\r\n ]\r\n };\r\n\r\n var customColor = {\r\n name: 'おすすめ',\r\n needScaleColor: true,\r\n colors: [\r\n //透過の指定は入力エラーになる\r\n //['#F6ADC6', '#F6BABC', '#FAB27B', '#E761A4', '#F0566E', '#F69896', '#F68B1F', '#F47A55', '#F36C21', '#FB7500', '#d1eefc4a']\r\n ['#F6ADC6', '#F6BABC', '#FAB27B', '#E761A4', '#F0566E', '#F69896', '#F68B1F', '#F47A55', '#F36C21', '#FB7500']\r\n ]\r\n };\r\n\r\n // カラーピッカーの作成\r\n const style = new Spread.Sheets.Style();\r\n style.cellButtons = [\r\n {\r\n imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n command: \"openColorPicker\",\r\n useButtonStyle: false,\r\n }\r\n ];\r\n style.dropDowns = [\r\n {\r\n type: Spread.Sheets.DropDownType.colorPicker,\r\n option: {\r\n colorBlockSize: 15,\r\n groups: [\r\n themeColor,\r\n standardColor,\r\n //一旦、利用しない\r\n //customColor,\r\n ]\r\n }\r\n }\r\n ];\r\n\r\n style.hAlign = Spread.Sheets.HorizontalAlign.left;\r\n return style;\r\n }\r\n\r\n /**\r\n * カラーピッカー型制御用イベント\r\n * 旧型のカラーピッカー\r\n */\r\n createColorPickerCellSimpleStyle(): Spread.Sheets.Style {\r\n\r\n // カラーピッカーの作成\r\n const style = new Spread.Sheets.Style();\r\n style.cellButtons = [\r\n {\r\n imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n command: \"openColorPicker\",\r\n useButtonStyle: false,\r\n }\r\n ];\r\n style.dropDowns = [\r\n {\r\n type: Spread.Sheets.DropDownType.colorPicker,\r\n option: {\r\n colorBlockSize: 15\r\n }\r\n }\r\n ];\r\n\r\n style.hAlign = Spread.Sheets.HorizontalAlign.left;\r\n\r\n return style;\r\n }\r\n\r\n ///**\r\n //* カラーピッカー型制御用イベント\r\n //* @deprecated\r\n //*/\r\n //createColorPickerCellStyleWijmo(): Spread.Sheets.Style {\r\n // // カラーピッカーの作成\r\n // const style = new Spread.Sheets.Style();\r\n // style.cellButtons = [\r\n // {\r\n // imageType: Spread.Sheets.ButtonImageType.dropdown,\r\n // useButtonStyle: false,\r\n // command: (sheet, row, col, option) => {\r\n // //対象とするDOMが存在しない為(spreadのDropDownはCanvasの要素な為)表示方法が無い!\r\n // let theColorPicker = new wjcInput.ColorPicker('#theColorPicker', {\r\n // showAlphaChannel: true,\r\n // showColorString: true,\r\n // valueChanged: (sender) => { }\r\n // });\r\n // }\r\n // }\r\n // ];\r\n // style.hAlign = Spread.Sheets.HorizontalAlign.left;\r\n // return style;\r\n //}\r\n\r\n\r\n /**\r\n * パスワード型制御用イベント\r\n */\r\n createPasswordStyle(): Spread.Sheets.Style {\r\n\r\n let style = new Spread.Sheets.Style();\r\n // フォーマットの指定\r\n style.formatter = '**;**;**;**';\r\n style.hAlign = Spread.Sheets.HorizontalAlign.right;\r\n return style;\r\n }\r\n\r\n /**\r\n * パスワード型制御用(編集時も*表示)\r\n */\r\n createNoneDisplayPasswordStyle(): ColumnEditor {\r\n\r\n let style = new Spread.Sheets.Style();\r\n // フォーマットの指定\r\n style.formatter = '**;**;**;**';\r\n //style.formatter = '*●;*●;*●;*●';\r\n style.hAlign = Spread.Sheets.HorizontalAlign.right;\r\n let cellType: PasswordEditInterceptor = new PasswordEditInterceptor();\r\n let editor = new ColumnEditor();\r\n\r\n editor.displayFormatter = '**;**;**;**';\r\n editor.editorFormatter = '**;**;**;**';\r\n //editor.displayFormatter = '*●;*●;*●;*●';\r\n //editor.editorFormatter = '*●;*●;*●;*●';\r\n\r\n editor.style = style;\r\n editor.cellType = cellType;\r\n return editor\r\n }\r\n\r\n /**\r\n *\r\n * @param col\r\n * @param sheet\r\n * @deprecated\r\n */\r\n setSectionTypeColumnStyle(sheet: Spread.Sheets.Worksheet) {\r\n //旧\r\n //// 区分列の色を変更\r\n //let cell = sheet.getCell(contentRow, 0, Spread.Sheets.SheetArea.viewport);\r\n //cell.backColor(\"#e6e6e6\");\r\n //cell.foreColor(\"#3f3f3f\");\r\n //cell.borderBottom(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium));\r\n //cell.borderRight(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium));\r\n\r\n // ①スタイルを列に設定します。\r\n //let style = this.getColumnStyle(col, sheet);\r\n //style.backColor = \"#e6e6e6\";\r\n //style.foreColor = \"#3f3f3f\";\r\n //style.borderBottom = new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium);\r\n //style.borderRight = new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.medium);\r\n //this.setColumnStyle(col, style, sheet);\r\n\r\n // ②Range\r\n //'0'指定は良くない!\r\n let colRange = this.getColumnRange(0);\r\n colRange.backColor(\"#e6e6e6\");\r\n colRange.foreColor(\"#3f3f3f\");\r\n //colRange.borderBottom(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.thin));\r\n //colRange.borderRight(new Spread.Sheets.LineBorder(\"#999\", Spread.Sheets.LineStyle.thin));\r\n colRange.borderBottom(new Spread.Sheets.LineBorder(\"#00000033\", Spread.Sheets.LineStyle.thin));\r\n colRange.borderRight(new Spread.Sheets.LineBorder(\"#00000033\", Spread.Sheets.LineStyle.thin));\r\n }\r\n\r\n /**\r\n * データ検証の設定(数式、数式リスト、リスト用)\r\n * @param column 列定義\r\n * @param col 列番号\r\n */\r\n private setDataFomulaOrListValidator(column: columnDef, col: number) {\r\n let dv: Spread.Sheets.DataValidation.DefaultDataValidator;\r\n switch (column.dataFomulaOrListValidator.type) {\r\n case ValidationType.List:\r\n dv = Spread.Sheets.DataValidation.createListValidator(column.dataFomulaOrListValidator.value);\r\n break;\r\n case ValidationType.Formula:\r\n dv = Spread.Sheets.DataValidation.createFormulaValidator(column.dataFomulaOrListValidator.value);\r\n break;\r\n case ValidationType.FormulaList:\r\n dv = Spread.Sheets.DataValidation.createFormulaListValidator(column.dataFomulaOrListValidator.value);\r\n break;\r\n default:\r\n break;\r\n }\r\n if (dv) {\r\n // 空白無視するか?\r\n dv.ignoreBlank(column.dataFomulaOrListValidator.isIgnoreBlank ??= false);\r\n // 入力メッセージを表示するか?\r\n dv.showInputMessage(column.dataFomulaOrListValidator.isShowInputMessage ??= false);\r\n if (dv.showInputMessage()) {\r\n dv.inputTitle(column.dataFomulaOrListValidator.inputTitle ??= \"\");\r\n dv.inputMessage(column.dataFomulaOrListValidator.inputMessage ??= \"\");\r\n }\r\n // エラーメッセージを表示するか?\r\n dv.showErrorMessage(column.dataFomulaOrListValidator.isShowErrorMessage ??= false);\r\n if (dv.showErrorMessage()) {\r\n dv.errorTitle(column.dataFomulaOrListValidator.errorTitle ??= \"\");\r\n dv.errorMessage(column.dataFomulaOrListValidator.errorMessage ??= \"\");\r\n }\r\n this.setColumnDataValidator(col, dv);\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * 指定のカラムにshowEllipsis(...)を設定\r\n * @param col\r\n * @param sheet\r\n * @param value\r\n */\r\n showColumnEllipsis(col, value: boolean) {\r\n let colRange = this.getColumnRange(col);\r\n colRange.showEllipsis(value);\r\n }\r\n\r\n\r\n /**\r\n * 色列に背景色を設定する\r\n * @param sheet\r\n * @param row\r\n * @param col\r\n * @param cellColor\r\n */\r\n setColor(sheet: Spread.Sheets.Worksheet, row, col, cellColor: string) {\r\n // 初期値の色列はライムグリーンにする\r\n if (cellColor == undefined) { return; }\r\n let color = _.isNil(cellColor) ? SPIRIT.constant.WORK_BACKCOLOR : cellColor;\r\n\r\n //// 色コード以外が入力されていた場合\r\n //color = color.toString();\r\n //if (!color.includes(\"#\")) { return; }\r\n\r\n // colorが色コードではない値が来た場合背景色は変更しない\r\n if (color.toString().match(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/) == null) { return; };\r\n\r\n let lineBorder = new Spread.Sheets.LineBorder('#d8d8d8', Spread.Sheets.LineStyle.thin);\r\n let cell = sheet.getCell(row, col, Spread.Sheets.SheetArea.viewport);\r\n cell.setBorder(lineBorder, { outline: true }); // setBorderなるメソッドがあるみたい\r\n cell.backColor(color);\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param row\r\n * @param col\r\n */\r\n isDateTimeCell(row, col, cellOnly: boolean = false): boolean {\r\n\r\n let ret = false;\r\n var style = this.getCellStyle(row, col);\r\n ret = this.isDateTimePickerStyle(style);\r\n if (cellOnly) {\r\n return ret;\r\n }\r\n if (!ret) {\r\n //カラムStyleも検証\r\n return this.isDateTimeColumn(col);\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param col\r\n */\r\n isDateTimeColumn(col): boolean {\r\n var style = this.getColumnStyle(col);\r\n return this.isDateTimePickerStyle(style);\r\n }\r\n /**\r\n * \r\n * @param colStyle\r\n */\r\n isDateTimePickerStyle(colStyle: Spread.Sheets.Style): boolean {\r\n //TimePickerは対象外\r\n //if (colStyle?.dropDowns?.findIndex(v => v.type === Spread.Sheets.DropDownType.dateTimePicker || v.type === Spread.Sheets.DropDownType.timePicker) > -1) {\r\n if (colStyle?.dropDowns?.findIndex(v => v.type === Spread.Sheets.DropDownType.dateTimePicker) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n\r\n /**\r\n * sheet情報\r\n */\r\n public getSheetInfo() {\r\n //STUB\r\n return {\r\n sheetName: this.sheetName,\r\n columns: this.columns\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * 現在の順番でSpreadの見た目上のIndex(行番号 -1)を振る。(バリデーション時に使用される)\r\n * @param list 現在のGridの状態の配列\r\n */\r\n protected SetVisualIndex(list: any[]) {\r\n\r\n // 現在の順番でSpreadの見た目上のIndex(行番号 -1)を振る。(バリデーション時に使用される)\r\n list.forEach((item, index) => {\r\n item.VisualIndex = index;\r\n });\r\n\r\n return list;\r\n }\r\n\r\n\r\n /**\r\n * インポート用並び順設定\r\n * @param list \r\n * @param orderNoKey キー\r\n */\r\n public setImportOrderNoKeyVisualIndex(list: any[], orderNoKey: string) {\r\n\r\n const keyList = _.uniq(_.map(list, orderNoKey));\r\n\r\n keyList.forEach((keyValue) => {\r\n\r\n const targetKeyList = list.filter(_ => _[orderNoKey] == keyValue);\r\n\r\n // キー単位で並び順を1から振っていく\r\n targetKeyList.forEach((item, index) => {\r\n item['ImportOrderNo'] = index + 1;\r\n });\r\n });\r\n\r\n return list;\r\n }\r\n\r\n /**\r\n * 変更セル背景色設定(インポート時に使用)\r\n * @param changeCellList\r\n */\r\n setChangeCellBackColor(changeCellList: any[]) {\r\n\r\n this.rawSpread.suspendPaint();\r\n\r\n changeCellList.forEach((item) => {\r\n\r\n // #1150 削除行は変更扱いにしない(背景色を変更色にしない)、ついでに取込区分列も色設定しない\r\n if (item.importType == SPIRIT.codes.ImportType.DELETED.value || item.colName == WorkSheetBase.KEY_ImportType) { return; }\r\n\r\n const row = item.row;\r\n const col = this.columns.findIndex(e => e.name === item.colName);\r\n if (col > -1) {\r\n this.rawSheet.getCell(row, col).backColor('#FFE38E');\r\n }\r\n });\r\n\r\n this.rawSpread.resumePaint();\r\n }\r\n\r\n\r\n /**\r\n * エラー情報をセット(背景色も)\r\n * @param changeCellList\r\n */\r\n setErrorInfoList(errorInfoList: Array) {\r\n\r\n this.clearErrorInfoList();\r\n\r\n this.errorInfoList = errorInfoList;\r\n\r\n this.setErrorBackColor(false);\r\n }\r\n\r\n /**\r\n * エラー情報をクリア(背景色も)\r\n */\r\n clearErrorInfoList() {\r\n\r\n this.setErrorBackColor(true);\r\n\r\n this.errorInfoList = [];\r\n }\r\n\r\n /**\r\n * エラー情報の背景色設定\r\n * @param isClear\r\n */\r\n private setErrorBackColor(isClear: boolean) {\r\n\r\n this.rawSpread.suspendPaint();\r\n\r\n this.errorInfoList.forEach((item) => {\r\n const row = item.row;\r\n let col = item.col;\r\n if (Array.isArray(item.col)) {\r\n item.col.forEach((c) => {\r\n col = c;\r\n this.rawSheet.getCell(row, col).backColor(isClear ? undefined : 'lightpink');\r\n });\r\n } else {\r\n this.rawSheet.getCell(row, col).backColor(isClear ? undefined : 'lightpink');\r\n }\r\n });\r\n\r\n this.rawSpread.resumePaint();\r\n\r\n }\r\n\r\n /**\r\n * Exportするファイルを作成し、コールバックにSpreadのJSONを返却\r\n * ※一覧形式のみ対応。マトリックス表現するようなものは個別で実装してください!!!\r\n * @param url データ取得URL\r\n * @param sheetName シート名\r\n * @param colInfos カラム情報(取込区分、システムカラムは除く)\r\n * @param idColName ID列名\r\n * @param hasImportUserAuth インポート権限を持つユーザか(trueの場合、取込区分がつく)\r\n * @param cb ダウンロード処理関数\r\n */\r\n protected exportSpreadDb(url: string, sheetName: string, colInfos: columnDef[], idColName: string, hasImportUserAuth: boolean, cb, orderNoKey: string = null) {\r\n // TODO リファクタ \r\n SPIRIT.util.getData(url).then((data) => {\r\n //TODO 日付対応(基本画面を同じ動きをする)\r\n let _data = this.modelingData(data);\r\n if (orderNoKey) {\r\n this.setImportOrderNoKeyVisualIndex(_data, orderNoKey);\r\n }\r\n //\r\n this.exportSpread(_data, sheetName, colInfos, idColName, hasImportUserAuth, cb);\r\n });\r\n }\r\n\r\n /**\r\n * Exportするファイルを作成し、コールバックにSpreadのJSONを返却\r\n * @param data データ\r\n * @param sheetName シート名\r\n * @param colInfos カラム情報(取込区分、システムカラムは除く)\r\n * @param idColName ID列名\r\n * @param hasImportUserAuth インポート権限を持つユーザか(trueの場合、取込区分がつく)\r\n * @param cb ダウンロード処理関数\r\n */\r\n protected exportSpread(data: any[], sheetName: string, colInfos: columnDef[], idColName: string, hasImportUserAuth: boolean, cb) {\r\n\r\n // TODO リファクタ \r\n\r\n // Spread作成\r\n const spread = new Spread.Sheets.Workbook(null, { sheetCount: 1 });\r\n\r\n spread.suspendPaint();\r\n\r\n const sheet = spread.getActiveSheet();\r\n\r\n sheet.name(sheetName);\r\n sheet.autoGenerateColumns = false;\r\n sheet.setDataSource(data);\r\n\r\n // 取込区分\r\n const firstFixColInfos: columnDef[] = [{ name: WorkSheetBase.KEY_ImportType, displayName: WorkSheetBase.KEY_ImportType_Display, size: 80 }];\r\n const firstConcatColInfos = hasImportUserAuth ? firstFixColInfos.concat(colInfos) : colInfos;\r\n\r\n // システムカラム\r\n const lastColInfos = [\r\n { name: WorkSheetBase.KEY_UpdateUserName, displayName: WorkSheetBase.KEY_UpdateUserName_Display, size: 150 },\r\n { name: WorkSheetBase.KEY_UpdateUserLoginId, displayName: WorkSheetBase.KEY_UpdateUserLoginId_Display, size: 100 },\r\n { name: WorkSheetBase.KEY_UpdateDateString, displayName: WorkSheetBase.KEY_UpdateDateString_Display, size: 200 },\r\n ];\r\n const concatColInfos = firstConcatColInfos.concat(lastColInfos);\r\n\r\n sheet.bindColumns(concatColInfos);\r\n\r\n // 列スタイル設定\r\n concatColInfos.forEach((item, index) => {\r\n\r\n // ヘッダー\r\n const colHeader = sheet.getRange(0, index, 1, 1, Spread.Sheets.SheetArea.colHeader);\r\n\r\n // 取込区分列のリスト設定\r\n if (hasImportUserAuth && item.name == WorkSheetBase.KEY_ImportType) {\r\n const dv = Spread.Sheets.DataValidation.createListValidator(SPIRIT.codes.ImportType.ADDED.value + ',' + SPIRIT.codes.ImportType.EDITED.value + ',' + SPIRIT.codes.ImportType.DELETED.value);\r\n dv.showErrorMessage(true);\r\n // ヘッダ行も設定される(行数指定がないので本来はこうするべき)\r\n //sheet.setDataValidator(-1, index, dv, Spread.Sheets.SheetArea.viewport);\r\n // ヘッダ行が設定されない方法(行数指定が必要:一旦Excel最大行数は1048576なのでヘッダ数を引いて1048575にする)\r\n sheet.setDataValidator(0, 0, 1048575, 1, dv, Spread.Sheets.SheetArea.viewport);\r\n }\r\n\r\n // 列罫線\r\n const style = new Spread.Sheets.Style();\r\n style.borderTop = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderBottom = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderLeft = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n style.borderRight = new Spread.Sheets.LineBorder('#000000', Spread.Sheets.LineStyle.thin);\r\n\r\n //TODO リファクタcolumnDefに'Id'プロパティを用意!!\r\n // ID列の背景色指定\r\n if (hasImportUserAuth && item.name == idColName) {\r\n style.backColor = '#FFFF00';\r\n } else {\r\n // ヘッダー背景色指定\r\n colHeader.backColor('#E8E8E8');\r\n }\r\n\r\n //フォーマッタ(日付など)\r\n //日付対応\r\n //TODO formatter指定は現状'yyyy/MM/dd'とパスワードしかないが、今後増えてきたら考えましょう(パスワードはtext入れたら全部*******になってしまうのでダメ!)\r\n //if (item.style?.formatter === 'yyyy/MM/dd') {\r\n if (item.style?.formatter) {\r\n style.formatter = item.style.formatter;\r\n }\r\n\r\n if (item.export?.headerBackColor) {\r\n // ヘッダー背景色指定\r\n colHeader.backColor(item.export?.headerBackColor);\r\n }\r\n\r\n sheet.setStyle(-1, index, style, Spread.Sheets.SheetArea.viewport);\r\n });\r\n\r\n spread.resumePaint();\r\n\r\n const json = spread.toJSON({ includeBindingSource: true, columnHeadersAsFrozenRows: true });\r\n\r\n if (cb != null) {\r\n cb(json, spread);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * #3875 Multiselect コンボの位置補正コマンド\r\n * @param sheet\r\n * @param row\r\n * @param col\r\n */\r\n openMultiSelectListCommand(sheet, row, col) {\r\n //あくまで、シート領域の(0,0)からのoffsetでしかない。\r\n let cellRect = sheet.getCellRect(row, col);\r\n this.rawSpread.commandManager().execute({\r\n cmd: \"openList\",\r\n sheetName: sheet.name(),\r\n row,\r\n col\r\n });\r\n\r\n //提供されたソース、正常に動いてはない。spreadよりも上に別の要素があるだけで、狂う\r\n //そもそも意味が分からない。無理やり合わせているだけ\r\n //let dropDownEl: any = document.querySelector(\".gc-list-control-container.gc-list-alignment-vertical\");\r\n //dropDownEl.style.overflowY = \"scroll\";\r\n //dropDownEl.parentElement.style.position = \"absolute\";\r\n //dropDownEl.parentElement.style.top = cellRect.y + cellRect.height + \"px\";\r\n //dropDownEl.parentElement.style.left = cellRect.x - cellRect.width - 35 + \"px\";\r\n //dropDownEl.style.height = \"100px\";\r\n //dropDownEl.style.width = cellRect.width + \"px\";\r\n\r\n //大枠のDIV\r\n let hostElement = this.rawSpread.getHost();\r\n let $dropDownPop = $('.ribbon-dropdowngroup-popup', hostElement);\r\n //cellRectは spread自身のoffsetが加味されていないので、加算する\r\n let parentOffsetTop = hostElement.offsetTop;\r\n let parentOffsetLeft = hostElement.offsetLeft;\r\n $dropDownPop.css('top', parentOffsetTop + cellRect.y + cellRect.height + 'px');\r\n $dropDownPop.css('left', parentOffsetLeft + cellRect.x + 'px');\r\n $dropDownPop.css('width', cellRect.width + 'px');\r\n\r\n //#3979\r\n //$dropDownPop.css('max-height', '300px');\r\n //$dropDownPop.css('overflow-y', 'auto');\r\n let $dropDownEl = $('.gc-list-control-container.gc-list-alignment-vertical', hostElement);\r\n //他のリスト項目に併せて300とする\r\n $dropDownEl.css('max-height', '300px');\r\n $dropDownEl.css('overflow-y', 'auto');\r\n }\r\n\r\n\r\n\r\n\r\n /**\r\n * 改行表示可能セルを対象に行の高さを自動調整(インスタンスメソッド)\r\n * @param row\r\n * @param correctForExport export用に高さ補正を行う\r\n */\r\n autoFitRowForWordWrap(row?: number, correctForExport?: boolean) {\r\n WorkSheetBase.autoFitRowForWordWrap(this.rawSheet, row, correctForExport);\r\n }\r\n\r\n /**\r\n * 改行表示可能セルを対象に行の高さを自動調整(static)\r\n * @param sheet\r\n * @param row\r\n * @param correctForExport export用に高さ補正を行う\r\n */\r\n static autoFitRowForWordWrap(sheet: Spread.Sheets.Worksheet, row?: number, correctForExport?: boolean) {\r\n\r\n //ライブラリ本来の処理(autoFit)では、\r\n //高さ計算関数に渡す/colStyle.fontの値がzoomFactor(拡大率)に応じた値になっている→\"12.4667px Calibri\"\r\n\r\n //デフォルトでは\r\n //zoomFactor:1.0、colStyle.font:\"14.6667px Calibri\"\r\n //\r\n //0.85だとしたら\r\n //zoomFactor:0.85、colStyle.font:\"12.4667px Calibri\"\r\n //で無ければいけないらしい\r\n\r\n //現在の仕様において、デフォルトの拡大率が0.85である為、本来 14.6667*0.85すれば良いのだが、\r\n //文字列であり、計算し難く、今後何が入ってくるか判らない為、\r\n //一旦Zoom拡大率を1.0に戻し行の高さを計算設定した後に、元の拡大率に戻すこととした\r\n\r\n //もともとの拡大倍率\r\n let tempZoomFactor = sheet.zoom();\r\n //一旦、1.0に戻す\r\n sheet.zoom(1.0);\r\n\r\n if (_.isNil(row)) {\r\n //全行対象とする\r\n for (let row = 0; row < sheet.getRowCount(); row++) {\r\n //自動調整(正直少しおそくなります。)\r\n WorkSheetBase.autoFitRowForWordWrapProc(sheet, row, correctForExport);\r\n }\r\n } else {\r\n WorkSheetBase.autoFitRowForWordWrapProc(sheet, row, correctForExport);\r\n }\r\n //元の拡大率に戻す\r\n sheet.zoom(tempZoomFactor);\r\n }\r\n\r\n\r\n\r\n\r\n /**\r\n * 改行表示可能セルを対象に行の高さを自動調整(static)\r\n * @param row\r\n * @param sheet\r\n * @param correctForExport\r\n */\r\n private static autoFitRowForWordWrapProc(sheet: Spread.Sheets.Worksheet, row: number, correctForExport?: boolean) {\r\n\r\n //高速化対応\r\n let maxHeight = sheet.defaults.rowHeight;\r\n for (let col = 0; col < sheet.getColumnCount(); col++) {\r\n let cell = sheet.getCell(row, col);\r\n //wordWrap=trueでかつ、表示されている行に絞り込む\r\n if (cell.wordWrap() && sheet.getColumnVisible(col)) {\r\n let colStyle = sheet.getActualStyle(row, col)?.clone() || null;\r\n let colType = sheet.getCellType(row, col);\r\n\r\n //[注意]\r\n //zoomを変更せずに下記でもいいが、iphoneとかだともしかしたら変わってくるかもしれないので、一旦止め\r\n //let zoomFactor = sheet.zoom();\r\n //let fonts = colStyle.font.split(' ');\r\n //let fontSize = parseFloat(fonts[0]);\r\n //fonts[0] = (fontSize * zoomFactor) + 'px';\r\n //colStyle.font = fonts.join(' ');\r\n\r\n let zoomFactor = 1.0;//1.0固定とする\r\n let context = cell;\r\n let desiredHeight = colType.getAutoFitHeight(cell.value(), cell.text(), colStyle, zoomFactor, context);\r\n\r\n //#5740 高さの自動調整にて、少し差異生じたため、spreadJs内部内部を調査した結果 固定で3px分Paddingを追加で与えている事が発覚!!\r\n if (0 !== desiredHeight) {\r\n desiredHeight = Math.ceil(desiredHeight += Math.ceil(3));\r\n //#5739\r\n if (correctForExport) {\r\n desiredHeight *= 1.75;\r\n }\r\n }\r\n\r\n if (maxHeight < desiredHeight) {\r\n maxHeight = desiredHeight;\r\n }\r\n }\r\n }\r\n sheet.setRowHeight(row, maxHeight);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /*************************廃棄予定***************************/\r\n\r\n /**\r\n * 関連項目のDataSource反映\r\n * @param row\r\n * @param col\r\n * @deprecated\r\n */\r\n protected applyRelatedTextTarget(rowData: any, row: number, col: number, normalize?: boolean) {\r\n\r\n if (_.isNil(normalize)) { normalize = false; }\r\n\r\n\r\n let column = this.getColumnDef(col);\r\n\r\n //コンボボックスエディタの振る舞い方\r\n if (column.editor instanceof Spread.Sheets.CellTypes.ComboBox) {\r\n\r\n /**重要**** */\r\n //編集可能で、Spread.Sheets.CellTypes.EditorValueType.valueのコンボボックスは、選択リストに存在しない値を入力した際、\r\n //cell.value及びDatasource(DataItem)に入力した値が登録されてしまう。(cell.textにも入ります!こっちは見た目上の値なので、取っておく)\r\n //その為、relatedTargetに入力した値を退避(サーバーリクエスト用)\r\n if (column.editor.editable() && column.editor.editorValueType() === Spread.Sheets.CellTypes.EditorValueType.value) {\r\n\r\n //console.log('=======================================================');\r\n //console.log(this.rawSheet.getDataSource()[row]);\r\n //console.log(rowData);\r\n //console.log(this.getCell(row, col).text());\r\n //console.log(this.getCell(row, col).value());\r\n //console.log('-------------------------------------------------------');\r\n\r\n\r\n //現在表示(入力)されたTextを取得\r\n let text = this.rawSheet.getText(row, col);\r\n\r\n //リクエストする様の値を退避\r\n if (column.relatedTextTarget && column.relatedTextTarget in rowData) {\r\n //関連プロパティがある場合はコンボボックスのText値を直接データソースそのアイテムに設定する\r\n rowData[column.relatedTextTarget] = text;\r\n }\r\n\r\n //(※注意)\r\n //下記は企画倒れ!!\r\n //getDataSourceの当該項目の値をクリアにした場合、repaintが走った段階で当然画面上の表示もclearになってしまう。\r\n //最後リクエストデータを生成する際に、各々で空にする必要がある!!(※注意)\r\n\r\n\r\n //選択リストにない項目が入れられている場合、cell.valueに入ってしまった値をクリアにする\r\n if (normalize) {\r\n ////選択リストにあるか判定\r\n //column.editor.items();\r\n //不用意に入ってしまったcell.value及びDatasource(DataItem)の値をClearする\r\n //下記を行うと、Cell.textまでClearされてしまうのでデータソースのみにとどめる\r\n //sheet.rawSheet.setValue(row, col, '');\r\n //DataSourceのみClear\r\n rowData[column.name] = '';\r\n }\r\n\r\n //一旦変数に入れると、参照切れるみたいなので、再度セットする\r\n //this.rawSheet.getDataSource()[row] = rowData;\r\n\r\n //console.log(this.rawSheet.getDataSource()[row]);\r\n //console.log(rowData);\r\n //console.log(this.getCell(row, col).text());\r\n //console.log(this.getCell(row, col).value());\r\n //console.log('=======================================================');\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n *全ての 関連項目のDataSource反映\r\n * @param criteria\r\n * @deprecated\r\n */\r\n protected applyRelatedTextTargetAll(dataSource: any[], normalize: boolean, criteria?: (coldef: columnDef) => boolean) {\r\n\r\n ////nullの場合も考えられるので、ここは確実にisUndefinedで\r\n ////if (_.isNil(dataSource)) {\r\n //if (_.isUndefined(dataSource)) {\r\n // debugger;\r\n // dataSource = this.rawSheet.getDataSource();\r\n //}\r\n\r\n let length = this.columns.length;\r\n for (let col = 0; col < length; col++) {\r\n let column = this.columns[col]\r\n if (!criteria || (criteria && criteria(column))) {\r\n //全行適用\r\n let rowCount = this.getRowCount();\r\n for (let row = 0; row < rowCount; row++) {\r\n //let rowData = this.rawSheet.getDataItem(row);\r\n let rowData = dataSource[row];\r\n\r\n //関連項目のDataSource反映\r\n this.applyRelatedTextTarget(rowData, row, col, normalize);\r\n\r\n //getDataItemでitemを取得すると、getDataSourcとのe参照切れるみたいなので、再度セットしなければならない\r\n //this.rawSheet.getDataSource()[row] = rowData;\r\n dataSource[row] = rowData;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n","import * as _ from \"lodash\";\r\nimport * as Dialog from \"./dialog\";\r\nimport * as Loading from \"./loading\";\r\nimport * as constant from \"./define/constant\";\r\nimport { Business } from \"./business\";\r\n\r\n/**\r\n * \r\n */\r\n//export default class Util {\r\nexport class Util {\r\n\r\n /** C# min */\r\n\r\n //C# 日付(最小で \"0001年1月1日 0時0分0秒\"、最大で \"9999年12月31日 23時59分59秒\" )\r\n //javascript 日付(紀元前271821年4月20日 - 紀元275760年9月13日 )\r\n\r\n //C#では下記だが、JSでは、下記は2001年判断になるので\r\n //static readonly MIN_DATETIME: Date = new Date('0001/01/01 00:00:00');\r\n //一旦100年としておく\r\n static readonly MIN_DATETIME: Date = new Date('0100/01/01 00:00:00');\r\n /** C# Max */\r\n static readonly MAX_DATETIME: Date = new Date('9999/12/31 23:59:59');\r\n\r\n /***/\r\n static readonly window = {\r\n\r\n /**/\r\n subWindowNames: {\r\n ProcessManagement: 'ProcessManagement',\r\n ProgressManagement: 'ProgressManagement',\r\n ViewProgress: 'ViewProgress',\r\n ReHold: 'ReHold',\r\n ScheduleApproval: 'ScheduleApproval',\r\n ScheduleExport: 'ScheduleExport',\r\n Summary: 'Summary',\r\n SummaryGraph: 'SummaryGraph',\r\n SummaryMeeting: 'SummaryMeeting',\r\n SummaryIncomplete: 'SummaryIncomplete',\r\n SummaryWhole: 'SummaryWhole'\r\n\r\n },\r\n\r\n /***/\r\n opendWinds: [],\r\n\r\n /**\r\n * \r\n * @param url\r\n * @param method\r\n * @param windowName\r\n * @param isSuffixDateTime\r\n * @param params\r\n */\r\n open: function (url, method, windowName, isSuffixDateTime, params) {\r\n //let windowWidth = $(window).width();\r\n //let windowHeight = $(window).height();\r\n if (isSuffixDateTime) {\r\n const date = new Date();\r\n windowName += date.getTime();\r\n }\r\n\r\n\r\n //新規window\r\n //const newWindow = window.open('about:blank', windowName, 'width=' + windowWidth + ',height=' + windowHeight + ', location=yes, toolbar=yes, resizable=yes, scrollbars=yes');\r\n //新規Tab(windowFeatures を指定しないことでTABになる)\r\n //const newWindow = window.open('about:blank', windowName);\r\n\r\n //#2836 【不具合】ITA_V_04_PROG_003_1_006他_進捗表カレンダーにて未保存で他画面遷移した場合のダイアログが2度表示される\r\n //下記の方式だとbeforeUnloadが2度走ってしまう、現状も使用していない機能なのでので廃止!\r\n\r\n //if (windowName && windowName != '_blank') {\r\n // //新規Tab(windowFeatures を指定しないことでTABになる)\r\n // const newWindow = window.open('about:blank', windowName);\r\n // //\r\n // Util.window.opendWinds.push(newWindow);\r\n //}\r\n\r\n // #4354 iphone safariで既に開かれているwindowの場合切り替わらないので一旦閉じる対応を入れる\r\n // モバイル判定する必要は正直ないが、PCの場合特に問題がないので、影響範囲を狭めるため条件にしておく。\r\n if (Util.userAgent.isMobile) {\r\n if (windowName && !(windowName == '_blank' || windowName == '_self')) {\r\n const targetWindow = window.open('', windowName);\r\n // 開いたwindowのurlが about:blank だったら、空windowが開けたことになる\r\n if (targetWindow.location.href != 'about:blank') {\r\n // windowのurlが about:blank ではなかった場合、既にそのwindowは存在しているので一旦閉じる\r\n targetWindow?.close();\r\n }\r\n }\r\n }\r\n\r\n const form = $('
', { action: url, method: method, target: windowName });\r\n $.each(params, function (key, value) {\r\n form.append($('', { name: key, value: value }));\r\n });\r\n\r\n //#1783 CSRF対策\r\n //通常リクエストの場合、POSTの場合のみCSRFトークンを付加する(getだとLocationにQueryStringとして出てしまう)\r\n if (method === 'post') {\r\n //cookieからCSRFトークン取得\r\n const csrfToken = Util.getCSRFToken();\r\n //ASP.NETデフォルト'__RequestVerificationToken'。\r\n //Headerに含めず、リクエストリクエストに含める場合はこの名前、\r\n form.append($('', { name: '__RequestVerificationToken', value: csrfToken }));\r\n\r\n //#2612 最終projectCodeではなくprojectIdの引き回し運用とする(sessionProjectInfo廃止検討)\r\n //セッションにプロジェクト情報を保持しなくなる為、プロジェクトコードを都度パラメータに含める\r\n let projectId = Util.getProjectId();\r\n form.append($('', { name: '_projectId', value: projectId }));\r\n let projectCode = Util.getProjectCode();\r\n form.append($('', { name: '_projectCode', value: projectCode }));\r\n }\r\n\r\n form.appendTo(document.body);\r\n form.submit().remove();\r\n },\r\n\r\n /** * */\r\n location: {\r\n /**\r\n * \r\n * @param name\r\n * @param url\r\n */\r\n getParam: function (name, url?) {\r\n url = window.location.href || url\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n let regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) { return null; }\r\n if (!results[2]) { return ''; }\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n },\r\n\r\n /** \r\n * \r\n * */\r\n checkEdited: {\r\n /**\r\n * \r\n * @param name\r\n * @param url\r\n */\r\n getParam: function (name, url?) {\r\n url = window.location.href || url\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n let regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) { return null; }\r\n if (!results[2]) { return ''; }\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n },\r\n\r\n /**\r\n * 画面のUnloaf監視、SPIRIT管理の子画面を全て閉じる\r\n */\r\n onCloseSubWindow() {\r\n // CLOSE\r\n //window.addEventListener('unload', function (event) {\r\n window.addEventListener('beforeunload', function (event) {\r\n //debugger;\r\n //強制全クローズ\r\n Util.window.closeSubWindow();\r\n });\r\n },\r\n\r\n /**\r\n * SPIRIT管理の子画面を全て閉じる(ちらつく)\r\n */\r\n closeSubWindow() {\r\n\r\n //強制全クローズ\r\n for (let name in Util.window.subWindowNames) {\r\n var winObj = window.open('', name); //サブwindowを空画面で上書き\r\n winObj?.close();\r\n }\r\n },\r\n\r\n\r\n //#2836 【不具合】ITA_V_04_PROG_003_1_006他_進捗表カレンダーにて未保存で他画面遷移した場合のダイアログが2度表示される\r\n /**\r\n * \r\n * コッチできっちり行えればちらつきはない\r\n * ただしF5をされた段階で、メモリ上から消えてしまうので\r\n * 保管領域をどうにかする必要がある\r\n * @deprecated\r\n */\r\n //onCloseMagnagedWindow() {\r\n // // CLOSE\r\n // //window.addEventListener('unload', function (event) {\r\n // window.addEventListener('beforeunload', function (event) {\r\n // //debugger;\r\n // Util.window.opendWinds.forEach(subWindow => {\r\n // subWindow?.close();\r\n // });\r\n\r\n // });\r\n //},\r\n\r\n\r\n }\r\n\r\n /**\r\n * \r\n * @param arg\r\n * @param isErrorHandling ダウンロードはfalse\r\n */\r\n static ajax(arg, isErrorHandling = true) {\r\n //cookieからCSRFトークン取得\r\n const csrfToken = Util.getCSRFToken();\r\n //#2612 最終projectCodeではなくprojectIdの引き回し運用とする(sessionProjectInfo廃止検討)\r\n //セッションにプロジェクト情報を保持しなくなる為、プロジェクトコードを都度パラメータに含める\r\n let projectId = Util.getProjectId();\r\n let projectCode = Util.getProjectCode();\r\n //beforeSend内では、追加データをパラメータに含めるのが難儀(既に良い感じでescape掛かっている)\r\n //dataとして含めてしまう(getの場合はQueryパラメータに含まれるようになる)\r\n arg.data = arg.data || {};\r\n if (projectCode) {\r\n // Ajaxでファイルアップロードする場合、FormDataのため通常のObjectと異なる!\r\n if (arg.data.toString().indexOf('FormData') > -1) {\r\n // 何かいい条件分あれば変えたい。\r\n arg.data.append('_projectId', projectId);\r\n arg.data.append('_projectCode', projectCode);\r\n } else {\r\n //extendだと元のarg.dataを侵してしまうので\r\n //$.extend(arg.data, { projectCode: projectCode });\r\n //defaultsにする\r\n _.defaults(arg.data, { _projectId: projectId });\r\n _.defaults(arg.data, { _projectCode: projectCode });\r\n }\r\n }\r\n\r\n //$.ajaxSettings.cache = false;\r\n //const opt = $.extend({}, $.ajaxSettings, { cache: false }, arg);\r\n const opt = $.extend({}, $.ajaxSettings, {\r\n cache: false,\r\n //#1783 CSRF対策\r\n //※実は下記はいらないのでは?\r\n //デフォルトの.AspNetCore.AntiforgeryのCoookieが\r\n //Startup.csのoptions.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());\r\n //を追記しただけでで有効になってるかも!!\r\n\r\n beforeSend: function (xhr, settings) {\r\n //【Angularやaxiosに合わせておく】\r\n //なぜX-XSRF-TOKENという名前にするかというと、Angularやaxiosなどのクライアントのajaxライブラリでは、\r\n //レスポンスされたXSRF - TOKEN(cookieのXSRF - TOKEN)の値を、\r\n //リクエスト時に「X-XSRF-TOKEN」という名前でリクエストヘッダに含める動作を自動的に行っているためです。\r\n //トークンの名前を合わせておけば、クライアント側でリクエストヘッダにXSRFトークンを追加するような処理を実装する必要がなくなります。\r\n //X-XSRF-TOKENのキー名でTokenをチェックさせます。\r\n if (csrfToken) {\r\n xhr.setRequestHeader(\"X-XSRF-TOKEN\", csrfToken);\r\n }\r\n }\r\n }, arg);\r\n\r\n const jqXHR = $.ajax(opt);\r\n const deferred = $.Deferred();\r\n // Ajax通信成功時\r\n jqXHR.done(function (data, statusText, jqXHR) {\r\n // 共通処理\r\n // 呼ばれ元のdoneを実行\r\n deferred.resolveWith(this, arguments);\r\n });\r\n // Ajax通信失敗時\r\n jqXHR.fail(function (jqXHR, statusText, errorThrown) {\r\n // 共通処理\r\n // 呼ばれ元のfailを実行\r\n deferred.rejectWith(this, arguments);\r\n\r\n Loading.loading.hide();\r\n\r\n let isDev = false;\r\n let errInfo = null;\r\n try {\r\n // 本番の場合、JSONで返却される\r\n errInfo = JSON.parse(jqXHR.responseText)\r\n }\r\n catch (e) {\r\n // 開発の場合、.coreのUseDeveloperExceptionPageを使用するためhtml or text が返却される\r\n isDev = true;\r\n }\r\n\r\n if (isErrorHandling) {\r\n // ダウンロード以外の場合\r\n //#4047 \r\n if (jqXHR.status == 401) {\r\n //let current = window.location.href;\r\n const $errContainer = $(`
${errInfo.detail}
再度ログインしてください。
エラー発生日時:${errInfo.instance}
`);\r\n Dialog.MessgeDialog(errInfo.title, $errContainer, (res) => {\r\n //OKであろうがなんであろうが、reloadする\r\n //if (res === 'ok') {\r\n //現在のtofFrameNavigationのURLをリロードする\r\n //セッション(認証)が有効で無い場合、ログイン画面へリダイレクトされるだろう\r\n //その後、そのままログインすれば、現在のページに戻ってくる想定!!\r\n //編集状態の場合があるので、強制的にフラグを落とす\r\n Business.page.immediateEditCancel();\r\n window.location.reload();\r\n //}\r\n });\r\n return;\r\n } else {\r\n if (!isDev) {\r\n\r\n const $errContainer = $(`
${errInfo.detail}
システム管理者へお問い合わせ下さい。
エラー発生日時:${errInfo.instance}
`);\r\n\r\n Dialog.MessgeDialog(errInfo.title, $errContainer, (res) => {\r\n //if (res === 'ok') {\r\n //}\r\n });\r\n\r\n } else {\r\n\r\n const $errContainer = $('
');\r\n $errContainer.html(jqXHR.responseText);\r\n\r\n Dialog.MessgeDialog('システムエラー', $errContainer, (res) => {\r\n //if (res === 'ok') {\r\n //}\r\n });\r\n\r\n }\r\n }\r\n\r\n }\r\n });\r\n // Ajax処理完了\r\n jqXHR.always(function () {\r\n // 共通処理\r\n\r\n });\r\n // Deferred ObjectのPromiseを返却\r\n return $.extend({}, jqXHR, deferred.promise());\r\n }\r\n\r\n\r\n /**\r\n * @async\r\n */\r\n static async getData(url: string, data?: any) {\r\n //return new Promise((resolve, reject) => {\r\n return new Promise((resolve, reject) => {\r\n Util.ajax({\r\n url: url,\r\n type: 'GET',\r\n data: data,\r\n //dataType: 'json',\r\n }).done(function (res) {\r\n // なぜjsonにならない?とりあえずparseする\r\n try {\r\n res = JSON.parse(res) || {};\r\n if (res.IsError) {\r\n reject(res.StatusCode)\r\n } else {\r\n resolve(res.Data || [])\r\n }\r\n } catch (e) {\r\n //一旦エラーとする\r\n reject();\r\n }\r\n }).fail(function (jqXHR, statusText, errorThrown) {\r\n reject(errorThrown);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * @async\r\n */\r\n static async postData(url: string, data?: any, isReturnRes?: boolean) {\r\n //return new Promise((resolve, reject) => {\r\n return new Promise((resolve, reject) => {\r\n Util.ajax({\r\n url: url,\r\n type: 'POST',\r\n data: data,\r\n //dataType: 'json',\r\n }).done(function (res) {\r\n // なぜjsonにならない?とりあえずparseする\r\n try {\r\n res = JSON.parse(res) || {};\r\n if (isReturnRes) {\r\n resolve(res);\r\n } else {\r\n if (res.IsError) {\r\n reject(res.StatusCode)\r\n } else {\r\n resolve(res.Data || [])\r\n }\r\n }\r\n } catch (e) {\r\n //一旦エラーとする\r\n reject();\r\n }\r\n }).fail(function (jqXHR, statusText, errorThrown) {\r\n reject(errorThrown);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * POSTリクエストする\r\n * @param String アクション\r\n * @param POSTデータ連想配列\r\n */\r\n static execPost(action, data?) {\r\n Util.request(action, 'post', data);\r\n }\r\n\r\n /**\r\n * Getリクエストする\r\n * @param String アクション\r\n * @param Object データ連想配列\r\n */\r\n static execGet(action, data?) {\r\n Util.request(action, 'get', data);\r\n }\r\n\r\n /**\r\n * リクエスト(TopFrameNavigationに対して)\r\n * @param \r\n * @param action url\r\n * @param method \r\n * @param data POSTデータ連想配列\r\n * @param CSRF \r\n */\r\n static request(action, method: 'post' | 'get' | 'put' | 'delete', data?, CSRF: boolean = true) {\r\n // フォームの生成\r\n const form = document.createElement(\"form\");\r\n form.setAttribute(\"action\", action);\r\n form.setAttribute(\"method\", method);\r\n form.style.display = \"none\";\r\n document.body.appendChild(form);\r\n\r\n // パラメタの設定\r\n if (data !== undefined) {\r\n for (const paramName in data) {\r\n const input = document.createElement('input');\r\n input.setAttribute('type', 'hidden');\r\n input.setAttribute('name', paramName);\r\n input.setAttribute('value', data[paramName]);\r\n form.appendChild(input);\r\n }\r\n }\r\n\r\n //#1783 CSRF対策\r\n //通常リクエストの場合、POSTの場合のみCSRFトークンを付加する(getだとLocationにQueryStringとして出てしまう)\r\n if (method === 'post' && CSRF) {\r\n //cookieからCSRFトークン取得\r\n const csrfToken = Util.getCSRFToken();\r\n const input = document.createElement('input');\r\n input.setAttribute('type', 'hidden');\r\n //ASP.NETデフォルト'__RequestVerificationToken'。\r\n //Headerに含めず、リクエストリクエストに含める場合はこの名前、\r\n input.setAttribute('name', '__RequestVerificationToken');\r\n input.setAttribute('value', csrfToken);\r\n form.appendChild(input);\r\n }\r\n\r\n\r\n //セッションにプロジェクト情報を保持しなくなる為、プロジェクトコードを都度パラメータに含める\r\n if (method === 'post') {\r\n\r\n let projectId = Util.getProjectId();\r\n let input = document.createElement('input');\r\n input.setAttribute('type', 'hidden');\r\n input.setAttribute('name', '_projectId');\r\n input.setAttribute('value', projectId);\r\n form.appendChild(input);\r\n\r\n\r\n //ProjectCode取得\r\n const projectCode = Util.getProjectCode();\r\n input = document.createElement('input');\r\n input.setAttribute('type', 'hidden');\r\n input.setAttribute('name', '_projectCode');\r\n input.setAttribute('value', projectCode);\r\n form.appendChild(input);\r\n }\r\n\r\n // submit\r\n form.submit();\r\n }\r\n\r\n /**\r\n * 指定されたcookieを取得\r\n * (指定するcookie名はHttpOnlyがfalseである必要がある)\r\n * @param cname\r\n */\r\n static getCookie(cname) {\r\n var name = cname + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n\r\n /**\r\n * cookieからCSRFトークン取得\r\n * @param cname\r\n */\r\n static getCSRFToken() {\r\n //CSRF対策\r\n //Angularやaxiosに合わせておく\r\n //なぜX-XSRF-TOKENという名前にするかというと、Angularやaxiosなどのクライアントのajaxライブラリでは、レスポンスされたXSRF-TOKEN(cookieのXSRF-TOKEN)の値を、\r\n //リクエスト時にX - XSRF - TOKENという名前でリクエストヘッダに含める動作を自動的に行っているためです。\r\n //トークンの名前を合わせておけば、クライアント側でリクエストヘッダにXSRFトークンを追加するような処理を実装する必要がなくなります。\r\n //X-XSRF-TOKENのキー名でTokenをチェックさせます。\r\n return Util.getCookie(\"XSRF-TOKEN\") || '';\r\n }\r\n\r\n\r\n /**\r\n * 画面埋め込みのProjectCodeを取得する\r\n * @param cname\r\n */\r\n static getProjectId() {\r\n //画面埋め込みのProjectCodeを取得する\r\n return ($('#_projectId').val() || '') + '';\r\n }\r\n\r\n /**\r\n * 画面埋め込みのProjectCodeを取得する\r\n * @param cname\r\n */\r\n static getProjectCode() {\r\n //画面埋め込みのProjectCodeを取得する\r\n return ($('#_projectCode').val() || '') + '';\r\n }\r\n\r\n /**\r\n * \r\n */\r\n static readonly userAgent = {\r\n /**\r\n * \r\n */\r\n isMobile: function () {\r\n\r\n //#5680 現在のipadのUAは、ChromeのほうにはUAにiPadが含まれているが、SafariだとUAにiPadが含まれていない\r\n //iPad Safariを判定に含めるにはmacintoshと'ontouchend' in documentをifの条件に加えれば判定できる。\r\n\r\n //if (navigator.userAgent.match(/iPhone|Android.+Mobile/)) {\r\n // return true;\r\n //} else {\r\n // return false;\r\n //}\r\n const ua = navigator.userAgent.toLowerCase()\r\n if (/android|ipod|ipad|iphone|macintosh/.test(ua) && 'ontouchend' in document) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n\r\n /***/\r\n static readonly screenMode = {\r\n /**\r\n * スクリーンのサイズを特定する\r\n * @param e\r\n */\r\n detectScreenMode: function (e?) {\r\n let tablet = 768; // タブレット\r\n let mobile = 576; // スマホ\r\n let width = $(window).width();\r\n $('body').removeAttr('data-screen');\r\n if (width <= mobile) {\r\n $('body').attr('data-screen', 'mobile');\r\n } else if (mobile < width && width <= tablet) {\r\n $('body').attr('data-screen', 'tablet');\r\n } else {\r\n $('body').attr('data-screen', 'desktop');\r\n }\r\n },\r\n\r\n /***/\r\n Mode: function (): 'mobile' | 'tablet' | 'desktop' {\r\n let screen = $('body').attr('data-screen');\r\n if (screen === 'mobile') {\r\n return 'mobile';\r\n } else if (screen === 'tablet') {\r\n return 'tablet';\r\n } else {\r\n return 'desktop';\r\n }\r\n },\r\n\r\n /***/\r\n isMobile: function () {\r\n return Util.screenMode?.Mode() === 'mobile';\r\n },\r\n\r\n /***/\r\n isTablet: function () {\r\n return Util.screenMode?.Mode() === 'tablet';\r\n },\r\n /***/\r\n isDesktop: function () {\r\n return Util.screenMode?.Mode() === 'desktop';\r\n }\r\n }\r\n\r\n /**\r\n * 日付関連Util\r\n */\r\n static readonly date = {\r\n\r\n /**\r\n * YYYYMMDD or YYYY/MM/DD形式\r\n * @param {any} date\r\n * @param {any} isSlash\r\n */\r\n getYYYYMMDD: function (date, isSlash?) {\r\n if (date == null || date == '') { return null; }\r\n const dt = new Date(date);\r\n const y = dt.getFullYear();\r\n const m = ('00' + (dt.getMonth() + 1)).slice(-2);\r\n const d = ('00' + dt.getDate()).slice(-2);\r\n\r\n if (isSlash) {\r\n return y + '/' + m + '/' + d;\r\n } else {\r\n return y + m + d;;\r\n }\r\n },\r\n\r\n /**\r\n * YYYYMMDD or YYYY/MM/DD形式の今日日付\r\n * @param {any} isSlash\r\n */\r\n getNowYYYYMMDD: function (isSlash?) {\r\n const dt = new Date();\r\n return this.getYYYYMMDD(dt, isSlash);\r\n },\r\n\r\n /**\r\n * yyyyMMddHHmmssの現在日時\r\n * */\r\n getNowYYYYMMDDHHMMSS: function () {\r\n var date = new Date();\r\n return date.getFullYear() + ('0' + (date.getMonth() + 1)).slice(-2) + ('0' + date.getDate()).slice(-2) + ('0' + date.getHours()).slice(-2) + ('0' + date.getMinutes()).slice(-2) + ('0' + date.getSeconds()).slice(-2);\r\n },\r\n\r\n /**\r\n * YYYYMMDD or YYYY/MM/DD形式の翌日日付日付\r\n * @param {any} isSlash\r\n */\r\n getNextDayYYYYMMDD: function (isSlash?) {\r\n const dt = new Date();\r\n dt.setDate(dt.getDate() + 1);\r\n return this.getYYYYMMDD(dt, isSlash);\r\n },\r\n\r\n /**\r\n * YYYY/MM/DD(AAA)形式\r\n * @param {any} date\r\n */\r\n getYYYYMMDDAAA: function (date) {\r\n if (date == null || date == '') { return null; }\r\n const dt = new Date(date);\r\n const y = dt.getFullYear();\r\n const m = ('00' + (dt.getMonth() + 1)).slice(-2);\r\n const d = ('00' + dt.getDate()).slice(-2);\r\n const w = dt.getDay();\r\n const wjp = [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"][w];\r\n\r\n return y + '/' + m + '/' + d + '(' + wjp + ')';\r\n },\r\n\r\n /**\r\n * 日付の差\r\n * @param {any} _date1\r\n * @param {any} _date2\r\n */\r\n termDay: function (_date1, _date2?) {\r\n if (_date1 === null && _date2 === null) { return 0; }\r\n const date1 = new Date(_date1);\r\n const date2 = (_date2 == null) ? new Date(this.getNowYYYYMMDD(true)) : new Date(_date2);\r\n const termDay = (date2.valueOf() - + date1.valueOf()) / 86400000;\r\n //console.log(termDay);\r\n return termDay;\r\n },\r\n\r\n /**\r\n * 日付の間隔(差)\r\n * @param {any} _date1\r\n * @param {any} _date2\r\n */\r\n interval: function (_date1, _date2) {\r\n return Math.abs(this.termDay(_date1, _date2));\r\n },\r\n\r\n /**\r\n * 入力された値が日付形式になれるか\r\n * @param dateLike\r\n */\r\n isDate: function (dateLike) {\r\n if (_.isNil(dateLike)) { return false; }\r\n var dt: Date;\r\n if (_.isString(dateLike)) {\r\n let y: number = null;\r\n let m: number = null;\r\n let d: number = null;\r\n //'/'除去\r\n dateLike = dateLike.split('/').join('');\r\n //'-'除去\r\n dateLike = dateLike.split('-').join('');\r\n\r\n //if (dateLike.length >= 8) {\r\n //時刻が入ってきている場合はTruncateする\r\n if (dateLike.length > 8) {\r\n dateLike = dateLike.substr(0, 8);\r\n }\r\n if (dateLike.length === 8) {\r\n //YYYYMMDD\r\n y = _.toSafeInteger(dateLike.substr(0, 4));\r\n m = _.toSafeInteger(dateLike.substr(4, 2)) - 1; //1月は0から始まる為 -1 する。\r\n d = _.toSafeInteger(dateLike.substr(6, 2));\r\n } else if (dateLike.length === 6) {\r\n //YYYYMD\r\n y = _.toSafeInteger(dateLike.substr(0, 4));\r\n m = _.toSafeInteger(dateLike.substr(4, 1)) - 1; //1月は0から始まる為 -1 する。\r\n d = _.toSafeInteger(dateLike.substr(5, 1));\r\n } else {\r\n //それ以外はエラー\r\n return false;\r\n }\r\n\r\n dt = new Date(y, m, d);\r\n if (dt.getFullYear() != y ||\r\n dt.getMonth() != m ||\r\n dt.getDate() != d) {\r\n return false;\r\n }\r\n\r\n } else if (_.isDate(dateLike)) {\r\n dt = dateLike;\r\n }\r\n\r\n //有効なDateか判定\r\n if (_.isNaN(dt.getMilliseconds())) {\r\n return false;\r\n }\r\n if (dt < Util.MIN_DATETIME || Util.MAX_DATETIME < dt) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n /**\r\n * 入力された値が日付でYYYY/MM/DD形式になっているか調べる\r\n * @param dateLike\r\n */\r\n isDateString: function (dateLike) {\r\n\r\n if (_.isNil(dateLike)) { return false; }\r\n\r\n //if (_.isDate(dateLike)) {\r\n // //有効なDateか判定\r\n // if (_.isNaN(dateLike.getMilliseconds())) {\r\n // return false;\r\n // }\r\n //}\r\n\r\n if (!dateLike.match(/^\\d{4}\\/\\d{2}\\/\\d{2}$/)) { return false; }\r\n var y = dateLike.split(\"/\")[0];\r\n var m = dateLike.split(\"/\")[1] - 1;\r\n var d = dateLike.split(\"/\")[2];\r\n var date = new Date(y, m, d);\r\n if (date.getFullYear() != y || date.getMonth() != m || date.getDate() != d) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n /**\r\n * 入力された値が月日だけ、または年月日になっているか調べる\r\n * @param dateLike\r\n */\r\n isDateMDorYMD: function (dateLike) {\r\n if (_.isNil(dateLike)) { return false; }\r\n var dt: Date;\r\n if (_.isString(dateLike) || _.isNumber(dateLike)) {\r\n\r\n dateLike = dateLike.toString();\r\n\r\n // 区切り文字を統一してから分割する\r\n let splited: string[] = dateLike.replace(\"-\", \"/\").split(\"/\");\r\n\r\n if (splited.length == 3) {\r\n // 年月日あり\r\n if (!dateLike.match(/^\\d{1,4}[\\-\\/]\\d{1,2}[\\-\\/]\\d{1,2}$/)) { return false; }\r\n\r\n } else if (splited.length == 2) {\r\n // 月日のみ\r\n if (!dateLike.match(/^\\d{1,2}[\\-\\/]\\d{1,2}$/)) { return false; }\r\n\r\n // 当年の年度を先頭に付加する\r\n const thisYear = new Date().getFullYear();\r\n splited.unshift(thisYear.toString());\r\n\r\n } else {\r\n // それ以外はエラー\r\n return false;\r\n }\r\n\r\n const y = parseInt(splited[0], 10);\r\n const m = parseInt(splited[1], 10) - 1;\r\n const d = parseInt(splited[2], 10);\r\n dt = new Date(y, m, d);\r\n if (dt.getFullYear() != y || dt.getMonth() != m || dt.getDate() != d) {\r\n return false;\r\n }\r\n } else if (_.isDate(dateLike)) {\r\n dt = dateLike;\r\n }\r\n\r\n //有効なDateか判定\r\n if (_.isNaN(dt.getMilliseconds())) {\r\n return false;\r\n }\r\n if (dt < Util.MIN_DATETIME || Util.MAX_DATETIME < dt) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n /**\r\n * 時刻の妥当性チェックをする\r\n * @param str\r\n */\r\n isTime: function (str) {\r\n if (_.isNil(str)) { return false; }\r\n str += '';\r\n return str.match(/^([01]?[0-9]|2[0-3]):([0-5][0-9])$/) !== null;\r\n },\r\n\r\n /**\r\n * 入力された値が月日だけの場合に当年日付(YYYYY/MM/DD)に変換する\r\n * 元の値が年月日の場合はそのままの年度のYYYY/MM/DDで返却する\r\n * @param dateLike\r\n */\r\n convertMDtoYYYYYMMD: function (dateLike) {\r\n // 有効な日付でない場合は、元の値を返却する\r\n if (!this.isDateMDorYMD(dateLike)) { return dateLike; }\r\n\r\n let convertDateString = dateLike;\r\n if (_.isDate(dateLike)) {\r\n // Date型の場合\r\n convertDateString = this.getYYYYMMDD(dateLike, true);\r\n } else if (!_.isNil(dateLike)) {\r\n // Date型でない場合、文字列として処理\r\n let splited: string[] = dateLike.replace(\"-\", \"/\").split(\"/\");\r\n if (splited.length == 2) {\r\n // 月日のみが入力されている場合は当年を付加する\r\n convertDateString = new Date().getFullYear() + \"/\" + dateLike;\r\n }\r\n convertDateString = this.getYYYYMMDD(convertDateString, true);\r\n }\r\n return convertDateString;\r\n },\r\n\r\n /**\r\n * @param dateLike\r\n */\r\n toSafeDate: function (dateLike, truncate: boolean = true) {\r\n if (_.isNil(dateLike)) {\r\n return (truncate) ? null : dateLike;\r\n }\r\n let dt = new Date(dateLike);\r\n if (!_.isDate(dt)) {\r\n return (truncate) ? null : dateLike;\r\n }\r\n if (_.isNaN(dt.getMilliseconds())) {\r\n return (truncate) ? null : dateLike;\r\n }\r\n if (dt < Util.MIN_DATETIME || Util.MAX_DATETIME < dt) {\r\n return (truncate) ? null : dateLike;\r\n }\r\n return dt;\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Date型をJSONで正しく扱える文字列に変換する\r\n *!!Excel Export 対応!!\r\n *getProductData内で、上手く帳尻合わせてしまうこととした!\r\n * @param list \r\n * @deprecated\r\n */\r\n static convertDateToJSON(list: any[]) {\r\n // Date型をそのままjQuery.Ajaxに渡すと、toStringされて、 日付として解釈できないのでJSONの文字列に変換する\r\n\r\n //(new Date()).toString();\r\n // >>>\"Wed Mar 10 2021 09:19:08 GMT+0900 (日本標準時)\"←これでリクエストにのり、サーバーエラー\r\n //\r\n //(new Date()).toUTCString();\r\n // >>>\"Wed, 10 Mar 2021 00:19:14 GMT\"\r\n //\r\n // (new Date()).toGMTString();\r\n // >>>\"Wed, 10 Mar 2021 00:19:23 GMT\"\r\n //\r\n //(new Date()).toJSON()\r\n // >>>\"2021-03-10T00:49:50.829Z\"\r\n\r\n //Date インスタンスは、特定の時点を参照します。\r\n //toJSON() の呼び出しは、Date オブジェクトの値を表す文字列(toISOString() を使用) を返します。\r\n //このメソッドは、一般的に、JSON シリアライズを目的として Date オブジェクトをシリアライズするために使用されます。\r\n\r\n list.forEach((row, index) => {\r\n _.forOwn(row, function (item, key) {\r\n if (_.isDate(item)) {\r\n //debugger;\r\n //ただし上で述べたように JSON.stringify したときの文字列表現は ISO8601 になるが、タイムゾーンを無視して常に UTC になってしまう。\r\n //var dt = new Date(\"2016-05-01T00:00+0900\");\r\n //dt.toJSON() => 2016 - 04 - 30T15: 00: 00Z\r\n //タイムゾーン指定を見落とすと、指定した日時と異なる結果が返ったように見えます。\r\n //row[key] = item.toJSON();\r\n //チョット気持ち悪いので、toLocaleStringでもよいかも(マシンによっては狂うかもね)\r\n row[key] = item.toLocaleString('ja-JP');\r\n }\r\n });\r\n });\r\n\r\n return list;\r\n };\r\n\r\n /**\r\n * メッセージ取得\r\n * @param {string} msgId メッセージID\r\n * @param {string[]} params プレースホルダに対応する文字列\r\n * @returns {string} Message.jsonに対応するメッセージ\r\n */\r\n static getMessage(msg: string, params?: any[]) {\r\n\r\n let r = msg;\r\n\r\n if (params) {\r\n params.forEach((param, i) => {\r\n r = r.replace(`{${i}}`, param);\r\n });\r\n }\r\n\r\n return r;\r\n };\r\n\r\n /**\r\n * ファイルサイズ確認\r\n * @param {number} size ファイルサイズ\r\n */\r\n static isFileSizeOverLimit(size: number): boolean {\r\n\r\n // 1024[byte]をベースに上限値を決める\r\n const limitSize = 1024 * 1024 * constant.MAX_FILESIZE;\r\n\r\n // ファイルサイズの判定\r\n const result = size >= limitSize\r\n ? true : false;\r\n\r\n return result;\r\n };\r\n\r\n /**\r\n * ファイルダウンロード\r\n * @param url\r\n * @param fileName\r\n */\r\n static downloadFile(url, fileName) {\r\n\r\n const csrfToken = Util.getCSRFToken();\r\n const projectId = Util.getProjectId();\r\n const projectCode = Util.getProjectCode();\r\n\r\n // ファイルダウンロード\r\n const a = document.createElement('a');\r\n a.href = url + '?fileName=' + fileName + '&_projectId=' + projectId + '&_projectCode=' + projectCode + '&_=' + csrfToken;\r\n document.body.appendChild(a);\r\n a.download = fileName;\r\n a.click();\r\n a.remove();\r\n\r\n // #3161【不具合:モ】ITB-06-002_1_1_6_9:Box連携画面のダウンロード時にシステムエラーが表示される\r\n // ダウンロードとAjaxがうまくいかないので、ダウンロード処理内でログを取るように変更\r\n // クライアントダウンロードではなくサーバーダウンロードなのでAjaxである必要はない\r\n //// ログ\r\n //Util.ajax({\r\n // url: '/LogInfo/BoxDownloadLog',\r\n // type: 'POST',\r\n // data: { fileName: a.download }\r\n //});\r\n\r\n }\r\n\r\n\r\n\r\n /**\r\n * html関連\r\n */\r\n static readonly html = {\r\n /** \r\n * 文字列エスケープ\r\n */\r\n escape: function (string) {\r\n string = string || '';\r\n return string.replace(/\\&/g, '&')\r\n .replace(/\\/g, '>')\r\n .replace(/\\\"/g, '"')\r\n .replace(/\\'/g, ''');\r\n },\r\n\r\n /**\r\n * 改行タグ変換\r\n */\r\n nl2br: function (string) {\r\n string = string || '';\r\n string = string.replace(/\\r\\n/g, \"
\");\r\n string = string.replace(/(\\n|\\r)/g, \"
\");\r\n return string;\r\n }\r\n }\r\n\r\n /** 残業時間の選択肢 */\r\n static getOvertimeChoiceList() {\r\n return [\"\", \"定時\",\r\n \"17:00\", \"18:00\", \"19:00\", \"20:00\", \"21:00\", \"22:00\", \"23:00\", \"24:00\",\r\n \"翌1:00\", \"翌2:00\", \"翌3:00\", \"翌4:00\", \"翌5:00\", \"翌6:00\", \"翌7:00\", \"翌8:00\", \"翌9:00\", \"24h作業\",\r\n ];\r\n }\r\n\r\n /**\r\n * ダウンロード\r\n * @param url\r\n * @param data\r\n */\r\n static download(url: string, data) {\r\n\r\n let result = 'success';\r\n\r\n return new Promise(resolve => {\r\n this.ajax({\r\n url: url,\r\n type: 'POST',\r\n data: data,\r\n xhrFields: { responseType: 'blob' },\r\n }, false).done(function (data, textStatus, jqXHR) {\r\n\r\n const disposition = jqXHR.getResponseHeader('Content-Disposition');\r\n let fileName; // サーバー側で定義したファイル名を取得する\r\n if (disposition && disposition.indexOf('attachment') !== -1) {\r\n // 正規表現\r\n var filenameRegex = /filename[^;=\\n]=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(disposition);\r\n if (matches != null && matches[1]) {\r\n // matches[1]でとれる⇒ filename*=utf-8''201911%E3%83%87%E3%83%BC%E3%82%BF.csv;\r\n // 不要文字列を消して、デコードしてサーバからのファイル名を取得\r\n fileName = decodeURI(matches[1].replace(/['\"]/g, '').replace('UTF-8', ''));\r\n }\r\n }\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n // ↓ IEでのダウンロード\r\n window.navigator.msSaveOrOpenBlob(data, fileName);\r\n // ↓ IE以外でのダウンロード\r\n } else {\r\n const blob = new Blob([data], { type: 'application/octet-binary' });\r\n const downloadUrl = URL.createObjectURL(blob);\r\n const a = document.createElement(\"a\");\r\n a.href = downloadUrl;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n }\r\n resolve(result);\r\n })\r\n .fail(function (jqXHR, textStatus, errorThrown) {\r\n // #4792 戻り値はファイルが期待されている為、ファイル以外が返されるとエラー情報が拾えない\r\n // Successで返してもparseerrorとなる。 その為、エラーダイアログは独自で作る。\r\n result = 'error';\r\n const date = new Date();\r\n const nowTime = date.getFullYear() + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + ('0' + date.getDate()).slice(-2) + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2) + ':' + ('0' + date.getSeconds()).slice(-2);\r\n\r\n if (jqXHR.status == 401) {\r\n const title = jqXHR.status + ' Unauthorized'; // タイトルは「401 Unauthorized」\r\n const message = '認証に失敗しました。';\r\n const $errContainer = $(`
${message}
再度ログインしてください。
エラー発生日時:${nowTime}
`);\r\n Dialog.MessgeDialog(title, $errContainer, (res) => {\r\n Business.page.immediateEditCancel();\r\n window.location.reload();\r\n });\r\n return;\r\n } else {\r\n // セッション切れ以外の場合、エラー情報が拾えない為、下記情報はクライアント側で作成する。\r\n const title = 'システムエラー'; // タイトルは「システムエラー」\r\n const message = 'システムエラーが発生しました。';\r\n const $errContainer = $(`
${message}
システム管理者へお問い合わせ下さい。
エラー発生日時:${nowTime}
`);\r\n Dialog.MessgeDialog(title, $errContainer, (res) => {\r\n\r\n });\r\n }\r\n\r\n resolve(result);\r\n })\r\n .always(function (data, textStatus, errorThrown) {\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 全角数値リスト\r\n * \r\n * */\r\n static befnum = new Array(\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\");\r\n\r\n /**\r\n * 半角数値リスト\r\n * \r\n * */\r\n static aftnum = new Array(\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\");\r\n\r\n /**\r\n * 時刻hh:mm形式に変換する\r\n * @param value\r\n */\r\n static convertTimeString(value) {\r\n\r\n let convertTimeString = value;\r\n\r\n // 空白の場合、以下の処理はしない\r\n if (_.isNil(convertTimeString)) {\r\n return convertTimeString;\r\n }\r\n\r\n // 数値型の場合、文字列に変換する\r\n if (_.isNumber(convertTimeString)) {\r\n convertTimeString = convertTimeString.toString();\r\n }\r\n\r\n // 日付型の場合、hh:mm型にする\r\n if (_.isDate(convertTimeString)) {\r\n convertTimeString = ('0' + convertTimeString.getHours()).slice(-2) + ':' + ('0' + convertTimeString.getMinutes()).slice(-2);\r\n }\r\n\r\n // 全角数値を半角数値に変換する\r\n var bef = this.befnum;\r\n var aft = this.aftnum;\r\n for (var i = 0; i < aft.length; i++) {\r\n var reg = new RegExp(bef[i], \"g\");\r\n convertTimeString = convertTimeString.replace(reg, aft[i]);\r\n }\r\n\r\n // 全角で':'の場合は半角':'にする\r\n convertTimeString = convertTimeString.replace(':', ':');\r\n\r\n return convertTimeString;\r\n }\r\n\r\n /**\r\n * 現在日付が指定した日(プロジェクト終了日)を過ぎているかチェック\r\n * */\r\n static isOverProjectEndDate(projectEndData: Date): boolean {\r\n\r\n let result = false;\r\n\r\n let nowDate = new Date(this.date.getNowYYYYMMDD(true));\r\n\r\n // 現在日付がプロジェクト終了日を過ぎているか\r\n if (projectEndData < nowDate) {\r\n result = true;\r\n }\r\n return result;\r\n }\r\n}\r\n\r\n\r\n","\r\n//#4375 日付コントロール等のプルダウンが効かなくなる\r\n//→#4352 flexGridの列幅変更の方が優先とのことでtouchモジュールを有効にします。\r\nimport '@grapecity/wijmo.touch';\r\n\r\nimport * as wijmo from '@grapecity/wijmo';\r\nimport * as wjcChart from '@grapecity/wijmo.chart';\r\nimport * as wjcInput from '@grapecity/wijmo.input';\r\nimport * as wjcNav from '@grapecity/wijmo.nav';\r\nimport * as wjcXlsx from '@grapecity/wijmo.xlsx';\r\nimport * as wjcGrid from '@grapecity/wijmo.grid';\r\nimport * as wjcGridFilter from '@grapecity/wijmo.grid.filter';\r\nimport * as wjcGridSearch from '@grapecity/wijmo.grid.search';\r\nimport * as wjcGridGroupPanel from '@grapecity/wijmo.grid.grouppanel';\r\nimport * as wjcGridCellMaker from '@grapecity/wijmo.grid.cellmaker';\r\nimport * as wjcGridXlsx from '@grapecity/wijmo.grid.xlsx';\r\nimport { Selector, BooleanChecker } from '@grapecity/wijmo.grid.selector';\r\n\r\n//import * as wjcCultureJa from '@grapecity/wijmo.cultures/wijmo.culture.ja';\r\nimport '@grapecity/wijmo.cultures/wijmo.culture.ja';//こうしないとちゃんと入らない\r\n\r\n\r\n//import * as GC from '@grapecity/spread-sheets';\r\nimport { Spread } from '@grapecity/spread-sheets';\r\nimport * as Excel from '@grapecity/spread-excelio';\r\nimport '@grapecity/spread-sheets-charts';\r\nimport '@grapecity/spread-sheets-shapes';\r\nimport '@grapecity/spread-sheets-print';\r\n\r\n//import * as culture from '@grapecity/spread-sheets-resources-ja';\r\n//import * as spreadCultureJa from '@grapecity/spread-sheets-resources-ja';\r\nimport '@grapecity/spread-sheets-resources-ja';\r\n\r\n//FileSaver(ここでImportすれば、同時にPackされる。各業務Tsではなにも意識する必要は無い!)\r\nimport \"file-saver\";\r\n\r\n// カルチャ設定\r\n//Spread.Common.CultureManager.addCultureInfo(\"ja-jp\", spreadCultureJa);\r\n//GC.Spread.Common.CultureManager.culture('ja-jp');\r\nSpread.Common.CultureManager.culture(\"ja-jp\");\r\n\r\n// ライセンス\r\nconst LicenseKeyWijmo = window.sessionStorage.getItem('licenseKeyWijmo');\r\nconst LicenseKeySpreadJS = window.sessionStorage.getItem('licenseKeySpreadJS');\r\nwijmo.setLicenseKey(LicenseKeyWijmo);\r\n//GC.Spread.Sheets.LicenseKey = LicenseKeySpreadJS;\r\n//const Spread = GC.Spread;\r\nSpread.Sheets.LicenseKey = LicenseKeySpreadJS;\r\n//Excel.LicenseKey = licenseKeySpreadJS;\r\n(Excel).LicenseKey = LicenseKeySpreadJS;\r\n\r\n\r\n\r\n\r\n//#862 Text値未設定のコンボボックスについて\r\n//(value: 1, のテキストが空文字の場合)\r\n//{\r\n// value: 1, text: ''\r\n// value: 2, text: 'い'\r\n// value: 3, text: 'う'\r\n// value: 4, text: 'え'\r\n//}\r\n//選択しても、空文字が表示されるわけでもなく\r\n//value値の'1'が表示されてしまう\r\n\r\n//【spreadJs Bug Fix】\r\n//JavaScript\r\n//------------------------------------\r\nSpread.Sheets.CellTypes.ComboBox.prototype.format = function (value, format, cfColor, context) {\r\n if (value === null && value !== void 0) { return ''; }\r\n\r\n let itemValue = (Spread.Sheets.CellTypes.ComboBox.prototype).getItemValue.apply(this, [value]);\r\n //var itemValue = Spread.Sheets.CellTypes.ComboBox.prototype.getItemValue.apply(this, [value]);\r\n return Spread.Sheets.CellTypes.Base.prototype.format.apply(this, [\r\n (itemValue !== null && itemValue !== void 0) ? itemValue : value,\r\n format,\r\n cfColor]);\r\n}\r\n//------------------------------------\r\n\r\n\r\n//export { wijmo, wjcChart, wjcGrid, wjcXlsx, wjcGridFilter, wjcGridSearch, wjcGridGroupPanel, wjcGridCellMaker, Selector, BooleanChecker, wjcGridXlsx, wjcInput, wjcNav, wjcCultureJa, Spread, Excel };\r\nexport { wijmo, wjcChart, wjcGrid, wjcXlsx, wjcGridFilter, wjcGridSearch, wjcGridGroupPanel, wjcGridCellMaker, Selector, BooleanChecker, wjcGridXlsx, wjcInput, wjcNav, Spread, Excel };\r\n","module.exports = jQuery;"],"sourceRoot":""}