ode-ngjs-front 1.4.1 → 1.4.3-dev.202405241104
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/ode-ngjs-front.js +4 -4
- package/dist/ode-ngjs-front.js.map +1 -1
- package/dist/ts/directives/business/portal/portal.directive.d.ts +1 -0
- package/dist/ts/directives/business/portal/portal.directive.d.ts.map +1 -1
- package/dist/ts/directives/index.d.ts +0 -1
- package/dist/ts/directives/index.d.ts.map +1 -1
- package/dist/ts/modules/ui.module.d.ts.map +1 -1
- package/dist/version.txt +1 -1
- package/dist/widgets/edumalin-widget/edumalin-widget.widget.js +1 -1
- package/dist/widgets/edumalin-widget/edumalin-widget.widget.js.map +1 -1
- package/package.json +2 -2
- package/dist/ts/directives/business/portal/help.directive.d.ts +0 -17
- package/dist/ts/directives/business/portal/help.directive.d.ts.map +0 -1
|
@@ -23,6 +23,7 @@ declare class Directive implements IDirective<PortalScope, JQLite, IAttributes,
|
|
|
23
23
|
name: string;
|
|
24
24
|
};
|
|
25
25
|
link(scope: PortalScope, elem: JQLite, attrs: IAttributes): void;
|
|
26
|
+
private addZendeskGuideWedget;
|
|
26
27
|
constructor(tracking: TrackingService);
|
|
27
28
|
}
|
|
28
29
|
/** The portal directive.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.directive.d.ts","sourceRoot":"","sources":["../../../../../src/ts/directives/business/portal/portal.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,GAAG,EAAc,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,WAAY,SAAQ,MAAM;IACnC,GAAG,CAAC,EAAC,GAAG,CAAC;IACT,IAAI,EAAC,MAAM,CAAC;IAEZ,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAC;QACH,WAAW,CAAC,KAAK,EAAC,MAAM,GAAE,OAAO,CAAC;KAClC,CAAC;CACF;AAGD,cAAM,SAAU,YAAW,UAAU,CAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"portal.directive.d.ts","sourceRoot":"","sources":["../../../../../src/ts/directives/business/portal/portal.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,GAAG,EAAc,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,WAAY,SAAQ,MAAM;IACnC,GAAG,CAAC,EAAC,GAAG,CAAC;IACT,IAAI,EAAC,MAAM,CAAC;IAEZ,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAC;QACH,WAAW,CAAC,KAAK,EAAC,MAAM,GAAE,OAAO,CAAC;KAClC,CAAC;CACF;AAGD,cAAM,SAAU,YAAW,UAAU,CAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,WAAW,EAAE,CAAC;IAqKtE,OAAO,CAAC,QAAQ;IApKzB,QAAQ,SAAO;IAClB,UAAU;;MAEL;IACL,WAAW,CAAC,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,WAAW;IAI7C,KAAK;;;MAGH;IAEF,IAAI,CAAC,KAAK,EAAC,WAAW,EAAE,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,WAAW;IAuDtD,OAAO,CAAC,qBAAqB;gBAgGT,QAAQ,EAAC,eAAe;CAE5C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAC,eAAe,aAExD;yBAFe,gBAAgB"}
|
|
@@ -22,7 +22,6 @@ export * as PopoverOpener from './components/popover/popover-opener.directive';
|
|
|
22
22
|
export * as Lightbox from './components/modal/lightbox.directive';
|
|
23
23
|
export * as ConnectorLightbox from './business/portal/connector-lightbox.directive';
|
|
24
24
|
export * as SmartBanner from './business/portal/smart-banner.directive';
|
|
25
|
-
export * as Help from './business/portal/help.directive';
|
|
26
25
|
export * as Autocomplete from './components/autocomplete/autocomplete.directive';
|
|
27
26
|
export * as BindHtml from './business/media/bind-html.directive';
|
|
28
27
|
export * as Xiti from './business/portal/xiti.directive';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ts/directives/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,oCAAoC,CAAC;AAC5D,OAAO,KAAK,cAAc,MAAM,8CAA8C,CAAC;AAK/E,OAAO,KAAK,SAAS,MAAM,uCAAuC,CAAC;AACnE,OAAO,KAAK,IAAI,MAAM,kCAAkC,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,8CAA8C,CAAC;AAChF,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAE5D,OAAO,KAAK,iBAAiB,MAAM,sDAAsD,CAAC;AAC1F,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,UAAU,MAAM,+CAA+C,CAAC;AAC5E,OAAO,KAAK,UAAU,MAAM,+CAA+C,CAAC;AAC5E,OAAO,KAAK,aAAa,MAAM,kDAAkD,CAAC;AAClF,OAAO,KAAK,WAAW,MAAM,gDAAgD,CAAC;AAC9E,OAAO,KAAK,UAAU,MAAM,+CAA+C,CAAC;AAE5E,OAAO,KAAK,QAAQ,MAAM,4CAA4C,CAAC;AACvE,OAAO,KAAK,SAAS,MAAM,yCAAyC,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAC;AAC/D,OAAO,KAAK,OAAO,MAAM,wCAAwC,CAAC;AAClE,OAAO,KAAK,cAAc,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,aAAa,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAC;AAClE,OAAO,KAAK,iBAAiB,MAAM,gDAAgD,CAAC;AACpF,OAAO,KAAK,WAAW,MAAM,0CAA0C,CAAC;AACxE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ts/directives/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,oCAAoC,CAAC;AAC5D,OAAO,KAAK,cAAc,MAAM,8CAA8C,CAAC;AAK/E,OAAO,KAAK,SAAS,MAAM,uCAAuC,CAAC;AACnE,OAAO,KAAK,IAAI,MAAM,kCAAkC,CAAC;AACzD,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,8CAA8C,CAAC;AAChF,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAE5D,OAAO,KAAK,iBAAiB,MAAM,sDAAsD,CAAC;AAC1F,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,UAAU,MAAM,+CAA+C,CAAC;AAC5E,OAAO,KAAK,UAAU,MAAM,+CAA+C,CAAC;AAC5E,OAAO,KAAK,aAAa,MAAM,kDAAkD,CAAC;AAClF,OAAO,KAAK,WAAW,MAAM,gDAAgD,CAAC;AAC9E,OAAO,KAAK,UAAU,MAAM,+CAA+C,CAAC;AAE5E,OAAO,KAAK,QAAQ,MAAM,4CAA4C,CAAC;AACvE,OAAO,KAAK,SAAS,MAAM,yCAAyC,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAC;AAC/D,OAAO,KAAK,OAAO,MAAM,wCAAwC,CAAC;AAClE,OAAO,KAAK,cAAc,MAAM,gDAAgD,CAAC;AACjF,OAAO,KAAK,aAAa,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAC;AAClE,OAAO,KAAK,iBAAiB,MAAM,gDAAgD,CAAC;AACpF,OAAO,KAAK,WAAW,MAAM,0CAA0C,CAAC;AACxE,OAAO,KAAK,YAAY,MAAM,kDAAkD,CAAC;AACjF,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAC;AACjE,OAAO,KAAK,IAAI,MAAM,kCAAkC,CAAC;AAGzD,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,uCAAuC,CAAC;AACnE,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAC;AAC7D,OAAO,KAAK,OAAO,MAAM,sCAAsC,CAAC;AAChE,OAAO,KAAK,QAAQ,MAAM,qCAAqC,CAAA;AAC/D,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.module.d.ts","sourceRoot":"","sources":["../../../src/ts/modules/ui.module.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQ3C;;GAEG;AACF,wBAAgB,WAAW,IAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"ui.module.d.ts","sourceRoot":"","sources":["../../../src/ts/modules/ui.module.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQ3C;;GAEG;AACF,wBAAgB,WAAW,IAAG,OAAO,CA8CpC"}
|
package/dist/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ode-ngjs-front
|
|
1
|
+
ode-ngjs-front 24/05/2024 11:05:17
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkode_ngjs_front=self.webpackChunkode_ngjs_front||[]).push([[447],{1891:(t,e,
|
|
1
|
+
"use strict";(self.webpackChunkode_ngjs_front=self.webpackChunkode_ngjs_front||[]).push([[447],{1891:(t,e,n)=>{n.d(e,{Z:()=>i});const i=' <style>.widget-dashboard .dashboard-list .item:nth-child(2n){background:#fafafa}</style> <div class="widget-dashboard"> <div class="widget-header" style="border:0"> <div class="subtitle"> <a class="seemore" href="#" ng-click="ctrl.onButtonClick(ctrl.generateLinkGar(), \'EDUMALIN_OPEN_GAR\')" style="display:flex"> <img src="/assets/widgets/edumalin-widget/edumalin.png" width="40" height="40" alt="edumalin"/> <span style="padding-left:20px"><i18n>edumalin.title</i18n></span> </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" class="m-auto"/> <img ng-if="ctrl.isURL(widget.picture)" ng-src="{{ctrl.encodeUrlPicture(widget.picture)}}" width="60" height="60" alt="edumalin" class="m-auto"/> </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-style="{\'color\': ctrl.displayIconColor(widget.type.name)}" 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 visible="ctrl.showLightbox" on-close="ctrl.showLightbox=false" size="lg" class="modal-widget"> <ode-modal-title> <h2 translate content="[[ctrl.currentWidget.title]]"></h2> </ode-modal-title> <ode-modal-body> <div class="container"> <div class="row"> <div class="col-md-4 col-sm-12"> <img ng-if="!ctrl.isURL(ctrl.currentWidget.picture)" src="/assets/widgets/edumalin-widget/edumalin.png" width="200" height="200" alt="edumalin" class="m-auto"/> <img ng-if="ctrl.isURL(ctrl.currentWidget.picture)" ng-src="{{ctrl.encodeUrlPicture(ctrl.currentWidget.picture)}}" width="200" height="200" alt="edumalin" class="m-auto"/> </div> <div class="col-md-8 col-sm-12"> <div class="label" translate content="[[ctrl.currentWidget.description]]"></div> <div class="mb-3 mt-12" ng-if="ctrl.isTypeRDV(ctrl.currentWidget.type.name)" ng-style="{\'color\': ctrl.displayIconColor(ctrl.currentWidget.type.name)}"> <a href="[[ctrl.currentWidget.googleMap]]" target="_blank" rel="noopener"> <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)]]" ng-style="{\'color\': ctrl.displayIconColor(ctrl.currentWidget.type.name)}"></i> <span translate content="[[ctrl.currentWidget.type.name]]" ng-style="{\'color\': ctrl.displayIconColor(ctrl.currentWidget.type.name)}"></span> <span ng-if="ctrl.isTypeWebinaire(ctrl.currentWidget.type.name)"> | <i18n>edumalin.webinaire.date</i18n>: [[ctrl.dateFormat(ctrl.currentWidget.dateTime)]] | <i18n>edumalin.webinaire.duration</i18n>: [[ctrl.currentWidget.duration]] min</span> </div> </div> </div> </div> </div> <div class="d-flex justify-content-end"> <button type="button" class="btn btn-outline-primary ng-binding ng-scope" ng-click="ctrl.onButtonClick(ctrl.generateLinkGar(), \'EDUMALIN_OPEN_GAR\')" style="margin-right:1%" translate content="edumalin.acceder"/> <button ng-if="ctrl.currentWidget.buttonLink" type="button" class="btn btn-primary ng-binding ng-scope" ng-click="ctrl.onButtonClick(ctrl.currentWidget.buttonLink, \'EDUMALIN_OPEN_LINK\')" translate> {{ctrl.currentWidget.buttonTitle}} </button> </div> </ode-modal-body> </ode-modal> </div> '},3691:function(t,e,n){var i=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,a){function l(t){try{c(i.next(t))}catch(t){a(t)}}function s(t){try{c(i.throw(t))}catch(t){a(t)}}function c(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(l,s)}c((i=i.apply(t,e||[])).next())}))},r=this&&this.__generator||function(t,e){var n,i,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(n)throw new TypeError("Generator is already executing.");for(;l;)try{if(n=1,i&&(r=2&a[0]?i.return:a[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,a[1])).done)return r;switch(i=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++,i=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],i=0}finally{n=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(n(4202)),s=n(9419),c=a(n(381)),o=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,e){e&&e.length>0&&this.trackEvent(e),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 c.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.displayIconColor=function(t){switch(t){case"RDV":return"#2a9cc8";case"Webinaire":return"#20c997";case"Annonce":return"#E13A3A";case"Actualité":return"#FF8D2E";case"Temoignage":return"#2029B6";case"Podcast":return"#823AA1";case"Replay":return"#46BFAF";case"Tutoriel":return"#ecbe30";default:return"#f59700"}},t.prototype.openLightBox=function(t,e){this.currentWidget=t,this.showLightbox=!0,e.currentTarget&&this.trackEvent("EDUMALIN_OPEN_MODAL")},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:""),n=null!=t.exports?t.exports:[],i="";if(null!=n){for(var r=0;r<n.length;++r)if(n[r].startsWith("GAR-")){i=n[r].replace("GAR-","");break}""==i&&(i=n[0])}var a=s.Base64.encode(i);return this.urlGar.replace("ID_ETAB",e).replace("ID_ENT",a)}return"https://edumalin.fr/"},t.prototype.trackEvent=function(t){if(t&&t.length>0){var e={"event-type":t,modal:"Timeline"};s.http().post("/infra/event/web/store",e).catch((function(t){console.debug("[TrackingInternal] failed to trackEvent: ",t)}))}},t.prototype.encodeUrlPicture=function(t){return encodeURI(t)},t}(),d=function(){function t(){this.restrict="E",this.template=n(1891).Z,this.scope={},this.bindToController=!0,this.controller=[o],this.controllerAs="ctrl",this.require=["odeEdumalinWidget"]}return t.prototype.link=function(t,e,n,a){return i(this,void 0,void 0,(function(){var e;return r(this,(function(n){switch(n.label){case 0:return(e=a?a[0]:null)?[4,s.http().get("/appregistry/edumalin/widget").then((function(n){n.success?(e.data=n.data,t.$apply()):e.error=n.error}))]:[2];case 1:return n.sent(),[2]}}))}))},t}();s.notif().onLangReady().promise.then((function(t){s.conf().Platform.idiom.addKeys(n(7918))})),e.odeModuleName="odeEdumalinWidgetModule",l.default.module(e.odeModuleName,[]).directive("odeEdumalinWidget",(function(){return new d}))},7918:t=>{t.exports=JSON.parse('{"edumalin.title":"Édumalin","edumalin.acceder":"Accéder à Édumalin","edumalin.empty":"Aucun résultat","edumalin.webinaire.date":"Date","edumalin.webinaire.duration":"Duration"}')}}]);
|
|
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 = \" <style>.widget-dashboard .dashboard-list .item:nth-child(2n){background:#fafafa}</style> <div class=\\\"widget-dashboard\\\"> <div class=\\\"widget-header\\\" style=\\\"border:0\\\"> <div class=\\\"subtitle\\\"> <a rel=\\\"noopener\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.generateLinkGar(), 'EDUMALIN_OPEN_GAR')\\\" style=\\\"display:flex\\\"> <img src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"40\\\" height=\\\"40\\\" alt=\\\"edumalin\\\"/> <span style=\\\"padding-left:20px\\\"><i18n>edumalin.title</i18n></span> </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\\\" class=\\\"m-auto\\\"/> <img ng-if=\\\"ctrl.isURL(widget.picture)\\\" ng-src=\\\"{{ctrl.encodeUrlPicture(widget.picture)}}\\\" width=\\\"60\\\" height=\\\"60\\\" alt=\\\"edumalin\\\" class=\\\"m-auto\\\"/> </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-style=\\\"{'color': ctrl.displayIconColor(widget.type.name)}\\\" 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 visible=\\\"ctrl.showLightbox\\\" on-close=\\\"ctrl.showLightbox=false\\\" size=\\\"lg\\\" class=\\\"modal-widget\\\"> <ode-modal-title> <h2 translate content=\\\"[[ctrl.currentWidget.title]]\\\"></h2> </ode-modal-title> <ode-modal-body> <div class=\\\"container\\\"> <div class=\\\"row\\\"> <div class=\\\"col-md-4 col-sm-12\\\"> <img ng-if=\\\"!ctrl.isURL(ctrl.currentWidget.picture)\\\" src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"200\\\" height=\\\"200\\\" alt=\\\"edumalin\\\" class=\\\"m-auto\\\"/> <img ng-if=\\\"ctrl.isURL(ctrl.currentWidget.picture)\\\" ng-src=\\\"{{ctrl.encodeUrlPicture(ctrl.currentWidget.picture)}}\\\" width=\\\"200\\\" height=\\\"200\\\" alt=\\\"edumalin\\\" class=\\\"m-auto\\\"/> </div> <div class=\\\"col-md-8 col-sm-12\\\"> <div class=\\\"label\\\" translate content=\\\"[[ctrl.currentWidget.description]]\\\"></div> <div class=\\\"mb-3 mt-12\\\" ng-if=\\\"ctrl.isTypeRDV(ctrl.currentWidget.type.name)\\\" ng-style=\\\"{'color': ctrl.displayIconColor(ctrl.currentWidget.type.name)}\\\"> <a href=\\\"[[ctrl.currentWidget.googleMap]]\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\"> <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)]]\\\" ng-style=\\\"{'color': ctrl.displayIconColor(ctrl.currentWidget.type.name)}\\\"></i> <span translate content=\\\"[[ctrl.currentWidget.type.name]]\\\" ng-style=\\\"{'color': ctrl.displayIconColor(ctrl.currentWidget.type.name)}\\\"></span> <span ng-if=\\\"ctrl.isTypeWebinaire(ctrl.currentWidget.type.name)\\\"> | <i18n>edumalin.webinaire.date</i18n>: [[ctrl.dateFormat(ctrl.currentWidget.dateTime)]] | <i18n>edumalin.webinaire.duration</i18n>: [[ctrl.currentWidget.duration]] min</span> </div> </div> </div> </div> <div> <div class=\\\"row\\\"> <div class=\\\"col-md-5 col-sm-12\\\"></div> <div class=\\\"col-md-3 col-sm-12 mb3\\\"> <button type=\\\"button\\\" class=\\\"btn btn-outline-primary form-control\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.generateLinkGar(), 'EDUMALIN_OPEN_GAR')\\\" translate content=\\\"edumalin.acceder\\\"/> </div> <div class=\\\"col-md-4 col-sm-12\\\"> <button ng-if=\\\"ctrl.currentWidget.buttonLink\\\" type=\\\"button\\\" class=\\\"btn btn-primary form-control\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.currentWidget.buttonLink, 'EDUMALIN_OPEN_LINK')\\\" 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 { conf, notif, http, session, Base64 } from \"../../utils\";\nimport moment from \"moment\";\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, eventType: String) {\n // Track this event.\n if (eventType && eventType.length > 0) {\n this.trackEvent(eventType);\n }\n\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 displayIconColor(type: any) {\n switch (type) {\n case \"RDV\":\n return \"#2a9cc8\";\n case \"Webinaire\":\n return \"#20c997\";\n case \"Annonce\":\n return \"#E13A3A\";\n case \"Actualité\":\n return \"#FF8D2E\";\n case \"Temoignage\":\n return \"#2029B6\";\n case \"Podcast\":\n return \"#823AA1\";\n case \"Replay\":\n return \"#46BFAF\";\n case \"Tutoriel\":\n return \"#ecbe30\";\n default:\n return \"#f59700\";\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(\"EDUMALIN_OPEN_MODAL\");\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(eventType: String) {\n // Track this event.\n if (eventType && eventType.length > 0) {\n const eventJson: any = {\n \"event-type\": eventType,\n modal: \"Timeline\",\n };\n\n http()\n .post(\"/infra/event/web/store\", eventJson)\n .catch((e) => {\n console.debug(\"[TrackingInternal] failed to trackEvent: \", e);\n });\n }\n }\n\n encodeUrlPicture(url: string) {\n return encodeURI(url);\n }\n}\n\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","eventType","length","this","trackEvent","window","open","dateFormat","dateTime","format","isTypeRDV","type","isTypeWebinaire","displayIcon","displayIconColor","openLightBox","contentType","e","currentWidget","currentTarget","isURL","str","startsWith","generateLinkGar","session","description","schools","school","UAIb64","Base64","encode","UAI","exports","codeGar","i","replace","codeGARb64","eventJson","modal","http","post","catch","console","debug","encodeUrlPicture","url","encodeURI","restrict","template","scope","bindToController","controller","Controller","controllerAs","require","elem","attrs","controllers","ctrl","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":"gIAGA,QAFW,yxI,8iDCDX,iBACA,UACA,YAEA,0BACE,KAAAA,KAAY,CAAC,EACb,KAAAC,MAAa,KAEN,KAAAC,cAAe,EAEtB,KAAAC,OACE,gHA+IJ,QA7IE,YAAAC,cAAA,SAAcC,EAAcC,GAEtBA,GAAaA,EAAUC,OAAS,GAClCC,KAAKC,WAAWH,GAGlBI,OAAOC,KAAKN,EAAM,SACpB,EAEA,sBAAc,2BAAY,C,IAA1B,WACE,OAAOG,KAAKR,KAAKO,OAAS,CAC5B,E,gCAEA,YAAAK,WAAA,SAAWC,GAET,OADW,UAAOA,GAAUC,OAAO,IAErC,EAEA,YAAAC,UAAA,SAAUC,GACR,MAAe,OAARA,CACT,EAEA,YAAAC,gBAAA,SAAgBD,GACd,MAAe,aAARA,CACT,EAEA,YAAAE,YAAA,SAAYF,GACV,OAAQA,GACN,IAAK,MACH,MAAO,kBACT,IAAK,YACH,MAAO,WACT,IAAK,UACH,MAAO,cACT,IAAK,YACH,MAAO,eACT,IAAK,aACH,MAAO,sBACT,IAAK,UACH,MAAO,aACT,IAAK,SACH,MAAO,iBACT,IAAK,WACH,MAAO,yBACT,QACE,MAAO,UAEb,EAEA,YAAAG,iBAAA,SAAiBH,GACf,OAAQA,GACN,IAAK,MACH,MAAO,UACT,IAAK,YACH,MAAO,UACT,IAAK,UACH,MAAO,UACT,IAAK,YACH,MAAO,UACT,IAAK,aACH,MAAO,UACT,IAAK,UACH,MAAO,UACT,IAAK,SACH,MAAO,UACT,IAAK,WACH,MAAO,UACT,QACE,MAAO,UAEb,EAEA,YAAAI,aAAA,SAAaC,EAAkBC,GAC7Bd,KAAKe,cAAgBF,EACrBb,KAAKN,cAAe,EAGhBoB,EAAEE,eACJhB,KAAKC,WAAW,sBAEpB,EAEA,YAAAgB,MAAA,SAAMC,GACJ,SACEA,GACAA,EAAInB,OAAS,IACZmB,EAAIC,WAAW,YAAcD,EAAIC,WAAW,aAKjD,EAEA,YAAAC,gBAAA,WACE,GACE,EAAAC,UAAUC,aACV,EAAAD,UAAUC,YAAYC,SACtB,EAAAF,UAAUC,YAAYC,QAAQxB,OAAS,EACvC,CACA,IAAIyB,EAAS,EAAAH,UAAUC,YAAYC,QAAQ,GACvCE,EAAiB,EAAAC,OAAOC,OAAsB,OAAfH,aAAM,EAANA,EAAQI,KAAcJ,EAAOI,IAAM,IAClE,EAAsC,MAAlBJ,EAAOK,QAAkBL,EAAOK,QAAU,GAC9DC,EAAU,GACd,GAAe,MAAX,EAAiB,CACnB,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAQhC,SAAUgC,EACpC,GAAI,EAAQA,GAAGZ,WAAW,QAAS,CACjCW,EAAU,EAAQC,GAAGC,QAAQ,OAAQ,IACrC,K,CAEW,IAAXF,IAAeA,EAAU,EAAQ,G,CAEvC,IAAIG,EAAa,EAAAP,OAAOC,OAAOG,GAE/B,OAAO9B,KAAKL,OACTqC,QAAQ,UAAWP,GACnBO,QAAQ,SAAUC,E,CAGvB,MAAO,sBACT,EAGU,YAAAhC,WAAV,SAAqBH,GAEnB,GAAIA,GAAaA,EAAUC,OAAS,EAAG,CACrC,IAAMmC,EAAiB,CACrB,aAAcpC,EACdqC,MAAO,YAGT,EAAAC,OACGC,KAAK,yBAA0BH,GAC/BI,OAAM,SAACxB,GACNyB,QAAQC,MAAM,4CAA6C1B,EAC7D,G,CAEN,EAEA,YAAA2B,iBAAA,SAAiBC,GACf,OAAOC,UAAUD,EACnB,EACF,EAtJA,GAyJA,0BAGE,KAAAE,SAAW,IACX,KAAAC,SAAW,UACX,KAAAC,MAAQ,CAAC,EACT,KAAAC,kBAAmB,EACnB,KAAAC,WAAa,CAACC,GACd,KAAAC,aAAe,OACf,KAAAC,QAAU,CAAC,oBA0Bb,QAxBQ,YAAAtD,KAAN,SACEiD,EACAM,EACAC,EACAC,G,gGAKA,OAHMC,EAA0BD,EAC3BA,EAAY,GACb,MAKJ,GAAM,EAAAlB,OACHoB,IAAI,gCACJC,MAAK,SAACC,GACDA,EAASC,SACXJ,EAAK/D,KAAOkE,EAASlE,KACrBsD,EAAMc,UAENL,EAAK9D,MAAQiE,EAASjE,KAE1B,KAZA,I,cAGF,S,YAWJ,EAnCA,GA2CA,EAAAoE,QACGC,cACAC,QAAQN,MAAK,SAACO,GAGT,EAAAC,OAAOC,SAASC,MAAMC,QAAQ,EAAQ,MAG5C,IAIW,EAAAC,cAAgB,0BAC7B,UACGC,OAAO,EAAAD,cAAe,IACtBE,UAAU,qBApBb,WACE,OAAO,IAAIC,CACb,G","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 = \" <style>.widget-dashboard .dashboard-list .item:nth-child(2n){background:#fafafa}</style> <div class=\\\"widget-dashboard\\\"> <div class=\\\"widget-header\\\" style=\\\"border:0\\\"> <div class=\\\"subtitle\\\"> <a class=\\\"seemore\\\" href=\\\"#\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.generateLinkGar(), 'EDUMALIN_OPEN_GAR')\\\" style=\\\"display:flex\\\"> <img src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"40\\\" height=\\\"40\\\" alt=\\\"edumalin\\\"/> <span style=\\\"padding-left:20px\\\"><i18n>edumalin.title</i18n></span> </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\\\" class=\\\"m-auto\\\"/> <img ng-if=\\\"ctrl.isURL(widget.picture)\\\" ng-src=\\\"{{ctrl.encodeUrlPicture(widget.picture)}}\\\" width=\\\"60\\\" height=\\\"60\\\" alt=\\\"edumalin\\\" class=\\\"m-auto\\\"/> </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-style=\\\"{'color': ctrl.displayIconColor(widget.type.name)}\\\" 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 visible=\\\"ctrl.showLightbox\\\" on-close=\\\"ctrl.showLightbox=false\\\" size=\\\"lg\\\" class=\\\"modal-widget\\\"> <ode-modal-title> <h2 translate content=\\\"[[ctrl.currentWidget.title]]\\\"></h2> </ode-modal-title> <ode-modal-body> <div class=\\\"container\\\"> <div class=\\\"row\\\"> <div class=\\\"col-md-4 col-sm-12\\\"> <img ng-if=\\\"!ctrl.isURL(ctrl.currentWidget.picture)\\\" src=\\\"/assets/widgets/edumalin-widget/edumalin.png\\\" width=\\\"200\\\" height=\\\"200\\\" alt=\\\"edumalin\\\" class=\\\"m-auto\\\"/> <img ng-if=\\\"ctrl.isURL(ctrl.currentWidget.picture)\\\" ng-src=\\\"{{ctrl.encodeUrlPicture(ctrl.currentWidget.picture)}}\\\" width=\\\"200\\\" height=\\\"200\\\" alt=\\\"edumalin\\\" class=\\\"m-auto\\\"/> </div> <div class=\\\"col-md-8 col-sm-12\\\"> <div class=\\\"label\\\" translate content=\\\"[[ctrl.currentWidget.description]]\\\"></div> <div class=\\\"mb-3 mt-12\\\" ng-if=\\\"ctrl.isTypeRDV(ctrl.currentWidget.type.name)\\\" ng-style=\\\"{'color': ctrl.displayIconColor(ctrl.currentWidget.type.name)}\\\"> <a href=\\\"[[ctrl.currentWidget.googleMap]]\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\"> <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)]]\\\" ng-style=\\\"{'color': ctrl.displayIconColor(ctrl.currentWidget.type.name)}\\\"></i> <span translate content=\\\"[[ctrl.currentWidget.type.name]]\\\" ng-style=\\\"{'color': ctrl.displayIconColor(ctrl.currentWidget.type.name)}\\\"></span> <span ng-if=\\\"ctrl.isTypeWebinaire(ctrl.currentWidget.type.name)\\\"> | <i18n>edumalin.webinaire.date</i18n>: [[ctrl.dateFormat(ctrl.currentWidget.dateTime)]] | <i18n>edumalin.webinaire.duration</i18n>: [[ctrl.currentWidget.duration]] min</span> </div> </div> </div> </div> </div> <div class=\\\"d-flex justify-content-end\\\"> <button type=\\\"button\\\" class=\\\"btn btn-outline-primary ng-binding ng-scope\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.generateLinkGar(), 'EDUMALIN_OPEN_GAR')\\\" style=\\\"margin-right:1%\\\" translate content=\\\"edumalin.acceder\\\"/> <button ng-if=\\\"ctrl.currentWidget.buttonLink\\\" type=\\\"button\\\" class=\\\"btn btn-primary ng-binding ng-scope\\\" ng-click=\\\"ctrl.onButtonClick(ctrl.currentWidget.buttonLink, 'EDUMALIN_OPEN_LINK')\\\" translate> {{ctrl.currentWidget.buttonTitle}} </button> </div> </ode-modal-body> </ode-modal> </div> \";\n// Exports\nexport default code;","import angular, { IAttributes, IController, IDirective, IScope } from \"angular\";\nimport { conf, notif, http, session, Base64 } from \"../../utils\";\nimport moment from \"moment\";\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, eventType: String) {\n // Track this event.\n if (eventType && eventType.length > 0) {\n this.trackEvent(eventType);\n }\n\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 displayIconColor(type: any) {\n switch (type) {\n case \"RDV\":\n return \"#2a9cc8\";\n case \"Webinaire\":\n return \"#20c997\";\n case \"Annonce\":\n return \"#E13A3A\";\n case \"Actualité\":\n return \"#FF8D2E\";\n case \"Temoignage\":\n return \"#2029B6\";\n case \"Podcast\":\n return \"#823AA1\";\n case \"Replay\":\n return \"#46BFAF\";\n case \"Tutoriel\":\n return \"#ecbe30\";\n default:\n return \"#f59700\";\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(\"EDUMALIN_OPEN_MODAL\");\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(eventType: String) {\n // Track this event.\n if (eventType && eventType.length > 0) {\n const eventJson: any = {\n \"event-type\": eventType,\n modal: \"Timeline\",\n };\n\n http()\n .post(\"/infra/event/web/store\", eventJson)\n .catch((e) => {\n console.debug(\"[TrackingInternal] failed to trackEvent: \", e);\n });\n }\n }\n\n encodeUrlPicture(url: string) {\n return encodeURI(url);\n }\n}\n\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","eventType","length","this","trackEvent","window","open","dateFormat","dateTime","format","isTypeRDV","type","isTypeWebinaire","displayIcon","displayIconColor","openLightBox","contentType","e","currentWidget","currentTarget","isURL","str","startsWith","generateLinkGar","session","description","schools","school","UAIb64","Base64","encode","UAI","exports","codeGar","i","replace","codeGARb64","eventJson","modal","http","post","catch","console","debug","encodeUrlPicture","url","encodeURI","restrict","template","scope","bindToController","controller","Controller","controllerAs","require","elem","attrs","controllers","ctrl","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.4.
|
|
3
|
+
"version": "1.4.3-dev.202405241104",
|
|
4
4
|
"description": "Open Digital Education Frontend Framework",
|
|
5
5
|
"main": "dist/ts/index.js",
|
|
6
6
|
"types": "dist/ts/index.d.ts",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"karma-chrome-launcher": "3.1.0",
|
|
52
52
|
"karma-jasmine": "4.0.1",
|
|
53
53
|
"moment-locales-webpack-plugin": "~1.2.0",
|
|
54
|
-
"ode-ts-client": "
|
|
54
|
+
"ode-ts-client": "dev",
|
|
55
55
|
"terser-webpack-plugin": "5.1.4",
|
|
56
56
|
"ts-loader": "8.0.18",
|
|
57
57
|
"typescript": "4.2.2",
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { IAttributes, IDirective, IScope } from "angular";
|
|
2
|
-
interface Scope extends IScope {
|
|
3
|
-
display: {
|
|
4
|
-
read?: boolean;
|
|
5
|
-
};
|
|
6
|
-
helpPath: string;
|
|
7
|
-
onHelp: () => void;
|
|
8
|
-
}
|
|
9
|
-
export declare class Directive implements IDirective<Scope, JQLite, IAttributes> {
|
|
10
|
-
restrict: string;
|
|
11
|
-
template: any;
|
|
12
|
-
scope: {};
|
|
13
|
-
link(scope: Scope, element: JQLite, attributes: IAttributes): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
export declare function DirectiveFactory(): Directive;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=help.directive.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"help.directive.d.ts","sourceRoot":"","sources":["../../../../../src/ts/directives/business/portal/help.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAM1D,UAAU,KAAM,SAAQ,MAAM;IAC1B,OAAO,EAAC;QAAC,IAAI,CAAC,EAAC,OAAO,CAAA;KAAC,CAAC;IACxB,QAAQ,EAAC,MAAM,CAAC;IAChB,MAAM,EAAC,MAAI,IAAI,CAAC;CACnB;AAED,qBAAa,SAAU,YAAW,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,WAAW,CAAC;IAClE,QAAQ,SAAO;IACf,QAAQ,MAA4C;IACpD,KAAK,KAAM;IAEL,IAAI,CAAC,KAAK,EAAC,KAAK,EAAE,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,WAAW;CAuGjE;AAED,wBAAgB,gBAAgB,cAE/B"}
|