Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
ae110fa
fix(tooltip-advanced): use local path to images
RivaIvanova Mar 5, 2026
ac95f65
Merge branch 'vnext' into rivanova/tooltip-adv-image-links
ddaribo Mar 12, 2026
5c081f4
Merge branch 'vnext' into rivanova/tooltip-adv-image-links
RivaIvanova Mar 13, 2026
3f53e5e
fix(ci): updating overrides after lib update
ChronosSF Mar 13, 2026
7ac2855
Merge branch 'vnext' into rivanova/tooltip-adv-image-links
kacheshmarova Mar 13, 2026
088b777
Merge pull request #3921 from IgniteUI/rivanova/tooltip-adv-image-links
kacheshmarova Mar 13, 2026
5c9f045
Merge pull request #3930 from IgniteUI/copilot/fix-theming-widget-styles
Copilot Apr 14, 2026
f1b18a0
chore(localization): update igniteui-i18n to 1.0.4 (#3933)
dkamburov Apr 17, 2026
97ac419
Updating staging with latest rc (#3931)
ChronosSF Apr 20, 2026
80f74ae
fix(samples): show grid sample in overlay container correctly
wnvko Apr 15, 2026
9b16a57
fix(samples): show grid sample in overlay container correctly (#3934)
ChronosSF Apr 21, 2026
82c9cbe
Merge remote-tracking branch 'origin/master' into vnext
ChronosSF Apr 21, 2026
0b2e61a
fix(live-editing): improve generated standalone and styles handling (…
dobromirts Apr 22, 2026
e200522
fix(*): Include samples code-tabs live-editing configs (#3952)
dobromirts Apr 22, 2026
7acc705
fix(grid): update styling samples to use correct theming scoping and …
simeonoff Apr 22, 2026
a3a14d6
feat(*): updating vnext to latest release
ChronosSF Apr 23, 2026
576b58f
chore(*): Update live-editing version (#3956)
dobromirts Apr 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 51 additions & 2 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const { generateLiveEditing } = require('igniteui-live-editing');
const argv = yargs(hideBin(process.argv)).parse();

const submodule = "igniteui-live-editing-samples";
const mainPkgDevDeps = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf8')).devDependencies;

gulp.task("generate-live-editing", async () => {
var appDv = argv.appDv !== undefined && argv.appDv.toLowerCase().trim() === "true";
Expand Down Expand Up @@ -53,7 +54,38 @@ gulp.task("generate-live-editing", async () => {
},
additionalSharedStyles: ["_variables.scss", "_app-layout.scss"]
})
const samplesDir = path.resolve(liveEditingOptions.samplesDir, 'samples');
await generateLiveEditing(liveEditingOptions);

const sharedJsonPath = path.join(samplesDir, 'shared.json');
const sharedJson = JSON.parse(fs.readFileSync(sharedJsonPath, 'utf8'));
const stylesFile = sharedJson.files && sharedJson.files.find(f => f.path === 'src/styles.scss');
if (stylesFile) {
const tailwindImportRegex = /@import\s+["']tailwindcss["']\s*;?\r?\n?/g;
const stylesWithTailwind = tailwindImportRegex.test(stylesFile.content)
? stylesFile.content
: stylesFile.content.replace(/((?:@use [^\n]+\n)+)/, '$1@import "tailwindcss";\n');
stylesFile.content = stylesFile.content.replace(tailwindImportRegex, '');
fs.writeFileSync(sharedJsonPath, JSON.stringify(sharedJson));

fs.readdirSync(samplesDir)
.filter(f => f.endsWith('.json') && f !== 'shared.json' && f !== 'meta.json')
.forEach(f => {
const samplePath = path.join(samplesDir, f);
const sample = JSON.parse(fs.readFileSync(samplePath, 'utf8'));
const deps = JSON.parse(sample.sampleDependencies || '{}');
if (deps['tailwindcss']) {
const existing = sample.sampleFiles.findIndex(sf => sf.path === 'src/styles.scss');
const styleEntry = { path: 'src/styles.scss', hasRelativeAssetsUrls: false, content: stylesWithTailwind };
if (existing !== -1) {
sample.sampleFiles[existing] = styleEntry;
} else {
sample.sampleFiles.push(styleEntry);
}
fs.writeFileSync(samplePath, JSON.stringify(sample));
}
});
}
});

gulp.task("overwrite-package-json", (done) => {
Expand Down Expand Up @@ -116,8 +148,15 @@ const processApp = (projectPath, dest, directoriesToExclude) => {
"path": "package.json",
"hasRelativeAssetsUrls": false,
"content": JSON.stringify({
"dependencies": JSON.parse(jsonObj.sampleDependencies),
"devDependencies": sharedJson.devDependencies
"name": "example-app",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "node --max_old_space_size=12192 node_modules/@angular/cli/bin/ng serve",
"build": "node --max_old_space_size=12192 node_modules/@angular/cli/bin/ng build"
},
"dependencies": Object.fromEntries(Object.entries(JSON.parse(jsonObj.sampleDependencies)).map(([pkg, ver]) => [pkg, /^[\^~><=*]/.test(ver) ? ver : '^' + ver])),
"devDependencies": Object.fromEntries(Object.keys(sharedJson.devDependencies).map(pkg => [pkg, mainPkgDevDeps[pkg] || sharedJson.devDependencies[pkg]]))
}, null, 2)
}
additionals.push(packageJson);
Expand Down Expand Up @@ -153,6 +192,16 @@ const processApp = (projectPath, dest, directoriesToExclude) => {
} else {
sampleContent = sampleFile.content;
}
if (sampleFile.path === 'src/styles.scss') {
const deps = JSON.parse(jsonObj.sampleDependencies);
const tailwindImportRegex = /@import\s+["']tailwindcss["'];?/;
const tailwindImportStripRegex = /@import\s+["']tailwindcss["'];?\r?\n?/g;
if (deps['tailwindcss'] && !tailwindImportRegex.test(sampleContent)) {
sampleContent = sampleContent.replace(/((?:@use [^\n]+\n)+)/, '$1@import "tailwindcss";\n');
} else if (!deps['tailwindcss']) {
sampleContent = sampleContent.replace(tailwindImportStripRegex, '');
}
}
const paths = sampleFile.path.replace("./", "").split("/");
let tempPath = "";
paths.forEach(p => {
Expand Down
6 changes: 6 additions & 0 deletions live-editing/configs/GridConfigGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -837,6 +837,12 @@ export class GridConfigGenerator implements IConfigGenerator {
appConfig: BaseAppConfig
}));

configs.push(new Config({
component: 'GridDisableSummariesComponent',
additionalFiles: ['/src/app/data/nwindData.ts'],
appConfig: BaseAppConfig
}));

configs.push(new Config({
component: 'GridStatePersistenceSampleComponent',
additionalFiles: ['/src/app/directives/prevent-scroll.directive.ts', '/src/app/data/financialData.ts', '/src/app/services/financial.service.ts'],
Expand Down
6 changes: 6 additions & 0 deletions live-editing/configs/PivotGridConfigGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ export class PivotGridConfigGenerator implements IConfigGenerator {
component: 'PivotDataSelectorSampleComponent'
}));

configs.push(new Config({
additionalFiles: ['/src/app/directives/prevent-scroll.directive.ts', '/src/app/data/dataToAnalyze.ts'],
appConfig: BaseAppConfig,
component: 'PivotGridLayoutComponent'
}));

return configs;
}
}
7 changes: 7 additions & 0 deletions live-editing/configs/QueryBuilderConfigGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@ export class QueryBuilderConfigGenerator implements IConfigGenerator {
shortenComponentPathBy: "/interactions/query-builder/"
}));

configs.push(new Config({
component: 'QueryBuilderTailwindStyleComponent',
additionalDependencies: ["tailwindcss", "@tailwindcss/postcss"],
appConfig: BaseAppConfig,
shortenComponentPathBy: "/interactions/query-builder/"
}));

return configs;
}
}
30 changes: 30 additions & 0 deletions live-editing/configs/RippleConfigGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,36 @@ export class RippleConfigGenerator implements IConfigGenerator {
public generateConfigs(): Config[] {
const configs = new Array<Config>();

configs.push(new Config({
component: 'RippleSample2Component',
appConfig: BaseAppConfig,
shortenComponentPathBy: "/interactions/ripple/"
}));

configs.push(new Config({
component: 'RippleSample3Component',
appConfig: BaseAppConfig,
shortenComponentPathBy: "/interactions/ripple/"
}));

configs.push(new Config({
component: 'RippleSample4Component',
appConfig: BaseAppConfig,
shortenComponentPathBy: "/interactions/ripple/"
}));

configs.push(new Config({
component: 'RippleSample5Component',
appConfig: BaseAppConfig,
shortenComponentPathBy: "/interactions/ripple/"
}));

configs.push(new Config({
component: 'RippleSample6Component',
appConfig: BaseAppConfig,
shortenComponentPathBy: "/interactions/ripple/"
}));

configs.push(new Config({
component: 'RippleStylingSampleComponent',
additionalFiles: ["/src/app/interactions/ripple/ripple-stying/layout.scss"],
Expand Down
Loading
Loading