elujou-testlib v0.0.6
Testlibrary kontrollimaks olulisi liidestumise asjaolusid
Library kasutuselevõtmine Entry points Keelevaliku rakendamine Andmete sissetoomine Shared-ui import Sandbox Valmidusaste Sõltuvuste versioonid ja versiooniuuendused
Library kasutuselevõtmine
Komponent kasutusele võtmiseks: ElujouTestLibComponent
Komponendile viitamiseks: <testlib-elujou-testlib></testlib-elujou-testlib>
Installeerimiseks: npm i elujou-testlib
Imports:
import { ElujouTestLibComponent } from 'elujou-testlib';
imports: [
.... ,
ElujouTestLibComponent,
.... ,
....]
Entry points
Käesoleval libraryl on kolm entry pointi.
Entry point 'elujou-testlib'
Mõeldud library kasutuselevõtmiseks.
Komponent kasutusele võtmiseks: ElujouTestLibComponent
Komponendile viitamiseks: <testlib-elujou-testlib></testlib-elujou-testlib>
Entry point 'elujou-testlib/src/lib/elujou-keelesisend' Täiendavalt keelest
Mõeldud library'le keelesisendi andmiseks.
Komponent kasutusele võtmiseks: KeelesisendComponent
Komponendile viitamiseks: <keelesisend></keelesisend>
Entry point 'elujou-testlib/src/lib/elujou-sisendapi' Täiendavalt andmetega rikastamisest
Mõeldud library'le andmesisendi andmiseks.
Komponent kasutusele võtmiseks: ElujouSisendapiComponent
Komponendile viitamiseks: <elujou-sisendapi></elujou-sisendapi>
public-api.ts
export * from './lib/elujou-testlib.service';
export * from './lib/elujou-testlib.component';
export * from './lib/elujou-testlib.module';
export * from './lib/elujou-keelesisend/src/elujou-keelesisend.module'
export * from './lib/elujou-keelesisend/src/elujou-keelesisend.component'
export * from './lib/elujou-sisendapi/src/elujou-sisendapi.component'
export * from './lib/elujou-sisendapi/src/elujou-sisendapi.service'
Keelevaliku rakendamine
Komponent kasutusele võtmiseks: KeelesisendComponent
Komponendile viitamiseks: <keelesisend></keelesisend>
Viidatud komponenti peaks jõudma kasutaja keelesisend.
Keele muutmine on lahendatud lokaalselt, arvesse on võetud asjaolu, et tegemist on library-ga ja komponendid on standalone komponendid. Igal kompoendil on oma keelefail (keelefailid).
Silmas on peetud, et keele vahetuse korral ei peaks programm pöörduma library'st väljaspoole, näiteks Angulari programmi mooduli poole, ega sõltuks välistest sisenditest.
Praegu on pandud drop-menüü keelevahetuse võimalust kuvama (katsetamise eesmärgil), reaalses rakenduses tuleb lihtsalt sisend, mujalt, mida kasutaja on valinud.
Iga standalone komponent kontrollib, mis keelega on tegu ja kasutab omaenda keelefaili (keelefaile) selleks, et õiget keelt kuvada.
Keelevalikut ei ole plaanis esimese live mineku juures rakendada, kuid toimimise katsetamiseks on see antud juhul rakendatud järmistes komponentides:
ElujouTabsComponent <elujoutab></elujoutab>
ElujouNotification1Component <elujounotification1></elujounotification1>
ElujouNotification2Component <elujounotification2></elujounotification2>
ElujouButton1Component <elujoubutton1></elujoubutton1>
Hetkel vahetub keel ülalnimetatud komponentides eesti keele ja inglise keele vahel, vene keel kuvab eesti keelt.
Andmete sissetoomine
Komponent kasutusele võtmiseks: ElujouSisendapiComponent
Komponendile viitamiseks: <elujou-sisendapi></elujou-sisendapi>
Andmeid läheb küsima teenus: ElujouSisendapiService
Seda kasutab komponent: ElujouSisendapiComponent <elujou-sisendapi></elujou-sisendapi>
Hetkel läheb süsteem andmeid küsima randomapi käest, hetkel küsitakse osaliselt (lihtsalt et oleks sisend, mida kuvada - reaalses lahenduses küsitakse süsteemi vastava komponendi käest kogu openApi specis toodud skaala lõikes).
Hetkel küsitakse andmeid refreshiga. Reaalne lahendus peaks ka ju ülesmineku hetkel andmeid küsima?
Shared-ui import
Käesolev kood kasutab shared-ui komponente ja impordib neid (näiteks) järgmistes komponentides:
ElujouTabsComponent <elujoutab></elujoutab>
import { RiaTabDirective, RiaTabsComponent } from 'riasiseviide';
ElujouNotification1Component <elujounotification1></elujounotification1>
import { RiaNotificationComponent } from 'riasiseviide';
import { RiaButtonComponent } from 'riasiseviide';
Notification avatakse nupuga.
ElujouNotification2Component <elujounotification2></elujounotification2>
import { RiaNotificationComponent } from 'riasiseviide';
ElujouButton1Component <elujoubutton1></elujoubutton1>
import { RiaButtonComponent } from 'riasiseviide';
Sisendviide riasiseviide
vajab asendamist õige viite vastu, mida välises keskkonnas libraryt programmeerides ei pruugi olla lihtne teha (päris igat viidet ei saa kasutada ning valeviitega kood ei kompileeru). Samuti on teatud segadus, mis on õiged viited, selgitus allpool.
Alljärgnevalt toodud shared-ui viitamised, vastavad readme lingid:
(a) tabs:
https://stash.ria.ee/projects/RIGNPM/repos/ee.eesti.npm.sharedui/browse/projects/ria/shared-ui/src/lib/tabs
import { RiaTabDirective, RiaTabsComponent } from '@ria/shared-ui';
(b) button:
https://stash.ria.ee/projects/RIGNPM/repos/ee.eesti.npm.sharedui/browse/projects/ria/shared-ui/src/lib/button
import { RiaButtonComponent } from '@ria/shared-ui/component';
(c) notification: https://stash.ria.ee/projects/RIGNPM/repos/ee.eesti.npm.sharedui/browse/projects/ria/shared-ui/src/lib/notification importviite asemel on link sandboxi, kus on lokaalne import (lokaalne import tähendaks koodi kaasaandmist).
Sandboxis toodud viited shared-ui komponentidele on aga lokaalsed, kui lähtuda nendest, siis oleks vaja shared-ui komponendid teha kättesaadavaks library siseselt (see võiks olla üks alternatiiv).
Viidete korrigeerimise probleemi ei teki, kui shared-ui komponentide kood integreerida librarysse (need mõned imporditavad komponendid ei ole mahukad). Samas praegu on mindud impordi teed.
Sandbox
Library koostamisel on lähtutud arusaamast, et sandboxi kood on näidiseks, mitte mõeldud importimiseks. Seega osaliselt (vajadusel kohandatult reaalsele vajadusele) on sandboxi koodi kasutatud, see on integreeritud librarysse.
Sandboxi koodi on kasutatud näiteks tab komponendi juures:
ElujouTabsComponent <elujoutab></elujoutab>
Küsimus Sandboxi kood joonistab tab'idele teatud ümbritseva ala. Kas see ala sobib (ja on sandboxi poolt mõeldud selliselt), et see ühilduks olemasoleva ümbrusega koodi liidestamisel? Tabid on see funktsionaalne komponent, mis peaks paigutuma välisesse ümbrusesse? Praegu on sellest lähtutud. Kui see nii ei ole, siis milline peaks olema raamkomponent? Kui aga on tabid, siis kas need sellise ümbritseva alaga praegu liidestuksid?
Valmidusaste
Käesolev library ei ole lõplik ega valmis. Eelkõige mõeldud sellisel kujul välja antuna selleks, et oleks võimalik fikseerida sisendparameetrid. Library osas tulevad järgmised versioonid, algselt mõeldud kõigi liidestuseks oluliste elementide paikasaamiseks. Kui see on tehtud, siis laotakse loodud vundamendile ka programmi terviklikuks tööks vajalikud (stiiliga kohandatud) sisukomponendid.
Library sisaldab hetkel komponente, mida ei kasutata ja programmiridu, mis on liigsed. Edasise töö käigus kood korrastatakse selliselt, et liigsed komponendid kas lähevad kasutusse või eemaldatakse, lisatakse vaid vajalikku koodi.
Sõltuvuste versioonid ja versiooniuuendused
Muudautus versioonis 0.0.4
Sõltuvuste versioonid said uuendatud järgnevalt (elujou-testlib ver 0.0.4
):
https://www.npmjs.com/package/@ng-bootstrap/ng-bootstrap
Eelnevalt oli: "@ng-bootstrap/ng-bootstrap": "^16.0.0"
Nüüd on (viimane saadaolev versioon): "@ng-bootstrap/ng-bootstrap": "^18.0.0"
https://www.npmjs.com/package/@popperjs/core
Eelnevalt oli: "@popperjs/core": "^2.11.8"
Viimane saadaolev versioon on: "@popperjs/core": "^2.11.8"
Uuendamist ei toimunud, kuna oli peal viimane versioon.
https://www.npmjs.com/package/tslib
Eelnevalt oli: "tslib": "^2.3.0"
Nüüd on (viimane saadaolev versioon): "tslib": "^2.8.1"
https://www.npmjs.com/package/ngx-gauge
Eelnevalt oli: "ngx-gauge": "^9.0.0"
Nüüd on (viimane saadaolev versioon): "ngx-gauge": "^11.0.0"
https://www.npmjs.com/package/ngx-echarts
Eelnevalt oli: "ngx-echarts": "^18.0.0"
Nüüd on (viimane saadaolev versioon): "ngx-echarts": "^19.0.0"
Korrigeerimised versioonis 0.0.5
Muudatus: "@ng-bootstrap/ng-bootstrap": "^18.0.0" --> "^16.0.0"
Ei muutnud: "@popperjs/core": "^2.11.8" on Angular 17 kooskõlas.
Muudatus: "ngx-echarts": "^19.0.0" --> "ngx-echarts": "^17.2.0"
Muudatus: "ngx-gauge": "^11.0.0" --> "ngx-gauge": "^9.0.0"
Allikad versioonide muutmiseks: https://ng-bootstrap.github.io/#/getting-started https://www.npmjs.com/package/ngx-echarts https://www.npmjs.com/package/ngx-gauge