ode-ngjs-front 1.4.11-develop-integration.202505271636 → 1.4.11-develop-integration.202505301020

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.
@@ -18,7 +18,8 @@ export declare enum KnownWidget {
18
18
  edumalin = "edumalin-widget",
19
19
  mediacentre = "mediacentre-widget",
20
20
  cantine = "cantine-widget",
21
- ptitObservatoire = "ptit-observatoire-widget"
21
+ ptitObservatoire = "ptit-observatoire-widget",
22
+ screenTime = "screen-time-widget"
22
23
  }
23
24
  export declare type WidgetLoader = (widgetName: String) => Promise<void>;
24
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.module.d.ts","sourceRoot":"","sources":["../../../src/ts/modules/widgets.module.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAQ,OAAO,EAAE,MAAM,SAAS,CAAC;AA2CjD,oBAAY,WAAW;IACnB,SAAS,qBAA2B;IACpC,MAAM,kBAA2B;IACjC,MAAM,kBAA2B;IACjC,QAAQ,cAAqB;IAC7B,MAAM,kBAA2B;IACjC,KAAK,UAAoB;IACzB,QAAQ,oBAA2B;IACnC,GAAG,eAA2B;IAC9B,MAAM,YAAqB;IAC3B,YAAY,mBAAsB;IAClC,YAAY,wBAA2B;IACvC,QAAQ,oBAA2B;IACnC,WAAW,uBAA2B;IACtC,OAAO,mBAA2B;IAClC,SAAS,sBAA4B;IACrC,QAAQ,oBAA2B;IACnC,WAAW,uBAA2B;IACtC,OAAO,mBAA2B;IAClC,gBAAgB,6BAA6B;CAEhD;AACD,oBAAY,YAAY,GAAG,CAAC,UAAU,EAAC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAyY9D;;GAEG;AACH,wBAAgB,eAAe,IAAG,OAAO,CAExC"}
1
+ {"version":3,"file":"widgets.module.d.ts","sourceRoot":"","sources":["../../../src/ts/modules/widgets.module.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAQ,OAAO,EAAE,MAAM,SAAS,CAAC;AA4CjD,oBAAY,WAAW;IACnB,SAAS,qBAA2B;IACpC,MAAM,kBAA2B;IACjC,MAAM,kBAA2B;IACjC,QAAQ,cAAqB;IAC7B,MAAM,kBAA2B;IACjC,KAAK,UAAoB;IACzB,QAAQ,oBAA2B;IACnC,GAAG,eAA2B;IAC9B,MAAM,YAAqB;IAC3B,YAAY,mBAAsB;IAClC,YAAY,wBAA2B;IACvC,QAAQ,oBAA2B;IACnC,WAAW,uBAA2B;IACtC,OAAO,mBAA2B;IAClC,SAAS,sBAA4B;IACrC,QAAQ,oBAA2B;IACnC,WAAW,uBAA2B;IACtC,OAAO,mBAA2B;IAClC,gBAAgB,6BAA6B;IAC7C,UAAU,uBAA4B;CAEzC;AACD,oBAAY,YAAY,GAAG,CAAC,UAAU,EAAC,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AA6Z9D;;GAEG;AACH,wBAAgB,eAAe,IAAG,OAAO,CAExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme-helper.service.d.ts","sourceRoot":"","sources":["../../../src/ts/services/theme-helper.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAc,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD;;GAEG;AACH,qBAAa,kBAAkB;IA8BvB,OAAO,CAAC,WAAW;IA7BvB,MAAM,CAAC,OAAO,WAAyB;IAEvC,OAAO,CAAC,YAAY,CAwBnB;gBAGW,WAAW,EAAC,eAAe;IAIvC,OAAO,KAAK,QAAQ,GAEnB;IAED,uCAAuC;IACvC,IAAI,GAAG,WAEN;IAED,8FAA8F;IACxF,qBAAqB,IAAG,OAAO,CAAC,MAAM,CAAC;IAW7C,4GAA4G;IACtG,oBAAoB,IAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,SAAS,CAAE,GAAG,EAAC,MAAM,GAAG,MAAM;IAa9B;;;OAGG;IACH,mBAAmB,CAAE,QAAQ,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM;IAYrD,4CAA4C;IAC5C,WAAW,CAAE,KAAK,EAAC,MAAM;IAWzB,iCAAiC;IAC3B,UAAU,CAAE,SAAS,EAAC,MAAM;IA8BlC,qEAAqE;IACrE,UAAU,IAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIlC,2FAA2F;IACrF,QAAQ,CAAE,KAAK,EAAC,UAAU;IAMhC;;OAEG;IACF,WAAW,CAAE,GAAG,EAAC,OAAO,GAAG,MAAM;IA2BlC,wCAAwC;IACxC,kBAAkB,CAAE,MAAM,EAAC,OAAO,GAAG,MAAM;CAG9C"}
1
+ {"version":3,"file":"theme-helper.service.d.ts","sourceRoot":"","sources":["../../../src/ts/services/theme-helper.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAc,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD;;GAEG;AACH,qBAAa,kBAAkB;IA+BvB,OAAO,CAAC,WAAW;IA9BvB,MAAM,CAAC,OAAO,WAAyB;IAEvC,OAAO,CAAC,YAAY,CAyBnB;gBAGW,WAAW,EAAC,eAAe;IAIvC,OAAO,KAAK,QAAQ,GAEnB;IAED,uCAAuC;IACvC,IAAI,GAAG,WAEN;IAED,8FAA8F;IACxF,qBAAqB,IAAG,OAAO,CAAC,MAAM,CAAC;IAW7C,4GAA4G;IACtG,oBAAoB,IAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,SAAS,CAAE,GAAG,EAAC,MAAM,GAAG,MAAM;IAa9B;;;OAGG;IACH,mBAAmB,CAAE,QAAQ,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM;IAYrD,4CAA4C;IAC5C,WAAW,CAAE,KAAK,EAAC,MAAM;IAWzB,iCAAiC;IAC3B,UAAU,CAAE,SAAS,EAAC,MAAM;IA8BlC,qEAAqE;IACrE,UAAU,IAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIlC,2FAA2F;IACrF,QAAQ,CAAE,KAAK,EAAC,UAAU;IAMhC;;OAEG;IACF,WAAW,CAAE,GAAG,EAAC,OAAO,GAAG,MAAM;IA2BlC,wCAAwC;IACxC,kBAAkB,CAAE,MAAM,EAAC,OAAO,GAAG,MAAM;CAG9C"}
@@ -0,0 +1,19 @@
1
+ interface ScreenTimeData {
2
+ weekly: {
3
+ [key: string]: number[];
4
+ };
5
+ daily: {
6
+ [key: string]: {
7
+ [hour: string]: number;
8
+ };
9
+ };
10
+ }
11
+ export declare class Controller {
12
+ selectedUser: string;
13
+ viewMode: "weekly" | "daily";
14
+ screenTimeData: ScreenTimeData;
15
+ updateChart: () => void;
16
+ }
17
+ export declare const odeModuleName = "odeCantineWidgetModule";
18
+ export {};
19
+ //# sourceMappingURL=screen-time-widget.widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-time-widget.widget.d.ts","sourceRoot":"","sources":["../../../../src/ts/widgets/screen-time-widget/screen-time-widget.widget.ts"],"names":[],"mappings":"AAQA,UAAU,cAAc;IACpB,MAAM,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,KAAK,EAAE;QACH,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KAC7C,CAAC;CACL;AAsCD,qBAAa,UAAU;IACZ,YAAY,EAAE,MAAM,CAAa;IACjC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAY;IACxC,cAAc,EAAE,cAAc,CAA6B;IAC3D,WAAW,EAAE,MAAM,IAAI,CAAa;CAC9C;AAyHD,eAAO,MAAM,aAAa,2BAA2B,CAAC"}
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- ode-ngjs-front 27/05/2025 16:37:23
1
+ ode-ngjs-front 30/05/2025 10:20:57
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkode_ngjs_front=self.webpackChunkode_ngjs_front||[]).push([[202],{5688:(e,t,n)=>{n.d(t,{Z:()=>i});const i='<div> <label for="userSelect">Choisir un utilisateur :</label> <select id="userSelect" ng-model="ctrl.selectedUser" ng-change="ctrl.updateChart()"> <option value="Mathieu">Mathieu</option> <option value="Jean">Jean</option> </select> <label for="viewMode">Mode :</label> <select id="viewMode" ng-model="ctrl.viewMode" ng-change="ctrl.updateChart()"> <option value="weekly">Hebdomadaire</option> <option value="daily">Quotidien</option> </select> </div> <canvas id="myChart" width="400" height="200"></canvas>'},58:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function o(e){try{u(i.next(e))}catch(e){r(e)}}function l(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,l)}u((i=i.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,i,a,r,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return r={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function l(r){return function(l){return function(r){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,i&&(a=2&r[0]?i.return:r[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,r[1])).done)return a;switch(i=0,a&&(r=[2&r[0],a.value]),r[0]){case 0:case 1:a=r;break;case 4:return o.label++,{value:r[1],done:!1};case 5:o.label++,i=r[1],r=[0];continue;case 7:r=o.ops.pop(),o.trys.pop();continue;default:if(!(a=o.trys,(a=a.length>0&&a[a.length-1])||6!==r[0]&&2!==r[0])){o=0;continue}if(3===r[0]&&(!a||r[1]>a[0]&&r[1]<a[3])){o.label=r[1];break}if(6===r[0]&&o.label<a[1]){o.label=a[1],a=r;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(r);break}a[2]&&o.ops.pop(),o.trys.pop();continue}r=t.call(e,o)}catch(e){r=[6,e],i=0}finally{n=a=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,l])}}},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.odeModuleName=t.Controller=void 0;var o=r(n(4202)),l=n(9419),u=n(5668);u.Chart.register.apply(u.Chart,u.registerables);var s=function(){this.selectedUser="Mathieu",this.viewMode="weekly",this.screenTimeData={weekly:{},daily:{}},this.updateChart=function(){}};t.Controller=s;var c=function(){function e(){this.restrict="E",this.template=n(5688).Z,this.scope={},this.bindToController=!0,this.controller=[s],this.controllerAs="ctrl",this.require=["odeScreenTimeWidget"]}return e.prototype.link=function(e,t,n,r){return i(this,void 0,void 0,(function(){var n,i;return a(this,(function(a){return(n=r?r[0]:null)?(i=null,e.$evalAsync((function(){var a=t[0].querySelector("#myChart");if(a){var r=a.getContext("2d");r&&(i=new u.Chart(r,{type:"bar",data:{labels:[],datasets:[{label:"",data:[],borderWidth:1,backgroundColor:"#4e79a7"}]},options:{animation:!1,responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!0},tooltip:{enabled:!1}},scales:{x:{ticks:{autoSkip:!0,maxTicksLimit:10}},y:{beginAtZero:!0}}}}),new Promise((function(e){setTimeout((function(){e({weekly:{Mathieu:[12,19,3,5,2,3,1],Jean:[5,8,6,7,4,2,3]},daily:{Mathieu:{"08:00":15,"09:00":10,"10:00":30,"11:00":20,"12:00":25,"13: 00":17,"16:00":5,"18:00":10,"20:00":8,"22:00":12,"23:00":4},Jean:{"07:00":5,"09:00":25,"10:00":10,"18:00":15}}})}),100)})).then((function(e){n.screenTimeData=e,n.updateChart()})),n.updateChart=function(){i&&requestAnimationFrame((function(){var e=[],t=[];if("weekly"===n.viewMode)e=["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"],t=n.screenTimeData.weekly[n.selectedUser]||[];else{var a=n.screenTimeData.daily[n.selectedUser]||{};t=(e=Object.keys(a)).map((function(e){return a[e]}))}i&&(i.data.labels=e,i.data.datasets[0].data=t,i.data.datasets[0].label="weekly"===n.viewMode?"Temps d'écran hebdo (heures)":"Temps d'écran aujourd'hui (minutes)",i.update())}))},e.$watch((function(){return n.selectedUser}),(function(){return n.updateChart()})),e.$watch((function(){return n.viewMode}),(function(){return n.updateChart()})))}})),[2]):[2]}))}))},e}();(0,l.notif)().onLangReady().promise.then((function(e){(0,l.conf)().Platform.idiom.addKeys(n(1245))})),t.odeModuleName="odeCantineWidgetModule",o.default.module(t.odeModuleName,[]).directive("odeScreenTimeWidget",(function(){return new c}))},1245:e=>{e.exports={}}}]);
2
+ //# sourceMappingURL=screen-time-widget.widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgets/screen-time-widget/screen-time-widget.widget.js","mappings":"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","sources":["webpack://ode-ngjs-front/./src/ts/widgets/screen-time-widget/screen-time-widget.widget.html","webpack://ode-ngjs-front/./src/ts/widgets/screen-time-widget/screen-time-widget.widget.ts"],"sourcesContent":["// Module\nvar code = \"<div> <label for=\\\"userSelect\\\">Choisir un utilisateur :</label> <select id=\\\"userSelect\\\" ng-model=\\\"ctrl.selectedUser\\\" ng-change=\\\"ctrl.updateChart()\\\"> <option value=\\\"Mathieu\\\">Mathieu</option> <option value=\\\"Jean\\\">Jean</option> </select> <label for=\\\"viewMode\\\">Mode :</label> <select id=\\\"viewMode\\\" ng-model=\\\"ctrl.viewMode\\\" ng-change=\\\"ctrl.updateChart()\\\"> <option value=\\\"weekly\\\">Hebdomadaire</option> <option value=\\\"daily\\\">Quotidien</option> </select> </div> <canvas id=\\\"myChart\\\" width=\\\"400\\\" height=\\\"200\\\"></canvas>\";\n// Exports\nexport default code;","import angular, { IAttributes, IController, IDirective, IScope } from \"angular\";\nimport { conf, notif } from \"../../utils\";\nimport { Chart, registerables } from \"chart.js\";\n\n// Register Chart.js components\nChart.register(...registerables);\n\n// Screen time data structure\ninterface ScreenTimeData {\n weekly: {\n [key: string]: number[]; // per user, 7-day weekly data\n };\n daily: {\n [key: string]: { [hour: string]: number }; // per user, hourly screen time (e.g., \"09:00\": 30)\n };\n}\n// Mocked API function\nfunction fetchScreenTimeData(): Promise<ScreenTimeData> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve({\n weekly: {\n Mathieu: [12, 19, 3, 5, 2, 3, 1],\n Jean: [5, 8, 6, 7, 4, 2, 3]\n },\n daily: {\n Mathieu: {\n \"08:00\": 15,\n \"09:00\": 10,\n \"10:00\": 30,\n \"11:00\": 20,\n \"12:00\": 25,\n \"13: 00\": 17,\n \"16:00\": 5,\n \"18:00\": 10,\n \"20:00\": 8,\n \"22:00\": 12,\n \"23:00\": 4\n },\n Jean: {\n \"07:00\": 5,\n \"09:00\": 25,\n \"10:00\": 10,\n \"18:00\": 15\n }\n }\n });\n }, 100);\n });\n}\n\n\n// Controller\nexport class Controller {\n public selectedUser: string = \"Mathieu\";\n public viewMode: \"weekly\" | \"daily\" = \"weekly\";\n public screenTimeData: ScreenTimeData = { weekly: {}, daily: {} };\n public updateChart: () => void = () => { };\n}\n\n\nclass Directive implements IDirective<IScope, JQLite, IAttributes, IController[]> {\n restrict = \"E\";\n template = require(\"./screen-time-widget.widget.html\").default;\n scope = {};\n bindToController = true;\n controller = [Controller];\n controllerAs = \"ctrl\";\n require = [\"odeScreenTimeWidget\"];\n\n async link(scope: IScope, elem: angular.IAugmentedJQuery, attrs: IAttributes, controllers?: IController[]) {\n const ctrl: Controller | null = controllers ? (controllers[0] as Controller) : null;\n if (!ctrl) return;\n\n let chartInstance: Chart | null = null;\n let debounceTimeout: any;\n\n // Wait for DOM render\n scope.$evalAsync(() => {\n const canvas = elem[0].querySelector<HTMLCanvasElement>(\"#myChart\");\n if (!canvas) return;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n\n // Init blank chart first\n chartInstance = new Chart(ctx, {\n type: \"bar\",\n data: {\n labels: [],\n datasets: [{\n label: \"\",\n data: [],\n borderWidth: 1,\n backgroundColor: \"#4e79a7\"\n }]\n },\n options: {\n animation: false,\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n display: true\n },\n tooltip: {\n enabled: false\n }\n },\n scales: {\n x: {\n ticks: {\n autoSkip: true,\n maxTicksLimit: 10\n }\n },\n y: {\n beginAtZero: true\n }\n }\n }\n });\n\n // Fetch and update chart\n fetchScreenTimeData().then((data) => {\n ctrl.screenTimeData = data;\n ctrl.updateChart();\n });\n\n ctrl.updateChart = () => {\n if (!chartInstance) return;\n\n requestAnimationFrame(() => {\n let labels: string[] = [];\n let values: number[] = [];\n\n if (ctrl.viewMode === \"weekly\") {\n labels = [\"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\", \"Dimanche\"];\n values = ctrl.screenTimeData.weekly[ctrl.selectedUser] || [];\n } else {\n const daily = ctrl.screenTimeData.daily[ctrl.selectedUser] || {};\n labels = Object.keys(daily);\n values = labels.map(hour => daily[hour]);\n }\n\n if (chartInstance) {\n chartInstance.data.labels = labels;\n chartInstance.data.datasets[0].data = values;\n chartInstance.data.datasets[0].label =\n ctrl.viewMode === \"weekly\"\n ? \"Temps d'écran hebdo (heures)\"\n : \"Temps d'écran aujourd'hui (minutes)\";\n chartInstance.update();\n }\n\n });\n };\n\n\n // Watcher for view mode or user change (if you bind to select/input in HTML)\n scope.$watch(() => ctrl.selectedUser, () => ctrl.updateChart());\n scope.$watch(() => ctrl.viewMode, () => ctrl.updateChart());\n });\n }\n}\n\nfunction DirectiveFactory() {\n return new Directive();\n}\n\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\nexport const odeModuleName = \"odeCantineWidgetModule\";\n\nangular\n .module(odeModuleName, [])\n .directive(\"odeScreenTimeWidget\", DirectiveFactory);\n"],"names":["Chart","register","registerables","selectedUser","viewMode","screenTimeData","weekly","daily","updateChart","Controller","restrict","template","scope","bindToController","controller","controllerAs","require","link","elem","attrs","controllers","ctrl","chartInstance","$evalAsync","canvas","querySelector","ctx","getContext","type","data","labels","datasets","label","borderWidth","backgroundColor","options","animation","responsive","maintainAspectRatio","plugins","legend","display","tooltip","enabled","scales","x","ticks","autoSkip","maxTicksLimit","y","beginAtZero","Promise","resolve","setTimeout","Mathieu","Jean","then","requestAnimationFrame","values","Object","keys","map","hour","update","$watch","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.11-develop-integration.202505271636",
3
+ "version": "1.4.11-develop-integration.202505301020",
4
4
  "description": "Open Digital Education Frontend Framework",
5
5
  "homepage": "https://github.com/opendigitaleducation/ode-ngjs-front#readme",
6
6
  "bugs": {
@@ -26,6 +26,7 @@
26
26
  "watch": "npx webpack --config webpack.config.watch.js --env build_target=${npm_config_watch_springboard}/assets/js/ode-ngjs-front --watch"
27
27
  },
28
28
  "dependencies": {
29
+ "chart.js": "4.4.9",
29
30
  "core-js": "3.9.1",
30
31
  "humane-js": "3.2.2",
31
32
  "moment": "2.29.1",