@@ -77,6 +77,8 @@ class Territories extends Control {
7777 * @fires territories:change
7878 * @fires territories:add
7979 * @fires territories:remove
80+ * @fires territories:reset
81+ * @fires territories:order
8082 * @public
8183 * @example
8284 * var territories = new ol.control.Territories({
@@ -95,6 +97,8 @@ class Territories extends Control {
9597 * territories.on("territories:loaded", (e) => { console.log(e.data); });
9698 * territories.on("territories:add", (e) => { console.log(e); });
9799 * territories.on("territories:remove", (e) => { console.log(e); });
100+ * territories.on("territories:reset", (e) => { console.log(e); });
101+ * territories.on("territories:order", (e) => { console.log(e); });
98102 */
99103 constructor ( options ) {
100104 options = options || { } ;
@@ -198,6 +202,24 @@ class Territories extends Control {
198202 // ################### getters / setters ############################# //
199203 // ################################################################### //
200204
205+ /**
206+ * Get all territories
207+ * @returns {Array<Territory> } - list of territories
208+ */
209+ getTerritories ( ) {
210+ return this . territories . map ( t => t . data ) ;
211+ }
212+
213+ /**
214+ * Find a territory by its ID
215+ * @param {String } id - territory ID
216+ * @returns {Territory|null } - territory or null if not found
217+ */
218+ findTerritoryById ( id ) {
219+ var found = this . territories . find ( e => e . data . id === id ) ;
220+ return found ? found . data : null ;
221+ }
222+
201223 /**
202224 * Add a territory
203225 *
@@ -537,6 +559,9 @@ class Territories extends Control {
537559 */
538560 closePanelUpLoad ( ) {
539561 // document.getElementById("gpf-territories-upload-container-id")
562+ if ( ! this . containerTerritoriesOptions ) {
563+ return ;
564+ }
540565 var button = this . containerTerritoriesOptions . children [ 0 ] ;
541566 if ( button ) {
542567 button . setAttribute ( "aria-expanded" , "false" ) ;
@@ -842,6 +867,24 @@ class Territories extends Control {
842867 var nb = this . territories . filter ( t => ! t . isRemoved ) . length ;
843868 count . innerText = nb ;
844869 }
870+ /**
871+ * event triggered when a territory is reset
872+ *
873+ * @event territories:reset
874+ * @defaultValue "territories:reset"
875+ * @group Events
876+ * @property {Object } type - event
877+ * @property {Object } target - instance Territories
878+ * @property {Object } territories - territories
879+ * @example
880+ * Territories.on("territories:reset", function (e) {
881+ * console.log(e.territories);
882+ * })
883+ */
884+ this . dispatchEvent ( {
885+ type : "territories:reset" ,
886+ territories : this . getTerritories ( )
887+ } ) ;
845888 }
846889
847890 /**
@@ -912,6 +955,24 @@ class Territories extends Control {
912955 this . territories . forEach ( territory => {
913956 this . panelTerritoriesEntriesContainer . appendChild ( territory . domEntry ) ;
914957 } ) ;
958+ /**
959+ * event triggered when a territory is reordered
960+ *
961+ * @event territories:order
962+ * @defaultValue "territories:order"
963+ * @group Events
964+ * @property {Object } type - event
965+ * @property {Object } target - instance Territories
966+ * @property {Object } territories - territories
967+ * @example
968+ * Territories.on("territories:order", function (e) {
969+ * console.log(e.territories);
970+ * })
971+ */
972+ this . dispatchEvent ( {
973+ type : "territories:order" ,
974+ territories : this . getTerritories ( )
975+ } ) ;
915976 }
916977
917978} ;
0 commit comments