ode-ngjs-front 1.1.3-feat-produit.202209192203 → 1.1.3-feat-produit.202209221605
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 +1 -1
- package/dist/ode-ngjs-front.js.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +2 -2
package/dist/ode-ngjs-front.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var __webpack_modules__={807:()=>{!function(e){var t="application/x-dnd",n="application/json",r="Text",i=["move","copy","link"];function o(e,t){return"all"==t?e:e.filter((function(e){return-1!=t.toLowerCase().indexOf(e)}))}e.directive("dndDraggable",["$parse","$timeout",function(e,s){return function(c,u,l){u.attr("draggable","true"),l.dndDisableIf&&c.$watch(l.dndDisableIf,(function(e){u.attr("draggable",!e)})),u.on("dragstart",(function(d){if(d=d.originalEvent||d,"false"==u.attr("draggable"))return!0;a.isDragging=!0,a.itemType=l.dndType&&c.$eval(l.dndType).toLowerCase(),a.dropEffect="none",a.effectAllowed=l.dndEffectAllowed||i[0],d.dataTransfer.effectAllowed=a.effectAllowed;var f=c.$eval(l.dndDraggable),h=t+(a.itemType?"-"+a.itemType:"");try{d.dataTransfer.setData(h,angular.toJson(f))}catch(e){var p=angular.toJson({item:f,type:a.itemType});try{d.dataTransfer.setData(n,p)}catch(e){var v=o(i,a.effectAllowed);d.dataTransfer.effectAllowed=v[0],d.dataTransfer.setData(r,p)}}if(u.addClass("dndDragging"),s((function(){u.addClass("dndDraggingSource")}),0),d._dndHandle&&d.dataTransfer.setDragImage&&d.dataTransfer.setDragImage(u[0],0,0),e(l.dndDragstart)(c,{event:d}),l.dndCallback){var m=e(l.dndCallback);a.callback=function(e){return m(c,e||{})}}d.stopPropagation()})),u.on("dragend",(function(t){t=t.originalEvent||t,c.$apply((function(){var n=a.dropEffect;e(l[{copy:"dndCopied",link:"dndLinked",move:"dndMoved",none:"dndCanceled"}[n]])(c,{event:t}),e(l.dndDragend)(c,{event:t,dropEffect:n})})),a.isDragging=!1,a.callback=void 0,u.removeClass("dndDragging"),u.removeClass("dndDraggingSource"),t.stopPropagation(),s((function(){u.removeClass("dndDraggingSource")}),0)})),u.on("click",(function(t){l.dndSelected&&(t=t.originalEvent||t,c.$apply((function(){e(l.dndSelected)(c,{event:t})})),t.stopPropagation())})),u.on("selectstart",(function(){this.dragDrop&&this.dragDrop()}))}}]),e.directive("dndList",["$parse",function(e){return function(s,c,u){var l=function(){var e;return angular.forEach(c.children(),(function(t){var n=angular.element(t);n.hasClass("dndPlaceholder")&&(e=n)})),e||angular.element("<li class='dndPlaceholder'></li>")}();l.remove();var d=l[0],f=c[0],h={};function p(e){if(!e)return r;for(var i=0;i<e.length;i++)if(e[i]==r||e[i]==n||e[i].substr(0,t.length)==t)return e[i];return null}function v(e){return a.isDragging?a.itemType||void 0:e==r||e==n?null:e&&e.substr(t.length+1)||void 0}function m(e){return!h.disabled&&(!(!h.externalSources&&!a.isDragging)&&(!h.allowedTypes||null===e||e&&-1!=h.allowedTypes.indexOf(e)))}function y(e,t){var n=i;return t||(n=o(n,e.dataTransfer.effectAllowed)),a.isDragging&&(n=o(n,a.effectAllowed)),u.dndEffectAllowed&&(n=o(n,u.dndEffectAllowed)),n.length?e.ctrlKey&&-1!=n.indexOf("copy")?"copy":e.altKey&&-1!=n.indexOf("link")?"link":n[0]:"none"}function g(){return l.remove(),c.removeClass("dndDragover"),!0}function b(t,n,r,i,o,c){return e(t)(s,{callback:a.callback,dropEffect:r,event:n,external:!a.isDragging,index:void 0!==o?o:w(),item:c||void 0,type:i})}function w(){return Array.prototype.indexOf.call(f.children,d)}c.on("dragenter",(function(e){e=e.originalEvent||e;var t=u.dndAllowedTypes&&s.$eval(u.dndAllowedTypes);h={allowedTypes:angular.isArray(t)&&t.join("|").toLowerCase().split("|"),disabled:u.dndDisableIf&&s.$eval(u.dndDisableIf),externalSources:u.dndExternalSources&&s.$eval(u.dndExternalSources),horizontal:u.dndHorizontalList&&s.$eval(u.dndHorizontalList)};var n=p(e.dataTransfer.types);if(!n||!m(v(n)))return!0;e.preventDefault()})),c.on("dragover",(function(e){var t=p((e=e.originalEvent||e).dataTransfer.types),n=v(t);if(!t||!m(n))return!0;if(d.parentNode!=f&&c.append(l),e.target!=f){for(var i=e.target;i.parentNode!=f&&i.parentNode;)i=i.parentNode;if(i.parentNode==f&&i!=d){var o=i.getBoundingClientRect();if(h.horizontal)var a=e.clientX<o.left+o.width/2;else a=e.clientY<o.top+o.height/2;f.insertBefore(d,a?i:i.nextSibling)}}var s=t==r,w=y(e,s);return"none"==w||u.dndDragover&&!b(u.dndDragover,e,w,n)?g():(e.preventDefault(),s||(e.dataTransfer.dropEffect=w),c.addClass("dndDragover"),e.stopPropagation(),!1)})),c.on("drop",(function(e){var t=p((e=e.originalEvent||e).dataTransfer.types),i=v(t);if(!t||!m(i))return!0;e.preventDefault();try{var o=JSON.parse(e.dataTransfer.getData(t))}catch(e){return g()}if((t==r||t==n)&&(i=o.type||void 0,o=o.item,!m(i)))return g();var c=t==r,l=y(e,c);if("none"==l)return g();var d=w();return u.dndDrop&&!(o=b(u.dndDrop,e,l,i,d,o))?g():(a.dropEffect=l,c||(e.dataTransfer.dropEffect=l),!0!==o&&s.$apply((function(){s.$eval(u.dndList).splice(d,0,o)})),b(u.dndInserted,e,l,i,d,o),g(),e.stopPropagation(),!1)})),c.on("dragleave",(function(e){e=e.originalEvent||e;var t=document.elementFromPoint(e.clientX,e.clientY);f.contains(t)&&!e._dndPhShown?e._dndPhShown=!0:g()}))}}]),e.directive("dndNodrag",(function(){return function(e,t,n){t.attr("draggable","true"),t.on("dragstart",(function(e){(e=e.originalEvent||e)._dndHandle||(e.dataTransfer.types&&e.dataTransfer.types.length||e.preventDefault(),e.stopPropagation())})),t.on("dragend",(function(e){(e=e.originalEvent||e)._dndHandle||e.stopPropagation()}))}})),e.directive("dndHandle",(function(){return function(e,t,n){t.attr("draggable","true"),t.on("dragstart dragend",(function(e){(e=e.originalEvent||e)._dndHandle=!0}))}}));var a={}}(angular.module("dndLists",[]))},2729:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"e42fe8833e44d61abdaa936837b6b949.html"},925:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"31451cacc32b12533b35bc2756a66c68.html"},6722:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"7f0136c03fe438995347a346ee478b3a.html"},2890:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"f3f8289907cc5f53b11e2bc5f451be96.html"},3890:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"d6dec5bea5ec25a97b20e8259e193c57.html"},8203:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"5a177ed9e4e64baa8287a6f6e5625ab4.html"},5230:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"2ebddef9552e6e74febdcc049e7b6cea.html"},8754:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<article class="domino folder" ng-class="{active: ctrl.selected}" ng-click="ctrl.toggleSelect()" ng-dblclick="ctrl.openSubfolder()"> <div class="domino__image"> <i class="fas ic-folder text-secondary"></i> </div> <div class="domino__infos"> <h2 class="domino__title">{{ctrl.folder.name}}</h2> <span class="domino__info">Il y a 2 heures</span> </div> </article> '},3282:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<article class="domino item" ng-class="{active: ctrl.selected}" ng-click="ctrl.toggleSelect()"> <div class="domino__image"> <div class="domino__overlay transition-hover"> <div class="domino__overlay--left"> <span title="{{\'explorer.domino.info.public.title\'|i18n}}" ng-show="{{ctrl.item.public}}"><i class="ic-public"></i></span> <span title="{{\'explorer.domino.info.shared.title\'|i18n}}" ng-show="{{ctrl.item.shared}}"><i class="ic-share"></i></span> </div> <div class="domino__overlay--right"> <span title="{{\'explorer.domino.info.views.title\'|i18n}}"><i class="ic-view"></i>{{ctrl.item.views}}</span> <span title="{{\'explorer.domino.info.comments.title\'|i18n}}"><i class="ic-comment"></i>{{ctrl.item.comments}}</span> </div> </div> </div> <div class="domino__infos"> <h2 class="domino__title">{{ctrl.item.name}}</h2> <span class="domino__info"><i18n>explorer.domino.info.updated.by</i18n> <a>{{ctrl.item.modifierName}}</a></span> <span class="domino__info">Il y a 2 semaines</span> </div> </article>'},85:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<div class="container d-flex"> <ode-sidebar></ode-sidebar> <main class="main-content"> <section class="explorer"> <section class="explorer__header"> <form class="row justify-content-between mb-2"> <div class="col-lg-9 col-md-12 input-searchbar"> <i class="ic-search form-control-feedback"></i> <input type="search" class="form-control" id="" i18n-placeholder="explorer.searchbar.placeholder"> </div> <div class="col-lg-3 d-none d-sm-none d-md-none d-lg-block"> <button class="btn btn-block btn-primary" type="submit" ng-click="ctrl.onCreate()"> <i class="ic-plus"></i> <i18n>explorer.toaster.btn.create.label</i18n> </button> </div> </form> <div class="d-flex justify-content-between align-items-center mb-2"> <h2>{{ctrl.model.currentFolder.name}}</h2> <div class="filters d-flex"> <div class="dropdown"> <button class="btn dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-filter"></i> </button> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton"> <a class="dropdown-item active" href="#"> <input type="checkbox" aria-label=""> <i class="ic-user"></i> Mes blogs</a> <a class="dropdown-item" href="#"> <input type="checkbox" aria-label=""> <i class="ic-share"></i> Les blogs partagés avec moi </a> <a class="dropdown-item" href="#"> <input type="checkbox" aria-label=""> <i class="ic-public"></i> Blogs public </a> </div> </div> <div class="dropdown"> <button class="btn dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-sort-alpha-down"></i> </button> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton"> <a class="dropdown-item" href="" ng-repeat="sort in ctrl.context.orders track by sort.id" ng-class="ctrl.getSortClass(sort)" ng-click="ctrl.toggleSortOrder(sort)">{{sort.i18n}}</a> </div> </div> <a class="btn" href="explorer.html"><i class="ic-grid"></i></a> <a class="btn inactive" href="explorer-list.html"><i class="ic-list"></i></a> </div> </div> </section> <section class="explorer__view dominos dominos--square" ode-resource-list> <ode-list-folder> <ode-domino-folder folder="$parent.folder"></ode-domino-folder> </ode-list-folder> <ode-list-item> <ode-domino-item item="$parent.item"></ode-domino-item> </ode-list-item> </section> <ode-toaster></ode-toaster> </section> </main> </div>'},4332:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<ng-transclude ng-transclude-slot="folders" ng-repeat="folder in ctrl.model.loadedFolders track by folder.id"></ng-transclude> <ng-transclude ng-transclude-slot="items" ng-repeat="item in ctrl.model.loadedItems track by item.id"></ng-transclude>'},8558:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<aside class="sidebar sidebar--left"> <h1 class="sidebar__title"><i18n>explorer.sidebar.title</i18n></h1> <ul class="sidebar__tree"> <li ng-repeat="f in ctrl.model.context.folders track by f.id" ode-sidebar-folder="f" on-select="ctrl.onSelectFolder(folderCtrl)"></li> </ul> <a class="btn btn-outline-secondary btn-block"><i18n>explorer.sidebar.btn.create.label</i18n></a> <a class="btn btn-outline-secondary btn-block"><i18n>explorer.sidebar.btn.import.label</i18n></a> </aside> '},41:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=' <div ng-class="{\'d-none\': !ctrl.showMenu || ctrl.selectedRecorder !== \'none\'}" class="flex-fill"> <img class="img-fluid" skin-src="/img/illustrations/recorder-audio.svg" width="100" height="100" alt="recorder"> </div> <div ng-class="{ \'d-none\': !ctrl.showMenu || !ctrl.isAudioCompatible || ctrl.selectedRecorder !== \'none\'}" class="flex-fill"> <button type="button" ng-click="ctrl.switchRecorder(\'audio\')" class="btn btn-circle" i18n-title="embed.audio.title"> <i class="fas fa-microphone"></i> </button> </div> <div ng-class="{ \'d-none\': !ctrl.showMenu || !ctrl.isVideoCompatible || ctrl.selectedRecorder !== \'none\'}" class="flex-fill"> <button type="button" ng-click="ctrl.switchRecorder(\'video\')" class="btn btn-circle"> <i class="fas fa-video"></i> </button> </div> <div ng-if="!ctrl.isAudioCompatible && !ctrl.isVideoCompatible" class="flex-fill"> <p><i18n>recorder.not.supported</i18n></p> </div> <div id="audioRecorder" class="flex-fill" ng-if="ctrl.selectedRecorder === \'audio\'"> <div class="record-timer"> <i class="fas fa-microphone"></i> [[ctrl.time()]] </div> <div ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <input type="text" class="form-control" i18n-placeholder="title" ng-model="ctrl.recorder.title"/> </div> <div class="record-controls" ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <button id="btnAudioRecorder" type="button" class="btn btn-circle" ng-click="ctrl.switchAudioRecord()" ng-class="{ \'d-none\': ctrl.isVideo || !ctrl.isAudioCompatible }" ng-disabled="ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying || ctrl.isSaved"> <i class="fas" ng-class="{\'fa-microphone\': !ctrl.isRecording, \'fa-pause\': ctrl.isRecording}"></i> <span class="label" ng-if="ctrl.isIdle || ctrl.isStopped"><i18n>embed.record</i18n></span> <span class="label" ng-if="!ctrl.isRecording && !ctrl.isIdle && !ctrl.isStopped" ng-class="{\'d-none\': ctrl.isIdle}"><i18n>embed.resume</i18n></span> <span class="label" ng-if="ctrl.isRecording"><i18n>embed.suspend</i18n></span> </button> <button type="button" class="btn btn-circle" ng-click="ctrl.switchPlay()" ng-disabled="ctrl.disabledButtons || ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading"> <i class="fas" ng-class="ctrl.isPlaying ? \'fa-pause\' : \'fa-play\'"></i> <span class="label" ng-if="!ctrl.isPlaying"><i18n>embed.play</i18n></span> <span class="label" ng-if="ctrl.isPlaying"><i18n>embed.pause</i18n></span> </button> <button type="button" class="btn btn-circle" ng-click="ctrl.saveRecord()" ng-disabled="ctrl.disabledButtons || ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying"> <i ng-class="ctrl.getSaveBtnClass()"></i> <span class="label"><i18n>embed.save</i18n></span> </button> <button type="button" class="btn btn-circle btn-danger" ng-click="ctrl.clean()" ng-disabled="ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying"> <i class="fas fa-times"></i> <span class="label"><i18n>embed.redo</i18n></span> </button> </div> </div> <div id="videoRecorder" class="flex-fill" navigation-guard="true" guard-root="videoCapturedGuard" ng-if="ctrl.selectedRecorder === \'video\'"> <div class="record-timer"> <i class="fas fa-video"></i> [[ctrl.msToTime(ctrl.recorder.elapsedTime)]]/[[ctrl.msToTime(ctrl.recordMaxTime)]] </div> <div ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <select title="selectWebcam" class="form-select mb-2" ng-if="ctrl.videoInputDevices.length > 1" ng-options="vid as vid.label for vid in ctrl.videoInputDevices" ng-disabled="ctrl.isRecording" ng-model="ctrl.selectedVid" ng-change="ctrl.switchVideo(ctrl.selectedVid.deviceId)"> </select> </div> <div id="recorderWidgetVideoPlayer" class="record-widget-player"> </div> <div ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <label class="visually-hidden" for="video-recorder"><i18n>title</i18n></label> <input type="text" id="video-recorder" class="form-control" i18n-placeholder="title" ng-model="ctrl.recorder.title"/> </div> <div class="record-controls" custom-guard="recordGuard" ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <button id="btnVideoRecorder" type="button" class="btn btn-circle" ng-if="!(ctrl.isAudio) && ctrl.isVideoCompatible" ng-click="ctrl.switchVideoRecord()" ng-disabled="ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying || ctrl.isSaved"> <i class="fas" ng-class="{\'fa-stop\': ctrl.isRecording, \'fa-video\': !ctrl.isRecording}"></i> <span class="label">[[ctrl.isRecording ? \'embed.stop\' : \'embed.record\' | i18n]]</span> </button> <button type="button" class="btn btn-circle" ng-click="ctrl.switchPlay()" ng-disabled="ctrl.disabledButtons || ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading"> <i class="fas" ng-class="{\'fa-pause\': ctrl.isPlaying, \'fa-play\': !ctrl.isPlaying}"></i> <span class="label">[[ctrl.isPlaying ? \'embed.pause\' : \'embed.play\' | i18n]]</span> </button> <button type="button" class="btn btn-circle" ng-click="ctrl.saveRecord()" ng-disabled="ctrl.disabledButtons || ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying"> <i ng-class="ctrl.getSaveBtnClass()"></i> <span class="label"> <i18n>embed.save</i18n> </span> </button> <button type="button" class="btn btn-circle btn-danger" ng-click="ctrl.clean()" ng-disabled="ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying"> <i class="fas fa-times"></i> <span class="label"><i18n>embed.redo</i18n></span> </button> </div> </div> <div ng-class="{\'d-none\': !ctrl.displaySavedMessage, \'d-block\': ctrl.displaySavedMessage}"> <p class="text-success">{{ctrl.recorder.title}} <i18n>embed.saved.file</i18n></p> <a ng-href="/workspace/workspace#/apps" class="btn btn btn-outline-third rounded-pill d-inline-block mx-auto"><i18n>embed.goto.file</i18n></a> <button class="btn btn-link d-block mx-auto" ng-click="ctrl.clean()"><i18n>embed.new.recording</i18n></button> </div>'},3146:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<ode-modal visible="ctrl.display.showAuthenticatedConnectorLightbox" on-close="ctrl.onClose()"> <ode-modal-title> <i18n>apps.authenticatedConnector.lightbox.title</i18n> </ode-modal-title> <ode-modal-body> <p class="text-center"> <i18n>apps.authenticatedConnector.lightbox.content</i18n> </p> </ode-modal-body> <ode-modal-footer> <button class="btn btn-light text-primary" ng-click="ctrl.onClose()"> <i18n>cancel</i18n> </button> <button class="btn btn-primary" ng-click="ctrl.onConfirm()"> <i18n>confirm</i18n> </button> </ode-modal-footer> </ode-modal> '},2306:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<i class="ic-help" ng-click="onHelp()"></i> <ode-modal class="modal-help" visible="display.read" on-close="display.read = false"> <ode-modal-title></ode-modal-title> <ode-modal-body><div></div></ode-modal-body> </ode-modal> '},959:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=' <header class="no-2d navbar navbar-light bg-white" ng-if="ctrl.is1D"> <a class="application__title d-desktop-none text-truncate" href="/welcome?token=[[ctrl.version]]" ng-bind-html="ctrl.title"> </a> <div class="d-mobile-none"> <img ng-src="[[ctrl.avatar]]"/> <span href="" translate key="welcome"></span> </div> <nav class="navigation"> <div class="navigation__item" ng-if="me.hasWorkflow(\'org.entcore.conversation.controllers.ConversationController|view\')"> <span> <a href="/conversation/conversation" i18n-title="navbar.messages" aria-label="navbar.messages"> <i class="ic-conversation"><span class="new-mails" ng-if="nbNewMessages">[[nbNewMessages]]</span></i> </a> </span> </div> <div class="navigation__item"> <a href="/userbook/mon-compte" i18n-title="navbar.myaccount"> <i class="ic-avatar"></i> </a> </div> <div class="navigation__item" ng-if="ctrl.currentLanguage == \'fr\'" pulsar="{index:5, style:{zIndex:1021}, i18n:\'portal.pulsar.help\', position:\'bottom center\'}"> <a href="" i18n-title="navbar.help"> <help></help> </a> </div> <div class="navigation__item"> <a href="" logout i18n-title="navbar.disconnect"> <i class="ic-disconnect"></i> </a> </div> </nav> </header> <div class="no-2d navigation--secondary"> <a class="d-mobile-none" href="/timeline/timeline"> <img class="logo" skin-src="img/illustrations/logo.png" alt="Logo de l\'ENT"> <span class="text-truncate d-desktop-none" ng-bind-html="ctrl.title"></span> </a> <nav class="navigation"> <a class="button" href="/timeline/timeline?token=[[ctrl.version]]"> <i class="ic-notifications d-desktop-none"></i> <span class="d-mobile-none"> <i18n>portal.header.navigation.whatsnew</i18n> </span> </a> <a class="button" href="/userbook/annuaire?myClass&token=[[ctrl.version]]"> <i class="ic-userbook d-desktop-none"></i> <span class="d-mobile-none"> <i18n>portal.header.navigation.classMembers</i18n> </span> </a> <a class="button" href="/welcome?token=[[ctrl.version]]"> <i class="ic-apps d-desktop-none"></i> <span class="d-mobile-none"> <i18n>portal.header.navigation.myapps</i18n> </span> </a> </nav> </div> <header class="no-1d navbar sticky-top bg-secondary" ng-if="ctrl.is2D"> <div class="container"> <a class="navbar-brand" href="/timeline/timeline?token=[[ctrl.version]]" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'timeline\', \'from\':\'logo\'} })"> <img class="logo" skin-src="img/illustrations/logo.png" alt="Logo de l\'ENT"> </a> <nav class="navbar-nav"> <a href="/timeline/timeline" class="nav-link" i18n-title="navbar.home" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'timeline\', \'from\':\'menu\'} })"> <i class="ic-home" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.home</i18n></span> </a> <a href="/community" data-community class="nav-link d-none d-sm-block" i18n-title="navbar.community" ng-if="me.hasWorkflow(\'net.atos.entng.community.controllers.CommunityController|view\')" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'community\'} })"> <i class="ic-community" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.community</i18n></span> </a> <popover pulsar="{index:3, style:{zIndex:1021}, i18n:\'portal.pulsar.apps\', position:\'bottom center\'}"> <a href="/welcome" class="nav-link pe-mobile" i18n-title="navbar.applications" popover-opener ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'welcome\', \'from\':\'menu\'} })"> <i class="ic-apps" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.applications</i18n></span> </a> <popover-content class="widget"> <div class="widget-applications"> <div class="widget-body d-flex flex-wrap"> <div class="text-dark" ng-if="ctrl.apps.length === 0"> <i18n>navbar.myapps.more</i18n> </div> <div class="bookmarked-app" ng-repeat="app in ctrl.apps track by $index"> <a connector-lightbox-trigger="app" aria-label="[[app.displayName]]" href="[[app.address]]" target="[[app.target]]" i18n-title="[[app.displayName]]" ng-switch="app.icon.indexOf(\'/\')" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'app\', \'app\':app} })"> <i class="fs-1" ng-class="ctrl.getIconClass(app)" ng-switch-when="-1"></i> <img skin-src="[[app.icon]]" ng-switch-default alt="[[app.displayName]]"/> </a> </div> </div> <div class="widget-footer border-top border-ghost"> <div class="widget-footer-action"> <a class="link" href="/welcome" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'welcome\', \'from\':\'more\'} })"> <i18n>plus</i18n> </a> </div> </div> </div> </popover-content> </popover> <div class="nav-link conversation" ng-include="ctrl.conversationUnreadUrl" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'conversation\'} })"> </div> <popover class="nav-link d-none d-sm-inline-block" ng-if="me.hasWorkflow(\'fr.openent.searchengine.controllers.SearchEngineController|view\')"> <a href="/searchengine" i18n-title="navbar.search" popover-opener class="pe-mobile" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'searchengine\', \'from\':\'menu\'} })"> <i class="ic-search" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.search</i18n></span> </a> <popover-content class="widget searchPortal"> <div class="content searchContent"> <div class="search-text row"> <label class="sr-only" for="searchInput">mysearch</label> <input type="text" id="searchInput" class="searchInput" id="searchInput" name="mysearch" ng-model="ctrl.mysearch" ng-keyup="ctrl.launchSearch($event, \'key\');"/> <button class="searchButton" ng-click="ctrl.launchSearch($event, \'button\');"> <i18n>ok</i18n> </button> </div> </div> </popover-content> </popover> <a href="#" i18n-title="navbar.help" class="nav-link" pulsar="{ index:5, style:{zIndex:1021}, i18n:\'portal.pulsar.help\', position:\'bottom center\'}" ng-if="ctrl.currentLanguage == \'fr\'" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'help\'} })"> <help></help> </a> <a href="/userbook/mon-compte" i18n-title="navbar.myaccount" class="nav-link d-none d-sm-block" pulsar="{ index:4, style:{zIndex:1021}, i18n:\'portal.pulsar.account\', position:\'bottom center\'}" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'myaccount\'} })"> <img class="avatar" data-ng-src="[[ctrl.avatar ? ctrl.avatar+\'?thumbnail=48x48\' : \'\']]" width="30" height="30" alt="[[ctrl.username]]"/> <span class="sr-only"><i18n>navbar.myaccount</i18n></span> </a> <a href="#" class="nav-link d-none d-sm-inline-flex" logout i18n-title="navbar.disconnect"> <i class="ic-disconnect" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.disconnect</i18n></span> </a> <div class="dropdown d-inline-block d-sm-none"> <button id="dropdown-label" type="button" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"></button> <ul class="dropdown-menu dropdown-menu-end" data-bs-popper aria-labelledby="dropdown-label"> <li ng-if="me.hasWorkflow(\'fr.openent.searchengine.controllers.SearchEngineController|view\')"> <a class="dropdown-item" href="/searchengine" i18n-title="navbar.search"> <i class="ic-search"></i> <i18n>navbar.search</i18n> </a> </li> <li> <a class="dropdown-item" href="/userbook/mon-compte" i18n-title="navbar.myaccount" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'myaccount\'} })"> <img class="avatar" data-ng-src="[[ctrl.avatar ? ctrl.avatar+\'?thumbnail=48x48\' : \'\']]" width="20" height="20" alt="[[ctrl.username]]"/> <i18n>navbar.myaccount</i18n> </a> </li> <li data-community ng-if="me.hasWorkflow(\'net.atos.entng.community.controllers.CommunityController|view\')"> <a class="dropdown-item" href="/community" i18n-title="navbar.community" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'community\'} })"> <i class="ic-community" aria-hidden="true"></i> <i18n>navbar.community</i18n> </a> </li> <li><hr class="dropdown-divider"></li> <li> <a class="dropdown-item" href="" logout i18n-title="navbar.disconnect"> <i class="ic-disconnect"></i> <i18n>navbar.disconnect</i18n> </a> </li> </ul> </div> </nav> </div> </header> '},8259:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=' <div class="toaster" ng-class="ctrl.getClass()"> <a href="" ng-repeat="a in ctrl.model.context.actions | filter:{available:true} track by a.id" ng-if="ctrl.isActivable(a)" ng-class="ctrl.getActionClass(a)" ng-click="ctrl.activate(a)">{{ctrl.getI18nKey(a)|i18n}}</a> <a href="" ng-class="ctrl.getActionClass({id:\'share\', available:true})" ng-click="ctrl.activate({id:\'share\', available:true})">{{ctrl.getI18nKey({id:\'share\', available:true})|i18n}}</a> </div> <ode-modal id="editProperty" ng-if="ctrl.showProps" visible="ctrl.showProps" on-close="ctrl.closeProps()"> <ode-modal-title><i18n>explorer.modal.props.title</i18n> "Titre de la ressource"</ode-modal-title> <ode-modal-body> <ode-props-panel props="ctrl.props" item="ctrl.items[0]"></ode-props-panel> </ode-modal-body> <ode-modal-footer> <button type="button" class="btn btn-link" data-dismiss="modal" ng-click="ctrl.closeProps()"><i18n>explorer.modal.props.btn.cancel.label</i18n></button> <button type="button" class="btn btn-primary"><i18n>explorer.modal.props.btn.record.label</i18n></button> </ode-modal-footer> </ode-modal> <ode-modal id="shareProperty" ng-if="ctrl.showShares" visible="ctrl.showShares" on-close="ctrl.closeShares()"> <ode-modal-title><i18n>share.title</i18n></ode-modal-title> <ode-modal-body> <ode-share-panel auto-close="true"></ode-share-panel> <div class="share" ng-show="!isCloseConfirmLoaded()"> <h3><i18n>share.publish.title</i18n></h3> <div class="row publication-option"> <label> <input type="radio" name="publish-type" ng-model="display.publishType" ng-change="updatePublishType()" value="IMMEDIATE"/> <i18n>share.publish.immediate</i18n> </label> <label> <input type="radio" name="publish-type" ng-model="display.publishType" ng-change="updatePublishType()" value="RESTRAINT"/> <i18n>share.publish.differed</i18n> </label> </div> </div> </ode-modal-body> <ode-modal-footer> <button type="button" class="btn btn-link" data-dismiss="modal" ng-click="ctrl.closeShares()"><i18n>explorer.modal.props.btn.cancel.label</i18n></button> <button type="button" class="btn btn-primary"><i18n>explorer.modal.props.btn.record.label</i18n></button> </ode-modal-footer> </ode-modal> '},4809:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<div class="row"> <input type="text" ng-model="ctrl.search" i18n-placeholder="search" autocomplete="off"/> </div> '},9018:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<div class="toast fade" role="alert" aria-live="assertive" aria-atomic="true"> <div class="toast-header"> <strong class="me-auto">[[header]]</strong> <small class="text-muted">[[since]]</small> <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close" ng-click="visible(false)"></button> </div> <div class="toast-body" ng-transclude></div> </div>'},9068:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<section class="lightbox" ng-class="{\'lightbox\': !tiny, \'tiny-lightbox\': tiny}"> <div class="background"></div> <div class="content"> <div class="twelve cell" ng-transclude></div> <div class="close-lightbox"> <i class="close-2x"></i> </div> </div> </section>'},7597:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="{{ctrl.id+\'Label\'}}" aria-hidden="true" ng-class="{show: ctrl.visible}" ng-style="ctrl.getStyle()"> <div class="modal-backdrop fade show" style="z-index:1040"></div> <div class="modal-dialog" ng-class="ctrl.getSizeClass()" role="document" style="z-index:1050"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="{{ctrl.id+\'Label\'}}" ng-transclude="title"></h5> <button type="button" class="btn-close" aria-label="Close" ng-if="ctrl.onClose" ng-click="ctrl.onClose()"> </button> </div> <div class="modal-body" ng-transclude="body"></div> <div class="modal-footer" ng-transclude="footer"></div> </div> </div> </div> '},9325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<style id="pulsar-css">pulsar{z-index:1036;position:absolute;pointer-events:all}.pulsar-layer{box-shadow:0 0 0 99999px rgb(0 0 0 / 60%);position:absolute;border-radius:2px;z-index:1035}pulsar .content{background:#fff;width:300px;box-shadow:1px 1px 7px rgb(0 0 0 / 40%);padding:15px;box-sizing:border-box;border:6px solid #ddd;border-radius:2px;position:relative}pulsar .content .inf{position:absolute;left:10px;top:10px;color:#fff;background:#ffaa4d;border-radius:50%;line-height:22px;text-align:center;width:22px;height:22px}pulsar .content .inf::before{font-size:18px;content:\'i\';font-style:italic;font-weight:700;display:inline-block;margin-left:-1px}pulsar .content .close{position:absolute;right:10px;top:10px;width:22px;height:22px;line-height:17px;background:#ddd;border-radius:50%;color:#636363}pulsar i.close{font-family:generic-icons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none;font-weight:400!important;text-align:center;cursor:pointer;font-style:normal}pulsar .content>div.text{margin-top:25px;padding:10px;font-size:14px;line-height:18px}pulsar .content .close::before{content:\'\\e866\';font-size:9px}pulsar nav.dots ul{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:0;margin:15px 0 25px}pulsar nav.dots li.dot{list-style-type:none;margin:0 10px;cursor:pointer}pulsar nav.dots li.dot::before{content:" ";display:block;width:17px;height:17px;background:0 0;border:2px solid silver;border-radius:50%;box-sizing:border-box;transition:all 250ms ease}pulsar nav.dots li.dot:hover::before{border-color:#ff8500;background:0 0}nav.dots li.dot.active::before{color:#4bafd5}pulsar nav.dots li.dot.active::before{border-color:#ff8500;background:#ff8500}pulsar nav.dots li.dot::before{font-size:60px;width:12px;height:12px}pulsar nav.dots li.dot::before{content:" ";display:block;width:17px;height:17px;background:0 0;border:2px solid silver;border-radius:50%;box-sizing:border-box;transition:all 250ms ease}pulsar .arrow{width:0;height:0;border-style:solid;border-width:0 8.4px 14px 8.4px;border-color:transparent transparent #ddd transparent;z-index:1;position:absolute}pulsar.middle .arrow{left:calc(50% - 7px);top:-14px}pulsar.left .arrow{transform:rotate(90deg);right:-14px}pulsar.left.top .arrow{top:1px}pulsar.left.center .arrow{top:calc(50% - 7px)}pulsar.right.center .arrow{top:calc(50% - 7px)}pulsar.right .arrow{transform:rotate(270deg);left:-14px}pulsar.right.top .arrow{top:1px}pulsar.center.top .arrow{transform:rotate(180deg);top:100%;left:calc(50% - 7px)}pulsar.bottom .arrow{top:-14px}pulsar.bottom.center .arrow{left:calc(50% - 7px)}pulsar.bottom.left .arrow,pulsar.bottom.right .arrow{top:1px}pulsar.bottom.right .arrow{left:-14px;transform:rotate(-90deg)}pulsar.bottom.left .arrow{transform:rotate(90deg);right:-14px;left:auto}.pulsar-button{position:absolute;z-index:999;width:40px;height:40px}.pulsar-button::after,.pulsar-button::before{content:"";opacity:.5;position:absolute;z-index:-1;inset:-6px 0 0 -6px;height:42px;width:42px;content:"";border-radius:50%;box-shadow:0 0 5px 6px rgb(120 218 255 / 60%);transform:scale(.1,.1);transition:all 250ms ease;animation:pulsate 1s ease-out;animation-iteration-count:infinite}.pulsar-button::after{animation-delay:.3s}.pulse-spot{position:absolute;cursor:pointer;width:30px;height:30px;font-size:18px;text-align:center;line-height:21px;font-weight:700;color:#fff;border-radius:50%;border:4px solid transparent;background:#ff8500;transition:all 250ms ease}.pulse-spot::before{content:\'i\';font-style:italic;font-family:\'Times New Roman\',Times,serif}pulsar .row{flex-direction:row-reverse;justify-content:space-between;margin-left:0!important;margin-right:0!important;max-width:100%;width:100%;position:relative;clear:both;box-sizing:border-box}pulsar .row>*{width:auto}@keyframes pulsate{0%{transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2,1.2);opacity:0}}.pulsar-button{display:none}@media (min-width:992px){.pulsar-button{display:block}}</style>'},6066:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<style id="widget-container-css">ul[dnd-list],ul[dnd-list]>li{position:relative}ul[dnd-list]{padding-left:0}ul[dnd-list][dnd-drop]{min-height:42px;transition:all .1s ease-in-out 0s}ul[dnd-list][dnd-dragover].dndReject{display:block;background-color:#ff8c8c;min-height:90px;border-radius:6px;margin-bottom:2em}ul[dnd-list] .dndDraggingSource{display:none}ul[dnd-list] .dndPlaceholder{display:block;background-color:#ffdbb7;min-height:90px;border-radius:6px;margin-bottom:2em}ul[dnd-list] li{list-style:none}.dndDragging:not(.dndDraggingSource){cursor:grabbing!important;border:1px solid rgb(255 133 0)}.dnDragover{cursor:grabbing}.dndDragging:not(.dndDraggingSource):active,.dndDragging:not(.dndDraggingSource):focus,.dndDragging:not(.dndDraggingSource):hover{cursor:grabbing;cursor:-webkit-grabbing}</style> <ul dnd-list dnd-allowed-types="[]" ng-if="ctrl.lockedWidgets.length"> <li ng-repeat="widget in ctrl.lockedWidgets track by widget.platformConf.id" class="widget widget-locked" ode-widget="widget"> </li> </ul> <ul dnd-list dnd-allowed-types="[\'left\',\'right\']" dnd-dragover="ctrl.onDnDDragOver(event, index, type, dropEffect)" dnd-drop="ctrl.onDnDDrop(event, item, index, dropEffect)"> <li ng-repeat="widget in ctrl.dndWidgets track by widget.platformConf.id" class="widget" ode-widget="widget" dnd-draggable="widget.platformConf.id" dnd-type="widget.userPref.position" dnd-disable-if="ctrl.isMobileView"> </li> </ul>'},2011:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r="<span>{{ctrl.sayHello()}}</span>"},991:function(e){e.exports=function(e,t){var n=window,r=document,i={on:function(e,t,r){"addEventListener"in n?e.addEventListener(t,r,!1):e.attachEvent("on"+t,r)},off:function(e,t,r){"removeEventListener"in n?e.removeEventListener(t,r,!1):e.detachEvent("on"+t,r)},bind:function(e,t){return function(){e.apply(t,arguments)}},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},config:function(e,t){return null!=e?e:t},transSupport:!1,useFilter:/msie [678]/i.test(navigator.userAgent),_checkTransition:function(){var e=r.createElement("div"),t={webkit:"webkit",Moz:"",O:"o",ms:"MS"};for(var n in t)n+"Transition"in e.style&&(this.vendorPrefix=t[n],this.transSupport=!0)}};i._checkTransition();var o=function(e){e||(e={}),this.queue=[],this.baseCls=e.baseCls||"humane",this.addnCls=e.addnCls||"",this.timeout="timeout"in e?e.timeout:2500,this.waitForMove=e.waitForMove||!1,this.clickToClose=e.clickToClose||!1,this.timeoutAfterMove=e.timeoutAfterMove||!1,this.container=e.container;try{this._setupEl()}catch(e){i.on(n,"load",i.bind(this._setupEl,this))}};return o.prototype={constructor:o,_setupEl:function(){var e=r.createElement("div");if(e.style.display="none",!this.container){if(!r.body)throw"document.body is null";this.container=r.body}this.container.appendChild(e),this.el=e,this.removeEvent=i.bind((function(){var e=i.config(this.currentMsg.timeoutAfterMove,this.timeoutAfterMove);e?setTimeout(i.bind(this.remove,this),e):this.remove()}),this),this.transEvent=i.bind(this._afterAnimation,this),this._run()},_afterTimeout:function(){i.config(this.currentMsg.waitForMove,this.waitForMove)?this.removeEventsSet||(i.on(r.body,"mousemove",this.removeEvent),i.on(r.body,"click",this.removeEvent),i.on(r.body,"keypress",this.removeEvent),i.on(r.body,"touchstart",this.removeEvent),this.removeEventsSet=!0):this.remove()},_run:function(){if(!this._animating&&this.queue.length&&this.el){this._animating=!0,this.currentTimer&&(clearTimeout(this.currentTimer),this.currentTimer=null);var e=this.queue.shift();i.config(e.clickToClose,this.clickToClose)&&(i.on(this.el,"click",this.removeEvent),i.on(this.el,"touchstart",this.removeEvent));var t=i.config(e.timeout,this.timeout);t>0&&(this.currentTimer=setTimeout(i.bind(this._afterTimeout,this),t)),i.isArray(e.html)&&(e.html="<ul><li>"+e.html.join("<li>")+"</ul>"),this.el.innerHTML=e.html,this.currentMsg=e,this.el.className=this.baseCls,i.transSupport?(this.el.style.display="block",setTimeout(i.bind(this._showMsg,this),50)):this._showMsg()}},_setOpacity:function(e){if(i.useFilter)try{this.el.filters.item("DXImageTransform.Microsoft.Alpha").Opacity=100*e}catch(e){}else this.el.style.opacity=String(e)},_showMsg:function(){var e=i.config(this.currentMsg.addnCls,this.addnCls);if(i.transSupport)this.el.className=this.baseCls+" "+e+" "+this.baseCls+"-animate";else{var t=0;this.el.className=this.baseCls+" "+e+" "+this.baseCls+"-js-animate",this._setOpacity(0),this.el.style.display="block";var n=this,r=setInterval((function(){t<1?((t+=.1)>1&&(t=1),n._setOpacity(t)):clearInterval(r)}),30)}},_hideMsg:function(){var e=i.config(this.currentMsg.addnCls,this.addnCls);if(i.transSupport)this.el.className=this.baseCls+" "+e,i.on(this.el,i.vendorPrefix?i.vendorPrefix+"TransitionEnd":"transitionend",this.transEvent);else var t=1,n=this,r=setInterval((function(){t>0?((t-=.1)<0&&(t=0),n._setOpacity(t)):(n.el.className=n.baseCls+" "+e,clearInterval(r),n._afterAnimation())}),30)},_afterAnimation:function(){i.transSupport&&i.off(this.el,i.vendorPrefix?i.vendorPrefix+"TransitionEnd":"transitionend",this.transEvent),this.currentMsg.cb&&this.currentMsg.cb(),this.el.style.display="none",this._animating=!1,this._run()},remove:function(e){var t="function"==typeof e?e:null;i.off(r.body,"mousemove",this.removeEvent),i.off(r.body,"click",this.removeEvent),i.off(r.body,"keypress",this.removeEvent),i.off(r.body,"touchstart",this.removeEvent),i.off(this.el,"click",this.removeEvent),i.off(this.el,"touchstart",this.removeEvent),this.removeEventsSet=!1,t&&this.currentMsg&&(this.currentMsg.cb=t),this._animating?this._hideMsg():t&&t()},log:function(e,t,n,r){var i={};if(r)for(var o in r)i[o]=r[o];if("function"==typeof t)n=t;else if(t)for(var o in t)i[o]=t[o];return i.html=e,n&&(i.cb=n),this.queue.push(i),this._run(),this},spawn:function(e){var t=this;return function(n,r,i){return t.log.call(t,n,r,i,e),t}},create:function(e){return new o(e)}},new o}()},9740:function(e,t,n){!function(e){"use strict";
|
|
1
|
+
(()=>{var __webpack_modules__={807:()=>{!function(e){var t="application/x-dnd",n="application/json",r="Text",i=["move","copy","link"];function o(e,t){return"all"==t?e:e.filter((function(e){return-1!=t.toLowerCase().indexOf(e)}))}e.directive("dndDraggable",["$parse","$timeout",function(e,s){return function(c,u,l){u.attr("draggable","true"),l.dndDisableIf&&c.$watch(l.dndDisableIf,(function(e){u.attr("draggable",!e)})),u.on("dragstart",(function(d){if(d=d.originalEvent||d,"false"==u.attr("draggable"))return!0;a.isDragging=!0,a.itemType=l.dndType&&c.$eval(l.dndType).toLowerCase(),a.dropEffect="none",a.effectAllowed=l.dndEffectAllowed||i[0],d.dataTransfer.effectAllowed=a.effectAllowed;var f=c.$eval(l.dndDraggable),h=t+(a.itemType?"-"+a.itemType:"");try{d.dataTransfer.setData(h,angular.toJson(f))}catch(e){var p=angular.toJson({item:f,type:a.itemType});try{d.dataTransfer.setData(n,p)}catch(e){var v=o(i,a.effectAllowed);d.dataTransfer.effectAllowed=v[0],d.dataTransfer.setData(r,p)}}if(u.addClass("dndDragging"),s((function(){u.addClass("dndDraggingSource")}),0),d._dndHandle&&d.dataTransfer.setDragImage&&d.dataTransfer.setDragImage(u[0],0,0),e(l.dndDragstart)(c,{event:d}),l.dndCallback){var m=e(l.dndCallback);a.callback=function(e){return m(c,e||{})}}d.stopPropagation()})),u.on("dragend",(function(t){t=t.originalEvent||t,c.$apply((function(){var n=a.dropEffect;e(l[{copy:"dndCopied",link:"dndLinked",move:"dndMoved",none:"dndCanceled"}[n]])(c,{event:t}),e(l.dndDragend)(c,{event:t,dropEffect:n})})),a.isDragging=!1,a.callback=void 0,u.removeClass("dndDragging"),u.removeClass("dndDraggingSource"),t.stopPropagation(),s((function(){u.removeClass("dndDraggingSource")}),0)})),u.on("click",(function(t){l.dndSelected&&(t=t.originalEvent||t,c.$apply((function(){e(l.dndSelected)(c,{event:t})})),t.stopPropagation())})),u.on("selectstart",(function(){this.dragDrop&&this.dragDrop()}))}}]),e.directive("dndList",["$parse",function(e){return function(s,c,u){var l=function(){var e;return angular.forEach(c.children(),(function(t){var n=angular.element(t);n.hasClass("dndPlaceholder")&&(e=n)})),e||angular.element("<li class='dndPlaceholder'></li>")}();l.remove();var d=l[0],f=c[0],h={};function p(e){if(!e)return r;for(var i=0;i<e.length;i++)if(e[i]==r||e[i]==n||e[i].substr(0,t.length)==t)return e[i];return null}function v(e){return a.isDragging?a.itemType||void 0:e==r||e==n?null:e&&e.substr(t.length+1)||void 0}function m(e){return!h.disabled&&(!(!h.externalSources&&!a.isDragging)&&(!h.allowedTypes||null===e||e&&-1!=h.allowedTypes.indexOf(e)))}function y(e,t){var n=i;return t||(n=o(n,e.dataTransfer.effectAllowed)),a.isDragging&&(n=o(n,a.effectAllowed)),u.dndEffectAllowed&&(n=o(n,u.dndEffectAllowed)),n.length?e.ctrlKey&&-1!=n.indexOf("copy")?"copy":e.altKey&&-1!=n.indexOf("link")?"link":n[0]:"none"}function g(){return l.remove(),c.removeClass("dndDragover"),!0}function b(t,n,r,i,o,c){return e(t)(s,{callback:a.callback,dropEffect:r,event:n,external:!a.isDragging,index:void 0!==o?o:w(),item:c||void 0,type:i})}function w(){return Array.prototype.indexOf.call(f.children,d)}c.on("dragenter",(function(e){e=e.originalEvent||e;var t=u.dndAllowedTypes&&s.$eval(u.dndAllowedTypes);h={allowedTypes:angular.isArray(t)&&t.join("|").toLowerCase().split("|"),disabled:u.dndDisableIf&&s.$eval(u.dndDisableIf),externalSources:u.dndExternalSources&&s.$eval(u.dndExternalSources),horizontal:u.dndHorizontalList&&s.$eval(u.dndHorizontalList)};var n=p(e.dataTransfer.types);if(!n||!m(v(n)))return!0;e.preventDefault()})),c.on("dragover",(function(e){var t=p((e=e.originalEvent||e).dataTransfer.types),n=v(t);if(!t||!m(n))return!0;if(d.parentNode!=f&&c.append(l),e.target!=f){for(var i=e.target;i.parentNode!=f&&i.parentNode;)i=i.parentNode;if(i.parentNode==f&&i!=d){var o=i.getBoundingClientRect();if(h.horizontal)var a=e.clientX<o.left+o.width/2;else a=e.clientY<o.top+o.height/2;f.insertBefore(d,a?i:i.nextSibling)}}var s=t==r,w=y(e,s);return"none"==w||u.dndDragover&&!b(u.dndDragover,e,w,n)?g():(e.preventDefault(),s||(e.dataTransfer.dropEffect=w),c.addClass("dndDragover"),e.stopPropagation(),!1)})),c.on("drop",(function(e){var t=p((e=e.originalEvent||e).dataTransfer.types),i=v(t);if(!t||!m(i))return!0;e.preventDefault();try{var o=JSON.parse(e.dataTransfer.getData(t))}catch(e){return g()}if((t==r||t==n)&&(i=o.type||void 0,o=o.item,!m(i)))return g();var c=t==r,l=y(e,c);if("none"==l)return g();var d=w();return u.dndDrop&&!(o=b(u.dndDrop,e,l,i,d,o))?g():(a.dropEffect=l,c||(e.dataTransfer.dropEffect=l),!0!==o&&s.$apply((function(){s.$eval(u.dndList).splice(d,0,o)})),b(u.dndInserted,e,l,i,d,o),g(),e.stopPropagation(),!1)})),c.on("dragleave",(function(e){e=e.originalEvent||e;var t=document.elementFromPoint(e.clientX,e.clientY);f.contains(t)&&!e._dndPhShown?e._dndPhShown=!0:g()}))}}]),e.directive("dndNodrag",(function(){return function(e,t,n){t.attr("draggable","true"),t.on("dragstart",(function(e){(e=e.originalEvent||e)._dndHandle||(e.dataTransfer.types&&e.dataTransfer.types.length||e.preventDefault(),e.stopPropagation())})),t.on("dragend",(function(e){(e=e.originalEvent||e)._dndHandle||e.stopPropagation()}))}})),e.directive("dndHandle",(function(){return function(e,t,n){t.attr("draggable","true"),t.on("dragstart dragend",(function(e){(e=e.originalEvent||e)._dndHandle=!0}))}}));var a={}}(angular.module("dndLists",[]))},2729:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"e42fe8833e44d61abdaa936837b6b949.html"},925:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"31451cacc32b12533b35bc2756a66c68.html"},6722:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"7f0136c03fe438995347a346ee478b3a.html"},2890:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"f3f8289907cc5f53b11e2bc5f451be96.html"},3890:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"d6dec5bea5ec25a97b20e8259e193c57.html"},8203:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"5a177ed9e4e64baa8287a6f6e5625ab4.html"},5230:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n.p+"2ebddef9552e6e74febdcc049e7b6cea.html"},8754:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<article class="domino folder" ng-class="{active: ctrl.selected}" ng-click="ctrl.toggleSelect()" ng-dblclick="ctrl.openSubfolder()"> <div class="domino__image"> <i class="fas ic-folder text-secondary"></i> </div> <div class="domino__infos"> <h2 class="domino__title">{{ctrl.folder.name}}</h2> <span class="domino__info">Il y a 2 heures</span> </div> </article> '},3282:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<article class="domino item" ng-class="{active: ctrl.selected}" ng-click="ctrl.toggleSelect()"> <div class="domino__image"> <div class="domino__overlay transition-hover"> <div class="domino__overlay--left"> <span title="{{\'explorer.domino.info.public.title\'|i18n}}" ng-show="{{ctrl.item.public}}"><i class="ic-public"></i></span> <span title="{{\'explorer.domino.info.shared.title\'|i18n}}" ng-show="{{ctrl.item.shared}}"><i class="ic-share"></i></span> </div> <div class="domino__overlay--right"> <span title="{{\'explorer.domino.info.views.title\'|i18n}}"><i class="ic-view"></i>{{ctrl.item.views}}</span> <span title="{{\'explorer.domino.info.comments.title\'|i18n}}"><i class="ic-comment"></i>{{ctrl.item.comments}}</span> </div> </div> </div> <div class="domino__infos"> <h2 class="domino__title">{{ctrl.item.name}}</h2> <span class="domino__info"><i18n>explorer.domino.info.updated.by</i18n> <a>{{ctrl.item.modifierName}}</a></span> <span class="domino__info">Il y a 2 semaines</span> </div> </article>'},85:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<div class="container d-flex"> <ode-sidebar></ode-sidebar> <main class="main-content"> <section class="explorer"> <section class="explorer__header"> <form class="row justify-content-between mb-2"> <div class="col-lg-9 col-md-12 input-searchbar"> <i class="ic-search form-control-feedback"></i> <input type="search" class="form-control" id="" i18n-placeholder="explorer.searchbar.placeholder"> </div> <div class="col-lg-3 d-none d-sm-none d-md-none d-lg-block"> <button class="btn btn-block btn-primary" type="submit" ng-click="ctrl.onCreate()"> <i class="ic-plus"></i> <i18n>explorer.toaster.btn.create.label</i18n> </button> </div> </form> <div class="d-flex justify-content-between align-items-center mb-2"> <h2>{{ctrl.model.currentFolder.name}}</h2> <div class="filters d-flex"> <div class="dropdown"> <button class="btn dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-filter"></i> </button> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton"> <a class="dropdown-item active" href="#"> <input type="checkbox" aria-label=""> <i class="ic-user"></i> Mes blogs</a> <a class="dropdown-item" href="#"> <input type="checkbox" aria-label=""> <i class="ic-share"></i> Les blogs partagés avec moi </a> <a class="dropdown-item" href="#"> <input type="checkbox" aria-label=""> <i class="ic-public"></i> Blogs public </a> </div> </div> <div class="dropdown"> <button class="btn dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-sort-alpha-down"></i> </button> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton"> <a class="dropdown-item" href="" ng-repeat="sort in ctrl.context.orders track by sort.id" ng-class="ctrl.getSortClass(sort)" ng-click="ctrl.toggleSortOrder(sort)">{{sort.i18n}}</a> </div> </div> <a class="btn" href="explorer.html"><i class="ic-grid"></i></a> <a class="btn inactive" href="explorer-list.html"><i class="ic-list"></i></a> </div> </div> </section> <section class="explorer__view dominos dominos--square" ode-resource-list> <ode-list-folder> <ode-domino-folder folder="$parent.folder"></ode-domino-folder> </ode-list-folder> <ode-list-item> <ode-domino-item item="$parent.item"></ode-domino-item> </ode-list-item> </section> <ode-toaster></ode-toaster> </section> </main> </div>'},4332:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<ng-transclude ng-transclude-slot="folders" ng-repeat="folder in ctrl.model.loadedFolders track by folder.id"></ng-transclude> <ng-transclude ng-transclude-slot="items" ng-repeat="item in ctrl.model.loadedItems track by item.id"></ng-transclude>'},8558:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<aside class="sidebar sidebar--left"> <h1 class="sidebar__title"><i18n>explorer.sidebar.title</i18n></h1> <ul class="sidebar__tree"> <li ng-repeat="f in ctrl.model.context.folders track by f.id" ode-sidebar-folder="f" on-select="ctrl.onSelectFolder(folderCtrl)"></li> </ul> <a class="btn btn-outline-secondary btn-block"><i18n>explorer.sidebar.btn.create.label</i18n></a> <a class="btn btn-outline-secondary btn-block"><i18n>explorer.sidebar.btn.import.label</i18n></a> </aside> '},41:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=' <div ng-class="{\'d-none\': !ctrl.showMenu || ctrl.selectedRecorder !== \'none\'}" class="flex-fill"> <img class="img-fluid" skin-src="/img/illustrations/recorder-audio.svg" width="100" height="100" alt="recorder"> </div> <div ng-class="{ \'d-none\': !ctrl.showMenu || !ctrl.isAudioCompatible || ctrl.selectedRecorder !== \'none\'}" class="flex-fill"> <button type="button" ng-click="ctrl.switchRecorder(\'audio\')" class="btn btn-circle" i18n-title="embed.audio.title"> <i class="fas fa-microphone"></i> </button> </div> <div ng-class="{ \'d-none\': !ctrl.showMenu || !ctrl.isVideoCompatible || ctrl.selectedRecorder !== \'none\'}" class="flex-fill"> <button type="button" ng-click="ctrl.switchRecorder(\'video\')" class="btn btn-circle"> <i class="fas fa-video"></i> </button> </div> <div ng-if="!ctrl.isAudioCompatible && !ctrl.isVideoCompatible" class="flex-fill"> <p><i18n>recorder.not.supported</i18n></p> </div> <div id="audioRecorder" class="flex-fill" ng-if="ctrl.selectedRecorder === \'audio\'"> <div class="record-timer"> <i class="fas fa-microphone"></i> [[ctrl.time()]] </div> <div ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <input type="text" class="form-control" i18n-placeholder="title" ng-model="ctrl.recorder.title"/> </div> <div class="record-controls" ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <button id="btnAudioRecorder" type="button" class="btn btn-circle" ng-click="ctrl.switchAudioRecord()" ng-class="{ \'d-none\': ctrl.isVideo || !ctrl.isAudioCompatible }" ng-disabled="ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying || ctrl.isSaved"> <i class="fas" ng-class="{\'fa-microphone\': !ctrl.isRecording, \'fa-pause\': ctrl.isRecording}"></i> <span class="label" ng-if="ctrl.isIdle || ctrl.isStopped"><i18n>embed.record</i18n></span> <span class="label" ng-if="!ctrl.isRecording && !ctrl.isIdle && !ctrl.isStopped" ng-class="{\'d-none\': ctrl.isIdle}"><i18n>embed.resume</i18n></span> <span class="label" ng-if="ctrl.isRecording"><i18n>embed.suspend</i18n></span> </button> <button type="button" class="btn btn-circle" ng-click="ctrl.switchPlay()" ng-disabled="ctrl.disabledButtons || ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading"> <i class="fas" ng-class="ctrl.isPlaying ? \'fa-pause\' : \'fa-play\'"></i> <span class="label" ng-if="!ctrl.isPlaying"><i18n>embed.play</i18n></span> <span class="label" ng-if="ctrl.isPlaying"><i18n>embed.pause</i18n></span> </button> <button type="button" class="btn btn-circle" ng-click="ctrl.saveRecord()" ng-disabled="ctrl.disabledButtons || ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying"> <i ng-class="ctrl.getSaveBtnClass()"></i> <span class="label"><i18n>embed.save</i18n></span> </button> <button type="button" class="btn btn-circle btn-danger" ng-click="ctrl.clean()" ng-disabled="ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying"> <i class="fas fa-times"></i> <span class="label"><i18n>embed.redo</i18n></span> </button> </div> </div> <div id="videoRecorder" class="flex-fill" navigation-guard="true" guard-root="videoCapturedGuard" ng-if="ctrl.selectedRecorder === \'video\'"> <div class="record-timer"> <i class="fas fa-video"></i> [[ctrl.msToTime(ctrl.recorder.elapsedTime)]]/[[ctrl.msToTime(ctrl.recordMaxTime)]] </div> <div ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <select title="selectWebcam" class="form-select mb-2" ng-if="ctrl.videoInputDevices.length > 1" ng-options="vid as vid.label for vid in ctrl.videoInputDevices" ng-disabled="ctrl.isRecording" ng-model="ctrl.selectedVid" ng-change="ctrl.switchVideo(ctrl.selectedVid.deviceId)"> </select> </div> <div id="recorderWidgetVideoPlayer" class="record-widget-player"> </div> <div ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <label class="visually-hidden" for="video-recorder"><i18n>title</i18n></label> <input type="text" id="video-recorder" class="form-control" i18n-placeholder="title" ng-model="ctrl.recorder.title"/> </div> <div class="record-controls" custom-guard="recordGuard" ng-class="{\'d-none\': ctrl.displaySavedMessage}"> <button id="btnVideoRecorder" type="button" class="btn btn-circle" ng-if="!(ctrl.isAudio) && ctrl.isVideoCompatible" ng-click="ctrl.switchVideoRecord()" ng-disabled="ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying || ctrl.isSaved"> <i class="fas" ng-class="{\'fa-stop\': ctrl.isRecording, \'fa-video\': !ctrl.isRecording}"></i> <span class="label">[[ctrl.isRecording ? \'embed.stop\' : \'embed.record\' | i18n]]</span> </button> <button type="button" class="btn btn-circle" ng-click="ctrl.switchPlay()" ng-disabled="ctrl.disabledButtons || ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading"> <i class="fas" ng-class="{\'fa-pause\': ctrl.isPlaying, \'fa-play\': !ctrl.isPlaying}"></i> <span class="label">[[ctrl.isPlaying ? \'embed.pause\' : \'embed.play\' | i18n]]</span> </button> <button type="button" class="btn btn-circle" ng-click="ctrl.saveRecord()" ng-disabled="ctrl.disabledButtons || ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying"> <i ng-class="ctrl.getSaveBtnClass()"></i> <span class="label"> <i18n>embed.save</i18n> </span> </button> <button type="button" class="btn btn-circle btn-danger" ng-click="ctrl.clean()" ng-disabled="ctrl.isRecording || ctrl.isEncoding || ctrl.isUploading || ctrl.isPlaying"> <i class="fas fa-times"></i> <span class="label"><i18n>embed.redo</i18n></span> </button> </div> </div> <div ng-class="{\'d-none\': !ctrl.displaySavedMessage, \'d-block record-widget-message\': ctrl.displaySavedMessage}"> <p class="text-success">{{ctrl.recorder.title}} <i18n>embed.saved.file</i18n></p> <a ng-href="/workspace/workspace#/apps" class="btn btn btn-outline-third rounded-pill d-inline-block mx-auto"><i18n>embed.goto.file</i18n></a> <button class="btn btn-link d-block mx-auto" ng-click="ctrl.clean()"><i18n>embed.new.recording</i18n></button> </div>'},3146:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<ode-modal visible="ctrl.display.showAuthenticatedConnectorLightbox" on-close="ctrl.onClose()"> <ode-modal-title> <i18n>apps.authenticatedConnector.lightbox.title</i18n> </ode-modal-title> <ode-modal-body> <p class="text-center"> <i18n>apps.authenticatedConnector.lightbox.content</i18n> </p> </ode-modal-body> <ode-modal-footer> <button class="btn btn-light text-primary" ng-click="ctrl.onClose()"> <i18n>cancel</i18n> </button> <button class="btn btn-primary" ng-click="ctrl.onConfirm()"> <i18n>confirm</i18n> </button> </ode-modal-footer> </ode-modal> '},2306:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<i class="ic-help" ng-click="onHelp()"></i> <ode-modal class="modal-help" visible="display.read" on-close="display.read = false"> <ode-modal-title></ode-modal-title> <ode-modal-body><div></div></ode-modal-body> </ode-modal> '},959:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=' <header class="no-2d navbar navbar-light bg-white" ng-if="ctrl.is1D"> <a class="application__title d-desktop-none text-truncate" href="/welcome?token=[[ctrl.version]]" ng-bind-html="ctrl.title"> </a> <div class="d-mobile-none"> <img ng-src="[[ctrl.avatar]]"/> <span href="" translate key="welcome"></span> </div> <nav class="navigation"> <div class="navigation__item" ng-if="me.hasWorkflow(\'org.entcore.conversation.controllers.ConversationController|view\')"> <span> <a href="/conversation/conversation" i18n-title="navbar.messages" aria-label="navbar.messages"> <i class="ic-conversation"><span class="new-mails" ng-if="nbNewMessages">[[nbNewMessages]]</span></i> </a> </span> </div> <div class="navigation__item"> <a href="/userbook/mon-compte" i18n-title="navbar.myaccount"> <i class="ic-avatar"></i> </a> </div> <div class="navigation__item" ng-if="ctrl.currentLanguage == \'fr\'" pulsar="{index:5, style:{zIndex:1021}, i18n:\'portal.pulsar.help\', position:\'bottom center\'}"> <a href="" i18n-title="navbar.help"> <help></help> </a> </div> <div class="navigation__item"> <a href="" logout i18n-title="navbar.disconnect"> <i class="ic-disconnect"></i> </a> </div> </nav> </header> <div class="no-2d navigation--secondary"> <a class="d-mobile-none" href="/timeline/timeline"> <img class="logo" skin-src="img/illustrations/logo.png" alt="Logo de l\'ENT"> <span class="text-truncate d-desktop-none" ng-bind-html="ctrl.title"></span> </a> <nav class="navigation"> <a class="button" href="/timeline/timeline?token=[[ctrl.version]]"> <i class="ic-notifications d-desktop-none"></i> <span class="d-mobile-none"> <i18n>portal.header.navigation.whatsnew</i18n> </span> </a> <a class="button" href="/userbook/annuaire?myClass&token=[[ctrl.version]]"> <i class="ic-userbook d-desktop-none"></i> <span class="d-mobile-none"> <i18n>portal.header.navigation.classMembers</i18n> </span> </a> <a class="button" href="/welcome?token=[[ctrl.version]]"> <i class="ic-apps d-desktop-none"></i> <span class="d-mobile-none"> <i18n>portal.header.navigation.myapps</i18n> </span> </a> </nav> </div> <header class="no-1d navbar sticky-top bg-secondary" ng-if="ctrl.is2D"> <div class="container"> <a class="navbar-brand" href="/timeline/timeline?token=[[ctrl.version]]" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'timeline\', \'from\':\'logo\'} })"> <img class="logo" skin-src="img/illustrations/logo.png" alt="Logo de l\'ENT"> </a> <nav class="navbar-nav"> <a href="/timeline/timeline" class="nav-link" i18n-title="navbar.home" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'timeline\', \'from\':\'menu\'} })"> <i class="ic-home" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.home</i18n></span> </a> <a href="/community" data-community class="nav-link d-none d-sm-block" i18n-title="navbar.community" ng-if="me.hasWorkflow(\'net.atos.entng.community.controllers.CommunityController|view\')" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'community\'} })"> <i class="ic-community" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.community</i18n></span> </a> <popover pulsar="{index:3, style:{zIndex:1021}, i18n:\'portal.pulsar.apps\', position:\'bottom center\'}"> <a href="/welcome" class="nav-link pe-mobile" i18n-title="navbar.applications" popover-opener ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'welcome\', \'from\':\'menu\'} })"> <i class="ic-apps" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.applications</i18n></span> </a> <popover-content class="widget"> <div class="widget-applications"> <div class="widget-body d-flex flex-wrap"> <div class="text-dark" ng-if="ctrl.apps.length === 0"> <i18n>navbar.myapps.more</i18n> </div> <div class="bookmarked-app" ng-repeat="app in ctrl.apps track by $index"> <a connector-lightbox-trigger="app" aria-label="[[app.displayName]]" href="[[app.address]]" target="[[app.target]]" i18n-title="[[app.displayName]]" ng-switch="app.icon.indexOf(\'/\')" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'app\', \'app\':app} })"> <i class="fs-1" ng-class="ctrl.getIconClass(app)" ng-switch-when="-1"></i> <img skin-src="[[app.icon]]" ng-switch-default alt="[[app.displayName]]"/> </a> </div> </div> <div class="widget-footer border-top border-ghost"> <div class="widget-footer-action"> <a class="link" href="/welcome" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'welcome\', \'from\':\'more\'} })"> <i18n>plus</i18n> </a> </div> </div> </div> </popover-content> </popover> <div class="nav-link conversation" ng-include="ctrl.conversationUnreadUrl" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'conversation\'} })"> </div> <popover class="nav-link d-none d-sm-inline-block" ng-if="me.hasWorkflow(\'fr.openent.searchengine.controllers.SearchEngineController|view\')"> <a href="/searchengine" i18n-title="navbar.search" popover-opener class="pe-mobile" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'searchengine\', \'from\':\'menu\'} })"> <i class="ic-search" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.search</i18n></span> </a> <popover-content class="widget searchPortal"> <div class="content searchContent"> <div class="search-text row"> <label class="sr-only" for="searchInput">mysearch</label> <input type="text" id="searchInput" class="searchInput" id="searchInput" name="mysearch" ng-model="ctrl.mysearch" ng-keyup="ctrl.launchSearch($event, \'key\');"/> <button class="searchButton" ng-click="ctrl.launchSearch($event, \'button\');"> <i18n>ok</i18n> </button> </div> </div> </popover-content> </popover> <a href="#" i18n-title="navbar.help" class="nav-link" pulsar="{ index:5, style:{zIndex:1021}, i18n:\'portal.pulsar.help\', position:\'bottom center\'}" ng-if="ctrl.currentLanguage == \'fr\'" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'help\'} })"> <help></help> </a> <a href="/userbook/mon-compte" i18n-title="navbar.myaccount" class="nav-link d-none d-sm-block" pulsar="{ index:4, style:{zIndex:1021}, i18n:\'portal.pulsar.account\', position:\'bottom center\'}" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'myaccount\'} })"> <img class="avatar" data-ng-src="[[ctrl.avatar ? ctrl.avatar+\'?thumbnail=48x48\' : \'\']]" width="30" height="30" alt="[[ctrl.username]]"/> <span class="sr-only"><i18n>navbar.myaccount</i18n></span> </a> <a href="#" class="nav-link d-none d-sm-inline-flex" logout i18n-title="navbar.disconnect"> <i class="ic-disconnect" aria-hidden="true"></i> <span class="sr-only"><i18n>navbar.disconnect</i18n></span> </a> <div class="dropdown d-inline-block d-sm-none"> <button id="dropdown-label" type="button" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"></button> <ul class="dropdown-menu dropdown-menu-end" data-bs-popper aria-labelledby="dropdown-label"> <li ng-if="me.hasWorkflow(\'fr.openent.searchengine.controllers.SearchEngineController|view\')"> <a class="dropdown-item" href="/searchengine" i18n-title="navbar.search"> <i class="ic-search"></i> <i18n>navbar.search</i18n> </a> </li> <li> <a class="dropdown-item" href="/userbook/mon-compte" i18n-title="navbar.myaccount" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'myaccount\'} })"> <img class="avatar" data-ng-src="[[ctrl.avatar ? ctrl.avatar+\'?thumbnail=48x48\' : \'\']]" width="20" height="20" alt="[[ctrl.username]]"/> <i18n>navbar.myaccount</i18n> </a> </li> <li data-community ng-if="me.hasWorkflow(\'net.atos.entng.community.controllers.CommunityController|view\')"> <a class="dropdown-item" href="/community" i18n-title="navbar.community" ng-click="ctrl.trackEvent($event, {detail:{\'open\':\'community\'} })"> <i class="ic-community" aria-hidden="true"></i> <i18n>navbar.community</i18n> </a> </li> <li><hr class="dropdown-divider"></li> <li> <a class="dropdown-item" href="" logout i18n-title="navbar.disconnect"> <i class="ic-disconnect"></i> <i18n>navbar.disconnect</i18n> </a> </li> </ul> </div> </nav> </div> </header> '},8259:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=' <div class="toaster" ng-class="ctrl.getClass()"> <a href="" ng-repeat="a in ctrl.model.context.actions | filter:{available:true} track by a.id" ng-if="ctrl.isActivable(a)" ng-class="ctrl.getActionClass(a)" ng-click="ctrl.activate(a)">{{ctrl.getI18nKey(a)|i18n}}</a> <a href="" ng-class="ctrl.getActionClass({id:\'share\', available:true})" ng-click="ctrl.activate({id:\'share\', available:true})">{{ctrl.getI18nKey({id:\'share\', available:true})|i18n}}</a> </div> <ode-modal id="editProperty" ng-if="ctrl.showProps" visible="ctrl.showProps" on-close="ctrl.closeProps()"> <ode-modal-title><i18n>explorer.modal.props.title</i18n> "Titre de la ressource"</ode-modal-title> <ode-modal-body> <ode-props-panel props="ctrl.props" item="ctrl.items[0]"></ode-props-panel> </ode-modal-body> <ode-modal-footer> <button type="button" class="btn btn-link" data-dismiss="modal" ng-click="ctrl.closeProps()"><i18n>explorer.modal.props.btn.cancel.label</i18n></button> <button type="button" class="btn btn-primary"><i18n>explorer.modal.props.btn.record.label</i18n></button> </ode-modal-footer> </ode-modal> <ode-modal id="shareProperty" ng-if="ctrl.showShares" visible="ctrl.showShares" on-close="ctrl.closeShares()"> <ode-modal-title><i18n>share.title</i18n></ode-modal-title> <ode-modal-body> <ode-share-panel auto-close="true"></ode-share-panel> <div class="share" ng-show="!isCloseConfirmLoaded()"> <h3><i18n>share.publish.title</i18n></h3> <div class="row publication-option"> <label> <input type="radio" name="publish-type" ng-model="display.publishType" ng-change="updatePublishType()" value="IMMEDIATE"/> <i18n>share.publish.immediate</i18n> </label> <label> <input type="radio" name="publish-type" ng-model="display.publishType" ng-change="updatePublishType()" value="RESTRAINT"/> <i18n>share.publish.differed</i18n> </label> </div> </div> </ode-modal-body> <ode-modal-footer> <button type="button" class="btn btn-link" data-dismiss="modal" ng-click="ctrl.closeShares()"><i18n>explorer.modal.props.btn.cancel.label</i18n></button> <button type="button" class="btn btn-primary"><i18n>explorer.modal.props.btn.record.label</i18n></button> </ode-modal-footer> </ode-modal> '},4809:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<div class="row"> <input type="text" ng-model="ctrl.search" i18n-placeholder="search" autocomplete="off"/> </div> '},9018:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<div class="toast fade" role="alert" aria-live="assertive" aria-atomic="true"> <div class="toast-header"> <strong class="me-auto">[[header]]</strong> <small class="text-muted">[[since]]</small> <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close" ng-click="visible(false)"></button> </div> <div class="toast-body" ng-transclude></div> </div>'},9068:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<section class="lightbox" ng-class="{\'lightbox\': !tiny, \'tiny-lightbox\': tiny}"> <div class="background"></div> <div class="content"> <div class="twelve cell" ng-transclude></div> <div class="close-lightbox"> <i class="close-2x"></i> </div> </div> </section>'},7597:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="{{ctrl.id+\'Label\'}}" aria-hidden="true" ng-class="{show: ctrl.visible}" ng-style="ctrl.getStyle()"> <div class="modal-backdrop fade show" style="z-index:1040"></div> <div class="modal-dialog" ng-class="ctrl.getSizeClass()" role="document" style="z-index:1050"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="{{ctrl.id+\'Label\'}}" ng-transclude="title"></h5> <button type="button" class="btn-close" aria-label="Close" ng-if="ctrl.onClose" ng-click="ctrl.onClose()"> </button> </div> <div class="modal-body" ng-transclude="body"></div> <div class="modal-footer" ng-transclude="footer"></div> </div> </div> </div> '},9325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<style id="pulsar-css">pulsar{z-index:1036;position:absolute;pointer-events:all}.pulsar-layer{box-shadow:0 0 0 99999px rgb(0 0 0 / 60%);position:absolute;border-radius:2px;z-index:1035}pulsar .content{background:#fff;width:300px;box-shadow:1px 1px 7px rgb(0 0 0 / 40%);padding:15px;box-sizing:border-box;border:6px solid #ddd;border-radius:2px;position:relative}pulsar .content .inf{position:absolute;left:10px;top:10px;color:#fff;background:#ffaa4d;border-radius:50%;line-height:22px;text-align:center;width:22px;height:22px}pulsar .content .inf::before{font-size:18px;content:\'i\';font-style:italic;font-weight:700;display:inline-block;margin-left:-1px}pulsar .content .close{position:absolute;right:10px;top:10px;width:22px;height:22px;line-height:17px;background:#ddd;border-radius:50%;color:#636363}pulsar i.close{font-family:generic-icons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none;font-weight:400!important;text-align:center;cursor:pointer;font-style:normal}pulsar .content>div.text{margin-top:25px;padding:10px;font-size:14px;line-height:18px}pulsar .content .close::before{content:\'\\e866\';font-size:9px}pulsar nav.dots ul{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:0;margin:15px 0 25px}pulsar nav.dots li.dot{list-style-type:none;margin:0 10px;cursor:pointer}pulsar nav.dots li.dot::before{content:" ";display:block;width:17px;height:17px;background:0 0;border:2px solid silver;border-radius:50%;box-sizing:border-box;transition:all 250ms ease}pulsar nav.dots li.dot:hover::before{border-color:#ff8500;background:0 0}nav.dots li.dot.active::before{color:#4bafd5}pulsar nav.dots li.dot.active::before{border-color:#ff8500;background:#ff8500}pulsar nav.dots li.dot::before{font-size:60px;width:12px;height:12px}pulsar nav.dots li.dot::before{content:" ";display:block;width:17px;height:17px;background:0 0;border:2px solid silver;border-radius:50%;box-sizing:border-box;transition:all 250ms ease}pulsar .arrow{width:0;height:0;border-style:solid;border-width:0 8.4px 14px 8.4px;border-color:transparent transparent #ddd transparent;z-index:1;position:absolute}pulsar.middle .arrow{left:calc(50% - 7px);top:-14px}pulsar.left .arrow{transform:rotate(90deg);right:-14px}pulsar.left.top .arrow{top:1px}pulsar.left.center .arrow{top:calc(50% - 7px)}pulsar.right.center .arrow{top:calc(50% - 7px)}pulsar.right .arrow{transform:rotate(270deg);left:-14px}pulsar.right.top .arrow{top:1px}pulsar.center.top .arrow{transform:rotate(180deg);top:100%;left:calc(50% - 7px)}pulsar.bottom .arrow{top:-14px}pulsar.bottom.center .arrow{left:calc(50% - 7px)}pulsar.bottom.left .arrow,pulsar.bottom.right .arrow{top:1px}pulsar.bottom.right .arrow{left:-14px;transform:rotate(-90deg)}pulsar.bottom.left .arrow{transform:rotate(90deg);right:-14px;left:auto}.pulsar-button{position:absolute;z-index:999;width:40px;height:40px}.pulsar-button::after,.pulsar-button::before{content:"";opacity:.5;position:absolute;z-index:-1;inset:-6px 0 0 -6px;height:42px;width:42px;content:"";border-radius:50%;box-shadow:0 0 5px 6px rgb(120 218 255 / 60%);transform:scale(.1,.1);transition:all 250ms ease;animation:pulsate 1s ease-out;animation-iteration-count:infinite}.pulsar-button::after{animation-delay:.3s}.pulse-spot{position:absolute;cursor:pointer;width:30px;height:30px;font-size:18px;text-align:center;line-height:21px;font-weight:700;color:#fff;border-radius:50%;border:4px solid transparent;background:#ff8500;transition:all 250ms ease}.pulse-spot::before{content:\'i\';font-style:italic;font-family:\'Times New Roman\',Times,serif}pulsar .row{flex-direction:row-reverse;justify-content:space-between;margin-left:0!important;margin-right:0!important;max-width:100%;width:100%;position:relative;clear:both;box-sizing:border-box}pulsar .row>*{width:auto}@keyframes pulsate{0%{transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{transform:scale(1.2,1.2);opacity:0}}.pulsar-button{display:none}@media (min-width:992px){.pulsar-button{display:block}}</style>'},6066:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r='<style id="widget-container-css">ul[dnd-list],ul[dnd-list]>li{position:relative}ul[dnd-list]{padding-left:0}ul[dnd-list][dnd-drop]{min-height:42px;transition:all .1s ease-in-out 0s}ul[dnd-list][dnd-dragover].dndReject{display:block;background-color:#ff8c8c;min-height:90px;border-radius:6px;margin-bottom:2em}ul[dnd-list] .dndDraggingSource{display:none}ul[dnd-list] .dndPlaceholder{display:block;background-color:#ffdbb7;min-height:90px;border-radius:6px;margin-bottom:2em}ul[dnd-list] li{list-style:none}.dndDragging:not(.dndDraggingSource){cursor:grabbing!important;border:1px solid rgb(255 133 0)}.dnDragover{cursor:grabbing}.dndDragging:not(.dndDraggingSource):active,.dndDragging:not(.dndDraggingSource):focus,.dndDragging:not(.dndDraggingSource):hover{cursor:grabbing;cursor:-webkit-grabbing}</style> <ul dnd-list dnd-allowed-types="[]" ng-if="ctrl.lockedWidgets.length"> <li ng-repeat="widget in ctrl.lockedWidgets track by widget.platformConf.id" class="widget widget-locked" ode-widget="widget"> </li> </ul> <ul dnd-list dnd-allowed-types="[\'left\',\'right\']" dnd-dragover="ctrl.onDnDDragOver(event, index, type, dropEffect)" dnd-drop="ctrl.onDnDDrop(event, item, index, dropEffect)"> <li ng-repeat="widget in ctrl.dndWidgets track by widget.platformConf.id" class="widget" ode-widget="widget" dnd-draggable="widget.platformConf.id" dnd-type="widget.userPref.position" dnd-disable-if="ctrl.isMobileView"> </li> </ul>'},2011:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r="<span>{{ctrl.sayHello()}}</span>"},991:function(e){e.exports=function(e,t){var n=window,r=document,i={on:function(e,t,r){"addEventListener"in n?e.addEventListener(t,r,!1):e.attachEvent("on"+t,r)},off:function(e,t,r){"removeEventListener"in n?e.removeEventListener(t,r,!1):e.detachEvent("on"+t,r)},bind:function(e,t){return function(){e.apply(t,arguments)}},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},config:function(e,t){return null!=e?e:t},transSupport:!1,useFilter:/msie [678]/i.test(navigator.userAgent),_checkTransition:function(){var e=r.createElement("div"),t={webkit:"webkit",Moz:"",O:"o",ms:"MS"};for(var n in t)n+"Transition"in e.style&&(this.vendorPrefix=t[n],this.transSupport=!0)}};i._checkTransition();var o=function(e){e||(e={}),this.queue=[],this.baseCls=e.baseCls||"humane",this.addnCls=e.addnCls||"",this.timeout="timeout"in e?e.timeout:2500,this.waitForMove=e.waitForMove||!1,this.clickToClose=e.clickToClose||!1,this.timeoutAfterMove=e.timeoutAfterMove||!1,this.container=e.container;try{this._setupEl()}catch(e){i.on(n,"load",i.bind(this._setupEl,this))}};return o.prototype={constructor:o,_setupEl:function(){var e=r.createElement("div");if(e.style.display="none",!this.container){if(!r.body)throw"document.body is null";this.container=r.body}this.container.appendChild(e),this.el=e,this.removeEvent=i.bind((function(){var e=i.config(this.currentMsg.timeoutAfterMove,this.timeoutAfterMove);e?setTimeout(i.bind(this.remove,this),e):this.remove()}),this),this.transEvent=i.bind(this._afterAnimation,this),this._run()},_afterTimeout:function(){i.config(this.currentMsg.waitForMove,this.waitForMove)?this.removeEventsSet||(i.on(r.body,"mousemove",this.removeEvent),i.on(r.body,"click",this.removeEvent),i.on(r.body,"keypress",this.removeEvent),i.on(r.body,"touchstart",this.removeEvent),this.removeEventsSet=!0):this.remove()},_run:function(){if(!this._animating&&this.queue.length&&this.el){this._animating=!0,this.currentTimer&&(clearTimeout(this.currentTimer),this.currentTimer=null);var e=this.queue.shift();i.config(e.clickToClose,this.clickToClose)&&(i.on(this.el,"click",this.removeEvent),i.on(this.el,"touchstart",this.removeEvent));var t=i.config(e.timeout,this.timeout);t>0&&(this.currentTimer=setTimeout(i.bind(this._afterTimeout,this),t)),i.isArray(e.html)&&(e.html="<ul><li>"+e.html.join("<li>")+"</ul>"),this.el.innerHTML=e.html,this.currentMsg=e,this.el.className=this.baseCls,i.transSupport?(this.el.style.display="block",setTimeout(i.bind(this._showMsg,this),50)):this._showMsg()}},_setOpacity:function(e){if(i.useFilter)try{this.el.filters.item("DXImageTransform.Microsoft.Alpha").Opacity=100*e}catch(e){}else this.el.style.opacity=String(e)},_showMsg:function(){var e=i.config(this.currentMsg.addnCls,this.addnCls);if(i.transSupport)this.el.className=this.baseCls+" "+e+" "+this.baseCls+"-animate";else{var t=0;this.el.className=this.baseCls+" "+e+" "+this.baseCls+"-js-animate",this._setOpacity(0),this.el.style.display="block";var n=this,r=setInterval((function(){t<1?((t+=.1)>1&&(t=1),n._setOpacity(t)):clearInterval(r)}),30)}},_hideMsg:function(){var e=i.config(this.currentMsg.addnCls,this.addnCls);if(i.transSupport)this.el.className=this.baseCls+" "+e,i.on(this.el,i.vendorPrefix?i.vendorPrefix+"TransitionEnd":"transitionend",this.transEvent);else var t=1,n=this,r=setInterval((function(){t>0?((t-=.1)<0&&(t=0),n._setOpacity(t)):(n.el.className=n.baseCls+" "+e,clearInterval(r),n._afterAnimation())}),30)},_afterAnimation:function(){i.transSupport&&i.off(this.el,i.vendorPrefix?i.vendorPrefix+"TransitionEnd":"transitionend",this.transEvent),this.currentMsg.cb&&this.currentMsg.cb(),this.el.style.display="none",this._animating=!1,this._run()},remove:function(e){var t="function"==typeof e?e:null;i.off(r.body,"mousemove",this.removeEvent),i.off(r.body,"click",this.removeEvent),i.off(r.body,"keypress",this.removeEvent),i.off(r.body,"touchstart",this.removeEvent),i.off(this.el,"click",this.removeEvent),i.off(this.el,"touchstart",this.removeEvent),this.removeEventsSet=!1,t&&this.currentMsg&&(this.currentMsg.cb=t),this._animating?this._hideMsg():t&&t()},log:function(e,t,n,r){var i={};if(r)for(var o in r)i[o]=r[o];if("function"==typeof t)n=t;else if(t)for(var o in t)i[o]=t[o];return i.html=e,n&&(i.cb=n),this.queue.push(i),this._run(),this},spawn:function(e){var t=this;return function(n,r,i){return t.log.call(t,n,r,i,e),t}},create:function(e){return new o(e)}},new o}()},9740:function(e,t,n){!function(e){"use strict";
|
|
2
2
|
//! moment.js locale configuration
|
|
3
3
|
function t(e,t,n,r){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?i[n][0]:i[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(381))},5655:function(e,t,n){!function(e){"use strict";
|
|
4
4
|
//! moment.js locale configuration
|