@memberjunction/ng-conversations 2.107.0 → 2.108.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/lib/components/collection/artifact-collection-picker-modal.component.d.ts +67 -0
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -0
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +725 -0
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -0
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts +39 -0
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -0
- package/dist/lib/components/collection/artifact-create-modal.component.js +351 -0
- package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -0
- package/dist/lib/components/collection/collection-form-modal.component.d.ts +3 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +60 -10
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.d.ts +43 -0
- package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -0
- package/dist/lib/components/collection/collection-share-modal.component.js +728 -0
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -0
- package/dist/lib/components/collection/collection-tree.component.d.ts +8 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.js +217 -115
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts +2 -1
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +52 -34
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +45 -9
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +586 -220
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +42 -15
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +336 -219
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +7 -1
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +65 -10
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +39 -5
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +259 -137
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.d.ts +5 -1
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-list.component.js +26 -12
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/message/suggested-responses.component.d.ts +55 -0
- package/dist/lib/components/message/suggested-responses.component.d.ts.map +1 -0
- package/dist/lib/components/message/suggested-responses.component.js +207 -0
- package/dist/lib/components/message/suggested-responses.component.js.map +1 -0
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
- package/dist/lib/components/search/search-panel.component.js +245 -113
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.d.ts +29 -0
- package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -0
- package/dist/lib/components/shared/user-picker.component.js +229 -0
- package/dist/lib/components/shared/user-picker.component.js.map +1 -0
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +7 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js +36 -6
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +19 -2
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +167 -58
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +52 -47
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +27 -4
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/models/conversation-complete-query.model.d.ts +75 -0
- package/dist/lib/models/conversation-complete-query.model.d.ts.map +1 -0
- package/dist/lib/models/conversation-complete-query.model.js +19 -0
- package/dist/lib/models/conversation-complete-query.model.js.map +1 -0
- package/dist/lib/models/conversation-state.model.d.ts +27 -0
- package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
- package/dist/lib/services/agent-state.service.d.ts.map +1 -1
- package/dist/lib/services/agent-state.service.js +5 -0
- package/dist/lib/services/agent-state.service.js.map +1 -1
- package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-state.service.js +14 -9
- package/dist/lib/services/artifact-state.service.js.map +1 -1
- package/dist/lib/services/collection-permission.service.d.ts +96 -0
- package/dist/lib/services/collection-permission.service.d.ts.map +1 -0
- package/dist/lib/services/collection-permission.service.js +303 -0
- package/dist/lib/services/collection-permission.service.js.map +1 -0
- package/dist/lib/services/collection-state.service.d.ts +34 -0
- package/dist/lib/services/collection-state.service.d.ts.map +1 -0
- package/dist/lib/services/collection-state.service.js +50 -0
- package/dist/lib/services/collection-state.service.js.map +1 -0
- package/dist/lib/services/conversation-agent.service.d.ts +9 -4
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +41 -12
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/data-cache.service.d.ts.map +1 -1
- package/dist/lib/services/data-cache.service.js +5 -0
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +1 -1
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
- package/dist/lib/services/mention-parser.service.js +0 -5
- package/dist/lib/services/mention-parser.service.js.map +1 -1
- package/dist/lib/services/search.service.d.ts +26 -3
- package/dist/lib/services/search.service.d.ts.map +1 -1
- package/dist/lib/services/search.service.js +172 -12
- package/dist/lib/services/search.service.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +12 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-collection-picker-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/artifact-collection-picker-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAoC,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAY,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;;;;;;;;;;;IA6ChD,wBAAyD;IACzD,kCAA+E;IAAhD,0PAAS,+CAAqC,KAAC;IAC5E,YACF;IAAA,iBAAS;;;IADP,eACF;IADE,wDACF;;;;IAPF,AADF,8BAA4B,iBACgC;IAA3B,0NAAS,uBAAgB,KAAC;IACvD,wBAA2B;IAAC,sBAC9B;IAAA,iBAAS;IACT,wIAKC;IACH,iBAAM;;;IANJ,eAKC;IALD,oCAKC;;;IAqBG,wBAA6B;IAC7B,yBAAG;IAAA,YAAiD;IAAA,iBAAI;;;IAArD,eAAiD;IAAjD,mFAAiD;;;IAEpD,wBAAkC;IAClC,yBAAG;IAAA,4CAA4B;IAAA,iBAAI;;;IAEnC,wBAA6B;IAC7B,yBAAG;IAAA,wCAAwB;IAAA,iBAAI;IAC/B,6BAAgB;IAAA,sDAAsC;IAAA,iBAAI;;;IAV9D,+BAAyB;IAOrB,AAHA,AAHF,wHAAmB,2GAGW,2GAGrB;IAKX,iBAAM;;;IAXJ,cAUC;IAVD,yEAUC;;;IAiBG,gCAAkC;IAChC,wBAAmC;IAAC,+BACtC;IAAA,iBAAO;;;;IAGP,kCAG+B;IAD7B,kRAAS,wBAAwB,wBAAE,8CAAoC,KAAC;IAExE,wBAAoC;IACtC,iBAAS;;;;IAvBb,+BAEqC;IAAhC,6PAAS,+BAAqB,KAAC;IAEhC,AADF,+BAAiC,gBAK6B;IAA1D,+OAAS,wBAAwB,wBAAE,+BAAqB,KAAC;IAC7D,AALE,iBAI4D,EACxD;IACN,wBAAgG;IAChG,gCAA8B;IAAA,YAA0B;IAAA,iBAAO;IAM/D,AALA,0IAAoC,+HAKZ;IAQ1B,iBAAM;;;IAxBD,gEAAoD;IAKnD,eAAyB;IACzB,AADA,0CAAyB,6CACgB;IAGJ,cAAkD;IAAlD,8DAAkD;IAC7D,eAA0B;IAA1B,6CAA0B;IACxD,cAIC;IAJD,0DAIC;IACD,cAOC;IAPD,8CAOC;;;IAzBL,6IA2BC;;;IA3BD,0CA2BC;;;IA3CL,+BAAkE;IAe9D,AAdF,qHAAyC,6FAchC;IA8BX,iBAAM;;;IA5CJ,cA2CC;IA3CD,kEA2CC;;;IAKD,8BAA2B;IACzB,wBAAsC;IACtC,4BAAM;IAAA,sCAAsB;IAC9B,AAD8B,iBAAO,EAC/B;;;IAKN,+BAAyB;IACvB,wBAA2C;IAC3C,4BAAM;IAAA,YAAkB;IAC1B,AAD0B,iBAAO,EAC3B;;;IADE,eAAkB;IAAlB,yCAAkB;;;IAM1B,+BAA8B;IAC5B,wBAAmC;IACnC,4BAAM;IAAA,YAAuD;IAC/D,AAD+D,iBAAO,EAChE;;;IADE,eAAuD;IAAvD,uFAAuD;;;;IAU7D,kCAAsE;IAAhC,mPAA0B,IAAI,KAAC;IACnE,wBAA2B;IAC3B,uCACF;IAAA,iBAAS;;;IAaD,wBAAsC;;;IAEtC,wBACF;;;;IAbJ,AADF,+BAAyB,mBAOD;IAHpB,kWAA+B;IAE/B,2OAAiB,yBAAkB,KAAC;IALtC,iBAMsB;IAEpB,AADF,+BAA4B,iBACyG;IAA5F,4NAAS,yBAAkB,KAAC;IAG/D,AAFF,4HAA4B,sGAEnB;IAGX,iBAAS;IACT,kCAAgG;IAAzD,8NAA0B,KAAK,mDAAsB,EAAE,KAAC;IAC7F,wBACF;IAEJ,AADE,AADE,iBAAS,EACL,EACF;;;IAhBF,cAA+B;IAA/B,wDAA+B;IAKqC,eAA8D;IAA9D,0FAA8D;IAChI,cAIC;IAJD,qDAIC;;;IAoBP,wBAAsC;IAAC,2BACzC;;;IACE,wBAA2B;IAAC,YAC9B;;;IAD8B,cAC9B;IAD8B,wFAC9B;;;;IA1JN,uCAKmB;IAFjB,iNAAS,iBAAU,KAAC;IAGpB,8BAA0B;IAExB,8GAAiC;IAejC,8BAAwB;IACtB,uBAAyC;IACzC,gCAMyB;IAHvB,qUAAyB;IACzB,0MAAS,uBAAgB,KAAC;IAG9B,AAPE,iBAMyB,EACrB;IAmEN,AARA,AARA,AAhDA,sGAAkE,iGAgDjD,kGAQG,kGAQkB;IAUlC,AADF,AADF,gCAA4B,eACL,YACb;IAAA,8BAAa;IACrB,AADqB,iBAAO,EACtB;IAMJ,AALF,oHAAuB,oGAKd;IAwBb,AADE,iBAAM,EACF;IAGJ,AADF,6CAAsB,kBACqB;IAArB,4MAAS,iBAAU,KAAC;IACtC,yBACF;IAAA,iBAAS;IACT,mCAGkE;IAD1D,4MAAS,eAAQ,KAAC;IAItB,AAFF,sGAAgB,yFAEP;IAKf,AADE,AADE,iBAAS,EACY,EACV;;;IAxJb,AADA,2BAAa,iBACG;IAGd,eAYC;IAZD,2DAYC;IAQG,eAAyB;IAAzB,kDAAyB;IAGzB,2CAAsB;IAIK,cAAiC;IAAjC,gEAAiC;IAgDhE,cAKC;IALD,2CAKC;IAGD,cAKC;IALD,8CAKC;IAGD,cAKC;IALD,gEAKC;IAOC,eA2BC;IA3BD,kDA2BC;IASK,eAAgB;IAEhB,AAFA,8BAAgB,wEAEyC;IAC/D,cAIC;IAJD,2CAIC;;AA9KX;;;;;;;;GAQG;AAidH,MAAM,OAAO,sCAAsC;IA6BvC;IACA;IA7BD,MAAM,GAAY,KAAK,CAAC;IACxB,aAAa,CAAU;IACvB,WAAW,CAAY;IACvB,oBAAoB,GAAa,EAAE,CAAC,CAAC,2DAA2D;IAE/F,KAAK,GAAG,IAAI,YAAY,EAAY,CAAC,CAAC,gCAAgC;IACtE,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;IAExC,cAAc,GAAuB,EAAE,CAAC;IACxC,oBAAoB,GAAqB,EAAE,CAAC;IAC5C,mBAAmB,GAAuB,EAAE,CAAC;IAC7C,eAAe,GAAsC,IAAI,GAAG,EAAE,CAAC;IAE/D,cAAc,GAAqB,EAAE,CAAC,CAAC,mBAAmB;IAC1D,eAAe,GAAkB,IAAI,CAAC;IACtC,uBAAuB,GAAiC,SAAS,CAAC;IAElE,WAAW,GAAW,EAAE,CAAC;IACzB,SAAS,GAAY,KAAK,CAAC;IAC3B,QAAQ,GAAY,KAAK,CAAC;IAC1B,YAAY,GAAW,EAAE,CAAC;IAEjC,+BAA+B;IACxB,cAAc,GAAY,KAAK,CAAC;IAChC,iBAAiB,GAAW,EAAE,CAAC;IAC/B,oBAAoB,GAAY,KAAK,CAAC;IAE7C,YACU,YAA0B,EAC1B,iBAA8C;QAD9C,iBAAY,GAAZ,YAAY,CAAc;QAC1B,sBAAiB,GAAjB,iBAAiB,CAA6B;IACrD,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAY;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YAEvB,sCAAsC;YACtC,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAmB;gBAChD,UAAU,EAAE,iBAAiB;gBAC7B,WAAW,EAAE,kBAAkB,IAAI,CAAC,aAAa,GAAG;gBACpD,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,eAAe;aAC5B,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAErB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,4BAA4B,CAAC;gBACxE,OAAO;YACT,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAE3C,4CAA4C;YAC5C,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAEjC,6CAA6C;YAC7C,oFAAoF;YACpF,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACzD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,kCAAkC;YAClC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;QAEnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,GAAG,6CAA6C,CAAC;QACpE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,6DAA6D;QAC7D,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CACpD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CACpD,CAAC;QAEF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CACnE,aAAa,EACb,IAAI,CAAC,WAAW,CAAC,EAAE,EACnB,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE;YAC/C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,mBAAuC;QACpE,MAAM,eAAe,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,oBAAoB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAChG,CAAC;IAEO,uBAAuB,CAAC,QAAgB,EAAE,mBAAuC;QACvF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAClF,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACjG,CAAC;IAEO,UAAU,CAAC,UAA4B,EAAE,sBAA0C;QACzF,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClF,OAAO;YACL,UAAU;YACV,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;YACtE,WAAW;YACX,uBAAuB;SACxB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,UAA4B;QAClC,uEAAuE;QACvE,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,UAAU,EAAE,OAAO,IAAI,KAAK,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,IAAoB;QAClC,yEAAyE;QACzE,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACnF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,UAA4B;QAC9C,0CAA0C;QAC1C,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC;QAE1C,4BAA4B;QAC5B,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAEjE,kCAAkC;QAClC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;QAEzC,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,oBAAoB,CAAC,UAA4B;QAC/C,2DAA2D;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,qCAAqC;YACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC;YAE1C,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACzD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,sCAAsC;YACtC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACzD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACzD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;YACnD,CAAC;YACD,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,eAAe,CAAmB,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAEnG,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAChD,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAE9C,2DAA2D;YAC3D,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACjC,mDAAmD;gBACnD,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBACtD,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YAEtC,IAAI,KAAK,EAAE,CAAC;gBACV,qDAAqD;gBACrD,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBACjC,+BAA+B;oBAC/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAChD,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAC/B,UAAU,CAAC,EAAE,EACb,IAAI,CAAC,WAAW,CACjB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,0BAA0B;oBAC1B,MAAM,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAChD,UAAU,CAAC,EAAE,EACb,IAAI,CAAC,WAAW,CAAC,EAAE,EACnB,IAAI,CAAC,WAAW,CACjB,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;gBAE7D,aAAa;gBACb,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBAE5B,4CAA4C;gBAC5C,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBAE7B,2CAA2C;gBAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,6BAA6B,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC7E,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,mCAAmC;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/B,2EAA2E;IAC7E,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;gGAzUU,sCAAsC;6DAAtC,sCAAsC;YArc/C,2GAKmB;;YAJhB,iCAAY;4BARf,YAAY,WACZ,WAAW,2DACX,YAAY,iDACZ,aAAa,sBACb,YAAY;;iFAwcH,sCAAsC;cAhdlD,SAAS;2BACE,qCAAqC,cACnC,IAAI,WACP;oBACP,YAAY;oBACZ,WAAW;oBACX,YAAY;oBACZ,aAAa;oBACb,YAAY;iBACb,YACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+JT;uFAwSQ,MAAM;kBAAd,KAAK;YACG,aAAa;kBAArB,KAAK;YACG,WAAW;kBAAnB,KAAK;YACG,oBAAoB;kBAA5B,KAAK;YAEI,KAAK;kBAAd,MAAM;YACG,SAAS;kBAAlB,MAAM;;kFAPI,sCAAsC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { UserInfo } from '@memberjunction/core';
|
|
3
|
+
import { ArtifactEntity, ArtifactTypeEntity } from '@memberjunction/core-entities';
|
|
4
|
+
import { ToastService } from '../../services/toast.service';
|
|
5
|
+
import { CollectionPermissionService } from '../../services/collection-permission.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Modal for creating new artifacts and adding them to collections
|
|
9
|
+
*/
|
|
10
|
+
export declare class ArtifactCreateModalComponent implements OnChanges {
|
|
11
|
+
private toastService;
|
|
12
|
+
private permissionService;
|
|
13
|
+
isOpen: boolean;
|
|
14
|
+
collectionId: string;
|
|
15
|
+
environmentId: string;
|
|
16
|
+
currentUser: UserInfo;
|
|
17
|
+
saved: EventEmitter<ArtifactEntity>;
|
|
18
|
+
cancelled: EventEmitter<void>;
|
|
19
|
+
formData: {
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
content: string;
|
|
23
|
+
selectedType: ArtifactTypeEntity | null;
|
|
24
|
+
};
|
|
25
|
+
artifactTypes: ArtifactTypeEntity[];
|
|
26
|
+
isLoadingTypes: boolean;
|
|
27
|
+
isSaving: boolean;
|
|
28
|
+
errorMessage: string;
|
|
29
|
+
constructor(toastService: ToastService, permissionService: CollectionPermissionService);
|
|
30
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
31
|
+
get canSave(): boolean;
|
|
32
|
+
private loadArtifactTypes;
|
|
33
|
+
onSave(): Promise<void>;
|
|
34
|
+
onCancel(): void;
|
|
35
|
+
private resetForm;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactCreateModalComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactCreateModalComponent, "mj-artifact-create-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "collectionId": { "alias": "collectionId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "saved": "saved"; "cancelled": "cancelled"; }, never, never, false, never>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=artifact-create-modal.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-create-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/artifact-create-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAA2C,MAAM,+BAA+B,CAAC;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;;AAE3F;;GAEG;AACH,qBAmJa,4BAA6B,YAAW,SAAS;IAsB1D,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,iBAAiB;IAtBlB,MAAM,EAAE,OAAO,CAAS;IACxB,YAAY,EAAG,MAAM,CAAC;IACtB,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAEtB,KAAK,+BAAsC;IAC3C,SAAS,qBAA4B;IAExC,QAAQ;;;;;MAKb;IAEK,aAAa,EAAE,kBAAkB,EAAE,CAAM;IACzC,cAAc,EAAE,OAAO,CAAS;IAChC,QAAQ,EAAE,OAAO,CAAS;IAC1B,YAAY,EAAE,MAAM,CAAM;gBAGvB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,2BAA2B;IAGxD,WAAW,CAAC,OAAO,EAAE,aAAa;IAOlC,IAAI,OAAO,IAAI,OAAO,CAIrB;YAEa,iBAAiB;IAiCzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAuF7B,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,SAAS;yCApKN,4BAA4B;2CAA5B,4BAA4B;CA6KxC"}
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { Metadata, RunView } from '@memberjunction/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/toast.service";
|
|
5
|
+
import * as i2 from "../../services/collection-permission.service";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/forms";
|
|
8
|
+
import * as i5 from "@progress/kendo-angular-dialog";
|
|
9
|
+
import * as i6 from "@progress/kendo-angular-buttons";
|
|
10
|
+
import * as i7 from "@progress/kendo-angular-dropdowns";
|
|
11
|
+
function ArtifactCreateModalComponent_kendo_dialog_0_div_30_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelementStart(0, "div", 16);
|
|
13
|
+
i0.ɵɵelement(1, "i", 17);
|
|
14
|
+
i0.ɵɵtext(2);
|
|
15
|
+
i0.ɵɵelementEnd();
|
|
16
|
+
} if (rf & 2) {
|
|
17
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
18
|
+
i0.ɵɵadvance(2);
|
|
19
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.errorMessage, " ");
|
|
20
|
+
} }
|
|
21
|
+
function ArtifactCreateModalComponent_kendo_dialog_0_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
23
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 2);
|
|
24
|
+
i0.ɵɵlistener("close", function ArtifactCreateModalComponent_kendo_dialog_0_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
|
|
25
|
+
i0.ɵɵelementStart(1, "div", 3)(2, "div", 4)(3, "label", 5);
|
|
26
|
+
i0.ɵɵtext(4, " Name ");
|
|
27
|
+
i0.ɵɵelementStart(5, "span", 6);
|
|
28
|
+
i0.ɵɵtext(6, "*");
|
|
29
|
+
i0.ɵɵelementEnd()();
|
|
30
|
+
i0.ɵɵelementStart(7, "input", 7, 0);
|
|
31
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCreateModalComponent_kendo_dialog_0_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.formData.name, $event) || (ctx_r1.formData.name = $event); return i0.ɵɵresetView($event); });
|
|
32
|
+
i0.ɵɵelementEnd()();
|
|
33
|
+
i0.ɵɵelementStart(9, "div", 4)(10, "label", 5);
|
|
34
|
+
i0.ɵɵtext(11, " Type ");
|
|
35
|
+
i0.ɵɵelementStart(12, "span", 6);
|
|
36
|
+
i0.ɵɵtext(13, "*");
|
|
37
|
+
i0.ɵɵelementEnd()();
|
|
38
|
+
i0.ɵɵelementStart(14, "kendo-dropdownlist", 8);
|
|
39
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCreateModalComponent_kendo_dialog_0_Template_kendo_dropdownlist_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.formData.selectedType, $event) || (ctx_r1.formData.selectedType = $event); return i0.ɵɵresetView($event); });
|
|
40
|
+
i0.ɵɵelementEnd()();
|
|
41
|
+
i0.ɵɵelementStart(15, "div", 4)(16, "label", 5);
|
|
42
|
+
i0.ɵɵtext(17, "Description");
|
|
43
|
+
i0.ɵɵelementEnd();
|
|
44
|
+
i0.ɵɵelementStart(18, "textarea", 9);
|
|
45
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCreateModalComponent_kendo_dialog_0_Template_textarea_ngModelChange_18_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.formData.description, $event) || (ctx_r1.formData.description = $event); return i0.ɵɵresetView($event); });
|
|
46
|
+
i0.ɵɵtext(19, " ");
|
|
47
|
+
i0.ɵɵelementEnd()();
|
|
48
|
+
i0.ɵɵelementStart(20, "div", 4)(21, "label", 5);
|
|
49
|
+
i0.ɵɵtext(22, " Content ");
|
|
50
|
+
i0.ɵɵelementStart(23, "span", 6);
|
|
51
|
+
i0.ɵɵtext(24, "*");
|
|
52
|
+
i0.ɵɵelementEnd()();
|
|
53
|
+
i0.ɵɵelementStart(25, "textarea", 10);
|
|
54
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ArtifactCreateModalComponent_kendo_dialog_0_Template_textarea_ngModelChange_25_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.formData.content, $event) || (ctx_r1.formData.content = $event); return i0.ɵɵresetView($event); });
|
|
55
|
+
i0.ɵɵtext(26, " ");
|
|
56
|
+
i0.ɵɵelementEnd();
|
|
57
|
+
i0.ɵɵelementStart(27, "div", 11);
|
|
58
|
+
i0.ɵɵelement(28, "i", 12);
|
|
59
|
+
i0.ɵɵtext(29, " Paste or type the artifact content. The content will be saved as version 1. ");
|
|
60
|
+
i0.ɵɵelementEnd()();
|
|
61
|
+
i0.ɵɵtemplate(30, ArtifactCreateModalComponent_kendo_dialog_0_div_30_Template, 3, 1, "div", 13);
|
|
62
|
+
i0.ɵɵelementEnd();
|
|
63
|
+
i0.ɵɵelementStart(31, "kendo-dialog-actions")(32, "button", 14);
|
|
64
|
+
i0.ɵɵlistener("click", function ArtifactCreateModalComponent_kendo_dialog_0_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCancel()); });
|
|
65
|
+
i0.ɵɵtext(33, " Cancel ");
|
|
66
|
+
i0.ɵɵelementEnd();
|
|
67
|
+
i0.ɵɵelementStart(34, "button", 15);
|
|
68
|
+
i0.ɵɵlistener("click", function ArtifactCreateModalComponent_kendo_dialog_0_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSave()); });
|
|
69
|
+
i0.ɵɵtext(35);
|
|
70
|
+
i0.ɵɵelementEnd()()();
|
|
71
|
+
} if (rf & 2) {
|
|
72
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
73
|
+
i0.ɵɵproperty("width", 600)("minWidth", 400);
|
|
74
|
+
i0.ɵɵadvance(7);
|
|
75
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formData.name);
|
|
76
|
+
i0.ɵɵadvance(7);
|
|
77
|
+
i0.ɵɵproperty("data", ctx_r1.artifactTypes);
|
|
78
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formData.selectedType);
|
|
79
|
+
i0.ɵɵproperty("valuePrimitive", false)("loading", ctx_r1.isLoadingTypes);
|
|
80
|
+
i0.ɵɵadvance(4);
|
|
81
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formData.description);
|
|
82
|
+
i0.ɵɵadvance(7);
|
|
83
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formData.content);
|
|
84
|
+
i0.ɵɵadvance(5);
|
|
85
|
+
i0.ɵɵproperty("ngIf", ctx_r1.errorMessage);
|
|
86
|
+
i0.ɵɵadvance(2);
|
|
87
|
+
i0.ɵɵproperty("disabled", ctx_r1.isSaving);
|
|
88
|
+
i0.ɵɵadvance(2);
|
|
89
|
+
i0.ɵɵproperty("primary", true)("disabled", !ctx_r1.canSave || ctx_r1.isSaving);
|
|
90
|
+
i0.ɵɵadvance();
|
|
91
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.isSaving ? "Creating..." : "Create Artifact", " ");
|
|
92
|
+
} }
|
|
93
|
+
/**
|
|
94
|
+
* Modal for creating new artifacts and adding them to collections
|
|
95
|
+
*/
|
|
96
|
+
export class ArtifactCreateModalComponent {
|
|
97
|
+
toastService;
|
|
98
|
+
permissionService;
|
|
99
|
+
isOpen = false;
|
|
100
|
+
collectionId;
|
|
101
|
+
environmentId;
|
|
102
|
+
currentUser;
|
|
103
|
+
saved = new EventEmitter();
|
|
104
|
+
cancelled = new EventEmitter();
|
|
105
|
+
formData = {
|
|
106
|
+
name: '',
|
|
107
|
+
description: '',
|
|
108
|
+
content: '',
|
|
109
|
+
selectedType: null
|
|
110
|
+
};
|
|
111
|
+
artifactTypes = [];
|
|
112
|
+
isLoadingTypes = false;
|
|
113
|
+
isSaving = false;
|
|
114
|
+
errorMessage = '';
|
|
115
|
+
constructor(toastService, permissionService) {
|
|
116
|
+
this.toastService = toastService;
|
|
117
|
+
this.permissionService = permissionService;
|
|
118
|
+
}
|
|
119
|
+
ngOnChanges(changes) {
|
|
120
|
+
if (changes['isOpen'] && this.isOpen) {
|
|
121
|
+
this.resetForm();
|
|
122
|
+
this.loadArtifactTypes();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
get canSave() {
|
|
126
|
+
return this.formData.name.trim().length > 0 &&
|
|
127
|
+
this.formData.content.trim().length > 0 &&
|
|
128
|
+
this.formData.selectedType !== null;
|
|
129
|
+
}
|
|
130
|
+
async loadArtifactTypes() {
|
|
131
|
+
this.isLoadingTypes = true;
|
|
132
|
+
try {
|
|
133
|
+
const rv = new RunView();
|
|
134
|
+
const result = await rv.RunView({
|
|
135
|
+
EntityName: 'MJ: Artifact Types',
|
|
136
|
+
ExtraFilter: 'IsEnabled=1',
|
|
137
|
+
OrderBy: 'Name ASC',
|
|
138
|
+
MaxRows: 1000,
|
|
139
|
+
ResultType: 'entity_object'
|
|
140
|
+
}, this.currentUser);
|
|
141
|
+
if (result.Success && result.Results) {
|
|
142
|
+
this.artifactTypes = result.Results;
|
|
143
|
+
// Default to "Text" or first type
|
|
144
|
+
const textType = this.artifactTypes.find(t => t.Name === 'Text' || t.Name === 'Markdown');
|
|
145
|
+
if (textType) {
|
|
146
|
+
this.formData.selectedType = textType;
|
|
147
|
+
}
|
|
148
|
+
else if (this.artifactTypes.length > 0) {
|
|
149
|
+
this.formData.selectedType = this.artifactTypes[0];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
console.error('Error loading artifact types:', error);
|
|
155
|
+
this.toastService.error('Failed to load artifact types');
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
this.isLoadingTypes = false;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async onSave() {
|
|
162
|
+
if (!this.canSave)
|
|
163
|
+
return;
|
|
164
|
+
this.isSaving = true;
|
|
165
|
+
this.errorMessage = '';
|
|
166
|
+
try {
|
|
167
|
+
// Validate permission to add artifacts to collection
|
|
168
|
+
const md = new Metadata();
|
|
169
|
+
const collection = await md.GetEntityObject('MJ: Collections', this.currentUser);
|
|
170
|
+
await collection.Load(this.collectionId);
|
|
171
|
+
// Check if user has Edit permission on collection
|
|
172
|
+
if (collection.OwnerID && collection.OwnerID !== this.currentUser.ID) {
|
|
173
|
+
const permission = await this.permissionService.checkPermission(this.collectionId, this.currentUser.ID, this.currentUser);
|
|
174
|
+
if (!permission?.canEdit) {
|
|
175
|
+
this.errorMessage = 'You do not have Edit permission to add artifacts to this collection.';
|
|
176
|
+
this.isSaving = false;
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Step 1: Create the artifact
|
|
181
|
+
const artifact = await md.GetEntityObject('MJ: Artifacts', this.currentUser);
|
|
182
|
+
artifact.Name = this.formData.name.trim();
|
|
183
|
+
artifact.Description = this.formData.description.trim() || null;
|
|
184
|
+
artifact.TypeID = this.formData.selectedType.ID;
|
|
185
|
+
artifact.EnvironmentID = this.environmentId;
|
|
186
|
+
artifact.UserID = this.currentUser.ID;
|
|
187
|
+
const artifactSaved = await artifact.Save();
|
|
188
|
+
if (!artifactSaved) {
|
|
189
|
+
this.errorMessage = artifact.LatestResult?.Message || 'Failed to create artifact';
|
|
190
|
+
this.toastService.error(this.errorMessage);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
// Step 2: Create the first version
|
|
194
|
+
const version = await md.GetEntityObject('MJ: Artifact Versions', this.currentUser);
|
|
195
|
+
version.ArtifactID = artifact.ID;
|
|
196
|
+
version.VersionNumber = 1;
|
|
197
|
+
version.Content = this.formData.content.trim();
|
|
198
|
+
version.UserID = this.currentUser.ID;
|
|
199
|
+
version.Name = this.formData.name.trim(); // Version inherits name
|
|
200
|
+
version.Description = this.formData.description.trim() || null;
|
|
201
|
+
const versionSaved = await version.Save();
|
|
202
|
+
if (!versionSaved) {
|
|
203
|
+
// Rollback: delete the artifact if version creation fails
|
|
204
|
+
await artifact.Delete();
|
|
205
|
+
this.errorMessage = version.LatestResult?.Message || 'Failed to create artifact version';
|
|
206
|
+
this.toastService.error(this.errorMessage);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
// Step 3: Add to collection
|
|
210
|
+
const collectionArtifact = await md.GetEntityObject('MJ: Collection Artifacts', this.currentUser);
|
|
211
|
+
collectionArtifact.CollectionID = this.collectionId;
|
|
212
|
+
collectionArtifact.ArtifactID = artifact.ID;
|
|
213
|
+
const collectionLinkSaved = await collectionArtifact.Save();
|
|
214
|
+
if (!collectionLinkSaved) {
|
|
215
|
+
// Rollback: delete version and artifact if collection link fails
|
|
216
|
+
await version.Delete();
|
|
217
|
+
await artifact.Delete();
|
|
218
|
+
this.errorMessage = 'Failed to add artifact to collection';
|
|
219
|
+
this.toastService.error(this.errorMessage);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
this.toastService.success('Artifact created successfully');
|
|
223
|
+
this.saved.emit(artifact);
|
|
224
|
+
this.resetForm();
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
console.error('Error creating artifact:', error);
|
|
228
|
+
this.errorMessage = 'An unexpected error occurred';
|
|
229
|
+
this.toastService.error(this.errorMessage);
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
this.isSaving = false;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
onCancel() {
|
|
236
|
+
this.resetForm();
|
|
237
|
+
this.cancelled.emit();
|
|
238
|
+
}
|
|
239
|
+
resetForm() {
|
|
240
|
+
this.formData = {
|
|
241
|
+
name: '',
|
|
242
|
+
description: '',
|
|
243
|
+
content: '',
|
|
244
|
+
selectedType: this.artifactTypes.length > 0 ? this.artifactTypes[0] : null
|
|
245
|
+
};
|
|
246
|
+
this.errorMessage = '';
|
|
247
|
+
}
|
|
248
|
+
static ɵfac = function ArtifactCreateModalComponent_Factory(t) { return new (t || ArtifactCreateModalComponent)(i0.ɵɵdirectiveInject(i1.ToastService), i0.ɵɵdirectiveInject(i2.CollectionPermissionService)); };
|
|
249
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArtifactCreateModalComponent, selectors: [["mj-artifact-create-modal"]], inputs: { isOpen: "isOpen", collectionId: "collectionId", environmentId: "environmentId", currentUser: "currentUser" }, outputs: { saved: "saved", cancelled: "cancelled" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["nameInput", ""], ["title", "Create Artifact", 3, "width", "minWidth", "close", 4, "ngIf"], ["title", "Create Artifact", 3, "close", "width", "minWidth"], [1, "artifact-form"], [1, "form-group"], [1, "form-label"], [1, "required"], ["type", "text", "placeholder", "Artifact name", 1, "k-textbox", "form-control", 3, "ngModelChange", "ngModel"], ["textField", "Name", "valueField", "ID", 1, "form-control", 3, "ngModelChange", "data", "ngModel", "valuePrimitive", "loading"], ["placeholder", "Optional description", "rows", "2", 1, "k-textarea", "form-control", 3, "ngModelChange", "ngModel"], ["placeholder", "Paste your content here...", "rows", "12", 1, "k-textarea", "form-control", "content-area", 3, "ngModelChange", "ngModel"], [1, "content-hint"], [1, "fas", "fa-info-circle"], ["class", "form-error", 4, "ngIf"], ["kendoButton", "", 3, "click", "disabled"], ["kendoButton", "", 3, "click", "primary", "disabled"], [1, "form-error"], [1, "fas", "fa-exclamation-circle"]], template: function ArtifactCreateModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
250
|
+
i0.ɵɵtemplate(0, ArtifactCreateModalComponent_kendo_dialog_0_Template, 36, 14, "kendo-dialog", 1);
|
|
251
|
+
} if (rf & 2) {
|
|
252
|
+
i0.ɵɵproperty("ngIf", ctx.isOpen);
|
|
253
|
+
} }, dependencies: [i3.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgModel, i5.DialogComponent, i5.DialogActionsComponent, i6.ButtonComponent, i7.DropDownListComponent], styles: [".artifact-form[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required[_ngcontent-%COMP%] {\n color: #DC2626;\n }\n\n .form-control[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .content-area[_ngcontent-%COMP%] {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n font-size: 13px;\n line-height: 1.5;\n }\n\n .content-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: start;\n gap: 8px;\n margin-top: 8px;\n padding: 8px 12px;\n background: #EFF6FF;\n border: 1px solid #BFDBFE;\n border-radius: 6px;\n font-size: 13px;\n color: #1e40af;\n }\n\n .content-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .form-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }"] });
|
|
254
|
+
}
|
|
255
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArtifactCreateModalComponent, [{
|
|
256
|
+
type: Component,
|
|
257
|
+
args: [{ selector: 'mj-artifact-create-modal', template: `
|
|
258
|
+
<kendo-dialog
|
|
259
|
+
*ngIf="isOpen"
|
|
260
|
+
title="Create Artifact"
|
|
261
|
+
(close)="onCancel()"
|
|
262
|
+
[width]="600"
|
|
263
|
+
[minWidth]="400">
|
|
264
|
+
<div class="artifact-form">
|
|
265
|
+
<div class="form-group">
|
|
266
|
+
<label class="form-label">
|
|
267
|
+
Name <span class="required">*</span>
|
|
268
|
+
</label>
|
|
269
|
+
<input
|
|
270
|
+
type="text"
|
|
271
|
+
class="k-textbox form-control"
|
|
272
|
+
[(ngModel)]="formData.name"
|
|
273
|
+
placeholder="Artifact name"
|
|
274
|
+
#nameInput>
|
|
275
|
+
</div>
|
|
276
|
+
|
|
277
|
+
<div class="form-group">
|
|
278
|
+
<label class="form-label">
|
|
279
|
+
Type <span class="required">*</span>
|
|
280
|
+
</label>
|
|
281
|
+
<kendo-dropdownlist
|
|
282
|
+
[data]="artifactTypes"
|
|
283
|
+
[(ngModel)]="formData.selectedType"
|
|
284
|
+
textField="Name"
|
|
285
|
+
valueField="ID"
|
|
286
|
+
[valuePrimitive]="false"
|
|
287
|
+
class="form-control"
|
|
288
|
+
[loading]="isLoadingTypes">
|
|
289
|
+
</kendo-dropdownlist>
|
|
290
|
+
</div>
|
|
291
|
+
|
|
292
|
+
<div class="form-group">
|
|
293
|
+
<label class="form-label">Description</label>
|
|
294
|
+
<textarea
|
|
295
|
+
class="k-textarea form-control"
|
|
296
|
+
[(ngModel)]="formData.description"
|
|
297
|
+
placeholder="Optional description"
|
|
298
|
+
rows="2">
|
|
299
|
+
</textarea>
|
|
300
|
+
</div>
|
|
301
|
+
|
|
302
|
+
<div class="form-group">
|
|
303
|
+
<label class="form-label">
|
|
304
|
+
Content <span class="required">*</span>
|
|
305
|
+
</label>
|
|
306
|
+
<textarea
|
|
307
|
+
class="k-textarea form-control content-area"
|
|
308
|
+
[(ngModel)]="formData.content"
|
|
309
|
+
placeholder="Paste your content here..."
|
|
310
|
+
rows="12">
|
|
311
|
+
</textarea>
|
|
312
|
+
<div class="content-hint">
|
|
313
|
+
<i class="fas fa-info-circle"></i>
|
|
314
|
+
Paste or type the artifact content. The content will be saved as version 1.
|
|
315
|
+
</div>
|
|
316
|
+
</div>
|
|
317
|
+
|
|
318
|
+
<div class="form-error" *ngIf="errorMessage">
|
|
319
|
+
<i class="fas fa-exclamation-circle"></i>
|
|
320
|
+
{{ errorMessage }}
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
|
|
324
|
+
<kendo-dialog-actions>
|
|
325
|
+
<button kendoButton (click)="onCancel()" [disabled]="isSaving">
|
|
326
|
+
Cancel
|
|
327
|
+
</button>
|
|
328
|
+
<button kendoButton
|
|
329
|
+
[primary]="true"
|
|
330
|
+
(click)="onSave()"
|
|
331
|
+
[disabled]="!canSave || isSaving">
|
|
332
|
+
{{ isSaving ? 'Creating...' : 'Create Artifact' }}
|
|
333
|
+
</button>
|
|
334
|
+
</kendo-dialog-actions>
|
|
335
|
+
</kendo-dialog>
|
|
336
|
+
`, styles: ["\n .artifact-form {\n padding: 20px 0;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n .form-label {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required {\n color: #DC2626;\n }\n\n .form-control {\n width: 100%;\n }\n\n .content-area {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace;\n font-size: 13px;\n line-height: 1.5;\n }\n\n .content-hint {\n display: flex;\n align-items: start;\n gap: 8px;\n margin-top: 8px;\n padding: 8px 12px;\n background: #EFF6FF;\n border: 1px solid #BFDBFE;\n border-radius: 6px;\n font-size: 13px;\n color: #1e40af;\n }\n\n .content-hint i {\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .form-error {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error i {\n flex-shrink: 0;\n }\n "] }]
|
|
337
|
+
}], () => [{ type: i1.ToastService }, { type: i2.CollectionPermissionService }], { isOpen: [{
|
|
338
|
+
type: Input
|
|
339
|
+
}], collectionId: [{
|
|
340
|
+
type: Input
|
|
341
|
+
}], environmentId: [{
|
|
342
|
+
type: Input
|
|
343
|
+
}], currentUser: [{
|
|
344
|
+
type: Input
|
|
345
|
+
}], saved: [{
|
|
346
|
+
type: Output
|
|
347
|
+
}], cancelled: [{
|
|
348
|
+
type: Output
|
|
349
|
+
}] }); })();
|
|
350
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArtifactCreateModalComponent, { className: "ArtifactCreateModalComponent", filePath: "src/lib/components/collection/artifact-create-modal.component.ts", lineNumber: 157 }); })();
|
|
351
|
+
//# sourceMappingURL=artifact-create-modal.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-create-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/collection/artifact-create-modal.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
|
2
2
|
import { UserInfo } from '@memberjunction/core';
|
|
3
3
|
import { CollectionEntity } from '@memberjunction/core-entities';
|
|
4
4
|
import { ToastService } from '../../services/toast.service';
|
|
5
|
+
import { CollectionPermissionService } from '../../services/collection-permission.service';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* Modal for creating and editing collections
|
|
8
9
|
*/
|
|
9
10
|
export declare class CollectionFormModalComponent implements OnChanges {
|
|
10
11
|
private toastService;
|
|
12
|
+
private permissionService;
|
|
11
13
|
isOpen: boolean;
|
|
12
14
|
collection?: CollectionEntity;
|
|
13
15
|
parentCollection?: CollectionEntity;
|
|
@@ -21,7 +23,7 @@ export declare class CollectionFormModalComponent implements OnChanges {
|
|
|
21
23
|
};
|
|
22
24
|
isSaving: boolean;
|
|
23
25
|
errorMessage: string;
|
|
24
|
-
constructor(toastService: ToastService);
|
|
26
|
+
constructor(toastService: ToastService, permissionService: CollectionPermissionService);
|
|
25
27
|
ngOnChanges(changes: SimpleChanges): void;
|
|
26
28
|
get canSave(): boolean;
|
|
27
29
|
onSave(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-form-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/collection-form-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;;
|
|
1
|
+
{"version":3,"file":"collection-form-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/collection/collection-form-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;;AAE3F;;GAEG;AACH,qBAoHa,4BAA6B,YAAW,SAAS;IAmB1D,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,iBAAiB;IAnBlB,MAAM,EAAE,OAAO,CAAS;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAEtB,KAAK,iCAAwC;IAC7C,SAAS,qBAA4B;IAExC,QAAQ;;;MAGb;IAEK,QAAQ,EAAE,OAAO,CAAS;IAC1B,YAAY,EAAE,MAAM,CAAM;gBAGvB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,2BAA2B;IAGxD,WAAW,CAAC,OAAO,EAAE,aAAa;IAWlC,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsG7B,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,SAAS;yCAjJN,4BAA4B;2CAA5B,4BAA4B;CAwJxC"}
|
|
@@ -2,10 +2,11 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
|
2
2
|
import { Metadata } from '@memberjunction/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../services/toast.service";
|
|
5
|
-
import * as i2 from "
|
|
6
|
-
import * as i3 from "@angular/
|
|
7
|
-
import * as i4 from "@
|
|
8
|
-
import * as i5 from "@progress/kendo-angular-
|
|
5
|
+
import * as i2 from "../../services/collection-permission.service";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/forms";
|
|
8
|
+
import * as i5 from "@progress/kendo-angular-dialog";
|
|
9
|
+
import * as i6 from "@progress/kendo-angular-buttons";
|
|
9
10
|
function CollectionFormModalComponent_kendo_dialog_0_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
10
11
|
i0.ɵɵelementStart(0, "div", 4)(1, "label", 5);
|
|
11
12
|
i0.ɵɵtext(2, "Parent Collection");
|
|
@@ -83,6 +84,7 @@ function CollectionFormModalComponent_kendo_dialog_0_Template(rf, ctx) { if (rf
|
|
|
83
84
|
*/
|
|
84
85
|
export class CollectionFormModalComponent {
|
|
85
86
|
toastService;
|
|
87
|
+
permissionService;
|
|
86
88
|
isOpen = false;
|
|
87
89
|
collection;
|
|
88
90
|
parentCollection;
|
|
@@ -96,8 +98,9 @@ export class CollectionFormModalComponent {
|
|
|
96
98
|
};
|
|
97
99
|
isSaving = false;
|
|
98
100
|
errorMessage = '';
|
|
99
|
-
constructor(toastService) {
|
|
101
|
+
constructor(toastService, permissionService) {
|
|
100
102
|
this.toastService = toastService;
|
|
103
|
+
this.permissionService = permissionService;
|
|
101
104
|
}
|
|
102
105
|
ngOnChanges(changes) {
|
|
103
106
|
if (changes['collection'] || changes['isOpen']) {
|
|
@@ -119,17 +122,64 @@ export class CollectionFormModalComponent {
|
|
|
119
122
|
this.isSaving = true;
|
|
120
123
|
this.errorMessage = '';
|
|
121
124
|
try {
|
|
125
|
+
// Validate permissions before saving
|
|
126
|
+
if (this.collection) {
|
|
127
|
+
// Editing existing collection - need Edit permission
|
|
128
|
+
if (this.collection.OwnerID && this.collection.OwnerID !== this.currentUser.ID) {
|
|
129
|
+
const permission = await this.permissionService.checkPermission(this.collection.ID, this.currentUser.ID, this.currentUser);
|
|
130
|
+
if (!permission?.canEdit) {
|
|
131
|
+
this.errorMessage = 'You do not have Edit permission for this collection.';
|
|
132
|
+
this.isSaving = false;
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (this.parentCollection) {
|
|
138
|
+
// Creating child collection - need Edit permission on parent
|
|
139
|
+
if (this.parentCollection.OwnerID && this.parentCollection.OwnerID !== this.currentUser.ID) {
|
|
140
|
+
const permission = await this.permissionService.checkPermission(this.parentCollection.ID, this.currentUser.ID, this.currentUser);
|
|
141
|
+
if (!permission?.canEdit) {
|
|
142
|
+
this.errorMessage = 'You do not have Edit permission for the parent collection.';
|
|
143
|
+
this.isSaving = false;
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
122
148
|
const md = new Metadata();
|
|
123
149
|
const collection = this.collection ||
|
|
124
150
|
await md.GetEntityObject('MJ: Collections', this.currentUser);
|
|
125
151
|
collection.Name = this.formData.name.trim();
|
|
126
152
|
collection.Description = this.formData.description.trim() || null;
|
|
127
153
|
collection.EnvironmentID = this.environmentId;
|
|
128
|
-
if
|
|
154
|
+
// Set owner and parent relationship if creating new collection
|
|
155
|
+
if (!this.collection) {
|
|
156
|
+
if (this.parentCollection) {
|
|
157
|
+
// Child collection inherits parent's owner to maintain permission hierarchy
|
|
158
|
+
collection.ParentID = this.parentCollection.ID;
|
|
159
|
+
collection.OwnerID = this.parentCollection.OwnerID || this.currentUser.ID;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// Root collection - current user becomes owner
|
|
163
|
+
collection.OwnerID = this.currentUser.ID;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else if (this.parentCollection) {
|
|
167
|
+
// Updating existing collection's parent
|
|
129
168
|
collection.ParentID = this.parentCollection.ID;
|
|
130
169
|
}
|
|
131
170
|
const saved = await collection.Save();
|
|
132
171
|
if (saved) {
|
|
172
|
+
// If creating new collection, set up permissions
|
|
173
|
+
if (!this.collection) {
|
|
174
|
+
if (this.parentCollection) {
|
|
175
|
+
// Child collection - copy all permissions from parent (including owner)
|
|
176
|
+
await this.permissionService.copyParentPermissions(this.parentCollection.ID, collection.ID, this.currentUser);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
// Root collection - create owner permission for current user
|
|
180
|
+
await this.permissionService.createOwnerPermission(collection.ID, this.currentUser.ID, this.currentUser);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
133
183
|
this.toastService.success(this.collection ? 'Collection updated successfully' : 'Collection created successfully');
|
|
134
184
|
this.saved.emit(collection);
|
|
135
185
|
this.resetForm();
|
|
@@ -159,12 +209,12 @@ export class CollectionFormModalComponent {
|
|
|
159
209
|
};
|
|
160
210
|
this.errorMessage = '';
|
|
161
211
|
}
|
|
162
|
-
static ɵfac = function CollectionFormModalComponent_Factory(t) { return new (t || CollectionFormModalComponent)(i0.ɵɵdirectiveInject(i1.ToastService)); };
|
|
212
|
+
static ɵfac = function CollectionFormModalComponent_Factory(t) { return new (t || CollectionFormModalComponent)(i0.ɵɵdirectiveInject(i1.ToastService), i0.ɵɵdirectiveInject(i2.CollectionPermissionService)); };
|
|
163
213
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollectionFormModalComponent, selectors: [["mj-collection-form-modal"]], inputs: { isOpen: "isOpen", collection: "collection", parentCollection: "parentCollection", environmentId: "environmentId", currentUser: "currentUser" }, outputs: { saved: "saved", cancelled: "cancelled" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["nameInput", ""], [3, "title", "width", "minWidth", "close", 4, "ngIf"], [3, "close", "title", "width", "minWidth"], [1, "collection-form"], [1, "form-group"], [1, "form-label"], [1, "required"], ["type", "text", "placeholder", "Collection name", 1, "k-textbox", "form-control", 3, "ngModelChange", "keydown.enter", "ngModel"], ["placeholder", "Optional description", "rows", "3", 1, "k-textarea", "form-control", 3, "ngModelChange", "ngModel"], ["class", "form-group", 4, "ngIf"], ["class", "form-error", 4, "ngIf"], ["kendoButton", "", 3, "click", "disabled"], ["kendoButton", "", 3, "click", "primary", "disabled"], [1, "parent-info"], [1, "fas", "fa-folder"], [1, "form-error"], [1, "fas", "fa-exclamation-circle"]], template: function CollectionFormModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
164
214
|
i0.ɵɵtemplate(0, CollectionFormModalComponent_kendo_dialog_0_Template, 21, 11, "kendo-dialog", 1);
|
|
165
215
|
} if (rf & 2) {
|
|
166
216
|
i0.ɵɵproperty("ngIf", ctx.isOpen);
|
|
167
|
-
} }, dependencies: [
|
|
217
|
+
} }, dependencies: [i3.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgModel, i5.DialogComponent, i5.DialogActionsComponent, i6.ButtonComponent], styles: [".collection-form[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required[_ngcontent-%COMP%] {\n color: #DC2626;\n }\n\n .form-control[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .parent-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n color: #6B7280;\n }\n\n .parent-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #1e40af;\n }\n\n .form-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }"] });
|
|
168
218
|
}
|
|
169
219
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollectionFormModalComponent, [{
|
|
170
220
|
type: Component,
|
|
@@ -226,7 +276,7 @@ export class CollectionFormModalComponent {
|
|
|
226
276
|
</kendo-dialog-actions>
|
|
227
277
|
</kendo-dialog>
|
|
228
278
|
`, styles: ["\n .collection-form {\n padding: 20px 0;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n .form-label {\n display: block;\n margin-bottom: 8px;\n font-weight: 500;\n color: #333;\n }\n\n .required {\n color: #DC2626;\n }\n\n .form-control {\n width: 100%;\n }\n\n .parent-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n color: #6B7280;\n }\n\n .parent-info i {\n color: #1e40af;\n }\n\n .form-error {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: #FEE2E2;\n border: 1px solid #FCA5A5;\n border-radius: 6px;\n color: #DC2626;\n font-size: 14px;\n }\n\n .form-error i {\n flex-shrink: 0;\n }\n "] }]
|
|
229
|
-
}], () => [{ type: i1.ToastService }], { isOpen: [{
|
|
279
|
+
}], () => [{ type: i1.ToastService }, { type: i2.CollectionPermissionService }], { isOpen: [{
|
|
230
280
|
type: Input
|
|
231
281
|
}], collection: [{
|
|
232
282
|
type: Input
|
|
@@ -241,5 +291,5 @@ export class CollectionFormModalComponent {
|
|
|
241
291
|
}], cancelled: [{
|
|
242
292
|
type: Output
|
|
243
293
|
}] }); })();
|
|
244
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionFormModalComponent, { className: "CollectionFormModalComponent", filePath: "src/lib/components/collection/collection-form-modal.component.ts", lineNumber:
|
|
294
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollectionFormModalComponent, { className: "CollectionFormModalComponent", filePath: "src/lib/components/collection/collection-form-modal.component.ts", lineNumber: 127 }); })();
|
|
245
295
|
//# sourceMappingURL=collection-form-modal.component.js.map
|