territories-dashboard-lib 0.1.33b1__py3-none-any.whl → 0.1.38__py3-none-any.whl

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.

Potentially problematic release.


This version of territories-dashboard-lib might be problematic. Click here for more details.

Files changed (25) hide show
  1. territories_dashboard_lib/geo_lib/admin.py +1 -1
  2. territories_dashboard_lib/geo_lib/migrations/0002_geoelement_linked_to_indicator.py +18 -0
  3. territories_dashboard_lib/geo_lib/models.py +5 -0
  4. territories_dashboard_lib/indicators_lib/query/histogram.py +7 -1
  5. territories_dashboard_lib/indicators_lib/query/top_10.py +1 -0
  6. territories_dashboard_lib/website_lib/serializers.py +1 -0
  7. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/histogram.mjs +4 -1
  8. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/proportions.mjs +3 -2
  9. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/top10.mjs +4 -2
  10. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/utils.mjs +14 -5
  11. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/indicatorMap.bundle.js +1 -1
  12. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/sankeyGraph.bundle.js +1 -1
  13. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/vendors.bundle.js +1 -1
  14. territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/layout/header.html +1 -1
  15. territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/pages/indicators/details/components/histogram.html +1 -0
  16. territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/pages/indicators/details/components/no-data.html +1 -0
  17. territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/pages/indicators/details/components/proportions.html +1 -0
  18. territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/pages/indicators/details/components/top10.html +1 -0
  19. territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/pages/indicators/details/map.css +3 -2
  20. territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/pages/indicators/details/page.css +8 -0
  21. {territories_dashboard_lib-0.1.33b1.dist-info → territories_dashboard_lib-0.1.38.dist-info}/METADATA +2 -2
  22. {territories_dashboard_lib-0.1.33b1.dist-info → territories_dashboard_lib-0.1.38.dist-info}/RECORD +25 -23
  23. {territories_dashboard_lib-0.1.33b1.dist-info → territories_dashboard_lib-0.1.38.dist-info}/WHEEL +0 -0
  24. {territories_dashboard_lib-0.1.33b1.dist-info → territories_dashboard_lib-0.1.38.dist-info}/licenses/licence.md +0 -0
  25. {territories_dashboard_lib-0.1.33b1.dist-info → territories_dashboard_lib-0.1.38.dist-info}/top_level.txt +0 -0
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see sankeyGraph.bundle.js.LICENSE.txt */
2
- (()=>{"use strict";var e,t,r,n={"./src/IndicatorCardFilters.tsx":(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r("react"),a=r.n(n);const o=({filters:e,currentFilters:t,onClick:r})=>a().createElement("div",{className:"fr-tag-list"},e.map(((e,n)=>a().createElement("button",{key:n,className:"fr-tag","aria-pressed":!!t.includes(e)||void 0,onClick:()=>r(e)},e))))},"./src/Sankey/addLinks.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>a});var n=r("./node_modules/d3-sankey/src/index.js");function a(e,t,r){const a=e.append("defs");e.append("g").attr("fill","none").selectAll("path").data(t).join("path").attr("d",(0,n.sankeyLinkHorizontal)()).attr("stroke",(e=>function(e,t,r){const n=`gradient-${r.source.geoCode}-${r.target.geoCode}`,a=e.append("linearGradient").attr("id",n).attr("gradientUnits","userSpaceOnUse").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");return a.append("stop").attr("offset","30%").attr("stop-color",t[r.source.geoCode]),a.append("stop").attr("offset","70%").attr("stop-color",t[r.target.geoCode]),`url(#${n})`}(a,r,e))).attr("stroke-opacity",.8).attr("stroke-width",(e=>Math.max(e.width,.5)))}},"./src/Sankey/addNodes.ts":(e,t,r)=>{function n(e,t,r,n){e.append("g").selectAll("rect").data(r).join("rect").attr("x",(e=>e.x0)).attr("y",(e=>e.y0)).attr("height",(e=>Math.max(e.y1-e.y0,1))).attr("width",t.nodeWidth()).attr("fill",(e=>n[e.geoCode]))}r.r(t),r.d(t,{default:()=>n})},"./src/Sankey/addTexts.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>s});var n=r("./src/format.ts"),a=r("./src/Sankey/enum.ts"),o=r("d3");function s(e,t,r){e.selectAll("text").data(r).enter().append("text").attr("text-anchor",(e=>"start"==e.position?"end":"start")).attr("x",(e=>{const t="start"===e.position?2*-a.PADDING:a.PADDING;return e.x0+t+(e.x1-e.x0)})).attr("y",(e=>e.y0+(e.y1-e.y0)/2)).each((function(e){const r=o.select(this);r.append("tspan").text(function(e,t){const r=e[t.geoCode].name;return r.length>24?r.slice(0,23)+"…":r}(t,e)).attr("x",r.attr("x")).attr("dy",0),r.append("tspan").text((0,n.formatIndicatorValue)(e.value,{forceInteger:!0})).attr("x",r.attr("x")).attr("dy","1.2em")})).style("font-size","11px").style("fill","black").attr("dy","0.35em")}},"./src/Sankey/addTooltip.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>d,removeHighlight:()=>l});var n=r("./src/Sankey/enum.ts"),a=r("d3");function o(e){e.selectAll("path").attr("opacity",.2),e.selectAll("rect").attr("opacity",.2)}function s(e,t){o(t),a.selectAll("path").filter((t=>t===e)).attr("opacity",1),t.selectAll("rect").filter((t=>[e.source,e.target].includes(t))).attr("opacity",1)}function i(e,t){o(t),t.selectAll("rect").filter((t=>t===e)).attr("opacity",1),t.selectAll("path").filter((t=>"start"===e.position?t.source===e:t.target===e)).attr("opacity",1)}function l(e,t){t&&(e.selectAll("rect").attr("opacity",1),e.selectAll("path").attr("opacity",1))}function c(e,t,r,a,o,s){e.on("mouseover",((e,n)=>{t(n),r(n,a),s(a,!1)})).on("mousemove",(e=>{o([e.clientY+n.PADDING,e.clientX])})).on("mouseout",(()=>{t(null),s(a,!0)}))}function d(e,t,r,n,a){c(e.selectAll("text"),t,i,e,n,a),c(e.selectAll("rect"),t,i,e,n,a),c(e.selectAll("path"),r,s,e,n,a)}},"./src/Sankey/colors.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r("react");const a=["#417DC4","#CE614A","#C3992A","#A558A0","#34BAB5","#00A95F","#c9191e","#2a401a","#695240","#313178"];function o(e){return(0,n.useMemo)((()=>Object.fromEntries(e.map(((e,t)=>[e,a[t]])))),[e])}},"./src/Sankey/enum.ts":(e,t,r)=>{r.r(t),r.d(t,{PADDING:()=>n,SVG_HEIGHT:()=>o,SVG_WIDTH:()=>a});const n=16,a=1024,o=520},"./src/Sankey/index.tsx":(e,t,r)=>{r.r(t),r.d(t,{default:()=>v});var n=r("react"),a=r.n(n),o=r("./src/Sankey/input.ts"),s=r("./src/Sankey/init.ts"),i=r("./src/Sankey/addNodes.ts"),l=r("./src/Sankey/addLinks.ts"),c=r("./src/Sankey/addTexts.ts"),d=r("./src/Sankey/useFetchData.ts"),u=r("./src/IndicatorCardFilters.tsx"),f=r("./src/Sankey/useDimensions.ts"),p=r("./src/Sankey/useSortAndLimit.ts"),y=r("./src/Sankey/colors.ts"),m=r("./src/Sankey/enum.ts"),g=r("./src/Sankey/addTooltip.ts"),h=r("./node_modules/lodash/lodash.js");function v({indicator:e,mesh:t,territory:r}){const v=(0,n.useRef)(null),[k,S]=(0,n.useState)([0,0]),[_,x]=(0,n.useState)(null),[b,A]=(0,n.useState)(null),{flows:w,territories:O}=(0,d.default)(e,t,r),{dimensions:D,toggleDimension:I,aggregatedFlows:C}=(0,f.default)(w,Object.keys(O)),{order:E,filteredFlows:j}=(0,p.default)(C),M=(0,y.default)(E),G=(0,n.useMemo)((()=>(0,h.debounce)(g.removeHighlight,500)),[]);(0,n.useEffect)((()=>{if(j.length>0&&Object.keys(O).length>0&&v.current){const e=(0,o.default)(j),{svgContainer:t,sankeyGraph:r,nodes:n,links:a}=(0,s.default)(e,E,v);(0,i.default)(t,r,n,M),(0,l.default)(t,a,M),(0,c.default)(t,O,n),(0,g.default)(t,x,A,S,G)}}),[j,O,E,M,G]);const N=!(!_&&!b);return a().createElement("section",{key:`map${t}${r.geoId}`,"aria-describedby":"values-table-section"},a().createElement("div",{className:"fr-tag-list fr-mt-4w"},a().createElement(u.default,{filters:D,currentFilters:D,onClick:I})),a().createElement("div",{style:{position:"relative"}},a().createElement("div",{id:"sankey-tooltip",style:{visibility:N?"visible":"hidden",top:`${k[0]}px`,left:`${k[1]}px`}},_&&a().createElement("div",null,a().createElement("div",null,O[_.geoCode].name),a().createElement("div",null,_.value," actifs")),b&&a().createElement("div",null,a().createElement("div",null,a().createElement("b",null,"Départ")," :"," ",O[b.source.geoCode].name),a().createElement("div",null,a().createElement("b",null,"Arrivée")," :"," ",O[b.target.geoCode].name),a().createElement("div",null,a().createElement("b",null,"Valeur")," : ",b.value," actifs"))),a().createElement("svg",{width:m.SVG_WIDTH,height:m.SVG_HEIGHT,ref:v})))}window.SankeyGraph=v},"./src/Sankey/init.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>s});var n=r("./src/Sankey/enum.ts"),a=r("d3"),o=r("./node_modules/d3-sankey/src/index.js");function s(e,t,r){const s=a.select(r.current);s.selectAll("*").remove();const i=(0,o.sankey)().nodeWidth(n.PADDING).nodePadding(1.5*n.PADDING).nodeId((e=>e.name)).nodeSort(((e,r)=>t.indexOf(e.geoCode)-t.indexOf(r.geoCode))).extent([[16*n.PADDING,n.PADDING],[n.SVG_WIDTH-16*n.PADDING,n.SVG_HEIGHT-n.PADDING]]),{nodes:l,links:c}=i(e);return{sankeyGraph:i,nodes:l,links:c,svgContainer:s}}},"./src/Sankey/input.ts":(e,t,r)=>{function n(e){const t=Array.from(new Set(e.map((e=>e.territory_1_id)))),r=Array.from(new Set(e.map((e=>e.territory_2_id))));return{nodes:[...t.map((e=>({geoCode:e,position:"start",name:e+"-start"}))),...r.map((e=>({geoCode:e,position:"end",name:e+"-end"})))],links:e.map((e=>({source:e.territory_1_id+"-start",target:e.territory_2_id+"-end",value:Math.round(e.value)})))}}r.r(t),r.d(t,{default:()=>n})},"./src/Sankey/useDimensions.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>a});var n=r("react");function a(e,t){const[r,a]=(0,n.useState)([]),o=(0,n.useMemo)((()=>{const t=Array.from(new Set(e.map((e=>e.dimension))));return t.sort(((e,t)=>e.localeCompare(t))),t}),[e]);(0,n.useEffect)((()=>{a(o)}),[o]);const s=(0,n.useMemo)((()=>{const t=e.filter((e=>r.includes(e.dimension)));return Object.values(t.reduce(((e,t)=>{const r=t.territory_1_id,n=t.territory_2_id,a=`${r}-${n}`;return e[a]||(e[a]={territory_1_id:r,territory_2_id:n,value:0}),e[a].value+=t.value,e}),{}))}),[e,r]);return{dimensions:o,toggleDimension:e=>{a((t=>t.includes(e)?t.filter((t=>t!==e)):[...t,e].sort(((e,t)=>e.localeCompare(t)))))},aggregatedFlows:s}}},"./src/Sankey/useFetchData.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r("react"),a=function(e,t,r,n){return new(r||(r=Promise))((function(a,o){function s(e){try{l(n.next(e))}catch(e){o(e)}}function i(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,i)}l((n=n.apply(e,t||[])).next())}))};function o(e,t,r){const[o,s]=(0,n.useState)([]),[i,l]=(0,n.useState)({}),{geoLevel:c,geoId:d}=r,u=(0,n.useMemo)((()=>JSON.stringify(e)),[e]),f=(0,n.useMemo)((()=>({indicator:e,mesh:t,geoLevel:c,geoCode:d})),[u,t,c,d]);return(0,n.useEffect)((()=>{(()=>{a(this,void 0,void 0,(function*(){const e=yield fetch(`/api/indicators/flows/?prefix=${f.indicator.flows_db_table_prefix}&submesh=${f.mesh}&territory=${f.geoCode}-${f.geoLevel}${f.indicator.flows_dimension?"&dimension="+f.indicator.flows_dimension:""}`);if(e.ok){const t=yield e.json();s(t.flows),l(t.territories)}}))})()}),[f]),{flows:o,territories:i}}},"./src/Sankey/useSortAndLimit.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r("react");function a(e,t){const r=e.reduce(((e,r)=>{const n="start"===t?r.territory_1_id:r.territory_2_id;return e[n]||(e[n]=0),e[n]+=r.value,e}),{});return Object.entries(r).sort(((e,t)=>t[1]-e[1])).slice(0,10)}function o(e){const t=(0,n.useMemo)((()=>{const t=a(e,"start"),r=t.map((e=>e[0])),n=a(e.filter((e=>r.includes(e.territory_1_id))),"end"),o=t.concat(n).sort(((e,t)=>t[1]-e[1])).map((e=>e[0]));return[...new Set(o)]}),[e]),r=(0,n.useMemo)((()=>e.filter((e=>t.includes(e.territory_1_id)&&t.includes(e.territory_2_id)))),[t,e]);return{order:t,filteredFlows:r}}},"./src/format.ts":(e,t,r)=>{r.r(t),r.d(t,{MILLIONS:()=>a,THOUSANDS:()=>n,formatIndicatorValue:()=>o,formatScaleAndUnite:()=>l,formatValue:()=>c});const n="k",a="M";function o(e,{forceInteger:t=!1,precise:r=!1}={}){if(null==e||isNaN(e))return"-";let o=null;return o=Math.abs(e)>999&&r?new Intl.NumberFormat("fr-FR").format(Math.round(e)):Math.abs(e)>999999?i(s(Math.sign(e)*Math.abs(e)/1e6,t))+a:Math.abs(e)>999?i(s(Math.sign(e)*Math.abs(e)/1e3,t))+n:i(s(e,t)),o=o.replace(".",","),o}const s=(e,t)=>t?e.toFixed(0):e.toFixed(1),i=e=>(e.indexOf(".")>0&&("00"===e.slice(-2)&&(e=e.slice(0,-2)),"0"===e.slice(-1)&&(e=e.slice(0,-1)),"."===e.slice(-1)&&(e=e.slice(0,-1))),e);function l(e,t,{forceInteger:r=!1,precise:n=!1}={}){return o(e,{forceInteger:r,precise:n})+" "+t.unite}function c(e,t,{forceInteger:r=!1,precise:n=!1}={}){return l(e,t,{forceInteger:r,precise:n})}},d3:e=>{e.exports=d3},react:e=>{e.exports=React}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,o),r.loaded=!0,r.exports}o.m=n,e=[],o.O=(t,r,n,a)=>{if(!r){var s=1/0;for(d=0;d<e.length;d++){for(var[r,n,a]=e[d],i=!0,l=0;l<r.length;l++)(!1&a||s>=a)&&Object.keys(o.O).every((e=>o.O[e](r[l])))?r.splice(l--,1):(i=!1,a<s&&(s=a));if(i){e.splice(d--,1);var c=n();void 0!==c&&(t=c)}}return t}a=a||0;for(var d=e.length;d>0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[r,n,a]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var a=Object.create(null);o.r(a);var s={};t=t||[null,r({}),r([]),r(r)];for(var i=2&n&&e;"object"==typeof i&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((t=>s[t]=()=>e[t]));return s.default=()=>e,o.d(a,s),a},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={sankeyGraph:0};o.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,[s,i,l]=r,c=0;if(s.some((t=>0!==e[t]))){for(n in i)o.o(i,n)&&(o.m[n]=i[n]);if(l)var d=l(o)}for(t&&t(r);c<s.length;c++)a=s[c],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return o.O(d)},r=self.webpackChunkreact_components=self.webpackChunkreact_components||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var s=o.O(void 0,["vendors"],(()=>o("./src/Sankey/index.tsx")));s=o.O(s)})();
2
+ (()=>{"use strict";var e,t,r,n={"./src/IndicatorCardFilters.tsx":(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r("react"),a=r.n(n);const o=({filters:e,currentFilters:t,onClick:r})=>a().createElement("div",{className:"fr-tag-list"},e.map(((e,n)=>a().createElement("button",{key:n,className:"fr-tag","aria-pressed":!!t.includes(e)||void 0,onClick:()=>r(e)},e))))},"./src/Sankey/addLinks.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>a});var n=r("./node_modules/d3-sankey/src/index.js");function a(e,t,r){const a=e.append("defs");e.append("g").attr("fill","none").selectAll("path").data(t).join("path").attr("d",(0,n.sankeyLinkHorizontal)()).attr("stroke",(e=>function(e,t,r){const n=`gradient-${r.source.geoCode}-${r.target.geoCode}`,a=e.append("linearGradient").attr("id",n).attr("gradientUnits","userSpaceOnUse").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");return a.append("stop").attr("offset","30%").attr("stop-color",t[r.source.geoCode]),a.append("stop").attr("offset","70%").attr("stop-color",t[r.target.geoCode]),`url(#${n})`}(a,r,e))).attr("stroke-opacity",.8).attr("stroke-width",(e=>Math.max(e.width,.5)))}},"./src/Sankey/addNodes.ts":(e,t,r)=>{function n(e,t,r,n){e.append("g").selectAll("rect").data(r).join("rect").attr("x",(e=>e.x0)).attr("y",(e=>e.y0)).attr("height",(e=>Math.max(e.y1-e.y0,1))).attr("width",t.nodeWidth()).attr("fill",(e=>n[e.geoCode]))}r.r(t),r.d(t,{default:()=>n})},"./src/Sankey/addTexts.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>s});var n=r("./src/format.ts"),a=r("./src/Sankey/enum.ts"),o=r("d3");function s(e,t,r){e.selectAll("text").data(r).enter().append("text").attr("text-anchor",(e=>"start"==e.position?"end":"start")).attr("x",(e=>{const t="start"===e.position?2*-a.PADDING:a.PADDING;return e.x0+t+(e.x1-e.x0)})).attr("y",(e=>e.y0+(e.y1-e.y0)/2)).each((function(e){const r=o.select(this);r.append("tspan").text(function(e,t){const r=e[t.geoCode].name;return r.length>24?r.slice(0,23)+"…":r}(t,e)).attr("x",r.attr("x")).attr("dy",0),r.append("tspan").text((0,n.formatIndicatorValue)(e.value,{forceInteger:!0})).attr("x",r.attr("x")).attr("dy","1.2em")})).style("font-size","11px").style("fill","black").attr("dy","0.35em")}},"./src/Sankey/addTooltip.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>d,removeHighlight:()=>l});var n=r("./src/Sankey/enum.ts"),a=r("d3");function o(e){e.selectAll("path").attr("opacity",.2),e.selectAll("rect").attr("opacity",.2)}function s(e,t){o(t),a.selectAll("path").filter((t=>t===e)).attr("opacity",1),t.selectAll("rect").filter((t=>[e.source,e.target].includes(t))).attr("opacity",1)}function i(e,t){o(t),t.selectAll("rect").filter((t=>t===e)).attr("opacity",1),t.selectAll("path").filter((t=>"start"===e.position?t.source===e:t.target===e)).attr("opacity",1)}function l(e,t){t&&(e.selectAll("rect").attr("opacity",1),e.selectAll("path").attr("opacity",1))}function c(e,t,r,a,o,s){e.on("mouseover",((e,n)=>{t(n),r(n,a),s(a,!1)})).on("mousemove",(e=>{o([e.clientY+n.PADDING,e.clientX])})).on("mouseout",(()=>{t(null),s(a,!0)}))}function d(e,t,r,n,a){c(e.selectAll("text"),t,i,e,n,a),c(e.selectAll("rect"),t,i,e,n,a),c(e.selectAll("path"),r,s,e,n,a)}},"./src/Sankey/colors.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r("react");const a=["#417DC4","#CE614A","#C3992A","#A558A0","#34BAB5","#00A95F","#c9191e","#2a401a","#695240","#313178"];function o(e){return(0,n.useMemo)((()=>Object.fromEntries(e.map(((e,t)=>[e,a[t]])))),[e])}},"./src/Sankey/enum.ts":(e,t,r)=>{r.r(t),r.d(t,{PADDING:()=>n,SVG_HEIGHT:()=>o,SVG_WIDTH:()=>a});const n=16,a=1024,o=520},"./src/Sankey/index.tsx":(e,t,r)=>{r.r(t),r.d(t,{default:()=>v});var n=r("react"),a=r.n(n),o=r("./src/Sankey/input.ts"),s=r("./src/Sankey/init.ts"),i=r("./src/Sankey/addNodes.ts"),l=r("./src/Sankey/addLinks.ts"),c=r("./src/Sankey/addTexts.ts"),d=r("./src/Sankey/useFetchData.ts"),u=r("./src/IndicatorCardFilters.tsx"),f=r("./src/Sankey/useDimensions.ts"),p=r("./src/Sankey/useSortAndLimit.ts"),y=r("./src/Sankey/colors.ts"),m=r("./src/Sankey/enum.ts"),g=r("./src/Sankey/addTooltip.ts"),h=r("./node_modules/lodash/lodash.js");function v({indicator:e,mesh:t,territory:r}){const v=(0,n.useRef)(null),[k,S]=(0,n.useState)([0,0]),[_,x]=(0,n.useState)(null),[b,A]=(0,n.useState)(null),{flows:w,territories:O}=(0,d.default)(e,t,r),{dimensions:D,toggleDimension:I,aggregatedFlows:C}=(0,f.default)(w,Object.keys(O)),{order:E,filteredFlows:j}=(0,p.default)(C),M=(0,y.default)(E),G=(0,n.useMemo)((()=>(0,h.debounce)(g.removeHighlight,500)),[]);(0,n.useEffect)((()=>{if(j.length>0&&Object.keys(O).length>0&&v.current){const e=(0,o.default)(j),{svgContainer:t,sankeyGraph:r,nodes:n,links:a}=(0,s.default)(e,E,v);(0,i.default)(t,r,n,M),(0,l.default)(t,a,M),(0,c.default)(t,O,n),(0,g.default)(t,x,A,S,G)}}),[j,O,E,M,G]);const N=!(!_&&!b);return a().createElement("section",{key:`map${t}${r.geoId}`,"aria-describedby":"values-table-section"},a().createElement("div",{className:"fr-tag-list fr-mt-4w"},a().createElement(u.default,{filters:D,currentFilters:D,onClick:I})),a().createElement("div",{style:{position:"relative"}},a().createElement("div",{id:"sankey-tooltip",style:{visibility:N?"visible":"hidden",top:`${k[0]}px`,left:`${k[1]}px`}},_&&a().createElement("div",null,a().createElement("div",null,O[_.geoCode].name),a().createElement("div",null,_.value," actifs")),b&&a().createElement("div",null,a().createElement("div",null,a().createElement("b",null,"Départ")," :"," ",O[b.source.geoCode].name),a().createElement("div",null,a().createElement("b",null,"Arrivée")," :"," ",O[b.target.geoCode].name),a().createElement("div",null,a().createElement("b",null,"Valeur")," : ",b.value," actifs"))),a().createElement("svg",{width:m.SVG_WIDTH,height:m.SVG_HEIGHT,ref:v})))}window.SankeyGraph=v},"./src/Sankey/init.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>s});var n=r("./src/Sankey/enum.ts"),a=r("d3"),o=r("./node_modules/d3-sankey/src/index.js");function s(e,t,r){const s=a.select(r.current);s.selectAll("*").remove();const i=(0,o.sankey)().nodeWidth(n.PADDING).nodePadding(1.5*n.PADDING).nodeId((e=>e.name)).nodeSort(((e,r)=>t.indexOf(e.geoCode)-t.indexOf(r.geoCode))).extent([[16*n.PADDING,n.PADDING],[n.SVG_WIDTH-16*n.PADDING,n.SVG_HEIGHT-n.PADDING]]),{nodes:l,links:c}=i(e);return{sankeyGraph:i,nodes:l,links:c,svgContainer:s}}},"./src/Sankey/input.ts":(e,t,r)=>{function n(e){const t=Array.from(new Set(e.map((e=>e.territory_1_id)))),r=Array.from(new Set(e.map((e=>e.territory_2_id))));return{nodes:[...t.map((e=>({geoCode:e,position:"start",name:e+"-start"}))),...r.map((e=>({geoCode:e,position:"end",name:e+"-end"})))],links:e.map((e=>({source:e.territory_1_id+"-start",target:e.territory_2_id+"-end",value:Math.round(e.value)})))}}r.r(t),r.d(t,{default:()=>n})},"./src/Sankey/useDimensions.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>a});var n=r("react");function a(e,t){const[r,a]=(0,n.useState)([]),o=(0,n.useMemo)((()=>{const t=Array.from(new Set(e.map((e=>e.dimension))));return t.sort(((e,t)=>e.localeCompare(t))),t}),[e]);(0,n.useEffect)((()=>{a(o)}),[o]);const s=(0,n.useMemo)((()=>{const t=e.filter((e=>r.includes(e.dimension)));return Object.values(t.reduce(((e,t)=>{const r=t.territory_1_id,n=t.territory_2_id,a=`${r}-${n}`;return e[a]||(e[a]={territory_1_id:r,territory_2_id:n,value:0}),e[a].value+=t.value,e}),{}))}),[e,r]);return{dimensions:o,toggleDimension:e=>{a((t=>t.includes(e)?t.filter((t=>t!==e)):[...t,e].sort(((e,t)=>e.localeCompare(t)))))},aggregatedFlows:s}}},"./src/Sankey/useFetchData.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r("react"),a=function(e,t,r,n){return new(r||(r=Promise))((function(a,o){function s(e){try{l(n.next(e))}catch(e){o(e)}}function i(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,i)}l((n=n.apply(e,t||[])).next())}))};function o(e,t,r){const[o,s]=(0,n.useState)([]),[i,l]=(0,n.useState)({}),{geoLevel:c,geoId:d}=r,u=(0,n.useMemo)((()=>JSON.stringify(e)),[e]),f=(0,n.useMemo)((()=>({indicator:e,mesh:t,geoLevel:c,geoCode:d})),[u,t,c,d]);return(0,n.useEffect)((()=>{(()=>{a(this,void 0,void 0,(function*(){const e=yield fetch(`/api/indicators/flows/?prefix=${f.indicator.flows_db_table_prefix}&submesh=${f.mesh}&territory=${f.geoCode}-${f.geoLevel}${f.indicator.flows_dimension?"&dimension="+f.indicator.flows_dimension:""}`);if(e.ok){const t=yield e.json();s(t.flows),l(t.territories)}}))})()}),[f]),{flows:o,territories:i}}},"./src/Sankey/useSortAndLimit.ts":(e,t,r)=>{r.r(t),r.d(t,{default:()=>o});var n=r("react");function a(e,t){const r=e.reduce(((e,r)=>{const n="start"===t?r.territory_1_id:r.territory_2_id;return e[n]||(e[n]=0),e[n]+=r.value,e}),{});return Object.entries(r).sort(((e,t)=>t[1]-e[1])).slice(0,10)}function o(e){const t=(0,n.useMemo)((()=>{const t=a(e,"start"),r=t.map((e=>e[0])),n=a(e.filter((e=>r.includes(e.territory_1_id))),"end"),o=t.concat(n).sort(((e,t)=>t[1]-e[1])).map((e=>e[0]));return[...new Set(o)]}),[e]),r=(0,n.useMemo)((()=>e.filter((e=>t.includes(e.territory_1_id)&&t.includes(e.territory_2_id)))),[t,e]);return{order:t,filteredFlows:r}}},"./src/format.ts":(e,t,r)=>{r.r(t),r.d(t,{MILLIONS:()=>a,THOUSANDS:()=>n,formatIndicatorValue:()=>o,formatScaleAndUnite:()=>l,formatValue:()=>c});const n="k",a="M";function o(e,{forceInteger:t=!1,precise:r=!1}={}){if(null==e||isNaN(e))return"-";let o=null;return o=Math.abs(e)>999&&r?new Intl.NumberFormat("fr-FR").format(Math.round(e)):Math.abs(e)>999999?i(s(Math.sign(e)*Math.abs(e)/1e6,t))+a:Math.abs(e)>999?i(s(Math.sign(e)*Math.abs(e)/1e3,t))+n:i(s(e,t)),o=o.replace(".",","),o}const s=(e,t)=>t?e.toFixed(0):e.toFixed(1),i=e=>(e.indexOf(".")>0&&("00"===e.slice(-2)&&(e=e.slice(0,-2)),"0"===e.slice(-1)&&(e=e.slice(0,-1)),"."===e.slice(-1)&&(e=e.slice(0,-1))),e);function l(e,t,{forceInteger:r=!1,precise:n=!1}={}){return o(e,{forceInteger:r,precise:n})+" "+t.unite}function c(e,t,{forceInteger:r=!1,precise:n=!1}={}){return l(e,t,{forceInteger:r,precise:n})}},d3:e=>{e.exports=d3},react:e=>{e.exports=React}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,o),r.loaded=!0,r.exports}o.m=n,e=[],o.O=(t,r,n,a)=>{if(!r){var s=1/0;for(d=0;d<e.length;d++){for(var[r,n,a]=e[d],i=!0,l=0;l<r.length;l++)(!1&a||s>=a)&&Object.keys(o.O).every((e=>o.O[e](r[l])))?r.splice(l--,1):(i=!1,a<s&&(s=a));if(i){e.splice(d--,1);var c=n();void 0!==c&&(t=c)}}return t}a=a||0;for(var d=e.length;d>0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[r,n,a]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var a=Object.create(null);o.r(a);var s={};t=t||[null,r({}),r([]),r(r)];for(var i=2&n&&e;"object"==typeof i&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((t=>s[t]=()=>e[t]));return s.default=()=>e,o.d(a,s),a},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={sankeyGraph:0};o.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,[s,i,l]=r,c=0;if(s.some((t=>0!==e[t]))){for(n in i)o.o(i,n)&&(o.m[n]=i[n]);if(l)var d=l(o)}for(t&&t(r);c<s.length;c++)a=s[c],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return o.O(d)},r=self.webpackChunkreact_components=self.webpackChunkreact_components||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),o.nc=void 0;var s=o.O(void 0,["vendors"],(()=>o("./src/Sankey/index.tsx")));s=o.O(s)})();