/* List operator category definition */ const listOperator = { name: 'listOperator', labelFr: 'opérateur de liste', labelEn: 'list operator', items: [ // List unary operators { name: 'numberOfElements', labelFr: "Nombre d'éléments", labelEn: 'Number of elements', category: 'unaryOperator', inputTypes: [ /* 'constructibilityBand', 'boolean', 'border', 'building', 'neighboringBuilding', 'footprint', 'edge', 'window', 'height', 'maximalHeight', 'line', 'list', 'level', 'number', 'geomObject', 'parcel', 'linearRequirement', 'surfaceRequirement', 'surface', 'zoning',*/ ], // everything outputType: 'number', inputCanBeList: true, outputIsList: false, obligatoryParameters: [], nonObligatoryParameters: [], }, { name: 'isEmpty', labelFr: 'est vide', labelEn: 'is empty', category: 'unaryOperator', inputTypes: [ /* 'constructibilityBand', 'boolean', 'border', 'building', 'neighboringBuilding', 'footprint', 'edge', 'window', 'height', 'maximalHeight', 'line', 'list', 'level', 'number', 'geomObject', 'parcel', 'linearRequirement', 'surfaceRequirement', 'surface', 'zoning',*/ ], // everything outputType: 'boolean', inputCanBeList: true, outputIsList: false, obligatoryParameters: [], nonObligatoryParameters: [], }, // List binary operators { name: 'listFilter', labelFr: 'Tel que', labelEn: 'Filter', category: 'binaryOperator', inputTypes1: [ /* 'constructibilityBand', 'boolean', 'border', 'building', 'neighboringBuilding', 'footprint', 'edge', 'window', 'height', 'maximalHeight', 'line', 'list', 'level', 'number', 'geomObject', 'parcel', 'linearRequirement', 'surfaceRequirement', 'surface', 'zoning',*/ ], // everything inputTypes2: ['boolean'], outputType: 'non-defined', inputCanBeList1: true, inputCanBeList2: false, canUseElement: true, outputIsList: true, obligatoryParameters: [], nonObligatoryParameters: [], }, { name: 'allOf', labelFr: 'Pour chaque element de', labelEn: 'All of', category: 'binaryOperator', inputTypes1: [ /* 'constructibilityBand', 'boolean', 'border', 'building', 'neighboringBuilding', 'footprint', 'edge', 'window', 'height', 'maximalHeight', 'line', 'list', 'level', 'number', 'geomObject', 'parcel', 'linearRequirement', 'surfaceRequirement', 'surface', 'zoning',*/ ], // everything inputTypes2: ['boolean'], outputType: 'boolean', inputCanBeList1: true, inputCanBeList2: false, canUseElement: true, outputIsList: false, obligatoryParameters: [], nonObligatoryParameters: [], }, { name: 'nOf', labelFr: 'Pour N elements de', labelEn: 'N of', category: 'binaryOperator', inputTypes1: [ /* 'constructibilityBand', 'boolean', 'border', 'building', 'neighboringBuilding', 'footprint', 'edge', 'window', 'height', 'maximalHeight', 'line', 'list', 'level', 'number', 'geomObject', 'parcel', 'linearRequirement', 'surfaceRequirement', 'surface', 'zoning',*/ ], // everything inputTypes2: ['boolean'], outputType: 'boolean', inputCanBeList1: true, inputCanBeList2: false, canUseElement: true, outputIsList: false, obligatoryParameters: [ { name: 'n', labelFr: 'N', labelEn: 'N', type: 'function', specificArguments: ['Nmax'], value: null, }, ], nonObligatoryParameters: [], }, { name: 'atLeastNOf', labelFr: 'Pour au moins N elements de', labelEn: 'At least N of', category: 'binaryOperator', inputTypes1: [ /* 'constructibilityBand', 'boolean', 'border', 'building', 'neighboringBuilding', 'footprint', 'edge', 'window', 'height', 'maximalHeight', 'line', 'list', 'level', 'number', 'geomObject', 'parcel', 'linearRequirement', 'surfaceRequirement', 'surface', 'zoning',*/ ], // everything inputTypes2: ['boolean'], outputType: 'boolean', inputCanBeList1: true, inputCanBeList2: false, canUseElement: true, outputIsList: false, obligatoryParameters: [ { name: 'n', labelFr: 'N', labelEn: 'N', type: 'function', specificArguments: ['Nmax'], value: null, }, ], nonObligatoryParameters: [], }, { name: 'atMostNOf', labelFr: 'Pour au plus N elements de', labelEn: 'At most N of', category: 'binaryOperator', inputTypes1: [ /* 'constructibilityBand', 'boolean', 'border', 'building', 'neighboringBuilding', 'footprint', 'edge', 'window', 'height', 'maximalHeight', 'line', 'list', 'level', 'number', 'geomObject', 'parcel', 'linearRequirement', 'surfaceRequirement', 'surface', 'zoning',*/ ], // everything inputTypes2: ['boolean'], outputType: 'boolean', inputCanBeList1: true, inputCanBeList2: false, canUseElement: true, outputIsList: false, obligatoryParameters: [ { name: 'n', labelFr: 'N', labelEn: 'N', type: 'function', specificArguments: ['Nmax'], value: null, }, ], nonObligatoryParameters: [], }, ], }; export default listOperator;