feat(new tools): IES Guidelines and Illuminance converter
IES Guidelines searcher and Illuminance units converter Fix #1475
This commit is contained in:
		
							parent
							
								
									80e46c9292
								
							
						
					
					
						commit
						37693a57ec
					
				
							
								
								
									
										34
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -88,29 +88,19 @@ declare module '@vue/runtime-core' { | |||||||
|     HttpStatusCodes: typeof import('./src/tools/http-status-codes/http-status-codes.vue')['default'] |     HttpStatusCodes: typeof import('./src/tools/http-status-codes/http-status-codes.vue')['default'] | ||||||
|     IbanValidatorAndParser: typeof import('./src/tools/iban-validator-and-parser/iban-validator-and-parser.vue')['default'] |     IbanValidatorAndParser: typeof import('./src/tools/iban-validator-and-parser/iban-validator-and-parser.vue')['default'] | ||||||
|     'IconMdi:brushVariant': typeof import('~icons/mdi/brush-variant')['default'] |     'IconMdi:brushVariant': typeof import('~icons/mdi/brush-variant')['default'] | ||||||
|     'IconMdi:contentCopy': typeof import('~icons/mdi/content-copy')['default'] |  | ||||||
|     'IconMdi:kettleSteamOutline': typeof import('~icons/mdi/kettle-steam-outline')['default'] |     'IconMdi:kettleSteamOutline': typeof import('~icons/mdi/kettle-steam-outline')['default'] | ||||||
|     IconMdiArrowDown: typeof import('~icons/mdi/arrow-down')['default'] |  | ||||||
|     IconMdiArrowRight: typeof import('~icons/mdi/arrow-right')['default'] |  | ||||||
|     IconMdiArrowRightBottom: typeof import('~icons/mdi/arrow-right-bottom')['default'] |  | ||||||
|     IconMdiCamera: typeof import('~icons/mdi/camera')['default'] |  | ||||||
|     IconMdiChevronDown: typeof import('~icons/mdi/chevron-down')['default'] |     IconMdiChevronDown: typeof import('~icons/mdi/chevron-down')['default'] | ||||||
|     IconMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default'] |     IconMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default'] | ||||||
|     IconMdiClose: typeof import('~icons/mdi/close')['default'] |     IconMdiClose: typeof import('~icons/mdi/close')['default'] | ||||||
|     IconMdiContentCopy: typeof import('~icons/mdi/content-copy')['default'] |     IconMdiContentCopy: typeof import('~icons/mdi/content-copy')['default'] | ||||||
|     IconMdiDeleteOutline: typeof import('~icons/mdi/delete-outline')['default'] |  | ||||||
|     IconMdiDownload: typeof import('~icons/mdi/download')['default'] |  | ||||||
|     IconMdiEye: typeof import('~icons/mdi/eye')['default'] |     IconMdiEye: typeof import('~icons/mdi/eye')['default'] | ||||||
|     IconMdiEyeOff: typeof import('~icons/mdi/eye-off')['default'] |     IconMdiEyeOff: typeof import('~icons/mdi/eye-off')['default'] | ||||||
|     IconMdiHeart: typeof import('~icons/mdi/heart')['default'] |     IconMdiHeart: typeof import('~icons/mdi/heart')['default'] | ||||||
|     IconMdiPause: typeof import('~icons/mdi/pause')['default'] |  | ||||||
|     IconMdiPlay: typeof import('~icons/mdi/play')['default'] |  | ||||||
|     IconMdiRecord: typeof import('~icons/mdi/record')['default'] |  | ||||||
|     IconMdiRefresh: typeof import('~icons/mdi/refresh')['default'] |  | ||||||
|     IconMdiSearch: typeof import('~icons/mdi/search')['default'] |     IconMdiSearch: typeof import('~icons/mdi/search')['default'] | ||||||
|     IconMdiTranslate: typeof import('~icons/mdi/translate')['default'] |     IconMdiTranslate: typeof import('~icons/mdi/translate')['default'] | ||||||
|     IconMdiTriangleDown: typeof import('~icons/mdi/triangle-down')['default'] |     IconMdiTriangleDown: typeof import('~icons/mdi/triangle-down')['default'] | ||||||
|     IconMdiVideo: typeof import('~icons/mdi/video')['default'] |     IesLightingGuidelines: typeof import('./src/tools/ies-lighting-guidelines/ies-lighting-guidelines.vue')['default'] | ||||||
|  |     IlluminanceConverter: typeof import('./src/tools/illuminance-converter/illuminance-converter.vue')['default'] | ||||||
|     InputCopyable: typeof import('./src/components/InputCopyable.vue')['default'] |     InputCopyable: typeof import('./src/components/InputCopyable.vue')['default'] | ||||||
|     IntegerBaseConverter: typeof import('./src/tools/integer-base-converter/integer-base-converter.vue')['default'] |     IntegerBaseConverter: typeof import('./src/tools/integer-base-converter/integer-base-converter.vue')['default'] | ||||||
|     Ipv4AddressConverter: typeof import('./src/tools/ipv4-address-converter/ipv4-address-converter.vue')['default'] |     Ipv4AddressConverter: typeof import('./src/tools/ipv4-address-converter/ipv4-address-converter.vue')['default'] | ||||||
| @ -137,42 +127,26 @@ declare module '@vue/runtime-core' { | |||||||
|     MenuLayout: typeof import('./src/components/MenuLayout.vue')['default'] |     MenuLayout: typeof import('./src/components/MenuLayout.vue')['default'] | ||||||
|     MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default'] |     MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default'] | ||||||
|     MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] |     MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] | ||||||
|     NAlert: typeof import('naive-ui')['NAlert'] |     NA: typeof import('naive-ui')['NA'] | ||||||
|     NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] |     NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] | ||||||
|     NCheckbox: typeof import('naive-ui')['NCheckbox'] |  | ||||||
|     NCode: typeof import('naive-ui')['NCode'] |  | ||||||
|     NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] |     NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] | ||||||
|     NColorPicker: typeof import('naive-ui')['NColorPicker'] |  | ||||||
|     NConfigProvider: typeof import('naive-ui')['NConfigProvider'] |     NConfigProvider: typeof import('naive-ui')['NConfigProvider'] | ||||||
|     NDatePicker: typeof import('naive-ui')['NDatePicker'] |  | ||||||
|     NDivider: typeof import('naive-ui')['NDivider'] |  | ||||||
|     NDynamicInput: typeof import('naive-ui')['NDynamicInput'] |  | ||||||
|     NEllipsis: typeof import('naive-ui')['NEllipsis'] |     NEllipsis: typeof import('naive-ui')['NEllipsis'] | ||||||
|     NForm: typeof import('naive-ui')['NForm'] |  | ||||||
|     NFormItem: typeof import('naive-ui')['NFormItem'] |  | ||||||
|     NGi: typeof import('naive-ui')['NGi'] |     NGi: typeof import('naive-ui')['NGi'] | ||||||
|     NGrid: typeof import('naive-ui')['NGrid'] |     NGrid: typeof import('naive-ui')['NGrid'] | ||||||
|     NH1: typeof import('naive-ui')['NH1'] |     NH1: typeof import('naive-ui')['NH1'] | ||||||
|     NH2: typeof import('naive-ui')['NH2'] |  | ||||||
|     NH3: typeof import('naive-ui')['NH3'] |     NH3: typeof import('naive-ui')['NH3'] | ||||||
|     NIcon: typeof import('naive-ui')['NIcon'] |     NIcon: typeof import('naive-ui')['NIcon'] | ||||||
|     NImage: typeof import('naive-ui')['NImage'] |  | ||||||
|     NInputGroup: typeof import('naive-ui')['NInputGroup'] |     NInputGroup: typeof import('naive-ui')['NInputGroup'] | ||||||
|     NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel'] |     NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel'] | ||||||
|     NInputNumber: typeof import('naive-ui')['NInputNumber'] |     NInputNumber: typeof import('naive-ui')['NInputNumber'] | ||||||
|     NLayout: typeof import('naive-ui')['NLayout'] |     NLayout: typeof import('naive-ui')['NLayout'] | ||||||
|     NLayoutSider: typeof import('naive-ui')['NLayoutSider'] |     NLayoutSider: typeof import('naive-ui')['NLayoutSider'] | ||||||
|     NMenu: typeof import('naive-ui')['NMenu'] |     NMenu: typeof import('naive-ui')['NMenu'] | ||||||
|     NProgress: typeof import('naive-ui')['NProgress'] |     NP: typeof import('naive-ui')['NP'] | ||||||
|     NScrollbar: typeof import('naive-ui')['NScrollbar'] |  | ||||||
|     NSlider: typeof import('naive-ui')['NSlider'] |  | ||||||
|     NStatistic: typeof import('naive-ui')['NStatistic'] |  | ||||||
|     NSwitch: typeof import('naive-ui')['NSwitch'] |  | ||||||
|     NTable: typeof import('naive-ui')['NTable'] |     NTable: typeof import('naive-ui')['NTable'] | ||||||
|     NTag: typeof import('naive-ui')['NTag'] |     NTag: typeof import('naive-ui')['NTag'] | ||||||
|     NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default'] |     NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default'] | ||||||
|     NUpload: typeof import('naive-ui')['NUpload'] |  | ||||||
|     NUploadDragger: typeof import('naive-ui')['NUploadDragger'] |  | ||||||
|     OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default'] |     OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default'] | ||||||
|     PasswordStrengthAnalyser: typeof import('./src/tools/password-strength-analyser/password-strength-analyser.vue')['default'] |     PasswordStrengthAnalyser: typeof import('./src/tools/password-strength-analyser/password-strength-analyser.vue')['default'] | ||||||
|     PdfSignatureChecker: typeof import('./src/tools/pdf-signature-checker/pdf-signature-checker.vue')['default'] |     PdfSignatureChecker: typeof import('./src/tools/pdf-signature-checker/pdf-signature-checker.vue')['default'] | ||||||
|  | |||||||
							
								
								
									
										21
									
								
								src/composable/debouncedref.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/composable/debouncedref.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | |||||||
|  | import _ from 'lodash'; | ||||||
|  | 
 | ||||||
|  | function useDebouncedRef<T>(initialValue: T, delay: number, immediate: boolean = false) { | ||||||
|  |   const state = ref(initialValue); | ||||||
|  |   const debouncedRef = customRef((track, trigger) => ({ | ||||||
|  |     get() { | ||||||
|  |       track(); | ||||||
|  |       return state.value; | ||||||
|  |     }, | ||||||
|  |     set: _.debounce( | ||||||
|  |       (value) => { | ||||||
|  |         state.value = value; | ||||||
|  |         trigger(); | ||||||
|  |       }, | ||||||
|  |       delay, | ||||||
|  |       { leading: immediate }, | ||||||
|  |     ), | ||||||
|  |   })); | ||||||
|  |   return debouncedRef; | ||||||
|  | } | ||||||
|  | export default useDebouncedRef; | ||||||
							
								
								
									
										740
									
								
								src/tools/ies-lighting-guidelines/ies-lighting-data.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										740
									
								
								src/tools/ies-lighting-guidelines/ies-lighting-data.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,740 @@ | |||||||
|  | [ | ||||||
|  |   { | ||||||
|  |     "industryType": "Airplane Manufacturing", | ||||||
|  |     "industryApplication": "Drilling, riveting, screw fastening", | ||||||
|  |     "footCandlesRange": "75", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Airplane Manufacturing", | ||||||
|  |     "industryApplication": "Final assembly, hangar", | ||||||
|  |     "footCandlesRange": "100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Airplane Manufacturing", | ||||||
|  |     "industryApplication": "Inspection", | ||||||
|  |     "footCandlesRange": "50-200", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Airplane Manufacturing", | ||||||
|  |     "industryApplication": "Welding", | ||||||
|  |     "footCandlesRange": "50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Assembly", | ||||||
|  |     "industryApplication": "Rough easy seeing", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Assembly", | ||||||
|  |     "industryApplication": "Rough difficult seeing", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Assembly", | ||||||
|  |     "industryApplication": "Medium", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Auditoriums", | ||||||
|  |     "industryApplication": "Social Activities", | ||||||
|  |     "footCandlesRange": "05-oct", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Auditoriums", | ||||||
|  |     "industryApplication": "Assembly Only", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Auditoriums", | ||||||
|  |     "industryApplication": "Exhibitions", | ||||||
|  |     "footCandlesRange": "15-25", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Automotive Manufacturing", | ||||||
|  |     "industryApplication": "Frame Assembly", | ||||||
|  |     "footCandlesRange": "50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Automotive Manufacturing", | ||||||
|  |     "industryApplication": "Body & chassis assembly", | ||||||
|  |     "footCandlesRange": "100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Automotive Manufacturing", | ||||||
|  |     "industryApplication": "Body parts assembly", | ||||||
|  |     "footCandlesRange": "100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Automotive Manufacturing", | ||||||
|  |     "industryApplication": "Final Assembly, finishing, inspecting", | ||||||
|  |     "footCandlesRange": "200", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Banks", | ||||||
|  |     "industryApplication": "Lobby General", | ||||||
|  |     "footCandlesRange": "oct-50", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Banks", | ||||||
|  |     "industryApplication": "Writing Areas", | ||||||
|  |     "footCandlesRange": "20-70", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Banks", | ||||||
|  |     "industryApplication": "Teller Stations, Posting & Keypunch", | ||||||
|  |     "footCandlesRange": "50-150", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Barber Shop", | ||||||
|  |     "industryApplication": "Beauty Parlors", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "Flat Panel" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Chemical Works", | ||||||
|  |     "industryApplication": "Chemical Works", | ||||||
|  |     "footCandlesRange": "30", | ||||||
|  |     "recommendedLighting": "Vapor Tight/Hazardous" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Clothing Manufacturer", | ||||||
|  |     "industryApplication": "Receiving, storing, shipping, winding, measuring", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Clothing Manufacturer", | ||||||
|  |     "industryApplication": "Pattern making, trimming", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Clothing Manufacturer", | ||||||
|  |     "industryApplication": "Shops, Marking", | ||||||
|  |     "footCandlesRange": "50-200", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer/High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Clothing Manufacturer", | ||||||
|  |     "industryApplication": "Cutting, Pressing", | ||||||
|  |     "footCandlesRange": "100-500", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer/High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Clothing Manufacturer", | ||||||
|  |     "industryApplication": "Sewing, Inspection", | ||||||
|  |     "footCandlesRange": "200-500", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer/High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Electrical Equipment Manufacturing", | ||||||
|  |     "industryApplication": "Impregnating", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Electrical Equipment Manufacturing", | ||||||
|  |     "industryApplication": "Insulating coil winding, testing", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Food Service Facility", | ||||||
|  |     "industryApplication": "Dining areas, cashier", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "Troffer/Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Food Service Facility", | ||||||
|  |     "industryApplication": "Cleaning", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Food Service Facility", | ||||||
|  |     "industryApplication": "Dining", | ||||||
|  |     "footCandlesRange": "mai-20", | ||||||
|  |     "recommendedLighting": "Troffer/Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Food Service Facility", | ||||||
|  |     "industryApplication": "Food Displays", | ||||||
|  |     "footCandlesRange": "30-100", | ||||||
|  |     "recommendedLighting": "Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Food Service Facility", | ||||||
|  |     "industryApplication": "Kitchen", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "IP65 High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Foundries", | ||||||
|  |     "industryApplication": "Annealing Furnaces", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Foundries", | ||||||
|  |     "industryApplication": "Cleaning", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Foundries", | ||||||
|  |     "industryApplication": "Core Making", | ||||||
|  |     "footCandlesRange": "50-200", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Foundries", | ||||||
|  |     "industryApplication": "Inspection Fine", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Foundries", | ||||||
|  |     "industryApplication": "Inspection Medium", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Foundries", | ||||||
|  |     "industryApplication": "Molding", | ||||||
|  |     "footCandlesRange": "50-200", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Foundries", | ||||||
|  |     "industryApplication": "Pouring, Sorting", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay/Hazardous" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Garages-Motor Vehicles", | ||||||
|  |     "industryApplication": "Storage", | ||||||
|  |     "footCandlesRange": "5", | ||||||
|  |     "recommendedLighting": "Garage" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Garages-Motor Vehicles", | ||||||
|  |     "industryApplication": "Parking Garage", | ||||||
|  |     "footCandlesRange": "10", | ||||||
|  |     "recommendedLighting": "Garage /.Strip" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Garages-Motor Vehicles", | ||||||
|  |     "industryApplication": "Service Garage", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "Garage" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Garages-Motor Vehicles", | ||||||
|  |     "industryApplication": "Entrances", | ||||||
|  |     "footCandlesRange": "50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Garages-Motor Vehicles", | ||||||
|  |     "industryApplication": "Repair Area", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Gymnasiums", | ||||||
|  |     "industryApplication": "Assemblies", | ||||||
|  |     "footCandlesRange": "10", | ||||||
|  |     "recommendedLighting": "Flat Panel/High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Gymnasiums", | ||||||
|  |     "industryApplication": "General Exercise & Recreation", | ||||||
|  |     "footCandlesRange": "30", | ||||||
|  |     "recommendedLighting": "Flat Panel/High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Gymnasiums", | ||||||
|  |     "industryApplication": "Exhibitions, Matches", | ||||||
|  |     "footCandlesRange": "50", | ||||||
|  |     "recommendedLighting": "Flat Panel/High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hospitals", | ||||||
|  |     "industryApplication": "Rooms", | ||||||
|  |     "footCandlesRange": "oct-30", | ||||||
|  |     "recommendedLighting": "Troffer/Flat Panel" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hospitals", | ||||||
|  |     "industryApplication": "Corridors", | ||||||
|  |     "footCandlesRange": "mai-30", | ||||||
|  |     "recommendedLighting": "Troffer/Flat Panel" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hospitals", | ||||||
|  |     "industryApplication": "Emergency Rooms", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "NA" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hospitals", | ||||||
|  |     "industryApplication": "Operating Rooms", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "NA" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hotels", | ||||||
|  |     "industryApplication": "Bathrooms", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hotels", | ||||||
|  |     "industryApplication": "Bedrooms for Reading", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "NA" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hotels", | ||||||
|  |     "industryApplication": "Corridors, elevators and stairs", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hotels", | ||||||
|  |     "industryApplication": "Front Desk", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hotels", | ||||||
|  |     "industryApplication": "Linen Room: Sewing", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hotels", | ||||||
|  |     "industryApplication": "Linen Room: General", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hotels", | ||||||
|  |     "industryApplication": "Lobby: General Lighting", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Hotels", | ||||||
|  |     "industryApplication": "Lobby: Reading and working areas", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "Recessed/Flat Panel" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Iron & Steel Manufacturing", | ||||||
|  |     "industryApplication": "Stock, hot top, checker, cellar, calcining", | ||||||
|  |     "footCandlesRange": "oct-30", | ||||||
|  |     "recommendedLighting": "UFO/Hazardous/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Iron & Steel Manufacturing", | ||||||
|  |     "industryApplication": "Building, slag pits, Stripping yard", | ||||||
|  |     "footCandlesRange": "20", | ||||||
|  |     "recommendedLighting": "UFO/Hazardous/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Iron & Steel Manufacturing", | ||||||
|  |     "industryApplication": "Control platform, repairs, mixer building", | ||||||
|  |     "footCandlesRange": "30", | ||||||
|  |     "recommendedLighting": "UFO/Hazardous/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Iron & Steel Manufacturing", | ||||||
|  |     "industryApplication": "Rolling mills", | ||||||
|  |     "footCandlesRange": "30-50", | ||||||
|  |     "recommendedLighting": "UFO/Hazardous/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Iron & Steel Manufacturing", | ||||||
|  |     "industryApplication": "Shearing", | ||||||
|  |     "footCandlesRange": "50", | ||||||
|  |     "recommendedLighting": "UFO/Hazardous/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Iron & Steel Manufacturing", | ||||||
|  |     "industryApplication": "Tin Plate", | ||||||
|  |     "footCandlesRange": "50", | ||||||
|  |     "recommendedLighting": "UFO/Hazardous/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Iron & Steel Manufacturing", | ||||||
|  |     "industryApplication": "Motor Room, Machine Room", | ||||||
|  |     "footCandlesRange": "30", | ||||||
|  |     "recommendedLighting": "UFO/Hazardous/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Iron & Steel Manufacturing", | ||||||
|  |     "industryApplication": "Inspection", | ||||||
|  |     "footCandlesRange": "100", | ||||||
|  |     "recommendedLighting": "UFO/Hazardous/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Library", | ||||||
|  |     "industryApplication": "Ordinary Reading, Stacks", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "Troffer/Flat Panel" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Library", | ||||||
|  |     "industryApplication": "Book Repair and Binding", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "Troffer/Flat Panel" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Library", | ||||||
|  |     "industryApplication": "Study & Notes, Cataloging", | ||||||
|  |     "footCandlesRange": "20-100", | ||||||
|  |     "recommendedLighting": "Troffer/Flat Panel" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Library", | ||||||
|  |     "industryApplication": "Card Files, Check Desk", | ||||||
|  |     "footCandlesRange": "20-100", | ||||||
|  |     "recommendedLighting": "Troffer/Flat Panel" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Laundries", | ||||||
|  |     "industryApplication": "Washing", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Laundries", | ||||||
|  |     "industryApplication": "Ironing", | ||||||
|  |     "footCandlesRange": "20-100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Machine Shops", | ||||||
|  |     "industryApplication": "Rough Bench", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Machine Shops", | ||||||
|  |     "industryApplication": "Medium Bench, Rough Grinding, Buffing", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Machine Shops", | ||||||
|  |     "industryApplication": "Fine Bench and Work", | ||||||
|  |     "footCandlesRange": "200-500", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Materials Handling", | ||||||
|  |     "industryApplication": "Loading Trucking", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "High Bay/Temporary" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Materials Handling", | ||||||
|  |     "industryApplication": "Picking Stock Classifying", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Materials Handling", | ||||||
|  |     "industryApplication": "Wrapping, Packing, Labeling", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Accounting", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Audio-Visual Areas", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Conference Areas", | ||||||
|  |     "footCandlesRange": "20-70", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Corridors, Stairways", | ||||||
|  |     "footCandlesRange": "20", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Drafting", | ||||||
|  |     "footCandlesRange": "50-200", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "General and Private Offices", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Lobbies, Lounges, & Reception Areas", | ||||||
|  |     "footCandlesRange": "mai-20", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Mail Sorting", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Off-set printing & duplicating areas", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer/High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Offices", | ||||||
|  |     "industryApplication": "Spaces with VDT's", | ||||||
|  |     "footCandlesRange": "75", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Paint Shop", | ||||||
|  |     "industryApplication": "Spraying, Rubbing", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Paint Shop", | ||||||
|  |     "industryApplication": "Hand Art, Stencil", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Paint Shop", | ||||||
|  |     "industryApplication": "Fine Hand Painting & Finishing", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Paper Manufacturing", | ||||||
|  |     "industryApplication": "Beaters, Grinding", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "UFO" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Paper Manufacturing", | ||||||
|  |     "industryApplication": "Finishing, Cutting", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "UFO" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Paper Manufacturing", | ||||||
|  |     "industryApplication": "Hand Counting", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "UFO" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Paper Manufacturing", | ||||||
|  |     "industryApplication": "Paper machine reel, Inspection", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "UFO" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Paper Manufacturing", | ||||||
|  |     "industryApplication": "Rewinder", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "UFO" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Printing", | ||||||
|  |     "industryApplication": "Welding", | ||||||
|  |     "footCandlesRange": "50", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Printing", | ||||||
|  |     "industryApplication": "Color Inspecting", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Printing", | ||||||
|  |     "industryApplication": "Presses", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Printing", | ||||||
|  |     "industryApplication": "Proofreading", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Printing", | ||||||
|  |     "industryApplication": "Composing Room", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Schools", | ||||||
|  |     "industryApplication": "Reading", | ||||||
|  |     "footCandlesRange": "20-100", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Schools", | ||||||
|  |     "industryApplication": "Typing", | ||||||
|  |     "footCandlesRange": "20-100", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Schools", | ||||||
|  |     "industryApplication": "Demonstrations", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Schools", | ||||||
|  |     "industryApplication": "Sewing", | ||||||
|  |     "footCandlesRange": "20-100", | ||||||
|  |     "recommendedLighting": "Flat Panel/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Sheet Metal Works", | ||||||
|  |     "industryApplication": "General", | ||||||
|  |     "footCandlesRange": "100", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Sheet Metal Works", | ||||||
|  |     "industryApplication": "Tin Plate Inspection", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Sheet Metal Works", | ||||||
|  |     "industryApplication": "Galvanizing, Scribing", | ||||||
|  |     "footCandlesRange": "100-200", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Stores", | ||||||
|  |     "industryApplication": "Circulation Area Stockroom", | ||||||
|  |     "footCandlesRange": "oct-30", | ||||||
|  |     "recommendedLighting": "Recessed" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Stores", | ||||||
|  |     "industryApplication": "Merchandising, Servicing", | ||||||
|  |     "footCandlesRange": "30-100", | ||||||
|  |     "recommendedLighting": "Recessed/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Stores", | ||||||
|  |     "industryApplication": "Merchandising, Self-Servicing", | ||||||
|  |     "footCandlesRange": "200", | ||||||
|  |     "recommendedLighting": "Recessed/Troffer" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Textile Mills", | ||||||
|  |     "industryApplication": "Cotton Picking, Carding, Roving, Spinning", | ||||||
|  |     "footCandlesRange": "50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Textile Mills", | ||||||
|  |     "industryApplication": "Beaming & Slashing", | ||||||
|  |     "footCandlesRange": "150", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Textile Mills", | ||||||
|  |     "industryApplication": "Drawing", | ||||||
|  |     "footCandlesRange": "200", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Textile Mills", | ||||||
|  |     "industryApplication": "Others", | ||||||
|  |     "footCandlesRange": "100", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Warehouse & Storage", | ||||||
|  |     "industryApplication": "Inactive", | ||||||
|  |     "footCandlesRange": "05-oct", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Warehouse & Storage", | ||||||
|  |     "industryApplication": "Active Rough Bulky", | ||||||
|  |     "footCandlesRange": "oct-20", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Warehouse & Storage", | ||||||
|  |     "industryApplication": "Active Medium", | ||||||
|  |     "footCandlesRange": "20", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Warehouse & Storage", | ||||||
|  |     "industryApplication": "Active Fine", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Welding", | ||||||
|  |     "industryApplication": "General", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay/Flood" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Woodworking", | ||||||
|  |     "industryApplication": "Sizing, planning, rough sanding, medium quality machine and bench work, gluing, veneering, cooperage", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay/Strip" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Woodworking", | ||||||
|  |     "industryApplication": "Fine bench and machine work, fine sanding and finishing", | ||||||
|  |     "footCandlesRange": "50-100", | ||||||
|  |     "recommendedLighting": "High Bay/Strip" | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "industryType": "Woodworking", | ||||||
|  |     "industryApplication": "Rough sawing and bench work", | ||||||
|  |     "footCandlesRange": "20-50", | ||||||
|  |     "recommendedLighting": "High Bay/Strip" | ||||||
|  |   } | ||||||
|  | ] | ||||||
| @ -0,0 +1,84 @@ | |||||||
|  | <script setup lang="ts"> | ||||||
|  | import iesData from './ies-lighting-data.json'; | ||||||
|  | import { useFuzzySearch } from '@/composable/fuzzySearch'; | ||||||
|  | import useDebouncedRef from '@/composable/debouncedref'; | ||||||
|  | 
 | ||||||
|  | const data = iesData.map(i => ({ ...i, all: `${i.industryType} - ${i.industryApplication}` })); | ||||||
|  | const searchQuery = useDebouncedRef('', 500); | ||||||
|  | 
 | ||||||
|  | const { searchResult } = useFuzzySearch({ | ||||||
|  |   search: searchQuery, | ||||||
|  |   data, | ||||||
|  |   options: { | ||||||
|  |     keys: ['all'], | ||||||
|  |     threshold: 0.2, | ||||||
|  |     isCaseSensitive: false, | ||||||
|  |     minMatchCharLength: 3, | ||||||
|  |     useExtendedSearch: true, | ||||||
|  |     filterEmpty: false, | ||||||
|  |   }, | ||||||
|  | }); | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <template> | ||||||
|  |   <div mx-auto max-w-2400px important:flex-1> | ||||||
|  |     <div flex items-center gap-3> | ||||||
|  |       <c-input-text | ||||||
|  |         v-model:value="searchQuery" | ||||||
|  |         placeholder="Search IES recommandation by industry or application" | ||||||
|  |         mx-auto max-w-600px | ||||||
|  |       > | ||||||
|  |         <template #prefix> | ||||||
|  |           <icon-mdi-search mr-6px color-black op-70 dark:color-white /> | ||||||
|  |         </template> | ||||||
|  |       </c-input-text> | ||||||
|  |     </div> | ||||||
|  | 
 | ||||||
|  |     <n-p style="text-align: center"> | ||||||
|  |       Individual applications will determine exact foot-candle levels. Please refer to the <n-a href="https://www.ies.org/standards/lighting-library/" target="_blank"> | ||||||
|  |         IES Lighting Handbook | ||||||
|  |       </n-a> for a more detailed evaluation | ||||||
|  |     </n-p> | ||||||
|  | 
 | ||||||
|  |     <div> | ||||||
|  |       <div | ||||||
|  |         v-if="searchResult.length === 0" | ||||||
|  | 
 | ||||||
|  |         mt-4 text-center text-20px font-bold | ||||||
|  |       > | ||||||
|  |         No results | ||||||
|  |       </div> | ||||||
|  | 
 | ||||||
|  |       <div v-else> | ||||||
|  |         <div mt-4 text-20px font-bold> | ||||||
|  |           Search result | ||||||
|  |         </div> | ||||||
|  | 
 | ||||||
|  |         <n-table> | ||||||
|  |           <thead> | ||||||
|  |             <th>Industry</th> | ||||||
|  |             <th>Application</th> | ||||||
|  |             <th>Foot Candles</th> | ||||||
|  |             <th>Lighting type</th> | ||||||
|  |           </thead> | ||||||
|  |           <tbody> | ||||||
|  |             <tr v-for="(result, ix) in searchResult" :key="ix"> | ||||||
|  |               <td> | ||||||
|  |                 <input-copyable :value="result.industryType" /> | ||||||
|  |               </td> | ||||||
|  |               <td> | ||||||
|  |                 <input-copyable :value="result.industryApplication" /> | ||||||
|  |               </td> | ||||||
|  |               <td> | ||||||
|  |                 <input-copyable :value="result.footCandlesRange" /> | ||||||
|  |               </td> | ||||||
|  |               <td> | ||||||
|  |                 <input-copyable :value="result.recommendedLighting" /> | ||||||
|  |               </td> | ||||||
|  |             </tr> | ||||||
|  |           </tbody> | ||||||
|  |         </n-table> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
							
								
								
									
										12
									
								
								src/tools/ies-lighting-guidelines/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/tools/ies-lighting-guidelines/index.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | import { BuildingLighthouse } from '@vicons/tabler'; | ||||||
|  | import { defineTool } from '../tool'; | ||||||
|  | 
 | ||||||
|  | export const tool = defineTool({ | ||||||
|  |   name: 'IES Lighting Guidelines', | ||||||
|  |   path: '/ies-lighting-guidelines', | ||||||
|  |   description: 'Search in the Illuminating Engineering Society’s (IES) current illuminance recommendations.', | ||||||
|  |   keywords: ['ies', 'illuminance', 'lighting', 'guideline'], | ||||||
|  |   component: () => import('./ies-lighting-guidelines.vue'), | ||||||
|  |   icon: BuildingLighthouse, | ||||||
|  |   createdAt: new Date('2025-02-09'), | ||||||
|  | }); | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | export const convertNoxToLux = (illuminance: number) => illuminance * 0.001; | ||||||
|  | export const convertLuxToNox = (illuminance: number) => illuminance * 1000; | ||||||
|  | 
 | ||||||
|  | export const convertFootCandlesToLux = (illuminance: number) => illuminance * 10.7639104167; | ||||||
|  | export const convertLuxToFootCandles = (illuminance: number) => illuminance * 0.09290304; | ||||||
|  | 
 | ||||||
|  | export const convertFlameToLux = (illuminance: number) => illuminance * 43.0556416668; | ||||||
|  | export const convertLuxToFlame = (illuminance: number) => illuminance * 0.02322576; | ||||||
|  | 
 | ||||||
|  | export const convertPhotToLux = (illuminance: number) => illuminance * 10000; | ||||||
|  | export const convertLuxToPhot = (illuminance: number) => illuminance * 0.0001; | ||||||
							
								
								
									
										84
									
								
								src/tools/illuminance-converter/illuminance-converter.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								src/tools/illuminance-converter/illuminance-converter.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,84 @@ | |||||||
|  | <script setup lang="ts"> | ||||||
|  | import _ from 'lodash'; | ||||||
|  | import { convertFlameToLux, convertFootCandlesToLux, convertLuxToFlame, convertLuxToFootCandles, convertLuxToNox, convertLuxToPhot, convertNoxToLux, convertPhotToLux } from './illuminance-converter.service'; | ||||||
|  | 
 | ||||||
|  | type IlluminanceScale = 'lux' | 'footcandles' | 'nox' | 'phot' | 'flame'; | ||||||
|  | 
 | ||||||
|  | const units = reactive< | ||||||
|  |   Record< | ||||||
|  |     string | IlluminanceScale, | ||||||
|  |     { title: string; unit: string; ref: number; toLux: (v: number) => number; fromLux: (v: number) => number } | ||||||
|  |   > | ||||||
|  |       >({ | ||||||
|  |         lux: { | ||||||
|  |           title: 'Lux', | ||||||
|  |           unit: 'lx', | ||||||
|  |           ref: 20000, | ||||||
|  |           toLux: _.identity, | ||||||
|  |           fromLux: _.identity, | ||||||
|  |         }, | ||||||
|  |         footcandles: { | ||||||
|  |           title: 'Foot-Candles', | ||||||
|  |           unit: 'ft*c, fc', | ||||||
|  |           ref: 0, | ||||||
|  |           toLux: convertFootCandlesToLux, | ||||||
|  |           fromLux: convertLuxToFootCandles, | ||||||
|  |         }, | ||||||
|  |         nox: { | ||||||
|  |           title: 'Nox', | ||||||
|  |           unit: 'nox', | ||||||
|  |           ref: 0, | ||||||
|  |           toLux: convertNoxToLux, | ||||||
|  |           fromLux: convertLuxToNox, | ||||||
|  |         }, | ||||||
|  |         phot: { | ||||||
|  |           title: 'Phot', | ||||||
|  |           unit: 'ph', | ||||||
|  |           ref: 0, | ||||||
|  |           toLux: convertPhotToLux, | ||||||
|  |           fromLux: convertLuxToPhot, | ||||||
|  |         }, | ||||||
|  |         flame: { | ||||||
|  |           title: 'Flame', | ||||||
|  |           unit: 'flame', | ||||||
|  |           ref: 0, | ||||||
|  |           toLux: convertFlameToLux, | ||||||
|  |           fromLux: convertLuxToFlame, | ||||||
|  |         }, | ||||||
|  |       }); | ||||||
|  | 
 | ||||||
|  | function update(key: IlluminanceScale) { | ||||||
|  |   const { ref: value, toLux } = units[key]; | ||||||
|  | 
 | ||||||
|  |   const luxs = toLux(value) ?? 0; | ||||||
|  | 
 | ||||||
|  |   _.chain(units) | ||||||
|  |     .omit(key) | ||||||
|  |     .forEach(({ fromLux }, index) => { | ||||||
|  |       units[index].ref = Math.floor((fromLux(luxs) ?? 0) * 1000000) / 1000000; | ||||||
|  |     }) | ||||||
|  |     .value(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | update('lux'); | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <template> | ||||||
|  |   <div> | ||||||
|  |     <n-input-group v-for="[key, { title, unit }] in Object.entries(units)" :key="key" mb-3 w-full> | ||||||
|  |       <n-input-group-label style="width: 100px"> | ||||||
|  |         {{ title }} | ||||||
|  |       </n-input-group-label> | ||||||
|  | 
 | ||||||
|  |       <n-input-number | ||||||
|  |         v-model:value="units[key].ref" | ||||||
|  |         style="flex: 1" | ||||||
|  |         @update:value="() => update(key as IlluminanceScale)" | ||||||
|  |       /> | ||||||
|  | 
 | ||||||
|  |       <n-input-group-label style="width: 75px"> | ||||||
|  |         {{ unit }} | ||||||
|  |       </n-input-group-label> | ||||||
|  |     </n-input-group> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
							
								
								
									
										12
									
								
								src/tools/illuminance-converter/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/tools/illuminance-converter/index.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | import { Brightness2 } from '@vicons/tabler'; | ||||||
|  | import { defineTool } from '../tool'; | ||||||
|  | 
 | ||||||
|  | export const tool = defineTool({ | ||||||
|  |   name: 'Illuminance Converter', | ||||||
|  |   path: '/illuminance-converter', | ||||||
|  |   description: 'Illuminance units converter (Lux, Foot Candles, Nox, Phot, Flame)', | ||||||
|  |   keywords: ['illuminance', 'converter', 'lux', 'lx', 'foot', 'candles', 'fc', 'flame', 'nox', 'phot'], | ||||||
|  |   component: () => import('./illuminance-converter.vue'), | ||||||
|  |   icon: Brightness2, | ||||||
|  |   createdAt: new Date('2025-02-09'), | ||||||
|  | }); | ||||||
| @ -1,6 +1,8 @@ | |||||||
| import { tool as base64FileConverter } from './base64-file-converter'; | import { tool as base64FileConverter } from './base64-file-converter'; | ||||||
| import { tool as base64StringConverter } from './base64-string-converter'; | import { tool as base64StringConverter } from './base64-string-converter'; | ||||||
| import { tool as basicAuthGenerator } from './basic-auth-generator'; | import { tool as basicAuthGenerator } from './basic-auth-generator'; | ||||||
|  | import { tool as iesLightingGuidelines } from './ies-lighting-guidelines'; | ||||||
|  | import { tool as illuminanceConverter } from './illuminance-converter'; | ||||||
| import { tool as pdfSignatureChecker } from './pdf-signature-checker'; | import { tool as pdfSignatureChecker } from './pdf-signature-checker'; | ||||||
| import { tool as numeronymGenerator } from './numeronym-generator'; | import { tool as numeronymGenerator } from './numeronym-generator'; | ||||||
| import { tool as macAddressGenerator } from './mac-address-generator'; | import { tool as macAddressGenerator } from './mac-address-generator'; | ||||||
| @ -151,7 +153,13 @@ export const toolsByCategory: ToolCategory[] = [ | |||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|     name: 'Measurement', |     name: 'Measurement', | ||||||
|     components: [chronometer, temperatureConverter, benchmarkBuilder], |     components: [ | ||||||
|  |       chronometer, | ||||||
|  |       temperatureConverter, | ||||||
|  |       benchmarkBuilder, | ||||||
|  |       iesLightingGuidelines, | ||||||
|  |       illuminanceConverter, | ||||||
|  |     ], | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|     name: 'Text', |     name: 'Text', | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user