ngx-semantic 2.0.7-beta.1 → 2.0.9

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.
Files changed (101) hide show
  1. package/README.md +18 -18
  2. package/fesm2022/ngx-semantic-collections-breadcrumb.mjs +13 -13
  3. package/fesm2022/ngx-semantic-collections-breadcrumb.mjs.map +1 -1
  4. package/fesm2022/ngx-semantic-collections-form.mjs +18 -17
  5. package/fesm2022/ngx-semantic-collections-form.mjs.map +1 -1
  6. package/fesm2022/ngx-semantic-collections-grid.mjs +13 -13
  7. package/fesm2022/ngx-semantic-collections-grid.mjs.map +1 -1
  8. package/fesm2022/ngx-semantic-collections-menu.mjs +28 -19
  9. package/fesm2022/ngx-semantic-collections-menu.mjs.map +1 -1
  10. package/fesm2022/ngx-semantic-collections-message.mjs +16 -16
  11. package/fesm2022/ngx-semantic-collections-message.mjs.map +1 -1
  12. package/fesm2022/ngx-semantic-collections-table.mjs +16 -16
  13. package/fesm2022/ngx-semantic-collections-table.mjs.map +1 -1
  14. package/fesm2022/ngx-semantic-core-base.mjs +3 -3
  15. package/fesm2022/ngx-semantic-core-base.mjs.map +1 -1
  16. package/fesm2022/ngx-semantic-elements-button.mjs +10 -10
  17. package/fesm2022/ngx-semantic-elements-button.mjs.map +1 -1
  18. package/fesm2022/ngx-semantic-elements-container.mjs +7 -7
  19. package/fesm2022/ngx-semantic-elements-container.mjs.map +1 -1
  20. package/fesm2022/ngx-semantic-elements-divider.mjs +7 -7
  21. package/fesm2022/ngx-semantic-elements-divider.mjs.map +1 -1
  22. package/fesm2022/ngx-semantic-elements-flag.mjs +7 -7
  23. package/fesm2022/ngx-semantic-elements-flag.mjs.map +1 -1
  24. package/fesm2022/ngx-semantic-elements-header.mjs +10 -10
  25. package/fesm2022/ngx-semantic-elements-header.mjs.map +1 -1
  26. package/fesm2022/ngx-semantic-elements-icon.mjs +10 -10
  27. package/fesm2022/ngx-semantic-elements-icon.mjs.map +1 -1
  28. package/fesm2022/ngx-semantic-elements-image.mjs +10 -10
  29. package/fesm2022/ngx-semantic-elements-image.mjs.map +1 -1
  30. package/fesm2022/ngx-semantic-elements-input.mjs +7 -7
  31. package/fesm2022/ngx-semantic-elements-input.mjs.map +1 -1
  32. package/fesm2022/ngx-semantic-elements-label.mjs +10 -10
  33. package/fesm2022/ngx-semantic-elements-label.mjs.map +1 -1
  34. package/fesm2022/ngx-semantic-elements-list.mjs +10 -10
  35. package/fesm2022/ngx-semantic-elements-list.mjs.map +1 -1
  36. package/fesm2022/ngx-semantic-elements-loader.mjs +7 -7
  37. package/fesm2022/ngx-semantic-elements-loader.mjs.map +1 -1
  38. package/fesm2022/ngx-semantic-elements-placeholder.mjs +19 -19
  39. package/fesm2022/ngx-semantic-elements-placeholder.mjs.map +1 -1
  40. package/fesm2022/ngx-semantic-elements-rail.mjs +7 -7
  41. package/fesm2022/ngx-semantic-elements-rail.mjs.map +1 -1
  42. package/fesm2022/ngx-semantic-elements-reveal.mjs +10 -10
  43. package/fesm2022/ngx-semantic-elements-reveal.mjs.map +1 -1
  44. package/fesm2022/ngx-semantic-elements-segment.mjs +13 -13
  45. package/fesm2022/ngx-semantic-elements-segment.mjs.map +1 -1
  46. package/fesm2022/ngx-semantic-elements-steps.mjs +19 -19
  47. package/fesm2022/ngx-semantic-elements-steps.mjs.map +1 -1
  48. package/fesm2022/ngx-semantic-modules-accordion.mjs +10 -10
  49. package/fesm2022/ngx-semantic-modules-accordion.mjs.map +1 -1
  50. package/fesm2022/ngx-semantic-modules-checkbox.mjs +7 -7
  51. package/fesm2022/ngx-semantic-modules-checkbox.mjs.map +1 -1
  52. package/fesm2022/ngx-semantic-modules-dimmer.mjs +26 -17
  53. package/fesm2022/ngx-semantic-modules-dimmer.mjs.map +1 -1
  54. package/fesm2022/ngx-semantic-modules-dropdown.mjs +19 -19
  55. package/fesm2022/ngx-semantic-modules-dropdown.mjs.map +1 -1
  56. package/fesm2022/ngx-semantic-modules-embed.mjs +10 -10
  57. package/fesm2022/ngx-semantic-modules-embed.mjs.map +1 -1
  58. package/fesm2022/ngx-semantic-modules-modal.mjs +16 -16
  59. package/fesm2022/ngx-semantic-modules-modal.mjs.map +1 -1
  60. package/fesm2022/ngx-semantic-modules-popup.mjs +10 -10
  61. package/fesm2022/ngx-semantic-modules-popup.mjs.map +1 -1
  62. package/fesm2022/ngx-semantic-modules-progress.mjs +7 -7
  63. package/fesm2022/ngx-semantic-modules-progress.mjs.map +1 -1
  64. package/fesm2022/ngx-semantic-modules-rating.mjs +7 -7
  65. package/fesm2022/ngx-semantic-modules-rating.mjs.map +1 -1
  66. package/fesm2022/ngx-semantic-modules-search.mjs +7 -7
  67. package/fesm2022/ngx-semantic-modules-search.mjs.map +1 -1
  68. package/fesm2022/ngx-semantic-modules-select.mjs +13 -13
  69. package/fesm2022/ngx-semantic-modules-select.mjs.map +1 -1
  70. package/fesm2022/ngx-semantic-modules-shape.mjs +10 -10
  71. package/fesm2022/ngx-semantic-modules-shape.mjs.map +1 -1
  72. package/fesm2022/ngx-semantic-modules-sidebar.mjs +16 -16
  73. package/fesm2022/ngx-semantic-modules-sidebar.mjs.map +1 -1
  74. package/fesm2022/ngx-semantic-modules-sticky.mjs +7 -7
  75. package/fesm2022/ngx-semantic-modules-sticky.mjs.map +1 -1
  76. package/fesm2022/ngx-semantic-modules-tabs.mjs +10 -10
  77. package/fesm2022/ngx-semantic-modules-tabs.mjs.map +1 -1
  78. package/fesm2022/ngx-semantic-modules-transition.mjs +721 -0
  79. package/fesm2022/ngx-semantic-modules-transition.mjs.map +1 -0
  80. package/fesm2022/ngx-semantic-modules-visibility.mjs +525 -0
  81. package/fesm2022/ngx-semantic-modules-visibility.mjs.map +1 -0
  82. package/fesm2022/ngx-semantic-views-advertisement.mjs +7 -7
  83. package/fesm2022/ngx-semantic-views-advertisement.mjs.map +1 -1
  84. package/fesm2022/ngx-semantic-views-card.mjs +28 -28
  85. package/fesm2022/ngx-semantic-views-card.mjs.map +1 -1
  86. package/fesm2022/ngx-semantic-views-comment.mjs +31 -31
  87. package/fesm2022/ngx-semantic-views-comment.mjs.map +1 -1
  88. package/fesm2022/ngx-semantic-views-feed.mjs +28 -28
  89. package/fesm2022/ngx-semantic-views-feed.mjs.map +1 -1
  90. package/fesm2022/ngx-semantic-views-items.mjs +28 -28
  91. package/fesm2022/ngx-semantic-views-items.mjs.map +1 -1
  92. package/fesm2022/ngx-semantic-views-statistics.mjs +16 -16
  93. package/fesm2022/ngx-semantic-views-statistics.mjs.map +1 -1
  94. package/fesm2022/ngx-semantic.mjs +21 -9
  95. package/fesm2022/ngx-semantic.mjs.map +1 -1
  96. package/modules/transition/package.json +4 -0
  97. package/modules/visibility/package.json +4 -0
  98. package/package.json +9 -1
  99. package/types/ngx-semantic-modules-transition.d.ts +107 -0
  100. package/types/ngx-semantic-modules-visibility.d.ts +124 -0
  101. package/types/ngx-semantic.d.ts +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-semantic-collections-form.mjs","sources":["../../src/collections/form/form-field.directive.ts","../../src/collections/form/form-fields.directive.ts","../../src/collections/form/form.directive.ts","../../src/collections/form/validation/form-validation.dom.ts","../../src/collections/form/validation/form-validation.normalize.ts","../../src/collections/form/validation/form-validation.rules.ts","../../src/collections/form/validation/form-validation.prompt.ts","../../src/collections/form/validation/form-validation.model.ts","../../src/collections/form/validation/form-validation.control-errors.ts","../../src/collections/form/validation/form-validation.directive.ts","../../src/collections/form/form.module.ts","../../src/collections/form/public-api.ts","../../src/collections/form/ngx-semantic-collections-form.ts"],"sourcesContent":["/**\n * Created by bolor on 6/5/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiWidth } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\n@Directive({\n standalone: true,\n exportAs: 'suiFormField',\n selector: '[suiFormField]'\n})\nexport class SuiFormFieldDirective extends BaseDirective {\n @Input() public suiWidth: SuiWidth = null;\n @Input() @InputBoolean() public suiError = false;\n @Input() @InputBoolean() public suiInline = false;\n @Input() @InputBoolean() public disabled = false;\n @Input() @InputBoolean() public suiRequired = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.suiInline, 'inline'),\n this.suiWidth,\n this.suiWidth ? 'wide' : '',\n ClassUtils.getPropClass(this.disabled, 'disabled'),\n ClassUtils.getPropClass(this.suiRequired, 'required'),\n 'field',\n ClassUtils.getPropClass(this.suiError, 'error')\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 6/5/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiWidth } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\n@Directive({\n standalone: true,\n exportAs: 'suiFormFields',\n selector: '[suiFormFields]'\n})\nexport class SuiFormFieldsDirective extends BaseDirective {\n @Input() public suiWidth: SuiWidth = null;\n @Input() @InputBoolean() public suiInline = false;\n @Input() @InputBoolean() public suiGrouped = false;\n @Input() @InputBoolean() public suiEqualWidth = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n this.suiWidth,\n ClassUtils.getPropClass(this.suiInline, 'inline'),\n ClassUtils.getPropClass(this.suiGrouped, 'grouped'),\n ClassUtils.getPropClass(this.suiEqualWidth, 'equal width'),\n 'fields'\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 6/5/2020\n *\n * For Semantic-style rules on the same element, add `suiFormValidation` (`SuiFormValidationDirective` in `./validation/`).\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiSize } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\nexport type SuiFormState = 'success' | 'warning' | 'error' | null;\n\n@Directive({\n standalone: true,\n selector: '[sui-form]',\n exportAs: 'suiForm'\n})\nexport class SuiFormDirective extends BaseDirective {\n @Input() public suiState: SuiFormState = null;\n @Input() public suiSize: SuiSize = null;\n @Input() @InputBoolean() public suiLoading = false;\n @Input() @InputBoolean() public suiEqualWidth = false;\n @Input() @InputBoolean() public suiInverted = false;\n @Input() @InputBoolean() public suiReply = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n 'ui',\n ClassUtils.getPropClass(this.suiLoading, 'loading'),\n ClassUtils.getPropClass(this.suiEqualWidth, 'equal width'),\n ClassUtils.getPropClass(this.suiInverted, 'inverted'),\n ClassUtils.getPropClass(this.suiReply, 'reply'),\n this.suiSize,\n 'form',\n this.suiState\n ].join(' ');\n }\n}\n","/** Resolve control like Semantic UI: id, then name, then data-validate. */\nexport function resolveFieldElement(root: HTMLElement, identifier: string): HTMLElement | null {\n if (!identifier) {\n return null;\n }\n const byId = root.querySelector(`#${escapeCssId(identifier)}`);\n if (byId instanceof HTMLElement) {\n return byId;\n }\n const byName = root.querySelector(`[name=\"${escapeAttrSelector(identifier)}\"]`);\n if (byName instanceof HTMLElement) {\n return byName;\n }\n const byMeta = root.querySelector(`[data-validate=\"${escapeAttrSelector(identifier)}\"]`);\n return byMeta instanceof HTMLElement ? byMeta : null;\n}\n\nfunction escapeCssId(id: string): string {\n if (typeof CSS !== 'undefined' && typeof CSS.escape === 'function') {\n return CSS.escape(id);\n }\n return id.replace(/([^a-zA-Z0-9_-])/g, '\\\\$1');\n}\n\nexport function escapeAttrSelector(s: string): string {\n return s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n}\n\nexport function readControlValue(el: HTMLElement): unknown {\n if (el instanceof HTMLInputElement) {\n if (el.type === 'checkbox') {\n return el.checked;\n }\n if (el.type === 'radio') {\n const form = el.form ?? el.closest('form');\n if (form) {\n const checked = form.querySelector<HTMLInputElement>(\n `input[type=\"radio\"][name=\"${escapeAttrSelector(el.name)}\"]:checked`\n );\n return checked ? checked.value : '';\n }\n return el.checked ? el.value : '';\n }\n return el.value;\n }\n if (el instanceof HTMLSelectElement) {\n if (el.multiple) {\n return Array.from(el.selectedOptions).map(o => o.value);\n }\n return el.value;\n }\n if (el instanceof HTMLTextAreaElement) {\n return el.value;\n }\n return '';\n}\n\nexport function findSemanticField(el: HTMLElement): HTMLElement | null {\n return el.closest('.field');\n}\n\n/** Label text for prompts: label[for=id], aria-label, placeholder. */\nexport function inferFieldName(el: HTMLElement, identifier: string): string {\n if (el.id) {\n const label = el.ownerDocument?.querySelector(`label[for=\"${escapeAttrSelector(el.id)}\"]`);\n if (label?.textContent?.trim()) {\n return label.textContent.trim();\n }\n }\n const aria = el.getAttribute('aria-label');\n if (aria) {\n return aria;\n }\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {\n const ph = el.getAttribute('placeholder');\n if (ph) {\n return ph;\n }\n }\n return identifier;\n}\n","import type {\n SuiFormNormalizedField,\n SuiFormValidationFieldSpec,\n SuiFormValidationFieldsInput,\n SuiFormValidationRuleSpec\n} from './form-validation.model';\n\nfunction toRuleSpecs(\n rules: SuiFormValidationRuleSpec[] | string | string[]\n): SuiFormValidationRuleSpec[] {\n if (typeof rules === 'string') {\n return [{ type: rules }];\n }\n if (Array.isArray(rules)) {\n return rules.map(r => (typeof r === 'string' ? { type: r } : r));\n }\n return rules;\n}\n\nexport function normalizeFields(input: SuiFormValidationFieldsInput): SuiFormNormalizedField[] {\n const out: SuiFormNormalizedField[] = [];\n for (const key of Object.keys(input)) {\n const raw = input[key];\n if (typeof raw === 'string' || Array.isArray(raw)) {\n out.push({\n key,\n identifier: key,\n rules: toRuleSpecs(raw),\n optional: false\n });\n continue;\n }\n const spec = raw as SuiFormValidationFieldSpec;\n out.push({\n key,\n identifier: spec.identifier ?? key,\n rules: toRuleSpecs(spec.rules),\n optional: !!spec.optional,\n depends: spec.depends\n });\n }\n return out;\n}\n","import type { SuiFormRuleContext, SuiFormRuleParseResult, SuiFormValidationRuleSpec } from './form-validation.model';\n\n/** Split `ruleName[param]` (supports nested brackets in regExp by using `value` on rule spec instead). */\nexport function parseRuleType(type: string): SuiFormRuleParseResult {\n const t = type.trim();\n const open = t.indexOf('[');\n if (open === -1) {\n return { name: t };\n }\n const close = t.lastIndexOf(']');\n if (close <= open) {\n return { name: t };\n }\n return {\n name: t.slice(0, open),\n bracket: t.slice(open + 1, close)\n };\n}\n\nfunction asString(v: unknown): string {\n if (v === null || v === undefined) {\n return '';\n }\n if (Array.isArray(v)) {\n return v.join(',');\n }\n if (typeof v === 'boolean') {\n return v ? 'true' : '';\n }\n return String(v);\n}\n\nfunction isEmptyValue(v: unknown): boolean {\n if (v === null || v === undefined) {\n return true;\n }\n if (typeof v === 'boolean') {\n return !v;\n }\n if (Array.isArray(v)) {\n return v.length === 0;\n }\n return String(v).trim() === '';\n}\n\nconst EMAIL_RE =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nfunction isValidUrl(s: string): boolean {\n try {\n const u = new URL(s);\n return u.protocol === 'http:' || u.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nfunction parseIntegerRange(\n bracket: string | undefined\n): {min?: number; max?: number} | null {\n if (!bracket) {\n return {};\n }\n const m = /^(-?\\d+)\\.\\.(-?\\d+)$/.exec(bracket.trim());\n if (m) {\n return { min: Number(m[1]), max: Number(m[2]) };\n }\n return null;\n}\n\nfunction luhnValid(digits: string): boolean {\n const d = digits.replace(/\\D/g, '');\n if (d.length < 13) {\n return false;\n }\n let sum = 0;\n let alt = false;\n for (let i = d.length - 1; i >= 0; i--) {\n let n = parseInt(d.charAt(i), 10);\n if (alt) {\n n *= 2;\n if (n > 9) {\n n -= 9;\n }\n }\n sum += n;\n alt = !alt;\n }\n return sum % 10 === 0;\n}\n\nconst CARD_TYPES: Record<string, RegExp> = {\n visa: /^4[0-9]{12}(?:[0-9]{3})?$/,\n mastercard: /^5[1-5][0-9]{14}$/,\n amex: /^3[47][0-9]{13}$/,\n discover: /^6(?:011|5[0-9]{2})[0-9]{12}$/,\n unionpay: /^62[0-9]{14,17}$/,\n jcb: /^(?:2131|1800|35\\d{3})\\d{11}$/,\n dinersClub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,\n maestro: /^(?:5[0678]\\d{2}|6304|6706|6771|6709)\\d{8,15}$/,\n laser: /^(6304|6706|6709|6771)[0-9]{12,15}$/,\n visaElectron: /^(4026|417500|4405|4508|4844|4913|4917)\\d+$/\n};\n\n/**\n * Returns true if the value satisfies the rule.\n */\nexport function evaluateRule(\n rule: SuiFormValidationRuleSpec,\n fieldValue: unknown,\n fieldIdentifier: string,\n ctx: SuiFormRuleContext\n): boolean {\n const { name, bracket } = parseRuleType(rule.type);\n const s = asString(fieldValue);\n const lower = name.toLowerCase();\n\n switch (lower) {\n case 'empty':\n return !isEmptyValue(fieldValue);\n case 'checked':\n return fieldValue === true;\n case 'email':\n return s === '' || EMAIL_RE.test(s);\n case 'url':\n return s === '' || isValidUrl(s);\n case 'decimal':\n return s === '' || /^-?\\d+\\.\\d+$/.test(s.trim());\n case 'number':\n return s === '' || /^-?\\d+(\\.\\d+)?$/.test(s.trim());\n case 'integer': {\n if (s.trim() === '') {\n return true;\n }\n if (!/^-?\\d+$/.test(s.trim())) {\n return false;\n }\n const n = parseInt(s, 10);\n const range = parseIntegerRange(bracket);\n if (range && range.min !== undefined && range.max !== undefined) {\n return n >= range.min && n <= range.max;\n }\n return true;\n }\n case 'regexp': {\n let re: RegExp | null = null;\n if (rule.value instanceof RegExp) {\n re = rule.value;\n } else if (bracket) {\n const inner = bracket.trim();\n const m = inner.match(/^\\/(.*)\\/([gimuy]*)$/);\n if (m) {\n re = new RegExp(m[1], m[2] || '');\n }\n }\n if (!re) {\n return false;\n }\n return re.test(s);\n }\n case 'minlength': {\n const min = bracket ? parseInt(bracket, 10) : NaN;\n if (Number.isNaN(min)) {\n return false;\n }\n return s.length >= min;\n }\n case 'maxlength': {\n const max = bracket ? parseInt(bracket, 10) : NaN;\n if (Number.isNaN(max)) {\n return false;\n }\n return s.length <= max;\n }\n case 'exactlength': {\n const ex = bracket ? parseInt(bracket, 10) : NaN;\n if (Number.isNaN(ex)) {\n return false;\n }\n return s.length === ex;\n }\n case 'match': {\n if (!bracket) {\n return false;\n }\n const other = asString(ctx.getFieldValue(bracket));\n return s === other;\n }\n case 'different': {\n if (!bracket) {\n return false;\n }\n const other = asString(ctx.getFieldValue(bracket));\n return s !== other || s === '';\n }\n case 'mincount': {\n const min = bracket ? parseInt(bracket, 10) : NaN;\n if (!Number.isFinite(min)) {\n return false;\n }\n const arr = Array.isArray(fieldValue) ? fieldValue : [];\n return arr.length >= min;\n }\n case 'maxcount': {\n const max = bracket ? parseInt(bracket, 10) : NaN;\n if (!Number.isFinite(max)) {\n return false;\n }\n const arr = Array.isArray(fieldValue) ? fieldValue : [];\n return arr.length <= max;\n }\n case 'exactcount': {\n const ex = bracket ? parseInt(bracket, 10) : NaN;\n if (!Number.isFinite(ex)) {\n return false;\n }\n const arr = Array.isArray(fieldValue) ? fieldValue : [];\n return arr.length === ex;\n }\n case 'contains':\n return bracket ? s.toLowerCase().includes(bracket.toLowerCase()) : false;\n case 'containsexactly':\n return bracket ? s.includes(bracket) : false;\n case 'doesntcontain':\n return bracket ? !s.toLowerCase().includes(bracket.toLowerCase()) : false;\n case 'doesntcontainexactly':\n return bracket ? !s.includes(bracket) : false;\n case 'is':\n return bracket ? s.toLowerCase() === bracket.toLowerCase() : false;\n case 'isexactly':\n return bracket ? s === bracket : false;\n case 'not':\n return bracket ? s.toLowerCase() !== bracket.toLowerCase() : false;\n case 'notexactly':\n return bracket ? s !== bracket : false;\n case 'exactly':\n return bracket ? s.toLowerCase() === bracket.toLowerCase() : false;\n case 'creditcard': {\n const digits = s.replace(/\\s/g, '');\n if (!luhnValid(digits)) {\n return false;\n }\n if (!bracket) {\n return true;\n }\n const types = bracket.split(',').map(t => t.trim().toLowerCase());\n return types.some(t => {\n const rx = CARD_TYPES[t];\n return rx && rx.test(digits);\n });\n }\n default:\n return true;\n }\n}\n","import { parseRuleType } from './form-validation.rules';\n\nconst DEFAULT_PROMPTS: Record<string, string> = {\n empty: '{name} must have a value',\n checked: '{name} must be checked',\n email: '{name} must be a valid e-mail',\n url: '{name} must be a valid url',\n regexp: '{name} is not formatted correctly',\n integer: '{name} must be an integer',\n decimal: '{name} must be a decimal number',\n number: '{name} must be set to a number',\n is: \"{name} must be '{ruleValue}'\",\n isexactly: \"{name} must be exactly '{ruleValue}'\",\n not: \"{name} cannot be set to '{ruleValue}'\",\n notexactly: \"{name} cannot be set to exactly '{ruleValue}'\",\n contains: \"{name} must contain '{ruleValue}'\",\n containsexactly: \"{name} must contain exactly '{ruleValue}'\",\n doesntcontain: \"{name} must not contain '{ruleValue}'\",\n doesntcontainexactly: \"{name} must not contain exactly '{ruleValue}'\",\n minlength: '{name} must be at least {ruleValue} characters',\n exactlength: '{name} must be exactly {ruleValue} characters',\n maxlength: '{name} cannot be longer than {ruleValue} characters',\n match: '{name} must match {ruleValue} field',\n different: '{name} must have a different value than {ruleValue} field',\n creditcard: '{name} must be a valid credit card number',\n mincount: '{name} must have at least {ruleValue} choices',\n exactcount: '{name} must have exactly {ruleValue} choices',\n maxcount: '{name} must have {ruleValue} or less choices',\n exactly: \"{name} must be '{ruleValue}'\"\n};\n\nexport function formatValidationPrompt(\n ruleType: string,\n fieldName: string,\n fieldIdentifier: string,\n fieldValue: unknown,\n customPrompt: string | ((value: unknown) => string) | undefined,\n ruleValue: string\n): string {\n if (typeof customPrompt === 'function') {\n return customPrompt(fieldValue);\n }\n if (customPrompt) {\n return applyTemplate(customPrompt, fieldName, fieldIdentifier, fieldValue, ruleValue);\n }\n const { name } = parseRuleType(ruleType);\n const key = name.toLowerCase();\n const template = DEFAULT_PROMPTS[key] ?? 'Please enter a valid value';\n return applyTemplate(template, fieldName, fieldIdentifier, fieldValue, ruleValue);\n}\n\nfunction applyTemplate(\n template: string,\n name: string,\n identifier: string,\n value: unknown,\n ruleValue: string\n): string {\n const v =\n value === null || value === undefined\n ? ''\n : Array.isArray(value)\n ? value.join(',')\n : String(value);\n return template\n .replace(/\\{name\\}/g, name)\n .replace(/\\{identifier\\}/g, identifier)\n .replace(/\\{value\\}/g, v)\n .replace(/\\{ruleValue\\}/g, ruleValue);\n}\n","/**\n * Types for Semantic UI [Form Validation](https://semantic-ui.com/behaviors/form.html) — Angular port.\n * Lives with `ngx-semantic/collections/form` (use with `sui-form` + `suiFormValidation` on the same `<form>`).\n */\n\n/** `AbstractControl.errors` key for Semantic rule failures (string message). Works with built-in validators. */\nexport const SUI_FORM_VALIDATION_ERROR_KEY = 'suiFormValidation';\n\n/** Single rule as string, e.g. `'empty'`, `'minLength[6]'`. */\nexport type SuiFormRuleTypeString = string;\n\nexport interface SuiFormValidationRuleSpec {\n /** Rule name, optionally with bracket param: `minLength[6]`, `integer[1..10]`. */\n type: SuiFormRuleTypeString;\n prompt?: string | ((value: unknown) => string);\n /** For `regExp` when brackets are awkward; also used by custom rules. */\n value?: unknown;\n}\n\nexport interface SuiFormValidationFieldSpec {\n /** Defaults to the object key in `fields` when omitted. */\n identifier?: string;\n rules: SuiFormValidationRuleSpec[] | SuiFormRuleTypeString | SuiFormRuleTypeString[];\n optional?: boolean;\n /** Other field id/name/data-validate must be non-empty for these rules to run. */\n depends?: string;\n}\n\n/** Shorthand: `name: 'empty'` or `password: ['empty', 'minLength[6]']` or longhand field spec. */\nexport type SuiFormValidationFieldsInput = Record<\n string,\n SuiFormRuleTypeString | SuiFormRuleTypeString[] | SuiFormValidationFieldSpec\n>;\n\nexport interface SuiFormNormalizedField {\n key: string;\n identifier: string;\n rules: SuiFormValidationRuleSpec[];\n optional: boolean;\n depends?: string;\n}\n\nexport interface SuiFormRuleContext {\n getFieldValue(identifier: string): unknown;\n getFieldElement(identifier: string): Element | null;\n}\n\nexport interface SuiFormRuleParseResult {\n name: string;\n bracket?: string;\n}\n","import type { AbstractControl } from '@angular/forms';\nimport { SUI_FORM_VALIDATION_ERROR_KEY } from './form-validation.model';\n\n/** Merge or clear Semantic validation errors without wiping other validator errors on the control. */\nexport function patchSuiFormValidationControlError(control: AbstractControl, message: string | null): void {\n const key = SUI_FORM_VALIDATION_ERROR_KEY;\n const cur = control.errors;\n if (message === null) {\n if (!cur?.[key]) {\n return;\n }\n const rest = { ...cur };\n delete rest[key];\n control.setErrors(Object.keys(rest).length ? rest : null);\n } else {\n control.setErrors({ ...(cur || {}), [key]: message });\n }\n}\n","/**\n * Semantic UI [Form Validation](https://semantic-ui.com/behaviors/form.html) — native Angular (no jQuery).\n * Use on the same `<form>` as `[sui-form]` (via `SuiFormModule`); add `suiFormValidation` and `suiFields`\n * matching Semantic’s `fields` object.\n *\n * When the host `<form>` uses **`NgForm`** (template-driven) or **`[formGroup]`** (reactive), rule failures are\n * written to matching `AbstractControl` errors under `suiFormValidation` so `form.valid` /\n * `control.invalid` align with Semantic rules alongside built-in validators.\n */\n\nimport { Directive, ElementRef, EventEmitter, HostListener, Input, NgZone, OnChanges, OnDestroy, Output, Renderer2, SimpleChanges, inject } from '@angular/core';\nimport { FormGroupDirective, NgForm } from '@angular/forms';\nimport type { AbstractControl, FormGroup } from '@angular/forms';\nimport { InputBoolean } from 'ngx-semantic/core/util';\nimport { Subject, fromEvent, merge } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport type {\n SuiFormNormalizedField,\n SuiFormRuleContext,\n SuiFormValidationFieldsInput\n} from './form-validation.model';\nimport {\n escapeAttrSelector,\n findSemanticField,\n inferFieldName,\n readControlValue,\n resolveFieldElement\n} from './form-validation.dom';\nimport { normalizeFields } from './form-validation.normalize';\nimport { formatValidationPrompt } from './form-validation.prompt';\nimport { patchSuiFormValidationControlError } from './form-validation.control-errors';\nimport { evaluateRule, parseRuleType } from './form-validation.rules';\n\nfunction isEmptyValue(v: unknown): boolean {\n if (v === null || v === undefined) {\n return true;\n }\n if (typeof v === 'boolean') {\n return !v;\n }\n if (Array.isArray(v)) {\n return v.length === 0;\n }\n return String(v).trim() === '';\n}\n\n@Directive({\n standalone: true,\n selector: 'form[suiFormValidation]',\n exportAs: 'suiFormValidation'\n})\nexport class SuiFormValidationDirective implements OnChanges, OnDestroy {\n private readonly el = inject<ElementRef<HTMLFormElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private readonly ngForm = inject(NgForm, { optional: true, host: true });\n private readonly formGroupDir = inject(FormGroupDirective, { optional: true, host: true });\n\n /** Validation field definitions (shorthand or longhand), matching Semantic UI `fields`. */\n @Input() public suiFields: SuiFormValidationFieldsInput | null = null;\n /** `submit`, `blur`, or `change` — when to validate fields. */\n @Input() public suiOn: 'submit' | 'blur' | 'change' = 'submit';\n @Input() @InputBoolean() public suiInline = false;\n @Input() @InputBoolean() public suiRevalidate = true;\n /** Debounce (ms) for `change` / revalidation; `true` uses 300ms; `false` disables. */\n @Input() public suiDelay: number | boolean = true;\n @Input() @InputBoolean() public suiKeyboardShortcuts = true;\n /** When using `NgForm` / `FormGroup`, mark all controls touched after a failed submit (shows native errors). */\n @Input() @InputBoolean() public suiMarkControlsTouchedOnInvalid = true;\n\n @Output() public readonly suiOnSuccess = new EventEmitter<Event>();\n @Output() public readonly suiOnFailure = new EventEmitter<{errors: string[]; fields: string[]}>();\n\n private readonly destroy$ = new Subject<void>();\n private readonly host: HTMLFormElement;\n private normalized: SuiFormNormalizedField[] = [];\n private defaultValues = new Map<string, string>();\n private teardownFieldSubs: (() => void) | null = null;\n\n constructor() {\n const el = this.el;\n\n this.host = el.nativeElement;\n }\n\n /** Reactive `[formGroup]` or template-driven `NgForm` on this host, if any. */\n public getAngularForm(): FormGroup | null {\n if (this.formGroupDir?.form) {\n return this.formGroupDir.form;\n }\n if (this.ngForm?.form) {\n return this.ngForm.form;\n }\n return null;\n }\n\n /** Control whose name matches `suiFields` identifier (flat `FormGroup` only). */\n public resolveControl(identifier: string): AbstractControl | null {\n const g = this.getAngularForm();\n const c = g?.get(identifier);\n return c ?? null;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['suiFields']) {\n this.normalized = this.suiFields ? normalizeFields(this.suiFields) : [];\n }\n if (changes['suiFields'] || changes['suiOn'] || changes['suiDelay'] || changes['suiRevalidate']) {\n this.bindFieldTriggers();\n }\n }\n\n public ngOnDestroy(): void {\n this.teardownFieldSubs?.();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n @HostListener('submit', ['$event'])\n protected onHostSubmit(event: Event): void {\n if (!this.normalized.length) {\n return;\n }\n this.cacheDefaultsOnce();\n const r = this.runValidationWithUi();\n const form = this.getAngularForm();\n const ok = r.valid && (!form || form.valid);\n if (!ok) {\n if (this.suiMarkControlsTouchedOnInvalid && form) {\n form.markAllAsTouched();\n }\n event.preventDefault();\n event.stopPropagation();\n const errorsOut =\n r.errors.length > 0\n ? r.errors\n : form && !form.valid\n ? ['This form has validation errors.']\n : r.errors;\n this.suiOnFailure.emit({ errors: errorsOut, fields: r.fieldIds });\n return;\n }\n this.suiOnSuccess.emit(event);\n }\n\n @HostListener('keydown', ['$event'])\n protected onHostKeydown(ev: KeyboardEvent): void {\n if (!this.suiKeyboardShortcuts) {\n return;\n }\n if (!this.host.contains(ev.target as Node)) {\n return;\n }\n if (ev.key === 'Escape') {\n (ev.target as HTMLElement)?.blur?.();\n }\n }\n\n /** Validate the whole form, update UI, emit success/failure. */\n public validateForm(): boolean {\n this.cacheDefaultsOnce();\n const r = this.runValidationWithUi();\n const form = this.getAngularForm();\n const ok = r.valid && (!form || form.valid);\n if (!ok) {\n if (this.suiMarkControlsTouchedOnInvalid && form) {\n form.markAllAsTouched();\n }\n const errorsOut =\n r.errors.length > 0\n ? r.errors\n : form && !form.valid\n ? ['This form has validation errors.']\n : r.errors;\n this.suiOnFailure.emit({ errors: errorsOut, fields: r.fieldIds });\n } else {\n this.suiOnSuccess.emit(new Event('semantic-form-valid'));\n }\n return ok;\n }\n\n private runValidationWithUi(): {valid: boolean; errors: string[]; fieldIds: string[]} {\n const errors: string[] = [];\n const fieldIds: string[] = [];\n this.clearFormLevelMessage();\n this.clearAllFieldUi();\n for (const f of this.normalized) {\n const msg = this.evaluateFieldMessage(f);\n const ctrl = this.resolveControl(f.identifier);\n if (msg) {\n errors.push(msg);\n fieldIds.push(f.identifier);\n this.applyFieldError(f.identifier, msg);\n if (ctrl) {\n patchSuiFormValidationControlError(ctrl, msg);\n }\n }\n }\n this.renderFormLevelErrors(errors);\n return { valid: errors.length === 0, errors, fieldIds };\n }\n\n /** Validate one field by identifier (updates UI and `AbstractControl` errors when bound). */\n public validateField(identifier: string): boolean {\n const field = this.normalized.find(\n x => x.identifier === identifier || x.key === identifier\n );\n if (!field) {\n return true;\n }\n this.clearFieldUi(field.identifier);\n const msg = this.evaluateFieldMessage(field);\n const ctrl = this.resolveControl(field.identifier);\n if (msg) {\n if (ctrl) {\n patchSuiFormValidationControlError(ctrl, msg);\n }\n this.applyFieldError(field.identifier, msg);\n return false;\n }\n return true;\n }\n\n /** Whether the form (or one field) passes rules; does not update UI (Semantic `is valid`). */\n public isValid(identifier?: string): boolean {\n if (identifier) {\n const field = this.normalized.find(\n x => x.identifier === identifier || x.key === identifier\n );\n return field ? this.evaluateFieldMessage(field) === null : true;\n }\n return this.normalized.every(f => this.evaluateFieldMessage(f) === null);\n }\n\n public getFieldElement(identifier: string): HTMLElement | null {\n return resolveFieldElement(this.host, identifier);\n }\n\n public getValue(identifier: string): unknown {\n const ctrl = this.resolveControl(identifier);\n if (ctrl) {\n return ctrl.value;\n }\n const el = this.getFieldElement(identifier);\n return el ? readControlValue(el) : undefined;\n }\n\n public getValues(identifiers?: string[]): Record<string, unknown> {\n const ids =\n identifiers ??\n this.normalized.map(f => f.identifier);\n const out: Record<string, unknown> = {};\n for (const id of ids) {\n const ctrl = this.resolveControl(id);\n if (ctrl) {\n out[id] = ctrl.value;\n continue;\n }\n const el = resolveFieldElement(this.host, id);\n if (!el) {\n continue;\n }\n const name =\n el.getAttribute('name') ?? el.getAttribute('id') ?? el.getAttribute('data-validate') ?? id;\n out[name] = readControlValue(el);\n }\n return out;\n }\n\n public setValue(identifier: string, value: unknown): void {\n const ctrl = this.resolveControl(identifier);\n if (ctrl) {\n ctrl.setValue(value);\n return;\n }\n const el = resolveFieldElement(this.host, identifier);\n if (!el) {\n return;\n }\n this.writeControlValue(el, value);\n }\n\n public setValues(values: Record<string, unknown>): void {\n for (const k of Object.keys(values)) {\n this.setValue(k, values[k]);\n }\n }\n\n /** Restore values cached at first validation init (Semantic `reset`). */\n public reset(): void {\n const fields = this.host.querySelectorAll<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n 'input, select, textarea'\n );\n fields.forEach(control => {\n const key = control.name || control.id;\n if (!key) {\n return;\n }\n if (this.defaultValues.has(key)) {\n this.writeControlValue(control as HTMLElement, this.defaultValues.get(key));\n }\n });\n }\n\n /** Clear all field values (Semantic `clear`). */\n public clear(): void {\n this.host.querySelectorAll<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n 'input, select, textarea'\n ).forEach(control => {\n if (control instanceof HTMLInputElement) {\n if (control.type === 'checkbox' || control.type === 'radio') {\n control.checked = false;\n } else {\n control.value = '';\n }\n } else if (control instanceof HTMLSelectElement) {\n if (control.multiple) {\n Array.from(control.options).forEach(o => (o.selected = false));\n } else {\n control.selectedIndex = 0;\n }\n } else {\n control.value = '';\n }\n });\n }\n\n private debounceMs(): number {\n if (this.suiDelay === false) {\n return 0;\n }\n if (this.suiDelay === true) {\n return 300;\n }\n return Math.max(0, this.suiDelay);\n }\n\n private ctx(): SuiFormRuleContext {\n return {\n getFieldValue: id => {\n const c = this.resolveControl(id);\n if (c) {\n return c.value;\n }\n const el = resolveFieldElement(this.host, id);\n return el ? readControlValue(el) : '';\n },\n getFieldElement: id => resolveFieldElement(this.host, id)\n };\n }\n\n private evaluateFieldMessage(field: SuiFormNormalizedField): string | null {\n const ctx = this.ctx();\n if (field.depends) {\n const dep = ctx.getFieldValue(field.depends);\n if (isEmptyValue(dep)) {\n return null;\n }\n }\n const ctrl = this.resolveControl(field.identifier);\n const el = resolveFieldElement(this.host, field.identifier);\n const value = ctrl ? ctrl.value : el ? readControlValue(el) : undefined;\n if (field.optional && isEmptyValue(value)) {\n return null;\n }\n const fieldName = el ? inferFieldName(el, field.identifier) : field.identifier;\n for (const rule of field.rules) {\n if (!evaluateRule(rule, value, field.identifier, ctx)) {\n const { bracket } = parseRuleType(rule.type);\n return formatValidationPrompt(\n rule.type,\n fieldName,\n field.identifier,\n value,\n rule.prompt,\n bracket ?? ''\n );\n }\n }\n return null;\n }\n\n private cacheDefaultsOnce(): void {\n if (this.defaultValues.size) {\n return;\n }\n this.host.querySelectorAll<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n 'input, select, textarea'\n ).forEach(control => {\n const key = control.name || control.id;\n if (!key) {\n return;\n }\n if (control instanceof HTMLInputElement && (control.type === 'checkbox' || control.type === 'radio')) {\n this.defaultValues.set(key, control.checked ? '1' : '');\n } else {\n this.defaultValues.set(key, control.value);\n }\n });\n }\n\n private bindFieldTriggers(): void {\n this.teardownFieldSubs?.();\n this.teardownFieldSubs = null;\n if (!this.normalized.length || this.suiOn === 'submit') {\n return;\n }\n const sub = new Subject<void>();\n const stop = () => {\n sub.next();\n sub.complete();\n };\n this.teardownFieldSubs = stop;\n const ms = this.debounceMs();\n\n this.zone.runOutsideAngular(() => {\n for (const f of this.normalized) {\n const el = resolveFieldElement(this.host, f.identifier);\n if (!el) {\n continue;\n }\n const ev =\n this.suiOn === 'blur'\n ? fromEvent(el, 'blur')\n : merge(fromEvent(el, 'input'), fromEvent(el, 'change'));\n const piped =\n ms > 0 ? ev.pipe(debounceTime(ms)) : ev;\n piped.pipe(takeUntil(sub), takeUntil(this.destroy$)).subscribe(() => {\n this.zone.run(() => {\n this.validateField(f.identifier);\n });\n });\n }\n });\n\n if (this.suiRevalidate && this.suiOn === 'blur') {\n this.zone.runOutsideAngular(() => {\n for (const f of this.normalized) {\n const el = resolveFieldElement(this.host, f.identifier);\n if (!el) {\n continue;\n }\n const piped =\n ms > 0\n ? fromEvent(el, 'input').pipe(debounceTime(ms))\n : fromEvent(el, 'input');\n piped.pipe(takeUntil(sub), takeUntil(this.destroy$)).subscribe(() => {\n const group = findSemanticField(el);\n if (group?.classList.contains('error')) {\n this.zone.run(() => this.validateField(f.identifier));\n }\n });\n }\n });\n }\n }\n\n private clearAllFieldUi(): void {\n for (const f of this.normalized) {\n this.clearFieldUi(f.identifier);\n }\n }\n\n private clearFieldUi(identifier: string): void {\n const ctrl = this.resolveControl(identifier);\n if (ctrl) {\n patchSuiFormValidationControlError(ctrl, null);\n }\n const el = resolveFieldElement(this.host, identifier);\n const group = el ? findSemanticField(el) : null;\n if (group) {\n this.renderer.removeClass(group, 'error');\n const prompt = group.querySelector<HTMLElement>('.prompt');\n if (prompt) {\n this.renderer.setProperty(prompt, 'textContent', '');\n if (this.suiInline) {\n this.renderer.removeStyle(prompt, 'display');\n } else {\n this.renderer.setStyle(prompt, 'display', 'none');\n }\n }\n }\n }\n\n private applyFieldError(identifier: string, message: string): void {\n const el = resolveFieldElement(this.host, identifier);\n const group = el ? findSemanticField(el) : null;\n if (!group) {\n return;\n }\n this.renderer.addClass(group, 'error');\n if (!this.suiInline) {\n return;\n }\n let prompt = group.querySelector<HTMLElement>('.prompt');\n if (!prompt) {\n prompt = this.renderer.createElement('div');\n this.renderer.addClass(prompt, 'ui');\n this.renderer.addClass(prompt, 'basic');\n this.renderer.addClass(prompt, 'red');\n this.renderer.addClass(prompt, 'pointing');\n this.renderer.addClass(prompt, 'label');\n this.renderer.addClass(prompt, 'prompt');\n this.renderer.setAttribute(prompt, 'role', 'alert');\n this.renderer.appendChild(group, prompt);\n }\n this.renderer.setProperty(prompt, 'textContent', message);\n this.renderer.removeStyle(prompt, 'display');\n }\n\n private renderFormLevelErrors(messages: string[]): void {\n const block = this.host.querySelector<HTMLElement>('.ui.error.message, .error.message');\n if (!block || !messages.length) {\n return;\n }\n const ul = this.renderer.createElement('ul');\n ul.className = 'list';\n for (const m of messages) {\n const li = this.renderer.createElement('li');\n li.textContent = m;\n ul.appendChild(li);\n }\n block.innerHTML = '';\n block.appendChild(ul);\n this.renderer.removeClass(block, 'hidden');\n }\n\n private clearFormLevelMessage(): void {\n const block = this.host.querySelector<HTMLElement>('.ui.error.message, .error.message');\n if (block) {\n block.innerHTML = '';\n }\n }\n\n private writeControlValue(el: HTMLElement, value: unknown): void {\n if (el instanceof HTMLInputElement) {\n if (el.type === 'checkbox') {\n el.checked = Boolean(value);\n return;\n }\n if (el.type === 'radio') {\n const form = el.form ?? this.host;\n const name = el.name;\n const str = String(value ?? '');\n form\n .querySelectorAll<HTMLInputElement>(\n `input[type=\"radio\"][name=\"${escapeAttrSelector(name)}\"]`\n )\n .forEach(r => {\n r.checked = r.value === str;\n });\n return;\n }\n el.value = value === null || value === undefined ? '' : String(value);\n return;\n }\n if (el instanceof HTMLSelectElement) {\n if (el.multiple && Array.isArray(value)) {\n const set = new Set(value.map(String));\n Array.from(el.options).forEach(o => {\n o.selected = set.has(o.value);\n });\n } else {\n el.value = String(value ?? '');\n }\n return;\n }\n if (el instanceof HTMLTextAreaElement) {\n el.value = value === null || value === undefined ? '' : String(value);\n }\n }\n}\n","/**\n * Created by bolor on 5/26/2020\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SuiFormFieldDirective } from './form-field.directive';\nimport { SuiFormDirective } from './form.directive';\nimport { SuiFormFieldsDirective } from './form-fields.directive';\nimport { SuiFormValidationDirective } from './validation/form-validation.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SuiFormFieldDirective,\n SuiFormDirective,\n SuiFormFieldsDirective,\n SuiFormValidationDirective\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n SuiFormFieldDirective,\n SuiFormDirective,\n SuiFormFieldsDirective,\n SuiFormValidationDirective\n ]\n})\nexport class SuiFormModule {\n}\n","/**\n * Created by bolor on 6/5/2020\n */\n\nexport * from './form-field.directive';\nexport * from './form-fields.directive';\nexport * from './form.directive';\nexport * from './form.module';\nexport * from './validation/form-validation.model';\nexport * from './validation/form-validation.control-errors';\nexport * from './validation/form-validation.rules';\nexport * from './validation/form-validation.normalize';\nexport * from './validation/form-validation.prompt';\nexport * from './validation/form-validation.dom';\nexport * from './validation/form-validation.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isEmptyValue"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-semantic-collections-form.mjs","sources":["../../src/collections/form/form-field.directive.ts","../../src/collections/form/form-fields.directive.ts","../../src/collections/form/form.directive.ts","../../src/collections/form/validation/form-validation.dom.ts","../../src/collections/form/validation/form-validation.normalize.ts","../../src/collections/form/validation/form-validation.rules.ts","../../src/collections/form/validation/form-validation.prompt.ts","../../src/collections/form/validation/form-validation.model.ts","../../src/collections/form/validation/form-validation.control-errors.ts","../../src/collections/form/validation/form-validation.directive.ts","../../src/collections/form/form.module.ts","../../src/collections/form/public-api.ts","../../src/collections/form/ngx-semantic-collections-form.ts"],"sourcesContent":["/**\n * Created by bolor on 6/5/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiWidth } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\n@Directive({\n standalone: true,\n exportAs: 'suiFormField',\n selector: '[suiFormField]'\n})\nexport class SuiFormFieldDirective extends BaseDirective {\n @Input() public suiWidth: SuiWidth = null;\n @Input() @InputBoolean() public suiError = false;\n @Input() @InputBoolean() public suiInline = false;\n @Input() @InputBoolean() public disabled = false;\n @Input() @InputBoolean() public suiRequired = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n ClassUtils.getPropClass(this.suiInline, 'inline'),\n this.suiWidth,\n this.suiWidth ? 'wide' : '',\n ClassUtils.getPropClass(this.disabled, 'disabled'),\n ClassUtils.getPropClass(this.suiRequired, 'required'),\n 'field',\n ClassUtils.getPropClass(this.suiError, 'error')\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 6/5/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiWidth } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\n@Directive({\n standalone: true,\n exportAs: 'suiFormFields',\n selector: '[suiFormFields]'\n})\nexport class SuiFormFieldsDirective extends BaseDirective {\n @Input() public suiWidth: SuiWidth = null;\n @Input() @InputBoolean() public suiInline = false;\n @Input() @InputBoolean() public suiGrouped = false;\n @Input() @InputBoolean() public suiEqualWidth = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n this.suiWidth,\n ClassUtils.getPropClass(this.suiInline, 'inline'),\n ClassUtils.getPropClass(this.suiGrouped, 'grouped'),\n ClassUtils.getPropClass(this.suiEqualWidth, 'equal width'),\n 'fields'\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 6/5/2020\n *\n * For Semantic-style rules on the same element, add `suiFormValidation` (`SuiFormValidationDirective` in `./validation/`).\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiSize } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\nexport type SuiFormState = 'success' | 'warning' | 'error' | null;\n\n@Directive({\n standalone: true,\n selector: '[sui-form]',\n exportAs: 'suiForm'\n})\nexport class SuiFormDirective extends BaseDirective {\n @Input() public suiState: SuiFormState = null;\n @Input() public suiSize: SuiSize = null;\n @Input() @InputBoolean() public suiLoading = false;\n @Input() @InputBoolean() public suiEqualWidth = false;\n @Input() @InputBoolean() public suiInverted = false;\n @Input() @InputBoolean() public suiReply = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n 'ui',\n ClassUtils.getPropClass(this.suiLoading, 'loading'),\n ClassUtils.getPropClass(this.suiEqualWidth, 'equal width'),\n ClassUtils.getPropClass(this.suiInverted, 'inverted'),\n ClassUtils.getPropClass(this.suiReply, 'reply'),\n this.suiSize,\n 'form',\n this.suiState\n ].join(' ');\n }\n}\n","/** Resolve control like Semantic UI: id, then name, then data-validate. */\nexport function resolveFieldElement(root: HTMLElement, identifier: string): HTMLElement | null {\n if (!identifier) {\n return null;\n }\n const byId = root.querySelector(`#${escapeCssId(identifier)}`);\n if (byId instanceof HTMLElement) {\n return byId;\n }\n const byName = root.querySelector(`[name=\"${escapeAttrSelector(identifier)}\"]`);\n if (byName instanceof HTMLElement) {\n return byName;\n }\n const byMeta = root.querySelector(`[data-validate=\"${escapeAttrSelector(identifier)}\"]`);\n return byMeta instanceof HTMLElement ? byMeta : null;\n}\n\nfunction escapeCssId(id: string): string {\n if (typeof CSS !== 'undefined' && typeof CSS.escape === 'function') {\n return CSS.escape(id);\n }\n return id.replace(/([^a-zA-Z0-9_-])/g, '\\\\$1');\n}\n\nexport function escapeAttrSelector(s: string): string {\n return s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n}\n\nexport function readControlValue(el: HTMLElement): unknown {\n if (el instanceof HTMLInputElement) {\n if (el.type === 'checkbox') {\n return el.checked;\n }\n if (el.type === 'radio') {\n const form = el.form ?? el.closest('form');\n if (form) {\n const checked = form.querySelector<HTMLInputElement>(\n `input[type=\"radio\"][name=\"${escapeAttrSelector(el.name)}\"]:checked`\n );\n return checked ? checked.value : '';\n }\n return el.checked ? el.value : '';\n }\n return el.value;\n }\n if (el instanceof HTMLSelectElement) {\n if (el.multiple) {\n return Array.from(el.selectedOptions).map(o => o.value);\n }\n return el.value;\n }\n if (el instanceof HTMLTextAreaElement) {\n return el.value;\n }\n return '';\n}\n\nexport function findSemanticField(el: HTMLElement): HTMLElement | null {\n return el.closest('.field');\n}\n\n/** Label text for prompts: label[for=id], aria-label, placeholder. */\nexport function inferFieldName(el: HTMLElement, identifier: string): string {\n if (el.id) {\n const label = el.ownerDocument?.querySelector(`label[for=\"${escapeAttrSelector(el.id)}\"]`);\n if (label?.textContent?.trim()) {\n return label.textContent.trim();\n }\n }\n const aria = el.getAttribute('aria-label');\n if (aria) {\n return aria;\n }\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {\n const ph = el.getAttribute('placeholder');\n if (ph) {\n return ph;\n }\n }\n return identifier;\n}\n","import type {\n SuiFormNormalizedField,\n SuiFormValidationFieldSpec,\n SuiFormValidationFieldsInput,\n SuiFormValidationRuleSpec\n} from './form-validation.model';\n\nfunction toRuleSpecs(\n rules: SuiFormValidationRuleSpec[] | string | string[]\n): SuiFormValidationRuleSpec[] {\n if (typeof rules === 'string') {\n return [{ type: rules }];\n }\n if (Array.isArray(rules)) {\n return rules.map(r => (typeof r === 'string' ? { type: r } : r));\n }\n return rules;\n}\n\nexport function normalizeFields(input: SuiFormValidationFieldsInput): SuiFormNormalizedField[] {\n const out: SuiFormNormalizedField[] = [];\n for (const key of Object.keys(input)) {\n const raw = input[key];\n if (typeof raw === 'string' || Array.isArray(raw)) {\n out.push({\n key,\n identifier: key,\n rules: toRuleSpecs(raw),\n optional: false\n });\n continue;\n }\n const spec = raw as SuiFormValidationFieldSpec;\n out.push({\n key,\n identifier: spec.identifier ?? key,\n rules: toRuleSpecs(spec.rules),\n optional: !!spec.optional,\n depends: spec.depends\n });\n }\n return out;\n}\n","import type { SuiFormRuleContext, SuiFormRuleParseResult, SuiFormValidationRuleSpec } from './form-validation.model';\n\n/** Split `ruleName[param]` (supports nested brackets in regExp by using `value` on rule spec instead). */\nexport function parseRuleType(type: string): SuiFormRuleParseResult {\n const t = type.trim();\n const open = t.indexOf('[');\n if (open === -1) {\n return { name: t };\n }\n const close = t.lastIndexOf(']');\n if (close <= open) {\n return { name: t };\n }\n return {\n name: t.slice(0, open),\n bracket: t.slice(open + 1, close)\n };\n}\n\nfunction asString(v: unknown): string {\n if (v === null || v === undefined) {\n return '';\n }\n if (Array.isArray(v)) {\n return v.join(',');\n }\n if (typeof v === 'boolean') {\n return v ? 'true' : '';\n }\n return String(v);\n}\n\nfunction isEmptyValue(v: unknown): boolean {\n if (v === null || v === undefined) {\n return true;\n }\n if (typeof v === 'boolean') {\n return !v;\n }\n if (Array.isArray(v)) {\n return v.length === 0;\n }\n return String(v).trim() === '';\n}\n\nconst EMAIL_RE =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nfunction isValidUrl(s: string): boolean {\n try {\n const u = new URL(s);\n return u.protocol === 'http:' || u.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nfunction parseIntegerRange(\n bracket: string | undefined\n): {min?: number; max?: number} | null {\n if (!bracket) {\n return {};\n }\n const m = /^(-?\\d+)\\.\\.(-?\\d+)$/.exec(bracket.trim());\n if (m) {\n return { min: Number(m[1]), max: Number(m[2]) };\n }\n return null;\n}\n\nfunction luhnValid(digits: string): boolean {\n const d = digits.replace(/\\D/g, '');\n if (d.length < 13) {\n return false;\n }\n let sum = 0;\n let alt = false;\n for (let i = d.length - 1; i >= 0; i--) {\n let n = parseInt(d.charAt(i), 10);\n if (alt) {\n n *= 2;\n if (n > 9) {\n n -= 9;\n }\n }\n sum += n;\n alt = !alt;\n }\n return sum % 10 === 0;\n}\n\nconst CARD_TYPES: Record<string, RegExp> = {\n visa: /^4[0-9]{12}(?:[0-9]{3})?$/,\n mastercard: /^5[1-5][0-9]{14}$/,\n amex: /^3[47][0-9]{13}$/,\n discover: /^6(?:011|5[0-9]{2})[0-9]{12}$/,\n unionpay: /^62[0-9]{14,17}$/,\n jcb: /^(?:2131|1800|35\\d{3})\\d{11}$/,\n dinersClub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,\n maestro: /^(?:5[0678]\\d{2}|6304|6706|6771|6709)\\d{8,15}$/,\n laser: /^(6304|6706|6709|6771)[0-9]{12,15}$/,\n visaElectron: /^(4026|417500|4405|4508|4844|4913|4917)\\d+$/\n};\n\n/**\n * Returns true if the value satisfies the rule.\n */\nexport function evaluateRule(\n rule: SuiFormValidationRuleSpec,\n fieldValue: unknown,\n fieldIdentifier: string,\n ctx: SuiFormRuleContext\n): boolean {\n const { name, bracket } = parseRuleType(rule.type);\n const s = asString(fieldValue);\n const lower = name.toLowerCase();\n\n switch (lower) {\n case 'empty':\n return !isEmptyValue(fieldValue);\n case 'checked':\n return fieldValue === true;\n case 'email':\n return s === '' || EMAIL_RE.test(s);\n case 'url':\n return s === '' || isValidUrl(s);\n case 'decimal':\n return s === '' || /^-?\\d+\\.\\d+$/.test(s.trim());\n case 'number':\n return s === '' || /^-?\\d+(\\.\\d+)?$/.test(s.trim());\n case 'integer': {\n if (s.trim() === '') {\n return true;\n }\n if (!/^-?\\d+$/.test(s.trim())) {\n return false;\n }\n const n = parseInt(s, 10);\n const range = parseIntegerRange(bracket);\n if (range && range.min !== undefined && range.max !== undefined) {\n return n >= range.min && n <= range.max;\n }\n return true;\n }\n case 'regexp': {\n let re: RegExp | null = null;\n if (rule.value instanceof RegExp) {\n re = rule.value;\n } else if (bracket) {\n const inner = bracket.trim();\n const m = inner.match(/^\\/(.*)\\/([gimuy]*)$/);\n if (m) {\n re = new RegExp(m[1], m[2] || '');\n }\n }\n if (!re) {\n return false;\n }\n return re.test(s);\n }\n case 'minlength': {\n const min = bracket ? parseInt(bracket, 10) : NaN;\n if (Number.isNaN(min)) {\n return false;\n }\n return s.length >= min;\n }\n case 'maxlength': {\n const max = bracket ? parseInt(bracket, 10) : NaN;\n if (Number.isNaN(max)) {\n return false;\n }\n return s.length <= max;\n }\n case 'exactlength': {\n const ex = bracket ? parseInt(bracket, 10) : NaN;\n if (Number.isNaN(ex)) {\n return false;\n }\n return s.length === ex;\n }\n case 'match': {\n if (!bracket) {\n return false;\n }\n const other = asString(ctx.getFieldValue(bracket));\n return s === other;\n }\n case 'different': {\n if (!bracket) {\n return false;\n }\n const other = asString(ctx.getFieldValue(bracket));\n return s !== other || s === '';\n }\n case 'mincount': {\n const min = bracket ? parseInt(bracket, 10) : NaN;\n if (!Number.isFinite(min)) {\n return false;\n }\n const arr = Array.isArray(fieldValue) ? fieldValue : [];\n return arr.length >= min;\n }\n case 'maxcount': {\n const max = bracket ? parseInt(bracket, 10) : NaN;\n if (!Number.isFinite(max)) {\n return false;\n }\n const arr = Array.isArray(fieldValue) ? fieldValue : [];\n return arr.length <= max;\n }\n case 'exactcount': {\n const ex = bracket ? parseInt(bracket, 10) : NaN;\n if (!Number.isFinite(ex)) {\n return false;\n }\n const arr = Array.isArray(fieldValue) ? fieldValue : [];\n return arr.length === ex;\n }\n case 'contains':\n return bracket ? s.toLowerCase().includes(bracket.toLowerCase()) : false;\n case 'containsexactly':\n return bracket ? s.includes(bracket) : false;\n case 'doesntcontain':\n return bracket ? !s.toLowerCase().includes(bracket.toLowerCase()) : false;\n case 'doesntcontainexactly':\n return bracket ? !s.includes(bracket) : false;\n case 'is':\n return bracket ? s.toLowerCase() === bracket.toLowerCase() : false;\n case 'isexactly':\n return bracket ? s === bracket : false;\n case 'not':\n return bracket ? s.toLowerCase() !== bracket.toLowerCase() : false;\n case 'notexactly':\n return bracket ? s !== bracket : false;\n case 'exactly':\n return bracket ? s.toLowerCase() === bracket.toLowerCase() : false;\n case 'creditcard': {\n const digits = s.replace(/\\s/g, '');\n if (!luhnValid(digits)) {\n return false;\n }\n if (!bracket) {\n return true;\n }\n const types = bracket.split(',').map(t => t.trim().toLowerCase());\n return types.some(t => {\n const rx = CARD_TYPES[t];\n return rx && rx.test(digits);\n });\n }\n default:\n return true;\n }\n}\n","import { parseRuleType } from './form-validation.rules';\n\nconst DEFAULT_PROMPTS: Record<string, string> = {\n empty: '{name} must have a value',\n checked: '{name} must be checked',\n email: '{name} must be a valid e-mail',\n url: '{name} must be a valid url',\n regexp: '{name} is not formatted correctly',\n integer: '{name} must be an integer',\n decimal: '{name} must be a decimal number',\n number: '{name} must be set to a number',\n is: \"{name} must be '{ruleValue}'\",\n isexactly: \"{name} must be exactly '{ruleValue}'\",\n not: \"{name} cannot be set to '{ruleValue}'\",\n notexactly: \"{name} cannot be set to exactly '{ruleValue}'\",\n contains: \"{name} must contain '{ruleValue}'\",\n containsexactly: \"{name} must contain exactly '{ruleValue}'\",\n doesntcontain: \"{name} must not contain '{ruleValue}'\",\n doesntcontainexactly: \"{name} must not contain exactly '{ruleValue}'\",\n minlength: '{name} must be at least {ruleValue} characters',\n exactlength: '{name} must be exactly {ruleValue} characters',\n maxlength: '{name} cannot be longer than {ruleValue} characters',\n match: '{name} must match {ruleValue} field',\n different: '{name} must have a different value than {ruleValue} field',\n creditcard: '{name} must be a valid credit card number',\n mincount: '{name} must have at least {ruleValue} choices',\n exactcount: '{name} must have exactly {ruleValue} choices',\n maxcount: '{name} must have {ruleValue} or less choices',\n exactly: \"{name} must be '{ruleValue}'\"\n};\n\nexport function formatValidationPrompt(\n ruleType: string,\n fieldName: string,\n fieldIdentifier: string,\n fieldValue: unknown,\n customPrompt: string | ((value: unknown) => string) | undefined,\n ruleValue: string\n): string {\n if (typeof customPrompt === 'function') {\n return customPrompt(fieldValue);\n }\n if (customPrompt) {\n return applyTemplate(customPrompt, fieldName, fieldIdentifier, fieldValue, ruleValue);\n }\n const { name } = parseRuleType(ruleType);\n const key = name.toLowerCase();\n const template = DEFAULT_PROMPTS[key] ?? 'Please enter a valid value';\n return applyTemplate(template, fieldName, fieldIdentifier, fieldValue, ruleValue);\n}\n\nfunction applyTemplate(\n template: string,\n name: string,\n identifier: string,\n value: unknown,\n ruleValue: string\n): string {\n const v =\n value === null || value === undefined\n ? ''\n : Array.isArray(value)\n ? value.join(',')\n : String(value);\n return template\n .replace(/\\{name\\}/g, name)\n .replace(/\\{identifier\\}/g, identifier)\n .replace(/\\{value\\}/g, v)\n .replace(/\\{ruleValue\\}/g, ruleValue);\n}\n","/**\n * Types for Semantic UI [Form Validation](https://semantic-ui.com/behaviors/form.html) — Angular port.\n * Lives with `ngx-semantic/collections/form` (use with `sui-form` + `suiFormValidation` on the same `<form>`).\n */\n\n/** `AbstractControl.errors` key for Semantic rule failures (string message). Works with built-in validators. */\nexport const SUI_FORM_VALIDATION_ERROR_KEY = 'suiFormValidation';\n\n/** Single rule as string, e.g. `'empty'`, `'minLength[6]'`. */\nexport type SuiFormRuleTypeString = string;\n\nexport interface SuiFormValidationRuleSpec {\n /** Rule name, optionally with bracket param: `minLength[6]`, `integer[1..10]`. */\n type: SuiFormRuleTypeString;\n prompt?: string | ((value: unknown) => string);\n /** For `regExp` when brackets are awkward; also used by custom rules. */\n value?: unknown;\n}\n\nexport interface SuiFormValidationFieldSpec {\n /** Defaults to the object key in `fields` when omitted. */\n identifier?: string;\n rules: SuiFormValidationRuleSpec[] | SuiFormRuleTypeString | SuiFormRuleTypeString[];\n optional?: boolean;\n /** Other field id/name/data-validate must be non-empty for these rules to run. */\n depends?: string;\n}\n\n/** Shorthand: `name: 'empty'` or `password: ['empty', 'minLength[6]']` or longhand field spec. */\nexport type SuiFormValidationFieldsInput = Record<\n string,\n SuiFormRuleTypeString | SuiFormRuleTypeString[] | SuiFormValidationFieldSpec\n>;\n\nexport interface SuiFormNormalizedField {\n key: string;\n identifier: string;\n rules: SuiFormValidationRuleSpec[];\n optional: boolean;\n depends?: string;\n}\n\nexport interface SuiFormRuleContext {\n getFieldValue(identifier: string): unknown;\n getFieldElement(identifier: string): Element | null;\n}\n\nexport interface SuiFormRuleParseResult {\n name: string;\n bracket?: string;\n}\n","import type { AbstractControl } from '@angular/forms';\nimport { SUI_FORM_VALIDATION_ERROR_KEY } from './form-validation.model';\n\n/** Merge or clear Semantic validation errors without wiping other validator errors on the control. */\nexport function patchSuiFormValidationControlError(control: AbstractControl, message: string | null): void {\n const key = SUI_FORM_VALIDATION_ERROR_KEY;\n const cur = control.errors;\n if (message === null) {\n if (!cur?.[key]) {\n return;\n }\n const rest = { ...cur };\n delete rest[key];\n control.setErrors(Object.keys(rest).length ? rest : null);\n } else {\n control.setErrors({ ...(cur || {}), [key]: message });\n }\n}\n","/**\n * Semantic UI [Form Validation](https://semantic-ui.com/behaviors/form.html) — native Angular (no jQuery).\n * Use on the same `<form>` as `[sui-form]` (via `SuiFormModule`); add `suiFormValidation` and `suiFields`\n * matching Semantic’s `fields` object.\n *\n * When the host `<form>` uses **`NgForm`** (template-driven) or **`[formGroup]`** (reactive), rule failures are\n * written to matching `AbstractControl` errors under `suiFormValidation` so `form.valid` /\n * `control.invalid` align with Semantic rules alongside built-in validators.\n */\n\nimport { Directive, ElementRef, EventEmitter, HostListener, Input, NgZone, OnChanges, OnDestroy, Output, Renderer2, SimpleChanges, inject } from '@angular/core';\nimport { FormGroupDirective, NgForm } from '@angular/forms';\nimport type { AbstractControl, FormGroup } from '@angular/forms';\nimport { InputBoolean } from 'ngx-semantic/core/util';\nimport { Subject, fromEvent, merge } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport type {\n SuiFormNormalizedField,\n SuiFormRuleContext,\n SuiFormValidationFieldsInput\n} from './form-validation.model';\nimport {\n escapeAttrSelector,\n findSemanticField,\n inferFieldName,\n readControlValue,\n resolveFieldElement\n} from './form-validation.dom';\nimport { normalizeFields } from './form-validation.normalize';\nimport { formatValidationPrompt } from './form-validation.prompt';\nimport { patchSuiFormValidationControlError } from './form-validation.control-errors';\nimport { evaluateRule, parseRuleType } from './form-validation.rules';\n\nfunction isEmptyValue(v: unknown): boolean {\n if (v === null || v === undefined) {\n return true;\n }\n if (typeof v === 'boolean') {\n return !v;\n }\n if (Array.isArray(v)) {\n return v.length === 0;\n }\n return String(v).trim() === '';\n}\n\n@Directive({\n standalone: true,\n selector: 'form[suiFormValidation]',\n exportAs: 'suiFormValidation'\n})\nexport class SuiFormValidationDirective implements OnChanges, OnDestroy {\n private readonly el = inject<ElementRef<HTMLFormElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private readonly ngForm = inject(NgForm, { optional: true, host: true });\n private readonly formGroupDir = inject(FormGroupDirective, { optional: true, host: true });\n\n /** Validation field definitions (shorthand or longhand), matching Semantic UI `fields`. */\n @Input() public suiFields: SuiFormValidationFieldsInput | null = null;\n /** `submit`, `blur`, or `change` — when to validate fields. */\n @Input() public suiOn: 'submit' | 'blur' | 'change' = 'submit';\n @Input() @InputBoolean() public suiInline = false;\n @Input() @InputBoolean() public suiRevalidate = true;\n /** Debounce (ms) for `change` / revalidation; `true` uses 300ms; `false` disables. */\n @Input() public suiDelay: number | boolean = true;\n @Input() @InputBoolean() public suiKeyboardShortcuts = true;\n /** When using `NgForm` / `FormGroup`, mark all controls touched after a failed submit (shows native errors). */\n @Input() @InputBoolean() public suiMarkControlsTouchedOnInvalid = true;\n\n @Output() public readonly suiOnSuccess = new EventEmitter<Event>();\n @Output() public readonly suiOnFailure = new EventEmitter<{errors: string[]; fields: string[]}>();\n\n private readonly destroy$ = new Subject<void>();\n private readonly host: HTMLFormElement;\n private normalized: SuiFormNormalizedField[] = [];\n private defaultValues = new Map<string, string>();\n private teardownFieldSubs: (() => void) | null = null;\n\n constructor() {\n const el = this.el;\n\n this.host = el.nativeElement;\n }\n\n /** Reactive `[formGroup]` or template-driven `NgForm` on this host, if any. */\n public getAngularForm(): FormGroup | null {\n if (this.formGroupDir?.form) {\n return this.formGroupDir.form;\n }\n if (this.ngForm?.form) {\n return this.ngForm.form;\n }\n return null;\n }\n\n /** Control whose name matches `suiFields` identifier (flat `FormGroup` only). */\n public resolveControl(identifier: string): AbstractControl | null {\n const g = this.getAngularForm();\n const c = g?.get(identifier);\n return c ?? null;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['suiFields']) {\n this.normalized = this.suiFields ? normalizeFields(this.suiFields) : [];\n }\n if (changes['suiFields'] || changes['suiOn'] || changes['suiDelay'] || changes['suiRevalidate']) {\n this.bindFieldTriggers();\n }\n }\n\n public ngOnDestroy(): void {\n this.teardownFieldSubs?.();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n @HostListener('submit', ['$event'])\n protected onHostSubmit(event: Event): void {\n if (!this.normalized.length) {\n return;\n }\n this.cacheDefaultsOnce();\n const r = this.runValidationWithUi();\n const form = this.getAngularForm();\n const ok = r.valid && (!form || form.valid);\n // Always prevent native form navigation; consumers use suiOnSuccess for follow-up.\n event.preventDefault();\n if (!ok) {\n if (this.suiMarkControlsTouchedOnInvalid && form) {\n form.markAllAsTouched();\n }\n event.stopPropagation();\n const errorsOut =\n r.errors.length > 0\n ? r.errors\n : form && !form.valid\n ? ['This form has validation errors.']\n : r.errors;\n this.suiOnFailure.emit({ errors: errorsOut, fields: r.fieldIds });\n return;\n }\n this.suiOnSuccess.emit(event);\n }\n\n @HostListener('keydown', ['$event'])\n protected onHostKeydown(ev: KeyboardEvent): void {\n if (!this.suiKeyboardShortcuts) {\n return;\n }\n if (!this.host.contains(ev.target as Node)) {\n return;\n }\n if (ev.key === 'Escape') {\n (ev.target as HTMLElement)?.blur?.();\n }\n }\n\n /** Validate the whole form, update UI, emit success/failure. */\n public validateForm(): boolean {\n this.cacheDefaultsOnce();\n const r = this.runValidationWithUi();\n const form = this.getAngularForm();\n const ok = r.valid && (!form || form.valid);\n if (!ok) {\n if (this.suiMarkControlsTouchedOnInvalid && form) {\n form.markAllAsTouched();\n }\n const errorsOut =\n r.errors.length > 0\n ? r.errors\n : form && !form.valid\n ? ['This form has validation errors.']\n : r.errors;\n this.suiOnFailure.emit({ errors: errorsOut, fields: r.fieldIds });\n } else {\n this.suiOnSuccess.emit(new Event('semantic-form-valid'));\n }\n return ok;\n }\n\n private runValidationWithUi(): {valid: boolean; errors: string[]; fieldIds: string[]} {\n const errors: string[] = [];\n const fieldIds: string[] = [];\n this.clearFormLevelMessage();\n this.clearAllFieldUi();\n for (const f of this.normalized) {\n const msg = this.evaluateFieldMessage(f);\n const ctrl = this.resolveControl(f.identifier);\n if (msg) {\n errors.push(msg);\n fieldIds.push(f.identifier);\n this.applyFieldError(f.identifier, msg);\n if (ctrl) {\n patchSuiFormValidationControlError(ctrl, msg);\n }\n }\n }\n this.renderFormLevelErrors(errors);\n return { valid: errors.length === 0, errors, fieldIds };\n }\n\n /** Validate one field by identifier (updates UI and `AbstractControl` errors when bound). */\n public validateField(identifier: string): boolean {\n const field = this.normalized.find(\n x => x.identifier === identifier || x.key === identifier\n );\n if (!field) {\n return true;\n }\n this.clearFieldUi(field.identifier);\n const msg = this.evaluateFieldMessage(field);\n const ctrl = this.resolveControl(field.identifier);\n if (msg) {\n if (ctrl) {\n patchSuiFormValidationControlError(ctrl, msg);\n }\n this.applyFieldError(field.identifier, msg);\n return false;\n }\n return true;\n }\n\n /** Whether the form (or one field) passes rules; does not update UI (Semantic `is valid`). */\n public isValid(identifier?: string): boolean {\n if (identifier) {\n const field = this.normalized.find(\n x => x.identifier === identifier || x.key === identifier\n );\n return field ? this.evaluateFieldMessage(field) === null : true;\n }\n return this.normalized.every(f => this.evaluateFieldMessage(f) === null);\n }\n\n public getFieldElement(identifier: string): HTMLElement | null {\n return resolveFieldElement(this.host, identifier);\n }\n\n public getValue(identifier: string): unknown {\n const ctrl = this.resolveControl(identifier);\n if (ctrl) {\n return ctrl.value;\n }\n const el = this.getFieldElement(identifier);\n return el ? readControlValue(el) : undefined;\n }\n\n public getValues(identifiers?: string[]): Record<string, unknown> {\n const ids =\n identifiers ??\n this.normalized.map(f => f.identifier);\n const out: Record<string, unknown> = {};\n for (const id of ids) {\n const ctrl = this.resolveControl(id);\n if (ctrl) {\n out[id] = ctrl.value;\n continue;\n }\n const el = resolveFieldElement(this.host, id);\n if (!el) {\n continue;\n }\n const name =\n el.getAttribute('name') ?? el.getAttribute('id') ?? el.getAttribute('data-validate') ?? id;\n out[name] = readControlValue(el);\n }\n return out;\n }\n\n public setValue(identifier: string, value: unknown): void {\n const ctrl = this.resolveControl(identifier);\n if (ctrl) {\n ctrl.setValue(value);\n return;\n }\n const el = resolveFieldElement(this.host, identifier);\n if (!el) {\n return;\n }\n this.writeControlValue(el, value);\n }\n\n public setValues(values: Record<string, unknown>): void {\n for (const k of Object.keys(values)) {\n this.setValue(k, values[k]);\n }\n }\n\n /** Restore values cached at first validation init (Semantic `reset`). */\n public reset(): void {\n const fields = this.host.querySelectorAll<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n 'input, select, textarea'\n );\n fields.forEach(control => {\n const key = control.name || control.id;\n if (!key) {\n return;\n }\n if (this.defaultValues.has(key)) {\n this.writeControlValue(control as HTMLElement, this.defaultValues.get(key));\n }\n });\n }\n\n /** Clear all field values (Semantic `clear`). */\n public clear(): void {\n this.host.querySelectorAll<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n 'input, select, textarea'\n ).forEach(control => {\n if (control instanceof HTMLInputElement) {\n if (control.type === 'checkbox' || control.type === 'radio') {\n control.checked = false;\n } else {\n control.value = '';\n }\n } else if (control instanceof HTMLSelectElement) {\n if (control.multiple) {\n Array.from(control.options).forEach(o => (o.selected = false));\n } else {\n control.selectedIndex = 0;\n }\n } else {\n control.value = '';\n }\n });\n }\n\n private debounceMs(): number {\n if (this.suiDelay === false) {\n return 0;\n }\n if (this.suiDelay === true) {\n return 300;\n }\n return Math.max(0, this.suiDelay);\n }\n\n private ctx(): SuiFormRuleContext {\n return {\n getFieldValue: id => {\n const c = this.resolveControl(id);\n if (c) {\n return c.value;\n }\n const el = resolveFieldElement(this.host, id);\n return el ? readControlValue(el) : '';\n },\n getFieldElement: id => resolveFieldElement(this.host, id)\n };\n }\n\n private evaluateFieldMessage(field: SuiFormNormalizedField): string | null {\n const ctx = this.ctx();\n if (field.depends) {\n const dep = ctx.getFieldValue(field.depends);\n if (isEmptyValue(dep)) {\n return null;\n }\n }\n const ctrl = this.resolveControl(field.identifier);\n const el = resolveFieldElement(this.host, field.identifier);\n const value = ctrl ? ctrl.value : el ? readControlValue(el) : undefined;\n if (field.optional && isEmptyValue(value)) {\n return null;\n }\n const fieldName = el ? inferFieldName(el, field.identifier) : field.identifier;\n for (const rule of field.rules) {\n if (!evaluateRule(rule, value, field.identifier, ctx)) {\n const { bracket } = parseRuleType(rule.type);\n return formatValidationPrompt(\n rule.type,\n fieldName,\n field.identifier,\n value,\n rule.prompt,\n bracket ?? ''\n );\n }\n }\n return null;\n }\n\n private cacheDefaultsOnce(): void {\n if (this.defaultValues.size) {\n return;\n }\n this.host.querySelectorAll<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n 'input, select, textarea'\n ).forEach(control => {\n const key = control.name || control.id;\n if (!key) {\n return;\n }\n if (control instanceof HTMLInputElement && (control.type === 'checkbox' || control.type === 'radio')) {\n this.defaultValues.set(key, control.checked ? '1' : '');\n } else {\n this.defaultValues.set(key, control.value);\n }\n });\n }\n\n private bindFieldTriggers(): void {\n this.teardownFieldSubs?.();\n this.teardownFieldSubs = null;\n if (!this.normalized.length || this.suiOn === 'submit') {\n return;\n }\n const sub = new Subject<void>();\n const stop = () => {\n sub.next();\n sub.complete();\n };\n this.teardownFieldSubs = stop;\n const ms = this.debounceMs();\n\n this.zone.runOutsideAngular(() => {\n for (const f of this.normalized) {\n const el = resolveFieldElement(this.host, f.identifier);\n if (!el) {\n continue;\n }\n const ev =\n this.suiOn === 'blur'\n ? fromEvent(el, 'blur')\n : merge(fromEvent(el, 'input'), fromEvent(el, 'change'));\n const piped =\n ms > 0 ? ev.pipe(debounceTime(ms)) : ev;\n piped.pipe(takeUntil(sub), takeUntil(this.destroy$)).subscribe(() => {\n this.zone.run(() => {\n this.validateField(f.identifier);\n });\n });\n }\n });\n\n if (this.suiRevalidate && this.suiOn === 'blur') {\n this.zone.runOutsideAngular(() => {\n for (const f of this.normalized) {\n const el = resolveFieldElement(this.host, f.identifier);\n if (!el) {\n continue;\n }\n const piped =\n ms > 0\n ? fromEvent(el, 'input').pipe(debounceTime(ms))\n : fromEvent(el, 'input');\n piped.pipe(takeUntil(sub), takeUntil(this.destroy$)).subscribe(() => {\n const group = findSemanticField(el);\n if (group?.classList.contains('error')) {\n this.zone.run(() => this.validateField(f.identifier));\n }\n });\n }\n });\n }\n }\n\n private clearAllFieldUi(): void {\n for (const f of this.normalized) {\n this.clearFieldUi(f.identifier);\n }\n }\n\n private clearFieldUi(identifier: string): void {\n const ctrl = this.resolveControl(identifier);\n if (ctrl) {\n patchSuiFormValidationControlError(ctrl, null);\n }\n const el = resolveFieldElement(this.host, identifier);\n const group = el ? findSemanticField(el) : null;\n if (group) {\n this.renderer.removeClass(group, 'error');\n const prompt = group.querySelector<HTMLElement>('.prompt');\n if (prompt) {\n this.renderer.setProperty(prompt, 'textContent', '');\n if (this.suiInline) {\n this.renderer.removeStyle(prompt, 'display');\n } else {\n this.renderer.setStyle(prompt, 'display', 'none');\n }\n }\n }\n }\n\n private applyFieldError(identifier: string, message: string): void {\n const el = resolveFieldElement(this.host, identifier);\n const group = el ? findSemanticField(el) : null;\n if (!group) {\n return;\n }\n this.renderer.addClass(group, 'error');\n if (!this.suiInline) {\n return;\n }\n let prompt = group.querySelector<HTMLElement>('.prompt');\n if (!prompt) {\n prompt = this.renderer.createElement('div');\n this.renderer.addClass(prompt, 'ui');\n this.renderer.addClass(prompt, 'basic');\n this.renderer.addClass(prompt, 'red');\n this.renderer.addClass(prompt, 'pointing');\n this.renderer.addClass(prompt, 'label');\n this.renderer.addClass(prompt, 'prompt');\n this.renderer.setAttribute(prompt, 'role', 'alert');\n this.renderer.appendChild(group, prompt);\n }\n this.renderer.setProperty(prompt, 'textContent', message);\n this.renderer.removeStyle(prompt, 'display');\n }\n\n private renderFormLevelErrors(messages: string[]): void {\n const block = this.host.querySelector<HTMLElement>('.ui.error.message, .error.message');\n if (!block || !messages.length) {\n return;\n }\n const ul = this.renderer.createElement('ul');\n ul.className = 'list';\n for (const m of messages) {\n const li = this.renderer.createElement('li');\n li.textContent = m;\n ul.appendChild(li);\n }\n block.innerHTML = '';\n block.appendChild(ul);\n this.renderer.removeClass(block, 'hidden');\n }\n\n private clearFormLevelMessage(): void {\n const block = this.host.querySelector<HTMLElement>('.ui.error.message, .error.message');\n if (block) {\n block.innerHTML = '';\n }\n }\n\n private writeControlValue(el: HTMLElement, value: unknown): void {\n if (el instanceof HTMLInputElement) {\n if (el.type === 'checkbox') {\n el.checked = Boolean(value);\n return;\n }\n if (el.type === 'radio') {\n const form = el.form ?? this.host;\n const name = el.name;\n const str = String(value ?? '');\n form\n .querySelectorAll<HTMLInputElement>(\n `input[type=\"radio\"][name=\"${escapeAttrSelector(name)}\"]`\n )\n .forEach(r => {\n r.checked = r.value === str;\n });\n return;\n }\n el.value = value === null || value === undefined ? '' : String(value);\n return;\n }\n if (el instanceof HTMLSelectElement) {\n if (el.multiple && Array.isArray(value)) {\n const set = new Set(value.map(String));\n Array.from(el.options).forEach(o => {\n o.selected = set.has(o.value);\n });\n } else {\n el.value = String(value ?? '');\n }\n return;\n }\n if (el instanceof HTMLTextAreaElement) {\n el.value = value === null || value === undefined ? '' : String(value);\n }\n }\n}\n","/**\n * Created by bolor on 5/26/2020\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SuiFormFieldDirective } from './form-field.directive';\nimport { SuiFormDirective } from './form.directive';\nimport { SuiFormFieldsDirective } from './form-fields.directive';\nimport { SuiFormValidationDirective } from './validation/form-validation.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SuiFormFieldDirective,\n SuiFormDirective,\n SuiFormFieldsDirective,\n SuiFormValidationDirective\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n SuiFormFieldDirective,\n SuiFormDirective,\n SuiFormFieldsDirective,\n SuiFormValidationDirective\n ]\n})\nexport class SuiFormModule {\n}\n","/**\n * Created by bolor on 6/5/2020\n */\n\nexport * from './form-field.directive';\nexport * from './form-fields.directive';\nexport * from './form.directive';\nexport * from './form.module';\nexport * from './validation/form-validation.model';\nexport * from './validation/form-validation.control-errors';\nexport * from './validation/form-validation.rules';\nexport * from './validation/form-validation.normalize';\nexport * from './validation/form-validation.prompt';\nexport * from './validation/form-validation.dom';\nexport * from './validation/form-validation.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isEmptyValue"],"mappings":"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"}
@@ -41,8 +41,8 @@ class SuiGridDirective extends BaseDirective {
41
41
  ClassUtils.getPropClass(this.suiContainer, 'container')
42
42
  ].join(' ');
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: SuiGridDirective, isStandalone: true, selector: "[sui-grid]", inputs: { suiWidth: "suiWidth", suiAlignment: "suiAlignment", suiDivided: "suiDivided", suiCelled: "suiCelled", suiPadded: "suiPadded", suiReversed: "suiReversed", suiRelaxation: "suiRelaxation", suiEqual: "suiEqual", suiCentered: "suiCentered", suiContainer: "suiContainer", suiStackable: "suiStackable", suiDoubling: "suiDoubling" }, exportAs: ["suiGrid"], usesInheritance: true, ngImport: i0 }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.23", type: SuiGridDirective, isStandalone: true, selector: "[sui-grid]", inputs: { suiWidth: "suiWidth", suiAlignment: "suiAlignment", suiDivided: "suiDivided", suiCelled: "suiCelled", suiPadded: "suiPadded", suiReversed: "suiReversed", suiRelaxation: "suiRelaxation", suiEqual: "suiEqual", suiCentered: "suiCentered", suiContainer: "suiContainer", suiStackable: "suiStackable", suiDoubling: "suiDoubling" }, exportAs: ["suiGrid"], usesInheritance: true, ngImport: i0 }); }
46
46
  }
47
47
  __decorate([
48
48
  InputBoolean()
@@ -59,7 +59,7 @@ __decorate([
59
59
  __decorate([
60
60
  InputBoolean()
61
61
  ], SuiGridDirective.prototype, "suiDoubling", void 0);
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridDirective, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridDirective, decorators: [{
63
63
  type: Directive,
64
64
  args: [{
65
65
  standalone: true,
@@ -116,10 +116,10 @@ class SuiGridColumnDirective extends BaseDirective {
116
116
  'column'
117
117
  ].join(' ');
118
118
  }
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
120
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: SuiGridColumnDirective, isStandalone: true, selector: "[suiGridColumn]", inputs: { suiWidth: "suiWidth", suiFloated: "suiFloated", suiColour: "suiColour", suiAlignment: "suiAlignment", suiDeviceVisibility: "suiDeviceVisibility" }, exportAs: ["suiGridColumn"], usesInheritance: true, ngImport: i0 }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
120
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.23", type: SuiGridColumnDirective, isStandalone: true, selector: "[suiGridColumn]", inputs: { suiWidth: "suiWidth", suiFloated: "suiFloated", suiColour: "suiColour", suiAlignment: "suiAlignment", suiDeviceVisibility: "suiDeviceVisibility" }, exportAs: ["suiGridColumn"], usesInheritance: true, ngImport: i0 }); }
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridColumnDirective, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridColumnDirective, decorators: [{
123
123
  type: Directive,
124
124
  args: [{
125
125
  standalone: true,
@@ -159,8 +159,8 @@ class SuiGridRowDirective extends BaseDirective {
159
159
  'row'
160
160
  ].join(' ');
161
161
  }
162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
163
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: SuiGridRowDirective, isStandalone: true, selector: "[suiGridRow]", inputs: { suiWidth: "suiWidth", suiAlignment: "suiAlignment", suiDeviceVisibility: "suiDeviceVisibility", suiEqual: "suiEqual", suiCentered: "suiCentered" }, exportAs: ["suiGridRow"], usesInheritance: true, ngImport: i0 }); }
162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
163
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.23", type: SuiGridRowDirective, isStandalone: true, selector: "[suiGridRow]", inputs: { suiWidth: "suiWidth", suiAlignment: "suiAlignment", suiDeviceVisibility: "suiDeviceVisibility", suiEqual: "suiEqual", suiCentered: "suiCentered" }, exportAs: ["suiGridRow"], usesInheritance: true, ngImport: i0 }); }
164
164
  }
165
165
  __decorate([
166
166
  InputBoolean()
@@ -168,7 +168,7 @@ __decorate([
168
168
  __decorate([
169
169
  InputBoolean()
170
170
  ], SuiGridRowDirective.prototype, "suiCentered", void 0);
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridRowDirective, decorators: [{
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridRowDirective, decorators: [{
172
172
  type: Directive,
173
173
  args: [{
174
174
  standalone: true,
@@ -191,16 +191,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
191
191
  * Created by bolor on 5/26/2020
192
192
  */
193
193
  class SuiGridModule {
194
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: SuiGridModule, imports: [CommonModule,
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.23", ngImport: i0, type: SuiGridModule, imports: [CommonModule,
196
196
  SuiGridDirective,
197
197
  SuiGridColumnDirective,
198
198
  SuiGridRowDirective], exports: [SuiGridDirective,
199
199
  SuiGridColumnDirective,
200
200
  SuiGridRowDirective] }); }
201
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridModule, imports: [CommonModule] }); }
201
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridModule, imports: [CommonModule] }); }
202
202
  }
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SuiGridModule, decorators: [{
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SuiGridModule, decorators: [{
204
204
  type: NgModule,
205
205
  args: [{
206
206
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-semantic-collections-grid.mjs","sources":["../../src/collections/grid/grid.directive.ts","../../src/collections/grid/grid-column.directive.ts","../../src/collections/grid/grid-row.directive.ts","../../src/collections/grid/grid.module.ts","../../src/collections/grid/public-api.ts","../../src/collections/grid/ngx-semantic-collections-grid.ts"],"sourcesContent":["/**\n * Created by bolor on 6/11/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiWidth } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\nexport type SuiGridAlignment = 'left aligned' | 'center aligned' | 'right aligned' | null;\nexport type SuiGridDivision = 'divided' | 'vertically divided' | null;\nexport type SuiGridCellType = 'celled' | 'internally celled' | null;\nexport type SuiGridPadding = 'padding' | 'vertically padding' | null;\nexport type SuiGridReverse = 'computer reversed' | 'tablet reversed' | 'mobile reversed' | null;\nexport type SuiGridRelaxation = 'relaxed' | 'very relaxed' | null;\n\n@Directive({\n standalone: true,\n selector: '[sui-grid]',\n exportAs: 'suiGrid'\n})\nexport class SuiGridDirective extends BaseDirective {\n @Input() public suiWidth: SuiWidth = null;\n @Input() public suiAlignment: SuiGridAlignment = null;\n @Input() public suiDivided: SuiGridDivision = null;\n @Input() public suiCelled: SuiGridCellType = null;\n @Input() public suiPadded: SuiGridPadding = null;\n @Input() public suiReversed: SuiGridReverse = null;\n @Input() public suiRelaxation: SuiGridRelaxation = null;\n @Input() @InputBoolean() public suiEqual = false;\n @Input() @InputBoolean() public suiCentered = false;\n @Input() @InputBoolean() public suiContainer = false;\n @Input() @InputBoolean() public suiStackable = false;\n @Input() @InputBoolean() public suiDoubling = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n 'ui',\n this.suiWidth,\n this.suiWidth ? 'column' : '',\n this.suiAlignment,\n this.suiDivided,\n this.suiCelled,\n this.suiPadded,\n this.suiReversed,\n this.suiRelaxation,\n ClassUtils.getPropClass(this.suiStackable, 'stackable'),\n ClassUtils.getPropClass(this.suiEqual, 'equal width'),\n ClassUtils.getPropClass(this.suiCentered, 'centered'),\n ClassUtils.getPropClass(this.suiDoubling, 'doubling'),\n 'grid',\n ClassUtils.getPropClass(this.suiContainer, 'container')\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 6/14/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiColour, SuiWidth } from 'ngx-semantic/core/enums';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\nexport type SuiColumnFloat = 'left floated' | 'right floated' | null;\nexport type SuiColumnAlignment = 'left aligned' | 'middle aligned' | 'right aligned' | null;\n\n@Directive({\n standalone: true,\n exportAs: 'suiGridColumn',\n selector: '[suiGridColumn]'\n})\nexport class SuiGridColumnDirective extends BaseDirective{\n @Input() public suiWidth: SuiWidth = null;\n @Input() public suiFloated: SuiColumnFloat = null;\n @Input() public suiColour: SuiColour = null;\n @Input() public suiAlignment: SuiColumnAlignment = null;\n @Input() public suiDeviceVisibility: string | null = null;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n this.suiFloated,\n this.suiAlignment,\n this.suiWidth,\n this.suiWidth ? 'wide' : '',\n this.suiColour,\n this.suiDeviceVisibility,\n 'column'\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 6/14/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiDeviceVisibility, SuiWidth } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\nexport type SuiRowAlignment = 'left aligned' | 'middle aligned' | 'right aligned' | null;\n\n@Directive({\n standalone: true,\n exportAs: 'suiGridRow',\n selector: '[suiGridRow]'\n})\nexport class SuiGridRowDirective extends BaseDirective {\n @Input() public suiWidth: SuiWidth = null;\n @Input() public suiAlignment: SuiRowAlignment = null;\n @Input() public suiDeviceVisibility: SuiDeviceVisibility = null;\n @Input() @InputBoolean() public suiEqual = false;\n @Input() @InputBoolean() public suiCentered = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n this.suiAlignment,\n this.suiWidth,\n this.suiWidth ? 'column' : '',\n this.suiDeviceVisibility,\n ClassUtils.getPropClass(this.suiEqual, 'equal width'),\n ClassUtils.getPropClass(this.suiCentered, 'centered'),\n 'row'\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 5/26/2020\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SuiGridDirective } from './grid.directive';\nimport { SuiGridColumnDirective } from './grid-column.directive';\nimport { SuiGridRowDirective } from './grid-row.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n SuiGridDirective,\n SuiGridColumnDirective,\n SuiGridRowDirective\n ],\n exports: [\n SuiGridDirective,\n SuiGridColumnDirective,\n SuiGridRowDirective\n ]\n})\nexport class SuiGridModule {\n}\n","/**\n * Created by bolor on 6/11/2020\n */\n\nexport * from './grid.directive';\nexport * from './grid-column.directive';\nexport * from './grid-row.directive';\nexport * from './grid.module';\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":"ngx-semantic-collections-grid.mjs","sources":["../../src/collections/grid/grid.directive.ts","../../src/collections/grid/grid-column.directive.ts","../../src/collections/grid/grid-row.directive.ts","../../src/collections/grid/grid.module.ts","../../src/collections/grid/public-api.ts","../../src/collections/grid/ngx-semantic-collections-grid.ts"],"sourcesContent":["/**\n * Created by bolor on 6/11/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiWidth } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\nexport type SuiGridAlignment = 'left aligned' | 'center aligned' | 'right aligned' | null;\nexport type SuiGridDivision = 'divided' | 'vertically divided' | null;\nexport type SuiGridCellType = 'celled' | 'internally celled' | null;\nexport type SuiGridPadding = 'padding' | 'vertically padding' | null;\nexport type SuiGridReverse = 'computer reversed' | 'tablet reversed' | 'mobile reversed' | null;\nexport type SuiGridRelaxation = 'relaxed' | 'very relaxed' | null;\n\n@Directive({\n standalone: true,\n selector: '[sui-grid]',\n exportAs: 'suiGrid'\n})\nexport class SuiGridDirective extends BaseDirective {\n @Input() public suiWidth: SuiWidth = null;\n @Input() public suiAlignment: SuiGridAlignment = null;\n @Input() public suiDivided: SuiGridDivision = null;\n @Input() public suiCelled: SuiGridCellType = null;\n @Input() public suiPadded: SuiGridPadding = null;\n @Input() public suiReversed: SuiGridReverse = null;\n @Input() public suiRelaxation: SuiGridRelaxation = null;\n @Input() @InputBoolean() public suiEqual = false;\n @Input() @InputBoolean() public suiCentered = false;\n @Input() @InputBoolean() public suiContainer = false;\n @Input() @InputBoolean() public suiStackable = false;\n @Input() @InputBoolean() public suiDoubling = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n 'ui',\n this.suiWidth,\n this.suiWidth ? 'column' : '',\n this.suiAlignment,\n this.suiDivided,\n this.suiCelled,\n this.suiPadded,\n this.suiReversed,\n this.suiRelaxation,\n ClassUtils.getPropClass(this.suiStackable, 'stackable'),\n ClassUtils.getPropClass(this.suiEqual, 'equal width'),\n ClassUtils.getPropClass(this.suiCentered, 'centered'),\n ClassUtils.getPropClass(this.suiDoubling, 'doubling'),\n 'grid',\n ClassUtils.getPropClass(this.suiContainer, 'container')\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 6/14/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiColour, SuiWidth } from 'ngx-semantic/core/enums';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\nexport type SuiColumnFloat = 'left floated' | 'right floated' | null;\nexport type SuiColumnAlignment = 'left aligned' | 'middle aligned' | 'right aligned' | null;\n\n@Directive({\n standalone: true,\n exportAs: 'suiGridColumn',\n selector: '[suiGridColumn]'\n})\nexport class SuiGridColumnDirective extends BaseDirective{\n @Input() public suiWidth: SuiWidth = null;\n @Input() public suiFloated: SuiColumnFloat = null;\n @Input() public suiColour: SuiColour = null;\n @Input() public suiAlignment: SuiColumnAlignment = null;\n @Input() public suiDeviceVisibility: string | null = null;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n this.suiFloated,\n this.suiAlignment,\n this.suiWidth,\n this.suiWidth ? 'wide' : '',\n this.suiColour,\n this.suiDeviceVisibility,\n 'column'\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 6/14/2020\n */\n\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { SuiDeviceVisibility, SuiWidth } from 'ngx-semantic/core/enums';\nimport { ClassUtils, InputBoolean } from 'ngx-semantic/core/util';\nimport { BaseDirective } from 'ngx-semantic/core/base';\n\nexport type SuiRowAlignment = 'left aligned' | 'middle aligned' | 'right aligned' | null;\n\n@Directive({\n standalone: true,\n exportAs: 'suiGridRow',\n selector: '[suiGridRow]'\n})\nexport class SuiGridRowDirective extends BaseDirective {\n @Input() public suiWidth: SuiWidth = null;\n @Input() public suiAlignment: SuiRowAlignment = null;\n @Input() public suiDeviceVisibility: SuiDeviceVisibility = null;\n @Input() @InputBoolean() public suiEqual = false;\n @Input() @InputBoolean() public suiCentered = false;\n\n constructor() {\n const element = inject(ElementRef);\n\n super(element);\n }\n\n get classes(): string {\n return [\n this.suiAlignment,\n this.suiWidth,\n this.suiWidth ? 'column' : '',\n this.suiDeviceVisibility,\n ClassUtils.getPropClass(this.suiEqual, 'equal width'),\n ClassUtils.getPropClass(this.suiCentered, 'centered'),\n 'row'\n ].join(' ');\n }\n}\n","/**\n * Created by bolor on 5/26/2020\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SuiGridDirective } from './grid.directive';\nimport { SuiGridColumnDirective } from './grid-column.directive';\nimport { SuiGridRowDirective } from './grid-row.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n SuiGridDirective,\n SuiGridColumnDirective,\n SuiGridRowDirective\n ],\n exports: [\n SuiGridDirective,\n SuiGridColumnDirective,\n SuiGridRowDirective\n ]\n})\nexport class SuiGridModule {\n}\n","/**\n * Created by bolor on 6/11/2020\n */\n\nexport * from './grid.directive';\nexport * from './grid-column.directive';\nexport * from './grid-row.directive';\nexport * from './grid.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}