@wcardinal/wcardinal-ui 0.344.0 → 0.346.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wcardinal/ui/d-pagination.js +26 -4
- package/dist/wcardinal/ui/d-pagination.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js +1 -0
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +28 -5
- package/dist/wcardinal-ui.js +28 -5
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -588,16 +588,27 @@ var DPagination = /** @class */ (function (_super) {
|
|
|
588
588
|
var required1m = required1n + m1;
|
|
589
589
|
if (required0 <= required1) {
|
|
590
590
|
if (3 <= nrequired1 && required + required0 + required1m <= space) {
|
|
591
|
-
var
|
|
591
|
+
var l = space - (required + required0 + required1m);
|
|
592
|
+
var n1 = Math.floor(l / m1);
|
|
592
593
|
this.doUpdate2(value, size, 0, 1, 0, n1);
|
|
593
594
|
}
|
|
595
|
+
else if (3 <= nrequired0 &&
|
|
596
|
+
3 <= nrequired1 &&
|
|
597
|
+
required + required0m + required1m <= space) {
|
|
598
|
+
var l = space - (required + required0m + required1m);
|
|
599
|
+
var n1 = Math.floor((l * 0.5) / m1);
|
|
600
|
+
var n0 = Math.floor((l - n1 * m1) / m0);
|
|
601
|
+
this.doUpdate2(value, size, 1, 1, n0, n1);
|
|
602
|
+
}
|
|
594
603
|
else if (2 <= nrequired1 && required + required0 + required1n <= space) {
|
|
595
604
|
this.doUpdate2(value, size, 0, 2, 0, 0);
|
|
596
605
|
}
|
|
597
606
|
else if (3 <= nrequired0 &&
|
|
598
607
|
2 <= nrequired1 &&
|
|
599
608
|
required + required0m + required1n <= space) {
|
|
600
|
-
|
|
609
|
+
var l = space - (required + required0m + required1n);
|
|
610
|
+
var n0 = Math.floor(l / m0);
|
|
611
|
+
this.doUpdate2(value, size, 1, 2, n0, 0);
|
|
601
612
|
}
|
|
602
613
|
else if (2 <= nrequired0 &&
|
|
603
614
|
2 <= nrequired1 &&
|
|
@@ -615,16 +626,27 @@ var DPagination = /** @class */ (function (_super) {
|
|
|
615
626
|
}
|
|
616
627
|
else {
|
|
617
628
|
if (3 <= nrequired0 && required + required0m + required1 <= space) {
|
|
618
|
-
var
|
|
629
|
+
var l = space - (required + required0m + required1);
|
|
630
|
+
var n0 = Math.floor(l / m0);
|
|
619
631
|
this.doUpdate2(value, size, 1, 0, n0, 0);
|
|
620
632
|
}
|
|
633
|
+
else if (3 <= nrequired0 &&
|
|
634
|
+
3 <= nrequired1 &&
|
|
635
|
+
required + required0m + required1m <= space) {
|
|
636
|
+
var l = space - (required + required0m + required1m);
|
|
637
|
+
var n0 = Math.floor((l * 0.5) / m0);
|
|
638
|
+
var n1 = Math.floor((l - n0 * m0) / m1);
|
|
639
|
+
this.doUpdate2(value, size, 1, 1, n0, n1);
|
|
640
|
+
}
|
|
621
641
|
else if (2 <= nrequired0 && required + required0n + required1 <= space) {
|
|
622
642
|
this.doUpdate2(value, size, 2, 0, 0, 0);
|
|
623
643
|
}
|
|
624
644
|
else if (2 <= nrequired0 &&
|
|
625
645
|
3 <= nrequired1 &&
|
|
626
646
|
required + required0n + required1m <= space) {
|
|
627
|
-
|
|
647
|
+
var l = space - (required + required0n + required1m);
|
|
648
|
+
var n1 = Math.floor(l / m1);
|
|
649
|
+
this.doUpdate2(value, size, 2, 1, 0, n1);
|
|
628
650
|
}
|
|
629
651
|
else if (2 <= nrequired0 &&
|
|
630
652
|
2 <= nrequired1 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-pagination.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-pagination.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EACN,iBAAiB,EAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAgC,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAgC,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAgC,MAAM,4BAA4B,CAAC;AACjG,OAAO,EACN,yBAAyB,EAEzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAA+B,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAA0B,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAuB,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2EjD;IAGU,+BAAiC;IAgB1C,qBAAY,OAAiB;QAA7B,iBAkDC;;gBAjDA,kBAAM,OAAO,CAAC;QAEd,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,KAAI,CAAC,KAAK,GAAG,MAAA,MAAA,OAAO,CAAC,IAAI,mCAAI,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC;YACjD,KAAI,CAAC,MAAM,GAAG,MAAA,MAAA,OAAO,CAAC,KAAK,mCAAI,OAAO,CAAC,QAAQ,mCAAI,CAAC,CAAC;SACrD;aAAM;YACN,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,KAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SAChB;QAED,IAAM,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACzB;QACD,IAAM,cAAc,GAAG,KAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,KAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SAC9B;QACD,IAAM,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACzB;QACD,IAAM,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC;QACvC,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/C,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAM,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC;QACvC,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,kBAAkB,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAC7D,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,IAAM,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1B;QACD,IAAM,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1B;QACD,IAAM,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1B;;IACF,CAAC;IAOD,sBAAI,8BAAK;QAQT;;;;WAIG;aACH;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QApBD;;;;WAIG;aACH,UAAU,KAAa;YACtB,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;gBAC9D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC3B;QACF,CAAC;;;OAAA;IAiBD,sBAAI,iCAAQ;QAIZ;;;;;WAKG;aACH;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QAlBD;;;;;WAKG;aACH,UAAa,KAAa;YACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAiBD,sBAAI,6BAAI;QAaR;;;;WAIG;aACH;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QAzBD;;;;WAIG;aACH,UAAS,IAAY;YACpB,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;gBACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,IAAI,KAAK,CAAC,EAAE;oBACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACjB;qBAAM;oBACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;iBACjE;gBACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC3B;QACF,CAAC;;;OAAA;IAiBD,sBAAI,8BAAK;QAIT;;;;;WAKG;aACH;YACC,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QAlBD;;;;;WAKG;aACH,UAAU,KAAa;YACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,CAAC;;;OAAA;IAYD,sBAAc,8BAAK;aAAnB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;aACrB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAED,sBAAc,8BAAK;aAAnB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;aACrB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,6BAAO,GAAjB;QACC,OAAO,IAAI,eAAe,EAAE,CAAC;IAC9B,CAAC;IAED,sBAAc,mCAAU;aAAxB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;aAC1B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,mCAAa,GAAvB;QAAA,iBAUC;;QATA,IAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,IAAI,CAAC;QACzC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,EAAE;YAC1D,IAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3E,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnB,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,wCAAkB,GAA5B;QACC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;IAES,4BAAM,GAAhB,UAAiB,KAAa;QAC7B,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YAC9D,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACF,CAAC;IAED,sBAAc,mCAAU;aAAxB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;aAC1B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,mCAAa,GAAvB;QAAA,iBAUC;;QATA,IAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,IAAI,CAAC;QACzC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;YACpC,IAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3E,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnB,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,wCAAkB,GAA5B;QACC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,sBAAc,uCAAc;aAA5B;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;YAClC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAClC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;aAC9B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,uCAAiB,GAA3B;QAAA,iBAUC;;QATA,IAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,QAAQ,CAAC;QACjD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC5C,IAAM,MAAM,GAAG,IAAI,yBAAyB,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACvF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnB,KAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,4CAAsB,GAAhC;QACC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,sBAAc,kCAAS;aAAvB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;aACzB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,kCAAY,GAAtB;QAAA,iBAUC;;QATA,IAAM,GAAG,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,GAAG,CAAC;QACvC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,SAAS,EAAE;YACvD,IAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnB,KAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,uCAAiB,GAA3B;QACC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IAES,mCAAa,GAAvB;QAAA,iBAMC;;QALA,IAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,IAAI,CAAC,CAAC;QACtE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;YACnB,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAED,sBAAc,qCAAY;aAA1B;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YAChC,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;aAC5B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,qCAAe,GAAzB;QACC,OAAO;YACN,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;SACpB,CAAC;IACH,CAAC;IAES,uCAAiB,GAA3B,UAA4B,IAAY;QACvC,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAChE,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACvC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B;IACF,CAAC;IAED,sBAAc,qCAAY;aAA1B;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YAChC,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;aAC5B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,qCAAe,GAAzB;QACC,OAAO;YACN,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;SACpB,CAAC;IACH,CAAC;IAES,uCAAiB,GAA3B,UAA4B,IAAY;QACvC,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAChE,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACnC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACjC;IACF,CAAC;IAED,sBAAc,6BAAI;aAAlB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;aACpB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,6BAAO,GAAjB;;QACC,OAAO,IAAI,eAAe,CAAC,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAES,wCAAkB,GAA5B,UAA6B,MAAuB;QACnD,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACtB,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC3B,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;aAClB;SACD;IACF,CAAC;IAED,sBAAc,kCAAS;aAAvB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;aACzB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,kCAAY,GAAtB;QACC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC1D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sBAAc,mCAAU;aAAxB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;aAC1B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,mCAAa,GAAvB;QACC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YACvD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,8BAAQ,GAAlB;;QACC,IAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,KAAK,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;YACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC1C,OAAO,IAAI,YAAY,CAAC;oBACvB,MAAM,EAAE,CAAC;iBACT,CAAC,CAAC;aACH;iBAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC3B,OAAO,IAAI,YAAY,CAAC;oBACvB,KAAK,EAAE,KAAK;iBACZ,CAAC,CAAC;aACH;iBAAM;gBACN,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;aAC/B;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,8BAAQ,GAAlB;QACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,iBAAM,QAAQ,WAAE,CAAC;IAClB,CAAC;IAES,4BAAM,GAAhB;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,IAAI,IAAI,CAAC,EAAE;YACd,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC5B;aAAM;YACN,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC;iBAAM;gBACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC5B;SACD;IACF,CAAC;IAES,+BAAS,GAAnB,UAAoB,KAAa,EAAE,IAAY;QAC9C,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SAClC;QACD,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SACvC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SACnC;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,EAAE;YACf,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SACnC;IACF,CAAC;IAES,+BAAS,GAAnB,UAAoB,KAAa,EAAE,IAAY;QAC9C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC;YAC5B,SAAS,IAAI,CAAC,CAAC;SACf;QACD,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC;YACjC,SAAS,IAAI,CAAC,CAAC;SACf;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC;aAC5B;YACD,SAAS,IAAI,CAAC,CAAC;SACf;QAED,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC;QACvB,SAAS,IAAI,CAAC,CAAC;QAEf,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC;aAC7B;YACD,SAAS,IAAI,CAAC,CAAC;SACf;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC;YAC7B,SAAS,IAAI,CAAC,CAAC;SACf;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,EAAE;YACf,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC;YAC7B,SAAS,IAAI,CAAC,CAAC;SACf;QAED,IAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACjD,IAAI,CAAC,IAAI,SAAS,EAAE;YACnB,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;SAC/C;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,IAAI,QAAQ,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACxC;aAAM;YACN,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/C,IAAM,UAAU,GAAG,KAAK,CAAC;YACzB,IAAM,SAAS,GAAG,UAAU,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;YAErE,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACtC,IAAM,SAAS,GAAG,UAAU,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;YAErE,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,EAAE;gBAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC;iBAAM;gBACN,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC/B,IAAM,EAAE,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;gBAC/C,IAAM,EAAE,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;gBAC/C,IAAM,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;gBACnC,IAAM,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;gBACnC,IAAM,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;gBACnC,IAAM,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;gBACnC,IAAI,SAAS,IAAI,SAAS,EAAE;oBAC3B,IAAI,CAAC,IAAI,UAAU,IAAI,QAAQ,GAAG,SAAS,GAAG,UAAU,IAAI,KAAK,EAAE;wBAClE,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC1E,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;qBACzC;yBAAM,IAAI,CAAC,IAAI,UAAU,IAAI,QAAQ,GAAG,SAAS,GAAG,UAAU,IAAI,KAAK,EAAE;wBACzE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM;wBACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;iBACD;qBAAM;oBACN,IAAI,CAAC,IAAI,UAAU,IAAI,QAAQ,GAAG,UAAU,GAAG,SAAS,IAAI,KAAK,EAAE;wBAClE,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC1E,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;qBACzC;yBAAM,IAAI,CAAC,IAAI,UAAU,IAAI,QAAQ,GAAG,UAAU,GAAG,SAAS,IAAI,KAAK,EAAE;wBACzE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM;wBACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;iBACD;aACD;SACD;IACF,CAAC;IAES,+BAAS,GAAnB,UACC,KAAa,EACb,IAAY,EACZ,IAAuB,EACvB,KAAwB,EACxB,MAAc,EACd,OAAe;QAEf,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC;SACtC;QACD,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC;SAC3C;QAED,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,QAAQ,IAAI,EAAE;YACb,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,GAAG,KAAK,EAAE;wBACd,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBAClC;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC/B;iBACD;gBACD,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBACvE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBACjD,IAAI,CAAC,QAAQ,CACZ,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,EAC5C,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAC1B,CAAC;iBACF;gBACD,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC9D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAChE,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,MAAM;SACP;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEhC,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,QAAQ,KAAK,EAAE;YACd,KAAK,CAAC;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAM,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,IAAI,EAAE;wBACb,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBAClC;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC/B;iBACD;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAClD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9C;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBACxE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBACzD,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC/C,MAAM;YACP,KAAK,CAAC;gBACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC/C,MAAM;YACP,KAAK,CAAC;gBACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;SACP;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;SAC9C;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;SAC9C;IACF,CAAC;IAES,8BAAQ,GAAlB,UAAmB,MAA0B,EAAE,KAAa;QAC3D,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAES,8BAAQ,GAAlB,UAAmB,MAA0B;QAC5C,MAAM,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAES,8BAAQ,GAAlB,UAAmB,IAAqB,EAAE,IAAY,EAAE,EAAU;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAES,8BAAQ,GAAlB,UAAmB,IAAqB;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAES,6BAAO,GAAjB;QACC,OAAO,aAAa,CAAC;IACtB,CAAC;IACF,kBAAC;AAAD,CAAC,AAhwBD,CAGU,iBAAiB,GA6vB1B","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DButton } from \"./d-button\";\nimport {\n\tDLayoutHorizontal,\n\tDLayoutHorizontalOptions,\n\tDThemeLayoutHorizontal\n} from \"./d-layout-horizontal\";\nimport { DPaginationDots } from \"./d-pagination-dots\";\nimport { DPaginationButtonLast, DPaginationButtonLastOptions } from \"./d-pagination-button-last\";\nimport { DPaginationButtonNext, DPaginationButtonNextOptions } from \"./d-pagination-button-next\";\nimport { DPaginationButtonPage, DPaginationButtonPageOptions } from \"./d-pagination-button-page\";\nimport {\n\tDPaginationButtonPrevious,\n\tDPaginationButtonPreviousOptions\n} from \"./d-pagination-button-previous\";\nimport { DPaginationButtonTop, DPaginationButtonTopOptions } from \"./d-pagination-button-top\";\nimport { isNumber } from \"./util/is-number\";\nimport { DPaginationPage, DPaginationPageOptions } from \"./d-pagination-page\";\nimport { DLayoutSpace, DLayoutSpaceOptions } from \"./d-layout-space\";\nimport { DImageBase } from \"./d-image-base\";\nimport { DApplications } from \"./d-applications\";\n\nexport interface DPaginationButtonOptions {\n\t/**\n\t * {@link DPagination} top button options.\n\t */\n\ttop?: DPaginationButtonTopOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} previous button options.\n\t */\n\tprevious?: DPaginationButtonPreviousOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} page button options.\n\t */\n\tpage?: DPaginationButtonPageOptions;\n\n\t/**\n\t * {@link DPagination} next button options.\n\t */\n\tnext?: DPaginationButtonNextOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} last button options.\n\t */\n\tlast?: DPaginationButtonLastOptions | boolean | null;\n\n\t/**\n\t * A space between page buttons and next / previous buttons.\n\t */\n\tspace?: DLayoutSpaceOptions | boolean | number | null;\n}\n\nexport interface DPaginationOptions<THEME extends DThemePagination>\n\textends DLayoutHorizontalOptions<THEME> {\n\t/**\n\t * An index number of a selected page.\n\t */\n\tvalue?: number;\n\n\t/**\n\t * An index number of a selected page.\n\t *\n\t * @deprecated in favor of {@link value}.\n\t */\n\tselected?: number;\n\n\t/**\n\t * A total number of pages.\n\t */\n\tsize?: number;\n\n\t/**\n\t * A total number of pages.\n\t *\n\t * @deprecated in favor of {@link size};\n\t */\n\ttotal?: number;\n\n\t/**\n\t * {@link DPagination} button options.\n\t */\n\tbutton?: DPaginationButtonOptions;\n\n\t/**\n\t * {@link DPagination} page options.\n\t */\n\tpage?: DPaginationPageOptions;\n}\n\nexport interface DThemePagination extends DThemeLayoutHorizontal {\n\tgetButtonSpace(): number;\n}\n\nexport class DPagination<\n\tTHEME extends DThemePagination = DThemePagination,\n\tOPTIONS extends DPaginationOptions<THEME> = DPaginationOptions<THEME>\n> extends DLayoutHorizontal<THEME, OPTIONS> {\n\tprotected _size: number;\n\tprotected _value: number;\n\n\tprotected _buttonTop?: DButton<string> | null;\n\tprotected _buttonPrevious?: DButton<string> | null;\n\tprotected _spaceLeft?: DLayoutSpace | null;\n\tprotected _dots0?: DPaginationDots;\n\tprotected _buttonPages0?: DButton<number>[];\n\tprotected _page?: DPaginationPage;\n\tprotected _buttonPages1?: DButton<number>[];\n\tprotected _dots1?: DPaginationDots;\n\tprotected _spaceRight?: DLayoutSpace | null;\n\tprotected _buttonNext?: DButton<string> | null;\n\tprotected _buttonLast?: DButton<string> | null;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\tif (options != null) {\n\t\t\tthis._size = options.size ?? options.total ?? 10;\n\t\t\tthis._value = options.value ?? options.selected ?? 0;\n\t\t} else {\n\t\t\tthis._size = 10;\n\t\t\tthis._value = 0;\n\t\t}\n\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tthis.addChild(buttonTop);\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tthis.addChild(buttonPrevious);\n\t\t}\n\t\tconst spaceLeft = this.spaceLeft;\n\t\tif (spaceLeft != null) {\n\t\t\tthis.addChild(spaceLeft);\n\t\t}\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tconst buttonPages0Length = buttonPages0.length;\n\t\tthis.addChild(buttonPages0[0]);\n\t\tthis.addChild(this.dots0);\n\t\tfor (let i = 1; i < buttonPages0Length; ++i) {\n\t\t\tthis.addChild(buttonPages0[i]);\n\t\t}\n\t\tthis.addChild(this.page);\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tconst buttonPages1Length = buttonPages1.length;\n\t\tfor (let i = 0, imax = buttonPages1Length - 1; i < imax; ++i) {\n\t\t\tthis.addChild(buttonPages1[i]);\n\t\t}\n\t\tthis.addChild(this.dots1);\n\t\tthis.addChild(buttonPages1[buttonPages1Length - 1]);\n\t\tconst spaceRight = this.spaceRight;\n\t\tif (spaceRight != null) {\n\t\t\tthis.addChild(spaceRight);\n\t\t}\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tthis.addChild(buttonNext);\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast != null) {\n\t\t\tthis.addChild(buttonLast);\n\t\t}\n\t}\n\n\t/**\n\t * Sets a value that is an index of a current page.\n\t *\n\t * @param value a value that is an index of a page\n\t */\n\tset value(value: number) {\n\t\tif (0 <= value && value < this._size && this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a value that is an index of a current page.\n\t *\n\t * @returns a value that is an index of a selected page.\n\t */\n\tget value(): number {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Selects a page.\n\t *\n\t * @param index an index of a page\n\t * @deprecated in favor of {@link #value}.\n\t */\n\tset selected(index: number) {\n\t\tthis.value = index;\n\t}\n\n\t/**\n\t * Returns an index of the selected page.\n\t *\n\t * @returns an index of the selected page.\n\t * @deprecated in favor of {@link value}.\n\t */\n\tget selected(): number {\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * Sets a number of total pages.\n\t *\n\t * @param size a number of pages\n\t */\n\tset size(size: number) {\n\t\tif (0 <= size && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tif (size === 0) {\n\t\t\t\tthis._value = -1;\n\t\t\t} else {\n\t\t\t\tthis._value = Math.max(0, Math.min(this._size - 1, this._value));\n\t\t\t}\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a number of total pages.\n\t *\n\t * @returns a number of total pages.\n\t */\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\t/**\n\t * Sets a number of total pages.\n\t *\n\t * @param total a number of pages\n\t * @deprecated in favor of {@link size}\n\t */\n\tset total(total: number) {\n\t\tthis.size = total;\n\t}\n\n\t/**\n\t * Returns a number of total pages.\n\t *\n\t * @returns a number of total pages.\n\t * @deprecated in favor of {@link size}\n\t */\n\tget total(): number {\n\t\treturn this.size;\n\t}\n\n\tprotected get dots0(): DPaginationDots {\n\t\tlet result = this._dots0;\n\t\tif (result == null) {\n\t\t\tresult = this.newDots();\n\t\t\tthis._dots0 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected get dots1(): DPaginationDots {\n\t\tlet result = this._dots1;\n\t\tif (result == null) {\n\t\t\tresult = this.newDots();\n\t\t\tthis._dots1 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newDots(): DPaginationDots {\n\t\treturn new DPaginationDots();\n\t}\n\n\tprotected get buttonLast(): DButton<string> | null {\n\t\tlet result = this._buttonLast;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonLast();\n\t\t\tthis._buttonLast = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonLast(): DButton<string> | null {\n\t\tconst last = this._options?.button?.last;\n\t\tif (last !== null && last !== false && last !== undefined) {\n\t\t\tconst result = new DPaginationButtonLast(last !== true ? last : undefined);\n\t\t\tresult.on(\"active\", () => {\n\t\t\t\tthis.onButtonLastActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonLastActive(): void {\n\t\tthis.moveTo(this._size - 1);\n\t}\n\n\tprotected moveTo(index: number): void {\n\t\tif (0 <= index && index < this._size && this._value !== index) {\n\t\t\tconst oldIndex = this._value;\n\t\t\tthis._value = index;\n\t\t\tthis.emit(\"change\", index, oldIndex, this);\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\tprotected get buttonNext(): DButton<string> | null {\n\t\tlet result = this._buttonNext;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonNext();\n\t\t\tthis._buttonNext = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonNext(): DButton<string> | null {\n\t\tconst next = this._options?.button?.next;\n\t\tif (next !== null && next !== false) {\n\t\t\tconst result = new DPaginationButtonNext(next !== true ? next : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonNextActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonNextActive(): void {\n\t\tthis.moveTo(this._value + 1);\n\t}\n\n\tprotected get buttonPrevious(): DButton<string> | null {\n\t\tlet result = this._buttonPrevious;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonPrevious();\n\t\t\tthis._buttonPrevious = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPrevious(): DButton<string> | null {\n\t\tconst previous = this._options?.button?.previous;\n\t\tif (previous !== null && previous !== false) {\n\t\t\tconst result = new DPaginationButtonPrevious(previous !== true ? previous : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonPreviousActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonPreviousActive(): void {\n\t\tthis.moveTo(this._value - 1);\n\t}\n\n\tprotected get buttonTop(): DButton<string> | null {\n\t\tlet result = this._buttonTop;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonTop();\n\t\t\tthis._buttonTop = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonTop(): DButton<string> | null {\n\t\tconst top = this._options?.button?.top;\n\t\tif (top !== null && top !== false && top !== undefined) {\n\t\t\tconst result = new DPaginationButtonTop(top !== true ? top : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonTopActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonTopActive(): void {\n\t\tthis.moveTo(0);\n\t}\n\n\tprotected newButtonPage(): DButton<number> {\n\t\tconst result = new DPaginationButtonPage(this._options?.button?.page);\n\t\tresult.on(\"active\", (): void => {\n\t\t\tthis.onButtonPageActive(result);\n\t\t});\n\t\treturn result;\n\t}\n\n\tprotected get buttonPages0(): DButton<number>[] {\n\t\tlet result = this._buttonPages0;\n\t\tif (result == null) {\n\t\t\tresult = this.newButtonPages0();\n\t\t\tthis._buttonPages0 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPages0(): DButton<number>[] {\n\t\treturn [\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage()\n\t\t];\n\t}\n\n\tprotected allocButtonPages0(size: number): void {\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tconst buttonPages0Length = buttonPages0.length;\n\t\tconst index = this.getChildIndex(buttonPages0[buttonPages0Length - 1]) + 1;\n\t\tfor (let i = 0, imax = size - buttonPages0Length; i < imax; ++i) {\n\t\t\tconst buttonPage = this.newButtonPage();\n\t\t\tthis.addChildAt(buttonPage, index + i);\n\t\t\tbuttonPages0.push(buttonPage);\n\t\t}\n\t}\n\n\tprotected get buttonPages1(): DButton<number>[] {\n\t\tlet result = this._buttonPages1;\n\t\tif (result == null) {\n\t\t\tresult = this.newButtonPages1();\n\t\t\tthis._buttonPages1 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPages1(): DButton<number>[] {\n\t\treturn [\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage()\n\t\t];\n\t}\n\n\tprotected allocButtonPages1(size: number): void {\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tconst buttonPages1Length = buttonPages1.length;\n\t\tconst index = this.getChildIndex(buttonPages1[0]);\n\t\tfor (let i = 0, imax = size - buttonPages1Length; i < imax; ++i) {\n\t\t\tconst buttonPage = this.newButtonPage();\n\t\t\tthis.addChildAt(buttonPage, index);\n\t\t\tbuttonPages1.unshift(buttonPage);\n\t\t}\n\t}\n\n\tprotected get page(): DPaginationPage {\n\t\tlet result = this._page;\n\t\tif (result == null) {\n\t\t\tresult = this.newPage();\n\t\t\tthis._page = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newPage(): DPaginationPage {\n\t\treturn new DPaginationPage(this._options?.page);\n\t}\n\n\tprotected onButtonPageActive(button: DButton<number>): void {\n\t\tconst text = button.text;\n\t\tif (isNumber(text)) {\n\t\t\tthis.moveTo(text - 1);\n\t\t\tif (button.state.isFocused) {\n\t\t\t\tbutton.state.isHovered = false;\n\t\t\t\tthis.page.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected get spaceLeft(): DLayoutSpace | null {\n\t\tlet result = this._spaceLeft;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newSpaceLeft();\n\t\t\tthis._spaceLeft = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newSpaceLeft(): DLayoutSpace | null {\n\t\tif (this.buttonTop != null || this.buttonPrevious != null) {\n\t\t\treturn this.newSpace();\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected get spaceRight(): DLayoutSpace | null {\n\t\tlet result = this._spaceRight;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newSpaceRight();\n\t\t\tthis._spaceRight = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newSpaceRight(): DLayoutSpace | null {\n\t\tif (this.buttonLast != null || this.buttonNext != null) {\n\t\t\treturn this.newSpace();\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected newSpace(): DLayoutSpace | null {\n\t\tconst space = this._options?.button?.space;\n\t\tif (space !== null && space !== false) {\n\t\t\tif (space === true || space === undefined) {\n\t\t\t\treturn new DLayoutSpace({\n\t\t\t\t\tweight: 1\n\t\t\t\t});\n\t\t\t} else if (isNumber(space)) {\n\t\t\t\treturn new DLayoutSpace({\n\t\t\t\t\twidth: space\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn new DLayoutSpace(space);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onReflow(): void {\n\t\tthis.update();\n\t\tsuper.onReflow();\n\t}\n\n\tprotected update(): void {\n\t\tconst size = this._size;\n\t\tconst value = this._value;\n\t\tif (size <= 0) {\n\t\t\tthis.doUpdate0(value, size);\n\t\t} else {\n\t\t\tif (this._auto.width.isOn) {\n\t\t\t\tthis.doUpdate2(value, size, 0, 0, 0, 0);\n\t\t\t} else {\n\t\t\t\tthis.doUpdate1(value, size);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate0(value: number, size: number): void {\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tbuttonTop.state.isEnabled = false;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tbuttonPrevious.state.isEnabled = false;\n\t\t}\n\n\t\tthis.hideDots(this.dots0);\n\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t}\n\n\t\tthis.hidePage(this.page);\n\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t}\n\n\t\tthis.hideDots(this.dots1);\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tbuttonNext.state.isEnabled = false;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast) {\n\t\t\tbuttonLast.state.isEnabled = false;\n\t\t}\n\t}\n\n\tprotected doUpdate1(value: number, size: number): void {\n\t\tlet required = 0;\n\t\tlet nrequired = 0;\n\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\trequired += buttonTop.width;\n\t\t\tnrequired += 1;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\trequired += buttonPrevious.width;\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst spaceLeft = this.spaceLeft;\n\t\tif (spaceLeft != null) {\n\t\t\tif (spaceLeft.weight < 0) {\n\t\t\t\trequired += spaceLeft.width;\n\t\t\t}\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst page = this.page;\n\t\trequired += page.width;\n\t\tnrequired += 1;\n\n\t\tconst spaceRight = this.spaceRight;\n\t\tif (spaceRight != null) {\n\t\t\tif (spaceRight.weight < 0) {\n\t\t\t\trequired += spaceRight.width;\n\t\t\t}\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\trequired += buttonNext.width;\n\t\t\tnrequired += 1;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast) {\n\t\t\trequired += buttonLast.width;\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst marginHorizontal = this._margin.horizontal;\n\t\tif (2 <= nrequired) {\n\t\t\trequired += (nrequired - 1) * marginHorizontal;\n\t\t}\n\n\t\tconst padding = this.padding;\n\t\tconst space = this.width - (padding.getLeft() + padding.getRight());\n\t\tif (space <= required) {\n\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t} else {\n\t\t\tconst buttonPages0 = this.buttonPages0;\n\t\t\tconst buttonPage0Width = buttonPages0[0].width;\n\t\t\tconst nrequired0 = value;\n\t\t\tconst required0 = nrequired0 * (buttonPage0Width + marginHorizontal);\n\n\t\t\tconst buttonPages1 = this.buttonPages1;\n\t\t\tconst buttonPage1Width = buttonPages1[0].width;\n\t\t\tconst nrequired1 = size - (value + 1);\n\t\t\tconst required1 = nrequired1 * (buttonPage1Width + marginHorizontal);\n\n\t\t\tif (required + required0 + required1 <= space) {\n\t\t\t\tthis.doUpdate2(value, size, 0, 0, 0, 0);\n\t\t\t} else {\n\t\t\t\tconst dots1 = this.dots1;\n\t\t\t\tconst dots1Width = dots1.width;\n\t\t\t\tconst dots0 = this.dots0;\n\t\t\t\tconst dots0Width = dots0.width;\n\t\t\t\tconst m0 = marginHorizontal + buttonPage0Width;\n\t\t\t\tconst m1 = marginHorizontal + buttonPage1Width;\n\t\t\t\tconst required0n = dots0Width + m0;\n\t\t\t\tconst required1n = dots1Width + m1;\n\t\t\t\tconst required0m = required0n + m0;\n\t\t\t\tconst required1m = required1n + m1;\n\t\t\t\tif (required0 <= required1) {\n\t\t\t\t\tif (3 <= nrequired1 && required + required0 + required1m <= space) {\n\t\t\t\t\t\tconst n1 = Math.floor((space - (required + required0 + required1m)) / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 0, 1, 0, n1);\n\t\t\t\t\t} else if (2 <= nrequired1 && required + required0 + required1n <= space) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 0, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t1 <= nrequired0 &&\n\t\t\t\t\t\t1 <= nrequired1 &&\n\t\t\t\t\t\trequired + dots0Width + dots1Width <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 3, 3, 0, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (3 <= nrequired0 && required + required0m + required1 <= space) {\n\t\t\t\t\t\tconst n0 = Math.floor((space - (required + required0m + required1)) / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 0, n0, 0);\n\t\t\t\t\t} else if (2 <= nrequired0 && required + required0n + required1 <= space) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 0, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 1, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t1 <= nrequired0 &&\n\t\t\t\t\t\t1 <= nrequired1 &&\n\t\t\t\t\t\trequired + dots0Width + dots1Width <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 3, 3, 0, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate2(\n\t\tvalue: number,\n\t\tsize: number,\n\t\tleft: 0 | 1 | 2 | 3 | 4,\n\t\tright: 0 | 1 | 2 | 3 | 4,\n\t\tnleft1: number,\n\t\tnright1: number\n\t): void {\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tbuttonTop.state.isEnabled = 0 < value;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tbuttonPrevious.state.isEnabled = 0 < value;\n\t\t}\n\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tswitch (left) {\n\t\t\tcase 0:\n\t\t\t\tthis.hideDots(this.dots0);\n\t\t\t\tthis.allocButtonPages0(value);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tif (i < value) {\n\t\t\t\t\t\tthis.showPage(buttonPages0[i], i);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tthis.showDots(this.dots0, 1, value - 2 - nleft1);\n\t\t\t\tthis.allocButtonPages0(2 + nleft1);\n\t\t\t\tthis.showPage(buttonPages0[0], 0);\n\t\t\t\tfor (let i = 1, imax = buttonPages0.length - nleft1 - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tfor (let i = 0, imax = 1 + nleft1; i < imax; ++i) {\n\t\t\t\t\tthis.showPage(\n\t\t\t\t\t\tbuttonPages0[buttonPages0.length - imax + i],\n\t\t\t\t\t\tvalue - 1 - (imax - 1) + i\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.showDots(this.dots0, 0, value - 2);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tthis.showPage(buttonPages0[buttonPages0.length - 1], value - 1);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tthis.showDots(this.dots0, 0, value - 1);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tthis.hideDots(this.dots0);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.showPage(this.page, value);\n\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tswitch (right) {\n\t\t\tcase 0:\n\t\t\t\tthis.allocButtonPages1(size - (value + 1));\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tconst j = value + 1 + i;\n\t\t\t\t\tif (j < size) {\n\t\t\t\t\t\tthis.showPage(buttonPages1[i], j);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.hideDots(this.dots1);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tthis.allocButtonPages1(2 + nright1);\n\t\t\t\tfor (let i = 0, imax = 1 + nright1; i < imax; ++i) {\n\t\t\t\t\tthis.showPage(buttonPages1[i], value + 1 + i);\n\t\t\t\t}\n\t\t\t\tfor (let i = 1 + nright1, imax = buttonPages1.length - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showPage(buttonPages1[buttonPages1.length - 1], size - 1);\n\t\t\t\tthis.showDots(this.dots1, value + 2 + nright1, size - 2);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.showPage(buttonPages1[0], value + 1);\n\t\t\t\tfor (let i = 1, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showDots(this.dots1, value + 2, size - 1);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showDots(this.dots1, value + 1, size - 1);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.hideDots(this.dots1);\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tbuttonNext.state.isEnabled = value < size - 1;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast != null) {\n\t\t\tbuttonLast.state.isEnabled = value < size - 1;\n\t\t}\n\t}\n\n\tprotected showPage(button: DImageBase<number>, index: number): void {\n\t\tbutton.text = index + 1;\n\t\tbutton.show();\n\t}\n\n\tprotected hidePage(button: DImageBase<number>): void {\n\t\tbutton.hide();\n\t}\n\n\tprotected showDots(dots: DPaginationDots, from: number, to: number): void {\n\t\tdots.show();\n\t}\n\n\tprotected hideDots(dots: DPaginationDots): void {\n\t\tdots.hide();\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DPagination\";\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"d-pagination.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-pagination.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EACN,iBAAiB,EAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAgC,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAgC,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAgC,MAAM,4BAA4B,CAAC;AACjG,OAAO,EACN,yBAAyB,EAEzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAA+B,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAA0B,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAuB,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2EjD;IAGU,+BAAiC;IAgB1C,qBAAY,OAAiB;QAA7B,iBAkDC;;gBAjDA,kBAAM,OAAO,CAAC;QAEd,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,KAAI,CAAC,KAAK,GAAG,MAAA,MAAA,OAAO,CAAC,IAAI,mCAAI,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC;YACjD,KAAI,CAAC,MAAM,GAAG,MAAA,MAAA,OAAO,CAAC,KAAK,mCAAI,OAAO,CAAC,QAAQ,mCAAI,CAAC,CAAC;SACrD;aAAM;YACN,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,KAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SAChB;QAED,IAAM,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACzB;QACD,IAAM,cAAc,GAAG,KAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,KAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SAC9B;QACD,IAAM,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACzB;QACD,IAAM,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC;QACvC,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/C,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAM,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC;QACvC,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,kBAAkB,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAC7D,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,IAAM,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1B;QACD,IAAM,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1B;QACD,IAAM,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1B;;IACF,CAAC;IAOD,sBAAI,8BAAK;QAQT;;;;WAIG;aACH;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QApBD;;;;WAIG;aACH,UAAU,KAAa;YACtB,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;gBAC9D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC3B;QACF,CAAC;;;OAAA;IAiBD,sBAAI,iCAAQ;QAIZ;;;;;WAKG;aACH;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QAlBD;;;;;WAKG;aACH,UAAa,KAAa;YACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAiBD,sBAAI,6BAAI;QAaR;;;;WAIG;aACH;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QAzBD;;;;WAIG;aACH,UAAS,IAAY;YACpB,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;gBACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,IAAI,KAAK,CAAC,EAAE;oBACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACjB;qBAAM;oBACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;iBACjE;gBACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC3B;QACF,CAAC;;;OAAA;IAiBD,sBAAI,8BAAK;QAIT;;;;;WAKG;aACH;YACC,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QAlBD;;;;;WAKG;aACH,UAAU,KAAa;YACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,CAAC;;;OAAA;IAYD,sBAAc,8BAAK;aAAnB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;aACrB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAED,sBAAc,8BAAK;aAAnB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;aACrB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,6BAAO,GAAjB;QACC,OAAO,IAAI,eAAe,EAAE,CAAC;IAC9B,CAAC;IAED,sBAAc,mCAAU;aAAxB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;aAC1B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,mCAAa,GAAvB;QAAA,iBAUC;;QATA,IAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,IAAI,CAAC;QACzC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,EAAE;YAC1D,IAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3E,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnB,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,wCAAkB,GAA5B;QACC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;IAES,4BAAM,GAAhB,UAAiB,KAAa;QAC7B,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YAC9D,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACF,CAAC;IAED,sBAAc,mCAAU;aAAxB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;aAC1B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,mCAAa,GAAvB;QAAA,iBAUC;;QATA,IAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,IAAI,CAAC;QACzC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;YACpC,IAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3E,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnB,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,wCAAkB,GAA5B;QACC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,sBAAc,uCAAc;aAA5B;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;YAClC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAClC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;aAC9B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,uCAAiB,GAA3B;QAAA,iBAUC;;QATA,IAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,QAAQ,CAAC;QACjD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC5C,IAAM,MAAM,GAAG,IAAI,yBAAyB,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACvF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnB,KAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,4CAAsB,GAAhC;QACC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,sBAAc,kCAAS;aAAvB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;aACzB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,kCAAY,GAAtB;QAAA,iBAUC;;QATA,IAAM,GAAG,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,GAAG,CAAC;QACvC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,SAAS,EAAE;YACvD,IAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;gBACnB,KAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,uCAAiB,GAA3B;QACC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IAES,mCAAa,GAAvB;QAAA,iBAMC;;QALA,IAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,IAAI,CAAC,CAAC;QACtE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;YACnB,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAED,sBAAc,qCAAY;aAA1B;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YAChC,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;aAC5B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,qCAAe,GAAzB;QACC,OAAO;YACN,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;SACpB,CAAC;IACH,CAAC;IAES,uCAAiB,GAA3B,UAA4B,IAAY;QACvC,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAChE,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACvC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B;IACF,CAAC;IAED,sBAAc,qCAAY;aAA1B;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YAChC,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;aAC5B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,qCAAe,GAAzB;QACC,OAAO;YACN,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;SACpB,CAAC;IACH,CAAC;IAES,uCAAiB,GAA3B,UAA4B,IAAY;QACvC,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAChE,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACnC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACjC;IACF,CAAC;IAED,sBAAc,6BAAI;aAAlB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;aACpB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,6BAAO,GAAjB;;QACC,OAAO,IAAI,eAAe,CAAC,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAES,wCAAkB,GAA5B,UAA6B,MAAuB;QACnD,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACtB,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC3B,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;aAClB;SACD;IACF,CAAC;IAED,sBAAc,kCAAS;aAAvB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;aACzB;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,kCAAY,GAAtB;QACC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC1D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sBAAc,mCAAU;aAAxB;YACC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;aAC1B;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;OAAA;IAES,mCAAa,GAAvB;QACC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YACvD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,8BAAQ,GAAlB;;QACC,IAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,0CAAE,KAAK,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;YACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;gBAC1C,OAAO,IAAI,YAAY,CAAC;oBACvB,MAAM,EAAE,CAAC;iBACT,CAAC,CAAC;aACH;iBAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC3B,OAAO,IAAI,YAAY,CAAC;oBACvB,KAAK,EAAE,KAAK;iBACZ,CAAC,CAAC;aACH;iBAAM;gBACN,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;aAC/B;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAES,8BAAQ,GAAlB;QACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,iBAAM,QAAQ,WAAE,CAAC;IAClB,CAAC;IAES,4BAAM,GAAhB;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,IAAI,IAAI,CAAC,EAAE;YACd,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC5B;aAAM;YACN,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC;iBAAM;gBACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC5B;SACD;IACF,CAAC;IAES,+BAAS,GAAnB,UAAoB,KAAa,EAAE,IAAY;QAC9C,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SAClC;QACD,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SACvC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SACnC;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,EAAE;YACf,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SACnC;IACF,CAAC;IAES,+BAAS,GAAnB,UAAoB,KAAa,EAAE,IAAY;QAC9C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC;YAC5B,SAAS,IAAI,CAAC,CAAC;SACf;QACD,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC;YACjC,SAAS,IAAI,CAAC,CAAC;SACf;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC;aAC5B;YACD,SAAS,IAAI,CAAC,CAAC;SACf;QAED,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC;QACvB,SAAS,IAAI,CAAC,CAAC;QAEf,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC;aAC7B;YACD,SAAS,IAAI,CAAC,CAAC;SACf;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC;YAC7B,SAAS,IAAI,CAAC,CAAC;SACf;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,EAAE;YACf,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC;YAC7B,SAAS,IAAI,CAAC,CAAC;SACf;QAED,IAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACjD,IAAI,CAAC,IAAI,SAAS,EAAE;YACnB,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;SAC/C;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,IAAI,QAAQ,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACxC;aAAM;YACN,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/C,IAAM,UAAU,GAAG,KAAK,CAAC;YACzB,IAAM,SAAS,GAAG,UAAU,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;YAErE,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACtC,IAAM,SAAS,GAAG,UAAU,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;YAErE,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,EAAE;gBAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aACxC;iBAAM;gBACN,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC/B,IAAM,EAAE,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;gBAC/C,IAAM,EAAE,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;gBAC/C,IAAM,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;gBACnC,IAAM,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;gBACnC,IAAM,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;gBACnC,IAAM,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;gBACnC,IAAI,SAAS,IAAI,SAAS,EAAE;oBAC3B,IAAI,CAAC,IAAI,UAAU,IAAI,QAAQ,GAAG,SAAS,GAAG,UAAU,IAAI,KAAK,EAAE;wBAClE,IAAM,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;wBACtD,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;qBACzC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAM,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;wBACvD,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;wBACtC,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;qBAC1C;yBAAM,IAAI,CAAC,IAAI,UAAU,IAAI,QAAQ,GAAG,SAAS,GAAG,UAAU,IAAI,KAAK,EAAE;wBACzE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAM,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;wBACvD,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;qBACzC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM;wBACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;iBACD;qBAAM;oBACN,IAAI,CAAC,IAAI,UAAU,IAAI,QAAQ,GAAG,UAAU,GAAG,SAAS,IAAI,KAAK,EAAE;wBAClE,IAAM,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;wBACtD,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;qBACzC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAM,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;wBACvD,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;wBACtC,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;qBAC1C;yBAAM,IAAI,CAAC,IAAI,UAAU,IAAI,QAAQ,GAAG,UAAU,GAAG,SAAS,IAAI,KAAK,EAAE;wBACzE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAM,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;wBACvD,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;qBACzC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM,IACN,CAAC,IAAI,UAAU;wBACf,CAAC,IAAI,UAAU;wBACf,QAAQ,GAAG,UAAU,GAAG,UAAU,IAAI,KAAK,EAC1C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;yBAAM;wBACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxC;iBACD;aACD;SACD;IACF,CAAC;IAES,+BAAS,GAAnB,UACC,KAAa,EACb,IAAY,EACZ,IAAuB,EACvB,KAAwB,EACxB,MAAc,EACd,OAAe;QAEf,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,IAAI,IAAI,EAAE;YACtB,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC;SACtC;QACD,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC;SAC3C;QAED,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,QAAQ,IAAI,EAAE;YACb,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,GAAG,KAAK,EAAE;wBACd,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBAClC;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC/B;iBACD;gBACD,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBACvE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBACjD,IAAI,CAAC,QAAQ,CACZ,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,EAC5C,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAC1B,CAAC;iBACF;gBACD,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC9D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAChE,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,MAAM;SACP;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEhC,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,QAAQ,KAAK,EAAE;YACd,KAAK,CAAC;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAM,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,IAAI,EAAE;wBACb,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBAClC;yBAAM;wBACN,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC/B;iBACD;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;gBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAClD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9C;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBACxE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBACzD,MAAM;YACP,KAAK,CAAC;gBACL,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC/C,MAAM;YACP,KAAK,CAAC;gBACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC/C,MAAM;YACP,KAAK,CAAC;gBACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;oBAC1D,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;SACP;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;SAC9C;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;YACvB,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;SAC9C;IACF,CAAC;IAES,8BAAQ,GAAlB,UAAmB,MAA0B,EAAE,KAAa;QAC3D,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAES,8BAAQ,GAAlB,UAAmB,MAA0B;QAC5C,MAAM,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAES,8BAAQ,GAAlB,UAAmB,IAAqB,EAAE,IAAY,EAAE,EAAU;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAES,8BAAQ,GAAlB,UAAmB,IAAqB;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAES,6BAAO,GAAjB;QACC,OAAO,aAAa,CAAC;IACtB,CAAC;IACF,kBAAC;AAAD,CAAC,AAxxBD,CAGU,iBAAiB,GAqxB1B","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DButton } from \"./d-button\";\nimport {\n\tDLayoutHorizontal,\n\tDLayoutHorizontalOptions,\n\tDThemeLayoutHorizontal\n} from \"./d-layout-horizontal\";\nimport { DPaginationDots } from \"./d-pagination-dots\";\nimport { DPaginationButtonLast, DPaginationButtonLastOptions } from \"./d-pagination-button-last\";\nimport { DPaginationButtonNext, DPaginationButtonNextOptions } from \"./d-pagination-button-next\";\nimport { DPaginationButtonPage, DPaginationButtonPageOptions } from \"./d-pagination-button-page\";\nimport {\n\tDPaginationButtonPrevious,\n\tDPaginationButtonPreviousOptions\n} from \"./d-pagination-button-previous\";\nimport { DPaginationButtonTop, DPaginationButtonTopOptions } from \"./d-pagination-button-top\";\nimport { isNumber } from \"./util/is-number\";\nimport { DPaginationPage, DPaginationPageOptions } from \"./d-pagination-page\";\nimport { DLayoutSpace, DLayoutSpaceOptions } from \"./d-layout-space\";\nimport { DImageBase } from \"./d-image-base\";\nimport { DApplications } from \"./d-applications\";\n\nexport interface DPaginationButtonOptions {\n\t/**\n\t * {@link DPagination} top button options.\n\t */\n\ttop?: DPaginationButtonTopOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} previous button options.\n\t */\n\tprevious?: DPaginationButtonPreviousOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} page button options.\n\t */\n\tpage?: DPaginationButtonPageOptions;\n\n\t/**\n\t * {@link DPagination} next button options.\n\t */\n\tnext?: DPaginationButtonNextOptions | boolean | null;\n\n\t/**\n\t * {@link DPagination} last button options.\n\t */\n\tlast?: DPaginationButtonLastOptions | boolean | null;\n\n\t/**\n\t * A space between page buttons and next / previous buttons.\n\t */\n\tspace?: DLayoutSpaceOptions | boolean | number | null;\n}\n\nexport interface DPaginationOptions<THEME extends DThemePagination>\n\textends DLayoutHorizontalOptions<THEME> {\n\t/**\n\t * An index number of a selected page.\n\t */\n\tvalue?: number;\n\n\t/**\n\t * An index number of a selected page.\n\t *\n\t * @deprecated in favor of {@link value}.\n\t */\n\tselected?: number;\n\n\t/**\n\t * A total number of pages.\n\t */\n\tsize?: number;\n\n\t/**\n\t * A total number of pages.\n\t *\n\t * @deprecated in favor of {@link size};\n\t */\n\ttotal?: number;\n\n\t/**\n\t * {@link DPagination} button options.\n\t */\n\tbutton?: DPaginationButtonOptions;\n\n\t/**\n\t * {@link DPagination} page options.\n\t */\n\tpage?: DPaginationPageOptions;\n}\n\nexport interface DThemePagination extends DThemeLayoutHorizontal {\n\tgetButtonSpace(): number;\n}\n\nexport class DPagination<\n\tTHEME extends DThemePagination = DThemePagination,\n\tOPTIONS extends DPaginationOptions<THEME> = DPaginationOptions<THEME>\n> extends DLayoutHorizontal<THEME, OPTIONS> {\n\tprotected _size: number;\n\tprotected _value: number;\n\n\tprotected _buttonTop?: DButton<string> | null;\n\tprotected _buttonPrevious?: DButton<string> | null;\n\tprotected _spaceLeft?: DLayoutSpace | null;\n\tprotected _dots0?: DPaginationDots;\n\tprotected _buttonPages0?: DButton<number>[];\n\tprotected _page?: DPaginationPage;\n\tprotected _buttonPages1?: DButton<number>[];\n\tprotected _dots1?: DPaginationDots;\n\tprotected _spaceRight?: DLayoutSpace | null;\n\tprotected _buttonNext?: DButton<string> | null;\n\tprotected _buttonLast?: DButton<string> | null;\n\n\tconstructor(options?: OPTIONS) {\n\t\tsuper(options);\n\n\t\tif (options != null) {\n\t\t\tthis._size = options.size ?? options.total ?? 10;\n\t\t\tthis._value = options.value ?? options.selected ?? 0;\n\t\t} else {\n\t\t\tthis._size = 10;\n\t\t\tthis._value = 0;\n\t\t}\n\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tthis.addChild(buttonTop);\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tthis.addChild(buttonPrevious);\n\t\t}\n\t\tconst spaceLeft = this.spaceLeft;\n\t\tif (spaceLeft != null) {\n\t\t\tthis.addChild(spaceLeft);\n\t\t}\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tconst buttonPages0Length = buttonPages0.length;\n\t\tthis.addChild(buttonPages0[0]);\n\t\tthis.addChild(this.dots0);\n\t\tfor (let i = 1; i < buttonPages0Length; ++i) {\n\t\t\tthis.addChild(buttonPages0[i]);\n\t\t}\n\t\tthis.addChild(this.page);\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tconst buttonPages1Length = buttonPages1.length;\n\t\tfor (let i = 0, imax = buttonPages1Length - 1; i < imax; ++i) {\n\t\t\tthis.addChild(buttonPages1[i]);\n\t\t}\n\t\tthis.addChild(this.dots1);\n\t\tthis.addChild(buttonPages1[buttonPages1Length - 1]);\n\t\tconst spaceRight = this.spaceRight;\n\t\tif (spaceRight != null) {\n\t\t\tthis.addChild(spaceRight);\n\t\t}\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tthis.addChild(buttonNext);\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast != null) {\n\t\t\tthis.addChild(buttonLast);\n\t\t}\n\t}\n\n\t/**\n\t * Sets a value that is an index of a current page.\n\t *\n\t * @param value a value that is an index of a page\n\t */\n\tset value(value: number) {\n\t\tif (0 <= value && value < this._size && this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a value that is an index of a current page.\n\t *\n\t * @returns a value that is an index of a selected page.\n\t */\n\tget value(): number {\n\t\treturn this._value;\n\t}\n\n\t/**\n\t * Selects a page.\n\t *\n\t * @param index an index of a page\n\t * @deprecated in favor of {@link #value}.\n\t */\n\tset selected(index: number) {\n\t\tthis.value = index;\n\t}\n\n\t/**\n\t * Returns an index of the selected page.\n\t *\n\t * @returns an index of the selected page.\n\t * @deprecated in favor of {@link value}.\n\t */\n\tget selected(): number {\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * Sets a number of total pages.\n\t *\n\t * @param size a number of pages\n\t */\n\tset size(size: number) {\n\t\tif (0 <= size && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tif (size === 0) {\n\t\t\t\tthis._value = -1;\n\t\t\t} else {\n\t\t\t\tthis._value = Math.max(0, Math.min(this._size - 1, this._value));\n\t\t\t}\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a number of total pages.\n\t *\n\t * @returns a number of total pages.\n\t */\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\t/**\n\t * Sets a number of total pages.\n\t *\n\t * @param total a number of pages\n\t * @deprecated in favor of {@link size}\n\t */\n\tset total(total: number) {\n\t\tthis.size = total;\n\t}\n\n\t/**\n\t * Returns a number of total pages.\n\t *\n\t * @returns a number of total pages.\n\t * @deprecated in favor of {@link size}\n\t */\n\tget total(): number {\n\t\treturn this.size;\n\t}\n\n\tprotected get dots0(): DPaginationDots {\n\t\tlet result = this._dots0;\n\t\tif (result == null) {\n\t\t\tresult = this.newDots();\n\t\t\tthis._dots0 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected get dots1(): DPaginationDots {\n\t\tlet result = this._dots1;\n\t\tif (result == null) {\n\t\t\tresult = this.newDots();\n\t\t\tthis._dots1 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newDots(): DPaginationDots {\n\t\treturn new DPaginationDots();\n\t}\n\n\tprotected get buttonLast(): DButton<string> | null {\n\t\tlet result = this._buttonLast;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonLast();\n\t\t\tthis._buttonLast = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonLast(): DButton<string> | null {\n\t\tconst last = this._options?.button?.last;\n\t\tif (last !== null && last !== false && last !== undefined) {\n\t\t\tconst result = new DPaginationButtonLast(last !== true ? last : undefined);\n\t\t\tresult.on(\"active\", () => {\n\t\t\t\tthis.onButtonLastActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonLastActive(): void {\n\t\tthis.moveTo(this._size - 1);\n\t}\n\n\tprotected moveTo(index: number): void {\n\t\tif (0 <= index && index < this._size && this._value !== index) {\n\t\t\tconst oldIndex = this._value;\n\t\t\tthis._value = index;\n\t\t\tthis.emit(\"change\", index, oldIndex, this);\n\t\t\tthis.toDirty();\n\t\t\tDApplications.update(this);\n\t\t}\n\t}\n\n\tprotected get buttonNext(): DButton<string> | null {\n\t\tlet result = this._buttonNext;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonNext();\n\t\t\tthis._buttonNext = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonNext(): DButton<string> | null {\n\t\tconst next = this._options?.button?.next;\n\t\tif (next !== null && next !== false) {\n\t\t\tconst result = new DPaginationButtonNext(next !== true ? next : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonNextActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonNextActive(): void {\n\t\tthis.moveTo(this._value + 1);\n\t}\n\n\tprotected get buttonPrevious(): DButton<string> | null {\n\t\tlet result = this._buttonPrevious;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonPrevious();\n\t\t\tthis._buttonPrevious = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPrevious(): DButton<string> | null {\n\t\tconst previous = this._options?.button?.previous;\n\t\tif (previous !== null && previous !== false) {\n\t\t\tconst result = new DPaginationButtonPrevious(previous !== true ? previous : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonPreviousActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonPreviousActive(): void {\n\t\tthis.moveTo(this._value - 1);\n\t}\n\n\tprotected get buttonTop(): DButton<string> | null {\n\t\tlet result = this._buttonTop;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newButtonTop();\n\t\t\tthis._buttonTop = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonTop(): DButton<string> | null {\n\t\tconst top = this._options?.button?.top;\n\t\tif (top !== null && top !== false && top !== undefined) {\n\t\t\tconst result = new DPaginationButtonTop(top !== true ? top : undefined);\n\t\t\tresult.on(\"active\", (): void => {\n\t\t\t\tthis.onButtonTopActive();\n\t\t\t});\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onButtonTopActive(): void {\n\t\tthis.moveTo(0);\n\t}\n\n\tprotected newButtonPage(): DButton<number> {\n\t\tconst result = new DPaginationButtonPage(this._options?.button?.page);\n\t\tresult.on(\"active\", (): void => {\n\t\t\tthis.onButtonPageActive(result);\n\t\t});\n\t\treturn result;\n\t}\n\n\tprotected get buttonPages0(): DButton<number>[] {\n\t\tlet result = this._buttonPages0;\n\t\tif (result == null) {\n\t\t\tresult = this.newButtonPages0();\n\t\t\tthis._buttonPages0 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPages0(): DButton<number>[] {\n\t\treturn [\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage()\n\t\t];\n\t}\n\n\tprotected allocButtonPages0(size: number): void {\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tconst buttonPages0Length = buttonPages0.length;\n\t\tconst index = this.getChildIndex(buttonPages0[buttonPages0Length - 1]) + 1;\n\t\tfor (let i = 0, imax = size - buttonPages0Length; i < imax; ++i) {\n\t\t\tconst buttonPage = this.newButtonPage();\n\t\t\tthis.addChildAt(buttonPage, index + i);\n\t\t\tbuttonPages0.push(buttonPage);\n\t\t}\n\t}\n\n\tprotected get buttonPages1(): DButton<number>[] {\n\t\tlet result = this._buttonPages1;\n\t\tif (result == null) {\n\t\t\tresult = this.newButtonPages1();\n\t\t\tthis._buttonPages1 = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newButtonPages1(): DButton<number>[] {\n\t\treturn [\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage(),\n\t\t\tthis.newButtonPage()\n\t\t];\n\t}\n\n\tprotected allocButtonPages1(size: number): void {\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tconst buttonPages1Length = buttonPages1.length;\n\t\tconst index = this.getChildIndex(buttonPages1[0]);\n\t\tfor (let i = 0, imax = size - buttonPages1Length; i < imax; ++i) {\n\t\t\tconst buttonPage = this.newButtonPage();\n\t\t\tthis.addChildAt(buttonPage, index);\n\t\t\tbuttonPages1.unshift(buttonPage);\n\t\t}\n\t}\n\n\tprotected get page(): DPaginationPage {\n\t\tlet result = this._page;\n\t\tif (result == null) {\n\t\t\tresult = this.newPage();\n\t\t\tthis._page = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newPage(): DPaginationPage {\n\t\treturn new DPaginationPage(this._options?.page);\n\t}\n\n\tprotected onButtonPageActive(button: DButton<number>): void {\n\t\tconst text = button.text;\n\t\tif (isNumber(text)) {\n\t\t\tthis.moveTo(text - 1);\n\t\t\tif (button.state.isFocused) {\n\t\t\t\tbutton.state.isHovered = false;\n\t\t\t\tthis.page.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected get spaceLeft(): DLayoutSpace | null {\n\t\tlet result = this._spaceLeft;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newSpaceLeft();\n\t\t\tthis._spaceLeft = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newSpaceLeft(): DLayoutSpace | null {\n\t\tif (this.buttonTop != null || this.buttonPrevious != null) {\n\t\t\treturn this.newSpace();\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected get spaceRight(): DLayoutSpace | null {\n\t\tlet result = this._spaceRight;\n\t\tif (result === undefined) {\n\t\t\tresult = this.newSpaceRight();\n\t\t\tthis._spaceRight = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newSpaceRight(): DLayoutSpace | null {\n\t\tif (this.buttonLast != null || this.buttonNext != null) {\n\t\t\treturn this.newSpace();\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected newSpace(): DLayoutSpace | null {\n\t\tconst space = this._options?.button?.space;\n\t\tif (space !== null && space !== false) {\n\t\t\tif (space === true || space === undefined) {\n\t\t\t\treturn new DLayoutSpace({\n\t\t\t\t\tweight: 1\n\t\t\t\t});\n\t\t\t} else if (isNumber(space)) {\n\t\t\t\treturn new DLayoutSpace({\n\t\t\t\t\twidth: space\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn new DLayoutSpace(space);\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected onReflow(): void {\n\t\tthis.update();\n\t\tsuper.onReflow();\n\t}\n\n\tprotected update(): void {\n\t\tconst size = this._size;\n\t\tconst value = this._value;\n\t\tif (size <= 0) {\n\t\t\tthis.doUpdate0(value, size);\n\t\t} else {\n\t\t\tif (this._auto.width.isOn) {\n\t\t\t\tthis.doUpdate2(value, size, 0, 0, 0, 0);\n\t\t\t} else {\n\t\t\t\tthis.doUpdate1(value, size);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate0(value: number, size: number): void {\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tbuttonTop.state.isEnabled = false;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tbuttonPrevious.state.isEnabled = false;\n\t\t}\n\n\t\tthis.hideDots(this.dots0);\n\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t}\n\n\t\tthis.hidePage(this.page);\n\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t}\n\n\t\tthis.hideDots(this.dots1);\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tbuttonNext.state.isEnabled = false;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast) {\n\t\t\tbuttonLast.state.isEnabled = false;\n\t\t}\n\t}\n\n\tprotected doUpdate1(value: number, size: number): void {\n\t\tlet required = 0;\n\t\tlet nrequired = 0;\n\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\trequired += buttonTop.width;\n\t\t\tnrequired += 1;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\trequired += buttonPrevious.width;\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst spaceLeft = this.spaceLeft;\n\t\tif (spaceLeft != null) {\n\t\t\tif (spaceLeft.weight < 0) {\n\t\t\t\trequired += spaceLeft.width;\n\t\t\t}\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst page = this.page;\n\t\trequired += page.width;\n\t\tnrequired += 1;\n\n\t\tconst spaceRight = this.spaceRight;\n\t\tif (spaceRight != null) {\n\t\t\tif (spaceRight.weight < 0) {\n\t\t\t\trequired += spaceRight.width;\n\t\t\t}\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\trequired += buttonNext.width;\n\t\t\tnrequired += 1;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast) {\n\t\t\trequired += buttonLast.width;\n\t\t\tnrequired += 1;\n\t\t}\n\n\t\tconst marginHorizontal = this._margin.horizontal;\n\t\tif (2 <= nrequired) {\n\t\t\trequired += (nrequired - 1) * marginHorizontal;\n\t\t}\n\n\t\tconst padding = this.padding;\n\t\tconst space = this.width - (padding.getLeft() + padding.getRight());\n\t\tif (space <= required) {\n\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t} else {\n\t\t\tconst buttonPages0 = this.buttonPages0;\n\t\t\tconst buttonPage0Width = buttonPages0[0].width;\n\t\t\tconst nrequired0 = value;\n\t\t\tconst required0 = nrequired0 * (buttonPage0Width + marginHorizontal);\n\n\t\t\tconst buttonPages1 = this.buttonPages1;\n\t\t\tconst buttonPage1Width = buttonPages1[0].width;\n\t\t\tconst nrequired1 = size - (value + 1);\n\t\t\tconst required1 = nrequired1 * (buttonPage1Width + marginHorizontal);\n\n\t\t\tif (required + required0 + required1 <= space) {\n\t\t\t\tthis.doUpdate2(value, size, 0, 0, 0, 0);\n\t\t\t} else {\n\t\t\t\tconst dots1 = this.dots1;\n\t\t\t\tconst dots1Width = dots1.width;\n\t\t\t\tconst dots0 = this.dots0;\n\t\t\t\tconst dots0Width = dots0.width;\n\t\t\t\tconst m0 = marginHorizontal + buttonPage0Width;\n\t\t\t\tconst m1 = marginHorizontal + buttonPage1Width;\n\t\t\t\tconst required0n = dots0Width + m0;\n\t\t\t\tconst required1n = dots1Width + m1;\n\t\t\t\tconst required0m = required0n + m0;\n\t\t\t\tconst required1m = required1n + m1;\n\t\t\t\tif (required0 <= required1) {\n\t\t\t\t\tif (3 <= nrequired1 && required + required0 + required1m <= space) {\n\t\t\t\t\t\tconst l = space - (required + required0 + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor(l / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 0, 1, 0, n1);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor((l * 0.5) / m1);\n\t\t\t\t\t\tconst n0 = Math.floor((l - n1 * m1) / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 1, n0, n1);\n\t\t\t\t\t} else if (2 <= nrequired1 && required + required0 + required1n <= space) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 0, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1n);\n\t\t\t\t\t\tconst n0 = Math.floor(l / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 2, n0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t1 <= nrequired0 &&\n\t\t\t\t\t\t1 <= nrequired1 &&\n\t\t\t\t\t\trequired + dots0Width + dots1Width <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 3, 3, 0, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (3 <= nrequired0 && required + required0m + required1 <= space) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1);\n\t\t\t\t\t\tconst n0 = Math.floor(l / m0);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 0, n0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t3 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0m + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0m + required1m);\n\t\t\t\t\t\tconst n0 = Math.floor((l * 0.5) / m0);\n\t\t\t\t\t\tconst n1 = Math.floor((l - n0 * m0) / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 1, 1, n0, n1);\n\t\t\t\t\t} else if (2 <= nrequired0 && required + required0n + required1 <= space) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 0, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t3 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1m <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst l = space - (required + required0n + required1m);\n\t\t\t\t\t\tconst n1 = Math.floor(l / m1);\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 1, 0, n1);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t2 <= nrequired0 &&\n\t\t\t\t\t\t2 <= nrequired1 &&\n\t\t\t\t\t\trequired + required0n + required1n <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 2, 2, 0, 0);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\t1 <= nrequired0 &&\n\t\t\t\t\t\t1 <= nrequired1 &&\n\t\t\t\t\t\trequired + dots0Width + dots1Width <= space\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 3, 3, 0, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.doUpdate2(value, size, 4, 4, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected doUpdate2(\n\t\tvalue: number,\n\t\tsize: number,\n\t\tleft: 0 | 1 | 2 | 3 | 4,\n\t\tright: 0 | 1 | 2 | 3 | 4,\n\t\tnleft1: number,\n\t\tnright1: number\n\t): void {\n\t\tconst buttonTop = this.buttonTop;\n\t\tif (buttonTop != null) {\n\t\t\tbuttonTop.state.isEnabled = 0 < value;\n\t\t}\n\t\tconst buttonPrevious = this.buttonPrevious;\n\t\tif (buttonPrevious != null) {\n\t\t\tbuttonPrevious.state.isEnabled = 0 < value;\n\t\t}\n\n\t\tconst buttonPages0 = this.buttonPages0;\n\t\tswitch (left) {\n\t\t\tcase 0:\n\t\t\t\tthis.hideDots(this.dots0);\n\t\t\t\tthis.allocButtonPages0(value);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tif (i < value) {\n\t\t\t\t\t\tthis.showPage(buttonPages0[i], i);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tthis.showDots(this.dots0, 1, value - 2 - nleft1);\n\t\t\t\tthis.allocButtonPages0(2 + nleft1);\n\t\t\t\tthis.showPage(buttonPages0[0], 0);\n\t\t\t\tfor (let i = 1, imax = buttonPages0.length - nleft1 - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tfor (let i = 0, imax = 1 + nleft1; i < imax; ++i) {\n\t\t\t\t\tthis.showPage(\n\t\t\t\t\t\tbuttonPages0[buttonPages0.length - imax + i],\n\t\t\t\t\t\tvalue - 1 - (imax - 1) + i\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.showDots(this.dots0, 0, value - 2);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tthis.showPage(buttonPages0[buttonPages0.length - 1], value - 1);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tthis.showDots(this.dots0, 0, value - 1);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tthis.hideDots(this.dots0);\n\t\t\t\tfor (let i = 0, imax = buttonPages0.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages0[i]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.showPage(this.page, value);\n\n\t\tconst buttonPages1 = this.buttonPages1;\n\t\tswitch (right) {\n\t\t\tcase 0:\n\t\t\t\tthis.allocButtonPages1(size - (value + 1));\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tconst j = value + 1 + i;\n\t\t\t\t\tif (j < size) {\n\t\t\t\t\t\tthis.showPage(buttonPages1[i], j);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.hideDots(this.dots1);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tthis.allocButtonPages1(2 + nright1);\n\t\t\t\tfor (let i = 0, imax = 1 + nright1; i < imax; ++i) {\n\t\t\t\t\tthis.showPage(buttonPages1[i], value + 1 + i);\n\t\t\t\t}\n\t\t\t\tfor (let i = 1 + nright1, imax = buttonPages1.length - 1; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showPage(buttonPages1[buttonPages1.length - 1], size - 1);\n\t\t\t\tthis.showDots(this.dots1, value + 2 + nright1, size - 2);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.showPage(buttonPages1[0], value + 1);\n\t\t\t\tfor (let i = 1, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showDots(this.dots1, value + 2, size - 1);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.showDots(this.dots1, value + 1, size - 1);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tfor (let i = 0, imax = buttonPages1.length; i < imax; ++i) {\n\t\t\t\t\tthis.hidePage(buttonPages1[i]);\n\t\t\t\t}\n\t\t\t\tthis.hideDots(this.dots1);\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst buttonNext = this.buttonNext;\n\t\tif (buttonNext != null) {\n\t\t\tbuttonNext.state.isEnabled = value < size - 1;\n\t\t}\n\t\tconst buttonLast = this.buttonLast;\n\t\tif (buttonLast != null) {\n\t\t\tbuttonLast.state.isEnabled = value < size - 1;\n\t\t}\n\t}\n\n\tprotected showPage(button: DImageBase<number>, index: number): void {\n\t\tbutton.text = index + 1;\n\t\tbutton.show();\n\t}\n\n\tprotected hidePage(button: DImageBase<number>): void {\n\t\tbutton.hide();\n\t}\n\n\tprotected showDots(dots: DPaginationDots, from: number, to: number): void {\n\t\tdots.show();\n\t}\n\n\tprotected hideDots(dots: DPaginationDots): void {\n\t\tdots.hide();\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DPagination\";\n\t}\n}\n"]}
|
|
@@ -716,6 +716,7 @@ var EShapeBase = /** @class */ (function (_super) {
|
|
|
716
716
|
if (part === void 0) { part = EShapeCopyPart.ALL; }
|
|
717
717
|
this.id = source.id;
|
|
718
718
|
this.uuid = source.uuid;
|
|
719
|
+
this.visible = source.visible;
|
|
719
720
|
if (part & EShapeCopyPart.TRANSFORM) {
|
|
720
721
|
var transform = this.transform;
|
|
721
722
|
var sourceTransform = source.transform;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tDisplayObject,\n\tIPoint,\n\tMatrix,\n\tPoint,\n\tRectangle,\n\tRenderer,\n\tTexture,\n\tTransform,\n\tutils\n} from \"pixi.js\";\nimport { DApplications } from \"../../d-applications\";\nimport { DBaseStateSet } from \"../../d-base-state-set\";\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShapeAction } from \"../action/e-shape-action\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeConnectorContainer } from \"../e-shape-connector-container\";\nimport { EShapeConnectorContainerImpl } from \"../e-shape-connector-container-impl\";\nimport { EShapeContainer } from \"../e-shape-container\";\nimport { EShapeCopyPart } from \"../e-shape-copy-part\";\nimport { EShapeCorner } from \"../e-shape-corner\";\nimport { EShapeEditor } from \"../e-shape-editor\";\nimport { EShapeFill } from \"../e-shape-fill\";\nimport { EShapeGradientLike } from \"../e-shape-gradient\";\nimport { EShapeLayout } from \"../e-shape-layout\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapeRuntime } from \"../e-shape-runtime\";\nimport { EShapeStateSet } from \"../e-shape-state-set\";\nimport { EShapeStateSetImplObservable } from \"../e-shape-state-set-impl-observable\";\nimport { EShapeStroke } from \"../e-shape-stroke\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { EShapeData } from \"../e-shape-data\";\nimport { EShapeText } from \"../e-shape-text\";\nimport { EShapeTransform, EShapeTransformImpl } from \"../e-shape-transform\";\nimport { EShapeType } from \"../e-shape-type\";\nimport { EShapeUploaded } from \"../e-shape-uploaded\";\nimport { EShapeBaseHitTestData } from \"./e-shape-base-hit-test-data\";\nimport { hitTestBBox } from \"./hit-test-bbox\";\nimport { toGradientSerialized } from \"./to-gradient-serialized\";\nimport { EShapeCapabilityContainer } from \"../e-shape-capability-container\";\nimport { EShapeCapabilityContainerImpl } from \"../e-shape-capability-container-impl\";\nimport { EShapeCapability } from \"../e-shape-capability\";\n\nexport abstract class EShapeBase extends utils.EventEmitter implements EShape {\n\tprotected static WORK_HIT_TEST_DATA?: EShapeBaseHitTestData;\n\tid: string;\n\tuuid: number;\n\treadonly type: EShapeType;\n\tabstract readonly size: IPoint;\n\tabstract readonly fill: EShapeFill;\n\tabstract readonly stroke: EShapeStroke;\n\treadonly transform: EShapeTransform;\n\tabstract radius: number;\n\tabstract corner: EShapeCorner;\n\tprotected _points?: EShapePoints;\n\tprotected _image?: HTMLImageElement;\n\timageSrc?: string;\n\ttexture?: Texture;\n\tabstract gradient?: EShapeGradientLike;\n\tabstract readonly text: EShapeText;\n\t/** @deprecated in favor of {@link data} */\n\tabstract readonly tag: EShapeData;\n\tabstract readonly data: EShapeData;\n\treadonly action: EShapeAction;\n\tcursor?: string;\n\tinteractive: boolean;\n\tshortcut?: string;\n\ttitle?: string;\n\n\tprotected _connector?: EShapeConnectorContainer;\n\n\tprotected _visible: boolean;\n\tprotected _onTransformChangeLock: number;\n\tprotected _isOnTransformChanged: boolean;\n\tprotected _uploadedUpdateLock: number;\n\tprotected _isUploadedUpdated: boolean;\n\tprotected _isUploadedUpdatedRecursively: boolean;\n\n\tprotected _bounds?: Rectangle;\n\tprotected _boundsTransformId: number;\n\tprotected _boundsInternal?: Rectangle;\n\tprotected _boundsInternalTransformId: number;\n\tprotected _boundsLocal?: Rectangle;\n\tprotected _boundsLocalTransformId: number;\n\n\tprotected _state?: EShapeStateSet;\n\tprotected _capability?: EShapeCapabilityContainer;\n\n\t// Hierarchy\n\tparent: EShapeContainer | EShape | null;\n\tchildren: EShape[];\n\tlayout?: EShapeLayout;\n\n\t// Working space\n\tindex: number; // A work space for sorting.\n\tselected: boolean;\n\treference: number; // Count of references from commands\n\n\t// Working space for the viewer\n\truntime?: EShapeRuntime;\n\n\t// Working space for the editor\n\teditor?: EShapeEditor;\n\n\t// Working space for the renderer\n\tuploaded?: EShapeUploaded;\n\n\tconstructor(type: EShapeType) {\n\t\tsuper();\n\t\tthis.id = \"\";\n\t\tthis.uuid = 0;\n\t\tthis.type = type;\n\t\tthis.transform = this.newTransform();\n\t\tthis._onTransformChangeLock = 0;\n\t\tthis._isOnTransformChanged = false;\n\t\tthis.action = new EShapeAction();\n\t\tthis._visible = true;\n\t\tthis._uploadedUpdateLock = 0;\n\t\tthis._isUploadedUpdated = false;\n\t\tthis._isUploadedUpdatedRecursively = false;\n\n\t\tthis._boundsTransformId = NaN;\n\t\tthis._boundsInternalTransformId = NaN;\n\t\tthis._boundsLocalTransformId = NaN;\n\n\t\tthis.interactive = false;\n\n\t\t//\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\t//\n\t\tthis.selected = false;\n\t\tthis.index = 0;\n\t\tthis.reference = 0;\n\t}\n\n\tprotected newTransform(): EShapeTransform {\n\t\treturn new EShapeTransformImpl(this);\n\t}\n\n\tonSizeChange(): void {\n\t\tthis._boundsTransformId = NaN;\n\t\tthis._boundsInternalTransformId = NaN;\n\t\tthis._boundsLocalTransformId = NaN;\n\n\t\tthis.onTransformChange_();\n\t\tconst points = this._points;\n\t\tif (points != null) {\n\t\t\tpoints.onSizeChange();\n\t\t}\n\t\tthis.updateUploaded();\n\n\t\tconst connector = this._connector;\n\t\tif (connector != null) {\n\t\t\tconnector.fit(true);\n\t\t}\n\n\t\tconst runtime = this.runtime;\n\t\tif (runtime != null) {\n\t\t\truntime.onResize(this);\n\t\t}\n\t}\n\n\tonTransformChange(): void {\n\t\tthis.onTransformChange_();\n\t\tthis.onParentTransformChange();\n\t}\n\n\tonParentTransformChange(): void {\n\t\tthis.updateUploaded();\n\t\tconst connector = this._connector;\n\t\tif (connector != null) {\n\t\t\tconnector.fit(true);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onParentTransformChange();\n\t\t}\n\t}\n\n\tprotected onTransformChange_(): void {\n\t\tif (this._onTransformChangeLock === 0) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent != null) {\n\t\t\t\tparent.onChildTransformChange();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isOnTransformChanged = true;\n\t\t}\n\t}\n\n\tdisallowOnTransformChange(): void {\n\t\tthis._onTransformChangeLock += 1;\n\t\tif (this._onTransformChangeLock === 1) {\n\t\t\tthis._isOnTransformChanged = false;\n\t\t}\n\t}\n\n\tallowOnTransformChange(invokeOnTransformChange: boolean): void {\n\t\tthis._onTransformChangeLock -= 1;\n\t\tif (this._onTransformChangeLock === 0) {\n\t\t\tif (this._isOnTransformChanged) {\n\t\t\t\tthis._isOnTransformChanged = false;\n\t\t\t\tif (invokeOnTransformChange) {\n\t\t\t\t\tthis.onTransformChange();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonChildTransformChange(): void {\n\t\t//\n\t}\n\n\tdisallowUploadedUpdate(): void {\n\t\tthis._uploadedUpdateLock += 1;\n\t\tif (this._uploadedUpdateLock === 1) {\n\t\t\tthis._isUploadedUpdated = false;\n\t\t\tthis._isUploadedUpdatedRecursively = false;\n\t\t}\n\t}\n\n\tallowUploadedUpdate(): void {\n\t\tthis._uploadedUpdateLock -= 1;\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tif (this._isUploadedUpdatedRecursively) {\n\t\t\t\tthis._isUploadedUpdatedRecursively = false;\n\t\t\t\tthis._isUploadedUpdated = false;\n\t\t\t\tthis.updateUploadedRecursively();\n\t\t\t} else if (this._isUploadedUpdated) {\n\t\t\t\tthis._isUploadedUpdated = false;\n\t\t\t\tthis.updateUploaded();\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateUploadedRecursively(): void {\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tthis.updateUploaded();\n\t\t\tconst children = this.children;\n\t\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\t\tchildren[i].updateUploadedRecursively();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isUploadedUpdatedRecursively = true;\n\t\t}\n\t}\n\n\tupdateUploaded(): void {\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tconst uploaded = this.uploaded;\n\t\t\tif (uploaded != null) {\n\t\t\t\tuploaded.update(this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isUploadedUpdated = true;\n\t\t}\n\t}\n\n\tget image(): HTMLImageElement | undefined {\n\t\treturn this._image;\n\t}\n\n\tset image(image: HTMLImageElement | undefined) {\n\t\tthis._image = image;\n\t}\n\n\tget points(): EShapePoints | undefined {\n\t\treturn this._points;\n\t}\n\n\tget root(): EShape {\n\t\tlet root: EShape = this;\n\t\twhile (root.parent instanceof EShapeBase) {\n\t\t\troot = root.parent;\n\t\t}\n\t\treturn root;\n\t}\n\n\tget connector(): EShapeConnectorContainer {\n\t\tlet result = this._connector;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeConnectorContainerImpl(this);\n\t\t\tthis._connector = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget visible(): boolean {\n\t\tif (this._visible) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\treturn parent.visible;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tset visible(visible: boolean) {\n\t\tif (this._visible !== visible) {\n\t\t\tthis._visible = visible;\n\t\t\tthis.updateUploadedRecursively();\n\t\t}\n\t}\n\n\tget worldVisible(): boolean {\n\t\tif (this._visible) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent) {\n\t\t\t\treturn parent.worldVisible;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t//\n\tabstract clone(): EShape;\n\n\t//\n\ttoDirty(): void {\n\t\tconst parent = this.parent;\n\t\tif (parent != null) {\n\t\t\tparent.toDirty();\n\t\t}\n\t}\n\n\t// Hierarchy\n\tattach(parent: EShapeContainer | EShape, at?: number): this {\n\t\tthis.detach();\n\t\tthis.parent = parent;\n\t\tconst children = parent.children;\n\t\tif (at != null && 0 <= at && at < children.length) {\n\t\t\tchildren.splice(at, 0, this);\n\t\t} else {\n\t\t\tchildren.push(this);\n\t\t}\n\t\tparent.onChildTransformChange();\n\t\tparent.toDirty();\n\t\tthis.onAttach();\n\t\treturn this;\n\t}\n\n\tonAttach(): void {\n\t\tthis.uploaded = undefined;\n\t\tconst connector = this._connector;\n\t\tif (connector) {\n\t\t\tconnector.attach();\n\t\t\tconnector.fit(true);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onAttach();\n\t\t}\n\t}\n\n\tdetach(): this {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tthis.parent = null;\n\t\t\tconst children = parent.children;\n\t\t\tconst index = children.indexOf(this);\n\t\t\tif (0 <= index) {\n\t\t\t\tchildren.splice(index, 1);\n\t\t\t\tparent.onChildTransformChange();\n\t\t\t\tparent.toDirty();\n\t\t\t\tthis.onDetach();\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tonDetach(): void {\n\t\tthis.uploaded = undefined;\n\t\tconst connector = this._connector;\n\t\tif (connector) {\n\t\t\tconnector.detach();\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onDetach();\n\t\t}\n\t}\n\n\t// Transform\n\tupdateTransform(): void {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tif (parent.parent) {\n\t\t\t\tparent.updateTransform();\n\t\t\t}\n\t\t\tthis.transform.updateTransform(parent.transform);\n\t\t} else {\n\t\t\tthis.transform.updateTransform(Transform.IDENTITY);\n\t\t}\n\t}\n\n\t// Serialization\n\tserializeChildren(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem[] {\n\t\tconst children = this.children;\n\t\tconst childrenSerialized = [];\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tchildrenSerialized.push(child.serialize(manager));\n\t\t}\n\t\treturn childrenSerialized;\n\t}\n\n\tserializeImage(manager: EShapeResourceManagerSerialization): number {\n\t\tconst image = this._image;\n\t\treturn image != null ? manager.addResource(image.src) : -1;\n\t}\n\n\tserializeGradient(manager: EShapeResourceManagerSerialization): number {\n\t\tconst gradient = this.gradient;\n\t\tif (gradient != null) {\n\t\t\tif (gradient.serialized == null) {\n\t\t\t\tgradient.serialized = toGradientSerialized(gradient);\n\t\t\t}\n\t\t\treturn manager.addResource(gradient.serialized);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tserializeState(manager: EShapeResourceManagerSerialization): number {\n\t\tconst state = this.state;\n\t\treturn (this.interactive ? 1 : 0) | (state.isFocusable ? 0 : 2) | (state.isActive ? 4 : 0);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem {\n\t\tconst transform = this.transform;\n\t\tconst position = transform.position;\n\t\tconst pivot = transform.pivot;\n\t\tconst size = this.size;\n\t\tconst shortcut = this.shortcut;\n\t\tconst shortcutId = shortcut != null ? manager.addResource(shortcut) : -1;\n\t\tconst cursor = this.cursor;\n\t\tconst cursorId = cursor != null ? manager.addResource(cursor) : -1;\n\t\tconst title = this.title;\n\t\tconst titleId = title != null ? manager.addResource(title) : -1;\n\t\tlet capabilitiesAdded: EShapeCapability = EShapeCapability.NONE;\n\t\tlet capabilitiesRemoved: EShapeCapability = EShapeCapability.NONE;\n\t\tlet capabilitiesLocked: EShapeCapability = EShapeCapability.NONE;\n\t\tconst capability = this._capability;\n\t\tif (capability != null) {\n\t\t\tcapabilitiesAdded = capability.added;\n\t\t\tcapabilitiesRemoved = capability.removed;\n\t\t\tcapabilitiesLocked = capability.locked;\n\t\t}\n\t\treturn [\n\t\t\tthis.type,\n\t\t\tmanager.addResource(this.id),\n\t\t\tposition.x,\n\t\t\tposition.y,\n\t\t\tsize.x,\n\t\t\tsize.y,\n\t\t\ttransform.rotation,\n\t\t\ttransform.skew.x,\n\t\t\tthis.fill.serialize(manager),\n\t\t\tthis.stroke.serialize(manager),\n\t\t\tcursorId,\n\t\t\tthis.text.serialize(manager),\n\t\t\tthis.data.serialize(manager),\n\t\t\tthis.radius,\n\t\t\tthis.corner,\n\t\t\t-1,\n\t\t\t-1,\n\t\t\tthis.action.serialize(manager),\n\t\t\tthis.serializeImage(manager),\n\t\t\tthis.serializeGradient(manager),\n\t\t\tthis.serializeChildren(manager),\n\t\t\tpivot.x,\n\t\t\tpivot.y,\n\t\t\tthis.serializeState(manager),\n\t\t\tshortcutId,\n\t\t\ttitleId,\n\t\t\tthis.uuid,\n\t\t\tcapabilitiesAdded,\n\t\t\tcapabilitiesRemoved,\n\t\t\tcapabilitiesLocked\n\t\t];\n\t}\n\n\taddUuid(manager: EShapeResourceManagerSerialization): void {\n\t\tthis.uuid = manager.addUuid(this.uuid);\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].addUuid(manager);\n\t\t}\n\t}\n\n\tupdateUuid(manager: EShapeResourceManagerSerialization): void {\n\t\tthis.uuid = manager.updateUuid(this.uuid);\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].updateUuid(manager);\n\t\t}\n\t}\n\n\t// Hit test\n\tprotected getShapeScale(): number {\n\t\tconst container = this.root.parent as any;\n\t\tif (container != null && container.getShapeScale != null) {\n\t\t\treturn container.getShapeScale();\n\t\t}\n\t\treturn 1.0;\n\t}\n\n\tprotected getStrokeWidthScale(style: EShapeStrokeStyle): number {\n\t\tif (style & EShapeStrokeStyle.NON_EXPANDING_WIDTH) {\n\t\t\tif (style & EShapeStrokeStyle.NON_SHRINKING_WIDTH) {\n\t\t\t\treturn this.getShapeScale();\n\t\t\t} else {\n\t\t\t\treturn Math.min(1.0, this.getShapeScale());\n\t\t\t}\n\t\t} else {\n\t\t\tif (style & EShapeStrokeStyle.NON_SHRINKING_WIDTH) {\n\t\t\t\treturn Math.max(1.0, this.getShapeScale());\n\t\t\t} else {\n\t\t\t\treturn 1.0;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getHitTestSize(result: EShapeBaseHitTestData): EShapeBaseHitTestData {\n\t\tconst size = this.size;\n\t\tresult.width = 0.5 * size.x;\n\t\tresult.height = 0.5 * size.y;\n\t\treturn result;\n\t}\n\n\ttoHitTestData(x: number, y: number): EShapeBaseHitTestData {\n\t\tconst result = this.getHitTestSize(\n\t\t\t(EShapeBase.WORK_HIT_TEST_DATA ??= new EShapeBaseHitTestData())\n\t\t);\n\t\tconst sx = result.width;\n\t\tconst sy = result.height;\n\t\tconst pivot = this.transform.pivot;\n\t\tconst dx = x - pivot.x;\n\t\tconst dy = y - pivot.y;\n\t\tconst stroke = this.stroke;\n\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\tconst strokeScale = this.getStrokeWidthScale(stroke.style);\n\t\tconst strokeAlign = stroke.align;\n\t\tconst s = strokeWidth * strokeScale * strokeAlign;\n\t\treturn result.set(\n\t\t\t0 <= sx ? +dx : -dx,\n\t\t\t0 <= sy ? +dy : -dy,\n\t\t\tMath.abs(sx) + s,\n\t\t\tMath.abs(sy) + s,\n\t\t\tstrokeWidth,\n\t\t\tstrokeScale,\n\t\t\tstrokeAlign\n\t\t);\n\t}\n\n\tcontains(x: number, y: number): EShape | null {\n\t\tconst data = this.toHitTestData(x, y);\n\t\tif (\n\t\t\tthis.containsAbs(\n\t\t\t\tdata.x,\n\t\t\t\tdata.y,\n\t\t\t\tdata.width,\n\t\t\t\tdata.height,\n\t\t\t\tdata.strokeWidth,\n\t\t\t\tdata.strokeScale,\n\t\t\t\tdata.strokeAlign\n\t\t\t)\n\t\t) {\n\t\t\treturn this;\n\t\t}\n\t\treturn this.containsText(x, y) || this.containsChildren(x, y);\n\t}\n\n\tprotected containsText(x: number, y: number): EShape | null {\n\t\tconst text = this.text;\n\t\tconst textAtlas = text.atlas;\n\t\tif (textAtlas != null) {\n\t\t\tconst textWorld = text.world;\n\t\t\tif (textWorld != null) {\n\t\t\t\tconst transform = this.transform.internalTransform;\n\t\t\t\tconst tx = transform.a * x + transform.c * y + transform.tx - textWorld[0];\n\t\t\t\tconst ty = transform.b * x + transform.d * y + transform.ty - textWorld[1];\n\t\t\t\tconst th = textWorld[2] * tx + textWorld[3] * ty;\n\t\t\t\tconst tv = textWorld[4] * tx + textWorld[5] * ty;\n\t\t\t\tconst w = textWorld[6];\n\t\t\t\tconst h = textWorld[7];\n\t\t\t\tif (0 <= th && th <= w && 0 <= tv && tv <= h) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected containsChildren(x: number, y: number): EShape | null {\n\t\tconst children = this.children;\n\t\tfor (let i = children.length - 1; 0 <= i; --i) {\n\t\t\tconst child = children[i];\n\t\t\tchild.updateTransform();\n\t\t\tconst localTransform = child.transform.localTransform;\n\t\t\tconst a = localTransform.a;\n\t\t\tconst b = localTransform.b;\n\t\t\tconst c = localTransform.c;\n\t\t\tconst d = localTransform.d;\n\t\t\tconst tx = localTransform.tx;\n\t\t\tconst ty = localTransform.ty;\n\t\t\tconst id = 1 / (a * d - c * b);\n\t\t\tconst lx = (d * x - c * y + ty * c - tx * d) * id;\n\t\t\tconst ly = (a * y - b * x - ty * a + tx * b) * id;\n\t\t\tconst childResult = child.contains(lx, ly);\n\t\t\tif (childResult != null) {\n\t\t\t\treturn childResult;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tcontainsBBox(x: number, y: number): boolean {\n\t\tconst data = this.toHitTestData(x, y);\n\t\treturn this.containsAbsBBox(data.x, data.y, data.width, data.height);\n\t}\n\n\tcontainsAbs(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tsw: number,\n\t\tss: number,\n\t\tsa: number\n\t): boolean {\n\t\treturn this.containsAbsBBox(x, y, ax, ay);\n\t}\n\n\tcontainsAbsBBox(x: number, y: number, ax: number, ay: number): boolean {\n\t\treturn hitTestBBox(x, y, ax, ay);\n\t}\n\n\tselect(point: Point): boolean {\n\t\treturn false;\n\t}\n\n\t//\n\ttoGlobal(position: IPoint, result: Point, skipUpdate?: boolean): Point {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tresult.copyFrom(position);\n\t\tthis.transform.worldTransform.apply(result, result);\n\t\treturn result;\n\t}\n\n\ttoLocal(position: IPoint, from?: DisplayObject, result?: Point, skipUpdate?: boolean): Point {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tif (result === undefined) {\n\t\t\tresult = new Point();\n\t\t}\n\t\tresult.copyFrom(position);\n\t\tthis.transform.worldTransform.applyInverse(result, result);\n\t\treturn result;\n\t}\n\n\tgetBounds(skipUpdate: boolean, result: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst bounds = this._bounds || new Rectangle();\n\t\tthis._bounds = bounds;\n\t\tconst worldId = this.transform.getWorldId();\n\t\tif (worldId !== this._boundsTransformId) {\n\t\t\tthis._boundsTransformId = worldId;\n\t\t\tthis.getBounds_(this.transform.worldTransform, bounds);\n\t\t}\n\t\tresult.copyFrom(bounds);\n\t\treturn result;\n\t}\n\n\tgetBoundsInternal(skipUpdate: boolean, result: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst boundsInternal = this._boundsInternal || new Rectangle();\n\t\tthis._boundsInternal = boundsInternal;\n\t\tconst currentLocalId = this.transform.getLocalIdCurrent();\n\t\tif (currentLocalId !== this._boundsInternalTransformId) {\n\t\t\tthis._boundsInternalTransformId = currentLocalId;\n\t\t\tthis.getBounds_(this.transform.internalTransform, boundsInternal);\n\t\t}\n\t\tresult.copyFrom(boundsInternal);\n\t\treturn result;\n\t}\n\n\tgetBoundsLocal(skipUpdate: boolean, result: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst boundsLocal = this._boundsLocal || new Rectangle();\n\t\tthis._boundsLocal = boundsLocal;\n\t\tconst currentLocalId = this.transform.getLocalIdCurrent();\n\t\tif (currentLocalId !== this._boundsLocalTransformId) {\n\t\t\tthis._boundsLocalTransformId = currentLocalId;\n\t\t\tthis.getBounds_(this.transform.localTransform, boundsLocal);\n\t\t}\n\t\tresult.copyFrom(boundsLocal);\n\t\treturn result;\n\t}\n\n\tprotected getBoundsSize(): IPoint {\n\t\treturn this.size;\n\t}\n\n\tprotected getBounds_(transform: Matrix, result: Rectangle): Rectangle {\n\t\tconst pivot = this.transform.pivot;\n\t\tconst px = pivot.x;\n\t\tconst py = pivot.y;\n\t\tconst size = this.getBoundsSize();\n\t\tconst sx = 0.5 * size.x;\n\t\tconst sy = 0.5 * size.y;\n\n\t\tconst a = transform.a;\n\t\tconst b = transform.b;\n\t\tconst c = transform.c;\n\t\tconst d = transform.d;\n\n\t\tlet x = -sx + px;\n\t\tlet y = -sy + py;\n\t\tconst x0 = a * x + c * y;\n\t\tconst y0 = b * x + d * y;\n\n\t\tx = +sx + px;\n\t\ty = -sy + py;\n\t\tconst x1 = a * x + c * y;\n\t\tconst y1 = b * x + d * y;\n\n\t\tx = -sx + px;\n\t\ty = +sy + py;\n\t\tconst x2 = a * x + c * y;\n\t\tconst y2 = b * x + d * y;\n\n\t\tx = +sx + px;\n\t\ty = +sy + py;\n\t\tconst x3 = a * x + c * y;\n\t\tconst y3 = b * x + d * y;\n\n\t\tconst xmin = Math.min(x0, x1, x2, x3);\n\t\tconst ymin = Math.min(y0, y1, y2, y3);\n\t\tconst xmax = Math.max(x0, x1, x2, x3);\n\t\tconst ymax = Math.max(y0, y1, y2, y3);\n\t\tresult.x = xmin + transform.tx;\n\t\tresult.y = ymin + transform.ty;\n\t\tresult.width = xmax - xmin;\n\t\tresult.height = ymax - ymin;\n\t\treturn result;\n\t}\n\n\t//\n\tdestroy(): void {\n\t\tconst children = this.children;\n\t\tfor (let i = children.length - 1; 0 <= i; --i) {\n\t\t\tchildren[i].destroy();\n\t\t}\n\t\tchildren.length = 0;\n\t}\n\n\t//\n\tprotected onStateChange(newState: DBaseStateSet, oldState: DBaseStateSet): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime != null) {\n\t\t\truntime.onStateChange(this, newState, oldState);\n\t\t}\n\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tif (child instanceof EShapeBase) {\n\t\t\t\tchild.state.onParentChange(newState, oldState);\n\t\t\t}\n\t\t}\n\t}\n\n\tget state(): EShapeStateSet {\n\t\tlet result = this._state;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeStateSetImplObservable((newState, oldState): void => {\n\t\t\t\tthis.onStateChange(newState, oldState);\n\t\t\t});\n\t\t\tthis._state = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget capability(): EShapeCapabilityContainer {\n\t\tlet result = this._capability;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeCapabilityContainerImpl();\n\t\t\tthis._capability = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetCapability(): EShapeCapabilityContainer | undefined {\n\t\treturn this._capability;\n\t}\n\n\tfocus(): this {\n\t\tthis.setFocused(true);\n\t\treturn this;\n\t}\n\n\tblur(): this {\n\t\tthis.setFocused(false);\n\t\treturn this;\n\t}\n\n\tprotected setFocused(isFocused: boolean): void {\n\t\tif (this.state.isFocused !== isFocused) {\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer) {\n\t\t\t\tlayer.getFocusController().set(this, isFocused);\n\t\t\t}\n\t\t}\n\t}\n\n\tonKeyDown(e: KeyboardEvent): boolean {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\treturn runtime.onKeyDown(this, e);\n\t\t}\n\t\treturn false;\n\t}\n\n\tonKeyUp(e: KeyboardEvent): boolean {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\treturn runtime.onKeyUp(this, e);\n\t\t}\n\t\treturn false;\n\t}\n\n\t//\n\tupdate(time: number): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\truntime.update(this, time);\n\t\t}\n\t}\n\n\tonRender(time: number, renderer: Renderer): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\truntime.onRender(this, time, renderer);\n\t\t}\n\t}\n\n\tupdateRecursively(time: number): void {\n\t\tthis.update(time);\n\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].update(time);\n\t\t}\n\t}\n\n\tcopy(source: EShape, part: EShapeCopyPart = EShapeCopyPart.ALL): this {\n\t\tthis.id = source.id;\n\t\tthis.uuid = source.uuid;\n\t\tif (part & EShapeCopyPart.TRANSFORM) {\n\t\t\tconst transform = this.transform;\n\t\t\tconst sourceTransform = source.transform;\n\t\t\ttransform.position.copyFrom(sourceTransform.position);\n\t\t\ttransform.rotation = sourceTransform.rotation;\n\t\t\ttransform.skew.copyFrom(sourceTransform.skew);\n\t\t\ttransform.pivot.copyFrom(sourceTransform.pivot);\n\t\t\ttransform.scale.copyFrom(sourceTransform.scale);\n\t\t}\n\t\tif (part & EShapeCopyPart.SIZE) {\n\t\t\tthis.size.copyFrom(source.size);\n\t\t}\n\t\tif (part & EShapeCopyPart.STYLE) {\n\t\t\tthis.fill.copy(source.fill);\n\t\t\tthis.stroke.copy(source.stroke);\n\t\t\tthis.text.copy(source.text);\n\t\t\tthis.radius = source.radius;\n\t\t\tthis.corner = source.corner;\n\t\t}\n\t\tif (part & EShapeCopyPart.DATA) {\n\t\t\tthis.data.copy(source.data);\n\t\t}\n\t\tif (part & EShapeCopyPart.IMAGE) {\n\t\t\tthis.image = source.image;\n\t\t}\n\t\tif (part & EShapeCopyPart.ACTION) {\n\t\t\tthis.action.clearAndAddAll(source.action.values);\n\t\t\tthis.interactive = source.interactive;\n\t\t\tthis.cursor = source.cursor;\n\t\t\tthis.shortcut = source.shortcut;\n\t\t}\n\t\tif (part & EShapeCopyPart.POINTS) {\n\t\t\tconst sourcePoints = source.points;\n\t\t\tif (sourcePoints != null) {\n\t\t\t\tconst points = this.points;\n\t\t\t\tif (points != null) {\n\t\t\t\t\tpoints.copy(sourcePoints);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeCopyPart.STATE) {\n\t\t\tthis.state.lock(false).copy(source.state).unlock();\n\t\t}\n\t\tif (part & EShapeCopyPart.CONNECTOR) {\n\t\t\tif (source instanceof EShapeBase) {\n\t\t\t\tconst sourceConnector = source._connector;\n\t\t\t\tif (sourceConnector) {\n\t\t\t\t\tthis.connector.copy(sourceConnector);\n\t\t\t\t} else {\n\t\t\t\t\tconst connector = this._connector;\n\t\t\t\t\tif (connector) {\n\t\t\t\t\t\tconnector.clear();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst connector = this._connector;\n\t\t\t\tif (connector) {\n\t\t\t\t\tconnector.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeCopyPart.CAPABILITY) {\n\t\t\tconst sourceCapability = source.getCapability();\n\t\t\tif (sourceCapability != null) {\n\t\t\t\tthis.capability.copy(sourceCapability);\n\t\t\t} else {\n\t\t\t\tconst capability = this._capability;\n\t\t\t\tif (capability != null) {\n\t\t\t\t\tcapability.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tDisplayObject,\n\tIPoint,\n\tMatrix,\n\tPoint,\n\tRectangle,\n\tRenderer,\n\tTexture,\n\tTransform,\n\tutils\n} from \"pixi.js\";\nimport { DApplications } from \"../../d-applications\";\nimport { DBaseStateSet } from \"../../d-base-state-set\";\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShapeAction } from \"../action/e-shape-action\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeConnectorContainer } from \"../e-shape-connector-container\";\nimport { EShapeConnectorContainerImpl } from \"../e-shape-connector-container-impl\";\nimport { EShapeContainer } from \"../e-shape-container\";\nimport { EShapeCopyPart } from \"../e-shape-copy-part\";\nimport { EShapeCorner } from \"../e-shape-corner\";\nimport { EShapeEditor } from \"../e-shape-editor\";\nimport { EShapeFill } from \"../e-shape-fill\";\nimport { EShapeGradientLike } from \"../e-shape-gradient\";\nimport { EShapeLayout } from \"../e-shape-layout\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapeRuntime } from \"../e-shape-runtime\";\nimport { EShapeStateSet } from \"../e-shape-state-set\";\nimport { EShapeStateSetImplObservable } from \"../e-shape-state-set-impl-observable\";\nimport { EShapeStroke } from \"../e-shape-stroke\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { EShapeData } from \"../e-shape-data\";\nimport { EShapeText } from \"../e-shape-text\";\nimport { EShapeTransform, EShapeTransformImpl } from \"../e-shape-transform\";\nimport { EShapeType } from \"../e-shape-type\";\nimport { EShapeUploaded } from \"../e-shape-uploaded\";\nimport { EShapeBaseHitTestData } from \"./e-shape-base-hit-test-data\";\nimport { hitTestBBox } from \"./hit-test-bbox\";\nimport { toGradientSerialized } from \"./to-gradient-serialized\";\nimport { EShapeCapabilityContainer } from \"../e-shape-capability-container\";\nimport { EShapeCapabilityContainerImpl } from \"../e-shape-capability-container-impl\";\nimport { EShapeCapability } from \"../e-shape-capability\";\n\nexport abstract class EShapeBase extends utils.EventEmitter implements EShape {\n\tprotected static WORK_HIT_TEST_DATA?: EShapeBaseHitTestData;\n\tid: string;\n\tuuid: number;\n\treadonly type: EShapeType;\n\tabstract readonly size: IPoint;\n\tabstract readonly fill: EShapeFill;\n\tabstract readonly stroke: EShapeStroke;\n\treadonly transform: EShapeTransform;\n\tabstract radius: number;\n\tabstract corner: EShapeCorner;\n\tprotected _points?: EShapePoints;\n\tprotected _image?: HTMLImageElement;\n\timageSrc?: string;\n\ttexture?: Texture;\n\tabstract gradient?: EShapeGradientLike;\n\tabstract readonly text: EShapeText;\n\t/** @deprecated in favor of {@link data} */\n\tabstract readonly tag: EShapeData;\n\tabstract readonly data: EShapeData;\n\treadonly action: EShapeAction;\n\tcursor?: string;\n\tinteractive: boolean;\n\tshortcut?: string;\n\ttitle?: string;\n\n\tprotected _connector?: EShapeConnectorContainer;\n\n\tprotected _visible: boolean;\n\tprotected _onTransformChangeLock: number;\n\tprotected _isOnTransformChanged: boolean;\n\tprotected _uploadedUpdateLock: number;\n\tprotected _isUploadedUpdated: boolean;\n\tprotected _isUploadedUpdatedRecursively: boolean;\n\n\tprotected _bounds?: Rectangle;\n\tprotected _boundsTransformId: number;\n\tprotected _boundsInternal?: Rectangle;\n\tprotected _boundsInternalTransformId: number;\n\tprotected _boundsLocal?: Rectangle;\n\tprotected _boundsLocalTransformId: number;\n\n\tprotected _state?: EShapeStateSet;\n\tprotected _capability?: EShapeCapabilityContainer;\n\n\t// Hierarchy\n\tparent: EShapeContainer | EShape | null;\n\tchildren: EShape[];\n\tlayout?: EShapeLayout;\n\n\t// Working space\n\tindex: number; // A work space for sorting.\n\tselected: boolean;\n\treference: number; // Count of references from commands\n\n\t// Working space for the viewer\n\truntime?: EShapeRuntime;\n\n\t// Working space for the editor\n\teditor?: EShapeEditor;\n\n\t// Working space for the renderer\n\tuploaded?: EShapeUploaded;\n\n\tconstructor(type: EShapeType) {\n\t\tsuper();\n\t\tthis.id = \"\";\n\t\tthis.uuid = 0;\n\t\tthis.type = type;\n\t\tthis.transform = this.newTransform();\n\t\tthis._onTransformChangeLock = 0;\n\t\tthis._isOnTransformChanged = false;\n\t\tthis.action = new EShapeAction();\n\t\tthis._visible = true;\n\t\tthis._uploadedUpdateLock = 0;\n\t\tthis._isUploadedUpdated = false;\n\t\tthis._isUploadedUpdatedRecursively = false;\n\n\t\tthis._boundsTransformId = NaN;\n\t\tthis._boundsInternalTransformId = NaN;\n\t\tthis._boundsLocalTransformId = NaN;\n\n\t\tthis.interactive = false;\n\n\t\t//\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\t//\n\t\tthis.selected = false;\n\t\tthis.index = 0;\n\t\tthis.reference = 0;\n\t}\n\n\tprotected newTransform(): EShapeTransform {\n\t\treturn new EShapeTransformImpl(this);\n\t}\n\n\tonSizeChange(): void {\n\t\tthis._boundsTransformId = NaN;\n\t\tthis._boundsInternalTransformId = NaN;\n\t\tthis._boundsLocalTransformId = NaN;\n\n\t\tthis.onTransformChange_();\n\t\tconst points = this._points;\n\t\tif (points != null) {\n\t\t\tpoints.onSizeChange();\n\t\t}\n\t\tthis.updateUploaded();\n\n\t\tconst connector = this._connector;\n\t\tif (connector != null) {\n\t\t\tconnector.fit(true);\n\t\t}\n\n\t\tconst runtime = this.runtime;\n\t\tif (runtime != null) {\n\t\t\truntime.onResize(this);\n\t\t}\n\t}\n\n\tonTransformChange(): void {\n\t\tthis.onTransformChange_();\n\t\tthis.onParentTransformChange();\n\t}\n\n\tonParentTransformChange(): void {\n\t\tthis.updateUploaded();\n\t\tconst connector = this._connector;\n\t\tif (connector != null) {\n\t\t\tconnector.fit(true);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onParentTransformChange();\n\t\t}\n\t}\n\n\tprotected onTransformChange_(): void {\n\t\tif (this._onTransformChangeLock === 0) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent != null) {\n\t\t\t\tparent.onChildTransformChange();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isOnTransformChanged = true;\n\t\t}\n\t}\n\n\tdisallowOnTransformChange(): void {\n\t\tthis._onTransformChangeLock += 1;\n\t\tif (this._onTransformChangeLock === 1) {\n\t\t\tthis._isOnTransformChanged = false;\n\t\t}\n\t}\n\n\tallowOnTransformChange(invokeOnTransformChange: boolean): void {\n\t\tthis._onTransformChangeLock -= 1;\n\t\tif (this._onTransformChangeLock === 0) {\n\t\t\tif (this._isOnTransformChanged) {\n\t\t\t\tthis._isOnTransformChanged = false;\n\t\t\t\tif (invokeOnTransformChange) {\n\t\t\t\t\tthis.onTransformChange();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonChildTransformChange(): void {\n\t\t//\n\t}\n\n\tdisallowUploadedUpdate(): void {\n\t\tthis._uploadedUpdateLock += 1;\n\t\tif (this._uploadedUpdateLock === 1) {\n\t\t\tthis._isUploadedUpdated = false;\n\t\t\tthis._isUploadedUpdatedRecursively = false;\n\t\t}\n\t}\n\n\tallowUploadedUpdate(): void {\n\t\tthis._uploadedUpdateLock -= 1;\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tif (this._isUploadedUpdatedRecursively) {\n\t\t\t\tthis._isUploadedUpdatedRecursively = false;\n\t\t\t\tthis._isUploadedUpdated = false;\n\t\t\t\tthis.updateUploadedRecursively();\n\t\t\t} else if (this._isUploadedUpdated) {\n\t\t\t\tthis._isUploadedUpdated = false;\n\t\t\t\tthis.updateUploaded();\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateUploadedRecursively(): void {\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tthis.updateUploaded();\n\t\t\tconst children = this.children;\n\t\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\t\tchildren[i].updateUploadedRecursively();\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isUploadedUpdatedRecursively = true;\n\t\t}\n\t}\n\n\tupdateUploaded(): void {\n\t\tif (this._uploadedUpdateLock === 0) {\n\t\t\tconst uploaded = this.uploaded;\n\t\t\tif (uploaded != null) {\n\t\t\t\tuploaded.update(this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis._isUploadedUpdated = true;\n\t\t}\n\t}\n\n\tget image(): HTMLImageElement | undefined {\n\t\treturn this._image;\n\t}\n\n\tset image(image: HTMLImageElement | undefined) {\n\t\tthis._image = image;\n\t}\n\n\tget points(): EShapePoints | undefined {\n\t\treturn this._points;\n\t}\n\n\tget root(): EShape {\n\t\tlet root: EShape = this;\n\t\twhile (root.parent instanceof EShapeBase) {\n\t\t\troot = root.parent;\n\t\t}\n\t\treturn root;\n\t}\n\n\tget connector(): EShapeConnectorContainer {\n\t\tlet result = this._connector;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeConnectorContainerImpl(this);\n\t\t\tthis._connector = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget visible(): boolean {\n\t\tif (this._visible) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\treturn parent.visible;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tset visible(visible: boolean) {\n\t\tif (this._visible !== visible) {\n\t\t\tthis._visible = visible;\n\t\t\tthis.updateUploadedRecursively();\n\t\t}\n\t}\n\n\tget worldVisible(): boolean {\n\t\tif (this._visible) {\n\t\t\tconst parent = this.parent;\n\t\t\tif (parent) {\n\t\t\t\treturn parent.worldVisible;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t//\n\tabstract clone(): EShape;\n\n\t//\n\ttoDirty(): void {\n\t\tconst parent = this.parent;\n\t\tif (parent != null) {\n\t\t\tparent.toDirty();\n\t\t}\n\t}\n\n\t// Hierarchy\n\tattach(parent: EShapeContainer | EShape, at?: number): this {\n\t\tthis.detach();\n\t\tthis.parent = parent;\n\t\tconst children = parent.children;\n\t\tif (at != null && 0 <= at && at < children.length) {\n\t\t\tchildren.splice(at, 0, this);\n\t\t} else {\n\t\t\tchildren.push(this);\n\t\t}\n\t\tparent.onChildTransformChange();\n\t\tparent.toDirty();\n\t\tthis.onAttach();\n\t\treturn this;\n\t}\n\n\tonAttach(): void {\n\t\tthis.uploaded = undefined;\n\t\tconst connector = this._connector;\n\t\tif (connector) {\n\t\t\tconnector.attach();\n\t\t\tconnector.fit(true);\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onAttach();\n\t\t}\n\t}\n\n\tdetach(): this {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tthis.parent = null;\n\t\t\tconst children = parent.children;\n\t\t\tconst index = children.indexOf(this);\n\t\t\tif (0 <= index) {\n\t\t\t\tchildren.splice(index, 1);\n\t\t\t\tparent.onChildTransformChange();\n\t\t\t\tparent.toDirty();\n\t\t\t\tthis.onDetach();\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tonDetach(): void {\n\t\tthis.uploaded = undefined;\n\t\tconst connector = this._connector;\n\t\tif (connector) {\n\t\t\tconnector.detach();\n\t\t}\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].onDetach();\n\t\t}\n\t}\n\n\t// Transform\n\tupdateTransform(): void {\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tif (parent.parent) {\n\t\t\t\tparent.updateTransform();\n\t\t\t}\n\t\t\tthis.transform.updateTransform(parent.transform);\n\t\t} else {\n\t\t\tthis.transform.updateTransform(Transform.IDENTITY);\n\t\t}\n\t}\n\n\t// Serialization\n\tserializeChildren(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem[] {\n\t\tconst children = this.children;\n\t\tconst childrenSerialized = [];\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tchildrenSerialized.push(child.serialize(manager));\n\t\t}\n\t\treturn childrenSerialized;\n\t}\n\n\tserializeImage(manager: EShapeResourceManagerSerialization): number {\n\t\tconst image = this._image;\n\t\treturn image != null ? manager.addResource(image.src) : -1;\n\t}\n\n\tserializeGradient(manager: EShapeResourceManagerSerialization): number {\n\t\tconst gradient = this.gradient;\n\t\tif (gradient != null) {\n\t\t\tif (gradient.serialized == null) {\n\t\t\t\tgradient.serialized = toGradientSerialized(gradient);\n\t\t\t}\n\t\t\treturn manager.addResource(gradient.serialized);\n\t\t}\n\t\treturn -1;\n\t}\n\n\tserializeState(manager: EShapeResourceManagerSerialization): number {\n\t\tconst state = this.state;\n\t\treturn (this.interactive ? 1 : 0) | (state.isFocusable ? 0 : 2) | (state.isActive ? 4 : 0);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem {\n\t\tconst transform = this.transform;\n\t\tconst position = transform.position;\n\t\tconst pivot = transform.pivot;\n\t\tconst size = this.size;\n\t\tconst shortcut = this.shortcut;\n\t\tconst shortcutId = shortcut != null ? manager.addResource(shortcut) : -1;\n\t\tconst cursor = this.cursor;\n\t\tconst cursorId = cursor != null ? manager.addResource(cursor) : -1;\n\t\tconst title = this.title;\n\t\tconst titleId = title != null ? manager.addResource(title) : -1;\n\t\tlet capabilitiesAdded: EShapeCapability = EShapeCapability.NONE;\n\t\tlet capabilitiesRemoved: EShapeCapability = EShapeCapability.NONE;\n\t\tlet capabilitiesLocked: EShapeCapability = EShapeCapability.NONE;\n\t\tconst capability = this._capability;\n\t\tif (capability != null) {\n\t\t\tcapabilitiesAdded = capability.added;\n\t\t\tcapabilitiesRemoved = capability.removed;\n\t\t\tcapabilitiesLocked = capability.locked;\n\t\t}\n\t\treturn [\n\t\t\tthis.type,\n\t\t\tmanager.addResource(this.id),\n\t\t\tposition.x,\n\t\t\tposition.y,\n\t\t\tsize.x,\n\t\t\tsize.y,\n\t\t\ttransform.rotation,\n\t\t\ttransform.skew.x,\n\t\t\tthis.fill.serialize(manager),\n\t\t\tthis.stroke.serialize(manager),\n\t\t\tcursorId,\n\t\t\tthis.text.serialize(manager),\n\t\t\tthis.data.serialize(manager),\n\t\t\tthis.radius,\n\t\t\tthis.corner,\n\t\t\t-1,\n\t\t\t-1,\n\t\t\tthis.action.serialize(manager),\n\t\t\tthis.serializeImage(manager),\n\t\t\tthis.serializeGradient(manager),\n\t\t\tthis.serializeChildren(manager),\n\t\t\tpivot.x,\n\t\t\tpivot.y,\n\t\t\tthis.serializeState(manager),\n\t\t\tshortcutId,\n\t\t\ttitleId,\n\t\t\tthis.uuid,\n\t\t\tcapabilitiesAdded,\n\t\t\tcapabilitiesRemoved,\n\t\t\tcapabilitiesLocked\n\t\t];\n\t}\n\n\taddUuid(manager: EShapeResourceManagerSerialization): void {\n\t\tthis.uuid = manager.addUuid(this.uuid);\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].addUuid(manager);\n\t\t}\n\t}\n\n\tupdateUuid(manager: EShapeResourceManagerSerialization): void {\n\t\tthis.uuid = manager.updateUuid(this.uuid);\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].updateUuid(manager);\n\t\t}\n\t}\n\n\t// Hit test\n\tprotected getShapeScale(): number {\n\t\tconst container = this.root.parent as any;\n\t\tif (container != null && container.getShapeScale != null) {\n\t\t\treturn container.getShapeScale();\n\t\t}\n\t\treturn 1.0;\n\t}\n\n\tprotected getStrokeWidthScale(style: EShapeStrokeStyle): number {\n\t\tif (style & EShapeStrokeStyle.NON_EXPANDING_WIDTH) {\n\t\t\tif (style & EShapeStrokeStyle.NON_SHRINKING_WIDTH) {\n\t\t\t\treturn this.getShapeScale();\n\t\t\t} else {\n\t\t\t\treturn Math.min(1.0, this.getShapeScale());\n\t\t\t}\n\t\t} else {\n\t\t\tif (style & EShapeStrokeStyle.NON_SHRINKING_WIDTH) {\n\t\t\t\treturn Math.max(1.0, this.getShapeScale());\n\t\t\t} else {\n\t\t\t\treturn 1.0;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getHitTestSize(result: EShapeBaseHitTestData): EShapeBaseHitTestData {\n\t\tconst size = this.size;\n\t\tresult.width = 0.5 * size.x;\n\t\tresult.height = 0.5 * size.y;\n\t\treturn result;\n\t}\n\n\ttoHitTestData(x: number, y: number): EShapeBaseHitTestData {\n\t\tconst result = this.getHitTestSize(\n\t\t\t(EShapeBase.WORK_HIT_TEST_DATA ??= new EShapeBaseHitTestData())\n\t\t);\n\t\tconst sx = result.width;\n\t\tconst sy = result.height;\n\t\tconst pivot = this.transform.pivot;\n\t\tconst dx = x - pivot.x;\n\t\tconst dy = y - pivot.y;\n\t\tconst stroke = this.stroke;\n\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\tconst strokeScale = this.getStrokeWidthScale(stroke.style);\n\t\tconst strokeAlign = stroke.align;\n\t\tconst s = strokeWidth * strokeScale * strokeAlign;\n\t\treturn result.set(\n\t\t\t0 <= sx ? +dx : -dx,\n\t\t\t0 <= sy ? +dy : -dy,\n\t\t\tMath.abs(sx) + s,\n\t\t\tMath.abs(sy) + s,\n\t\t\tstrokeWidth,\n\t\t\tstrokeScale,\n\t\t\tstrokeAlign\n\t\t);\n\t}\n\n\tcontains(x: number, y: number): EShape | null {\n\t\tconst data = this.toHitTestData(x, y);\n\t\tif (\n\t\t\tthis.containsAbs(\n\t\t\t\tdata.x,\n\t\t\t\tdata.y,\n\t\t\t\tdata.width,\n\t\t\t\tdata.height,\n\t\t\t\tdata.strokeWidth,\n\t\t\t\tdata.strokeScale,\n\t\t\t\tdata.strokeAlign\n\t\t\t)\n\t\t) {\n\t\t\treturn this;\n\t\t}\n\t\treturn this.containsText(x, y) || this.containsChildren(x, y);\n\t}\n\n\tprotected containsText(x: number, y: number): EShape | null {\n\t\tconst text = this.text;\n\t\tconst textAtlas = text.atlas;\n\t\tif (textAtlas != null) {\n\t\t\tconst textWorld = text.world;\n\t\t\tif (textWorld != null) {\n\t\t\t\tconst transform = this.transform.internalTransform;\n\t\t\t\tconst tx = transform.a * x + transform.c * y + transform.tx - textWorld[0];\n\t\t\t\tconst ty = transform.b * x + transform.d * y + transform.ty - textWorld[1];\n\t\t\t\tconst th = textWorld[2] * tx + textWorld[3] * ty;\n\t\t\t\tconst tv = textWorld[4] * tx + textWorld[5] * ty;\n\t\t\t\tconst w = textWorld[6];\n\t\t\t\tconst h = textWorld[7];\n\t\t\t\tif (0 <= th && th <= w && 0 <= tv && tv <= h) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprotected containsChildren(x: number, y: number): EShape | null {\n\t\tconst children = this.children;\n\t\tfor (let i = children.length - 1; 0 <= i; --i) {\n\t\t\tconst child = children[i];\n\t\t\tchild.updateTransform();\n\t\t\tconst localTransform = child.transform.localTransform;\n\t\t\tconst a = localTransform.a;\n\t\t\tconst b = localTransform.b;\n\t\t\tconst c = localTransform.c;\n\t\t\tconst d = localTransform.d;\n\t\t\tconst tx = localTransform.tx;\n\t\t\tconst ty = localTransform.ty;\n\t\t\tconst id = 1 / (a * d - c * b);\n\t\t\tconst lx = (d * x - c * y + ty * c - tx * d) * id;\n\t\t\tconst ly = (a * y - b * x - ty * a + tx * b) * id;\n\t\t\tconst childResult = child.contains(lx, ly);\n\t\t\tif (childResult != null) {\n\t\t\t\treturn childResult;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tcontainsBBox(x: number, y: number): boolean {\n\t\tconst data = this.toHitTestData(x, y);\n\t\treturn this.containsAbsBBox(data.x, data.y, data.width, data.height);\n\t}\n\n\tcontainsAbs(\n\t\tx: number,\n\t\ty: number,\n\t\tax: number,\n\t\tay: number,\n\t\tsw: number,\n\t\tss: number,\n\t\tsa: number\n\t): boolean {\n\t\treturn this.containsAbsBBox(x, y, ax, ay);\n\t}\n\n\tcontainsAbsBBox(x: number, y: number, ax: number, ay: number): boolean {\n\t\treturn hitTestBBox(x, y, ax, ay);\n\t}\n\n\tselect(point: Point): boolean {\n\t\treturn false;\n\t}\n\n\t//\n\ttoGlobal(position: IPoint, result: Point, skipUpdate?: boolean): Point {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tresult.copyFrom(position);\n\t\tthis.transform.worldTransform.apply(result, result);\n\t\treturn result;\n\t}\n\n\ttoLocal(position: IPoint, from?: DisplayObject, result?: Point, skipUpdate?: boolean): Point {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tif (result === undefined) {\n\t\t\tresult = new Point();\n\t\t}\n\t\tresult.copyFrom(position);\n\t\tthis.transform.worldTransform.applyInverse(result, result);\n\t\treturn result;\n\t}\n\n\tgetBounds(skipUpdate: boolean, result: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst bounds = this._bounds || new Rectangle();\n\t\tthis._bounds = bounds;\n\t\tconst worldId = this.transform.getWorldId();\n\t\tif (worldId !== this._boundsTransformId) {\n\t\t\tthis._boundsTransformId = worldId;\n\t\t\tthis.getBounds_(this.transform.worldTransform, bounds);\n\t\t}\n\t\tresult.copyFrom(bounds);\n\t\treturn result;\n\t}\n\n\tgetBoundsInternal(skipUpdate: boolean, result: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst boundsInternal = this._boundsInternal || new Rectangle();\n\t\tthis._boundsInternal = boundsInternal;\n\t\tconst currentLocalId = this.transform.getLocalIdCurrent();\n\t\tif (currentLocalId !== this._boundsInternalTransformId) {\n\t\t\tthis._boundsInternalTransformId = currentLocalId;\n\t\t\tthis.getBounds_(this.transform.internalTransform, boundsInternal);\n\t\t}\n\t\tresult.copyFrom(boundsInternal);\n\t\treturn result;\n\t}\n\n\tgetBoundsLocal(skipUpdate: boolean, result: Rectangle): Rectangle {\n\t\tif (skipUpdate !== true) {\n\t\t\tthis.updateTransform();\n\t\t}\n\t\tconst boundsLocal = this._boundsLocal || new Rectangle();\n\t\tthis._boundsLocal = boundsLocal;\n\t\tconst currentLocalId = this.transform.getLocalIdCurrent();\n\t\tif (currentLocalId !== this._boundsLocalTransformId) {\n\t\t\tthis._boundsLocalTransformId = currentLocalId;\n\t\t\tthis.getBounds_(this.transform.localTransform, boundsLocal);\n\t\t}\n\t\tresult.copyFrom(boundsLocal);\n\t\treturn result;\n\t}\n\n\tprotected getBoundsSize(): IPoint {\n\t\treturn this.size;\n\t}\n\n\tprotected getBounds_(transform: Matrix, result: Rectangle): Rectangle {\n\t\tconst pivot = this.transform.pivot;\n\t\tconst px = pivot.x;\n\t\tconst py = pivot.y;\n\t\tconst size = this.getBoundsSize();\n\t\tconst sx = 0.5 * size.x;\n\t\tconst sy = 0.5 * size.y;\n\n\t\tconst a = transform.a;\n\t\tconst b = transform.b;\n\t\tconst c = transform.c;\n\t\tconst d = transform.d;\n\n\t\tlet x = -sx + px;\n\t\tlet y = -sy + py;\n\t\tconst x0 = a * x + c * y;\n\t\tconst y0 = b * x + d * y;\n\n\t\tx = +sx + px;\n\t\ty = -sy + py;\n\t\tconst x1 = a * x + c * y;\n\t\tconst y1 = b * x + d * y;\n\n\t\tx = -sx + px;\n\t\ty = +sy + py;\n\t\tconst x2 = a * x + c * y;\n\t\tconst y2 = b * x + d * y;\n\n\t\tx = +sx + px;\n\t\ty = +sy + py;\n\t\tconst x3 = a * x + c * y;\n\t\tconst y3 = b * x + d * y;\n\n\t\tconst xmin = Math.min(x0, x1, x2, x3);\n\t\tconst ymin = Math.min(y0, y1, y2, y3);\n\t\tconst xmax = Math.max(x0, x1, x2, x3);\n\t\tconst ymax = Math.max(y0, y1, y2, y3);\n\t\tresult.x = xmin + transform.tx;\n\t\tresult.y = ymin + transform.ty;\n\t\tresult.width = xmax - xmin;\n\t\tresult.height = ymax - ymin;\n\t\treturn result;\n\t}\n\n\t//\n\tdestroy(): void {\n\t\tconst children = this.children;\n\t\tfor (let i = children.length - 1; 0 <= i; --i) {\n\t\t\tchildren[i].destroy();\n\t\t}\n\t\tchildren.length = 0;\n\t}\n\n\t//\n\tprotected onStateChange(newState: DBaseStateSet, oldState: DBaseStateSet): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime != null) {\n\t\t\truntime.onStateChange(this, newState, oldState);\n\t\t}\n\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tconst child = children[i];\n\t\t\tif (child instanceof EShapeBase) {\n\t\t\t\tchild.state.onParentChange(newState, oldState);\n\t\t\t}\n\t\t}\n\t}\n\n\tget state(): EShapeStateSet {\n\t\tlet result = this._state;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeStateSetImplObservable((newState, oldState): void => {\n\t\t\t\tthis.onStateChange(newState, oldState);\n\t\t\t});\n\t\t\tthis._state = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tget capability(): EShapeCapabilityContainer {\n\t\tlet result = this._capability;\n\t\tif (result == null) {\n\t\t\tresult = new EShapeCapabilityContainerImpl();\n\t\t\tthis._capability = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetCapability(): EShapeCapabilityContainer | undefined {\n\t\treturn this._capability;\n\t}\n\n\tfocus(): this {\n\t\tthis.setFocused(true);\n\t\treturn this;\n\t}\n\n\tblur(): this {\n\t\tthis.setFocused(false);\n\t\treturn this;\n\t}\n\n\tprotected setFocused(isFocused: boolean): void {\n\t\tif (this.state.isFocused !== isFocused) {\n\t\t\tconst layer = DApplications.getLayer(this);\n\t\t\tif (layer) {\n\t\t\t\tlayer.getFocusController().set(this, isFocused);\n\t\t\t}\n\t\t}\n\t}\n\n\tonKeyDown(e: KeyboardEvent): boolean {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\treturn runtime.onKeyDown(this, e);\n\t\t}\n\t\treturn false;\n\t}\n\n\tonKeyUp(e: KeyboardEvent): boolean {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\treturn runtime.onKeyUp(this, e);\n\t\t}\n\t\treturn false;\n\t}\n\n\t//\n\tupdate(time: number): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\truntime.update(this, time);\n\t\t}\n\t}\n\n\tonRender(time: number, renderer: Renderer): void {\n\t\tconst runtime = this.runtime;\n\t\tif (runtime) {\n\t\t\truntime.onRender(this, time, renderer);\n\t\t}\n\t}\n\n\tupdateRecursively(time: number): void {\n\t\tthis.update(time);\n\n\t\tconst children = this.children;\n\t\tfor (let i = 0, imax = children.length; i < imax; ++i) {\n\t\t\tchildren[i].update(time);\n\t\t}\n\t}\n\n\tcopy(source: EShape, part: EShapeCopyPart = EShapeCopyPart.ALL): this {\n\t\tthis.id = source.id;\n\t\tthis.uuid = source.uuid;\n\t\tthis.visible = source.visible;\n\t\tif (part & EShapeCopyPart.TRANSFORM) {\n\t\t\tconst transform = this.transform;\n\t\t\tconst sourceTransform = source.transform;\n\t\t\ttransform.position.copyFrom(sourceTransform.position);\n\t\t\ttransform.rotation = sourceTransform.rotation;\n\t\t\ttransform.skew.copyFrom(sourceTransform.skew);\n\t\t\ttransform.pivot.copyFrom(sourceTransform.pivot);\n\t\t\ttransform.scale.copyFrom(sourceTransform.scale);\n\t\t}\n\t\tif (part & EShapeCopyPart.SIZE) {\n\t\t\tthis.size.copyFrom(source.size);\n\t\t}\n\t\tif (part & EShapeCopyPart.STYLE) {\n\t\t\tthis.fill.copy(source.fill);\n\t\t\tthis.stroke.copy(source.stroke);\n\t\t\tthis.text.copy(source.text);\n\t\t\tthis.radius = source.radius;\n\t\t\tthis.corner = source.corner;\n\t\t}\n\t\tif (part & EShapeCopyPart.DATA) {\n\t\t\tthis.data.copy(source.data);\n\t\t}\n\t\tif (part & EShapeCopyPart.IMAGE) {\n\t\t\tthis.image = source.image;\n\t\t}\n\t\tif (part & EShapeCopyPart.ACTION) {\n\t\t\tthis.action.clearAndAddAll(source.action.values);\n\t\t\tthis.interactive = source.interactive;\n\t\t\tthis.cursor = source.cursor;\n\t\t\tthis.shortcut = source.shortcut;\n\t\t}\n\t\tif (part & EShapeCopyPart.POINTS) {\n\t\t\tconst sourcePoints = source.points;\n\t\t\tif (sourcePoints != null) {\n\t\t\t\tconst points = this.points;\n\t\t\t\tif (points != null) {\n\t\t\t\t\tpoints.copy(sourcePoints);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeCopyPart.STATE) {\n\t\t\tthis.state.lock(false).copy(source.state).unlock();\n\t\t}\n\t\tif (part & EShapeCopyPart.CONNECTOR) {\n\t\t\tif (source instanceof EShapeBase) {\n\t\t\t\tconst sourceConnector = source._connector;\n\t\t\t\tif (sourceConnector) {\n\t\t\t\t\tthis.connector.copy(sourceConnector);\n\t\t\t\t} else {\n\t\t\t\t\tconst connector = this._connector;\n\t\t\t\t\tif (connector) {\n\t\t\t\t\t\tconnector.clear();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst connector = this._connector;\n\t\t\t\tif (connector) {\n\t\t\t\t\tconnector.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (part & EShapeCopyPart.CAPABILITY) {\n\t\t\tconst sourceCapability = source.getCapability();\n\t\t\tif (sourceCapability != null) {\n\t\t\t\tthis.capability.copy(sourceCapability);\n\t\t\t} else {\n\t\t\t\tconst capability = this._capability;\n\t\t\t\tif (capability != null) {\n\t\t\t\t\tcapability.clear();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n}\n"]}
|