diff --git a/components.d.ts b/components.d.ts index d034fc78..f05e1796 100644 --- a/components.d.ts +++ b/components.d.ts @@ -88,29 +88,19 @@ declare module '@vue/runtime-core' { 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'] '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'] - 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'] IconMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default'] IconMdiClose: typeof import('~icons/mdi/close')['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'] IconMdiEyeOff: typeof import('~icons/mdi/eye-off')['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'] IconMdiTranslate: typeof import('~icons/mdi/translate')['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'] 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'] @@ -137,42 +127,26 @@ declare module '@vue/runtime-core' { MenuLayout: typeof import('./src/components/MenuLayout.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'] - NAlert: typeof import('naive-ui')['NAlert'] + NA: typeof import('naive-ui')['NA'] 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'] - NColorPicker: typeof import('naive-ui')['NColorPicker'] 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'] - NForm: typeof import('naive-ui')['NForm'] - NFormItem: typeof import('naive-ui')['NFormItem'] NGi: typeof import('naive-ui')['NGi'] NGrid: typeof import('naive-ui')['NGrid'] NH1: typeof import('naive-ui')['NH1'] - NH2: typeof import('naive-ui')['NH2'] NH3: typeof import('naive-ui')['NH3'] NIcon: typeof import('naive-ui')['NIcon'] - NImage: typeof import('naive-ui')['NImage'] NInputGroup: typeof import('naive-ui')['NInputGroup'] NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel'] NInputNumber: typeof import('naive-ui')['NInputNumber'] NLayout: typeof import('naive-ui')['NLayout'] NLayoutSider: typeof import('naive-ui')['NLayoutSider'] NMenu: typeof import('naive-ui')['NMenu'] - NProgress: typeof import('naive-ui')['NProgress'] - NScrollbar: typeof import('naive-ui')['NScrollbar'] - NSlider: typeof import('naive-ui')['NSlider'] - NStatistic: typeof import('naive-ui')['NStatistic'] - NSwitch: typeof import('naive-ui')['NSwitch'] + NP: typeof import('naive-ui')['NP'] NTable: typeof import('naive-ui')['NTable'] NTag: typeof import('naive-ui')['NTag'] 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'] 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'] diff --git a/src/composable/debouncedref.ts b/src/composable/debouncedref.ts new file mode 100644 index 00000000..09dd10e9 --- /dev/null +++ b/src/composable/debouncedref.ts @@ -0,0 +1,21 @@ +import _ from 'lodash'; + +function useDebouncedRef(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; diff --git a/src/tools/ies-lighting-guidelines/ies-lighting-data.json b/src/tools/ies-lighting-guidelines/ies-lighting-data.json new file mode 100644 index 00000000..8db2d6e6 --- /dev/null +++ b/src/tools/ies-lighting-guidelines/ies-lighting-data.json @@ -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" + } +] diff --git a/src/tools/ies-lighting-guidelines/ies-lighting-guidelines.vue b/src/tools/ies-lighting-guidelines/ies-lighting-guidelines.vue new file mode 100644 index 00000000..1650a115 --- /dev/null +++ b/src/tools/ies-lighting-guidelines/ies-lighting-guidelines.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/tools/ies-lighting-guidelines/index.ts b/src/tools/ies-lighting-guidelines/index.ts new file mode 100644 index 00000000..484a4a86 --- /dev/null +++ b/src/tools/ies-lighting-guidelines/index.ts @@ -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'), +}); diff --git a/src/tools/illuminance-converter/illuminance-converter.service.ts b/src/tools/illuminance-converter/illuminance-converter.service.ts new file mode 100644 index 00000000..1c43c51b --- /dev/null +++ b/src/tools/illuminance-converter/illuminance-converter.service.ts @@ -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; diff --git a/src/tools/illuminance-converter/illuminance-converter.vue b/src/tools/illuminance-converter/illuminance-converter.vue new file mode 100644 index 00000000..f9f0c7df --- /dev/null +++ b/src/tools/illuminance-converter/illuminance-converter.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/tools/illuminance-converter/index.ts b/src/tools/illuminance-converter/index.ts new file mode 100644 index 00000000..14ea7721 --- /dev/null +++ b/src/tools/illuminance-converter/index.ts @@ -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'), +}); diff --git a/src/tools/index.ts b/src/tools/index.ts index 52bdf8e3..7d7a9e5e 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,6 +1,8 @@ import { tool as base64FileConverter } from './base64-file-converter'; import { tool as base64StringConverter } from './base64-string-converter'; 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 numeronymGenerator } from './numeronym-generator'; import { tool as macAddressGenerator } from './mac-address-generator'; @@ -151,7 +153,13 @@ export const toolsByCategory: ToolCategory[] = [ }, { name: 'Measurement', - components: [chronometer, temperatureConverter, benchmarkBuilder], + components: [ + chronometer, + temperatureConverter, + benchmarkBuilder, + iesLightingGuidelines, + illuminanceConverter, + ], }, { name: 'Text',