refactor: hypercubeHandler types

This commit is contained in:
Donya Mashaallahpoor
2025-10-24 10:09:32 +02:00
parent 41e0671653
commit cc0341dd6f
2 changed files with 103 additions and 103 deletions

View File

@@ -4,7 +4,7 @@ import { INITIAL_SORT_CRITERIAS } from './utils/constants';
import { notSupportedError } from './utils/hypercube-helper/hypercube-utils';
/**
* @private
* @class DataPropertyHandler
* @description A class to handle data properties for dimensions and measures in a data model.
* @param {object} opts - Parameters to add a hypercube handlers
@@ -47,30 +47,30 @@ class DataPropertyHandler {
}
/**
* @private
* @typeof {object} LibraryDimension
* @export
* @interface LibraryDimension
* @property {string} id
* @property {qix.NxDimension=} defaults
*/
/**
* @private
* @typeof {object} FieldDimension
* @export
* @interface FieldDimension
* @property {string} field
* @property {string=} label
* @property {qix.NxDimension=} defaults
*/
/**
* @private
* @typeof {object} LibraryMeasure
* @export
* @interface LibraryMeasure
* @property {string} id
* @property {qix.NxMeasure=} defaults
*/
/**
* @private
* @typeof {object} ExpressionMeasure
* @export
* @interface ExpressionMeasure
* @property {string} expression
* @property {string=} label
* @property {qix.NxMeasure=} defaults
@@ -78,7 +78,7 @@ class DataPropertyHandler {
/**
* Sets the properties for the handler.
* @private
* @param {object=} properties - The properties object to set.
* @description Updates the handler's properties and analysis type flag.
* @memberof DataPropertyHandler
@@ -92,7 +92,7 @@ class DataPropertyHandler {
/**
* Sets the global change listeners.
* @private
* @param {Function[]} arr - Array of listener functions.
* @description Assigns global change listeners to the handler.
* @memberof DataPropertyHandler
@@ -104,7 +104,7 @@ class DataPropertyHandler {
}
/**
* @private
* @param {object=} layout - The layout object to set.
* @description Sets the layout for the handler.
* @memberof DataPropertyHandler
@@ -116,7 +116,7 @@ class DataPropertyHandler {
}
/**
* @private
* @throws {Error}
* @description Throws an error indicating the method must be overridden.
* @memberof DataPropertyHandler
@@ -133,7 +133,7 @@ class DataPropertyHandler {
// ---------------------------------------
/**
* @private
* @returns {Array} Empty array.
* @description Returns the default dimension array.
* @memberof DataPropertyHandler
@@ -145,7 +145,7 @@ class DataPropertyHandler {
/**
* Gets a dimension by id from dimensions or alternative dimensions.
* @private
* @param {LibraryDimension} libraryDimension
* @returns {qix.NxDimension} - The found dimension.
* @description Searches for a dimension by id in both main and alternative dimensions.
@@ -162,7 +162,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating the method must be implemented in subclasses.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -173,7 +173,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating addDimension is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -184,7 +184,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating addDimensions is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -195,7 +195,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating removeDimension is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -206,7 +206,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating removeDimensions is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -217,7 +217,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating autoSortDimension is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -228,7 +228,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating replaceDimension is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -239,7 +239,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating getSorting is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -250,7 +250,7 @@ class DataPropertyHandler {
/**
* Creates a type of library dimension with a field definition.
* @private
* @param {LibraryDimension} libraryDimension
* @returns {qix.NxDimension} The created dimension object.
* @description Initializes a dimension and applying default properties and sort criteria.
@@ -275,7 +275,7 @@ class DataPropertyHandler {
/**
* Creates a type of field dimension with a field definition.
* @private
* @param {FieldDimension} fieldDimension
* @returns {qix.NxDimension} The created dimension object.
* @description Initializes a dimension with field definitions, labels, and default properties.
@@ -304,7 +304,7 @@ class DataPropertyHandler {
/**
* Adds a field dimension to the handler.
* @private
* @param {FieldDimension} fieldDimension
* @returns {Promise<qix.NxDimension=>} The result of addDimension.
* @description Creates and adds a field dimension.
@@ -318,7 +318,7 @@ class DataPropertyHandler {
}
/**
* @private
* @param {FieldDimension[]} fieldDimensions - Array of field dimension.
* @returns {Promise<qix.NxDimension[]>} The result of addDimensions.
* @description Creates and adds multiple field dimensions.
@@ -333,7 +333,7 @@ class DataPropertyHandler {
/**
* Adds a library dimension to the handler.
* @private
* @param {LibraryDimension} libraryDimension
* @returns {Promise<qix.NxDimension=>} The result of addDimension.
* @description Creates and adds a library dimension.
@@ -348,7 +348,7 @@ class DataPropertyHandler {
/**
* Adds multiple library dimensions to the handler.
* @private
* @param {LibraryDimension[]} libraryDimensions - Array of library dimension.
* @returns {Promise<qix.NxDimension[]>} The result of addDimensions.
* @description Creates and adds multiple library dimensions.
@@ -364,7 +364,7 @@ class DataPropertyHandler {
/**
* Adds multiple alternative library dimensions to the handler.
* @private
* @param {LibraryDimension[]} libraryDimensions - Array of library dimension.
* @returns {Promise<qix.NxDimension[]>} The result of addDimensions.
* @description Creates and adds multiple alternative library dimensions.
@@ -379,7 +379,7 @@ class DataPropertyHandler {
/**
* Adds multiple alternative field dimensions to the handler.
* @private
* @param {FieldDimension[]} fieldDimensions - Array of field dimension.
* @returns {Promise<qix.NxDimension[]>} The result of addDimensions.
* @description Creates and adds multiple alternative field dimensions.
@@ -394,7 +394,7 @@ class DataPropertyHandler {
/**
* Adds an alternative field dimension to the handler.
* @private
* @param {FieldDimension} fieldDimension
* @returns {Promise<qix.NxDimension=>} The result of addDimension.
* @description Creates and adds an alternative field dimension.
@@ -409,7 +409,7 @@ class DataPropertyHandler {
/**
* Adds an alternative library dimension to the handler.
* @private
* @param {LibraryDimension} libraryDimension
* @returns {Promise<qix.NxDimension=>} The result of addDimension.
* @description Creates and adds an alternative library dimension.
@@ -424,7 +424,7 @@ class DataPropertyHandler {
/**
* Gets the minimum number of dimensions allowed.
* @private
* @returns {number} The minimum number of dimensions.
* @description Returns the minimum number of dimensions allowed by the handler.
* @memberof DataPropertyHandler
@@ -440,7 +440,7 @@ class DataPropertyHandler {
/**
* Gets the maximum number of dimensions allowed.
* @private
* @param {number} [decrement=0] - The number to decrement from the current number of measures.
* @returns {number} The maximum number of dimensions allowed.
* @description Checks if the max property is a function and calls it with the current number of measures, or returns a default value.
@@ -461,7 +461,7 @@ class DataPropertyHandler {
/**
* Checks if a new dimension can be added.
* @private
* @returns {boolean} True if a new dimension can be added, false otherwise.
* @description Returns whether the handler can add another dimension.
* @memberof DataPropertyHandler
@@ -477,7 +477,7 @@ class DataPropertyHandler {
// ---------------------------------------
/**
* @private
* @returns {Array} Empty array.
* @description Returns the default measure array.
* @memberof DataPropertyHandler
@@ -489,7 +489,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating the method must be implemented in subclasses.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -500,7 +500,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating addMeasure is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -511,7 +511,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating addMeasures is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -522,7 +522,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating removeMeasure is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -533,7 +533,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating removeMeasures is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -544,7 +544,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating autoSortMeasure is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -555,7 +555,7 @@ class DataPropertyHandler {
/**
* Throws an error indicating replaceMeasure is not supported in the base class.
* @private
* @throws {Error}
* @memberof DataPropertyHandler
*/
@@ -566,7 +566,7 @@ class DataPropertyHandler {
/**
* Gets a measure by id from measures or alternative measures.
* @private
* @param {string} libraryDimension - The measure id to find.
* @returns {qix.NxMeasure} The found measure or undefined.
* @description Searches for a measure by id in both main and alternative measures.
@@ -583,7 +583,7 @@ class DataPropertyHandler {
/**
* Creates an expression measure.
* @private
* @param {ExpressionMeasure} expressionMeasure
* @returns {Promise<qix.NxMeasure=>} The created measure object.
* @description Initializes a measure with an expression, label, and default properties.
@@ -606,7 +606,7 @@ class DataPropertyHandler {
/**
* Adds an expression measure to the handler.
* @private
* @param {ExpressionMeasure} expressionMeasure
* @returns {Promise<qix.NxMeasure=>} The result of addMeasure.
* @description Creates and adds an expression measure.
@@ -621,7 +621,7 @@ class DataPropertyHandler {
/**
* Adds multiple expression measures to the handler.
* @private
* @param {ExpressionMeasure[]} expressionMeasures - Array of expression measure.
* @returns {Promise<qix.NxMeasure[]>} The result of addMeasures.
* @description Creates and adds multiple expression measures.
@@ -636,7 +636,7 @@ class DataPropertyHandler {
/**
* Creates a library measure.
* @private
* @param {LibraryMeasure} libraryMeasure
* @returns {qix.NxMeasure} The created measure object.
* @description Initializes a library measure with default properties.
@@ -663,7 +663,7 @@ class DataPropertyHandler {
/**
* Adds a library measure to the handler.
* @private
* @param {LibraryMeasure} libraryMeasure
* @returns {Promise<qix.NxMeasure=>} The result of addMeasure.
* @description Creates and adds a library measure.
@@ -678,7 +678,7 @@ class DataPropertyHandler {
/**
* Adds multiple library measures to the handler.
* @private
* @param {LibraryMeasure[]} libraryMeasures - Array of library measure.
* @returns {Promise<qix.NxMeasure[]>} The result of addMeasures.
* @description Creates and adds multiple library measures.
@@ -693,7 +693,7 @@ class DataPropertyHandler {
/**
* Adds multiple alternative library measures to the handler.
* @private
* @param {LibraryMeasure[]} libraryMeasures - Array of library measure.
* @returns {Promise<qix.NxMeasure[]>} The result of addMeasures.
* @description Creates and adds multiple alternative library measures.
@@ -708,7 +708,7 @@ class DataPropertyHandler {
/**
* Adds multiple alternative expression measures to the handler.
* @private
* @param {ExpressionMeasure[]} expressionMeasures - Array of expression measure.
* @returns {Promise<qix.NxMeasure[]>} The result of addMeasures.
* @description Creates and adds multiple alternative expression measures.
@@ -723,7 +723,7 @@ class DataPropertyHandler {
/**
* Adds an alternative expression measure to the handler.
* @private
* @param {ExpressionMeasure} expressionMeasure
* @returns {Promise<qix.NxMeasure=>} The result of addMeasure.
* @description Creates and adds an alternative expression measure.
@@ -738,7 +738,7 @@ class DataPropertyHandler {
/**
* Adds an alternative library measure to the handler.
* @private
* @param {LibraryMeasure} libraryMeasure
* @returns {qix.NxMeasure=} The result of addMeasure.
* @description Creates and adds an alternative library measure.
@@ -753,7 +753,7 @@ class DataPropertyHandler {
/**
* Gets the minimum number of measures allowed.
* @private
* @returns {number} The minimum number of measures.
* @description Returns the minimum number of measures allowed by the handler.
* @memberof DataPropertyHandler
@@ -769,7 +769,7 @@ class DataPropertyHandler {
/**
* Gets the maximum number of measures allowed.
* @private
* @param {number} [decrement=0] - The number to decrement from the current number of dimensions.
* @returns {number} The maximum number of measures allowed.
* @description Checks if the max property is a function and calls it with the current number of dimensions, or returns a default value.
@@ -788,7 +788,7 @@ class DataPropertyHandler {
/**
* Checks if a new measure can be added.
* @private
* @returns {boolean} True if a new measure can be added, false otherwise.
* @description Returns whether the handler can add another measure.
* @memberof DataPropertyHandler
@@ -805,7 +805,7 @@ class DataPropertyHandler {
/**
* Calls all global change listeners with the current properties, handler, and layout.
* @private
* @param {object} layout - The layout object to pass to listeners.
* @description Invokes all registered global change listeners.
* @memberof DataPropertyHandler

View File

@@ -15,7 +15,7 @@ import reinsertMainMeasure from './utils/hypercube-helper/reinsert-main-measure'
/**
* HyperCubeHandler for managing hypercube data structure.
* @private
* @class HyperCubeHandler
* @description This class provides methods to handle hypercube properties, dimensions, and measures.
* @param {object} opts Parameters to add a hypercube handlers
@@ -54,51 +54,51 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @typeof {object} DimensionProp
* @export
* @interface DimensionProps
* @property {qix.NxDimension} dimension
* @property {boolean=} alternative - Whether the dimension is an alternative
* @property {number=} index - Index of the dimension.
*/
/**
* @private
* @typeof {object} MultiDimensionProps
* @export
* @interface MultiDimensionProps
* @property {qix.NxDimension[]} dimensions
* @property {boolean=} alternative - Whether the dimension is an alternative
*/
/**
* @private
* @typeof {object} MeasureProps
* @export
* @interface MeasureProps
* @property {qix.NxMeasure} measure
* @property {boolean=} alternative - Whether the measure is an alternative
* @property {number=} index - Index of the measure.
*/
/**
* @private
* @typeof {object} MultiMeasureProps
* @export
* @interface MultiMeasureProps
* @property {qix.NxMeasure[]} measures
* @property {boolean=} alternative - Whether the measure is an alternative
*/
/**
* @private
* @typeof {object} Indexes
* @export
* @interface Indexes
* @property {number} fromIndex - The current index of the field.
* @property {number} toIndex - New index of the field.
*/
/**
* @private
* @typeof {object} MultiFieldsIndexes
* @export
* @interface {object} MultiFieldsIndexes
* @property {number[]} indexes - Multiple field indexes.
* @property {boolean} alternative - Whether the field is an alternative.
*/
/**
* @private
* @param {object=} properties
* @returns early return if properties is falsy
*/
@@ -128,7 +128,7 @@ class HyperCubeHandler extends DataPropertyHandler {
// ----------------------------------
/**
* @private
* @returns {qix.NxDimension[]} dimensions
* @description Returns the dimensions of the hypercube.
* @memberof HyperCubeHandler
@@ -140,7 +140,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @returns {qix.NxDimension[]} alternative dimensions
* @description Returns the alternative dimensions of the hypercube.
* @memberof HyperCubeHandler
@@ -152,7 +152,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {string} cId
* @returns {qix.NxDimensionInfo} dimension layout
* @description Returns the dimension layout of the hypercube for a given cId.
@@ -165,7 +165,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @returns {qix.NxDimensionInfo[]} dimension layouts
* @description Returns the dimension layouts of the hypercube.
* @memberof HyperCubeHandler
@@ -178,7 +178,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {DimensionProps} dimensionProps
* @returns {qix.NxDimension} dimension
* @description Adds a dimension to the hypercube and updates the orders of the dimensions.
@@ -198,7 +198,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {MultiDimensionProps} multiDimensionProps
* @returns {qix.NxDimension[]} added dimensions
* @description Adds multiple dimensions to the hypercube.
@@ -236,7 +236,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {DimensionProps} dimensionProps
* @description Removes a dimension from the hypercube by index.
* If the dimension is an alternative, it will be removed from the alternative dimensions.
@@ -255,7 +255,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {MultiDimensionProps} multiDimensionProps
* @returns {qix.NxDimension[]} deleted dimensions
* @description Removes multiple dimensions from the hypercube by indexes.
@@ -295,7 +295,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Replaces a dimension in the hypercube.
* @private
* @param {DimensionProps} dimensionProps
* @returns {Promise<qix.NxDimension>} replaced dimension.
* @memberof HyperCubeHandler
@@ -309,7 +309,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Reinserts a dimension into the hypercube.
* @private.
.
* @param {DimensionProps} dimensionProps
* @returns {Promise<qix.NxDimension>} The reinserted dimension.
* @memberof HyperCubeHandler
@@ -330,7 +330,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Moves a dimension within the hypercube.
* @private
* @param {Indexes} indexes
* @returns {Promise<qix.NxDimension[]>} updated dimensions.
* @memberof HyperCubeHandler
@@ -359,7 +359,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {qix.NxDimension} dimension
* @returns {qix.NxDimension} dimension with auto-sort properties
* @description Automatically sorts the dimension based on its properties.
@@ -381,7 +381,7 @@ class HyperCubeHandler extends DataPropertyHandler {
// ----------------------------------
/**
* @private
* @returns {qix.NxMeasure[]} measures
* @description Returns the measures of the hypercube.
* @memberof HyperCubeHandler
@@ -393,7 +393,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @returns {qix.NxMeasure[]} alternative measures
* @description Returns the alternative measures of the hypercube.
* @memberof HyperCubeHandler
@@ -405,7 +405,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @returns {qix.NxMeasureInfo[]} measure layouts
* @description Returns the measure layouts of the hypercube.
* @memberof HyperCubeHandler
@@ -418,7 +418,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {string} cId
* @returns {object} measure layout
* @description Returns the measure layout of the hypercube for a given cId.
@@ -431,7 +431,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {MeasureProps} measureProps
* @returns {Promise<qix.NxMeasure>} added measure
* @description Adds a measure to the hypercube.
@@ -453,7 +453,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {qix.NxMeasure} measure
* @returns {Promise<qix.NxMeasure>} measure with auto-sort properties
* @description Automatically sorts the measure based on its properties.
@@ -473,7 +473,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {MultiMeasureProps} multiMeasureProps
* @returns {qix.NxMeasure[]} added measures
* @description Adds multiple measures to the hypercube.
@@ -508,7 +508,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {MeasureProps} measureProps
* @description Removes a measure from the hypercube by index.
* If the measure is an alternative, it will be removed from the alternative measures.
@@ -526,7 +526,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {MultiFieldsIndexes} multiFieldsIndexes
* @returns {Promise<number[]>} deleted measures
* @description Removes multiple measures from the hypercube by indexes.
@@ -562,7 +562,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {MeasureProps} measureProps
* @returns {Promise<qix.NxMeasure>} replaced measure
* @description Replaces a measure in the hypercube.
@@ -576,7 +576,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {MeasureProps} measureProps
* @returns {Promise<qix.NxMeasure>} reinserted measure
* @description Reinserts a measure into the hypercube.
@@ -596,7 +596,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Moves a measure within the hypercube.
* @private
* @param {Indexes} indexes
* @returns {Promise<void>}
* @description Move measure from one index to another
@@ -632,7 +632,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Sets the sorting order for the hypercube.
* @private
* @param {number[]} arr - The new sorting order.
* @memberof HyperCubeHandler
* @example
@@ -647,7 +647,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Gets the sorting order for the hypercube.
* @private
* @returns {number[]} The current sorting order.
* @memberof HyperCubeHandler
* @example
@@ -659,7 +659,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Changes the sorting order for the hypercube.
* @private
* @param {Indexes} indexes
* @memberof HyperCubeHandler
* @example
@@ -671,7 +671,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Returns whether the hypercube is in straight mode or pivot mode.
* @private
* @returns {string} 'S' for straight mode, 'P' for pivot mode
* @memberof HyperCubeHandler
*/
@@ -680,7 +680,7 @@ class HyperCubeHandler extends DataPropertyHandler {
}
/**
* @private
* @param {boolean} value
* @description This flag indicates whether we enabled HC modifier and have at least one script
* @memberof HyperCubeHandler
@@ -693,7 +693,7 @@ class HyperCubeHandler extends DataPropertyHandler {
/**
* Gets the dynamic scripts for the hypercube.
* @private
* @returns {Array} The dynamic scripts.
* @memberof HyperCubeHandler
*/