/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import Component from '@ember/component'; import { set } from '@ember/object'; import Slotted from 'block-slots'; import chart from './chart.xstate'; export default Component.extend(Slotted, { tagName: '', onchange: (data) => data, init: function () { this._super(...arguments); this.chart = chart; }, didReceiveAttrs: function () { this._super(...arguments); if (typeof this.items !== 'undefined') { this.actions.change.apply(this, [this.items]); } }, didInsertElement: function () { this._super(...arguments); this.dispatch('LOAD'); }, actions: { isLoaded: function () { return typeof this.items !== 'undefined' || typeof this.src === 'undefined'; }, change: function (data) { set(this, 'data', this.onchange(data)); }, }, });