Last change
on this file since ceaed42 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago |
initial commit
|
-
Property mode
set to
100644
|
File size:
1.4 KB
|
Rev | Line | |
---|
[6a3a178] | 1 | "use strict";
|
---|
| 2 | /**
|
---|
| 3 | * @license
|
---|
| 4 | * Copyright Google LLC All Rights Reserved.
|
---|
| 5 | *
|
---|
| 6 | * Use of this source code is governed by an MIT-style license that can be
|
---|
| 7 | * found in the LICENSE file at https://angular.io/license
|
---|
| 8 | */
|
---|
| 9 | Object.defineProperty(exports, "__esModule", { value: true });
|
---|
| 10 | exports.htmlSelectorFormat = void 0;
|
---|
| 11 | // As per https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name
|
---|
| 12 | // * Without mandatory `-` as the application prefix will generally cover its inclusion
|
---|
| 13 | // * And an allowance for upper alpha characters
|
---|
| 14 | // NOTE: This should eventually be broken out into two formats: full and partial (allows for prefix)
|
---|
| 15 | const unicodeRanges = [
|
---|
| 16 | [0xc0, 0xd6],
|
---|
| 17 | [0xd8, 0xf6],
|
---|
| 18 | [0xf8, 0x37d],
|
---|
| 19 | [0x37f, 0x1fff],
|
---|
| 20 | [0x200c, 0x200d],
|
---|
| 21 | [0x203f, 0x2040],
|
---|
| 22 | [0x2070, 0x218f],
|
---|
| 23 | [0x2c00, 0x2fef],
|
---|
| 24 | [0x3001, 0xd7ff],
|
---|
| 25 | [0xf900, 0xfdcf],
|
---|
| 26 | [0xfdf0, 0xfffd],
|
---|
| 27 | [0x10000, 0xeffff],
|
---|
| 28 | ];
|
---|
| 29 | function isValidElementName(name) {
|
---|
| 30 | let regex = '^[a-zA-Z][';
|
---|
| 31 | regex += '-.0-9_a-zA-Z\\u{B7}';
|
---|
| 32 | for (const range of unicodeRanges) {
|
---|
| 33 | regex += `\\u{${range[0].toString(16)}}-\\u{${range[1].toString(16)}}`;
|
---|
| 34 | }
|
---|
| 35 | regex += ']*$';
|
---|
| 36 | return new RegExp(regex, 'u').test(name);
|
---|
| 37 | }
|
---|
| 38 | exports.htmlSelectorFormat = {
|
---|
| 39 | name: 'html-selector',
|
---|
| 40 | formatter: {
|
---|
| 41 | async: false,
|
---|
| 42 | validate: (name) => typeof name === 'string' && isValidElementName(name),
|
---|
| 43 | },
|
---|
| 44 | };
|
---|
Note:
See
TracBrowser
for help on using the repository browser.