Software aziendale · Nuova risorsa

Sistema di design Infor.

Componi un modulo aziendale di manutenzione con gli stati effettivi degli input IDS, gli alias del tema e un identificativo preciso dell’asset. Esamina i token pubblici correnti del tema, un pacchetto Web Components con versione bloccata e un flusso locale per le bozze con convalida e ripristino.

Guida OpenDesign7 capitoli53 voci di riferimentoGuida applicativa originale
01

Sistema di design Infor Anteprima dell’interfaccia

Convalida un riepilogo e un contatto, prepara una richiesta locale e cancellala senza inviare nulla.

Bozza della richiesta di manutenzioneApri l’esempio completo
Interpretazione indipendente di HTML/CSS basata su valori verificati dei token IDS Core/Light e su un carattere di sistema di fallback. Non è il runtime IDS nativo. · Riferimento per l’implementazione
02

Sistema di design Infor Riferimento di progettazione

Il foglio di stile del tema della tabella dei token pubblica di Infor consultato durante questa revisione, oltre a ids-enterprise-wc 1.17.1 pubblicato ed esempi ufficiali di input e pulsanti. L’URL più recente della tabella dei token è un’istantanea aggiornata in tempo reale, non una garanzia relativa alla versione del pacchetto.

Ruoli del tema

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ids-color-action-defaultvar(--ids-color-blue-60)Alias semantico del tema pubblico Core/Light.
--ids-color-action-strongervar(--ids-color-blue-70)Alias semantico del tema pubblico Core/Light.
--ids-color-background-defaultvar(--ids-color-white-100)Alias semantico del tema pubblico Core/Light.
--ids-color-foreground-default-defaultvar(--ids-color-neutral-100)Alias semantico del tema pubblico Core/Light.
--ids-color-foreground-default-secondaryvar(--ids-color-neutral-80)Alias semantico del tema pubblico Core/Light.
--ids-color-border-defaultvar(--ids-color-neutral-60)Alias semantico del tema pubblico Core/Light.
--ids-color-border-weakvar(--ids-color-neutral-40)Alias semantico del tema pubblico Core/Light.

Valori delle primitive risolti

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ids-color-blue-60#0072ed Primitiva del tema pubblico; non presumere che abbia lo stesso valore nelle modalità Dark o Contrast.
--ids-color-blue-70#0066d4 Primitiva del tema pubblico; non presumere che abbia lo stesso valore nelle modalità Dark o Contrast.
--ids-color-neutral-100#161618 Primitiva del tema pubblico; non presumere che abbia lo stesso valore nelle modalità Dark o Contrast.
--ids-color-neutral-80#3b3b3f Primitiva del tema pubblico; non presumere che abbia lo stesso valore nelle modalità Dark o Contrast.
--ids-color-neutral-60#6f6f76 Primitiva del tema pubblico; non presumere che abbia lo stesso valore nelle modalità Dark o Contrast.
--ids-color-neutral-10#f5f5f5 Primitiva del tema pubblico; non presumere che abbia lo stesso valore nelle modalità Dark o Contrast.
--ids-color-red-60#da1217 Primitiva del tema pubblico; non presumere che abbia lo stesso valore nelle modalità Dark o Contrast.

Alias di spaziatura

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ids-space-2xsvar(--ids-space-04)Usa l’alias per la spaziatura dell’applicazione personalizzata.
--ids-space-xsvar(--ids-space-08)Usa l’alias per la spaziatura dell’applicazione personalizzata.
--ids-space-smvar(--ids-space-16)Usa l’alias per la spaziatura dell’applicazione personalizzata.
--ids-space-mdvar(--ids-space-24)Usa l’alias per la spaziatura dell’applicazione personalizzata.
--ids-space-lgvar(--ids-space-32)Usa l’alias per la spaziatura dell’applicazione personalizzata.
--ids-space-xlvar(--ids-space-40)Usa l’alias per la spaziatura dell’applicazione personalizzata.
--ids-space-2xlvar(--ids-space-48)Usa l’alias per la spaziatura dell’applicazione personalizzata.

Valori di spaziatura

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ids-space-044pxValore concreto della scala del foglio di stile dei token.
--ids-space-088pxValore concreto della scala del foglio di stile dei token.
--ids-space-1616pxValore concreto della scala del foglio di stile dei token.
--ids-space-2424pxValore concreto della scala del foglio di stile dei token.
--ids-space-3232pxValore concreto della scala del foglio di stile dei token.
--ids-space-4040pxValore concreto della scala del foglio di stile dei token.
--ids-space-4848pxValore concreto della scala del foglio di stile dei token.

Tipografia

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ids-font-family-sanssource sans proRiferimento tipografico; i file dei caratteri devono essere caricati separatamente.
--ids-font-family-monosource code proRiferimento tipografico; i file dei caratteri devono essere caricati separatamente.
--ids-font-size-defaultvar(--ids-font-size-sm)Riferimento tipografico; i file dei caratteri devono essere caricati separatamente.
--ids-font-size-smvar(--ids-font-size-40)Riferimento tipografico; i file dei caratteri devono essere caricati separatamente.
--ids-font-size-3014pxRiferimento tipografico; i file dei caratteri devono essere caricati separatamente.
--ids-font-size-4016pxRiferimento tipografico; i file dei caratteri devono essere caricati separatamente.
--ids-font-size-5020pxRiferimento tipografico; i file dei caratteri devono essere caricati separatamente.
--ids-font-size-6024pxRiferimento tipografico; i file dei caratteri devono essere caricati separatamente.

Alias dei raggi

Fonte
Nome / regolaValore / configurazioneUtilizzo
--ids-border-radius-xsvar(--ids-border-radius-04)L’alias fa riferimento a una primitiva; non presumere che ogni controllo usi il raggio più ampio.
--ids-border-radius-smvar(--ids-border-radius-08)L’alias fa riferimento a una primitiva; non presumere che ogni controllo usi il raggio più ampio.
--ids-border-radius-mdvar(--ids-border-radius-16)L’alias fa riferimento a una primitiva; non presumere che ogni controllo usi il raggio più ampio.
--ids-border-radius-lgvar(--ids-border-radius-24)L’alias fa riferimento a una primitiva; non presumere che ogni controllo usi il raggio più ampio.
--ids-border-radius-circlevar(--ids-border-radius-99)L’alias fa riferimento a una primitiva; non presumere che ogni controllo usi il raggio più ampio.

Struttura di input e pulsanti

Fonte
Nome / regolaValore / configurazioneUtilizzo
labelVisible input labelUsalo per identificare il campo, non affidarti solo al testo segnaposto.
validaterequired / email requiredRegole di convalida documentate.
readonlytrueMantieni leggibile l’identificativo dell’asset, senza renderlo modificabile.
disabledtrueStato dell’input non disponibile, distinto dagli altri.
clearabletrueAzione per cancellare il singolo campo.
dirty-trackertrueTracciamento facoltativo dei valori modificati.
text-alignstart | center | endAllineamento logico per la visualizzazione di testo o numeri.

Gerarchia delle azioni

Fonte
Nome / regolaValore / configurazioneUtilizzo
appearanceprimaryPrepara la bozza locale.
appearancesecondaryCancella la bozza come azione secondaria.
appearancetertiaryAlternativa con enfasi ridotta.
appearanceprimary-destructive / tertiary-destructivePer le vere azioni distruttive, non per un annullamento di routine.
disabledBoolean attributeStato non disponibile del componente nativo.
03

Sistema di design Infor Guida completa

Una guida pratica per scegliere, applicare e valutare questo sistema in un’interfaccia reale.

DESIGN-infor.md

Indicazioni complete, un punto di partenza per l’implementazione e link alle fonti.

Scarica la guida

Sistema di design Infor Un modulo aziendale con identità del record stabile

Tieni separato l’identificativo dell’attrezzatura dalla richiesta modificabile

Infor definisce SoHo il proprio linguaggio di design e struttura IDS attorno ai ruoli aziendali e alla produttività. Questo esempio applica tale enfasi a una richiesta di manutenzione: l’identificativo dell’asset resta fisso, mentre la descrizione dell’intervento, il contatto e il livello di urgenza sono le informazioni modificabili.

Da questa guida su OpenDesign

L’ID 02006 è intenzionalmente una stringa. Convertirlo in un numero farebbe perdere lo zero iniziale e ne cambierebbe l’identità. L’esempio IDS nativo usa un input readonly, così il contesto del record resta visibile senza che il campo sembri mancante o non disponibile.

Leggi la specifica di supporto

Sistema di design Infor Gli alias del tema si risolvono tramite le primitive

Usa l’alias in base alla sua funzione

Il tema pubblico acquisito definisce action-default tramite blue-60, il primo piano predefinito tramite neutral-100 e il primo piano secondario tramite neutral-80. Questa struttura a due livelli rende un modulo personalizzato coerente con il tema, senza duplicare colori letterali nell’applicazione.

La pagina pubblica dei token offre le modalità Core, Dark e Contrast. I valori di questa guida provengono da un’istantanea del foglio di stile Core/Light. L’anteprima non afferma che un valore esadecimale di blu sia universale in tutte e tre le modalità: un componente di produzione dovrebbe usare il relativo alias semantico e lasciare che sia il tema selezionato a risolverlo.

Leggi la specifica di supporto

Sistema di design Infor Una scala concreta senza inventare un sistema di densità

Spaziatura, tipografia e raggi hanno insiemi distinti di alias

Gli alias di spaziatura includono xs, corrispondente alla primitiva da 8 pixel, sm a 16, md a 24 e lg a 32. L’CSS nativo fornito usa md per il rientro principale e sm tra i campi. In questo modo l’intento è visibile nel codice sorgente e i valori concreti restano nella tabella di riferimento.

La famiglia di caratteri predefinita è Source Sans Pro, mentre per il monospaziato si usa Source Code Pro. L’alias font-size-default rimanda alla voce della scala da 16 pixel. Caricare la libreria non elimina la necessità di fornire i file dei caratteri descritti nel README del pacchetto. L’anteprima offline usa invece un normale carattere di fallback.

I nomi dei raggi sono distinti da quelli della spaziatura: radius-sm corrisponde a 8 pixel, mentre space-sm corrisponde a 16. Riutilizzare un valore ricordato solo perché entrambi i nomi terminano in sm porta al risultato sbagliato.

Leggi la specifica di supporto

Sistema di design Infor Stati degli input con significati diversi

Readonly, disabled e dirty non sono intercambiabili

Gli esempi ufficiali espongono readonly, disabled, dirty-tracker, clearable, uppercase, lowercase e l’allineamento logico del testo. La richiesta di esempio richiede solo readonly per l’identità dell’asset e clearable per la descrizione dell’intervento. Non attiva la conversione automatica delle maiuscole o delle minuscole per un indirizzo email e non trasforma senza avviso una descrizione a testo libero.

L’esempio di input nativo dichiara validate="email required" per il campo del contatto. La dichiarazione di tipo pubblicata fornisce value, focus() e checkValidation(). Poiché checkValidation restituisce void, il codice non lo scambia per un risultato booleano di validità del modulo; verifica separatamente le condizioni necessarie per preparare il record locale.

  • Readonly mantiene visibile e leggibile un asset fisso.
  • Disabled indica che il campo non può essere usato al momento.
  • Il tracciamento delle modifiche descrive lo scostamento dal valore iniziale; non è uno stato di successo o di convalida.

Leggi la specifica di supporto

Sistema di design Infor Il tracciamento delle modifiche e la convalida hanno finalità diverse

Tieni traccia delle modifiche senza considerare validi i dati

La raccolta ufficiale di esempi di input IDS mostra dirty-tracker="true" su un input con un valore iniziale. Il tracciamento delle modifiche riguarda gli interventi su un campo ed è distinto dall’attributo validate, le cui regole email e required definiscono i valori accettabili. Un campo del contatto modificato può comunque contenere un indirizzo non valido.

La dichiarazione pubblicata di Input espone checkValidation(): void. Chiamalo per attivare il comportamento di convalida del componente, non come condizione booleana che autorizza un’azione sull’ordine di lavoro. L’esempio nativo verifica inoltre i valori obbligatori dell’applicazione prima di produrre una bozza. Il riepilogo clearable e l’asset readonly illustrano altre due funzionalità indipendenti degli input.

Il tracciamento delle modifiche è un’estensione documentata, non attivata in questa anteprima. La demo cancella il riepilogo preparato dopo le modifiche e riporta il focus sul campo della descrizione dell’intervento; non indica che una richiesta di manutenzione sia stata salvata.

Leggi la specifica di supporto

Sistema di design Infor Usa un’area di lavoro a due parti senza nascondere il modulo

Prima il modulo, poi il contesto

L’anteprima affianca al modulo una scheda compatta con il contesto dell’attrezzatura e un semplice diagramma originale della macchina. L’ordine di lettura principale resta: intestazione, campi, azioni, risultato. Sugli schermi stretti il contesto si sposta sotto il modulo, invece di comprimere gli input in colonne illeggibili.

Gli esempi della libreria usano ids-layout-grid con attributi delle colonne specifici per i breakpoint. Questo esempio mantiene intenzionalmente un layout adattabile più semplice: la larghezza massima e il breakpoint sono valori dell’applicazione. Gli aspetti illustrati sono le spaziature basate sui token e le etichette dei controlli nativi.

Leggi la specifica di supporto

Sistema di design Infor Fissa la versione del pacchetto nativo e inizializzalo prima di leggere i valori

Il pacchetto pubblicato è il punto di accesso più affidabile

Il pacchetto verificato indica la versione 1.17.1, un punto di ingresso ES module in enterprise-wc.js e l’attuale repository del codice sorgente ospitato da Infor. Il vecchio percorso GitHub non è quindi un’istruzione d’installazione affidabile. Il codice importa il pacchetto pubblicato, inserisce la composizione e attende la definizione degli elementi personalizzati prima di collegare i comportamenti.

Gli esempi ufficiali disponibili online contengono URL di chunk specifici della build. Copiare il nome di un chunk qualsiasi in un’applicazione la legherebbe a un artefatto di distribuzione; il punto di ingresso del pacchetto consente al bundler di risolvere queste dipendenze. Questa guida verifica le dichiarazioni pubbliche dei metodi e distingue chiaramente l’esempio nel browser da una build nativa.

  1. Installa il pacchetto con versione bloccata nello scaffold vanilla di Vite e includi il carattere documentato secondo le regole per gli asset della tua applicazione.
  2. Usa il punto di ingresso fornito e CSS, attendi gli elementi personalizzati, quindi collega l’azione principale e quella di ripristino.
  3. Prova un riepilogo vuoto, un’email non valida, una bozza locale valida e una modifica successiva; assicurati che l’istantanea visualizzata non diventi obsoleta.

Leggi la specifica di supporto

Sistema di design Infor Esempi di componenti del sistema di design

Esempio interattivo completo e autonomo

Salva il documento completo come index.html e aprilo in un browser. Interpretazione indipendente di HTML/CSS basata su valori verificati dei token IDS core/light e su un font di sistema di fallback. Non è il runtime IDS nativo.

html
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Maintenance request — IDS interpretation</title><style>*{box-sizing:border-box}body{margin:0;color:#161618;background:#f5f5f5;font:16px/1.45 Arial,sans-serif}main{max-width:1120px;padding:32px;margin:auto}header{display:flex;justify-content:space-between;border-bottom:1px solid #bbbbbf;padding-bottom:16px;gap:16px}header b{font-size:14px}header span{font-size:13px;color:#3b3b3f}h1{font-size:32px;line-height:1.2;font-weight:500;margin:24px 0 8px}h2{font-size:20px;font-weight:500;margin:0 0 16px}.intro{color:#3b3b3f;margin:0 0 24px}.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.form,.context{background:white;border:1px solid #e0e0e1;border-radius:8px;padding:24px}label,.label{display:block;font-size:14px;margin-bottom:8px}input{width:100%;font:inherit;border:1px solid #6f6f76;border-radius:4px;padding:10px 12px;color:#161618}input[readonly]{background:#f5f5f5}input:focus,button:focus-visible{outline:3px solid #8abff7;outline-offset:2px}.field{margin-bottom:16px}.hint{font-size:12px;color:#3b3b3f;margin:4px 0 0}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}button{font:inherit;border-radius:4px;padding:10px 16px;cursor:pointer;border:1px solid #6f6f76;background:white;color:#161618}.primary{background:#0072ed;color:white;border-color:#0072ed}.primary:hover{background:#0066d4}fieldset{padding:0;border:0;margin:24px 0 0}legend{font-size:14px;margin-bottom:8px}.radios{display:flex;gap:16px;flex-wrap:wrap}.radios label{display:flex;gap:8px;align-items:center;margin:0}.radios input{width:auto;accent-color:#0072ed}.equipment{height:190px;background:#e6f1fd;display:grid;place-content:center;margin-bottom:24px;border-radius:4px}.machine{border:3px solid #0054b1;width:165px;height:100px;position:relative;background:white}.machine:before{content:'';position:absolute;left:14px;top:16px;width:55px;height:55px;border:8px double #0054b1;border-radius:50%}.machine:after{content:'02006';position:absolute;right:10px;top:27px;color:#0054b1;font:16px monospace}.context dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;font-size:14px}.context dt{color:#3b3b3f}.context dd{margin:0;text-align:right}.notice{font-size:13px;background:#f5f5f5;padding:16px;margin-top:24px}.error{color:#a30d11;font-size:14px;min-height:20px}.result{background:#e6f1fd;padding:16px;border-left:3px solid #0072ed;margin-top:20px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.result[hidden]{display:none}.foot{font-size:12px;color:#3b3b3f;margin-top:24px}@media(max-width:650px){main{padding:20px}.grid{grid-template-columns:1fr}.form,.context{padding:20px}header{flex-direction:column;gap:4px}h1{font-size:28px}.equipment{height:140px}}</style><main><header><b>ASSET SERVICE / LOCAL NOTEBOOK</b><span>Independent Infor IDS interpretation</span></header><h1>Prepare the work. Keep the context.</h1><p class="intro">Build a local maintenance draft for a fixed equipment record.</p><div class="grid"><form id="form" class="form" novalidate><div class="field"><label for="asset">Asset identifier</label><input id="asset" value="02006" readonly><p class="hint">Read-only record identity; leading zero preserved.</p></div><div class="field"><label for="summary">Work summary</label><input id="summary" required placeholder="For example, inspect the drive belt" aria-describedby="error"></div><div class="field"><label for="contact">Contact email</label><input id="contact" type="email" required placeholder="[email protected]" aria-describedby="error"></div><fieldset><legend>Planning urgency</legend><div class="radios"><label><input type="radio" name="urgency" value="Routine" checked>Routine</label><label><input type="radio" name="urgency" value="Soon">Soon</label></div></fieldset><div class="actions"><button class="primary" type="submit">Prepare local draft</button><button id="clear" type="button">Clear draft</button></div><p id="error" class="error" role="alert"></p><div id="result" class="result" role="status" hidden></div></form><aside class="context"><div class="equipment" role="img" aria-label="Original schematic of fictional equipment 02006"><div class="machine"></div></div><h2>Equipment context</h2><dl><dt>Record</dt><dd>02006</dd><dt>Area</dt><dd>Sample workshop</dd><dt>Type</dt><dd>Drive assembly</dd><dt>Connection</dt><dd>Offline sample</dd></dl><p class="notice">Preparing a draft changes only this page. It does not create a work order or send a message.</p></aside></div><p class="foot">Core/light IDS token values with native HTML controls and a system-font fallback. Original illustration and application layout; no native IDS runtime.</p></main><script>const form=document.querySelector('#form'),summary=document.querySelector('#summary'),contact=document.querySelector('#contact'),error=document.querySelector('#error'),result=document.querySelector('#result');function clearResult(){result.hidden=true;result.textContent='';error.textContent='';summary.removeAttribute('aria-invalid');contact.removeAttribute('aria-invalid')}form.addEventListener('input',clearResult);form.onsubmit=e=>{e.preventDefault();clearResult();if(!summary.value.trim()){error.textContent='Enter a work summary.';summary.setAttribute('aria-invalid','true');summary.focus();return}if(!contact.value.trim()||!contact.validity.valid){error.textContent='Enter a valid contact email.';contact.setAttribute('aria-invalid','true');contact.focus();return}result.hidden=false;result.textContent='LOCAL DRAFT / NOT SENT\n\nAsset: 02006\nSummary: '+summary.value.trim()+'\nContact: '+contact.value.trim()+'\nUrgency: '+form.elements.urgency.value};document.querySelector('#clear').onclick=()=>{form.reset();clearResult();summary.focus()};</script></html>

Riferimento del codice

  • L'asset 02006 resta una stringa. L'esempio IDS nativo, non questo modulo HTML, illustra la registrazione di custom element e checkValidation(); nessuno dei due crea un ordine di manutenzione.

ID in sola lettura, riepilogo obbligatorio e convalida del contatto

La convalida dell'input IDS viene invocata esplicitamente; i controlli dell'applicazione impediscono un salvataggio locale vuoto. Il testo dell'utente viene visualizzato con textContent.

javascript
// Vite vanilla project: npm install [email protected]
// src/main.js. Add Source Sans Pro through your approved font-hosting setup.
import 'ids-enterprise-wc';
import './style.css';
document.querySelector('#app').innerHTML=`<ids-container><main>
<h1>Maintenance request</h1><p>Local draft only; no work order is sent.</p>
<ids-input id="asset" label="Asset identifier" value="02006" readonly="true"></ids-input>
<ids-input id="summary" label="Work summary" validate="required" clearable="true"></ids-input>
<ids-input id="contact" label="Contact email" validate="email required"></ids-input>
<ids-button id="prepare" appearance="primary"><span>Prepare local draft</span></ids-button>
<ids-button id="reset" appearance="secondary"><span>Clear draft</span></ids-button>
<p id="message" role="status"></p><pre id="draft"></pre>
</main></ids-container>`;
await Promise.all(['ids-input','ids-button','ids-container'].map(n=>customElements.whenDefined(n)));
const summary=document.querySelector('#summary'),contact=document.querySelector('#contact');
const message=document.querySelector('#message'),draft=document.querySelector('#draft');
document.querySelector('#prepare').addEventListener('click',()=>{
 summary.checkValidation();contact.checkValidation();
 const title=summary.value.trim(),email=contact.value.trim();
 if(!title){message.textContent='Enter a work summary.';summary.focus();return;}
 if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)){message.textContent='Enter a complete contact email.';contact.focus();return;}
 draft.textContent=JSON.stringify({asset:'02006',summary:title,contact:email},null,2);
 message.textContent='Draft prepared in this page only. No request sent.';
});
function clearResult(){draft.textContent='';message.textContent='';}
summary.addEventListener('input',clearResult);contact.addEventListener('input',clearResult);
document.querySelector('#reset').addEventListener('click',()=>{summary.value='';contact.value='';clearResult();summary.focus();});

/* src/style.css — application layout using the loaded IDS token roles */
main{max-width:44rem;margin:auto;padding:var(--ids-space-md);color:var(--ids-color-foreground-default-default)}
ids-input{display:block;margin-bottom:var(--ids-space-sm)}
ids-button{margin-inline-end:var(--ids-space-xs)}
pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--ids-color-accent-neutral-weakest);padding:var(--ids-space-sm)}

Riferimento del codice

  • checkValidation() restituisce void; non viene interpretato come un risultato Boolean.
  • L'asset 02006 è testo, quindi lo zero iniziale viene mantenuto.
  • La preparazione dell'anteprima modifica solo lo stato locale della pagina.

L'aspetto delle azioni è esplicito

Le varianti primaria e secondaria dei componenti distinguono chiaramente l'azione principale nel flusso di lavoro.

html
<ids-button appearance="primary"><span>Prepare local draft</span></ids-button>
<ids-button appearance="secondary"><span>Clear draft</span></ids-button>

Riferimento del codice

  • Un componente non disponibile usa lo stato disabled, non solo uno stile sbiadito.
04

Configurazione dell'agente sistema di design Infor

Punto di partenza per l’implementazione

File di ingresso e foglio di stile completi per uno scaffold Vite vanilla con #app. La versione del pacchetto e i metodi sono stati verificati nel pacchetto pubblicato; qui non è stata eseguita la compilazione. Fornisci Source Sans Pro tramite una fonte di font approvata. L'anteprima incorporata è un'implementazione nativa indipendente di HTML.

javascript / css
// Vite vanilla project: npm install [email protected]
// src/main.js. Add Source Sans Pro through your approved font-hosting setup.
import 'ids-enterprise-wc';
import './style.css';
document.querySelector('#app').innerHTML=`<ids-container><main>
<h1>Maintenance request</h1><p>Local draft only; no work order is sent.</p>
<ids-input id="asset" label="Asset identifier" value="02006" readonly="true"></ids-input>
<ids-input id="summary" label="Work summary" validate="required" clearable="true"></ids-input>
<ids-input id="contact" label="Contact email" validate="email required"></ids-input>
<ids-button id="prepare" appearance="primary"><span>Prepare local draft</span></ids-button>
<ids-button id="reset" appearance="secondary"><span>Clear draft</span></ids-button>
<p id="message" role="status"></p><pre id="draft"></pre>
</main></ids-container>`;
await Promise.all(['ids-input','ids-button','ids-container'].map(n=>customElements.whenDefined(n)));
const summary=document.querySelector('#summary'),contact=document.querySelector('#contact');
const message=document.querySelector('#message'),draft=document.querySelector('#draft');
document.querySelector('#prepare').addEventListener('click',()=>{
 summary.checkValidation();contact.checkValidation();
 const title=summary.value.trim(),email=contact.value.trim();
 if(!title){message.textContent='Enter a work summary.';summary.focus();return;}
 if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)){message.textContent='Enter a complete contact email.';contact.focus();return;}
 draft.textContent=JSON.stringify({asset:'02006',summary:title,contact:email},null,2);
 message.textContent='Draft prepared in this page only. No request sent.';
});
function clearResult(){draft.textContent='';message.textContent='';}
summary.addEventListener('input',clearResult);contact.addEventListener('input',clearResult);
document.querySelector('#reset').addEventListener('click',()=>{summary.value='';contact.value='';clearResult();summary.focus();});

/* src/style.css — application layout using the loaded IDS token roles */
main{max-width:44rem;margin:auto;padding:var(--ids-space-md);color:var(--ids-color-foreground-default-default)}
ids-input{display:block;margin-bottom:var(--ids-space-sm)}
ids-button{margin-inline-end:var(--ids-space-xs)}
pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--ids-color-accent-neutral-weakest);padding:var(--ids-space-sm)}

Un prompt per il tuo progetto

Prompt per l’agente
Crea una bozza di manutenzione Infor IDS usando gli alias del tema chiaro verificati e la struttura documentata di input e pulsanti. Mantieni l'identificatore dell'asset come stringa e in sola lettura. Convalida i campi modificabili, cancella i risultati non più aggiornati dopo le modifiche e distingui una bozza locale da un ordine di lavoro inviato. Non considerare checkValidation() come una funzione che restituisce un Boolean.
05

Fonti e ambito di sistema di design Infor

Guida indipendente di OpenDesign. L'asset e il flusso di lavoro sono fittizi; non viene inviato nulla. Il codice nativo fa riferimento al pacchetto 1.17.1 verificato, mentre i valori dei token sono identificati come uno snapshot distinto del tema live core/light.