@lucca-front/ng 17.0.0 → 17.0.1
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.
- package/button/button.component.d.ts +1 -2
- package/callout/callout-feedback-list/callout-feedback-list.component.d.ts +1 -2
- package/core/public-api.d.ts +1 -1
- package/core/tools/class.d.ts +11 -0
- package/esm2022/button/button.component.mjs +7 -8
- package/esm2022/callout/callout-feedback-list/callout-feedback-list.component.mjs +6 -7
- package/esm2022/core/public-api.mjs +2 -2
- package/esm2022/core/tools/class.mjs +75 -0
- package/esm2022/form-field/form-field.component.mjs +9 -10
- package/esm2022/inline-message/inline-message.component.mjs +7 -9
- package/esm2022/numeric-badge/numeric-badge.component.mjs +7 -8
- package/fesm2022/lucca-front-ng-button.mjs +6 -7
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +5 -6
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +73 -18
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +8 -9
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-inline-message.mjs +6 -8
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +6 -7
- package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
- package/form-field/form-field.component.d.ts +1 -2
- package/inline-message/inline-message.component.d.ts +1 -2
- package/numeric-badge/numeric-badge.component.d.ts +1 -2
- package/package.json +27 -27
- package/core/tools/ng-clazz.directive.d.ts +0 -7
- package/esm2022/core/tools/ng-clazz.directive.mjs +0 -21
- /package/{dockerRegistry-a64fee7f-1bfc-49ea-b07d-9ccbdbf6fd83.env → dockerRegistry-c6c91acb-1b7f-4177-ae0a-4c08be89fe3d.env} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-core.mjs","sources":["../../../packages/ng/core/date/date-granularity.enum.ts","../../../packages/ng/core/date/date-adapter.class.ts","../../../packages/ng/core/date/native/native-date.option.ts","../../../packages/ng/core/date/native/native-date.adapter.ts","../../../packages/ng/core/date/string/string-date.adapter.ts","../../../packages/ng/core/event/on-close.subscriber.ts","../../../packages/ng/core/event/on-open.subscriber.ts","../../../packages/ng/core/event/on-scroll-bottom.subscriber.ts","../../../packages/ng/core/translate/intl.model.ts","../../../packages/ng/core/id/id.generator.ts","../../../packages/ng/core/portal/portal.directive.ts","../../../packages/ng/core/tools/ng-clazz.directive.ts","../../../packages/ng/core/lucca-front-ng-core.ts"],"sourcesContent":["export enum ELuDateGranularity {\n\tday = 'day',\n\tmonth = 'month',\n\tyear = 'year',\n\tdecade = 'decade',\n}\n","import { ILuDateAdapter } from './date-adapter.interface';\nimport { ELuDateGranularity } from './date-granularity.enum';\n\nexport abstract class ALuDateAdapter<D> implements ILuDateAdapter<D> {\n\tabstract forge(year: number, month: number, date: number): D;\n\tabstract forgeToday(): D;\n\tabstract forgeInvalid(): D;\n\tabstract isValid(d: D): boolean;\n\tcompare(a: D, b: D, granularity: ELuDateGranularity): number {\n\t\tif (!a || !b || !this.isValid(a) || !this.isValid(b)) {\n\t\t\tthrow new Error('you must provide valid and not null dates to be compared');\n\t\t}\n\t\tconst aDecade = Math.floor(this.getYear(a) / 10);\n\t\tconst bDecade = Math.floor(this.getYear(b) / 10);\n\t\tif (aDecade < bDecade) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aDecade > bDecade) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (granularity === ELuDateGranularity.decade) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst aYear = this.getYear(a);\n\t\tconst bYear = this.getYear(b);\n\t\tif (aYear < bYear) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aYear > bYear) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (granularity === ELuDateGranularity.year) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst aMonth = this.getMonth(a);\n\t\tconst bMonth = this.getMonth(b);\n\t\tif (aMonth < bMonth) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aMonth > bMonth) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (granularity === ELuDateGranularity.month) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst aDate = this.getDate(a);\n\t\tconst bDate = this.getDate(b);\n\t\tif (aDate < bDate) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aDate > bDate) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (granularity === ELuDateGranularity.day) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn 0;\n\t}\n\tabstract isParsable(text: string, granularity?: ELuDateGranularity): boolean;\n\tabstract parse(text: string, granularity?: ELuDateGranularity): D;\n\tabstract format(d: D, format: string): string;\n\tabstract clone(d: D): D;\n\n\tabstract getYear(d: D): number;\n\tabstract getMonth(d: D): number;\n\tabstract getDate(d: D): number;\n\tabstract getDay(d: D): number;\n\n\tabstract add(d: D, count: number, granularity: ELuDateGranularity): D;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface ILuNativeDateAdapterOptions {\n\tuseUtc?: boolean;\n}\nexport const luDefaultNativeDateAdapterOptions: ILuNativeDateAdapterOptions = {\n\tuseUtc: false,\n};\nexport const LU_NATIVE_DATE_ADAPTER_OPTIONS = new InjectionToken<ILuNativeDateAdapterOptions>('Native date adapter options');\n","import { formatDate, FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport { Inject, Injectable, LOCALE_ID, Optional } from '@angular/core';\nimport { ALuDateAdapter } from '../date-adapter.class';\nimport { ILuDateAdapter } from '../date-adapter.interface';\nimport { ELuDateGranularity } from '../date-granularity.enum';\nimport { ILuNativeDateAdapterOptions, luDefaultNativeDateAdapterOptions, LU_NATIVE_DATE_ADAPTER_OPTIONS } from './native-date.option';\n\n@Injectable()\nexport class LuNativeDateAdapter extends ALuDateAdapter<Date> implements ILuDateAdapter<Date> {\n\tprivate _regex = /[/,.\\-\\s]/i;\n\tprivate _order = {\n\t\tdate: 0,\n\t\tmonth: 1,\n\t\tyear: 2,\n\t};\n\tconstructor(\n\t\t@Inject(LOCALE_ID) private _locale: string,\n\t\t@Inject(LU_NATIVE_DATE_ADAPTER_OPTIONS)\n\t\t@Optional()\n\t\tprivate _options: ILuNativeDateAdapterOptions,\n\t) {\n\t\tsuper();\n\t\tthis._options = this._options || luDefaultNativeDateAdapterOptions;\n\t\tthis.initOrder();\n\t}\n\tprivate initOrder() {\n\t\tconst format = getLocaleDateFormat(this._locale, FormatWidth.Short);\n\t\tconst groups = format.split(this._regex);\n\t\tgroups.forEach((g, i) => {\n\t\t\tif (g.indexOf('d') !== -1) {\n\t\t\t\tthis._order.date = i;\n\t\t\t}\n\t\t\tif (g.indexOf('M') !== -1) {\n\t\t\t\tthis._order.month = i;\n\t\t\t}\n\t\t\tif (g.indexOf('y') !== -1) {\n\t\t\t\tthis._order.year = i;\n\t\t\t}\n\t\t});\n\t}\n\tprivate extract(text: string, granularity: ELuDateGranularity = ELuDateGranularity.day): { date: number; month: number; year: number } {\n\t\tconst groups = text.split(this._regex);\n\t\tlet date = 1,\n\t\t\tmonth = 1,\n\t\t\tyear = 1;\n\t\tswitch (granularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tyear = parseInt(groups[Math.max(this._order.year - 2, 0)], 10);\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tmonth = parseInt(groups[Math.max(this._order.month - 1, 0)], 10);\n\t\t\t\tyear = parseInt(groups[Math.max(this._order.year - 1, 0)], 10) || new Date().getFullYear();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tdate = parseInt(groups[this._order.date], 10);\n\t\t\t\tmonth = parseInt(groups[this._order.month], 10);\n\t\t\t\tyear = parseInt(groups[this._order.year], 10) || new Date().getFullYear();\n\t\t}\n\t\treturn { date, month, year };\n\t}\n\tisParsable(text: string, granularity = ELuDateGranularity.day): boolean {\n\t\tif (!text) {\n\t\t\treturn false;\n\t\t}\n\t\tconst groups = text.split(this._regex);\n\t\tconst dayTextInvalid = granularity === ELuDateGranularity.day && groups.length !== 3;\n\t\tconst monthTextInvalid = granularity === ELuDateGranularity.month && groups.length !== 2;\n\t\tconst yearTextInvalid = granularity === ELuDateGranularity.year && groups.length !== 1;\n\t\tif (dayTextInvalid || monthTextInvalid || yearTextInvalid) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\tconst { date, month, year } = this.extract(text, granularity);\n\n\t\t\t// When year is equal or greater than 10_000 ISO string goes from 2000-01-01 to +010000-01-01 which is not supported by backends\n\t\t\tif (year >= 10_000) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet d: Date;\n\t\t\tif (this._options.useUtc) {\n\t\t\t\td = new Date(Date.UTC(year, month - 1, date));\n\t\t\t} else {\n\t\t\t\td = new Date(year, month - 1, date);\n\t\t\t}\n\t\t\t// checking if its a valid date\n\t\t\t// https://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript\n\t\t\tif (!(d instanceof Date)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (isNaN(d.getTime())) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// d is a valid date, but\n\t\t\t// as i can write new Date(1234, 56, 78) and mr javascript accepts it\n\t\t\t// i check now that the generated date has the same year/month/date as what i entered\n\t\t\tif (this._options.useUtc) {\n\t\t\t\tif (d.getUTCFullYear() !== year) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (d.getUTCMonth() !== month - 1) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (d.getUTCDate() !== date) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (d.getFullYear() !== year) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (d.getMonth() !== month - 1) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (d.getDate() !== date) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\tparse(text: string, granularity = ELuDateGranularity.day): Date {\n\t\tif (!text) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (!this.isParsable(text, granularity)) {\n\t\t\treturn this.forgeInvalid();\n\t\t}\n\n\t\tconst { date, month, year } = this.extract(text, granularity);\n\n\t\treturn this.forge(year, month, date);\n\t}\n\tformat(d: Date, format: string): string {\n\t\tif (this._options.useUtc) {\n\t\t\treturn formatDate(d, format, this._locale, 'UTC');\n\t\t} else {\n\t\t\treturn formatDate(d, format, this._locale);\n\t\t}\n\t}\n\tforge(year: number, month: number, date: number): Date {\n\t\tif (this._options.useUtc) {\n\t\t\treturn new Date(Date.UTC(year, month - 1, date)); // month-1 cuz 0 -> january\n\t\t} else {\n\t\t\treturn new Date(year, month - 1, date); // month-1 cuz 0 -> january\n\t\t}\n\t}\n\tforgeToday(): Date {\n\t\tif (this._options.useUtc) {\n\t\t\tconst nonUTCToday = new Date();\n\t\t\treturn new Date(Date.UTC(nonUTCToday.getFullYear(), nonUTCToday.getMonth(), nonUTCToday.getDate()));\n\t\t} else {\n\t\t\tconst today = new Date();\n\t\t\treturn new Date(today.getFullYear(), today.getMonth(), today.getDate());\n\t\t}\n\t}\n\tforgeInvalid(): Date {\n\t\treturn new Date('Invalid Date');\n\t}\n\tisValid(d: Date): boolean {\n\t\tif (!(d instanceof Date)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (isNaN(d.getTime())) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tclone(d: Date): Date {\n\t\treturn new Date(d);\n\t}\n\n\tgetYear(d: Date): number {\n\t\tif (this._options.useUtc) {\n\t\t\treturn d.getUTCFullYear();\n\t\t} else {\n\t\t\treturn d.getFullYear();\n\t\t}\n\t}\n\tgetMonth(d: Date): number {\n\t\tif (this._options.useUtc) {\n\t\t\treturn d.getUTCMonth() + 1;\n\t\t} else {\n\t\t\treturn d.getMonth() + 1;\n\t\t}\n\t}\n\tgetDate(d: Date): number {\n\t\tif (this._options.useUtc) {\n\t\t\treturn d.getUTCDate();\n\t\t} else {\n\t\t\treturn d.getDate();\n\t\t}\n\t}\n\tgetDay(d: Date): number {\n\t\tif (this._options.useUtc) {\n\t\t\treturn d.getUTCDay();\n\t\t} else {\n\t\t\treturn d.getDay();\n\t\t}\n\t}\n\n\tadd(d: Date, count: number, granularity: ELuDateGranularity): Date {\n\t\tlet year = this.getYear(d);\n\t\tlet month = this.getMonth(d);\n\t\tlet date = this.getDate(d);\n\t\tswitch (granularity) {\n\t\t\tcase ELuDateGranularity.decade:\n\t\t\t\tyear += 10 * count;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tyear += count;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tmonth += count;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\t\tdate += count;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn this.forge(year, month, date);\n\t}\n}\n","import { Injectable, Inject, LOCALE_ID } from '@angular/core';\nimport { LuNativeDateAdapter } from '../native/index';\nimport { ALuDateAdapter } from '../date-adapter.class';\nimport { ELuDateGranularity } from '../date-granularity.enum';\nimport { ILuDateAdapter } from '../date-adapter.interface';\n\n/** bind to a string with iso 26001 format YYYY-MM-DD */\n@Injectable()\nexport class LuStringDateAdapter extends ALuDateAdapter<string> implements ILuDateAdapter<string> {\n\t// i'm going to implement this by doing some inheritance by composition\n\t// i'll just use the native date adapter and just parse/format to interface it with a string\n\n\tprivate _nativeAdapter: LuNativeDateAdapter;\n\n\tconstructor(@Inject(LOCALE_ID) private _locale: string) {\n\t\tsuper();\n\t\tthis._nativeAdapter = new LuNativeDateAdapter(this._locale, {\n\t\t\tuseUtc: true,\n\t\t});\n\t}\n\n\tforge(year: number, month: number, date: number): string {\n\t\treturn this.dateToString(this._nativeAdapter.forge(year, month, date));\n\t}\n\n\tforgeToday(): string {\n\t\treturn this.dateToString(this._nativeAdapter.forgeToday());\n\t}\n\n\tforgeInvalid(): string {\n\t\treturn 'Invalid Date';\n\t}\n\n\tisValid(d: string): boolean {\n\t\treturn this._nativeAdapter.isValid(this.stringToDate(d));\n\t}\n\n\toverride compare(a: string, b: string, granularity: ELuDateGranularity): number {\n\t\tconst da = this.stringToDate(a);\n\t\tconst db = this.stringToDate(b);\n\n\t\treturn this._nativeAdapter.compare(da, db, granularity);\n\t}\n\n\tisParsable(text: string): boolean {\n\t\treturn this._nativeAdapter.isParsable(text);\n\t}\n\n\tparse(text: string, granularity: ELuDateGranularity): string {\n\t\treturn this.dateToString(this._nativeAdapter.parse(text, granularity));\n\t}\n\n\tformat(d: string, format: string): string {\n\t\treturn this._nativeAdapter.format(this.stringToDate(d), format);\n\t}\n\n\tclone(d: string): string {\n\t\treturn `${d}`;\n\t}\n\n\tgetYear(d: string): number {\n\t\treturn this._nativeAdapter.getYear(this.stringToDate(d));\n\t}\n\n\tgetMonth(d: string): number {\n\t\treturn this._nativeAdapter.getMonth(this.stringToDate(d));\n\t}\n\n\tgetDate(d: string): number {\n\t\treturn this._nativeAdapter.getDate(this.stringToDate(d));\n\t}\n\n\tgetDay(d: string): number {\n\t\treturn this._nativeAdapter.getDay(this.stringToDate(d));\n\t}\n\n\tadd(d: string, count: number, granularity: ELuDateGranularity): string {\n\t\treturn this.dateToString(this._nativeAdapter.add(this.stringToDate(d), count, granularity));\n\t}\n\n\tprotected stringToDate(s: string): Date {\n\t\treturn new Date(`${s}T00:00:00Z`);\n\t}\n\n\tprotected dateToString(d: Date): string {\n\t\tlet result: string;\n\n\t\tif (d === undefined) {\n\t\t\tresult = undefined;\n\t\t} else if (!this._nativeAdapter.isValid(d)) {\n\t\t\tresult = this.forgeInvalid();\n\t\t} else {\n\t\t\tresult = d.toISOString().substring(0, 10);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n","export interface ILuOnCloseSubscriber {\n\tonClose(): void;\n}\nexport abstract class ALuOnCloseSubscriber implements ILuOnCloseSubscriber {\n\tabstract onClose(): void;\n}\n","export interface ILuOnOpenSubscriber {\n\tonOpen(): void;\n}\nexport abstract class ALuOnOpenSubscriber implements ILuOnOpenSubscriber {\n\tabstract onOpen(): void;\n}\n","export interface ILuOnScrollBottomSubscriber {\n\tonScrollBottom(): void;\n}\nexport abstract class ALuOnScrollBottomSubscriber implements ILuOnScrollBottomSubscriber {\n\tabstract onScrollBottom(): void;\n}\n","import { inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { ILuTranslation } from './translation.model';\n\nexport type ILuIntl<T> = { [P in keyof T]: string };\n\nfunction isSupportedLang<T>(locale: string, translations: ILuTranslation<T>): locale is keyof ILuTranslation<T> {\n\treturn locale in translations;\n}\n\nexport function getIntl<T>(translationsToken: InjectionToken<ILuTranslation<T>>): T {\n\tconst locale = inject(LOCALE_ID);\n\tconst translations = inject(translationsToken);\n\n\tif (isSupportedLang(locale, translations)) {\n\t\treturn translations[locale];\n\t}\n\n\tconst shortLocale = locale.substring(0, 2);\n\tif (isSupportedLang(shortLocale, translations)) {\n\t\treturn translations[shortLocale];\n\t}\n\n\treturn translations['en'];\n}\n","const ID_LENGTH = 8;\nconst ID_BASE = 16;\nexport function generateId(): string {\n\treturn Array(ID_LENGTH)\n\t\t.fill(0)\n\t\t.map(() => Math.floor(Math.random() * ID_BASE).toString(ID_BASE))\n\t\t.join('');\n}\n","import { Directive, inject, Input, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PortalContent } from './portal-content';\n\n@Directive({\n\tselector: '[luPortal]',\n\tstandalone: true,\n})\nexport class PortalDirective<T = unknown> implements OnChanges {\n\tprivate viewContainerRef = inject(ViewContainerRef);\n\tprivate renderer = inject(Renderer2);\n\tprivate templateRef = inject(TemplateRef);\n\n\t@Input({ required: true })\n\tpublic luPortal: PortalContent<T> = null;\n\n\tprivate render(): void {\n\t\tthis.viewContainerRef.clear();\n\n\t\tif (this.luPortal instanceof TemplateRef) {\n\t\t\tthis.viewContainerRef.createEmbeddedView(this.luPortal);\n\t\t} else {\n\t\t\tconst ref = this.viewContainerRef.createEmbeddedView(this.templateRef);\n\t\t\tconst container: HTMLElement = ref.rootNodes[0] as HTMLElement;\n\t\t\tconst parent = container.parentElement;\n\t\t\tthis.renderer.insertBefore(parent, document.createTextNode(this.luPortal), container);\n\t\t}\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['luPortal']) {\n\t\t\t// If we're here, it means that either the template ref changed or the string changed,\n\t\t\t// meaning that we need to render again\n\t\t\tthis.render();\n\t\t}\n\t}\n}\n","import { Directive, ElementRef, inject, IterableDiffers, KeyValueDiffers, Renderer2 } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n// This directive exists to temporarily resolve a conflict in how directives work, see https://github.com/angular/angular/issues/52072\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[ngClazz]',\n\tstandalone: true,\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class NgClazz extends NgClass {\n\tconstructor() {\n\t\tsuper(inject(IterableDiffers), inject(KeyValueDiffers), inject(ElementRef), inject(Renderer2));\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-core.mjs","sources":["../../../packages/ng/core/date/date-granularity.enum.ts","../../../packages/ng/core/date/date-adapter.class.ts","../../../packages/ng/core/date/native/native-date.option.ts","../../../packages/ng/core/date/native/native-date.adapter.ts","../../../packages/ng/core/date/string/string-date.adapter.ts","../../../packages/ng/core/event/on-close.subscriber.ts","../../../packages/ng/core/event/on-open.subscriber.ts","../../../packages/ng/core/event/on-scroll-bottom.subscriber.ts","../../../packages/ng/core/translate/intl.model.ts","../../../packages/ng/core/id/id.generator.ts","../../../packages/ng/core/portal/portal.directive.ts","../../../packages/ng/core/tools/class.ts","../../../packages/ng/core/lucca-front-ng-core.ts"],"sourcesContent":["export enum ELuDateGranularity {\n\tday = 'day',\n\tmonth = 'month',\n\tyear = 'year',\n\tdecade = 'decade',\n}\n","import { ILuDateAdapter } from './date-adapter.interface';\nimport { ELuDateGranularity } from './date-granularity.enum';\n\nexport abstract class ALuDateAdapter<D> implements ILuDateAdapter<D> {\n\tabstract forge(year: number, month: number, date: number): D;\n\tabstract forgeToday(): D;\n\tabstract forgeInvalid(): D;\n\tabstract isValid(d: D): boolean;\n\tcompare(a: D, b: D, granularity: ELuDateGranularity): number {\n\t\tif (!a || !b || !this.isValid(a) || !this.isValid(b)) {\n\t\t\tthrow new Error('you must provide valid and not null dates to be compared');\n\t\t}\n\t\tconst aDecade = Math.floor(this.getYear(a) / 10);\n\t\tconst bDecade = Math.floor(this.getYear(b) / 10);\n\t\tif (aDecade < bDecade) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aDecade > bDecade) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (granularity === ELuDateGranularity.decade) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst aYear = this.getYear(a);\n\t\tconst bYear = this.getYear(b);\n\t\tif (aYear < bYear) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aYear > bYear) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (granularity === ELuDateGranularity.year) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst aMonth = this.getMonth(a);\n\t\tconst bMonth = this.getMonth(b);\n\t\tif (aMonth < bMonth) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aMonth > bMonth) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (granularity === ELuDateGranularity.month) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst aDate = this.getDate(a);\n\t\tconst bDate = this.getDate(b);\n\t\tif (aDate < bDate) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aDate > bDate) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (granularity === ELuDateGranularity.day) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn 0;\n\t}\n\tabstract isParsable(text: string, granularity?: ELuDateGranularity): boolean;\n\tabstract parse(text: string, granularity?: ELuDateGranularity): D;\n\tabstract format(d: D, format: string): string;\n\tabstract clone(d: D): D;\n\n\tabstract getYear(d: D): number;\n\tabstract getMonth(d: D): number;\n\tabstract getDate(d: D): number;\n\tabstract getDay(d: D): number;\n\n\tabstract add(d: D, count: number, granularity: ELuDateGranularity): D;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface ILuNativeDateAdapterOptions {\n\tuseUtc?: boolean;\n}\nexport const luDefaultNativeDateAdapterOptions: ILuNativeDateAdapterOptions = {\n\tuseUtc: false,\n};\nexport const LU_NATIVE_DATE_ADAPTER_OPTIONS = new InjectionToken<ILuNativeDateAdapterOptions>('Native date adapter options');\n","import { formatDate, FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport { Inject, Injectable, LOCALE_ID, Optional } from '@angular/core';\nimport { ALuDateAdapter } from '../date-adapter.class';\nimport { ILuDateAdapter } from '../date-adapter.interface';\nimport { ELuDateGranularity } from '../date-granularity.enum';\nimport { ILuNativeDateAdapterOptions, luDefaultNativeDateAdapterOptions, LU_NATIVE_DATE_ADAPTER_OPTIONS } from './native-date.option';\n\n@Injectable()\nexport class LuNativeDateAdapter extends ALuDateAdapter<Date> implements ILuDateAdapter<Date> {\n\tprivate _regex = /[/,.\\-\\s]/i;\n\tprivate _order = {\n\t\tdate: 0,\n\t\tmonth: 1,\n\t\tyear: 2,\n\t};\n\tconstructor(\n\t\t@Inject(LOCALE_ID) private _locale: string,\n\t\t@Inject(LU_NATIVE_DATE_ADAPTER_OPTIONS)\n\t\t@Optional()\n\t\tprivate _options: ILuNativeDateAdapterOptions,\n\t) {\n\t\tsuper();\n\t\tthis._options = this._options || luDefaultNativeDateAdapterOptions;\n\t\tthis.initOrder();\n\t}\n\tprivate initOrder() {\n\t\tconst format = getLocaleDateFormat(this._locale, FormatWidth.Short);\n\t\tconst groups = format.split(this._regex);\n\t\tgroups.forEach((g, i) => {\n\t\t\tif (g.indexOf('d') !== -1) {\n\t\t\t\tthis._order.date = i;\n\t\t\t}\n\t\t\tif (g.indexOf('M') !== -1) {\n\t\t\t\tthis._order.month = i;\n\t\t\t}\n\t\t\tif (g.indexOf('y') !== -1) {\n\t\t\t\tthis._order.year = i;\n\t\t\t}\n\t\t});\n\t}\n\tprivate extract(text: string, granularity: ELuDateGranularity = ELuDateGranularity.day): { date: number; month: number; year: number } {\n\t\tconst groups = text.split(this._regex);\n\t\tlet date = 1,\n\t\t\tmonth = 1,\n\t\t\tyear = 1;\n\t\tswitch (granularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tyear = parseInt(groups[Math.max(this._order.year - 2, 0)], 10);\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tmonth = parseInt(groups[Math.max(this._order.month - 1, 0)], 10);\n\t\t\t\tyear = parseInt(groups[Math.max(this._order.year - 1, 0)], 10) || new Date().getFullYear();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tdate = parseInt(groups[this._order.date], 10);\n\t\t\t\tmonth = parseInt(groups[this._order.month], 10);\n\t\t\t\tyear = parseInt(groups[this._order.year], 10) || new Date().getFullYear();\n\t\t}\n\t\treturn { date, month, year };\n\t}\n\tisParsable(text: string, granularity = ELuDateGranularity.day): boolean {\n\t\tif (!text) {\n\t\t\treturn false;\n\t\t}\n\t\tconst groups = text.split(this._regex);\n\t\tconst dayTextInvalid = granularity === ELuDateGranularity.day && groups.length !== 3;\n\t\tconst monthTextInvalid = granularity === ELuDateGranularity.month && groups.length !== 2;\n\t\tconst yearTextInvalid = granularity === ELuDateGranularity.year && groups.length !== 1;\n\t\tif (dayTextInvalid || monthTextInvalid || yearTextInvalid) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\tconst { date, month, year } = this.extract(text, granularity);\n\n\t\t\t// When year is equal or greater than 10_000 ISO string goes from 2000-01-01 to +010000-01-01 which is not supported by backends\n\t\t\tif (year >= 10_000) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet d: Date;\n\t\t\tif (this._options.useUtc) {\n\t\t\t\td = new Date(Date.UTC(year, month - 1, date));\n\t\t\t} else {\n\t\t\t\td = new Date(year, month - 1, date);\n\t\t\t}\n\t\t\t// checking if its a valid date\n\t\t\t// https://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript\n\t\t\tif (!(d instanceof Date)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (isNaN(d.getTime())) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// d is a valid date, but\n\t\t\t// as i can write new Date(1234, 56, 78) and mr javascript accepts it\n\t\t\t// i check now that the generated date has the same year/month/date as what i entered\n\t\t\tif (this._options.useUtc) {\n\t\t\t\tif (d.getUTCFullYear() !== year) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (d.getUTCMonth() !== month - 1) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (d.getUTCDate() !== date) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (d.getFullYear() !== year) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (d.getMonth() !== month - 1) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (d.getDate() !== date) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\tparse(text: string, granularity = ELuDateGranularity.day): Date {\n\t\tif (!text) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (!this.isParsable(text, granularity)) {\n\t\t\treturn this.forgeInvalid();\n\t\t}\n\n\t\tconst { date, month, year } = this.extract(text, granularity);\n\n\t\treturn this.forge(year, month, date);\n\t}\n\tformat(d: Date, format: string): string {\n\t\tif (this._options.useUtc) {\n\t\t\treturn formatDate(d, format, this._locale, 'UTC');\n\t\t} else {\n\t\t\treturn formatDate(d, format, this._locale);\n\t\t}\n\t}\n\tforge(year: number, month: number, date: number): Date {\n\t\tif (this._options.useUtc) {\n\t\t\treturn new Date(Date.UTC(year, month - 1, date)); // month-1 cuz 0 -> january\n\t\t} else {\n\t\t\treturn new Date(year, month - 1, date); // month-1 cuz 0 -> january\n\t\t}\n\t}\n\tforgeToday(): Date {\n\t\tif (this._options.useUtc) {\n\t\t\tconst nonUTCToday = new Date();\n\t\t\treturn new Date(Date.UTC(nonUTCToday.getFullYear(), nonUTCToday.getMonth(), nonUTCToday.getDate()));\n\t\t} else {\n\t\t\tconst today = new Date();\n\t\t\treturn new Date(today.getFullYear(), today.getMonth(), today.getDate());\n\t\t}\n\t}\n\tforgeInvalid(): Date {\n\t\treturn new Date('Invalid Date');\n\t}\n\tisValid(d: Date): boolean {\n\t\tif (!(d instanceof Date)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (isNaN(d.getTime())) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tclone(d: Date): Date {\n\t\treturn new Date(d);\n\t}\n\n\tgetYear(d: Date): number {\n\t\tif (this._options.useUtc) {\n\t\t\treturn d.getUTCFullYear();\n\t\t} else {\n\t\t\treturn d.getFullYear();\n\t\t}\n\t}\n\tgetMonth(d: Date): number {\n\t\tif (this._options.useUtc) {\n\t\t\treturn d.getUTCMonth() + 1;\n\t\t} else {\n\t\t\treturn d.getMonth() + 1;\n\t\t}\n\t}\n\tgetDate(d: Date): number {\n\t\tif (this._options.useUtc) {\n\t\t\treturn d.getUTCDate();\n\t\t} else {\n\t\t\treturn d.getDate();\n\t\t}\n\t}\n\tgetDay(d: Date): number {\n\t\tif (this._options.useUtc) {\n\t\t\treturn d.getUTCDay();\n\t\t} else {\n\t\t\treturn d.getDay();\n\t\t}\n\t}\n\n\tadd(d: Date, count: number, granularity: ELuDateGranularity): Date {\n\t\tlet year = this.getYear(d);\n\t\tlet month = this.getMonth(d);\n\t\tlet date = this.getDate(d);\n\t\tswitch (granularity) {\n\t\t\tcase ELuDateGranularity.decade:\n\t\t\t\tyear += 10 * count;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tyear += count;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tmonth += count;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\t\tdate += count;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn this.forge(year, month, date);\n\t}\n}\n","import { Injectable, Inject, LOCALE_ID } from '@angular/core';\nimport { LuNativeDateAdapter } from '../native/index';\nimport { ALuDateAdapter } from '../date-adapter.class';\nimport { ELuDateGranularity } from '../date-granularity.enum';\nimport { ILuDateAdapter } from '../date-adapter.interface';\n\n/** bind to a string with iso 26001 format YYYY-MM-DD */\n@Injectable()\nexport class LuStringDateAdapter extends ALuDateAdapter<string> implements ILuDateAdapter<string> {\n\t// i'm going to implement this by doing some inheritance by composition\n\t// i'll just use the native date adapter and just parse/format to interface it with a string\n\n\tprivate _nativeAdapter: LuNativeDateAdapter;\n\n\tconstructor(@Inject(LOCALE_ID) private _locale: string) {\n\t\tsuper();\n\t\tthis._nativeAdapter = new LuNativeDateAdapter(this._locale, {\n\t\t\tuseUtc: true,\n\t\t});\n\t}\n\n\tforge(year: number, month: number, date: number): string {\n\t\treturn this.dateToString(this._nativeAdapter.forge(year, month, date));\n\t}\n\n\tforgeToday(): string {\n\t\treturn this.dateToString(this._nativeAdapter.forgeToday());\n\t}\n\n\tforgeInvalid(): string {\n\t\treturn 'Invalid Date';\n\t}\n\n\tisValid(d: string): boolean {\n\t\treturn this._nativeAdapter.isValid(this.stringToDate(d));\n\t}\n\n\toverride compare(a: string, b: string, granularity: ELuDateGranularity): number {\n\t\tconst da = this.stringToDate(a);\n\t\tconst db = this.stringToDate(b);\n\n\t\treturn this._nativeAdapter.compare(da, db, granularity);\n\t}\n\n\tisParsable(text: string): boolean {\n\t\treturn this._nativeAdapter.isParsable(text);\n\t}\n\n\tparse(text: string, granularity: ELuDateGranularity): string {\n\t\treturn this.dateToString(this._nativeAdapter.parse(text, granularity));\n\t}\n\n\tformat(d: string, format: string): string {\n\t\treturn this._nativeAdapter.format(this.stringToDate(d), format);\n\t}\n\n\tclone(d: string): string {\n\t\treturn `${d}`;\n\t}\n\n\tgetYear(d: string): number {\n\t\treturn this._nativeAdapter.getYear(this.stringToDate(d));\n\t}\n\n\tgetMonth(d: string): number {\n\t\treturn this._nativeAdapter.getMonth(this.stringToDate(d));\n\t}\n\n\tgetDate(d: string): number {\n\t\treturn this._nativeAdapter.getDate(this.stringToDate(d));\n\t}\n\n\tgetDay(d: string): number {\n\t\treturn this._nativeAdapter.getDay(this.stringToDate(d));\n\t}\n\n\tadd(d: string, count: number, granularity: ELuDateGranularity): string {\n\t\treturn this.dateToString(this._nativeAdapter.add(this.stringToDate(d), count, granularity));\n\t}\n\n\tprotected stringToDate(s: string): Date {\n\t\treturn new Date(`${s}T00:00:00Z`);\n\t}\n\n\tprotected dateToString(d: Date): string {\n\t\tlet result: string;\n\n\t\tif (d === undefined) {\n\t\t\tresult = undefined;\n\t\t} else if (!this._nativeAdapter.isValid(d)) {\n\t\t\tresult = this.forgeInvalid();\n\t\t} else {\n\t\t\tresult = d.toISOString().substring(0, 10);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n","export interface ILuOnCloseSubscriber {\n\tonClose(): void;\n}\nexport abstract class ALuOnCloseSubscriber implements ILuOnCloseSubscriber {\n\tabstract onClose(): void;\n}\n","export interface ILuOnOpenSubscriber {\n\tonOpen(): void;\n}\nexport abstract class ALuOnOpenSubscriber implements ILuOnOpenSubscriber {\n\tabstract onOpen(): void;\n}\n","export interface ILuOnScrollBottomSubscriber {\n\tonScrollBottom(): void;\n}\nexport abstract class ALuOnScrollBottomSubscriber implements ILuOnScrollBottomSubscriber {\n\tabstract onScrollBottom(): void;\n}\n","import { inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { ILuTranslation } from './translation.model';\n\nexport type ILuIntl<T> = { [P in keyof T]: string };\n\nfunction isSupportedLang<T>(locale: string, translations: ILuTranslation<T>): locale is keyof ILuTranslation<T> {\n\treturn locale in translations;\n}\n\nexport function getIntl<T>(translationsToken: InjectionToken<ILuTranslation<T>>): T {\n\tconst locale = inject(LOCALE_ID);\n\tconst translations = inject(translationsToken);\n\n\tif (isSupportedLang(locale, translations)) {\n\t\treturn translations[locale];\n\t}\n\n\tconst shortLocale = locale.substring(0, 2);\n\tif (isSupportedLang(shortLocale, translations)) {\n\t\treturn translations[shortLocale];\n\t}\n\n\treturn translations['en'];\n}\n","const ID_LENGTH = 8;\nconst ID_BASE = 16;\nexport function generateId(): string {\n\treturn Array(ID_LENGTH)\n\t\t.fill(0)\n\t\t.map(() => Math.floor(Math.random() * ID_BASE).toString(ID_BASE))\n\t\t.join('');\n}\n","import { Directive, inject, Input, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PortalContent } from './portal-content';\n\n@Directive({\n\tselector: '[luPortal]',\n\tstandalone: true,\n})\nexport class PortalDirective<T = unknown> implements OnChanges {\n\tprivate viewContainerRef = inject(ViewContainerRef);\n\tprivate renderer = inject(Renderer2);\n\tprivate templateRef = inject(TemplateRef);\n\n\t@Input({ required: true })\n\tpublic luPortal: PortalContent<T> = null;\n\n\tprivate render(): void {\n\t\tthis.viewContainerRef.clear();\n\n\t\tif (this.luPortal instanceof TemplateRef) {\n\t\t\tthis.viewContainerRef.createEmbeddedView(this.luPortal);\n\t\t} else {\n\t\t\tconst ref = this.viewContainerRef.createEmbeddedView(this.templateRef);\n\t\t\tconst container: HTMLElement = ref.rootNodes[0] as HTMLElement;\n\t\t\tconst parent = container.parentElement;\n\t\t\tthis.renderer.insertBefore(parent, document.createTextNode(this.luPortal), container);\n\t\t}\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['luPortal']) {\n\t\t\t// If we're here, it means that either the template ref changed or the string changed,\n\t\t\t// meaning that we need to render again\n\t\t\tthis.render();\n\t\t}\n\t}\n}\n","import { ElementRef, inject, Injectable, Renderer2 } from '@angular/core';\n\ntype LuClassSupportedTypes = string | string[] | Set<string> | { [klass: string]: boolean };\n\ninterface CssClassState {\n\tenabled: boolean;\n\tchanged: boolean;\n\ttouched: boolean;\n}\n\n@Injectable()\nexport class LuClass {\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\t#renderer = inject(Renderer2);\n\n\t#state: Record<string, boolean> = {};\n\t#stateMap = new Map<string, CssClassState>();\n\n\tpublic setState(value: LuClassSupportedTypes) {\n\t\tthis.#state = normalizeToRecord(value);\n\n\t\tfor (const [klass, enabled] of Object.entries(this.#state)) {\n\t\t\tthis.#updateState(klass, enabled);\n\t\t}\n\n\t\tthis.#applyStateDiff();\n\t}\n\n\t#updateState(klass: string, nextEnabled: boolean) {\n\t\tconst state = this.#stateMap.get(klass);\n\t\tif (state !== undefined) {\n\t\t\tif (state.enabled !== nextEnabled) {\n\t\t\t\tstate.changed = true;\n\t\t\t\tstate.enabled = nextEnabled;\n\t\t\t}\n\t\t\tstate.touched = true;\n\t\t} else {\n\t\t\tthis.#stateMap.set(klass, { enabled: nextEnabled, changed: true, touched: true });\n\t\t}\n\t}\n\n\t#applyStateDiff() {\n\t\tfor (const stateEntry of this.#stateMap) {\n\t\t\tconst klass = stateEntry[0];\n\t\t\tconst state = stateEntry[1];\n\n\t\t\tif (state.changed) {\n\t\t\t\tthis.#toggleClass(klass, state.enabled);\n\t\t\t\tstate.changed = false;\n\t\t\t} else if (!state.touched) {\n\t\t\t\t// A class that was previously active got removed from the new collection of classes -\n\t\t\t\t// remove from the DOM as well.\n\t\t\t\tif (state.enabled) {\n\t\t\t\t\tthis.#toggleClass(klass, false);\n\t\t\t\t}\n\t\t\t\tthis.#stateMap.delete(klass);\n\t\t\t}\n\n\t\t\tstate.touched = false;\n\t\t}\n\t}\n\n\t#toggleClass(klass: string, enabled: boolean): void {\n\t\tif (enabled) {\n\t\t\tthis.#renderer.addClass(this.#elementRef.nativeElement, klass);\n\t\t} else {\n\t\t\tthis.#renderer.removeClass(this.#elementRef.nativeElement, klass);\n\t\t}\n\t}\n}\n\nfunction normalizeToRecord(obj: LuClassSupportedTypes): Record<string, boolean> {\n\tif (Array.isArray(obj) || obj instanceof Set) {\n\t\tconst result: Record<string, boolean> = {};\n\n\t\tfor (const item of obj) {\n\t\t\tresult[item] = true;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tif (typeof obj === 'string') {\n\t\tobj = obj.trim();\n\t\treturn obj ? { [obj]: true } : {};\n\t}\n\n\treturn obj;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,9 @@ import { ElementRef, inject, Directive, HostBinding, booleanAttribute, Component
|
|
|
3
3
|
import { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';
|
|
4
4
|
import { BehaviorSubject } from 'rxjs';
|
|
5
5
|
import { InlineMessageComponent } from '@lucca-front/ng/inline-message';
|
|
6
|
-
import * as
|
|
6
|
+
import * as i1 from '@lucca-front/ng/tooltip';
|
|
7
7
|
import { LuTooltipModule } from '@lucca-front/ng/tooltip';
|
|
8
|
-
import
|
|
9
|
-
import { NgClazz } from '@lucca-front/ng/core';
|
|
8
|
+
import { LuClass } from '@lucca-front/ng/core';
|
|
10
9
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
11
10
|
import { IconComponent } from '@lucca-front/ng/icon';
|
|
12
11
|
|
|
@@ -32,7 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
|
|
|
32
31
|
let nextId = 0;
|
|
33
32
|
class FormFieldComponent {
|
|
34
33
|
constructor() {
|
|
35
|
-
this.#
|
|
34
|
+
this.#luClass = inject(LuClass);
|
|
36
35
|
this.clazz = 'form-field';
|
|
37
36
|
this.hiddenLabel = false;
|
|
38
37
|
this.required = false;
|
|
@@ -41,7 +40,7 @@ class FormFieldComponent {
|
|
|
41
40
|
this.ready$ = new BehaviorSubject(false);
|
|
42
41
|
this.#ariaLabelledBy = [];
|
|
43
42
|
}
|
|
44
|
-
#
|
|
43
|
+
#luClass;
|
|
45
44
|
get ready() {
|
|
46
45
|
return this.ready$.value;
|
|
47
46
|
}
|
|
@@ -62,9 +61,9 @@ class FormFieldComponent {
|
|
|
62
61
|
}
|
|
63
62
|
#nativeInputRef;
|
|
64
63
|
ngOnChanges() {
|
|
65
|
-
this.#
|
|
64
|
+
this.#luClass.setState({
|
|
66
65
|
[`mod-${this.size}`]: true,
|
|
67
|
-
};
|
|
66
|
+
});
|
|
68
67
|
if (this.#nativeInputRef) {
|
|
69
68
|
this.updateAria();
|
|
70
69
|
}
|
|
@@ -89,11 +88,11 @@ class FormFieldComponent {
|
|
|
89
88
|
this.ready$.complete();
|
|
90
89
|
}
|
|
91
90
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: FormFieldComponent, isStandalone: true, selector: "lu-form-field", inputs: { label: "label", hiddenLabel: ["hiddenLabel", "hiddenLabel", booleanAttribute], tooltip: "tooltip", required: ["required", "required", booleanAttribute], invalid: ["invalid", "invalid", booleanAttribute], inlineMessage: "inlineMessage", inlineMessageState: "inlineMessageState", size: "size", layout: "layout" }, host: { properties: { "class": "this.clazz" } }, queries: [{ propertyName: "input", first: true, predicate: InputDirective, descendants: true }], usesOnChanges: true,
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: FormFieldComponent, isStandalone: true, selector: "lu-form-field", inputs: { label: "label", hiddenLabel: ["hiddenLabel", "hiddenLabel", booleanAttribute], tooltip: "tooltip", required: ["required", "required", booleanAttribute], invalid: ["invalid", "invalid", booleanAttribute], inlineMessage: "inlineMessage", inlineMessageState: "inlineMessageState", size: "size", layout: "layout" }, host: { properties: { "class": "this.clazz" } }, providers: [LuClass], queries: [{ propertyName: "input", first: true, predicate: InputDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label class=\"formLabel\" id=\"{{id}}-label\" for=\"{{id}}\" [class.u-mask]=\"hiddenLabel\" attr.aria-hidden=\"{{hiddenLabel}}\">\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\"></lu-icon>\n</label>\n<ng-container [ngSwitch]=\"layout\">\n\t<div class=\"textField\" *ngSwitchCase=\"'default'\">\n\t\t<ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n\t</div>\n\t<ng-container *ngSwitchCase=\"'checkbox'\">\n\t\t<ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n\t</ng-container>\n</ng-container>\n<lu-inline-message id=\"{{id}}-message\" *ngIf=\"inlineMessage\" [label]=\"inlineMessage\" [state]=\"inlineMessageState\"></lu-inline-message>\n<!--We have to do this because multiple ng-content in the same template leads to weird behaviors-->\n<ng-template #contentTpl>\n\t<ng-content></ng-content>\n</ng-template>\n", styles: [".textField{--component-textField-lineHeight: var(--size-M-lightHeight);--component-textField-fontSize: var(--size-M-fontSize);--component-textField-placeholder: var(--palettes-grey-400);--component-textField-background: var(--colors-white-color);--component-textField-border: var(--palettes-grey-300);--component-textField-color: var(--palettes-grey-800);--component-textField-prefix-color: var(--palettes-grey-600);--component-textField-padding: var(--spacings-XS);--component-textField-affix-padding: var(--component-textField-padding);display:flex;align-items:stretch;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background)}.textField:focus-within:not(:has(.textField-input-affix-clear:focus)){outline:2px solid var(--palettes-primary-700);outline-offset:3px}.textField-input{display:flex;align-items:center;width:100%;box-shadow:0 0 0 1px var(--component-textField-border);border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);position:relative}.textField-input:hover{--component-textField-border: var(--palettes-grey-400)}.textField-input:has(.textField-input-affix-icon){--component-textField-affix-padding: 2.5rem}.textField-input:has(.textField-input-affix-clear){--component-textField-affix-padding: 2rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-icon){--component-textField-affix-padding: 4rem}.textField-input-value{border:0;outline:0;line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);width:100%;padding:var(--component-textField-padding) var(--component-textField-affix-padding) var(--component-textField-padding) var(--component-textField-padding);background-color:transparent;color:var(--component-textField-color)}.textField-input-value::placeholder{color:var(--component-textField-placeholder)}.textField-input-affix{display:inline-flex;align-items:center;gap:var(--spacings-XS);position:absolute;right:var(--spacings-XS);pointer-events:none}.textField-input-affix-icon{--icon-size: 1.5rem;color:var(--palettes-grey-600);pointer-events:none}.textField-input-affix-clear{pointer-events:auto}.textField-prefix{display:flex;padding:0 var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);box-shadow:0 0 0 1px var(--component-textField-border);border-top-left-radius:var(--commons-borderRadius-M);border-bottom-left-radius:var(--commons-borderRadius-M)}.textField-prefix~.textField-input{border-top-left-radius:0;border-bottom-left-radius:0}.textField-suffix{display:flex;padding:0 var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);box-shadow:0 0 0 1px var(--component-textField-border);border-top-right-radius:var(--commons-borderRadius-M);border-bottom-right-radius:var(--commons-borderRadius-M);order:1}.textField-suffix~.textField-input{border-top-right-radius:0;border-bottom-right-radius:0}.textField.mod-S{--component-textField-fontSize: var(--sizes-S-fontSize);--component-textField-lineHeight: var(--sizes-S-lineHeight);--component-textField-padding: .375rem}.textField.mod-S .textField-input-affix-clear{--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-S .textField-input-affix-icon{--icon-size: 1.25rem}.textField.mod-XS{--component-textField-fontSize: var(--sizes-XS-fontSize);--component-textField-lineHeight: var(--sizes-XS-lineHeight);--component-textField-padding: var(--spacings-XXS)}.textField.mod-XS .textField-prefix,.textField.mod-XS .textField-suffix,.textField.mod-XS .textField-input-affix-icon{--icon-size: 1rem}.textField.mod-XS .textField-input-affix-clear{--components-clear-size: .75rem;--icon-size: .75rem}.textField.is-invalid,.textField:has(.textField-input-value[aria-invalid=true]){--component-textField-border: var(--palettes-error-400);--component-textField-background: var(--palettes-error-50);--component-textField-placeholder: var(--palettes-error-400)}.textField.is-invalid .textField-input:hover,.textField:has(.textField-input-value[aria-invalid=true]) .textField-input:hover{--component-textField-border: var(--palettes-error-600)}.textField.is-disabled,.textField:has(.textField-input-value:disabled){--component-textField-border: var(--palettes-grey-300);--component-textField-background: var(--palettes-grey-100);--component-textField-color: var(--palettes-grey-600)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: InlineMessageComponent, selector: "lu-inline-message", inputs: ["label", "state", "size"] }, { kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: i1.LuTooltipTriggerDirective, selector: "[luTooltip]", inputs: ["luTooltip", "luTooltipEnterDelay", "luTooltipLeaveDelay", "luTooltipDisabled", "luTooltipPosition", "luTooltipWhenEllipsis"], outputs: ["luTooltipOnOpen", "luTooltipOnClose"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }] }); }
|
|
93
92
|
}
|
|
94
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
95
94
|
type: Component,
|
|
96
|
-
args: [{ selector: 'lu-form-field', standalone: true, imports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent],
|
|
95
|
+
args: [{ selector: 'lu-form-field', standalone: true, imports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent], providers: [LuClass], template: "<label class=\"formLabel\" id=\"{{id}}-label\" for=\"{{id}}\" [class.u-mask]=\"hiddenLabel\" attr.aria-hidden=\"{{hiddenLabel}}\">\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\"></lu-icon>\n</label>\n<ng-container [ngSwitch]=\"layout\">\n\t<div class=\"textField\" *ngSwitchCase=\"'default'\">\n\t\t<ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n\t</div>\n\t<ng-container *ngSwitchCase=\"'checkbox'\">\n\t\t<ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n\t</ng-container>\n</ng-container>\n<lu-inline-message id=\"{{id}}-message\" *ngIf=\"inlineMessage\" [label]=\"inlineMessage\" [state]=\"inlineMessageState\"></lu-inline-message>\n<!--We have to do this because multiple ng-content in the same template leads to weird behaviors-->\n<ng-template #contentTpl>\n\t<ng-content></ng-content>\n</ng-template>\n", styles: [".textField{--component-textField-lineHeight: var(--size-M-lightHeight);--component-textField-fontSize: var(--size-M-fontSize);--component-textField-placeholder: var(--palettes-grey-400);--component-textField-background: var(--colors-white-color);--component-textField-border: var(--palettes-grey-300);--component-textField-color: var(--palettes-grey-800);--component-textField-prefix-color: var(--palettes-grey-600);--component-textField-padding: var(--spacings-XS);--component-textField-affix-padding: var(--component-textField-padding);display:flex;align-items:stretch;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background)}.textField:focus-within:not(:has(.textField-input-affix-clear:focus)){outline:2px solid var(--palettes-primary-700);outline-offset:3px}.textField-input{display:flex;align-items:center;width:100%;box-shadow:0 0 0 1px var(--component-textField-border);border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);position:relative}.textField-input:hover{--component-textField-border: var(--palettes-grey-400)}.textField-input:has(.textField-input-affix-icon){--component-textField-affix-padding: 2.5rem}.textField-input:has(.textField-input-affix-clear){--component-textField-affix-padding: 2rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-icon){--component-textField-affix-padding: 4rem}.textField-input-value{border:0;outline:0;line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);width:100%;padding:var(--component-textField-padding) var(--component-textField-affix-padding) var(--component-textField-padding) var(--component-textField-padding);background-color:transparent;color:var(--component-textField-color)}.textField-input-value::placeholder{color:var(--component-textField-placeholder)}.textField-input-affix{display:inline-flex;align-items:center;gap:var(--spacings-XS);position:absolute;right:var(--spacings-XS);pointer-events:none}.textField-input-affix-icon{--icon-size: 1.5rem;color:var(--palettes-grey-600);pointer-events:none}.textField-input-affix-clear{pointer-events:auto}.textField-prefix{display:flex;padding:0 var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);box-shadow:0 0 0 1px var(--component-textField-border);border-top-left-radius:var(--commons-borderRadius-M);border-bottom-left-radius:var(--commons-borderRadius-M)}.textField-prefix~.textField-input{border-top-left-radius:0;border-bottom-left-radius:0}.textField-suffix{display:flex;padding:0 var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);box-shadow:0 0 0 1px var(--component-textField-border);border-top-right-radius:var(--commons-borderRadius-M);border-bottom-right-radius:var(--commons-borderRadius-M);order:1}.textField-suffix~.textField-input{border-top-right-radius:0;border-bottom-right-radius:0}.textField.mod-S{--component-textField-fontSize: var(--sizes-S-fontSize);--component-textField-lineHeight: var(--sizes-S-lineHeight);--component-textField-padding: .375rem}.textField.mod-S .textField-input-affix-clear{--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-S .textField-input-affix-icon{--icon-size: 1.25rem}.textField.mod-XS{--component-textField-fontSize: var(--sizes-XS-fontSize);--component-textField-lineHeight: var(--sizes-XS-lineHeight);--component-textField-padding: var(--spacings-XXS)}.textField.mod-XS .textField-prefix,.textField.mod-XS .textField-suffix,.textField.mod-XS .textField-input-affix-icon{--icon-size: 1rem}.textField.mod-XS .textField-input-affix-clear{--components-clear-size: .75rem;--icon-size: .75rem}.textField.is-invalid,.textField:has(.textField-input-value[aria-invalid=true]){--component-textField-border: var(--palettes-error-400);--component-textField-background: var(--palettes-error-50);--component-textField-placeholder: var(--palettes-error-400)}.textField.is-invalid .textField-input:hover,.textField:has(.textField-input-value[aria-invalid=true]) .textField-input:hover{--component-textField-border: var(--palettes-error-600)}.textField.is-disabled,.textField:has(.textField-input-value:disabled){--component-textField-border: var(--palettes-grey-300);--component-textField-background: var(--palettes-grey-100);--component-textField-color: var(--palettes-grey-600)}\n"] }]
|
|
97
96
|
}], propDecorators: { clazz: [{
|
|
98
97
|
type: HostBinding,
|
|
99
98
|
args: ['class']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n})\nexport class InputDirective {\n\t@HostBinding('class')\n\tclazz = 'textField-input-value';\n\n\tpublic host = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { AfterViewInit, booleanAttribute, Component, ContentChild, HostBinding, inject, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';\nimport { InputDirective } from './input.directive';\nimport { FormFieldSize } from './form-field-size';\nimport { BehaviorSubject } from 'rxjs';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { NgClazz } from '@lucca-front/ng/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\thostDirectives: [NgClazz],\n})\nexport class FormFieldComponent implements OnChanges, OnDestroy, AfterViewInit {\n\t#ngClass = inject(NgClazz);\n\n\t@HostBinding('class')\n\tclazz = 'form-field';\n\n\t@Input({\n\t\trequired: true,\n\t})\n\tlabel: string;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\thiddenLabel = false;\n\n\t@Input()\n\ttooltip: string | SafeHtml;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\trequired = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tinvalid = false;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\t@Input()\n\tinlineMessageState: InlineMessageState;\n\n\t@Input()\n\tsize: FormFieldSize;\n\n\t@Input()\n\tlayout: 'default' | 'checkbox' = 'default';\n\n\t@ContentChild(InputDirective)\n\tinput: InputDirective;\n\n\tid: string;\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.#nativeInputRef.setAttribute('aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t}\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\t#nativeInputRef: HTMLElement;\n\n\tngOnChanges(): void {\n\t\tthis.#ngClass.ngClass = {\n\t\t\t[`mod-${this.size}`]: true,\n\t\t};\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.updateAria();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.input) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.#nativeInputRef = this.input.host.nativeElement;\n\t\tthis.id = `${this.#nativeInputRef.tagName.toLowerCase()}-${++nextId}`;\n\t\tthis.#nativeInputRef.id = this.id;\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#nativeInputRef.ariaInvalid = this.invalid.toString();\n\t\tthis.#nativeInputRef.ariaRequired = this.required.toString();\n\t\tthis.#nativeInputRef.setAttribute('aria-describedby', `${this.id}-message`);\n\t\tthis.addLabelledBy(`${this.id}-label`);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n}\n","<label class=\"formLabel\" id=\"{{id}}-label\" for=\"{{id}}\" [class.u-mask]=\"hiddenLabel\" attr.aria-hidden=\"{{hiddenLabel}}\">\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\"></lu-icon>\n</label>\n<ng-container [ngSwitch]=\"layout\">\n\t<div class=\"textField\" *ngSwitchCase=\"'default'\">\n\t\t<ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n\t</div>\n\t<ng-container *ngSwitchCase=\"'checkbox'\">\n\t\t<ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n\t</ng-container>\n</ng-container>\n<lu-inline-message id=\"{{id}}-message\" *ngIf=\"inlineMessage\" [label]=\"inlineMessage\" [state]=\"inlineMessageState\"></lu-inline-message>\n<!--We have to do this because multiple ng-content in the same template leads to weird behaviors-->\n<ng-template #contentTpl>\n\t<ng-content></ng-content>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, inject } from '@angular/core';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n})\nexport class InputDirective {\n\t@HostBinding('class')\n\tclazz = 'textField-input-value';\n\n\tpublic host = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { AfterViewInit, booleanAttribute, Component, ContentChild, HostBinding, inject, Input, OnChanges, OnDestroy } from '@angular/core';\nimport { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';\nimport { InputDirective } from './input.directive';\nimport { FormFieldSize } from './form-field-size';\nimport { BehaviorSubject } from 'rxjs';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { LuClass } from '@lucca-front/ng/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tproviders: [LuClass],\n})\nexport class FormFieldComponent implements OnChanges, OnDestroy, AfterViewInit {\n\t#luClass = inject(LuClass);\n\n\t@HostBinding('class')\n\tclazz = 'form-field';\n\n\t@Input({\n\t\trequired: true,\n\t})\n\tlabel: string;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\thiddenLabel = false;\n\n\t@Input()\n\ttooltip: string | SafeHtml;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\trequired = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tinvalid = false;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\t@Input()\n\tinlineMessageState: InlineMessageState;\n\n\t@Input()\n\tsize: FormFieldSize;\n\n\t@Input()\n\tlayout: 'default' | 'checkbox' = 'default';\n\n\t@ContentChild(InputDirective)\n\tinput: InputDirective;\n\n\tid: string;\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.#nativeInputRef.setAttribute('aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t}\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\t#nativeInputRef: HTMLElement;\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.size}`]: true,\n\t\t});\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.updateAria();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.input) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.#nativeInputRef = this.input.host.nativeElement;\n\t\tthis.id = `${this.#nativeInputRef.tagName.toLowerCase()}-${++nextId}`;\n\t\tthis.#nativeInputRef.id = this.id;\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#nativeInputRef.ariaInvalid = this.invalid.toString();\n\t\tthis.#nativeInputRef.ariaRequired = this.required.toString();\n\t\tthis.#nativeInputRef.setAttribute('aria-describedby', `${this.id}-message`);\n\t\tthis.addLabelledBy(`${this.id}-label`);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n}\n","<label class=\"formLabel\" id=\"{{id}}-label\" for=\"{{id}}\" [class.u-mask]=\"hiddenLabel\" attr.aria-hidden=\"{{hiddenLabel}}\">\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\"></lu-icon>\n</label>\n<ng-container [ngSwitch]=\"layout\">\n\t<div class=\"textField\" *ngSwitchCase=\"'default'\">\n\t\t<ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n\t</div>\n\t<ng-container *ngSwitchCase=\"'checkbox'\">\n\t\t<ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n\t</ng-container>\n</ng-container>\n<lu-inline-message id=\"{{id}}-message\" *ngIf=\"inlineMessage\" [label]=\"inlineMessage\" [state]=\"inlineMessageState\"></lu-inline-message>\n<!--We have to do this because multiple ng-content in the same template leads to weird behaviors-->\n<ng-template #contentTpl>\n\t<ng-content></ng-content>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
3
3
|
import { NgIf } from '@angular/common';
|
|
4
|
-
import
|
|
5
|
-
import { NgClazz } from '@lucca-front/ng/core';
|
|
4
|
+
import { LuClass } from '@lucca-front/ng/core';
|
|
6
5
|
import { IconComponent } from '@lucca-front/ng/icon';
|
|
7
6
|
|
|
8
7
|
class InlineMessageComponent {
|
|
9
|
-
#
|
|
8
|
+
#luClass = inject(LuClass);
|
|
10
9
|
ngOnChanges() {
|
|
11
|
-
this.#
|
|
10
|
+
this.#luClass.setState({
|
|
12
11
|
[`mod-${this.size}`]: true,
|
|
13
12
|
[`is-${this.state}`]: true,
|
|
14
|
-
|
|
15
|
-
};
|
|
13
|
+
});
|
|
16
14
|
}
|
|
17
15
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: InlineMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: InlineMessageComponent, isStandalone: true, selector: "lu-inline-message", inputs: { label: "label", state: "state", size: "size" },
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: InlineMessageComponent, isStandalone: true, selector: "lu-inline-message", inputs: { label: "label", state: "state", size: "size" }, providers: [LuClass], usesOnChanges: true, ngImport: i0, template: "<lu-icon [icon]=\"state\" *ngIf=\"state && state !== 'default'\" [alt]=\"state\"></lu-icon>{{label}}\n", styles: [".inlineMessage{--components-inlineMessage-fontSize: var(--sizes-S-fontSize);--components-inlineMessage-lineHeight: var(--sizes-S-lineHeight);--components-inlineMessage-icon-fontSize: var(--sizes-XS-lineHeight);--components-inlineMessage-color: var(--palettes-grey-700);--components-inlineMessage-icon-color: var(--palettes-grey-600);display:flex;gap:var(--components-inlineMessage-gap);font-size:var(--components-inlineMessage-fontSize);line-height:var(--components-inlineMessage-lineHeight);color:var(--components-inlineMessage-color)}.inlineMessage .lucca-icon{font-size:var(--components-inlineMessage-icon-fontSize);color:var(--components-inlineMessage-icon-color);margin-top:2px}.inlineMessage.mod-S{--components-inlineMessage-fontSize: var(--sizes-XS-fontSize);--components-inlineMessage-lineHeight: var(--sizes-XS-lineHeight);--components-inlineMessage-icon-fontSize: .75rem}.inlineMessage.is-success{--components-inlineMessage-icon-color: var(--palettes-success-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-success .lucca-icon:before{content:\"\\e9ed\";content:\"\\e9ed\"/\"\"}.inlineMessage.is-warning{--components-inlineMessage-icon-color: var(--palettes-warning-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-warning .lucca-icon:before{content:\"\\e992\";content:\"\\e992\"/\"\"}.inlineMessage.is-error{--components-inlineMessage-icon-color: var(--palettes-error-700);--components-inlineMessage-color: var(--palettes-error-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-error .lucca-icon:before{content:\"\\e92c\";content:\"\\e92c\"/\"\"}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
17
|
}
|
|
20
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: InlineMessageComponent, decorators: [{
|
|
21
19
|
type: Component,
|
|
22
|
-
args: [{ selector: 'lu-inline-message', standalone: true, imports: [NgIf, IconComponent],
|
|
20
|
+
args: [{ selector: 'lu-inline-message', standalone: true, imports: [NgIf, IconComponent], providers: [LuClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<lu-icon [icon]=\"state\" *ngIf=\"state && state !== 'default'\" [alt]=\"state\"></lu-icon>{{label}}\n", styles: [".inlineMessage{--components-inlineMessage-fontSize: var(--sizes-S-fontSize);--components-inlineMessage-lineHeight: var(--sizes-S-lineHeight);--components-inlineMessage-icon-fontSize: var(--sizes-XS-lineHeight);--components-inlineMessage-color: var(--palettes-grey-700);--components-inlineMessage-icon-color: var(--palettes-grey-600);display:flex;gap:var(--components-inlineMessage-gap);font-size:var(--components-inlineMessage-fontSize);line-height:var(--components-inlineMessage-lineHeight);color:var(--components-inlineMessage-color)}.inlineMessage .lucca-icon{font-size:var(--components-inlineMessage-icon-fontSize);color:var(--components-inlineMessage-icon-color);margin-top:2px}.inlineMessage.mod-S{--components-inlineMessage-fontSize: var(--sizes-XS-fontSize);--components-inlineMessage-lineHeight: var(--sizes-XS-lineHeight);--components-inlineMessage-icon-fontSize: .75rem}.inlineMessage.is-success{--components-inlineMessage-icon-color: var(--palettes-success-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-success .lucca-icon:before{content:\"\\e9ed\";content:\"\\e9ed\"/\"\"}.inlineMessage.is-warning{--components-inlineMessage-icon-color: var(--palettes-warning-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-warning .lucca-icon:before{content:\"\\e992\";content:\"\\e992\"/\"\"}.inlineMessage.is-error{--components-inlineMessage-icon-color: var(--palettes-error-700);--components-inlineMessage-color: var(--palettes-error-700);--components-inlineMessage-gap: var(--spacings-XXS)}.inlineMessage.is-error .lucca-icon:before{content:\"\\e92c\";content:\"\\e92c\"/\"\"}\n"] }]
|
|
23
21
|
}], propDecorators: { label: [{
|
|
24
22
|
type: Input,
|
|
25
23
|
args: [{ required: true }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-inline-message.mjs","sources":["../../../packages/ng/inline-message/inline-message.component.ts","../../../packages/ng/inline-message/inline-message.component.html","../../../packages/ng/inline-message/lucca-front-ng-inline-message.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, Input, OnChanges } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { InlineMessageState } from './inline-message-state';\nimport {
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-inline-message.mjs","sources":["../../../packages/ng/inline-message/inline-message.component.ts","../../../packages/ng/inline-message/inline-message.component.html","../../../packages/ng/inline-message/lucca-front-ng-inline-message.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, Input, OnChanges } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { InlineMessageState } from './inline-message-state';\nimport { LuClass } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\tselector: 'lu-inline-message',\n\tstandalone: true,\n\timports: [NgIf, IconComponent],\n\tproviders: [LuClass],\n\ttemplateUrl: './inline-message.component.html',\n\tstyleUrls: ['./inline-message.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InlineMessageComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\n\t@Input({ required: true })\n\tlabel: string;\n\n\t@Input()\n\tstate: InlineMessageState;\n\n\t@Input()\n\tsize: 'S' | 'M';\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t[`is-${this.state}`]: true,\n\t\t});\n\t}\n}\n","<lu-icon [icon]=\"state\" *ngIf=\"state && state !== 'default'\" [alt]=\"state\"></lu-icon>{{label}}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAea,sBAAsB,CAAA;AAClC,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAW3B,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtB,YAAA,CAAC,OAAO,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;AAC1B,YAAA,CAAC,MAAM,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AAC1B,SAAA,CAAC,CAAC;KACH;8GAjBW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EALvB,CAAC,OAAO,CAAC,+CCVrB,wGACA,EAAA,MAAA,EAAA,CAAA,smDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQW,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAMjB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACjB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,IAAI,EAAE,aAAa,CAAC,EAAA,SAAA,EACnB,CAAC,OAAO,CAAC,EAGH,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wGAAA,EAAA,MAAA,EAAA,CAAA,smDAAA,CAAA,EAAA,CAAA;8BAM/C,KAAK,EAAA,CAAA;sBADJ,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIzB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;;;AExBP;;AAEG;;;;"}
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, numberAttribute, Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
3
|
-
import
|
|
4
|
-
import { NgClazz } from '@lucca-front/ng/core';
|
|
3
|
+
import { LuClass } from '@lucca-front/ng/core';
|
|
5
4
|
|
|
6
5
|
class NumericBadgeComponent {
|
|
7
6
|
constructor() {
|
|
8
|
-
this.#
|
|
7
|
+
this.#luClass = inject(LuClass);
|
|
9
8
|
this.palette = 'none';
|
|
10
9
|
}
|
|
11
|
-
#
|
|
10
|
+
#luClass;
|
|
12
11
|
ngOnChanges(changes) {
|
|
13
12
|
if (changes['palette']?.currentValue || changes['size']?.currentValue) {
|
|
14
|
-
this.#
|
|
13
|
+
this.#luClass.setState([`palette-${this.palette}`, `mod-${this.size}`]);
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: NumericBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: NumericBadgeComponent, isStandalone: true, selector: "lu-numeric-badge", inputs: { value: ["value", "value", numberAttribute], size: "size", palette: "palette" },
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: NumericBadgeComponent, isStandalone: true, selector: "lu-numeric-badge", inputs: { value: ["value", "value", numberAttribute], size: "size", palette: "palette" }, providers: [LuClass], usesOnChanges: true, ngImport: i0, template: "{{value}}\n", styles: [".numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-grey-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-grey-700));--components-numericBadge-size: 1.5rem;--components-numericBadge-fontSize: var(--sizes-S-fontSize);--components-numericBadge-lineHeight: var(--sizes-S-lineHeight);--components-numericBadge-borderRadius: var(--commons-borderRadius-L);display:inline-flex;align-items:center;justify-content:center;height:var(--components-numericBadge-size);min-width:var(--components-numericBadge-size);padding:var(--spacings-XXS);font-size:var(--components-numericBadge-fontSize);line-height:var(--components-numericBadge-lineHeight);font-weight:600;background-color:var(--components-numericBadge-background);color:var(--components-numericBadge-color);border-radius:var(--components-numericBadge-borderRadius);transition-property:background-color,color;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease}.numericBadge.mod-S{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.numericBadge.mod-XS{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host{display:inline-flex}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
18
|
}
|
|
20
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: NumericBadgeComponent, decorators: [{
|
|
21
20
|
type: Component,
|
|
22
|
-
args: [{ selector: 'lu-numeric-badge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21
|
+
args: [{ selector: 'lu-numeric-badge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [LuClass], template: "{{value}}\n", styles: [".numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-grey-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-grey-700));--components-numericBadge-size: 1.5rem;--components-numericBadge-fontSize: var(--sizes-S-fontSize);--components-numericBadge-lineHeight: var(--sizes-S-lineHeight);--components-numericBadge-borderRadius: var(--commons-borderRadius-L);display:inline-flex;align-items:center;justify-content:center;height:var(--components-numericBadge-size);min-width:var(--components-numericBadge-size);padding:var(--spacings-XXS);font-size:var(--components-numericBadge-fontSize);line-height:var(--components-numericBadge-lineHeight);font-weight:600;background-color:var(--components-numericBadge-background);color:var(--components-numericBadge-color);border-radius:var(--components-numericBadge-borderRadius);transition-property:background-color,color;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease}.numericBadge.mod-S{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.numericBadge.mod-XS{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host{display:inline-flex}\n"] }]
|
|
23
22
|
}], propDecorators: {
|
|
24
23
|
/**
|
|
25
24
|
* The value to display, number only.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-numeric-badge.mjs","sources":["../../../packages/ng/numeric-badge/numeric-badge.component.ts","../../../packages/ng/numeric-badge/numeric-badge.component.html","../../../packages/ng/numeric-badge/lucca-front-ng-numeric-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, OnChanges, SimpleChanges } from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-numeric-badge.mjs","sources":["../../../packages/ng/numeric-badge/numeric-badge.component.ts","../../../packages/ng/numeric-badge/numeric-badge.component.html","../../../packages/ng/numeric-badge/lucca-front-ng-numeric-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, OnChanges, SimpleChanges } from '@angular/core';\nimport { LuClass, Palette } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-numeric-badge',\n\tstandalone: true,\n\ttemplateUrl: './numeric-badge.component.html',\n\tstyleUrls: ['./numeric-badge.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [LuClass],\n})\nexport class NumericBadgeComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\n\t@Input({ required: true, transform: numberAttribute })\n\t/**\n\t * The value to display, number only.\n\t */\n\tvalue!: number;\n\n\t@Input()\n\t/**\n\t * The size of the badge\n\t */\n\tsize: 'XS' | 'S' | 'M';\n\n\t@Input()\n\t/**\n\t * The palette to use for this badge. Defaults to 'none' (inherits parent palette)\n\t */\n\tpalette: Palette = 'none';\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['palette']?.currentValue || changes['size']?.currentValue) {\n\t\t\tthis.#luClass.setState([`palette-${this.palette}`, `mod-${this.size}`]);\n\t\t}\n\t}\n}\n","{{value}}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAWa,qBAAqB,CAAA;AARlC,IAAA,WAAA,GAAA;AASC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAkB3B,IAAO,CAAA,OAAA,GAAY,MAAM,CAAC;AAO1B,KAAA;AAzBA,IAAA,QAAQ,CAAmB;AAoB3B,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE;AACtE,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC,CAAC;AACxE,SAAA;KACD;8GAzBW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,wFAGG,eAAe,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EALxC,CAAC,OAAO,CAAC,+CCTrB,aACA,EAAA,MAAA,EAAA,CAAA,++CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDUa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;+BACC,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAGC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,++CAAA,CAAA,EAAA,CAAA;;AAMpB;;AAEG;QACH,KAAK,EAAA,CAAA;sBAJJ,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;;AAOrD;;AAEG;QACH,IAAI,EAAA,CAAA;sBAJH,KAAK;;AAON;;AAEG;QACH,OAAO,EAAA,CAAA;sBAJN,KAAK;;;AE1BP;;AAEG;;;;"}
|
|
@@ -5,7 +5,6 @@ import { BehaviorSubject } from 'rxjs';
|
|
|
5
5
|
import { InlineMessageState } from '@lucca-front/ng/inline-message';
|
|
6
6
|
import { SafeHtml } from '@angular/platform-browser';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@lucca-front/ng/core";
|
|
9
8
|
export declare class FormFieldComponent implements OnChanges, OnDestroy, AfterViewInit {
|
|
10
9
|
#private;
|
|
11
10
|
clazz: string;
|
|
@@ -32,7 +31,7 @@ export declare class FormFieldComponent implements OnChanges, OnDestroy, AfterVi
|
|
|
32
31
|
private updateAria;
|
|
33
32
|
ngOnDestroy(): void;
|
|
34
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
|
|
35
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "lu-form-field", never, { "label": { "alias": "label"; "required": true; }; "hiddenLabel": { "alias": "hiddenLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "required": { "alias": "required"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "inlineMessage": { "alias": "inlineMessage"; "required": false; }; "inlineMessageState": { "alias": "inlineMessageState"; "required": false; }; "size": { "alias": "size"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, {}, ["input"], ["*"], true,
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "lu-form-field", never, { "label": { "alias": "label"; "required": true; }; "hiddenLabel": { "alias": "hiddenLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "required": { "alias": "required"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "inlineMessage": { "alias": "inlineMessage"; "required": false; }; "inlineMessageState": { "alias": "inlineMessageState"; "required": false; }; "size": { "alias": "size"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, {}, ["input"], ["*"], true, never>;
|
|
36
35
|
static ngAcceptInputType_hiddenLabel: unknown;
|
|
37
36
|
static ngAcceptInputType_required: unknown;
|
|
38
37
|
static ngAcceptInputType_invalid: unknown;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { OnChanges } from '@angular/core';
|
|
2
2
|
import { InlineMessageState } from './inline-message-state';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@lucca-front/ng/core";
|
|
5
4
|
export declare class InlineMessageComponent implements OnChanges {
|
|
6
5
|
#private;
|
|
7
6
|
label: string;
|
|
@@ -9,5 +8,5 @@ export declare class InlineMessageComponent implements OnChanges {
|
|
|
9
8
|
size: 'S' | 'M';
|
|
10
9
|
ngOnChanges(): void;
|
|
11
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<InlineMessageComponent, never>;
|
|
12
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InlineMessageComponent, "lu-inline-message", never, { "label": { "alias": "label"; "required": true; }; "state": { "alias": "state"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true,
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InlineMessageComponent, "lu-inline-message", never, { "label": { "alias": "label"; "required": true; }; "state": { "alias": "state"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
13
12
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { Palette } from '@lucca-front/ng/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@lucca-front/ng/core";
|
|
5
4
|
export declare class NumericBadgeComponent implements OnChanges {
|
|
6
5
|
#private;
|
|
7
6
|
/**
|
|
@@ -18,6 +17,6 @@ export declare class NumericBadgeComponent implements OnChanges {
|
|
|
18
17
|
palette: Palette;
|
|
19
18
|
ngOnChanges(changes: SimpleChanges): void;
|
|
20
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<NumericBadgeComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NumericBadgeComponent, "lu-numeric-badge", never, { "value": { "alias": "value"; "required": true; }; "size": { "alias": "size"; "required": false; }; "palette": { "alias": "palette"; "required": false; }; }, {}, never, never, true,
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NumericBadgeComponent, "lu-numeric-badge", never, { "value": { "alias": "value"; "required": true; }; "size": { "alias": "size"; "required": false; }; "palette": { "alias": "palette"; "required": false; }; }, {}, never, never, true, never>;
|
|
22
21
|
static ngAcceptInputType_value: unknown;
|
|
23
22
|
}
|