Ubuntu

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ import { reactive, readonly, DeepReadonly } from 'vue'; import Matomo from '../Matomo/Matomo'; interface SegmentInfo { definition: string; name: string; } interface SegmentsStoreData { availableSegments: SegmentInfo[]; } class SegmentsStore { private segmentState = reactive({ availableSegments: [], }); get state(): DeepReadonly { return readonly(this.segmentState); } constructor() { Matomo.on('piwikSegmentationInited', () => this.setSegmentState()); } private setSegmentState() { try { const uiControlObject = $('.segmentEditorPanel').data('uiControlObject'); this.segmentState.availableSegments = uiControlObject.impl.availableSegments || []; } catch (e) { // segment editor is not initialized yet } } } export default new SegmentsStore();