@elementar-rt/components 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,14 +9,14 @@ class StatCardComponent {
9
9
  trendLabel = input('vs last period', ...(ngDevMode ? [{ debugName: "trendLabel" }] : /* istanbul ignore next */ []));
10
10
  icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
11
11
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: StatCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: StatCardComponent, isStandalone: true, selector: "emr-stat-card", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, trend: { classPropertyName: "trend", publicName: "trend", isSignal: true, isRequired: false, transformFunction: null }, trendValue: { classPropertyName: "trendValue", publicName: "trendValue", isSignal: true, isRequired: false, transformFunction: null }, trendLabel: { classPropertyName: "trendLabel", publicName: "trendLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-trend": "trend()" }, classAttribute: "emr-stat-card" }, exportAs: ["emrStatCard"], ngImport: i0, template: "<div class=\"sc-header\">\n <span class=\"sc-label\">{{ label() }}</span>\n @if (icon()) {\n <span class=\"sc-icon\">{{ icon() }}</span>\n } @else {\n <ng-content select=\"[emrStatCardIcon]\"/>\n }\n</div>\n\n<div class=\"sc-value\">{{ value() }}</div>\n\n<ng-content select=\"emr-micro-chart,[emrStatCardChart]\"/>\n\n@if (trendValue()) {\n <div class=\"sc-trend\">\n <span class=\"sc-trend-arrow\">\n @if (trend() === 'up') { \u25B2 }\n @else if (trend() === 'down') { \u25BC }\n @else { \u2014 }\n </span>\n <span class=\"sc-trend-value\">{{ trendValue() }}</span>\n <span class=\"sc-trend-label\">{{ trendLabel() }}</span>\n </div>\n}\n\n<ng-content/>\n", styles: [":host{--emr-sc-bg: var(--color-surface-container-low);--emr-sc-border-radius: 1.5rem;--emr-sc-padding: calc(var(--spacing, .25rem) * 5);--emr-sc-shadow: 0 1px 3px var(--color-shadow);--emr-sc-value-size: 1.875rem;--emr-sc-label-size: .75rem;--emr-sc-trend-up-color: var(--color-green);--emr-sc-trend-down-color: var(--color-red);--emr-sc-trend-neutral-color: var(--color-on-surface-variant);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);background:var(--emr-sc-bg);border-radius:var(--emr-sc-border-radius);padding:var(--emr-sc-padding);box-shadow:var(--emr-sc-shadow)}@supports (color: color-mix(in lab,red,red)){:host{--emr-sc-shadow: 0 1px 3px color-mix(in srgb, var(--color-shadow) 8%, transparent)}}.sc-header{display:flex;align-items:center;justify-content:space-between}.sc-label{font-size:var(--emr-sc-label-size);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-on-surface-variant)}.sc-icon{font-size:calc(var(--spacing, .25rem) * 5);color:var(--color-on-surface-variant)}.sc-value{font-size:var(--emr-sc-value-size);font-weight:700;color:var(--color-on-surface);line-height:1.1;font-variant-numeric:tabular-nums}.sc-trend{display:flex;align-items:center;gap:var(--spacing, .25rem);font-size:.75rem;margin-top:var(--spacing, .25rem)}.sc-trend-arrow{font-size:.65rem}:host([data-trend=up]) .sc-trend-arrow{color:var(--emr-sc-trend-up-color)}:host([data-trend=down]) .sc-trend-arrow{color:var(--emr-sc-trend-down-color)}:host([data-trend=neutral]) .sc-trend-arrow{color:var(--emr-sc-trend-neutral-color)}.sc-trend-value{font-weight:600}:host([data-trend=up]) .sc-trend-value{color:var(--emr-sc-trend-up-color)}:host([data-trend=down]) .sc-trend-value{color:var(--emr-sc-trend-down-color)}.sc-trend-label{color:var(--color-on-surface-variant)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: StatCardComponent, isStandalone: true, selector: "emr-stat-card", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, trend: { classPropertyName: "trend", publicName: "trend", isSignal: true, isRequired: false, transformFunction: null }, trendValue: { classPropertyName: "trendValue", publicName: "trendValue", isSignal: true, isRequired: false, transformFunction: null }, trendLabel: { classPropertyName: "trendLabel", publicName: "trendLabel", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-trend": "trend()" }, classAttribute: "emr-stat-card" }, exportAs: ["emrStatCard"], ngImport: i0, template: "<div class=\"sc-header\">\n <span class=\"sc-label\">{{ label() }}</span>\n @if (icon()) {\n <span class=\"sc-icon\">{{ icon() }}</span>\n } @else {\n <ng-content select=\"[emrStatCardIcon]\"/>\n }\n</div>\n\n<div class=\"sc-value\">{{ value() }}</div>\n\n<ng-content select=\"emr-micro-chart,[emrStatCardChart]\"/>\n\n@if (trendValue()) {\n <div class=\"sc-trend\">\n <span class=\"sc-trend-arrow\">\n @if (trend() === 'up') { \u25B2 }\n @else if (trend() === 'down') { \u25BC }\n @else { \u2014 }\n </span>\n <span class=\"sc-trend-value\">{{ trendValue() }}</span>\n <span class=\"sc-trend-label\">{{ trendLabel() }}</span>\n </div>\n}\n\n<ng-content/>\n", styles: [":host{--emr-sc-bg: var(--color-surface-container-low);--emr-sc-border-radius: 1.5rem;--emr-sc-padding: calc(var(--spacing, .25rem) * 5);--emr-sc-shadow: 0 1px 3px var(--color-shadow);--emr-sc-value-size: 1.875rem;--emr-sc-label-size: .75rem;--emr-sc-trend-up-color: var(--color-green);--emr-sc-trend-down-color: var(--color-red);--emr-sc-trend-neutral-color: var(--color-on-surface-variant);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);background:var(--emr-sc-bg);border-radius:var(--emr-sc-border-radius);padding:var(--emr-sc-padding);box-shadow:var(--emr-sc-shadow)}@supports (color: color-mix(in lab,red,red)){:host{--emr-sc-shadow: 0 1px 3px color-mix(in srgb, var(--color-shadow) 8%, transparent)}}.sc-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}.sc-label{font-size:var(--emr-sc-label-size);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-on-surface-variant);min-width:0;overflow-wrap:break-word}.sc-icon{flex-shrink:0;font-size:calc(var(--spacing, .25rem) * 5);color:var(--color-on-surface-variant)}.sc-value{font-size:var(--emr-sc-value-size);font-weight:700;color:var(--color-on-surface);line-height:1.1;font-variant-numeric:tabular-nums;white-space:var(--emr-sc-value-white-space, nowrap);min-width:0}.sc-trend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing, .25rem);font-size:.75rem;margin-top:var(--spacing, .25rem)}.sc-trend-arrow{font-size:.65rem}:host([data-trend=up]) .sc-trend-arrow{color:var(--emr-sc-trend-up-color)}:host([data-trend=down]) .sc-trend-arrow{color:var(--emr-sc-trend-down-color)}:host([data-trend=neutral]) .sc-trend-arrow{color:var(--emr-sc-trend-neutral-color)}.sc-trend-value{font-weight:600;white-space:nowrap}:host([data-trend=up]) .sc-trend-value{color:var(--emr-sc-trend-up-color)}:host([data-trend=down]) .sc-trend-value{color:var(--emr-sc-trend-down-color)}.sc-trend-label{color:var(--color-on-surface-variant)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] });
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: StatCardComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ selector: 'emr-stat-card', exportAs: 'emrStatCard', host: {
17
17
  'class': 'emr-stat-card',
18
18
  '[attr.data-trend]': 'trend()',
19
- }, template: "<div class=\"sc-header\">\n <span class=\"sc-label\">{{ label() }}</span>\n @if (icon()) {\n <span class=\"sc-icon\">{{ icon() }}</span>\n } @else {\n <ng-content select=\"[emrStatCardIcon]\"/>\n }\n</div>\n\n<div class=\"sc-value\">{{ value() }}</div>\n\n<ng-content select=\"emr-micro-chart,[emrStatCardChart]\"/>\n\n@if (trendValue()) {\n <div class=\"sc-trend\">\n <span class=\"sc-trend-arrow\">\n @if (trend() === 'up') { \u25B2 }\n @else if (trend() === 'down') { \u25BC }\n @else { \u2014 }\n </span>\n <span class=\"sc-trend-value\">{{ trendValue() }}</span>\n <span class=\"sc-trend-label\">{{ trendLabel() }}</span>\n </div>\n}\n\n<ng-content/>\n", styles: [":host{--emr-sc-bg: var(--color-surface-container-low);--emr-sc-border-radius: 1.5rem;--emr-sc-padding: calc(var(--spacing, .25rem) * 5);--emr-sc-shadow: 0 1px 3px var(--color-shadow);--emr-sc-value-size: 1.875rem;--emr-sc-label-size: .75rem;--emr-sc-trend-up-color: var(--color-green);--emr-sc-trend-down-color: var(--color-red);--emr-sc-trend-neutral-color: var(--color-on-surface-variant);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);background:var(--emr-sc-bg);border-radius:var(--emr-sc-border-radius);padding:var(--emr-sc-padding);box-shadow:var(--emr-sc-shadow)}@supports (color: color-mix(in lab,red,red)){:host{--emr-sc-shadow: 0 1px 3px color-mix(in srgb, var(--color-shadow) 8%, transparent)}}.sc-header{display:flex;align-items:center;justify-content:space-between}.sc-label{font-size:var(--emr-sc-label-size);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-on-surface-variant)}.sc-icon{font-size:calc(var(--spacing, .25rem) * 5);color:var(--color-on-surface-variant)}.sc-value{font-size:var(--emr-sc-value-size);font-weight:700;color:var(--color-on-surface);line-height:1.1;font-variant-numeric:tabular-nums}.sc-trend{display:flex;align-items:center;gap:var(--spacing, .25rem);font-size:.75rem;margin-top:var(--spacing, .25rem)}.sc-trend-arrow{font-size:.65rem}:host([data-trend=up]) .sc-trend-arrow{color:var(--emr-sc-trend-up-color)}:host([data-trend=down]) .sc-trend-arrow{color:var(--emr-sc-trend-down-color)}:host([data-trend=neutral]) .sc-trend-arrow{color:var(--emr-sc-trend-neutral-color)}.sc-trend-value{font-weight:600}:host([data-trend=up]) .sc-trend-value{color:var(--emr-sc-trend-up-color)}:host([data-trend=down]) .sc-trend-value{color:var(--emr-sc-trend-down-color)}.sc-trend-label{color:var(--color-on-surface-variant)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
19
+ }, template: "<div class=\"sc-header\">\n <span class=\"sc-label\">{{ label() }}</span>\n @if (icon()) {\n <span class=\"sc-icon\">{{ icon() }}</span>\n } @else {\n <ng-content select=\"[emrStatCardIcon]\"/>\n }\n</div>\n\n<div class=\"sc-value\">{{ value() }}</div>\n\n<ng-content select=\"emr-micro-chart,[emrStatCardChart]\"/>\n\n@if (trendValue()) {\n <div class=\"sc-trend\">\n <span class=\"sc-trend-arrow\">\n @if (trend() === 'up') { \u25B2 }\n @else if (trend() === 'down') { \u25BC }\n @else { \u2014 }\n </span>\n <span class=\"sc-trend-value\">{{ trendValue() }}</span>\n <span class=\"sc-trend-label\">{{ trendLabel() }}</span>\n </div>\n}\n\n<ng-content/>\n", styles: [":host{--emr-sc-bg: var(--color-surface-container-low);--emr-sc-border-radius: 1.5rem;--emr-sc-padding: calc(var(--spacing, .25rem) * 5);--emr-sc-shadow: 0 1px 3px var(--color-shadow);--emr-sc-value-size: 1.875rem;--emr-sc-label-size: .75rem;--emr-sc-trend-up-color: var(--color-green);--emr-sc-trend-down-color: var(--color-red);--emr-sc-trend-neutral-color: var(--color-on-surface-variant);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);background:var(--emr-sc-bg);border-radius:var(--emr-sc-border-radius);padding:var(--emr-sc-padding);box-shadow:var(--emr-sc-shadow)}@supports (color: color-mix(in lab,red,red)){:host{--emr-sc-shadow: 0 1px 3px color-mix(in srgb, var(--color-shadow) 8%, transparent)}}.sc-header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}.sc-label{font-size:var(--emr-sc-label-size);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-on-surface-variant);min-width:0;overflow-wrap:break-word}.sc-icon{flex-shrink:0;font-size:calc(var(--spacing, .25rem) * 5);color:var(--color-on-surface-variant)}.sc-value{font-size:var(--emr-sc-value-size);font-weight:700;color:var(--color-on-surface);line-height:1.1;font-variant-numeric:tabular-nums;white-space:var(--emr-sc-value-white-space, nowrap);min-width:0}.sc-trend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing, .25rem);font-size:.75rem;margin-top:var(--spacing, .25rem)}.sc-trend-arrow{font-size:.65rem}:host([data-trend=up]) .sc-trend-arrow{color:var(--emr-sc-trend-up-color)}:host([data-trend=down]) .sc-trend-arrow{color:var(--emr-sc-trend-down-color)}:host([data-trend=neutral]) .sc-trend-arrow{color:var(--emr-sc-trend-neutral-color)}.sc-trend-value{font-weight:600;white-space:nowrap}:host([data-trend=up]) .sc-trend-value{color:var(--emr-sc-trend-up-color)}:host([data-trend=down]) .sc-trend-value{color:var(--emr-sc-trend-down-color)}.sc-trend-label{color:var(--color-on-surface-variant)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
20
20
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], trend: [{ type: i0.Input, args: [{ isSignal: true, alias: "trend", required: false }] }], trendValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendValue", required: false }] }], trendLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendLabel", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }] } });
21
21
 
22
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"elementar-rt-components-stat-card.mjs","sources":["../../../projects/components/stat-card/src/stat-card/stat-card.component.ts","../../../projects/components/stat-card/src/stat-card/stat-card.component.html","../../../projects/components/stat-card/elementar-rt-components-stat-card.ts"],"sourcesContent":["import { Component, input, numberAttribute } from '@angular/core';\n\nexport type StatCardTrend = 'up' | 'down' | 'neutral';\n\n@Component({\n selector: 'emr-stat-card',\n exportAs: 'emrStatCard',\n templateUrl: './stat-card.component.html',\n styleUrl: './stat-card.component.scss',\n host: {\n 'class': 'emr-stat-card',\n '[attr.data-trend]': 'trend()',\n }\n})\nexport class StatCardComponent {\n label = input('');\n value = input('');\n trend = input<StatCardTrend>('neutral');\n trendValue = input('');\n trendLabel = input('vs last period');\n icon = input('');\n}\n","<div class=\"sc-header\">\n <span class=\"sc-label\">{{ label() }}</span>\n @if (icon()) {\n <span class=\"sc-icon\">{{ icon() }}</span>\n } @else {\n <ng-content select=\"[emrStatCardIcon]\"/>\n }\n</div>\n\n<div class=\"sc-value\">{{ value() }}</div>\n\n<ng-content select=\"emr-micro-chart,[emrStatCardChart]\"/>\n\n@if (trendValue()) {\n <div class=\"sc-trend\">\n <span class=\"sc-trend-arrow\">\n @if (trend() === 'up') { ▲ }\n @else if (trend() === 'down') { ▼ }\n @else { — }\n </span>\n <span class=\"sc-trend-value\">{{ trendValue() }}</span>\n <span class=\"sc-trend-label\">{{ trendLabel() }}</span>\n </div>\n}\n\n<ng-content/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAca,iBAAiB,CAAA;AAC5B,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,KAAK,GAAG,KAAK,CAAgB,SAAS,4EAAC;AACvC,IAAA,UAAU,GAAG,KAAK,CAAC,EAAE,iFAAC;AACtB,IAAA,UAAU,GAAG,KAAK,CAAC,gBAAgB,iFAAC;AACpC,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;wGANL,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,o7BCd9B,0rBA0BA,EAAA,MAAA,EAAA,CAAA,q1DAAA,CAAA,EAAA,CAAA;;4FDZa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;+BACE,eAAe,EAAA,QAAA,EACf,aAAa,EAAA,IAAA,EAGjB;AACJ,wBAAA,OAAO,EAAE,eAAe;AACxB,wBAAA,mBAAmB,EAAE,SAAS;AAC/B,qBAAA,EAAA,QAAA,EAAA,0rBAAA,EAAA,MAAA,EAAA,CAAA,q1DAAA,CAAA,EAAA;;;AEZH;;AAEG;;"}
1
+ {"version":3,"file":"elementar-rt-components-stat-card.mjs","sources":["../../../projects/components/stat-card/src/stat-card/stat-card.component.ts","../../../projects/components/stat-card/src/stat-card/stat-card.component.html","../../../projects/components/stat-card/elementar-rt-components-stat-card.ts"],"sourcesContent":["import { Component, input, numberAttribute } from '@angular/core';\n\nexport type StatCardTrend = 'up' | 'down' | 'neutral';\n\n@Component({\n selector: 'emr-stat-card',\n exportAs: 'emrStatCard',\n templateUrl: './stat-card.component.html',\n styleUrl: './stat-card.component.scss',\n host: {\n 'class': 'emr-stat-card',\n '[attr.data-trend]': 'trend()',\n }\n})\nexport class StatCardComponent {\n label = input('');\n value = input('');\n trend = input<StatCardTrend>('neutral');\n trendValue = input('');\n trendLabel = input('vs last period');\n icon = input('');\n}\n","<div class=\"sc-header\">\n <span class=\"sc-label\">{{ label() }}</span>\n @if (icon()) {\n <span class=\"sc-icon\">{{ icon() }}</span>\n } @else {\n <ng-content select=\"[emrStatCardIcon]\"/>\n }\n</div>\n\n<div class=\"sc-value\">{{ value() }}</div>\n\n<ng-content select=\"emr-micro-chart,[emrStatCardChart]\"/>\n\n@if (trendValue()) {\n <div class=\"sc-trend\">\n <span class=\"sc-trend-arrow\">\n @if (trend() === 'up') { ▲ }\n @else if (trend() === 'down') { ▼ }\n @else { — }\n </span>\n <span class=\"sc-trend-value\">{{ trendValue() }}</span>\n <span class=\"sc-trend-label\">{{ trendLabel() }}</span>\n </div>\n}\n\n<ng-content/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAca,iBAAiB,CAAA;AAC5B,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,KAAK,GAAG,KAAK,CAAC,EAAE,4EAAC;AACjB,IAAA,KAAK,GAAG,KAAK,CAAgB,SAAS,4EAAC;AACvC,IAAA,UAAU,GAAG,KAAK,CAAC,EAAE,iFAAC;AACtB,IAAA,UAAU,GAAG,KAAK,CAAC,gBAAgB,iFAAC;AACpC,IAAA,IAAI,GAAG,KAAK,CAAC,EAAE,2EAAC;wGANL,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,o7BCd9B,0rBA0BA,EAAA,MAAA,EAAA,CAAA,+gEAAA,CAAA,EAAA,CAAA;;4FDZa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;+BACE,eAAe,EAAA,QAAA,EACf,aAAa,EAAA,IAAA,EAGjB;AACJ,wBAAA,OAAO,EAAE,eAAe;AACxB,wBAAA,mBAAmB,EAAE,SAAS;AAC/B,qBAAA,EAAA,QAAA,EAAA,0rBAAA,EAAA,MAAA,EAAA,CAAA,+gEAAA,CAAA,EAAA;;;AEZH;;AAEG;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elementar-rt/components",
3
3
  "description": "Elementar RT Components - Free and open source Angular UI components based on Material 3 and Tailwind",
4
- "version": "0.7.0",
4
+ "version": "0.7.2",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/randrost/elementar-rt.git"
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "ng-add": {
5
+ "description": "Add elementar-rt/components.",
6
+ "factory": "./ng-add/index#ngAdd",
7
+ "schema": "./ng-add/schema.json"
8
+ },
9
+ "ng-add-setup-project": {
10
+ "private": true,
11
+ "description": "Sets up the project after dependencies have been installed",
12
+ "factory": "./ng-add/setup-project",
13
+ "schema": "./ng-add/schema.json"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,2 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export declare function addFonts(): Rule;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.addFonts = addFonts;
13
+ const utility_1 = require("@schematics/angular/utility");
14
+ const MATERIAL_SYMBOLS_HREF = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block';
15
+ const OPEN_SANS_HREF = 'https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap';
16
+ function buildLinkTag(href) {
17
+ return `<link rel="stylesheet" href="${href}">`;
18
+ }
19
+ function insertIntoHead(html, tags) {
20
+ // If no <head>, just return unchanged
21
+ const headCloseIndex = html.indexOf('</head>');
22
+ if (headCloseIndex === -1) {
23
+ return html;
24
+ }
25
+ // Compute insertion position just before </head>
26
+ const before = html.slice(0, headCloseIndex);
27
+ const after = html.slice(headCloseIndex);
28
+ // Ensure newline separation
29
+ const prefix = before.endsWith('\n') ? '' : '\n';
30
+ const contentToInsert = tags.join('\n');
31
+ return `${before}${prefix}${contentToInsert}\n${after}`;
32
+ }
33
+ function addFonts() {
34
+ return (tree, context) => __awaiter(this, void 0, void 0, function* () {
35
+ context.logger.log('info', `✅ Add Google Fonts links to index.html`);
36
+ const workspace = yield (0, utility_1.readWorkspace)(tree);
37
+ for (const [name, project] of workspace.projects) {
38
+ // Target only application projects with a sourceRoot
39
+ const sourceRoot = project.sourceRoot || 'src';
40
+ const indexHtmlPath = `${sourceRoot}/index.html`;
41
+ if (!tree.exists(indexHtmlPath)) {
42
+ continue;
43
+ }
44
+ const buffer = tree.read(indexHtmlPath);
45
+ if (!buffer) {
46
+ continue;
47
+ }
48
+ const html = buffer.toString('utf-8');
49
+ const needsMaterial = !html.includes(MATERIAL_SYMBOLS_HREF);
50
+ const needsOpenSans = !html.includes(OPEN_SANS_HREF);
51
+ if (!needsMaterial && !needsOpenSans) {
52
+ continue;
53
+ }
54
+ const tags = [];
55
+ if (needsMaterial) {
56
+ tags.push(buildLinkTag(MATERIAL_SYMBOLS_HREF));
57
+ }
58
+ if (needsOpenSans) {
59
+ tags.push(buildLinkTag(OPEN_SANS_HREF));
60
+ }
61
+ const updated = insertIntoHead(html, tags);
62
+ if (updated !== html) {
63
+ tree.overwrite(indexHtmlPath, updated);
64
+ context.logger.log('info', `⬆️ Updated ${indexHtmlPath} with Google Fonts links in project "${name}"`);
65
+ }
66
+ }
67
+ return tree;
68
+ });
69
+ }
70
+ //# sourceMappingURL=add-fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-fonts.js","sourceRoot":"","sources":["../../../../../projects/components/schematics/ng-add/actions/add-fonts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { Schema } from '../schema';
3
+ export declare function addStyles(options: Schema): Rule;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.addStyles = addStyles;
13
+ const path = require("path");
14
+ const schematics_1 = require("@angular-devkit/schematics");
15
+ const project_1 = require("../../utils/project");
16
+ const utility_1 = require("@schematics/angular/utility");
17
+ // import { workspaces, JsonArray } from '@angular-devkit/core';
18
+ // const BOOTSTRAP_CSS_FILEPATH = 'node_modules/elementar-rt/components/styles/themes/default.scss';
19
+ const SUPPORTED_BOOTSTRAP_STYLE_IMPORTS = {
20
+ '.sass': `
21
+ @use '@elementar-rt/components/styles/themes/default';
22
+ `,
23
+ '.scss': `
24
+ @use '@elementar-rt/components/styles/themes/default';
25
+ `,
26
+ };
27
+ function addStyles(options) {
28
+ // @ts-ignore
29
+ return (host, context) => __awaiter(this, void 0, void 0, function* () {
30
+ context.logger.log('info', `✅ Add styles`);
31
+ const workspace = yield (0, utility_1.readWorkspace)(host);
32
+ const projects = workspace.projects.entries();
33
+ let defaultProject = '';
34
+ for (const project of projects) {
35
+ if (project[1].sourceRoot === 'src') {
36
+ defaultProject = project[0];
37
+ }
38
+ }
39
+ const projectName = options.project || defaultProject;
40
+ const project = workspace.projects.get(projectName);
41
+ if (!project) {
42
+ throw new schematics_1.SchematicsException('Project not found');
43
+ }
44
+ const styleFilePath = (0, project_1.getProjectStyleFile)(project) || '';
45
+ const styleFileExtension = path.extname(styleFilePath);
46
+ // @ts-ignore
47
+ const styleFilePatch = SUPPORTED_BOOTSTRAP_STYLE_IMPORTS[styleFileExtension];
48
+ // found supported styles
49
+ if (styleFilePatch) {
50
+ return addElementarToStylesFile(styleFilePath, styleFilePatch);
51
+ }
52
+ else {
53
+ // // found some styles, but unsupported
54
+ // if (styleFileExtension !== '.css' && styleFileExtension !== '') {
55
+ // context.logger.warn(messages.unsupportedStyles(styleFilePath));
56
+ // }
57
+ //
58
+ yield (0, utility_1.writeWorkspace)(host, workspace);
59
+ }
60
+ });
61
+ }
62
+ function addElementarToStylesFile(styleFilePath, styleFilePatch) {
63
+ return (host) => {
64
+ const styleContent = host.read(styleFilePath).toString('utf-8');
65
+ const recorder = host.beginUpdate(styleFilePath);
66
+ recorder.insertRight(styleContent.length, styleFilePatch);
67
+ host.commitUpdate(recorder);
68
+ };
69
+ }
70
+ //# sourceMappingURL=add-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-styles.js","sourceRoot":"","sources":["../../../../../projects/components/schematics/ng-add/actions/add-styles.ts"],"names":[],"mappings":";;;;;;;;;;;AAkBA,8BAwCC;AA1DD,6BAA6B;AAC7B,2DAA+F;AAG/F,iDAA0D;AAC1D,yDAA4E;AAC5E,gEAAgE;AAEhE,oGAAoG;AACpG,MAAM,iCAAiC,GAAG;IACxC,OAAO,EAAE;;CAEV;IACC,OAAO,EAAE;;CAEV;CACA,CAAC;AAEF,SAAgB,SAAS,CAAC,OAAe;IACvC,aAAa;IACb,OAAO,CAAO,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE3C,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBACpC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC;QACtD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,gCAAmB,CAAC,mBAAmB,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,aAAa,GAAG,IAAA,6BAAmB,EAAC,OAAc,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAEvD,aAAa;QACb,MAAM,cAAc,GAAG,iCAAiC,CAAC,kBAAkB,CAAC,CAAC;QAE7E,yBAAyB;QACzB,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,wBAAwB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,oEAAoE;YACpE,oEAAoE;YACpE,IAAI;YACJ,EAAE;YACF,MAAM,IAAA,wBAAc,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,aAAqB,EAAE,cAAsB;IAC7E,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACjD,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { Schema } from './schema';
3
+ export declare function ngAdd(options: Schema): Rule;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ngAdd = ngAdd;
4
+ // import { readWorkspace } from '@schematics/angular/utility';
5
+ const package_config_1 = require("../utils/package-config");
6
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
7
+ const DEPENDENCIES = {
8
+ '@elementar-rt/components': '^0.6.54',
9
+ "@dicebear/collection": "^9.2.2",
10
+ "@dicebear/core": "^9.2.2",
11
+ "@iconify-json/circle-flags": "^1.2.10",
12
+ "@iconify-json/ph": "^1.2.2",
13
+ "@ngrx/signals": "^20.1.0",
14
+ "@ngrx/store": "^20.1.0",
15
+ "@tiptap/core": "2.10.2",
16
+ "@tiptap/extension-bubble-menu": "2.10.2",
17
+ "@tiptap/extension-code-block": "2.10.2",
18
+ "@tiptap/extension-dropcursor": "2.10.2",
19
+ "@tiptap/extension-floating-menu": "2.10.2",
20
+ "@tiptap/extension-history": "2.10.2",
21
+ "@tiptap/extension-horizontal-rule": "2.10.3",
22
+ "@tiptap/extension-image": "2.10.2",
23
+ "@tiptap/extension-link": "2.10.2",
24
+ "@tiptap/extension-list-item": "2.10.2",
25
+ "@tiptap/extension-ordered-list": "2.10.2",
26
+ "@tiptap/extension-placeholder": "2.10.2",
27
+ "@tiptap/extension-youtube": "2.10.2",
28
+ "@tiptap/pm": "2.10.2",
29
+ "@tiptap/starter-kit": "2.10.2",
30
+ "awesome-phonenumber": "^6.12.0",
31
+ "d3": "^7.9.0",
32
+ "echarts": "^5.5.0",
33
+ "emoji-toolkit": "^8.0.0",
34
+ "iconify-icon": "^3.0.2",
35
+ "libphonenumber-js": "^1.11.15",
36
+ "uuid": "^11.0.3",
37
+ "emojibase-data": "^16.0.2",
38
+ "@ctrl/tinycolor": "^4.1.0",
39
+ "shiki": "^3.12.0"
40
+ };
41
+ const DEV_DEPENDENCIES = {
42
+ '@tailwindcss/postcss': '^4.1.6',
43
+ 'autoprefixer': '^10.4.17',
44
+ 'postcss': '^8.5.2',
45
+ 'tailwindcss': '^4.1.6',
46
+ '@tailwindcss/typography': '^0.5.16',
47
+ };
48
+ function ngAdd(options) {
49
+ return (tree, context) => {
50
+ context.logger.log('info', `✅️ Running Schematics`);
51
+ if (!tree.exists('/package.json')) {
52
+ throw new Error('package.json is missing in this directory');
53
+ }
54
+ if (!tree.exists("/.postcssrc.json")) {
55
+ tree.create("/.postcssrc.json", `{
56
+ "plugins": {
57
+ "@tailwindcss/postcss": {}
58
+ }
59
+ }
60
+ `);
61
+ }
62
+ // Installing dependencies
63
+ // const angularLocalizeVersion = getPackageVersionFromPackageJson(tree, '@angular/localize', true)!;
64
+ // const angularCdkVersion = getPackageVersionFromPackageJson(tree, '@angular/cdk')!;
65
+ // const angularMaterialVersion = getPackageVersionFromPackageJson(tree, '@angular/material')!;
66
+ (0, package_config_1.addPackageToPackageJson)(tree, '@angular/localize', '^20.3.4', true);
67
+ (0, package_config_1.addPackageToPackageJson)(tree, '@angular/cdk', '^20.2.8');
68
+ (0, package_config_1.addPackageToPackageJson)(tree, '@angular/material', '^20.2.8');
69
+ for (const name in DEPENDENCIES) {
70
+ // @ts-ignore
71
+ (0, package_config_1.addPackageToPackageJson)(tree, name, DEPENDENCIES[name]);
72
+ }
73
+ for (const name in DEV_DEPENDENCIES) {
74
+ // @ts-ignore
75
+ (0, package_config_1.addPackageToPackageJson)(tree, name, DEV_DEPENDENCIES[name], true);
76
+ }
77
+ context.addTask(new tasks_1.RunSchematicTask('ng-add-setup-project', options), [
78
+ context.addTask(new tasks_1.NodePackageInstallTask()),
79
+ ]);
80
+ return tree;
81
+ };
82
+ }
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/components/schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export interface Schema {
2
+ project?: string;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../projects/components/schematics/ng-add/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "elementar-rt-ng-add",
4
+ "title": "elementar-rt components ng-add schematic",
5
+ "type": "object",
6
+ "properties": {
7
+ }
8
+ }
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { Schema } from './schema';
3
+ export default function ngAddSetupProject(options: Schema): Rule;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = ngAddSetupProject;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ const add_styles_1 = require("./actions/add-styles");
6
+ const add_fonts_1 = require("./actions/add-fonts");
7
+ function ngAddSetupProject(options) {
8
+ return (0, schematics_1.chain)([
9
+ (0, add_styles_1.addStyles)(options),
10
+ (0, add_fonts_1.addFonts)(),
11
+ // externalSchematic('@angular/localize', 'ng-add', options.project ? { project: options.project } : {}),
12
+ ]);
13
+ }
14
+ //# sourceMappingURL=setup-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-project.js","sourceRoot":"","sources":["../../../../projects/components/schematics/ng-add/setup-project.ts"],"names":[],"mappings":";;AAMA,oCAMC;AAZD,2DAAyD;AAGzD,qDAAiD;AACjD,mDAA+C;AAE/C,SAAwB,iBAAiB,CAAC,OAAe;IACvD,OAAO,IAAA,kBAAK,EAAC;QACX,IAAA,sBAAS,EAAC,OAAO,CAAC;QAClB,IAAA,oBAAQ,GAAE;QACV,yGAAyG;KAC1G,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ export declare function addPackageToPackageJson(tree: Tree, pkg: string, version: string, devDependency?: boolean): Tree;
3
+ export declare function getPackageVersionFromPackageJson(tree: Tree, name: string, includeDevDependencies?: boolean): string | null;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addPackageToPackageJson = addPackageToPackageJson;
4
+ exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
5
+ function sortObjectByKeys(obj) {
6
+ return Object.keys(obj)
7
+ .sort()
8
+ // @ts-ignore
9
+ .reduce((result, key) => (result[key] = obj[key]) && result, {});
10
+ }
11
+ function addPackageToPackageJson(tree, pkg, version, devDependency = false) {
12
+ if (tree.exists('package.json')) {
13
+ const sourceText = tree.read('package.json').toString('utf-8');
14
+ const json = JSON.parse(sourceText);
15
+ const dependenciesType = devDependency ? 'devDependencies' : 'dependencies';
16
+ const dependencies = json[dependenciesType] || {};
17
+ dependencies[pkg] = version;
18
+ json[dependenciesType] = sortObjectByKeys(dependencies);
19
+ tree.overwrite('package.json', JSON.stringify(json, null, 2));
20
+ }
21
+ return tree;
22
+ }
23
+ function getPackageVersionFromPackageJson(tree, name, includeDevDependencies = false) {
24
+ if (!tree.exists('package.json')) {
25
+ return null;
26
+ }
27
+ const packageJson = JSON.parse(tree.read('package.json').toString('utf8'));
28
+ if (packageJson.dependencies && packageJson.dependencies[name]) {
29
+ return packageJson.dependencies[name];
30
+ }
31
+ if (includeDevDependencies && packageJson.devDependencies && packageJson.devDependencies[name]) {
32
+ return packageJson.devDependencies[name];
33
+ }
34
+ return null;
35
+ }
36
+ //# sourceMappingURL=package-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-config.js","sourceRoot":"","sources":["../../../../projects/components/schematics/utils/package-config.ts"],"names":[],"mappings":";;AASA,0DAeC;AAED,4EAoBC;AA5CD,SAAS,gBAAgB,CAAC,GAA2B;IACnD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SACpB,IAAI,EAAE;QACP,aAAa;SACZ,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAAU,EAAE,GAAW,EAAE,OAAe,EAAE,aAAa,GAAG,KAAK;IACrG,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEpC,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAElD,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAExD,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,gCAAgC,CAC9C,IAAU,EACV,IAAY,EACZ,sBAAsB,GAAG,KAAK;IAE9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5E,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,OAAO,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,sBAAsB,IAAI,WAAW,CAAC,eAAe,IAAI,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/F,OAAO,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { workspaces } from '@angular-devkit/core';
2
+ /**
3
+ * Resolves options for the build target of the given project
4
+ */
5
+ export declare function getProjectTargetOptions(project: workspaces.ProjectDefinition, buildTarget: string): Record<string, import("@angular-devkit/core").JsonValue | undefined>;
6
+ /**
7
+ * Gets a style file with the given extension in a project and returns its path. If no
8
+ * extension is specified, any style file with a valid extension will be returned.
9
+ */
10
+ export declare function getProjectStyleFile(project: workspaces.ProjectDefinition, extension?: string): string | null;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProjectTargetOptions = getProjectTargetOptions;
4
+ exports.getProjectStyleFile = getProjectStyleFile;
5
+ const core_1 = require("@angular-devkit/core");
6
+ const schematics_1 = require("@angular-devkit/schematics");
7
+ // Regular expression that matches all possible Angular CLI default style files
8
+ const defaultStyleFileRegex = /styles\.(c|le|sc|sa)ss/;
9
+ // Regular expression that matches all files that have a proper stylesheet extension
10
+ const validStyleFileRegex = /\.(c|le|sc|sa)ss/;
11
+ /**
12
+ * Resolves options for the build target of the given project
13
+ */
14
+ function getProjectTargetOptions(project, buildTarget) {
15
+ const buildTargetObject = project.targets.get(buildTarget);
16
+ if (buildTargetObject && buildTargetObject.options) {
17
+ return buildTargetObject.options;
18
+ }
19
+ throw new schematics_1.SchematicsException(`Cannot determine project target configuration for: ${buildTarget}.`);
20
+ }
21
+ /**
22
+ * Gets a style file with the given extension in a project and returns its path. If no
23
+ * extension is specified, any style file with a valid extension will be returned.
24
+ */
25
+ function getProjectStyleFile(project, extension) {
26
+ const buildOptions = getProjectTargetOptions(project, 'build');
27
+ if (buildOptions['styles'] && Array.isArray(buildOptions['styles']) && buildOptions['styles'].length) {
28
+ // @ts-ignore
29
+ const styles = buildOptions['styles'].map((s) => (typeof s === 'string' ? s : s['input']));
30
+ // Look for the default style file that is generated for new projects by the Angular CLI. This
31
+ // default style file is usually called `styles.ext` unless it has been changed explicitly.
32
+ const defaultMainStylePath = styles.find((file) => extension ? file === `styles.${extension}` : defaultStyleFileRegex.test(file));
33
+ if (defaultMainStylePath) {
34
+ return (0, core_1.normalize)(defaultMainStylePath);
35
+ }
36
+ // If no default style file could be found, use the first style file that matches the given
37
+ // extension. If no extension specified explicitly, we look for any file with a valid style
38
+ // file extension.
39
+ const fallbackStylePath = styles.find((file) => extension ? file.endsWith(`.${extension}`) : validStyleFileRegex.test(file));
40
+ if (fallbackStylePath) {
41
+ return (0, core_1.normalize)(fallbackStylePath);
42
+ }
43
+ }
44
+ return null;
45
+ }
46
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../projects/components/schematics/utils/project.ts"],"names":[],"mappings":";;AAYA,0DAOC;AAMD,kDA8BC;AAvDD,+CAAiD;AACjD,2DAAiE;AAEjE,+EAA+E;AAC/E,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAEvD,oFAAoF;AACpF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAE/C;;GAEG;AACH,SAAgB,uBAAuB,CAAC,OAAqC,EAAE,WAAmB;IAChG,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3D,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACnD,OAAO,iBAAiB,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,gCAAmB,CAAC,sDAAsD,WAAW,GAAG,CAAC,CAAC;AACtG,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,OAAqC,EAAE,SAAkB;IAC3F,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE/D,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACrG,aAAa;QACb,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5F,8FAA8F;QAC9F,2FAA2F;QAC3F,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,SAAS,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9E,CAAC;QAEF,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,IAAA,gBAAS,EAAC,oBAAoB,CAAC,CAAC;QACzC,CAAC;QAED,2FAA2F;QAC3F,2FAA2F;QAC3F,kBAAkB;QAClB,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7C,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5E,CAAC;QAEF,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,IAAA,gBAAS,EAAC,iBAAiB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -34,7 +34,7 @@ interface AnnouncementState {
34
34
  announcement: Announcement | null;
35
35
  }
36
36
  declare const AnnouncementStore: _angular_core.Type<{
37
- announcement: _angular_core.Signal<Announcement | null>;
37
+ announcement: _ngrx_signals.DeepSignal<Announcement> | _angular_core.Signal<null>;
38
38
  show: (announcement: Announcement) => void;
39
39
  hide: () => void;
40
40
  } & _ngrx_signals.StateSource<{