@memberjunction/ng-versions 5.43.0 → 5.44.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.
@@ -1 +1 @@
1
- {"version":3,"file":"label-create.component.js","sourceRoot":"","sources":["../../../src/lib/label-create/label-create.component.ts","../../../src/lib/label-create/label-create.component.html"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,YAAY,EAGZ,uBAAuB,EAE1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAc,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EACH,mBAAmB,EACnB,2BAA2B,EAE9B,MAAM,sCAAsC,CAAC;;;;;;ICVtC,AADF,AADF,8BAA4B,aAC6E,cAC3E;IAAA,iBAAC;IAAA,iBAAO;IAClC,+BAAyB;IAAA,sBAAM;IACjC,AADiC,iBAAO,EAClC;IACN,yBAA2E;IAEzE,AADF,8BAAyG,cAC7E;IAAA,iBAAC;IAAA,iBAAO;IAClC,gCAAyB;IAAA,wBAAO;IAClC,AADkC,iBAAO,EACnC;IACN,0BAA4E;IAE1E,AADF,+BAA4D,eAChC;IAAA,kBAAC;IAAA,iBAAO;IAClC,gCAAyB;IAAA,wBAAO;IAEpC,AADE,AADkC,iBAAO,EACnC,EACF;;;IAdc,cAAwC;IAAC,AAAzC,wDAAwC,6CAA4C;IAI1E,eAAwC;IAAxC,wDAAwC;IAClD,cAAyC;IAAC,AAA1C,yDAAyC,8CAA6C;IAI5E,eAAyC;IAAzC,yDAAyC;IACnD,cAAyC;IAAzC,yDAAyC;;;IA0BjD,gCAAiC;IAAA,YAAmC;;IAAA,iBAAO;;;IAA1C,cAAmC;IAAnC,wEAAmC;;;;IAL1E,+BACiC;IAA/B,0NAAS,8BAAoB,KAAC;IAE5B,AADF,+BAAgC,eACG;IAAA,YAAe;IAAA,iBAAO;IACvD,8GAA0B;IAG5B,iBAAM;IACN,wBAA6D;IAC/D,iBAAM;;;IAN+B,eAAe;IAAf,oCAAe;IAChD,cAEC;IAFD,gDAEC;;;IAML,+BAA+B;IAC7B,gDACF;IAAA,iBAAM;;;;IAzBV,AADF,8BAAyB,WACK;IAAA,4DAA4C;IAAA,iBAAI;IAC5E,+BAA2B;IACzB,wBAAqD;IACrD,iCAImD;IAAjD,+MAAiB,mCAA4B,KAAC;IAClD,AALE,iBAImD,EAC/C;IACN,+BAAyB;IACvB,0HAWC;IACD,uGAAqC;IAMzC,AADE,iBAAM,EACF;;;IAtBA,eAA4B;IAA5B,iDAA4B;IAI9B,eAWC;IAXD,sCAWC;IACD,eAIC;IAJD,+DAIC;;;;IAUC,kCAAoD;IAA3B,yMAAS,uBAAgB,KAAC;IACjD,wBAAsC;IACxC,iBAAS;;;IASX,iCAAmD;;;IAwBzC,wBAAiC;;;;IALvC,+BAE0C;IAAxC,0OAAS,uCAA6B,KAAC;IACvC,+BAA6B;IAC3B,2HAAuB;IAGzB,iBAAM;IACN,gCAA0B;IAAA,YAAsB;IAClD,AADkD,iBAAO,EACnD;;;IARJ,8CAAkC;IAGhC,eAEC;IAFD,6CAEC;IAEuB,eAAsB;IAAtB,2CAAsB;;;IAIlD,+BAA+B;IAC7B,mDACF;IAAA,iBAAM;;;;IA7BR,AADF,+BAA6B,cACiB;IAC1C,wBAAqD;IACrD,iCAImD;IAAjD,+NAAiB,mCAA4B,KAAC;IAClD,AALE,iBAImD,EAC/C;IAEJ,AADF,+BAA+B,iBACyB;IAA7B,0MAAS,yBAAkB,KAAC;IAAC,0BAAU;IAAA,iBAAS;IACzE,kCAAwD;IAA/B,0MAAS,2BAAoB,KAAC;IAAC,qBAAK;IAEjE,AADE,AAD+D,iBAAS,EAClE,EACF;IACN,+BAAyB;IACvB,2IAWC;IACD,wHAAyD;IAK3D,iBAAM;IAEJ,AADF,gCAA4B,gBACI;IAAA,aAAgC;IAAA,iBAAO;IACrE,mCAE8B;IAA5B,2MAAS,wBAAiB,KAAC;IAC3B,2BACA;IAAA,yBAAuC;IAE3C,AADE,iBAAS,EACL;;;IAnCA,eAA4B;IAA5B,iDAA4B;IAShC,eAWC;IAXD,qCAWC;IACD,eAIC;IAJD,2FAIC;IAG6B,eAAgC;IAAhC,kEAAgC;IAE5D,cAAsC;IAAtC,2DAAsC;;;IApD5C,AADF,8BAAyB,cACM;IAC3B,0GAA0B;IAMxB,AADF,2BAAK,WACyB;IAC1B,qCAAoB;IAAA,8BAAQ;IAAA,YAAwB;IAAA,iBAAS;IAAC,2BAChE;IAEJ,AADE,AADE,iBAAI,EACA,EACF;IACN,8GAAwB;IAGxB,+FAAyB;IA4C3B,iBAAM;;;IA1DF,eAIC;IAJD,oDAIC;IAG+B,eAAwB;IAAxB,uFAAwB;IAI1D,eAEC;IAFD,kDAEC;IACD,cA2CC;IA3CD,oDA2CC;;;IAuBG,+BAA0B;IACxB,wBAAuC;IACvC,4BAAM;IAAA,YAA0D;IAClE,AADkE,iBAAO,EACnE;;;IADE,eAA0D;IAA1D,4FAA0D;;;;IAjBpE,AADF,AADF,8BAAyB,cACM,iBAC0B;IAA5B,0LAAS,wBAAiB,KAAC;IAClD,wBAAsC;IACxC,iBAAS;IACT,4BAA4B;IAAA,wCAAwB;IACtD,AADsD,iBAAI,EACpD;IAEJ,AADF,+BAA6B,cACD;IACxB,wBAAiC;IACjC,4BAAM;IAAA,aAAwB;IAChC,AADgC,iBAAO,EACjC;IACN,gCAA0B;IACxB,yBAAwC;IACxC,6BAAM;IAAA,aAA6E;IACrF,AADqF,iBAAO,EACtF;IACN,yGAA+B;IAMjC,iBAAM;IAEJ,AADF,gCAAwB,iBACI;IAAA,2BAAU;IAAA,iBAAQ;IAC5C,kCAG4B;IAA1B,iTAAuB;IAC3B,AAJE,iBAG4B,EACxB;IAEJ,AADF,gCAAwB,iBACI;IAAA,uCAAsB;IAAA,iBAAQ;IACxD,qCAG+B;IAA/B,kUAA8B;IAChC,AADiC,iBAAW,EACtC;IAEJ,AADF,gCAA4B,kBAGC;IAAzB,2LAAS,qBAAc,KAAC;IACxB,yBAA+B;IAC/B,aACF;IAAA,iBAAS;IACT,mCAAmD;IAArB,2LAAS,iBAAU,KAAC;IAChD,yBACF;IAEJ,AADE,AADE,iBAAS,EACL,EACF;;;IAtCM,gBAAwB;IAAxB,uFAAwB;IAIxB,eAA6E;IAA7E,wHAA6E;IAErF,cAKC;IALD,0DAKC;IAOC,eAAuB;IAAvB,gDAAuB;IAOzB,eAA8B;IAA9B,uDAA8B;IAI5B,eAA8B;IAA9B,mDAA8B;IAG9B,eACF;IADE,sFACF;;;IAgCQ,gCAA4B;IAC1B,wBAAiC;IACjC,YACF;IAAA,iBAAO;;;IADL,eACF;IADE,oEACF;;;IARF,AADF,+BAA4B,eACE;IAC1B,wBAAkC;IAClC,YACF;IAAA,iBAAO;IACP,oIAAoC;IAMtC,iBAAM;;;IARF,eACF;IADE,0HACF;IACA,cAKC;IALD,8DAKC;;;IAlBL,AADF,+BAAgC,cACE;IAC9B,0BAAiF;IACnF,iBAAM;IAEJ,AADF,+BAA8B,eACG;IAAA,YAA0B;IAAA,iBAAO;IAChE,gCAA2B;IAAA,YAA8B;IAC3D,AAD2D,iBAAO,EAC5D;IACN,qHAA8E;IAchF,iBAAM;;;IApB6B,eAA2C;IAA3C,8DAA2C;IAG3C,eAA0B;IAA1B,mDAA0B;IAC9B,eAA8B;IAA9B,gEAA8B;IAE3D,cAaC;IAbD,+GAaC;;;IAOC,4BAAM;IAAC,YAA4C;IAAA,iBAAO;;;IAAnD,cAA4C;IAA5C,6EAA4C;;;IAHvD,6BAA6B;IAC3B,YACA;IAAA,kHAA4B;IAG9B,iBAAI;;;IAJF,cACA;IADA,sHACA;IAAA,cAEC;IAFD,sDAEC;;;IAnCL,AADF,8BAAuC,cACL;IAC9B,wBAAqD;IACvD,iBAAM;IACN,8BAA2B;IAAA,kCAAkB;IAAA,iBAAK;IAElD,uGAAsB;IAyBtB,qGAAuB;IAQzB,iBAAM;;;IAjCJ,eAwBC;IAxBD,gDAwBC;IACD,cAOC;IAPD,iDAOC;;;IAeK,4BAAM;IAAC,YAAwC;IAAA,iBAAO;;;IAA/C,cAAwC;IAAxC,2EAAwC;;;IAPnD,+BAAoC;IAClC,wBAAiC;IACnC,iBAAM;IACN,8BAAuB;IAAA,8BAAc;IAAA,iBAAK;IAC1C,6BAAwB;IACtB,YACA;IAAA,kHAA4B;IAEzB,kBACH;IAAA,iBAAI;;;IAJJ,eACA;IADA,mIACA;IAAA,cAEG;IAFH,sDAEG;;;IAIH,+BAAkC;IAChC,wBAAiC;IACnC,iBAAM;IACN,8BAAuB;IAAA,qBAAK;IAAA,iBAAK;IACjC,6BAAmC;IAAA,YAAe;IAAA,iBAAI;;;IAAnB,eAAe;IAAf,wCAAe;;;;IAlBxD,8BAAmC;IACjC,4FAAoB;IAYlB,4FAAmB;IAOnB,kCAAqD;IAAzB,2LAAS,qBAAc,KAAC;IAAC,oBAAI;IAC3D,AAD2D,iBAAS,EAC9D;;;IApBN,cAWG;IAXH,8CAWG;IACD,cAMC;IAND,6CAMC;;ADhNT,MAAM,OAAO,sBAAuB,SAAQ,oBAAoB;IA6CxC;IAAgC;IA5CpD;;OAEG;IACM,iBAAiB,GAAsB,IAAI,CAAC;IAErD;;;OAGG;IACM,oBAAoB,GAAa,EAAE,CAAC;IAE7C,oDAAoD;IAC1C,OAAO,GAAG,IAAI,YAAY,EAA6C,CAAC;IAElF,qCAAqC;IAC3B,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;IAE5C,eAAe;IACR,UAAU,GAA2D,QAAQ,CAAC;IAErF,2BAA2B;IACpB,gBAAgB,GAAG,EAAE,CAAC;IACtB,gBAAgB,GAAiB,EAAE,CAAC;IACpC,cAAc,GAAsB,IAAI,CAAC;IAEhD,2BAA2B;IACpB,gBAAgB,GAAG,EAAE,CAAC;IACtB,gBAAgB,GAAmB,EAAE,CAAC;IACtC,eAAe,GAAmB,EAAE,CAAC;IACrC,gBAAgB,GAAG,KAAK,CAAC;IAEhC,kBAAkB;IACX,SAAS,GAAG,EAAE,CAAC;IACf,gBAAgB,GAAG,EAAE,CAAC;IAE7B,wBAAwB;IACjB,eAAe,GAAG,KAAK,CAAC;IACxB,WAAW,GAAG,EAAE,CAAC;IACjB,iBAAiB,GAAG,CAAC,CAAC;IACtB,gBAAgB,GAAG,CAAC,CAAC;IACrB,cAAc,GAAsC,IAAI,CAAC;IAEhE,IAAY,QAAQ,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAErD,YAAoB,GAAsB,EAAU,MAAc;QAAI,KAAK,EAAE,CAAC;QAA1D,QAAG,GAAH,GAAG,CAAmB;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAa,CAAC;IAEhF,QAAQ;QACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAE7C,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACxD,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAElE,KAAK,CAAC,6BAA6B;QACvC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAe,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,qBAAqB,CAAC,GAAa;QACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAEnE,oBAAoB,CAAC,IAAY;QACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,MAAM;YAC1B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC,CAAC,GAAG,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEM,YAAY,CAAC,MAAkB;QAClC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,0EAA0E;IAC1E,2BAA2B;IAC3B,0EAA0E;IAEnE,oBAAoB,CAAC,IAAY;QACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,MAAM;YACzB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEM,qBAAqB,CAAC,MAAoB;QAC7C,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEM,gBAAgB;QACnB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEM,kBAAkB;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAChE,CAAC;IAED,0EAA0E;IAC1E,kBAAkB;IAClB,0EAA0E;IAEnE,eAAe;QAClB,IAAI,IAAI,CAAC,mBAAmB,KAAK,CAAC;YAAE,OAAO;QAC3C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEM,cAAc;QACjB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,0EAA0E;IAC1E,wBAAwB;IACxB,0EAA0E;IAEnE,KAAK,CAAC,YAAY;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAAE,OAAO;QAE3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,WAAW,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YAC7B,CAAC,CAAC,CAAC;QACP,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,UAAU,EAAE,IAAI,CAAC,iBAAiB;YAClC,SAAS,EAAE,IAAI,CAAC,gBAAgB;SACnC,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,0EAA0E;IAC1E,iBAAiB;IACjB,0EAA0E;IAElE,KAAK,CAAC,iBAAiB,CAAC,MAAoB;QAChD,MAAM,QAAQ,GAAG,IAAI,2BAA2B,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAC3B,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,SAAS;YACtD,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,IAAI,CAAC,cAAe,CAAC,IAAI;YACrC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YAC7C,mBAAmB,EAAE,IAAI;YACzB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;oBACjB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;oBAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACP,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,gCAAgC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAAuB;QACrD,MAAM,QAAQ,GAAG,IAAI,2BAA2B,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAE/E,2EAA2E;QAC3E,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;YAC5C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAC3B,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,SAAS;YACtD,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,IAAI,CAAC,cAAe,CAAC,IAAI;SACxC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,uCAAuC,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,aAAa,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;gBAC3C,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,MAAM,CAAC,WAAW,EAAE;gBAC7D,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,SAAS;gBACtD,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE,IAAI,CAAC,cAAe,CAAC,IAAI;gBACrC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,OAAO;gBAC9B,mBAAmB,EAAE,IAAI;gBACzB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;wBACjB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;wBAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;oBAC5B,CAAC,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5F,SAAS;YACb,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,gBAAgB,IAAI,WAAW,CAAC,aAAa,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,eAAe;IACf,0EAA0E;IAElE,KAAK,CAAC,iBAAiB,CAAC,MAAkB;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEtD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAA0B;gBACrD,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,SAAS,IAAI,IAAI;gBAC1B,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,QAAQ;aACvB,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC7C,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACzB,WAAW,EAAE,SAAS;wBAClB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACvC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC3B,QAAQ,EAAE,KAAK;iBAClB,CAAC,CAAC,CAAC;gBACJ,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,kBAAkB;IAClB,0EAA0E;IAElE,aAAa,CAAC,MAAkB;QACpC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QACvF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACjC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CACvE,CAAC;YACF,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,oBAAoB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,gBAAgB;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAChD,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,OAAO,GAAG,UAAU,WAAW,IAAI,EAAE,CAAC;IAC1C,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;gHAtYQ,sBAAsB;6DAAtB,sBAAsB;YC/BnC,8BAAoC;YAGlC,0FAA0D;YAoB1D,yFAA+B;YAkC/B,yFAAgC;YAiEhC,yFAAgC;YAqDhC,wFAAiC;YA4CjC,wFAA6B;YAwB7B,iBAAM;;YAhPN,cAiBC;YAjBD,qFAiBC;YAGD,cA+BC;YA/BD,sDA+BC;YAGD,cA8DC;YA9DD,uDA8DC;YAGD,cAkDC;YAlDD,uDAkDC;YAGD,cAyCC;YAzCD,wDAyCC;YAGD,cAuBG;YAvBH,oDAuBG;;;iFDnNQ,sBAAsB;cAPlC,SAAS;6BACI,KAAK,YACL,iBAAiB,mBAGV,uBAAuB,CAAC,MAAM;;kBAM9C,KAAK;;kBAML,KAAK;;kBAGL,MAAM;;kBAGN,MAAM;;kFAhBE,sBAAsB","sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n NgZone\n} from '@angular/core';\nimport { RunView, EntityInfo } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport {\n GraphQLDataProvider,\n GraphQLVersionHistoryClient,\n CreateVersionLabelProgress\n} from '@memberjunction/graphql-dataprovider';\n\nexport interface RecordOption {\n ID: string;\n DisplayName: string;\n Selected: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-label-create',\n templateUrl: './label-create.component.html',\n styleUrls: ['./label-create.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MjLabelCreateComponent extends BaseAngularComponent implements OnInit {\n /**\n * When set, skips the entity picker step and pre-selects this entity.\n */\n @Input() PreselectedEntity: EntityInfo | null = null;\n\n /**\n * When set along with PreselectedEntity, auto-selects these record IDs\n * and skips directly to the details step.\n */\n @Input() PreselectedRecordIds: string[] = [];\n\n /** Emitted when labels are successfully created. */\n @Output() Created = new EventEmitter<{ LabelCount: number; ItemCount: number }>();\n\n /** Emitted when the user cancels. */\n @Output() Cancel = new EventEmitter<void>();\n\n // Wizard state\n public CreateStep: 'entity' | 'records' | 'details' | 'creating' | 'done' = 'entity';\n\n // Step 1: Entity selection\n public EntitySearchText = '';\n public FilteredEntities: EntityInfo[] = [];\n public SelectedEntity: EntityInfo | null = null;\n\n // Step 2: Record selection\n public RecordSearchText = '';\n public AvailableRecords: RecordOption[] = [];\n public FilteredRecords: RecordOption[] = [];\n public IsLoadingRecords = false;\n\n // Step 3: Details\n public LabelName = '';\n public LabelDescription = '';\n\n // Creating / done state\n public IsCreatingLabel = false;\n public CreateError = '';\n public CreatedLabelCount = 0;\n public CreatedItemCount = 0;\n public CreateProgress: CreateVersionLabelProgress | null = null;\n\n private get metadata() { return this.ProviderToUse; }\n\n constructor(private cdr: ChangeDetectorRef, private ngZone: NgZone) { super(); }\n\n ngOnInit(): void {\n this.resetCreateDialog();\n\n if (this.PreselectedEntity) {\n this.SelectedEntity = this.PreselectedEntity;\n\n if (this.PreselectedRecordIds.length > 0) {\n this.skipToDetailsWithPreselection();\n } else {\n this.CreateStep = 'records';\n this.loadEntityRecords(this.PreselectedEntity);\n }\n } else {\n this.FilteredEntities = this.getTrackableEntities();\n }\n }\n\n // =======================================================================\n // Pre-selection helpers\n // =======================================================================\n\n private async skipToDetailsWithPreselection(): Promise<void> {\n await this.loadEntityRecords(this.SelectedEntity!);\n this.ngZone.run(() => {\n this.preselectRecordsByIds(this.PreselectedRecordIds);\n this.CreateStep = 'details';\n this.LabelName = this.suggestLabelName();\n this.cdr.markForCheck();\n });\n }\n\n private preselectRecordsByIds(ids: string[]): void {\n const idSet = new Set(ids);\n for (const record of this.AvailableRecords) {\n record.Selected = idSet.has(record.ID);\n }\n }\n\n // =======================================================================\n // Step 1: Entity picker\n // =======================================================================\n\n public OnEntitySearchChange(text: string): void {\n this.EntitySearchText = text;\n const search = text.toLowerCase();\n const all = this.getTrackableEntities();\n this.FilteredEntities = search\n ? all.filter(e => e.Name.toLowerCase().includes(search))\n : all;\n this.cdr.markForCheck();\n }\n\n public SelectEntity(entity: EntityInfo): void {\n this.SelectedEntity = entity;\n this.CreateStep = 'records';\n this.loadEntityRecords(entity);\n }\n\n // =======================================================================\n // Step 2: Record selection\n // =======================================================================\n\n public OnRecordSearchChange(text: string): void {\n this.RecordSearchText = text;\n const search = text.toLowerCase();\n this.FilteredRecords = search\n ? this.AvailableRecords.filter(r => r.DisplayName.toLowerCase().includes(search))\n : [...this.AvailableRecords];\n this.cdr.markForCheck();\n }\n\n public ToggleRecordSelection(record: RecordOption): void {\n record.Selected = !record.Selected;\n this.cdr.markForCheck();\n }\n\n public SelectAllRecords(): void {\n for (const r of this.FilteredRecords) {\n r.Selected = true;\n }\n this.cdr.markForCheck();\n }\n\n public DeselectAllRecords(): void {\n for (const r of this.AvailableRecords) {\n r.Selected = false;\n }\n this.cdr.markForCheck();\n }\n\n public get SelectedRecordCount(): number {\n return this.AvailableRecords.filter(r => r.Selected).length;\n }\n\n // =======================================================================\n // Step navigation\n // =======================================================================\n\n public GoToDetailsStep(): void {\n if (this.SelectedRecordCount === 0) return;\n this.CreateStep = 'details';\n this.LabelName = this.suggestLabelName();\n this.cdr.markForCheck();\n }\n\n public GoBackToRecords(): void {\n this.CreateStep = 'records';\n this.cdr.markForCheck();\n }\n\n public GoBackToEntity(): void {\n this.CreateStep = 'entity';\n this.SelectedEntity = null;\n this.AvailableRecords = [];\n this.FilteredRecords = [];\n this.cdr.markForCheck();\n }\n\n // =======================================================================\n // Step 3: Create labels\n // =======================================================================\n\n public async CreateLabels(): Promise<void> {\n if (!this.SelectedEntity || !this.LabelName.trim()) return;\n\n this.IsCreatingLabel = true;\n this.CreateStep = 'creating';\n this.CreateError = '';\n this.CreatedLabelCount = 0;\n this.CreatedItemCount = 0;\n this.cdr.markForCheck();\n\n try {\n const selected = this.AvailableRecords.filter(r => r.Selected);\n\n if (selected.length === 1) {\n await this.createSingleLabel(selected[0]);\n } else {\n await this.createGroupedLabels(selected);\n }\n\n this.CreateStep = 'done';\n } catch (e: unknown) {\n this.ngZone.run(() => {\n this.CreateError = e instanceof Error ? e.message : String(e);\n this.CreateStep = 'done';\n });\n } finally {\n this.ngZone.run(() => {\n this.IsCreatingLabel = false;\n this.cdr.markForCheck();\n });\n }\n }\n\n public FinishCreate(): void {\n this.Created.emit({\n LabelCount: this.CreatedLabelCount,\n ItemCount: this.CreatedItemCount\n });\n }\n\n public OnCancel(): void {\n this.Cancel.emit();\n }\n\n // =======================================================================\n // Create helpers\n // =======================================================================\n\n private async createSingleLabel(record: RecordOption): Promise<void> {\n const vhClient = new GraphQLVersionHistoryClient(GraphQLDataProvider.Instance);\n const result = await vhClient.CreateLabel({\n Name: this.LabelName.trim(),\n Description: this.LabelDescription.trim() || undefined,\n Scope: 'Record',\n EntityName: this.SelectedEntity!.Name,\n RecordKeys: [{ Key: 'ID', Value: record.ID }],\n IncludeDependencies: true,\n OnProgress: (progress) => {\n this.ngZone.run(() => {\n this.CreateProgress = progress;\n this.cdr.markForCheck();\n });\n },\n });\n\n if (!result.Success) {\n throw new Error(result.Error ?? 'Failed to create version label');\n }\n\n this.ngZone.run(() => {\n this.CreatedLabelCount = 1;\n this.CreatedItemCount = result.ItemsCaptured ?? 0;\n });\n }\n\n private async createGroupedLabels(records: RecordOption[]): Promise<void> {\n const vhClient = new GraphQLVersionHistoryClient(GraphQLDataProvider.Instance);\n\n // Create parent container label (no RecordKey -> acts as a grouping label)\n const parentResult = await vhClient.CreateLabel({\n Name: this.LabelName.trim(),\n Description: this.LabelDescription.trim() || undefined,\n Scope: 'Entity',\n EntityName: this.SelectedEntity!.Name,\n });\n\n if (!parentResult.Success) {\n throw new Error(parentResult.Error ?? 'Failed to create parent version label');\n }\n\n this.ngZone.run(() => {\n this.CreatedLabelCount = 1;\n this.CreatedItemCount = parentResult.ItemsCaptured ?? 0;\n this.cdr.markForCheck();\n });\n\n // Create child labels for each selected record\n for (const record of records) {\n const childResult = await vhClient.CreateLabel({\n Name: `${this.LabelName.trim()} \\u2014 ${record.DisplayName}`,\n Description: this.LabelDescription.trim() || undefined,\n Scope: 'Record',\n EntityName: this.SelectedEntity!.Name,\n RecordKeys: [{ Key: 'ID', Value: record.ID }],\n ParentID: parentResult.LabelID,\n IncludeDependencies: true,\n OnProgress: (progress) => {\n this.ngZone.run(() => {\n this.CreateProgress = progress;\n this.cdr.markForCheck();\n });\n },\n });\n\n if (!childResult.Success) {\n console.error(`Failed to create child label for record ${record.ID}: ${childResult.Error}`);\n continue;\n }\n\n this.ngZone.run(() => {\n this.CreatedLabelCount++;\n this.CreatedItemCount += childResult.ItemsCaptured ?? 0;\n this.cdr.markForCheck();\n });\n }\n }\n\n // =======================================================================\n // Data loading\n // =======================================================================\n\n private async loadEntityRecords(entity: EntityInfo): Promise<void> {\n this.IsLoadingRecords = true;\n this.AvailableRecords = [];\n this.FilteredRecords = [];\n this.RecordSearchText = '';\n this.cdr.markForCheck();\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const nameField = this.findNameField(entity);\n const fields = nameField ? ['ID', nameField] : ['ID'];\n\n const result = await rv.RunView<Record<string, unknown>>({\n EntityName: entity.Name,\n Fields: fields,\n OrderBy: nameField ?? 'ID',\n MaxRows: 500,\n ResultType: 'simple'\n });\n\n if (result.Success) {\n this.AvailableRecords = result.Results.map(r => ({\n ID: String(r['ID'] ?? ''),\n DisplayName: nameField\n ? String(r[nameField] ?? r['ID'] ?? '')\n : String(r['ID'] ?? ''),\n Selected: false\n }));\n this.FilteredRecords = [...this.AvailableRecords];\n }\n } catch (error) {\n console.error('Error loading entity records:', error);\n } finally {\n this.ngZone.run(() => {\n this.IsLoadingRecords = false;\n this.cdr.markForCheck();\n });\n }\n }\n\n // =======================================================================\n // Utility helpers\n // =======================================================================\n\n private findNameField(entity: EntityInfo): string | null {\n const candidates = ['Name', 'Title', 'DisplayName', 'Label', 'Subject', 'Description'];\n for (const name of candidates) {\n const field = entity.Fields.find(f =>\n f.Name.toLowerCase() === name.toLowerCase() && f.TSType === 'string'\n );\n if (field) return field.Name;\n }\n return null;\n }\n\n private getTrackableEntities(): EntityInfo[] {\n return this.metadata.Entities\n .filter(e => e.TrackRecordChanges)\n .sort((a, b) => a.Name.localeCompare(b.Name));\n }\n\n private suggestLabelName(): string {\n const entityName = this.SelectedEntity?.Name ?? '';\n const selected = this.AvailableRecords.filter(r => r.Selected);\n if (selected.length === 1) {\n return `${selected[0].DisplayName} v1.0`;\n }\n const date = new Date().toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric'\n });\n return `${entityName} \\u2014 ${date}`;\n }\n\n private resetCreateDialog(): void {\n this.CreateStep = 'entity';\n this.EntitySearchText = '';\n this.SelectedEntity = null;\n this.RecordSearchText = '';\n this.AvailableRecords = [];\n this.FilteredRecords = [];\n this.IsLoadingRecords = false;\n this.LabelName = '';\n this.LabelDescription = '';\n this.IsCreatingLabel = false;\n this.CreateError = '';\n this.CreatedLabelCount = 0;\n this.CreatedItemCount = 0;\n this.CreateProgress = null;\n }\n}\n","<div class=\"label-create-container\">\n\n <!-- Step indicator -->\n @if (CreateStep !== 'creating' && CreateStep !== 'done') {\n <div class=\"step-indicator\">\n <div class=\"step\" [class.active]=\"CreateStep === 'entity'\" [class.completed]=\"CreateStep !== 'entity'\">\n <span class=\"step-number\">1</span>\n <span class=\"step-label\">Entity</span>\n </div>\n <div class=\"step-connector\" [class.active]=\"CreateStep !== 'entity'\"></div>\n <div class=\"step\" [class.active]=\"CreateStep === 'records'\" [class.completed]=\"CreateStep === 'details'\">\n <span class=\"step-number\">2</span>\n <span class=\"step-label\">Records</span>\n </div>\n <div class=\"step-connector\" [class.active]=\"CreateStep === 'details'\"></div>\n <div class=\"step\" [class.active]=\"CreateStep === 'details'\">\n <span class=\"step-number\">3</span>\n <span class=\"step-label\">Details</span>\n </div>\n </div>\n }\n\n <!-- Step 1: Pick Entity -->\n @if (CreateStep === 'entity') {\n <div class=\"dialog-step\">\n <p class=\"step-description\">Choose an entity type to label records from.</p>\n <div class=\"dialog-search\">\n <i class=\"fa-solid fa-search dialog-search-icon\"></i>\n <input type=\"text\"\n class=\"dialog-search-input\"\n placeholder=\"Search entities...\"\n [ngModel]=\"EntitySearchText\"\n (ngModelChange)=\"OnEntitySearchChange($event)\" />\n </div>\n <div class=\"entity-list\">\n @for (entity of FilteredEntities; track entity) {\n <div class=\"entity-option\"\n (click)=\"SelectEntity(entity)\">\n <div class=\"entity-option-info\">\n <span class=\"entity-option-name\">{{entity.Name}}</span>\n @if (entity.Description) {\n <span class=\"entity-option-desc\">{{entity.Description | slice:0:80}}</span>\n }\n </div>\n <i class=\"fa-solid fa-chevron-right entity-option-arrow\"></i>\n </div>\n }\n @if (FilteredEntities.length === 0) {\n <div class=\"entity-list-empty\">\n No entities match your search.\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Step 2: Select Records -->\n @if (CreateStep === 'records') {\n <div class=\"dialog-step\">\n <div class=\"step-header-row\">\n @if (!PreselectedEntity) {\n <button class=\"btn-back\" (click)=\"GoBackToEntity()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n </button>\n }\n <div>\n <p class=\"step-description\">\n Select records from <strong>{{SelectedEntity?.Name}}</strong> to label.\n </p>\n </div>\n </div>\n @if (IsLoadingRecords) {\n <mj-loading text=\"Loading records...\"></mj-loading>\n }\n @if (!IsLoadingRecords) {\n <div class=\"records-toolbar\">\n <div class=\"dialog-search\" style=\"flex: 1;\">\n <i class=\"fa-solid fa-search dialog-search-icon\"></i>\n <input type=\"text\"\n class=\"dialog-search-input\"\n placeholder=\"Search records...\"\n [ngModel]=\"RecordSearchText\"\n (ngModelChange)=\"OnRecordSearchChange($event)\" />\n </div>\n <div class=\"selection-actions\">\n <button class=\"btn-text\" (click)=\"SelectAllRecords()\">Select All</button>\n <button class=\"btn-text\" (click)=\"DeselectAllRecords()\">Clear</button>\n </div>\n </div>\n <div class=\"record-list\">\n @for (record of FilteredRecords; track record) {\n <div class=\"record-option\"\n [class.selected]=\"record.Selected\"\n (click)=\"ToggleRecordSelection(record)\">\n <div class=\"record-checkbox\">\n @if (record.Selected) {\n <i class=\"fa-solid fa-check\"></i>\n }\n </div>\n <span class=\"record-name\">{{record.DisplayName}}</span>\n </div>\n }\n @if (FilteredRecords.length === 0 && !IsLoadingRecords) {\n <div class=\"entity-list-empty\">\n No records found for this entity.\n </div>\n }\n </div>\n <div class=\"records-footer\">\n <span class=\"selection-count\">{{SelectedRecordCount}} selected</span>\n <button class=\"btn-primary\"\n [disabled]=\"SelectedRecordCount === 0\"\n (click)=\"GoToDetailsStep()\">\n Continue\n <i class=\"fa-solid fa-arrow-right\"></i>\n </button>\n </div>\n }\n </div>\n }\n\n <!-- Step 3: Label Details -->\n @if (CreateStep === 'details') {\n <div class=\"dialog-step\">\n <div class=\"step-header-row\">\n <button class=\"btn-back\" (click)=\"GoBackToRecords()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n </button>\n <p class=\"step-description\">Name your version label.</p>\n </div>\n <div class=\"details-summary\">\n <div class=\"summary-item\">\n <i class=\"fa-solid fa-table\"></i>\n <span>{{SelectedEntity?.Name}}</span>\n </div>\n <div class=\"summary-item\">\n <i class=\"fa-solid fa-check-double\"></i>\n <span>{{SelectedRecordCount}} record{{SelectedRecordCount > 1 ? 's' : ''}} selected</span>\n </div>\n @if (SelectedRecordCount > 1) {\n <div class=\"summary-item\">\n <i class=\"fa-solid fa-layer-group\"></i>\n <span>Will create 1 group + {{SelectedRecordCount}} child labels</span>\n </div>\n }\n </div>\n <div class=\"form-field\">\n <label class=\"form-label\">Label Name</label>\n <input type=\"text\"\n class=\"form-input\"\n placeholder=\"e.g. Customer Support Agent v2.0\"\n [(ngModel)]=\"LabelName\" />\n </div>\n <div class=\"form-field\">\n <label class=\"form-label\">Description (optional)</label>\n <textarea class=\"form-textarea\"\n rows=\"3\"\n placeholder=\"What does this version represent?\"\n [(ngModel)]=\"LabelDescription\"></textarea>\n </div>\n <div class=\"details-footer\">\n <button class=\"btn-primary\"\n [disabled]=\"!LabelName.trim()\"\n (click)=\"CreateLabels()\">\n <i class=\"fa-solid fa-tag\"></i>\n Create Label{{SelectedRecordCount > 1 ? 's' : ''}}\n </button>\n <button class=\"btn-secondary\" (click)=\"OnCancel()\">\n Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- Creating state -->\n @if (CreateStep === 'creating') {\n <div class=\"dialog-step creating-step\">\n <div class=\"creating-animation\">\n <i class=\"fa-solid fa-tag fa-spin creating-icon\"></i>\n </div>\n <h3 class=\"creating-title\">Creating Labels...</h3>\n <!-- Progress bar -->\n @if (CreateProgress) {\n <div class=\"progress-container\">\n <div class=\"progress-bar-track\">\n <div class=\"progress-bar-fill\" [style.width.%]=\"CreateProgress.Percentage\"></div>\n </div>\n <div class=\"progress-details\">\n <span class=\"progress-message\">{{CreateProgress.Message}}</span>\n <span class=\"progress-pct\">{{CreateProgress.Percentage}}%</span>\n </div>\n @if (CreateProgress.RecordsProcessed != null && CreateProgress.TotalRecords) {\n <div class=\"progress-stats\">\n <span class=\"progress-stat\">\n <i class=\"fa-solid fa-camera\"></i>\n {{CreateProgress.RecordsProcessed}} / {{CreateProgress.TotalRecords}} records\n </span>\n @if (CreateProgress.CurrentEntity) {\n <span class=\"progress-stat\">\n <i class=\"fa-solid fa-table\"></i>\n {{CreateProgress.CurrentEntity}}\n </span>\n }\n </div>\n }\n </div>\n }\n @if (!CreateProgress) {\n <p class=\"creating-progress\">\n {{CreatedLabelCount}} label{{CreatedLabelCount !== 1 ? 's' : ''}} created\n @if (CreatedItemCount > 0) {\n <span> &middot; {{CreatedItemCount}} items captured</span>\n }\n </p>\n }\n </div>\n }\n\n <!-- Done state -->\n @if (CreateStep === 'done') {\n <div class=\"dialog-step done-step\">\n @if (!CreateError) {\n <div class=\"done-icon-wrap success\">\n <i class=\"fa-solid fa-check\"></i>\n </div>\n <h3 class=\"done-title\">Labels Created</h3>\n <p class=\"done-message\">\n Successfully created {{CreatedLabelCount}} label{{CreatedLabelCount !== 1 ? 's' : ''}}\n @if (CreatedItemCount > 0) {\n <span> with {{CreatedItemCount}} items captured</span>\n }.\n </p>\n }\n @if (CreateError) {\n <div class=\"done-icon-wrap error\">\n <i class=\"fa-solid fa-xmark\"></i>\n </div>\n <h3 class=\"done-title\">Error</h3>\n <p class=\"done-message error-text\">{{CreateError}}</p>\n }\n <button class=\"btn-primary\" (click)=\"FinishCreate()\">Done</button>\n </div>\n }\n </div>\n"]}
1
+ {"version":3,"file":"label-create.component.js","sourceRoot":"","sources":["../../../src/lib/label-create/label-create.component.ts","../../../src/lib/label-create/label-create.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n NgZone\n} from '@angular/core';\nimport { RunView, EntityInfo } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport {\n GraphQLDataProvider,\n GraphQLVersionHistoryClient,\n CreateVersionLabelProgress\n} from '@memberjunction/graphql-dataprovider';\n\nexport interface RecordOption {\n ID: string;\n DisplayName: string;\n Selected: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-label-create',\n templateUrl: './label-create.component.html',\n styleUrls: ['./label-create.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MjLabelCreateComponent extends BaseAngularComponent implements OnInit {\n /**\n * When set, skips the entity picker step and pre-selects this entity.\n */\n @Input() PreselectedEntity: EntityInfo | null = null;\n\n /**\n * When set along with PreselectedEntity, auto-selects these record IDs\n * and skips directly to the details step.\n */\n @Input() PreselectedRecordIds: string[] = [];\n\n /** Emitted when labels are successfully created. */\n @Output() Created = new EventEmitter<{ LabelCount: number; ItemCount: number }>();\n\n /** Emitted when the user cancels. */\n @Output() Cancel = new EventEmitter<void>();\n\n // Wizard state\n public CreateStep: 'entity' | 'records' | 'details' | 'creating' | 'done' = 'entity';\n\n // Step 1: Entity selection\n public EntitySearchText = '';\n public FilteredEntities: EntityInfo[] = [];\n public SelectedEntity: EntityInfo | null = null;\n\n // Step 2: Record selection\n public RecordSearchText = '';\n public AvailableRecords: RecordOption[] = [];\n public FilteredRecords: RecordOption[] = [];\n public IsLoadingRecords = false;\n\n // Step 3: Details\n public LabelName = '';\n public LabelDescription = '';\n\n // Creating / done state\n public IsCreatingLabel = false;\n public CreateError = '';\n public CreatedLabelCount = 0;\n public CreatedItemCount = 0;\n public CreateProgress: CreateVersionLabelProgress | null = null;\n\n private get metadata() { return this.ProviderToUse; }\n\n constructor(private cdr: ChangeDetectorRef, private ngZone: NgZone) { super(); }\n\n ngOnInit(): void {\n this.resetCreateDialog();\n\n if (this.PreselectedEntity) {\n this.SelectedEntity = this.PreselectedEntity;\n\n if (this.PreselectedRecordIds.length > 0) {\n this.skipToDetailsWithPreselection();\n } else {\n this.CreateStep = 'records';\n this.loadEntityRecords(this.PreselectedEntity);\n }\n } else {\n this.FilteredEntities = this.getTrackableEntities();\n }\n }\n\n // =======================================================================\n // Pre-selection helpers\n // =======================================================================\n\n private async skipToDetailsWithPreselection(): Promise<void> {\n await this.loadEntityRecords(this.SelectedEntity!);\n this.ngZone.run(() => {\n this.preselectRecordsByIds(this.PreselectedRecordIds);\n this.CreateStep = 'details';\n this.LabelName = this.suggestLabelName();\n this.cdr.markForCheck();\n });\n }\n\n private preselectRecordsByIds(ids: string[]): void {\n const idSet = new Set(ids);\n for (const record of this.AvailableRecords) {\n record.Selected = idSet.has(record.ID);\n }\n }\n\n // =======================================================================\n // Step 1: Entity picker\n // =======================================================================\n\n public OnEntitySearchChange(text: string): void {\n this.EntitySearchText = text;\n const search = text.toLowerCase();\n const all = this.getTrackableEntities();\n this.FilteredEntities = search\n ? all.filter(e => e.Name.toLowerCase().includes(search))\n : all;\n this.cdr.markForCheck();\n }\n\n public SelectEntity(entity: EntityInfo): void {\n this.SelectedEntity = entity;\n this.CreateStep = 'records';\n this.loadEntityRecords(entity);\n }\n\n // =======================================================================\n // Step 2: Record selection\n // =======================================================================\n\n public OnRecordSearchChange(text: string): void {\n this.RecordSearchText = text;\n const search = text.toLowerCase();\n this.FilteredRecords = search\n ? this.AvailableRecords.filter(r => r.DisplayName.toLowerCase().includes(search))\n : [...this.AvailableRecords];\n this.cdr.markForCheck();\n }\n\n public ToggleRecordSelection(record: RecordOption): void {\n record.Selected = !record.Selected;\n this.cdr.markForCheck();\n }\n\n public SelectAllRecords(): void {\n for (const r of this.FilteredRecords) {\n r.Selected = true;\n }\n this.cdr.markForCheck();\n }\n\n public DeselectAllRecords(): void {\n for (const r of this.AvailableRecords) {\n r.Selected = false;\n }\n this.cdr.markForCheck();\n }\n\n public get SelectedRecordCount(): number {\n return this.AvailableRecords.filter(r => r.Selected).length;\n }\n\n // =======================================================================\n // Step navigation\n // =======================================================================\n\n public GoToDetailsStep(): void {\n if (this.SelectedRecordCount === 0) return;\n this.CreateStep = 'details';\n this.LabelName = this.suggestLabelName();\n this.cdr.markForCheck();\n }\n\n public GoBackToRecords(): void {\n this.CreateStep = 'records';\n this.cdr.markForCheck();\n }\n\n public GoBackToEntity(): void {\n this.CreateStep = 'entity';\n this.SelectedEntity = null;\n this.AvailableRecords = [];\n this.FilteredRecords = [];\n this.cdr.markForCheck();\n }\n\n // =======================================================================\n // Step 3: Create labels\n // =======================================================================\n\n public async CreateLabels(): Promise<void> {\n if (!this.SelectedEntity || !this.LabelName.trim()) return;\n\n this.IsCreatingLabel = true;\n this.CreateStep = 'creating';\n this.CreateError = '';\n this.CreatedLabelCount = 0;\n this.CreatedItemCount = 0;\n this.cdr.markForCheck();\n\n try {\n const selected = this.AvailableRecords.filter(r => r.Selected);\n\n if (selected.length === 1) {\n await this.createSingleLabel(selected[0]);\n } else {\n await this.createGroupedLabels(selected);\n }\n\n this.CreateStep = 'done';\n } catch (e: unknown) {\n this.ngZone.run(() => {\n this.CreateError = e instanceof Error ? e.message : String(e);\n this.CreateStep = 'done';\n });\n } finally {\n this.ngZone.run(() => {\n this.IsCreatingLabel = false;\n this.cdr.markForCheck();\n });\n }\n }\n\n public FinishCreate(): void {\n this.Created.emit({\n LabelCount: this.CreatedLabelCount,\n ItemCount: this.CreatedItemCount\n });\n }\n\n public OnCancel(): void {\n this.Cancel.emit();\n }\n\n // =======================================================================\n // Create helpers\n // =======================================================================\n\n private async createSingleLabel(record: RecordOption): Promise<void> {\n const vhClient = new GraphQLVersionHistoryClient(GraphQLDataProvider.Instance);\n const result = await vhClient.CreateLabel({\n Name: this.LabelName.trim(),\n Description: this.LabelDescription.trim() || undefined,\n Scope: 'Record',\n EntityName: this.SelectedEntity!.Name,\n RecordKeys: [{ Key: 'ID', Value: record.ID }],\n IncludeDependencies: true,\n OnProgress: (progress) => {\n this.ngZone.run(() => {\n this.CreateProgress = progress;\n this.cdr.markForCheck();\n });\n },\n });\n\n if (!result.Success) {\n throw new Error(result.Error ?? 'Failed to create version label');\n }\n\n this.ngZone.run(() => {\n this.CreatedLabelCount = 1;\n this.CreatedItemCount = result.ItemsCaptured ?? 0;\n });\n }\n\n private async createGroupedLabels(records: RecordOption[]): Promise<void> {\n const vhClient = new GraphQLVersionHistoryClient(GraphQLDataProvider.Instance);\n\n // Create parent container label (no RecordKey -> acts as a grouping label)\n const parentResult = await vhClient.CreateLabel({\n Name: this.LabelName.trim(),\n Description: this.LabelDescription.trim() || undefined,\n Scope: 'Entity',\n EntityName: this.SelectedEntity!.Name,\n });\n\n if (!parentResult.Success) {\n throw new Error(parentResult.Error ?? 'Failed to create parent version label');\n }\n\n this.ngZone.run(() => {\n this.CreatedLabelCount = 1;\n this.CreatedItemCount = parentResult.ItemsCaptured ?? 0;\n this.cdr.markForCheck();\n });\n\n // Create child labels for each selected record\n for (const record of records) {\n const childResult = await vhClient.CreateLabel({\n Name: `${this.LabelName.trim()} \\u2014 ${record.DisplayName}`,\n Description: this.LabelDescription.trim() || undefined,\n Scope: 'Record',\n EntityName: this.SelectedEntity!.Name,\n RecordKeys: [{ Key: 'ID', Value: record.ID }],\n ParentID: parentResult.LabelID,\n IncludeDependencies: true,\n OnProgress: (progress) => {\n this.ngZone.run(() => {\n this.CreateProgress = progress;\n this.cdr.markForCheck();\n });\n },\n });\n\n if (!childResult.Success) {\n console.error(`Failed to create child label for record ${record.ID}: ${childResult.Error}`);\n continue;\n }\n\n this.ngZone.run(() => {\n this.CreatedLabelCount++;\n this.CreatedItemCount += childResult.ItemsCaptured ?? 0;\n this.cdr.markForCheck();\n });\n }\n }\n\n // =======================================================================\n // Data loading\n // =======================================================================\n\n private async loadEntityRecords(entity: EntityInfo): Promise<void> {\n this.IsLoadingRecords = true;\n this.AvailableRecords = [];\n this.FilteredRecords = [];\n this.RecordSearchText = '';\n this.cdr.markForCheck();\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const nameField = this.findNameField(entity);\n const fields = nameField ? ['ID', nameField] : ['ID'];\n\n const result = await rv.RunView<Record<string, unknown>>({\n EntityName: entity.Name,\n Fields: fields,\n OrderBy: nameField ?? 'ID',\n MaxRows: 500,\n ResultType: 'simple'\n });\n\n if (result.Success) {\n this.AvailableRecords = result.Results.map(r => ({\n ID: String(r['ID'] ?? ''),\n DisplayName: nameField\n ? String(r[nameField] ?? r['ID'] ?? '')\n : String(r['ID'] ?? ''),\n Selected: false\n }));\n this.FilteredRecords = [...this.AvailableRecords];\n }\n } catch (error) {\n console.error('Error loading entity records:', error);\n } finally {\n this.ngZone.run(() => {\n this.IsLoadingRecords = false;\n this.cdr.markForCheck();\n });\n }\n }\n\n // =======================================================================\n // Utility helpers\n // =======================================================================\n\n private findNameField(entity: EntityInfo): string | null {\n const candidates = ['Name', 'Title', 'DisplayName', 'Label', 'Subject', 'Description'];\n for (const name of candidates) {\n const field = entity.Fields.find(f =>\n f.Name.toLowerCase() === name.toLowerCase() && f.TSType === 'string'\n );\n if (field) return field.Name;\n }\n return null;\n }\n\n private getTrackableEntities(): EntityInfo[] {\n return this.metadata.Entities\n .filter(e => e.TrackRecordChanges)\n .sort((a, b) => a.Name.localeCompare(b.Name));\n }\n\n private suggestLabelName(): string {\n const entityName = this.SelectedEntity?.Name ?? '';\n const selected = this.AvailableRecords.filter(r => r.Selected);\n if (selected.length === 1) {\n return `${selected[0].DisplayName} v1.0`;\n }\n const date = new Date().toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric'\n });\n return `${entityName} \\u2014 ${date}`;\n }\n\n private resetCreateDialog(): void {\n this.CreateStep = 'entity';\n this.EntitySearchText = '';\n this.SelectedEntity = null;\n this.RecordSearchText = '';\n this.AvailableRecords = [];\n this.FilteredRecords = [];\n this.IsLoadingRecords = false;\n this.LabelName = '';\n this.LabelDescription = '';\n this.IsCreatingLabel = false;\n this.CreateError = '';\n this.CreatedLabelCount = 0;\n this.CreatedItemCount = 0;\n this.CreateProgress = null;\n }\n}\n","<div class=\"label-create-container\">\n\n <!-- Step indicator -->\n @if (CreateStep !== 'creating' && CreateStep !== 'done') {\n <div class=\"step-indicator\">\n <div class=\"step\" [class.active]=\"CreateStep === 'entity'\" [class.completed]=\"CreateStep !== 'entity'\">\n <span class=\"step-number\">1</span>\n <span class=\"step-label\">Entity</span>\n </div>\n <div class=\"step-connector\" [class.active]=\"CreateStep !== 'entity'\"></div>\n <div class=\"step\" [class.active]=\"CreateStep === 'records'\" [class.completed]=\"CreateStep === 'details'\">\n <span class=\"step-number\">2</span>\n <span class=\"step-label\">Records</span>\n </div>\n <div class=\"step-connector\" [class.active]=\"CreateStep === 'details'\"></div>\n <div class=\"step\" [class.active]=\"CreateStep === 'details'\">\n <span class=\"step-number\">3</span>\n <span class=\"step-label\">Details</span>\n </div>\n </div>\n }\n\n <!-- Step 1: Pick Entity -->\n @if (CreateStep === 'entity') {\n <div class=\"dialog-step\">\n <p class=\"step-description\">Choose an entity type to label records from.</p>\n <div class=\"dialog-search\">\n <i class=\"fa-solid fa-search dialog-search-icon\"></i>\n <input type=\"text\"\n class=\"dialog-search-input\"\n placeholder=\"Search entities...\"\n [ngModel]=\"EntitySearchText\"\n (ngModelChange)=\"OnEntitySearchChange($event)\" />\n </div>\n <div class=\"entity-list\">\n @for (entity of FilteredEntities; track entity) {\n <div class=\"entity-option\"\n (click)=\"SelectEntity(entity)\">\n <div class=\"entity-option-info\">\n <span class=\"entity-option-name\">{{entity.Name}}</span>\n @if (entity.Description) {\n <span class=\"entity-option-desc\">{{entity.Description | slice:0:80}}</span>\n }\n </div>\n <i class=\"fa-solid fa-chevron-right entity-option-arrow\"></i>\n </div>\n }\n @if (FilteredEntities.length === 0) {\n <mj-empty-state class=\"entity-list-empty\" Size=\"compact\"\n Variant=\"no-results\" Title=\"No entities match your search.\" />\n }\n </div>\n </div>\n }\n\n <!-- Step 2: Select Records -->\n @if (CreateStep === 'records') {\n <div class=\"dialog-step\">\n <div class=\"step-header-row\">\n @if (!PreselectedEntity) {\n <button class=\"btn-back\" (click)=\"GoBackToEntity()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n </button>\n }\n <div>\n <p class=\"step-description\">\n Select records from <strong>{{SelectedEntity?.Name}}</strong> to label.\n </p>\n </div>\n </div>\n @if (IsLoadingRecords) {\n <mj-loading text=\"Loading records...\"></mj-loading>\n }\n @if (!IsLoadingRecords) {\n <div class=\"records-toolbar\">\n <div class=\"dialog-search\" style=\"flex: 1;\">\n <i class=\"fa-solid fa-search dialog-search-icon\"></i>\n <input type=\"text\"\n class=\"dialog-search-input\"\n placeholder=\"Search records...\"\n [ngModel]=\"RecordSearchText\"\n (ngModelChange)=\"OnRecordSearchChange($event)\" />\n </div>\n <div class=\"selection-actions\">\n <button class=\"btn-text\" (click)=\"SelectAllRecords()\">Select All</button>\n <button class=\"btn-text\" (click)=\"DeselectAllRecords()\">Clear</button>\n </div>\n </div>\n <div class=\"record-list\">\n @for (record of FilteredRecords; track record) {\n <div class=\"record-option\"\n [class.selected]=\"record.Selected\"\n (click)=\"ToggleRecordSelection(record)\">\n <div class=\"record-checkbox\">\n @if (record.Selected) {\n <i class=\"fa-solid fa-check\"></i>\n }\n </div>\n <span class=\"record-name\">{{record.DisplayName}}</span>\n </div>\n }\n @if (FilteredRecords.length === 0 && !IsLoadingRecords) {\n <mj-empty-state class=\"entity-list-empty\" Size=\"compact\"\n Icon=\"\" Title=\"No records found for this entity.\" />\n }\n </div>\n <div class=\"records-footer\">\n <span class=\"selection-count\">{{SelectedRecordCount}} selected</span>\n <button class=\"btn-primary\"\n [disabled]=\"SelectedRecordCount === 0\"\n (click)=\"GoToDetailsStep()\">\n Continue\n <i class=\"fa-solid fa-arrow-right\"></i>\n </button>\n </div>\n }\n </div>\n }\n\n <!-- Step 3: Label Details -->\n @if (CreateStep === 'details') {\n <div class=\"dialog-step\">\n <div class=\"step-header-row\">\n <button class=\"btn-back\" (click)=\"GoBackToRecords()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n </button>\n <p class=\"step-description\">Name your version label.</p>\n </div>\n <div class=\"details-summary\">\n <div class=\"summary-item\">\n <i class=\"fa-solid fa-table\"></i>\n <span>{{SelectedEntity?.Name}}</span>\n </div>\n <div class=\"summary-item\">\n <i class=\"fa-solid fa-check-double\"></i>\n <span>{{SelectedRecordCount}} record{{SelectedRecordCount > 1 ? 's' : ''}} selected</span>\n </div>\n @if (SelectedRecordCount > 1) {\n <div class=\"summary-item\">\n <i class=\"fa-solid fa-layer-group\"></i>\n <span>Will create 1 group + {{SelectedRecordCount}} child labels</span>\n </div>\n }\n </div>\n <div class=\"form-field\">\n <label class=\"form-label\">Label Name</label>\n <input type=\"text\"\n class=\"form-input\"\n placeholder=\"e.g. Customer Support Agent v2.0\"\n [(ngModel)]=\"LabelName\" />\n </div>\n <div class=\"form-field\">\n <label class=\"form-label\">Description (optional)</label>\n <textarea class=\"form-textarea\"\n rows=\"3\"\n placeholder=\"What does this version represent?\"\n [(ngModel)]=\"LabelDescription\"></textarea>\n </div>\n <div class=\"details-footer\">\n <button class=\"btn-primary\"\n [disabled]=\"!LabelName.trim()\"\n (click)=\"CreateLabels()\">\n <i class=\"fa-solid fa-tag\"></i>\n Create Label{{SelectedRecordCount > 1 ? 's' : ''}}\n </button>\n <button class=\"btn-secondary\" (click)=\"OnCancel()\">\n Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- Creating state -->\n @if (CreateStep === 'creating') {\n <div class=\"dialog-step creating-step\">\n <div class=\"creating-animation\">\n <i class=\"fa-solid fa-tag fa-spin creating-icon\"></i>\n </div>\n <h3 class=\"creating-title\">Creating Labels...</h3>\n <!-- Progress bar -->\n @if (CreateProgress) {\n <div class=\"progress-container\">\n <div class=\"progress-bar-track\">\n <div class=\"progress-bar-fill\" [style.width.%]=\"CreateProgress.Percentage\"></div>\n </div>\n <div class=\"progress-details\">\n <span class=\"progress-message\">{{CreateProgress.Message}}</span>\n <span class=\"progress-pct\">{{CreateProgress.Percentage}}%</span>\n </div>\n @if (CreateProgress.RecordsProcessed != null && CreateProgress.TotalRecords) {\n <div class=\"progress-stats\">\n <span class=\"progress-stat\">\n <i class=\"fa-solid fa-camera\"></i>\n {{CreateProgress.RecordsProcessed}} / {{CreateProgress.TotalRecords}} records\n </span>\n @if (CreateProgress.CurrentEntity) {\n <span class=\"progress-stat\">\n <i class=\"fa-solid fa-table\"></i>\n {{CreateProgress.CurrentEntity}}\n </span>\n }\n </div>\n }\n </div>\n }\n @if (!CreateProgress) {\n <p class=\"creating-progress\">\n {{CreatedLabelCount}} label{{CreatedLabelCount !== 1 ? 's' : ''}} created\n @if (CreatedItemCount > 0) {\n <span> &middot; {{CreatedItemCount}} items captured</span>\n }\n </p>\n }\n </div>\n }\n\n <!-- Done state -->\n @if (CreateStep === 'done') {\n <div class=\"dialog-step done-step\">\n @if (!CreateError) {\n <div class=\"done-icon-wrap success\">\n <i class=\"fa-solid fa-check\"></i>\n </div>\n <h3 class=\"done-title\">Labels Created</h3>\n <p class=\"done-message\">\n Successfully created {{CreatedLabelCount}} label{{CreatedLabelCount !== 1 ? 's' : ''}}\n @if (CreatedItemCount > 0) {\n <span> with {{CreatedItemCount}} items captured</span>\n }.\n </p>\n }\n @if (CreateError) {\n <div class=\"done-icon-wrap error\">\n <i class=\"fa-solid fa-xmark\"></i>\n </div>\n <h3 class=\"done-title\">Error</h3>\n <p class=\"done-message error-text\">{{CreateError}}</p>\n }\n <button class=\"btn-primary\" (click)=\"FinishCreate()\">Done</button>\n </div>\n }\n </div>\n"]}