@bryntum/grid-vue-3-thin 7.3.0 → 7.3.1

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.
Files changed (35) hide show
  1. package/README.md +4 -4
  2. package/lib/chunks/Bc2x_WPR.js.map +1 -1
  3. package/lib/chunks/Be7ZZzGW.js.map +1 -1
  4. package/lib/chunks/BpNo5v3W.js.map +1 -1
  5. package/lib/chunks/{BeyOFZne.js → C87PnYXS.js} +11 -9
  6. package/lib/chunks/C87PnYXS.js.map +1 -0
  7. package/lib/chunks/{Ba35uKyP.js → C9RmZYoQ.js} +7 -5
  8. package/lib/chunks/C9RmZYoQ.js.map +1 -0
  9. package/lib/chunks/CAlh-Y8B.js.map +1 -1
  10. package/lib/chunks/CWYhi4DG.js.map +1 -1
  11. package/lib/chunks/CcfDAcJD.js.map +1 -1
  12. package/lib/chunks/{BGeNcVH6.js → DZ2V6NNc.js} +12 -10
  13. package/lib/chunks/DZ2V6NNc.js.map +1 -0
  14. package/lib/chunks/w2GDktIt.js.map +1 -1
  15. package/lib/components/BryntumAIFilterField.js +1 -1
  16. package/lib/components/BryntumChecklistFilterCombo.js +1 -1
  17. package/lib/components/BryntumTreeCombo.js +1 -1
  18. package/lib/index.js +3 -3
  19. package/package.json +1 -1
  20. package/src/components/BryntumAIFilterField.vue +80 -106
  21. package/src/components/BryntumAIFilterFieldProps.ts +9 -0
  22. package/src/components/BryntumChecklistFilterCombo.vue +81 -109
  23. package/src/components/BryntumChecklistFilterComboProps.ts +9 -0
  24. package/src/components/BryntumGrid.vue +523 -755
  25. package/src/components/BryntumGridBase.vue +523 -755
  26. package/src/components/BryntumGridChartDesigner.vue +43 -69
  27. package/src/components/BryntumGridFieldFilterPicker.vue +53 -85
  28. package/src/components/BryntumGridFieldFilterPickerGroup.vue +57 -91
  29. package/src/components/BryntumGroupBar.vue +65 -101
  30. package/src/components/BryntumTreeCombo.vue +81 -109
  31. package/src/components/BryntumTreeComboProps.ts +9 -0
  32. package/src/components/BryntumTreeGrid.vue +523 -755
  33. package/lib/chunks/BGeNcVH6.js.map +0 -1
  34. package/lib/chunks/Ba35uKyP.js.map +0 -1
  35. package/lib/chunks/BeyOFZne.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { _ as f } from "../chunks/BGeNcVH6.js";
1
+ import { _ as f } from "../chunks/DZ2V6NNc.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as f } from "../chunks/Ba35uKyP.js";
1
+ import { _ as f } from "../chunks/C9RmZYoQ.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as f } from "../chunks/BeyOFZne.js";
1
+ import { _ as f } from "../chunks/C87PnYXS.js";
2
2
  export {
3
3
  f as default
4
4
  };
package/lib/index.js CHANGED
@@ -1,12 +1,12 @@
1
- import { _ as o } from "./chunks/BGeNcVH6.js";
2
- import { _ as m } from "./chunks/Ba35uKyP.js";
1
+ import { _ as o } from "./chunks/DZ2V6NNc.js";
2
+ import { _ as m } from "./chunks/C9RmZYoQ.js";
3
3
  import { _ as a } from "./chunks/Be7ZZzGW.js";
4
4
  import { _ as p } from "./chunks/Bc2x_WPR.js";
5
5
  import { _ as B } from "./chunks/CAlh-Y8B.js";
6
6
  import { _ as f } from "./chunks/BpNo5v3W.js";
7
7
  import { _ as y } from "./chunks/CWYhi4DG.js";
8
8
  import { _ as d } from "./chunks/CcfDAcJD.js";
9
- import { _ as G } from "./chunks/BeyOFZne.js";
9
+ import { _ as G } from "./chunks/C87PnYXS.js";
10
10
  import { _ as C } from "./chunks/w2GDktIt.js";
11
11
  export {
12
12
  o as BryntumAIFilterField,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bryntum/grid-vue-3-thin",
3
- "version": "7.3.0",
3
+ "version": "7.3.1",
4
4
  "description": "Vue 3 wrappers for Bryntum Grid JavaScript component",
5
5
  "keywords": [
6
6
  "bryntum",
@@ -92,6 +92,15 @@ defineProps<{
92
92
  * Set to `true` to centre the Widget in browser viewport space.
93
93
  */
94
94
  centered ? : Boolean
95
+ /**
96
+ * A function (or the name of a function in the ownership hierarchy) called during field validation
97
+ * to perform custom validity checks. The function is called as part of the [isValid](https://bryntum.com/products/grid/docs/api/Core/widget/Field#property-isValid)
98
+ * evaluation, after the built-in [required](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-required) check.
99
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-checkValidity)
100
+ * @param {Core.widget.Field} field The field being validated
101
+ * @returns {void}
102
+ */
103
+ checkValidity ? : ((field: Field) => void)|string
95
104
  /**
96
105
  * Show a trigger to clear field, if this field is not [readOnly](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-readOnly). The trigger is available
97
106
  * in the [triggers](https://bryntum.com/products/grid/docs/api/Core/widget/Field#property-triggers) object under the name `clear`. May also be an object which
@@ -616,48 +625,40 @@ const emit = defineEmits<{
616
625
  * User performed default action (typed into this field).
617
626
  * @param {string} e Event name
618
627
  * @param {object} params Event parameters
619
- * @param {string} params.e Event name
620
- * @param {object} params.params Event parameters
621
- * @param {object} params.params.event Event object
622
- * @param {Core.widget.Field,any} params.params.event.source This Field
623
- * @param {string,number,boolean,any} params.params.event.value This field's value
624
- * @param {string,number,boolean,any} params.params.event.oldValue This field's previous value
625
- * @param {boolean} params.params.event.valid True if this field is in a valid state
626
- * @param {Event} params.params.event.event The triggering DOM event if any
627
- * @param {Core.data.Model} params.params.event.record Selected record. Available for fields with records selection functionality
628
- * @param {Core.data.Model[]} params.params.event.records Selected records as an array. Available for fields with records selection functionality
629
- * @param {boolean} params.params.event.userAction Triggered by user taking an action (`true`) or by setting a value (`false`)
630
- * @param {boolean} params.params.event.checked
628
+ * @param {object} params.event Event object
629
+ * @param {Core.widget.Field,any} params.event.source This Field
630
+ * @param {string,number,boolean,any} params.event.value This field's value
631
+ * @param {string,number,boolean,any} params.event.oldValue This field's previous value
632
+ * @param {boolean} params.event.valid True if this field is in a valid state
633
+ * @param {Event} params.event.event The triggering DOM event if any
634
+ * @param {Core.data.Model} params.event.record Selected record. Available for fields with records selection functionality
635
+ * @param {Core.data.Model[]} params.event.records Selected records as an array. Available for fields with records selection functionality
636
+ * @param {boolean} params.event.userAction Triggered by user taking an action (`true`) or by setting a value (`false`)
637
+ * @param {boolean} params.event.checked
631
638
  */
632
639
  (e: 'action', params: ((event: { source: Field|any, value: string|number|boolean|any, oldValue: string|number|boolean|any, valid: boolean, event: Event, record: Model, records: Model[], userAction: boolean, checked: boolean }) => void)|string): void
633
640
  /**
634
641
  * Fires before an object is destroyed.
635
642
  * @param {string} e Event name
636
643
  * @param {object} params Event parameters
637
- * @param {string} params.e Event name
638
- * @param {object} params.params Event parameters
639
- * @param {object} params.params.event Event object
640
- * @param {Core.Base} params.params.event.source The Object that is being destroyed.
644
+ * @param {object} params.event Event object
645
+ * @param {Core.Base} params.event.source The Object that is being destroyed.
641
646
  */
642
647
  (e: 'beforeDestroy', params: ((event: { source: Base }) => void)|string): void
643
648
  /**
644
649
  * Triggered before a widget is hidden. Return `false` to prevent the action.
645
650
  * @param {string} e Event name
646
651
  * @param {object} params Event parameters
647
- * @param {string} params.e Event name
648
- * @param {object} params.params Event parameters
649
- * @param {object} params.params.event Event object
650
- * @param {Core.widget.Widget} params.params.event.source The widget being hidden.
652
+ * @param {object} params.event Event object
653
+ * @param {Core.widget.Widget} params.event.source The widget being hidden.
651
654
  */
652
- (e: 'beforeHide', params: ((event: { source: Widget }) => Promise<boolean>|boolean|void)|string): Promise<boolean>|boolean|void
655
+ (e: 'beforeHide', params: ((event: { source: Widget }) => boolean|void)|string): boolean|void
653
656
  /**
654
657
  * Triggered before a widget is shown. Return `false` to prevent the action.
655
658
  * @param {string} e Event name
656
659
  * @param {object} params Event parameters
657
- * @param {string} params.e Event name
658
- * @param {object} params.params Event parameters
659
- * @param {object} params.params.event Event object
660
- * @param {Core.widget.Widget,any} params.params.event.source The widget being shown
660
+ * @param {object} params.event Event object
661
+ * @param {Core.widget.Widget,any} params.event.source The widget being shown
661
662
  */
662
663
  (e: 'beforeShow', params: ((event: { source: Widget|any }) => Promise<boolean>|boolean|void)|string): Promise<boolean>|boolean|void
663
664
  /**
@@ -665,27 +666,23 @@ const emit = defineEmits<{
665
666
  * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-catchAll)
666
667
  * @param {string} e Event name
667
668
  * @param {object} params Event parameters
668
- * @param {string} params.e Event name
669
- * @param {object} params.params Event parameters
670
- * @param {object} params.params.event Event object
671
- * @param {{[key: string]: any, type: string}} params.params.event.event The Object that contains event details
672
- * @param {string} params.params.event.event.type The type of the event which is caught by the listener
669
+ * @param {object} params.event Event object
670
+ * @param {{[key: string]: any, type: string}} params.event.event The Object that contains event details
671
+ * @param {string} params.event.event.type The type of the event which is caught by the listener
673
672
  */
674
673
  (e: 'catchAll', params: ((event: {[key: string]: any, type: string}) => void)|string): void
675
674
  /**
676
675
  * Fired when this field's value changes.
677
676
  * @param {string} e Event name
678
677
  * @param {object} params Event parameters
679
- * @param {string} params.e Event name
680
- * @param {object} params.params Event parameters
681
- * @param {object} params.params.event Event object
682
- * @param {Core.widget.Field,any} params.params.event.source This Field
683
- * @param {string,number,boolean,any} params.params.event.value This field's value
684
- * @param {string,number,boolean,any} params.params.event.oldValue This field's previous value
685
- * @param {boolean} params.params.event.valid True if this field is in a valid state
686
- * @param {Event} params.params.event.event The triggering DOM event if any
687
- * @param {boolean} params.params.event.userAction Triggered by user taking an action (`true`) or by setting a value (`false`)
688
- * @param {boolean} params.params.event.checked
678
+ * @param {object} params.event Event object
679
+ * @param {Core.widget.Field,any} params.event.source This Field
680
+ * @param {string,number,boolean,any} params.event.value This field's value
681
+ * @param {string,number,boolean,any} params.event.oldValue This field's previous value
682
+ * @param {boolean} params.event.valid True if this field is in a valid state
683
+ * @param {Event} params.event.event The triggering DOM event if any
684
+ * @param {boolean} params.event.userAction Triggered by user taking an action (`true`) or by setting a value (`false`)
685
+ * @param {boolean} params.event.checked
689
686
  */
690
687
  (e: 'change', params: ((event: { source: Field|any, value: string|number|boolean|any, oldValue: string|number|boolean|any, valid: boolean, event: Event, userAction: boolean, checked: boolean }) => void)|string): void
691
688
  /**
@@ -693,45 +690,37 @@ const emit = defineEmits<{
693
690
  * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-clear)
694
691
  * @param {string} e Event name
695
692
  * @param {object} params Event parameters
696
- * @param {string} params.e Event name
697
- * @param {object} params.params Event parameters
698
- * @param {object} params.params.event Event object
699
- * @param {Core.widget.Field,any} params.params.event.source This Field
693
+ * @param {object} params.event Event object
694
+ * @param {Core.widget.Field,any} params.event.source This Field
700
695
  */
701
696
  (e: 'clear', params: ((event: { source: Field|any }) => void)|string): void
702
697
  /**
703
698
  * Fires when an object is destroyed.
704
699
  * @param {string} e Event name
705
700
  * @param {object} params Event parameters
706
- * @param {string} params.e Event name
707
- * @param {object} params.params Event parameters
708
- * @param {object} params.params.event Event object
709
- * @param {Core.Base} params.params.event.source The Object that is being destroyed.
701
+ * @param {object} params.event Event object
702
+ * @param {Core.Base} params.event.source The Object that is being destroyed.
710
703
  */
711
704
  (e: 'destroy', params: ((event: { source: Base }) => void)|string): void
712
705
  /**
713
706
  * Triggered when a widget's [element](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#property-element) is available.
714
707
  * @param {string} e Event name
715
708
  * @param {object} params Event parameters
716
- * @param {string} params.e Event name
717
- * @param {object} params.params Event parameters
718
- * @param {object} params.params.event Event object
719
- * @param {HTMLElement} params.params.event.element The Widget's element.
709
+ * @param {object} params.event Event object
710
+ * @param {HTMLElement} params.event.element The Widget's element.
720
711
  */
721
712
  (e: 'elementCreated', params: ((event: { element: HTMLElement }) => void)|string): void
722
713
  /**
723
714
  * Fired when focus enters this Widget.
724
715
  * @param {string} e Event name
725
716
  * @param {object} params Event parameters
726
- * @param {string} params.e Event name
727
- * @param {object} params.params Event parameters
728
- * @param {object} params.params.event Event object
729
- * @param {Core.widget.Widget} params.params.event.source This Widget
730
- * @param {HTMLElement} params.params.event.fromElement The element which lost focus.
731
- * @param {HTMLElement} params.params.event.toElement The element which gained focus.
732
- * @param {Core.widget.Widget} params.params.event.fromWidget The widget which lost focus.
733
- * @param {Core.widget.Widget} params.params.event.toWidget The widget which gained focus.
734
- * @param {boolean} params.params.event.backwards `true` if the `toElement` is before the `fromElement` in document order.
717
+ * @param {object} params.event Event object
718
+ * @param {Core.widget.Widget} params.event.source This Widget
719
+ * @param {HTMLElement} params.event.fromElement The element which lost focus.
720
+ * @param {HTMLElement} params.event.toElement The element which gained focus.
721
+ * @param {Core.widget.Widget} params.event.fromWidget The widget which lost focus.
722
+ * @param {Core.widget.Widget} params.event.toWidget The widget which gained focus.
723
+ * @param {boolean} params.event.backwards `true` if the `toElement` is before the `fromElement` in document order.
735
724
  */
736
725
  (e: 'focusIn', params: ((event: { source: Widget, fromElement: HTMLElement, toElement: HTMLElement, fromWidget: Widget, toWidget: Widget, backwards: boolean }) => void)|string): void
737
726
  /**
@@ -740,37 +729,31 @@ const emit = defineEmits<{
740
729
  * will not trigger this event. This is when focus exits this widget completely.
741
730
  * @param {string} e Event name
742
731
  * @param {object} params Event parameters
743
- * @param {string} params.e Event name
744
- * @param {object} params.params Event parameters
745
- * @param {object} params.params.event Event object
746
- * @param {Core.widget.Widget} params.params.event.source This Widget
747
- * @param {HTMLElement} params.params.event.fromElement The element which lost focus.
748
- * @param {HTMLElement} params.params.event.toElement The element which gained focus.
749
- * @param {Core.widget.Widget} params.params.event.fromWidget The widget which lost focus.
750
- * @param {Core.widget.Widget} params.params.event.toWidget The widget which gained focus.
751
- * @param {boolean} params.params.event.backwards `true` if the `toElement` is before the `fromElement` in document order.
732
+ * @param {object} params.event Event object
733
+ * @param {Core.widget.Widget} params.event.source This Widget
734
+ * @param {HTMLElement} params.event.fromElement The element which lost focus.
735
+ * @param {HTMLElement} params.event.toElement The element which gained focus.
736
+ * @param {Core.widget.Widget} params.event.fromWidget The widget which lost focus.
737
+ * @param {Core.widget.Widget} params.event.toWidget The widget which gained focus.
738
+ * @param {boolean} params.event.backwards `true` if the `toElement` is before the `fromElement` in document order.
752
739
  */
753
740
  (e: 'focusOut', params: ((event: { source: Widget, fromElement: HTMLElement, toElement: HTMLElement, fromWidget: Widget, toWidget: Widget, backwards: boolean }) => void)|string): void
754
741
  /**
755
742
  * Triggered after a widget was hidden
756
743
  * @param {string} e Event name
757
744
  * @param {object} params Event parameters
758
- * @param {string} params.e Event name
759
- * @param {object} params.params Event parameters
760
- * @param {object} params.params.event Event object
761
- * @param {Core.widget.Widget} params.params.event.source The widget
745
+ * @param {object} params.event Event object
746
+ * @param {Core.widget.Widget} params.event.source The widget
762
747
  */
763
748
  (e: 'hide', params: ((event: { source: Widget }) => void)|string): void
764
749
  /**
765
750
  * Fired when the user types into this field.
766
751
  * @param {string} e Event name
767
752
  * @param {object} params Event parameters
768
- * @param {string} params.e Event name
769
- * @param {object} params.params Event parameters
770
- * @param {object} params.params.event Event object
771
- * @param {Core.widget.Field,any} params.params.event.source This field
772
- * @param {string,number,boolean,any} params.params.event.value This field's value
773
- * @param {Event} params.params.event.event The triggering DOM event
753
+ * @param {object} params.event Event object
754
+ * @param {Core.widget.Field,any} params.event.source This field
755
+ * @param {string,number,boolean,any} params.event.value This field's value
756
+ * @param {Event} params.event.event The triggering DOM event
774
757
  */
775
758
  (e: 'input', params: ((event: { source: Field|any, value: string|number|boolean|any, event: Event }) => void)|string): void
776
759
  /**
@@ -779,21 +762,17 @@ const emit = defineEmits<{
779
762
  * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#event-paint)
780
763
  * @param {string} e Event name
781
764
  * @param {object} params Event parameters
782
- * @param {string} params.e Event name
783
- * @param {object} params.params Event parameters
784
- * @param {object} params.params.event Event object
785
- * @param {Core.widget.Widget} params.params.event.source The widget being painted.
786
- * @param {boolean} params.params.event.firstPaint `true` if this is the first paint.
765
+ * @param {object} params.event Event object
766
+ * @param {Core.widget.Widget} params.event.source The widget being painted.
767
+ * @param {boolean} params.event.firstPaint `true` if this is the first paint.
787
768
  */
788
769
  (e: 'paint', params: ((event: { source: Widget, firstPaint: boolean }) => void)|string): void
789
770
  /**
790
771
  * Fired when a Widget's read only state is toggled
791
772
  * @param {string} e Event name
792
773
  * @param {object} params Event parameters
793
- * @param {string} params.e Event name
794
- * @param {object} params.params Event parameters
795
- * @param {object} params.params.event Event object
796
- * @param {boolean} params.params.event.readOnly Read only or not
774
+ * @param {object} params.event Event object
775
+ * @param {boolean} params.event.readOnly Read only or not
797
776
  */
798
777
  (e: 'readOnly', params: ((event: { readOnly: boolean }) => void)|string): void
799
778
  /**
@@ -805,35 +784,29 @@ const emit = defineEmits<{
805
784
  * Fired when the encapsulating element of a Widget resizes *only when [monitorResize](https://bryntum.com/products/grid/docs/api/Core/widget/Widget#config-monitorResize) is `true`*.
806
785
  * @param {string} e Event name
807
786
  * @param {object} params Event parameters
808
- * @param {string} params.e Event name
809
- * @param {object} params.params Event parameters
810
- * @param {object} params.params.event Event object
811
- * @param {Core.widget.Widget} params.params.event.source This Widget
812
- * @param {number} params.params.event.width The new width
813
- * @param {number} params.params.event.height The new height
814
- * @param {number} params.params.event.oldWidth The old width
815
- * @param {number} params.params.event.oldHeight The old height
787
+ * @param {object} params.event Event object
788
+ * @param {Core.widget.Widget} params.event.source This Widget
789
+ * @param {number} params.event.width The new width
790
+ * @param {number} params.event.height The new height
791
+ * @param {number} params.event.oldWidth The old width
792
+ * @param {number} params.event.oldHeight The old height
816
793
  */
817
794
  (e: 'resize', params: ((event: { source: Widget, width: number, height: number, oldWidth: number, oldHeight: number }) => void)|string): void
818
795
  /**
819
796
  * Triggered after a widget is shown.
820
797
  * @param {string} e Event name
821
798
  * @param {object} params Event parameters
822
- * @param {string} params.e Event name
823
- * @param {object} params.params Event parameters
824
- * @param {object} params.params.event Event object
825
- * @param {Core.widget.Widget} params.params.event.source The widget
799
+ * @param {object} params.event Event object
800
+ * @param {Core.widget.Widget} params.event.source The widget
826
801
  */
827
802
  (e: 'show', params: ((event: { source: Widget }) => void)|string): void
828
803
  /**
829
804
  * User clicked one of this field's [triggers](https://bryntum.com/products/grid/docs/api/Core/widget/Field#property-triggers)
830
805
  * @param {string} e Event name
831
806
  * @param {object} params Event parameters
832
- * @param {string} params.e Event name
833
- * @param {object} params.params Event parameters
834
- * @param {object} params.params.event Event object
835
- * @param {Core.widget.Field,any} params.params.event.source This field
836
- * @param {Core.widget.Widget} params.params.event.trigger The trigger activated by click or touch tap.
807
+ * @param {object} params.event Event object
808
+ * @param {Core.widget.Field,any} params.event.source This field
809
+ * @param {Core.widget.Widget} params.event.trigger The trigger activated by click or touch tap.
837
810
  */
838
811
  (e: 'trigger', params: ((event: { source: Field|any, trigger: Widget }) => void)|string): void
839
812
  }>();
@@ -852,6 +825,7 @@ const widgetData = {
852
825
  'autoSelect',
853
826
  'bubbleEvents',
854
827
  'centered',
828
+ 'checkValidity',
855
829
  'clearable',
856
830
  'client',
857
831
  'color',
@@ -77,6 +77,15 @@ export declare type BryntumAIFilterFieldProps = {
77
77
  * Set to `true` to centre the Widget in browser viewport space.
78
78
  */
79
79
  centered ? : Boolean
80
+ /**
81
+ * A function (or the name of a function in the ownership hierarchy) called during field validation
82
+ * to perform custom validity checks. The function is called as part of the [isValid](https://bryntum.com/products/grid/docs/api/Core/widget/Field#property-isValid)
83
+ * evaluation, after the built-in [required](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-required) check.
84
+ * [More...](https://bryntum.com/products/grid/docs/api/Grid/widget/AIFilterField#config-checkValidity)
85
+ * @param {Core.widget.Field} field The field being validated
86
+ * @returns {void}
87
+ */
88
+ checkValidity ? : ((field: Field) => void)|string
80
89
  /**
81
90
  * Show a trigger to clear field, if this field is not [readOnly](https://bryntum.com/products/grid/docs/api/Core/widget/Field#config-readOnly). The trigger is available
82
91
  * in the [triggers](https://bryntum.com/products/grid/docs/api/Core/widget/Field#property-triggers) object under the name `clear`. May also be an object which