ode-ngjs-front 1.3.4-dev-integration.202402051047 → 1.3.4-dev-integration.202402141753

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":"edumalin-widget.widget.d.ts","sourceRoot":"","sources":["../../../../src/ts/widgets/edumalin-widget/edumalin-widget.widget.ts"],"names":[],"mappings":"AA6KA,eAAO,MAAM,aAAa,4BAA4B,CAAC"}
1
+ {"version":3,"file":"edumalin-widget.widget.d.ts","sourceRoot":"","sources":["../../../../src/ts/widgets/edumalin-widget/edumalin-widget.widget.ts"],"names":[],"mappings":"AA8LA,eAAO,MAAM,aAAa,4BAA4B,CAAC"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- ode-ngjs-front 05/02/2024 10:48:03
1
+ ode-ngjs-front 14/02/2024 17:54:09
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunkode_ngjs_front=self.webpackChunkode_ngjs_front||[]).push([[447],{1891:(t,e,i)=>{i.d(e,{Z:()=>n});const n=' <div class="widget-dashboard"> <div class="widget-header" style="border:0"> <div class="subtitle"> <a rel="noopener" ng-click="ctrl.generateLinkGAR()" class="seemore"> <div class="row link-discret"> <div class="col-2"> <img src="/assets/widgets/edumalin-widget/edumalin.png" width="40" height="40" alt="edumalin"/> </div> <div class="col-2 subtitle mt-5"> <span><i18n>edumalin.title</i18n></span> </div> </div> </a> </div> <div class="widget-options"> <div class="widget-handle" title="Déplacer le widget"> <i class="fas fa-grip-vertical" aria-hidden="true"></i> </div> </div> </div> <div class="widget-body" dnd-nodrag> <div ng-if="!ctrl.isDataLoaded" class="widget-empty-message"> <div class="row row-cols-1 align-items-center"> <div class="mb-3"> <a href="http://edumalin.fr" target="_blank" rel="noopener" ng-click="trackEvent($event, {detail:{\'open\':\'edumalin\'} })"> <img src="/assets/widgets/edumalin-widget/edumalin.png" width="40" height="40" alt="edumalin"/> <i18n>edumalin.title</i18n> <span translate content="[[ctrl.error]]"></span> </a> </div> </div> </div> <ul class="dashboard-list" ng-if="ctrl.isDataLoaded"> <li class="item link-discret" ng-repeat="widget in ctrl.data" ng-click="ctrl.openLightBox(widget, $event)"> <a href="#" class="item-inner"> <div class="row"> <div class="col-3 mt-16"> <img ng-if="widget.picture" src="/assets/widgets/edumalin-widget/edumalin.png" width="60" height="100" alt="edumalin"/> <img ng-if="!widget.picture" src="widget.picture" width="40" height="40" alt="edumalin"/> </div> <div class="col-9"> <div class="subtitle" translate content="[[widget.title]]"></div> <div class="subtext" translate content="[[widget.description.slice(0, 80) + \' ...\']]"></div> <div class="info meta" ng-if="widget.type"> <i class="fas [[ctrl.displayIcon(widget.type.name)]]"></i> [[widget.type.name]] </div> </div> </div> </a> </li> </ul> </div> <ode-modal size="lg" visible="ctrl.showLightbox" on-close="ctrl.showLightbox=false" dnd-nodrag> <ode-modal-title> <span translate content="[[ctrl.currentWidget.title]]"></span> </ode-modal-title> <ode-modal-body> <div class="container"> <div class="row"> <div class="col-4"> <img ng-if="ctrl.currentWidget.picture" src="/assets/widgets/edumalin-widget/edumalin.png" width="200" height="200" alt="edumalin"/> <img ng-if="!ctrl.currentWidget.picture" src="widget.picture" width="100" height="100" alt="edumalin"/> </div> <div class="col-8"> <div class="label" translate content="[[ctrl.currentWidget.description]]"></div> <div class="mb-3 mt-12" ng-if="ctrl.isTypeRDV(ctrl.currentWidget.type.name)"> <a href="[[ctrl.currentWidget.googleMap]]" target="_blank" rel="noopener" ng-click="trackEvent($event, {detail:{\'open\':\'edumalin\'} })"> <div class="label"> <i class="fas [[ctrl.displayIcon(ctrl.currentWidget.type.name)]]"></i> <span translate content="[[ctrl.currentWidget.type.name]]"></span> </div> </a> </div> <div class="mb-3 mt-12" ng-if="!ctrl.isTypeRDV(ctrl.currentWidget.type.name)"> <div class="label"> <i class="fas [[ctrl.displayIcon(ctrl.currentWidget.type.name)]]"></i> <span translate content="[[ctrl.currentWidget.type.name]]"></span> <span ng-if="ctrl.isTypeWebinaire(ctrl.currentWidget.type.name)"> | Date: [[ctrl.dateFormat(ctrl.currentWidget.dateTime)]] | Duration: [[ctrl.currentWidget.duration]] min</span> </div> </div> </div> </div> <div ng-if="ctrl.isDataLoaded"> <div class="row"> <div class="col-5"></div> <div class="col-3"> <button type="button" class="btn btn-outline-primary form-control" ng-click="ctrl.generateLinkGAR()" translate content="edumalin.acceder"/> </div> <div class="col-4"> <button type="button" class="btn btn-primary form-control" ng-click="ctrl.onButtonClick(ctrl.currentWidget.buttonLink)" translate> {{ctrl.currentWidget.buttonTitle}} </button> </div> </div> </div> </div> </ode-modal-body> </ode-modal> </div> '},3691:function(t,e,i){var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(r,a){function l(t){try{o(n.next(t))}catch(t){a(t)}}function s(t){try{o(n.throw(t))}catch(t){a(t)}}function o(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(l,s)}o((n=n.apply(t,e||[])).next())}))},r=this&&this.__generator||function(t,e){var i,n,r,a,l={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(i)throw new TypeError("Generator is already executing.");for(;l;)try{if(i=1,n&&(r=2&a[0]?n.return:a[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,a[1])).done)return r;switch(n=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,n=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(r=l.trys,(r=r.length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){l=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){l.label=a[1];break}if(6===a[0]&&l.label<r[1]){l.label=r[1],r=a;break}if(r&&l.label<r[2]){l.label=r[2],l.ops.push(a);break}r[2]&&l.ops.pop(),l.trys.pop();continue}a=e.call(t,l)}catch(t){a=[6,t],n=0}finally{i=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}},a=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.odeModuleName=void 0;var l=a(i(4202)),s=i(9419),o=a(i(381)),c=function(){function t(){this.data={},this.error=null,this.showLightbox=!1,this.url="https://duckduckgo.com/ID_ETAB/ID_ENT"}return t.prototype.onButtonClick=function(t){window.open(t,"_blank")},Object.defineProperty(t.prototype,"isDataLoaded",{get:function(){return this.data.length>0},enumerable:!1,configurable:!0}),t.prototype.dateFormat=function(t){return o.default(t).format("L")},t.prototype.isTypeRDV=function(t){return"RDV"==t},t.prototype.isTypeWebinaire=function(t){return"Webinaire"==t},t.prototype.generateLinkGAR=function(){var t=this.url,e=s.session().user.externalId,i=s.session().user.structures,n=s.Base64.encode(null!=e?e:""),r=null!=i?i:[],a="";if(null!=r){for(var l=0;l<r.length;++l)if(r[l].startsWith("GAR-")){a=r[l].replace("GAR-","");break}""==a&&(a=r[0])}var o=s.Base64.encode(a);window.open(t.replace("ID_ETAB",n).replace("ID_ENT",o),"_blank")},t.prototype.displayIcon=function(t){switch(t){case"RDV":return"fa-calendar-alt";case"Webinaire":return"fa-video";case"Annonce":return"fa-bullhorn";case"Actualité":return"fa-newspaper";case"Temoignage":return"fa-microphone-lines";case"Podcast":return"fa-headset";case"Replay":return"fa-rotate-left";case"Tutoriel":return"fa-wand-magic-sparkles";default:return"fa-info"}},t.prototype.openLightBox=function(t,e){this.currentWidget=t,this.showLightbox=!0,e.currentTarget&&this.trackEvent(e,{detail:{properties:"any"}})},t.prototype.trackEvent=function(t,e){var i,n;void 0===e.bubbles&&(e.bubbles=!0);var r=null;!e||"string"!=typeof(null===(i=e.detail)||void 0===i?void 0:i.open)&&"string"!=typeof(null===(n=e.detail)||void 0===n?void 0:n.properties)||(r=new CustomEvent(s.TrackedActionFromWidget.carnetDeBord,e)),r&&t.currentTarget&&t.currentTarget.dispatchEvent(r)},t}(),d=function(){function t(){this.restrict="E",this.template=i(1891).Z,this.scope={},this.bindToController=!0,this.controller=[c],this.controllerAs="ctrl",this.require=["odeEdumalinWidget"]}return t.prototype.link=function(t,e,i,a){return n(this,void 0,void 0,(function(){var e;return r(this,(function(i){switch(i.label){case 0:return(e=a?a[0]:null)?[4,s.http().get("/appregistry/edumalin/widget").then((function(i){i.success?e.data=i.data:e.error=i.error,t.$apply()}))]:[2];case 1:return i.sent(),[2]}}))}))},t}();s.notif().onLangReady().promise.then((function(t){s.conf().Platform.idiom.addKeys(i(7918))})),e.odeModuleName="odeEdumalinWidgetModule",l.default.module(e.odeModuleName,[]).directive("odeEdumalinWidget",(function(){return new d}))},7918:t=>{t.exports=JSON.parse('{"edumalin.title":"Édumlain","edumalin.acceder":"Accéder à Édumlain"}')}}]);
1
+ "use strict";(self.webpackChunkode_ngjs_front=self.webpackChunkode_ngjs_front||[]).push([[447],{1891:(t,e,i)=>{i.d(e,{Z:()=>n});const n=' <div class="widget-dashboard"> <div class="widget-header" style="border:0"> <div class="subtitle"> <a rel="noopener" ng-click="ctrl.onButtonClick(ctrl.generateLinkGar())" class="seemore"> <div class="row link-discret"> <div class="col-2"> <img src="/assets/widgets/edumalin-widget/edumalin.png" width="40" height="40" alt="edumalin"/> </div> <div class="col-2 subtitle mt-5"> <span><i18n>edumalin.title</i18n></span> </div> </div> </a> </div> <div class="widget-options"> <div class="widget-handle" title="Déplacer le widget"> <i class="fas fa-grip-vertical" aria-hidden="true"></i> </div> </div> </div> <div class="widget-body" dnd-nodrag> <div ng-if="!ctrl.isDataLoaded" class="widget-empty-message"> <div class="row row-cols-1 align-items-center"> <div class="mb-3"> <div class="widget-empty-message" ng-if="ctrl.userEvents === undefined || ctrl.userEvents.length === 0"> <i18n>edumalin.empty</i18n> </div> </div> </div> </div> <ul class="dashboard-list" ng-if="ctrl.isDataLoaded"> <li class="item link-discret" ng-repeat="widget in ctrl.data" ng-click="ctrl.openLightBox(widget, $event)"> <a href="#" class="item-inner"> <div class="row"> <div class="col-3 mt-16"> <img ng-if="!ctrl.isURL(widget.picture)" src="/assets/widgets/edumalin-widget/edumalin.png" width="40" height="40" alt="edumalin"/> <img ng-if="ctrl.isURL(widget.picture)" skin-src="widget.picture" width="40" height="40" alt="edumalin"/> </div> <div class="col-9"> <div class="subtitle" translate content="[[widget.title]]"></div> <div class="subtext" translate ng-if="widget.description" content="[[widget.description.length>70 ? widget.description.slice(0, 70) + \' ...\' : widget.description]]"></div> <div class="info meta" ng-if="widget.type"> <i class="fas [[ctrl.displayIcon(widget.type.name)]]"></i> [[widget.type.name]] </div> </div> </div> </a> </li> </ul> </div> <ode-modal size="lg" visible="ctrl.showLightbox" on-close="ctrl.showLightbox=false" dnd-nodrag> <ode-modal-title> <span translate content="[[ctrl.currentWidget.title]]"></span> </ode-modal-title> <ode-modal-body> <div class="container"> <div class="row"> <div class="col-4"> <img ng-if="!ctrl.isURL(ctrl.currentWidget.picture)" src="/assets/widgets/edumalin-widget/edumalin.png" width="200" height="200" alt="edumalin"/> <img ng-if="ctrl.isURL(ctrl.currentWidget.picture)" skin-src="wctrl.currentWidget.picture" width="200" height="200" alt="edumalin"/> </div> <div class="col-8"> <div class="label" translate content="[[ctrl.currentWidget.description]]"></div> <div class="mb-3 mt-12" ng-if="ctrl.isTypeRDV(ctrl.currentWidget.type.name)"> <a href="[[ctrl.currentWidget.googleMap]]" target="_blank" rel="noopener" ng-click="trackEvent($event, {detail:{\'open\':\'edumalin\'} })"> <div class="label"> <i class="fas [[ctrl.displayIcon(ctrl.currentWidget.type.name)]]"></i> <span translate content="[[ctrl.currentWidget.type.name]]"></span> </div> </a> </div> <div class="mb-3 mt-12" ng-if="!ctrl.isTypeRDV(ctrl.currentWidget.type.name)"> <div class="label"> <i class="fas [[ctrl.displayIcon(ctrl.currentWidget.type.name)]]"></i> <span translate content="[[ctrl.currentWidget.type.name]]"></span> <span ng-if="ctrl.isTypeWebinaire(ctrl.currentWidget.type.name)"> | Date: [[ctrl.dateFormat(ctrl.currentWidget.dateTime)]] | Duration: [[ctrl.currentWidget.duration]] min</span> </div> </div> </div> </div> <div> <div class="row"> <div class="col-5"></div> <div class="col-3"> <button type="button" class="btn btn-outline-primary form-control" ng-click="ctrl.onButtonClick(ctrl.generateLinkGar())" translate content="edumalin.acceder"/> </div> <div class="col-4"> <button type="button" class="btn btn-primary form-control" ng-click="ctrl.onButtonClick(ctrl.currentWidget.buttonLink)" translate> {{ctrl.currentWidget.buttonTitle}} </button> </div> </div> </div> </div> </ode-modal-body> </ode-modal> </div> '},3691:function(t,e,i){var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(r,a){function l(t){try{o(n.next(t))}catch(t){a(t)}}function s(t){try{o(n.throw(t))}catch(t){a(t)}}function o(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(l,s)}o((n=n.apply(t,e||[])).next())}))},r=this&&this.__generator||function(t,e){var i,n,r,a,l={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(i)throw new TypeError("Generator is already executing.");for(;l;)try{if(i=1,n&&(r=2&a[0]?n.return:a[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,a[1])).done)return r;switch(n=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,n=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(r=l.trys,(r=r.length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){l=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){l.label=a[1];break}if(6===a[0]&&l.label<r[1]){l.label=r[1],r=a;break}if(r&&l.label<r[2]){l.label=r[2],l.ops.push(a);break}r[2]&&l.ops.pop(),l.trys.pop();continue}a=e.call(t,l)}catch(t){a=[6,t],n=0}finally{i=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}},a=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.odeModuleName=void 0;var l=a(i(4202)),s=i(9419),o=a(i(381)),c=function(){function t(){this.data={},this.error=null,this.showLightbox=!1,this.urlGar="https://idp-auth.gar.education.fr/domaineGar?idENT=ID_ENT&idEtab=ID_ETAB&idRessource=ark:/19496/UVdpWxn8N78r24"}return t.prototype.onButtonClick=function(t){window.open(t,"_blank")},Object.defineProperty(t.prototype,"isDataLoaded",{get:function(){return this.data.length>0},enumerable:!1,configurable:!0}),t.prototype.dateFormat=function(t){return o.default(t).format("L")},t.prototype.isTypeRDV=function(t){return"RDV"==t},t.prototype.isTypeWebinaire=function(t){return"Webinaire"==t},t.prototype.displayIcon=function(t){switch(t){case"RDV":return"fa-calendar-alt";case"Webinaire":return"fa-video";case"Annonce":return"fa-bullhorn";case"Actualité":return"fa-newspaper";case"Temoignage":return"fa-microphone-lines";case"Podcast":return"fa-headset";case"Replay":return"fa-rotate-left";case"Tutoriel":return"fa-wand-magic-sparkles";default:return"fa-info"}},t.prototype.openLightBox=function(t,e){this.currentWidget=t,this.showLightbox=!0,e.currentTarget&&this.trackEvent(e,{detail:{properties:"any"}})},t.prototype.isURL=function(t){return!!(t&&t.length>0&&(t.startsWith("http://")||t.startsWith("https://")))},t.prototype.generateLinkGar=function(){if(s.session().description&&s.session().description.schools&&s.session().description.schools.length>0){var t=s.session().description.schools[0],e=s.Base64.encode(null!=(null==t?void 0:t.UAI)?t.UAI:""),i=null!=t.exports?t.exports:[],n="";if(null!=i){for(var r=0;r<i.length;++r)if(i[r].startsWith("GAR-")){n=i[r].replace("GAR-","");break}""==n&&(n=i[0])}var a=s.Base64.encode(n);return this.urlGar.replace("ID_ETAB",e).replace("ID_ENT",a)}return"https://edumalin.fr/"},t.prototype.trackEvent=function(t,e){var i,n;void 0===e.bubbles&&(e.bubbles=!0);var r=null;!e||"string"!=typeof(null===(i=e.detail)||void 0===i?void 0:i.open)&&"string"!=typeof(null===(n=e.detail)||void 0===n?void 0:n.properties)||(r=new CustomEvent(s.TrackedActionFromWidget.edumalin,e)),r&&t.currentTarget&&t.currentTarget.dispatchEvent(r)},t}(),d=function(){function t(){this.restrict="E",this.template=i(1891).Z,this.scope={},this.bindToController=!0,this.controller=[c],this.controllerAs="ctrl",this.require=["odeEdumalinWidget"]}return t.prototype.link=function(t,e,i,a){return n(this,void 0,void 0,(function(){var e;return r(this,(function(i){switch(i.label){case 0:return(e=a?a[0]:null)?[4,s.http().get("/appregistry/edumalin/widget").then((function(i){i.success?(e.data=i.data,t.$apply()):e.error=i.error}))]:[2];case 1:return i.sent(),[2]}}))}))},t}();s.notif().onLangReady().promise.then((function(t){s.conf().Platform.idiom.addKeys(i(7918))})),e.odeModuleName="odeEdumalinWidgetModule",l.default.module(e.odeModuleName,[]).directive("odeEdumalinWidget",(function(){return new d}))},7918:t=>{t.exports=JSON.parse('{"edumalin.title":"Édumlain","edumalin.acceder":"Accéder à Édumlain","edumalin.empty":"Aucun résultat"}')}}]);
2
2
  //# sourceMappingURL=edumalin-widget.widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"widgets/edumalin-widget/edumalin-widget.widget.js","mappings":"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","sources":["webpack://ode-ngjs-front/./src/ts/widgets/edumalin-widget/edumalin-widget.widget.html","webpack://ode-ngjs-front/./src/ts/widgets/edumalin-widget/edumalin-widget.widget.ts"],"sourcesContent":["// Module\nvar code = \" <div class=\\\"widget-dashboard\\\"> <div class=\\\"widget-header\\\" style=\\\"border:0\\\"> <div class=\\\"subtitle\\\"> <a rel=\\\"noopener\\\" ng-click=\\\"ctrl.generateLinkGAR()\\\" class=\\\"seemore\\\"> <div class=\\\"row link-discret\\\"> <div class=\\\"col-2\\\"> <img src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"40\\\" height=\\\"40\\\" alt=\\\"edumalin\\\"/> </div> <div class=\\\"col-2 subtitle mt-5\\\"> <span><i18n>edumalin.title</i18n></span> </div> </div> </a> </div> <div class=\\\"widget-options\\\"> <div class=\\\"widget-handle\\\" title=\\\"Déplacer le widget\\\"> <i class=\\\"fas fa-grip-vertical\\\" aria-hidden=\\\"true\\\"></i> </div> </div> </div> <div class=\\\"widget-body\\\" dnd-nodrag> <div ng-if=\\\"!ctrl.isDataLoaded\\\" class=\\\"widget-empty-message\\\"> <div class=\\\"row row-cols-1 align-items-center\\\"> <div class=\\\"mb-3\\\"> <a href=\\\"http://edumalin.fr\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" ng-click=\\\"trackEvent($event, {detail:{'open':'edumalin'} })\\\"> <img src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"40\\\" height=\\\"40\\\" alt=\\\"edumalin\\\"/> <i18n>edumalin.title</i18n> <span translate content=\\\"[[ctrl.error]]\\\"></span> </a> </div> </div> </div> <ul class=\\\"dashboard-list\\\" ng-if=\\\"ctrl.isDataLoaded\\\"> <li class=\\\"item link-discret\\\" ng-repeat=\\\"widget in ctrl.data\\\" ng-click=\\\"ctrl.openLightBox(widget, $event)\\\"> <a href=\\\"#\\\" class=\\\"item-inner\\\"> <div class=\\\"row\\\"> <div class=\\\"col-3 mt-16\\\"> <img ng-if=\\\"widget.picture\\\" src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"60\\\" height=\\\"100\\\" alt=\\\"edumalin\\\"/> <img ng-if=\\\"!widget.picture\\\" src=\\\"widget.picture\\\" width=\\\"40\\\" height=\\\"40\\\" alt=\\\"edumalin\\\"/> </div> <div class=\\\"col-9\\\"> <div class=\\\"subtitle\\\" translate content=\\\"[[widget.title]]\\\"></div> <div class=\\\"subtext\\\" translate content=\\\"[[widget.description.slice(0, 80) + ' ...']]\\\"></div> <div class=\\\"info meta\\\" ng-if=\\\"widget.type\\\"> <i class=\\\"fas [[ctrl.displayIcon(widget.type.name)]]\\\"></i> [[widget.type.name]] </div> </div> </div> </a> </li> </ul> </div> <ode-modal size=\\\"lg\\\" visible=\\\"ctrl.showLightbox\\\" on-close=\\\"ctrl.showLightbox=false\\\" dnd-nodrag> <ode-modal-title> <span translate content=\\\"[[ctrl.currentWidget.title]]\\\"></span> </ode-modal-title> <ode-modal-body> <div class=\\\"container\\\"> <div class=\\\"row\\\"> <div class=\\\"col-4\\\"> <img ng-if=\\\"ctrl.currentWidget.picture\\\" src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"200\\\" height=\\\"200\\\" alt=\\\"edumalin\\\"/> <img ng-if=\\\"!ctrl.currentWidget.picture\\\" src=\\\"widget.picture\\\" width=\\\"100\\\" height=\\\"100\\\" alt=\\\"edumalin\\\"/> </div> <div class=\\\"col-8\\\"> <div class=\\\"label\\\" translate content=\\\"[[ctrl.currentWidget.description]]\\\"></div> <div class=\\\"mb-3 mt-12\\\" ng-if=\\\"ctrl.isTypeRDV(ctrl.currentWidget.type.name)\\\"> <a href=\\\"[[ctrl.currentWidget.googleMap]]\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" ng-click=\\\"trackEvent($event, {detail:{'open':'edumalin'} })\\\"> <div class=\\\"label\\\"> <i class=\\\"fas [[ctrl.displayIcon(ctrl.currentWidget.type.name)]]\\\"></i> <span translate content=\\\"[[ctrl.currentWidget.type.name]]\\\"></span> </div> </a> </div> <div class=\\\"mb-3 mt-12\\\" ng-if=\\\"!ctrl.isTypeRDV(ctrl.currentWidget.type.name)\\\"> <div class=\\\"label\\\"> <i class=\\\"fas [[ctrl.displayIcon(ctrl.currentWidget.type.name)]]\\\"></i> <span translate content=\\\"[[ctrl.currentWidget.type.name]]\\\"></span> <span ng-if=\\\"ctrl.isTypeWebinaire(ctrl.currentWidget.type.name)\\\"> | Date: [[ctrl.dateFormat(ctrl.currentWidget.dateTime)]] | Duration: [[ctrl.currentWidget.duration]] min</span> </div> </div> </div> </div> <div ng-if=\\\"ctrl.isDataLoaded\\\"> <div class=\\\"row\\\"> <div class=\\\"col-5\\\"></div> <div class=\\\"col-3\\\"> <button type=\\\"button\\\" class=\\\"btn btn-outline-primary form-control\\\" ng-click=\\\"ctrl.generateLinkGAR()\\\" translate content=\\\"edumalin.acceder\\\"/> </div> <div class=\\\"col-4\\\"> <button type=\\\"button\\\" class=\\\"btn btn-primary form-control\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.currentWidget.buttonLink)\\\" translate> {{ctrl.currentWidget.buttonTitle}} </button> </div> </div> </div> </div> </ode-modal-body> </ode-modal> </div> \";\n// Exports\nexport default code;","import angular, { IAttributes, IController, IDirective, IScope } from \"angular\";\nimport {\n conf,\n notif,\n http,\n TrackedAction,\n TrackedActionFromWidget,\n Base64,\n session,\n} from \"../../utils\";\nimport moment from \"moment\"; // FIXME : should we use moment anymore ?\n\nclass Controller implements IController {\n data: any = {};\n error: any = null;\n public currentWidget: any;\n public showLightbox = false;\n url: string = \"https://duckduckgo.com/ID_ETAB/ID_ENT\";\n\n onButtonClick(link: string) {\n window.open(link, \"_blank\");\n }\n\n protected get isDataLoaded() {\n return this.data.length > 0;\n }\n\n dateFormat(dateTime: any) {\n let date = moment(dateTime).format(\"L\");\n return date;\n }\n\n isTypeRDV(type: any) {\n return type == \"RDV\";\n }\n\n isTypeWebinaire(type: any) {\n return type == \"Webinaire\";\n }\n\n generateLinkGAR() {\n let urlBase: string = this.url;\n let externalId: string = session().user.externalId;\n let structures: string[] = session().user.structures;\n\n let UAIb64: string = Base64.encode(externalId != null ? externalId : \"\");\n let exports: string[] = structures != null ? structures : [];\n let codeGar = \"\";\n if (exports != null) {\n for (let i = 0; i < exports.length; ++i)\n if (exports[i].startsWith(\"GAR-\")) {\n codeGar = exports[i].replace(\"GAR-\", \"\");\n break;\n }\n if (codeGar == \"\") codeGar = exports[0];\n }\n let codeGARb64 = Base64.encode(codeGar);\n\n window.open(\n urlBase.replace(\"ID_ETAB\", UAIb64).replace(\"ID_ENT\", codeGARb64),\n \"_blank\"\n );\n }\n\n displayIcon(type: any) {\n switch (type) {\n case \"RDV\":\n return \"fa-calendar-alt\";\n case \"Webinaire\":\n return \"fa-video\";\n case \"Annonce\":\n return \"fa-bullhorn\";\n case \"Actualité\":\n return \"fa-newspaper\";\n case \"Temoignage\":\n return \"fa-microphone-lines\";\n case \"Podcast\":\n return \"fa-headset\";\n case \"Replay\":\n return \"fa-rotate-left\";\n case \"Tutoriel\":\n return \"fa-wand-magic-sparkles\";\n default:\n return \"fa-info\";\n }\n }\n\n openLightBox(contentType: any, e: Event) {\n this.currentWidget = contentType;\n this.showLightbox = true;\n\n // Track this event.\n if (e.currentTarget) {\n this.trackEvent(e, { detail: { properties: \"any\" } });\n }\n }\n\n // Give an opportunity to track some events from outside of this component.\n protected trackEvent(e: Event, p: CustomEventInit<TrackedAction>) {\n // Allow events to bubble up.\n if (typeof p.bubbles === \"undefined\") p.bubbles = true;\n\n let event = null;\n if (\n p &&\n (typeof p.detail?.open === \"string\" ||\n typeof p.detail?.properties === \"string\")\n ) {\n event = new CustomEvent(TrackedActionFromWidget.carnetDeBord, p);\n }\n if (event && e.currentTarget) {\n e.currentTarget.dispatchEvent(event);\n }\n }\n}\n\n/* Directive */\n/* Directive */\nclass Directive\n implements IDirective<IScope, JQLite, IAttributes, IController[]>\n{\n restrict = \"E\";\n template = require(\"./edumalin-widget.widget.html\").default;\n scope = {};\n bindToController = true;\n controller = [Controller];\n controllerAs = \"ctrl\";\n require = [\"odeEdumalinWidget\"];\n\n async link(\n scope: IScope,\n elem: JQLite,\n attrs: IAttributes,\n controllers?: IController[]\n ) {\n const ctrl: Controller | null = controllers\n ? (controllers[0] as Controller)\n : null;\n if (!ctrl) {\n return;\n }\n\n await http()\n .get(\"/appregistry/edumalin/widget\")\n .then((response) => {\n if (response.success) {\n ctrl.data = response.data;\n } else {\n ctrl.error = response.error;\n }\n scope.$apply();\n });\n }\n}\n\n/** The edumalin widget. */\nfunction DirectiveFactory() {\n return new Directive();\n}\n\n// Preload translations\nnotif()\n .onLangReady()\n .promise.then((lang) => {\n switch (lang) {\n default:\n conf().Platform.idiom.addKeys(require(\"./i18n/fr.json\"));\n break;\n }\n });\n\n// THIS ANGULAR MODULE WILL BE DYNAMICALLY ADDED TO THE APPLICATION.\n// RESPECT THE NAMING CONVENTION BY EXPORTING THE MODULE NAME :\nexport const odeModuleName = \"odeEdumalinWidgetModule\";\nangular\n .module(odeModuleName, [])\n .directive(\"odeEdumalinWidget\", DirectiveFactory);\n"],"names":["data","error","showLightbox","url","onButtonClick","link","window","open","this","length","dateFormat","dateTime","format","isTypeRDV","type","isTypeWebinaire","generateLinkGAR","urlBase","externalId","session","user","structures","UAIb64","Base64","encode","exports","codeGar","i","startsWith","replace","codeGARb64","displayIcon","openLightBox","contentType","e","currentWidget","currentTarget","trackEvent","detail","properties","p","bubbles","event","CustomEvent","TrackedActionFromWidget","carnetDeBord","dispatchEvent","restrict","template","scope","bindToController","controller","Controller","controllerAs","require","elem","attrs","controllers","ctrl","http","get","then","response","success","$apply","notif","onLangReady","promise","lang","conf","Platform","idiom","addKeys","odeModuleName","module","directive","Directive"],"sourceRoot":""}
1
+ {"version":3,"file":"widgets/edumalin-widget/edumalin-widget.widget.js","mappings":"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","sources":["webpack://ode-ngjs-front/./src/ts/widgets/edumalin-widget/edumalin-widget.widget.html","webpack://ode-ngjs-front/./src/ts/widgets/edumalin-widget/edumalin-widget.widget.ts"],"sourcesContent":["// Module\nvar code = \" <div class=\\\"widget-dashboard\\\"> <div class=\\\"widget-header\\\" style=\\\"border:0\\\"> <div class=\\\"subtitle\\\"> <a rel=\\\"noopener\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.generateLinkGar())\\\" class=\\\"seemore\\\"> <div class=\\\"row link-discret\\\"> <div class=\\\"col-2\\\"> <img src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"40\\\" height=\\\"40\\\" alt=\\\"edumalin\\\"/> </div> <div class=\\\"col-2 subtitle mt-5\\\"> <span><i18n>edumalin.title</i18n></span> </div> </div> </a> </div> <div class=\\\"widget-options\\\"> <div class=\\\"widget-handle\\\" title=\\\"Déplacer le widget\\\"> <i class=\\\"fas fa-grip-vertical\\\" aria-hidden=\\\"true\\\"></i> </div> </div> </div> <div class=\\\"widget-body\\\" dnd-nodrag> <div ng-if=\\\"!ctrl.isDataLoaded\\\" class=\\\"widget-empty-message\\\"> <div class=\\\"row row-cols-1 align-items-center\\\"> <div class=\\\"mb-3\\\"> <div class=\\\"widget-empty-message\\\" ng-if=\\\"ctrl.userEvents === undefined || ctrl.userEvents.length === 0\\\"> <i18n>edumalin.empty</i18n> </div> </div> </div> </div> <ul class=\\\"dashboard-list\\\" ng-if=\\\"ctrl.isDataLoaded\\\"> <li class=\\\"item link-discret\\\" ng-repeat=\\\"widget in ctrl.data\\\" ng-click=\\\"ctrl.openLightBox(widget, $event)\\\"> <a href=\\\"#\\\" class=\\\"item-inner\\\"> <div class=\\\"row\\\"> <div class=\\\"col-3 mt-16\\\"> <img ng-if=\\\"!ctrl.isURL(widget.picture)\\\" src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"40\\\" height=\\\"40\\\" alt=\\\"edumalin\\\"/> <img ng-if=\\\"ctrl.isURL(widget.picture)\\\" skin-src=\\\"widget.picture\\\" width=\\\"40\\\" height=\\\"40\\\" alt=\\\"edumalin\\\"/> </div> <div class=\\\"col-9\\\"> <div class=\\\"subtitle\\\" translate content=\\\"[[widget.title]]\\\"></div> <div class=\\\"subtext\\\" translate ng-if=\\\"widget.description\\\" content=\\\"[[widget.description.length>70 ? widget.description.slice(0, 70) + ' ...' : widget.description]]\\\"></div> <div class=\\\"info meta\\\" ng-if=\\\"widget.type\\\"> <i class=\\\"fas [[ctrl.displayIcon(widget.type.name)]]\\\"></i> [[widget.type.name]] </div> </div> </div> </a> </li> </ul> </div> <ode-modal size=\\\"lg\\\" visible=\\\"ctrl.showLightbox\\\" on-close=\\\"ctrl.showLightbox=false\\\" dnd-nodrag> <ode-modal-title> <span translate content=\\\"[[ctrl.currentWidget.title]]\\\"></span> </ode-modal-title> <ode-modal-body> <div class=\\\"container\\\"> <div class=\\\"row\\\"> <div class=\\\"col-4\\\"> <img ng-if=\\\"!ctrl.isURL(ctrl.currentWidget.picture)\\\" src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"200\\\" height=\\\"200\\\" alt=\\\"edumalin\\\"/> <img ng-if=\\\"ctrl.isURL(ctrl.currentWidget.picture)\\\" skin-src=\\\"wctrl.currentWidget.picture\\\" width=\\\"200\\\" height=\\\"200\\\" alt=\\\"edumalin\\\"/> </div> <div class=\\\"col-8\\\"> <div class=\\\"label\\\" translate content=\\\"[[ctrl.currentWidget.description]]\\\"></div> <div class=\\\"mb-3 mt-12\\\" ng-if=\\\"ctrl.isTypeRDV(ctrl.currentWidget.type.name)\\\"> <a href=\\\"[[ctrl.currentWidget.googleMap]]\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" ng-click=\\\"trackEvent($event, {detail:{'open':'edumalin'} })\\\"> <div class=\\\"label\\\"> <i class=\\\"fas [[ctrl.displayIcon(ctrl.currentWidget.type.name)]]\\\"></i> <span translate content=\\\"[[ctrl.currentWidget.type.name]]\\\"></span> </div> </a> </div> <div class=\\\"mb-3 mt-12\\\" ng-if=\\\"!ctrl.isTypeRDV(ctrl.currentWidget.type.name)\\\"> <div class=\\\"label\\\"> <i class=\\\"fas [[ctrl.displayIcon(ctrl.currentWidget.type.name)]]\\\"></i> <span translate content=\\\"[[ctrl.currentWidget.type.name]]\\\"></span> <span ng-if=\\\"ctrl.isTypeWebinaire(ctrl.currentWidget.type.name)\\\"> | Date: [[ctrl.dateFormat(ctrl.currentWidget.dateTime)]] | Duration: [[ctrl.currentWidget.duration]] min</span> </div> </div> </div> </div> <div> <div class=\\\"row\\\"> <div class=\\\"col-5\\\"></div> <div class=\\\"col-3\\\"> <button type=\\\"button\\\" class=\\\"btn btn-outline-primary form-control\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.generateLinkGar())\\\" translate content=\\\"edumalin.acceder\\\"/> </div> <div class=\\\"col-4\\\"> <button type=\\\"button\\\" class=\\\"btn btn-primary form-control\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.currentWidget.buttonLink)\\\" translate> {{ctrl.currentWidget.buttonTitle}} </button> </div> </div> </div> </div> </ode-modal-body> </ode-modal> </div> \";\n// Exports\nexport default code;","import angular, { IAttributes, IController, IDirective, IScope } from \"angular\";\nimport {\n conf,\n notif,\n http,\n TrackedAction,\n TrackedActionFromWidget,\n session,\n Base64,\n} from \"../../utils\";\nimport moment from \"moment\"; // FIXME : should we use moment anymore ?\n\nclass Controller implements IController {\n data: any = {};\n error: any = null;\n public currentWidget: any;\n public showLightbox = false;\n\n urlGar: string =\n \"https://idp-auth.gar.education.fr/domaineGar?idENT=ID_ENT&idEtab=ID_ETAB&idRessource=ark:/19496/UVdpWxn8N78r24\";\n\n onButtonClick(link: string) {\n window.open(link, \"_blank\");\n }\n\n protected get isDataLoaded() {\n return this.data.length > 0;\n }\n\n dateFormat(dateTime: any) {\n let date = moment(dateTime).format(\"L\");\n return date;\n }\n\n isTypeRDV(type: any) {\n return type == \"RDV\";\n }\n\n isTypeWebinaire(type: any) {\n return type == \"Webinaire\";\n }\n\n displayIcon(type: any) {\n switch (type) {\n case \"RDV\":\n return \"fa-calendar-alt\";\n case \"Webinaire\":\n return \"fa-video\";\n case \"Annonce\":\n return \"fa-bullhorn\";\n case \"Actualité\":\n return \"fa-newspaper\";\n case \"Temoignage\":\n return \"fa-microphone-lines\";\n case \"Podcast\":\n return \"fa-headset\";\n case \"Replay\":\n return \"fa-rotate-left\";\n case \"Tutoriel\":\n return \"fa-wand-magic-sparkles\";\n default:\n return \"fa-info\";\n }\n }\n\n openLightBox(contentType: any, e: Event) {\n this.currentWidget = contentType;\n this.showLightbox = true;\n\n // Track this event.\n if (e.currentTarget) {\n this.trackEvent(e, { detail: { properties: \"any\" } });\n }\n }\n\n isURL(str: String) {\n if (\n str &&\n str.length > 0 &&\n (str.startsWith(\"http://\") || str.startsWith(\"https://\"))\n ) {\n return true;\n }\n return false;\n }\n\n generateLinkGar() {\n if (\n session().description &&\n session().description.schools &&\n session().description.schools.length > 0\n ) {\n let school = session().description.schools[0];\n let UAIb64: string = Base64.encode(school?.UAI != null ? school.UAI : \"\");\n let exports: string[] = school.exports != null ? school.exports : [];\n let codeGar = \"\";\n if (exports != null) {\n for (let i = 0; i < exports.length; ++i)\n if (exports[i].startsWith(\"GAR-\")) {\n codeGar = exports[i].replace(\"GAR-\", \"\");\n break;\n }\n if (codeGar == \"\") codeGar = exports[0];\n }\n let codeGARb64 = Base64.encode(codeGar);\n\n return this.urlGar\n .replace(\"ID_ETAB\", UAIb64)\n .replace(\"ID_ENT\", codeGARb64);\n }\n\n return \"https://edumalin.fr/\";\n }\n\n // Give an opportunity to track some events from outside of this component.\n protected trackEvent(e: Event, p: CustomEventInit<TrackedAction>) {\n // Allow events to bubble up.\n if (typeof p.bubbles === \"undefined\") p.bubbles = true;\n\n let event = null;\n if (\n p &&\n (typeof p.detail?.open === \"string\" ||\n typeof p.detail?.properties === \"string\")\n ) {\n event = new CustomEvent(TrackedActionFromWidget.edumalin, p);\n }\n if (event && e.currentTarget) {\n e.currentTarget.dispatchEvent(event);\n }\n }\n}\n\n/* Directive */\n/* Directive */\nclass Directive\n implements IDirective<IScope, JQLite, IAttributes, IController[]>\n{\n restrict = \"E\";\n template = require(\"./edumalin-widget.widget.html\").default;\n scope = {};\n bindToController = true;\n controller = [Controller];\n controllerAs = \"ctrl\";\n require = [\"odeEdumalinWidget\"];\n\n async link(\n scope: IScope,\n elem: JQLite,\n attrs: IAttributes,\n controllers?: IController[]\n ) {\n const ctrl: Controller | null = controllers\n ? (controllers[0] as Controller)\n : null;\n if (!ctrl) {\n return;\n }\n\n await http()\n .get(\"/appregistry/edumalin/widget\")\n .then((response) => {\n if (response.success) {\n ctrl.data = response.data;\n scope.$apply();\n } else {\n ctrl.error = response.error;\n }\n });\n }\n}\n\n/** The edumalin widget. */\nfunction DirectiveFactory() {\n return new Directive();\n}\n\n// Preload translations\nnotif()\n .onLangReady()\n .promise.then((lang) => {\n switch (lang) {\n default:\n conf().Platform.idiom.addKeys(require(\"./i18n/fr.json\"));\n break;\n }\n });\n\n// THIS ANGULAR MODULE WILL BE DYNAMICALLY ADDED TO THE APPLICATION.\n// RESPECT THE NAMING CONVENTION BY EXPORTING THE MODULE NAME :\nexport const odeModuleName = \"odeEdumalinWidgetModule\";\nangular\n .module(odeModuleName, [])\n .directive(\"odeEdumalinWidget\", DirectiveFactory);\n"],"names":["data","error","showLightbox","urlGar","onButtonClick","link","window","open","this","length","dateFormat","dateTime","format","isTypeRDV","type","isTypeWebinaire","displayIcon","openLightBox","contentType","e","currentWidget","currentTarget","trackEvent","detail","properties","isURL","str","startsWith","generateLinkGar","session","description","schools","school","UAIb64","Base64","encode","UAI","exports","codeGar","i","replace","codeGARb64","p","bubbles","event","CustomEvent","TrackedActionFromWidget","edumalin","dispatchEvent","restrict","template","scope","bindToController","controller","Controller","controllerAs","require","elem","attrs","controllers","ctrl","http","get","then","response","success","$apply","notif","onLangReady","promise","lang","conf","Platform","idiom","addKeys","odeModuleName","module","directive","Directive"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ode-ngjs-front",
3
- "version": "1.3.4-dev-integration.202402051047",
3
+ "version": "1.3.4-dev-integration.202402141753",
4
4
  "description": "Open Digital Education Frontend Framework",
5
5
  "main": "dist/ts/index.js",
6
6
  "types": "dist/ts/index.d.ts",