Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
30014b7
refactor: update dependencies and migrate localization strings across…
May 14, 2026
3adcc4f
feat: migrate project to Tailwind CSS and remove legacy Bootstrap gri…
May 17, 2026
8e37b7b
feat(frontend): modernize Angular workspace to v21 with Transloco and…
May 17, 2026
82ef0ee
refactor(frontend): consolidate i18n shared code and align admin-cms…
May 17, 2026
3c8dbfb
refactor(frontend): structural cleanup — store rename, mock isolation…
May 17, 2026
e2e2e94
refactor(http): consolidate interceptors and harden error/auth guards
May 17, 2026
29d9d69
feat(web-portal): implement JWT auth cycle (US033–US036)
May 19, 2026
118af71
feat(admin-cms): replace BFF/OIDC shims with JWT auth
May 19, 2026
4704eae
refactor(profile): enhance profile display logic and default values
May 20, 2026
0844c90
fix(styles): complete RTL arrow directions and Material input token c…
May 20, 2026
51b996b
feat(auth): implement role & permission system across admin-cms and w…
May 20, 2026
25f9058
fix(auth): add missing permissions and type ReportConfig.permission
May 20, 2026
8b0725b
fix(admin-cms): replace box-shadow with outline on focused input to p…
May 20, 2026
dc55375
style(inputs): remove focus glow ring from outlined fields in both apps
May 20, 2026
ef42120
feat(auth): complete auth cycle for admin-cms and web-portal
May 21, 2026
4af5a0b
feat(register): per-field API validation errors and registration UX f…
May 21, 2026
01ab6c0
fix(admin-cms): resolve all build warnings
May 21, 2026
bd1aa67
fix(admin-cms): RTL layout, guard loop, and shell localisation
May 21, 2026
6dec893
fix(admin-cms): grant all permissions when backend returns empty roles
May 21, 2026
ffdd00f
feat(admin-cms): US040-042 users list, create, delete + shared infra
May 21, 2026
d2508ec
feat(admin-cms): user detail page, profile menu, and permission fixes
May 21, 2026
2eda3bd
feat(web-portal): OTP phone verification step in registration flow
May 24, 2026
59fc80e
feat(admin-cms): remove password from user creation — backend now sen…
May 24, 2026
caefca4
feat(web-portal): add countryCodeId to registration form (Sprint 06)
Jun 1, 2026
53b2389
feat(web-portal): profile fields, avatar upload, registration phone c…
Jun 1, 2026
027d066
feat(web-portal): expert request CV upload, profile nationality fix, …
Jun 1, 2026
a0b6063
feat(web-portal): show expert registration status on profile page
Jun 1, 2026
01131f5
feat(admin-cms): expert request detail page, bio preview in dialogs, …
Jun 1, 2026
612d554
feat(web-portal): fix expert status display, add phone number to profile
Jun 1, 2026
e174214
feat(admin-cms): sprint-02 pages & homepage admin settings
Jun 2, 2026
c9f8244
feat(web-portal): sprint-02 public pages & homepage v2
Jun 2, 2026
43e4763
feat(admin-cms): add id and name attributes to login form inputs
Jun 2, 2026
305af77
fix(admin-cms): homepage-settings country binding, policies write sha…
Jun 3, 2026
efd2db1
fix(web-portal): registration phone format, nationality/phone-code di…
Jun 3, 2026
b01a098
feat(web-portal): redirect to profile after expert request submission
Jun 3, 2026
1702127
feat(admin-cms): activate / deactivate user from detail page
Jun 3, 2026
5949dbe
feat(admin-cms): news & events admin US-043 view mode + US-045 delete…
Jun 3, 2026
7dd3e3b
feat(admin-cms): US-044 tighten news & event upload forms per BRD spec
Jun 3, 2026
20526bc
feat(web-portal): US-011 share menu on news & event detail pages
Jun 3, 2026
b81f66f
feat(web-portal): US-013 calendar menu — smart primary + provider dro…
Jun 3, 2026
a0ab811
feat(news-events): sprint-03 finalization — card redesign, topic drop…
Jun 3, 2026
82ec3a6
feat(admin-cms): event datetime pickers, venue cross-validator, full-…
Jun 3, 2026
ad53c79
feat(web-portal): redesign event detail page to two-column layout (US…
Jun 4, 2026
9f228da
wip(web-portal): news detail page changes (uncommitted working-tree s…
Jun 4, 2026
e7208f4
feat(api-client): openapi-typescript type generation pipeline
Jun 7, 2026
3717d5b
feat(i18n): resources, news/events, and common keys (ar/en)
Jun 7, 2026
71d7ded
feat(admin-cms): resource delete permission, form enhancements, rich-…
Jun 7, 2026
1acd492
feat(web-portal): news/events i18n polish + social share (US010/US011)
Jun 7, 2026
130f3f8
fix(web-portal): resources list frozen-skeleton root cause + checkbox…
Jun 7, 2026
ca4495e
feat(web-portal): resource detail page rebuilt to wireframe + skeleto…
Jun 7, 2026
3b7eabb
feat(admin-cms): US047 form validation aligned with server-verified A…
Jun 7, 2026
be5fa2c
feat: admin resource form polish + API-only resource detail page
Jun 7, 2026
90c5a9b
feat(admin-cms): localize news/events/resources tables + rich-text co…
Jun 7, 2026
6c9ce33
fix(admin-cms): resources status filter option label (الحالة -> منشور)
Jun 7, 2026
da72019
fix(web-portal): homepage error handling (US001 AC4/AC5)
Jun 7, 2026
5bbac55
fix(i18n): add missing ERR001/ERR025/CON016 keys (Sprint 02 admin edi…
Jun 7, 2026
469f300
feat(web-portal): event card topic chip (US010 AC3) + tags on news/ev…
Jun 7, 2026
3fbb8bd
feat(admin-cms): INF005 empty state on expert requests list (US059)
Jun 7, 2026
3ac76d6
feat(register): add searchable nationality/phone-code selects with au…
Jun 8, 2026
22437de
fix(search-bar): add overflow:hidden and appearance:none to pill sear…
Jun 8, 2026
f3f28df
fix(ui): reliable pill search clipping + resources toolbar white card
Jun 8, 2026
bcfbed1
feat(news/events): align toolbar and skeleton with resources page design
Jun 8, 2026
aa125eb
feat(toolbar): light primary tint on search inputs across resources/n…
Jun 8, 2026
56c5f1e
feat(ui): unify toolbar design — Option B geometric (8px) across all …
Jun 8, 2026
f83134f
fix(ui): unify toolbar element heights across list pages
Jun 8, 2026
6487bd1
fix(ui): enforce uniform 44px toolbar height via --toolbar-h token
Jun 8, 2026
a8993ac
fix(ui): vertically center placeholder/input text inside 44px toolbar…
Jun 8, 2026
0ad389a
feat(ux): replace mat-select+search with matAutocomplete for country/…
Jun 8, 2026
a075703
feat(countries): Participating Countries feature — grid, map, detail …
Jun 8, 2026
88c3172
feat(state-rep): US051/052/053/060/061b — state rep portal features
Jun 9, 2026
d0e878a
feat(admin-cms): US049/050 — admin country requests list & processing
Jun 9, 2026
000333f
feat(admin-cms): replace GUID inputs with searchable pickers in state…
Jun 9, 2026
489b877
style(ux): global admin polish — page title gradient, filter rows, 48…
Jun 9, 2026
c83ed38
feat(ux): redesign user profile card, remove state-rep links from pri…
Jun 9, 2026
3d1f495
fix(header): show first name only in user trigger pill, lock pill to …
Jun 9, 2026
306602b
fix(header): user trigger — avatar icon only, no text or chevron
Jun 9, 2026
7cb6f6a
fix(header): use plain button for avatar trigger so gradient renders …
Jun 9, 2026
79aafef
feat(web-portal): US018 service evaluation + US019 personalized sugge…
Jun 9, 2026
8ed6f22
refactor(web-portal): redesign profile page with hero banner + sectio…
Jun 9, 2026
a8bf323
fix(web-portal): US019 preferences dialog — correct BRD fields + stub…
Jun 9, 2026
f7b3f64
feat(profile): remove knowledgeLevel/interests from edit form; fix he…
Jun 9, 2026
66c1a24
redesign(profile): sidebar + main layout; refreshed edit form
Jun 9, 2026
ecaaf64
redesign(state-profile): hero+grid layout, polished edit dialog, CSS …
Jun 9, 2026
70fb484
feat(state-profile): replace textareas with RichTextEditor; fix user-…
Jun 9, 2026
5181a38
fix(state-profile): render description HTML with [innerHTML] instead …
Jun 9, 2026
847570b
fix(state-profile): contain desc text overflow inside card
Jun 9, 2026
803a902
feat(admin): resolve expert tag UUIDs to names and fix CV download
Jun 10, 2026
58d0975
feat(web-portal): personalized interests, avatar auto-save, autocompl…
Jun 10, 2026
d8dec57
feat(web-portal): email/phone OTP change flow + fix expert CTA visibi…
Jun 11, 2026
3b6ddd2
feat(web-portal): show submitted expert data + expert status section …
Jun 11, 2026
f82887a
feat(auth): resume phone verification for unverified accounts on login
Jun 11, 2026
bce573b
fix(auth): use dial-code + local-number fields on resume-verification…
Jun 11, 2026
23d6539
feat(profile): split phone change into dial-code + local number with …
Jun 11, 2026
2ea99d8
feat(profile): replace OTP text input with 6-box digit input in chang…
Jun 11, 2026
79e8250
feat(US012): follow news page — toggle follow/unfollow with optimisti…
Jun 11, 2026
e00100c
feat(US021): community listing polish + roles API integration
Jun 15, 2026
26fc9f9
feat(US022): topic detail redesign + follow
Jun 15, 2026
5bd7146
feat(US024): post-detail author binding + Figma replies/composer
Jun 15, 2026
07c7858
feat(US026): compose post dialog updates
Jun 15, 2026
451d6ed
feat(US030): community user profile page + /community/users/:id route
Jun 15, 2026
76f0aaf
fix(US023): FollowsStoreService retry + follow directive updates
Jun 15, 2026
f817151
test(US054): admin community moderation + topics specs green
Jun 15, 2026
8725540
chore(web-portal): misc feature updates (account, countries, news, ev…
Jun 15, 2026
b2fbf06
chore: shared i18n keys, ui-kit icons + exports, deps and scripts
Jun 15, 2026
fb318b7
feat(US024): switch author sidebar stat from replies to followers
Jun 16, 2026
d9011f8
feat(US030/US031): add own-profile guard to community user profile page
Jun 16, 2026
750ac93
feat(US003): sync resource types to live API — add resourceTypeAr, pu…
Jun 16, 2026
c379ab2
fix(US047): show existing file in resource edit form
Jun 16, 2026
16e5e63
feat(US047): allow file replacement in resource edit form
Jun 16, 2026
f9feed5
feat(US052): add category select to state rep resource request form
Jun 16, 2026
41c7a28
fix(US051): use download blob API for resource file in request detail…
Jun 16, 2026
b1d395d
fix: correct cancel key in approve country request dialog (common.can…
Jun 16, 2026
892404f
feat: show locale-aware request title in approve dialog header
Jun 16, 2026
81881a7
fix: show locale-aware title in country request detail hero header
Jun 16, 2026
dda161c
fix(i18n): rename resources AR translations from الموارد/مورد to المص…
Jun 16, 2026
eaa88a0
fix: resolve community post-detail UX issues and news rendering bugs
Jun 16, 2026
fbc203a
feat: evaluation dialog BRD gaps, expert tags multi-select, HTML cont…
Jun 16, 2026
a605942
feat: show country flags in nationality autocomplete (register & prof…
Jun 16, 2026
2eae054
style(frontend): token-driven color system, blue rebrand, Tailwind re…
Jun 16, 2026
0e84085
feat(web-portal): redesign public header to match Figma
Jun 17, 2026
9c0278f
feat(ui-kit): richer rich-text editor — image upload, color, Arabic l…
Jun 17, 2026
a7bb2c7
feat(countries): profile parity + NDC view/update, localized names, v…
Jun 17, 2026
861947d
feat(admin-cms): autocomplete + country flags in identity dialogs
Jun 17, 2026
a767a69
fix(account): country/nationality selects + dialog/sidebar style fixes
Jun 17, 2026
8c90a13
feat(account): expertise empty-state with preferences CTA on profile …
Jun 21, 2026
67185fe
fix(state-rep): align content request forms with live API
Jun 21, 2026
a9e0504
feat(admin-cms): add tagIds to news and event forms
Jun 21, 2026
2cd98f5
fix(home): improve metrics section text contrast
Jun 21, 2026
3077030
fix: rich content overflow + Sass map-get deprecation
Jun 21, 2026
564e358
fix(templates): resolve Angular NG8107 and NG8011 build warnings
Jun 21, 2026
a6ed8c3
feat(community): pixel-perfect post card + roles accordion
Jun 21, 2026
64b7e37
feat(community): share dialog, author profile header, post card wiring
Jun 21, 2026
c9490d5
feat(countries): migrate to unified /api/countries endpoint, drop /ap…
Jun 22, 2026
6bb51c6
fix(countries): set pageSize=1000 on all country dropdown/select calls
Jun 22, 2026
630e670
fix(profile): show expert status section correctly for approved/pendi…
Jun 22, 2026
e3b6b14
feat(community): align post detail, profile & followed-topics with Fi…
Jun 22, 2026
0c246d5
feat(community): poll + attachments in create-post form, poll display…
Jun 22, 2026
82320d1
feat(community): feed sort, watchlist filter, profile bio/country, fo…
Jun 22, 2026
cb66447
feat(community): topic counts/follow in sidebar; admin moderation by …
Jun 22, 2026
868a780
test(community): fix failing community specs; add ratePost service me…
Jun 22, 2026
0b7671f
feat(realtime): SignalR notifications hub + live community & notifica…
Jun 23, 2026
f96ae97
fix(community): topic-follow flags from /api/me/follows + wrap feed f…
Jun 23, 2026
9874c9b
fix(content): reflect form fields in detail views, unify share dialog…
Jun 23, 2026
0167f3e
feat(realtime): integrate authoritative SignalR contract
Jun 24, 2026
ae18c53
feat(realtime): Phase 4 — admin moderation channel
Jun 24, 2026
473e7a5
test(realtime): Phase 5 — hub unit tests
Jun 24, 2026
7f3ba00
feat(realtime): reconnect catch-up
Jun 24, 2026
3728303
feat(realtime): presence + typing indicators on post-detail
Jun 24, 2026
cc08092
fix(community): attachment kind contract + download via asset API
Jun 24, 2026
c861d0b
feat(community): gate attachment download behind auth
Jun 24, 2026
e199941
fix(community): enable download in post-detail attachmentIds branch
Jun 24, 2026
0a5e6ba
feat(community): link post-card author name to the user profile
Jun 24, 2026
ce97a76
feat(community): make post-card avatar link to the user profile
Jun 24, 2026
7f715ed
fix(community): right-align profile bio text in RTL
Jun 24, 2026
65a59b4
feat(community): Figma empty states for profile posts tabs
Jun 24, 2026
217eeee
i18n(community): rename type filter to 'category' + header link to 'K…
Jun 24, 2026
254f033
fix(community): profile posts-list spacing + transparent tabs
Jun 24, 2026
0aa0758
fix(community): drop horizontal scroll on profile tab bar
Jun 24, 2026
20a89d7
fix(community): add gap below profile posts filter bar
Jun 24, 2026
ae55652
fix(api): remove envelope unwrapping for endpoints migrated to result…
Jun 25, 2026
47a75c0
fix(api): align all services with live envelope format and camelCase …
Jun 25, 2026
8595d8c
feat(community): mention system migration + My Mentions tab
Jun 28, 2026
748e4e4
feat(community): two-level reply tree, mention rendering, filter bar …
Jun 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11,128 changes: 9,859 additions & 1,269 deletions contracts/openapi.external.json

Large diffs are not rendered by default.

18,131 changes: 15,664 additions & 2,467 deletions contracts/openapi.internal.json

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions frontend/.stylelintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"//": "Minimal, focused config: ENFORCE the no-hardcoded-color rule (CLAUDE.md gotcha #7 / PERF001). Not the full standard ruleset — we don't want to flag pre-existing style nits, only hardcoded colors. All colors must be design tokens: var(--…) from libs/ui-kit/src/lib/styles/_palette.scss.",
"overrides": [
{
"files": ["**/*.scss"],
"customSyntax": "postcss-scss"
}
],
"rules": {
"color-no-hex": [
true,
{
"message": "No hardcoded hex colors. Use a design token: var(--…) from _palette.scss. Need a new color? Add it to _palette.scss first. (CLAUDE.md #7 / PERF001)"
}
],
"color-named": [
"never",
{
"message": "No named colors. Use a design token: var(--…) from _palette.scss. (CLAUDE.md #7 / PERF001)"
}
],
"function-disallowed-list": [
["hsl", "hsla"],
{
"message": "No raw hsl()/hsla(). Use a design token: var(--…), or rgba(var(--x-rgb), a). (CLAUDE.md #7 / PERF001)"
}
]
},
"ignoreFiles": [
"**/node_modules/**",
"**/dist/**",
"**/coverage/**",
"libs/ui-kit/src/lib/styles/_palette.scss"
]
}
61 changes: 61 additions & 0 deletions frontend/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## 📚 Full documentation lives in `../../cce-platform-docs/`

| Doc | When to read |
|---|---|
| `cce-platform-docs/technical/FRONTEND_GUIDE.md` | **Read before coding** — architecture, auth, i18n, feature anatomy |
| `cce-platform-docs/technical/CONVENTIONS.md` | Code patterns to match |
| `cce-platform-docs/technical/API_INTEGRATION.md` | HTTP layer, endpoints, envelope rules |
| `cce-platform-docs/agile/PROGRESS.md` | ⭐ Story status tracker — **update it after completing any story** |
| `cce-platform-docs/agile/stories/` | Acceptance criteria per user story |
| `cce-platform-docs/reference/users.md` | Test credentials |

## Commands (run from this directory, always pnpm)

```bash
pnpm nx serve web-portal # public app :4200
pnpm nx serve admin-cms # admin app :4201
pnpm nx build <app>
pnpm nx test <app> --watch=false # add --testFile=<path> for a single spec
pnpm nx lint <app>
pnpm nx run-many -t build,lint,test --projects=web-portal,admin-cms # full smoke
```

## Critical gotchas (cause real bugs)

1. **Envelope auto-unwrap (admin-cms):** any response from a URL containing `/api/admin/` is unwrapped by `apiEnvelopeInterceptor` — services type the **inner** data shape and must NOT access `.data`. Web-portal endpoints are NOT unwrapped.
2. **i18n:** translation keys must exist in BOTH `libs/i18n/src/lib/i18n/ar.json` and `en.json`. Default language is Arabic — always verify RTL (logical CSS properties, icon flips).
3. **Auth:** access token in a signal (memory), refresh token in `localStorage['cce_rt']`. `tokenInterceptor` skips `/api/auth/*`. Interceptor order differs per app — see FRONTEND_GUIDE §4.3.
4. **Style:** standalone components + signals + `OnPush` + new control flow (`@if`/`@for`) only. Material form fields are globally `outline`. Selector prefix `cce-`.
5. **Services return `Result<T>`** (`{ok:true,value}|{ok:false,error}`) — components never try/catch; map `error.kind` to `('errors.'+kind) | transloco`.
6. **Definition of done includes updating** `cce-platform-docs/agile/PROGRESS.md` (status + dated log entry).
7. **NEVER hardcode a color.** No hex (`#fff`), named (`white`), `rgb()`, or `hsl()` literals in any `.scss`/`.ts`/`.html` — not even "just this once". All colors MUST be design tokens. The single source of truth is `libs/ui-kit/src/lib/styles/_palette.scss`; it emits CSS custom properties consumed everywhere as `var(--…)`. Use `var(--neutrals--50)`, `var(--color-brand)`, etc. For opacity use the auto-derived channels: `rgba(var(--color-brand-rgb), 0.5)`. Need a color the tokens don't have? Add it to `_palette.scss` first, then reference the var — never inline the literal. This applies to every AI agent. (Only `rgba(0,0,0,…)`/`rgba(255,255,255,…)` pure black/white scrims are tolerated, and even those prefer a token.) **Enforced** in `.scss` by stylelint (`.stylelintrc.json`): run `pnpm stylelint` or `pnpm nx run-many -t stylelint`. Inline `styles:` in `.ts` are not linted — keep them token-only by hand.

## CSS & styling rules (read before touching any `.scss`)

**Stack:** Angular Material (M2 theme) + token-driven SCSS (`cce-*` BEM). **No Tailwind** — it was removed; do NOT reintroduce utility classes (`flex`, `p-4`, `bg-primary`). No third styling paradigm.

**Tokens & theme**
- All design values flow from `libs/ui-kit/src/lib/styles/_palette.scss` → `_css-vars.scss` (emits CSS vars + auto-derived `--x-rgb` channels) → `_dga-theme.scss` (Material M2 theme). To rebrand, edit `_palette.scss` only.
- Theme is **M2**. Do NOT add an M3 prebuilt theme (e.g. `prebuilt-themes/*.css`) — it conflicts and bloats. `--mat-sys-*` tokens are shimmed to the palette in `_css-vars.scss`; use those, don't reintroduce a prebuilt.

**Performance (these caused real wins/regressions — keep them)**
- **Honor reduced-motion:** a global `prefers-reduced-motion` guard lives in `cce-theme`. New continuously-running (`infinite`) animations must be acceptable when neutralised; pause off-screen ones.
- **Blur is expensive:** avoid `backdrop-filter`/`filter: blur()` on large or scrolling surfaces; keep radius ≤ ~10px (shared glass = `--cce-fancy-glass-blur`). A radial-gradient is already soft — don't stack a big blur on it.
- **Never** `background-attachment: fixed` (full repaint per scroll frame).
- **Never** `transition: all` — list explicit compositor-friendly props (`transform`, `opacity`, `box-shadow`, `border-color`, …); prefer animating `transform`/`opacity`.
- Use `content-visibility: auto` + `contain-intrinsic-size` on repeated below-the-fold blocks (list cards already do).
- Feature-only CSS (e.g. Quill) must NOT be global — ship it as a lazy bundle (see `project.json` `styles` + `cce-rich-text-editor` on-demand load), not in `styles.scss`.

**Architecture truths (don't waste effort fighting these)**
- Component styles are **automatically route-split** (lazy chunks) — do NOT try to "move page CSS out of the global bundle"; it's already isolated. The global `styles.css` is Material theme + `_fancy`/`_admin-polish` only.
- SCSS `@mixin`/`@extend` does **NOT** reduce shipped bytes (component styles are isolated; mixins re-emit per component). Dedup is a **maintainability** win, not a size one. The only real size lever for a heavy page is **splitting it into smaller sub-components**, not mangling its CSS.
- Keep a component `.scss` under the **20KB** budget (`anyComponentStyle`); if a page is legitimately larger (rich landing page), that's a *warning*, not a failure — split into section components rather than obfuscate.

**Workflow — before calling CSS work done**
- Run `pnpm nx run-many -t stylelint` (color rule) **and** `-t build` (size budgets: `styles` bundle + `anyComponentStyle`). Both must pass.
- Verify **RTL** (logical properties: `margin-inline`, `inset-inline-*`; flip directional icons).
- Keep selector prefix `cce-`; avoid new `::ng-deep` and `!important` (existing debt — don't add to it).
6 changes: 5 additions & 1 deletion frontend/apps/admin-cms/jest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,14 @@ export default {
{
tsconfig: '<rootDir>/tsconfig.spec.json',
stringifyContentPathRegex: '\\.(html|svg)$',
// Material 21+ entry points are package-exports only; ts-jest's CJS
// type-checker can't resolve them. Transpile-only — Jest's resolver
// handles exports maps at runtime.
isolatedModules: true,
},
],
},
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$|.*@jsverse)'],
snapshotSerializers: [
'jest-preset-angular/build/serializers/no-ng-attributes',
'jest-preset-angular/build/serializers/ng-snapshot',
Expand Down
26 changes: 21 additions & 5 deletions frontend/apps/admin-cms/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,31 @@
"output": "assets/i18n"
}
],
"styles": ["apps/admin-cms/src/styles.scss"],
"styles": [
"apps/admin-cms/src/styles.scss",
{ "input": "node_modules/quill/dist/quill.core.css", "bundleName": "quill", "inject": false },
{ "input": "node_modules/quill/dist/quill.snow.css", "bundleName": "quill", "inject": false }
],
"scripts": []
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "500kb",
"maximumError": "1mb"
"maximumWarning": "1mb",
"maximumError": "2mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "4kb",
"maximumError": "8kb"
"maximumWarning": "8kb",
"maximumError": "16kb"
},
{
"type": "bundle",
"name": "styles",
"maximumWarning": "140kb",
"maximumError": "170kb"
}
],
"outputHashing": "all"
Expand Down Expand Up @@ -84,6 +94,12 @@
"lint": {
"executor": "@nx/eslint:lint"
},
"stylelint": {
"executor": "nx:run-commands",
"options": {
"command": "stylelint \"apps/admin-cms/**/*.scss\""
}
},
"test": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
Expand Down
17 changes: 6 additions & 11 deletions frontend/apps/admin-cms/proxy.conf.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
{
"/api": {
"target": "http://localhost:5002",
"secure": false,
"target": "https://cce-internal-api.runasp.net",
"secure": true,
"changeOrigin": true,
"logLevel": "warn"
},
"/auth": {
"target": "http://localhost:5002",
"secure": false,
"changeOrigin": true,
"logLevel": "warn"
},
"/dev": {
"target": "http://localhost:5002",
"secure": false,
"/hubs": {
"target": "https://cce-internal-api.runasp.net",
"secure": true,
"changeOrigin": true,
"ws": true,
"logLevel": "warn"
}
}
Loading
Loading