@fundamental-ngx/platform 0.58.0-rc.66 → 0.58.0-rc.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/platform",
3
- "version": "0.58.0-rc.66",
3
+ "version": "0.58.0-rc.68",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - platform",
6
6
  "license": "Apache-2.0",
@@ -13,9 +13,9 @@
13
13
  "node": ">= 10"
14
14
  },
15
15
  "peerDependencies": {
16
- "@fundamental-ngx/cdk": "0.58.0-rc.66",
17
- "@fundamental-ngx/core": "0.58.0-rc.66",
18
- "@fundamental-ngx/i18n": "0.58.0-rc.66"
16
+ "@fundamental-ngx/cdk": "0.58.0-rc.68",
17
+ "@fundamental-ngx/core": "0.58.0-rc.68",
18
+ "@fundamental-ngx/i18n": "0.58.0-rc.68"
19
19
  },
20
20
  "dependencies": {
21
21
  "fast-deep-equal": "3.1.3",
@@ -33,6 +33,10 @@
33
33
  "types": "./index.d.ts",
34
34
  "default": "./fesm2022/fundamental-ngx-platform.mjs"
35
35
  },
36
+ "./button": {
37
+ "types": "./button/index.d.ts",
38
+ "default": "./fesm2022/fundamental-ngx-platform-button.mjs"
39
+ },
36
40
  "./approval-flow": {
37
41
  "types": "./approval-flow/index.d.ts",
38
42
  "default": "./fesm2022/fundamental-ngx-platform-approval-flow.mjs"
@@ -41,10 +45,6 @@
41
45
  "types": "./dynamic-page/index.d.ts",
42
46
  "default": "./fesm2022/fundamental-ngx-platform-dynamic-page.mjs"
43
47
  },
44
- "./button": {
45
- "types": "./button/index.d.ts",
46
- "default": "./fesm2022/fundamental-ngx-platform-button.mjs"
47
- },
48
48
  "./feed-input": {
49
49
  "types": "./feed-input/index.d.ts",
50
50
  "default": "./fesm2022/fundamental-ngx-platform-feed-input.mjs"
@@ -73,6 +73,10 @@
73
73
  "types": "./menu/index.d.ts",
74
74
  "default": "./fesm2022/fundamental-ngx-platform-menu.mjs"
75
75
  },
76
+ "./menu-button": {
77
+ "types": "./menu-button/index.d.ts",
78
+ "default": "./fesm2022/fundamental-ngx-platform-menu-button.mjs"
79
+ },
76
80
  "./message-popover": {
77
81
  "types": "./message-popover/index.d.ts",
78
82
  "default": "./fesm2022/fundamental-ngx-platform-message-popover.mjs"
@@ -85,10 +89,6 @@
85
89
  "types": "./object-marker/index.d.ts",
86
90
  "default": "./fesm2022/fundamental-ngx-platform-object-marker.mjs"
87
91
  },
88
- "./menu-button": {
89
- "types": "./menu-button/index.d.ts",
90
- "default": "./fesm2022/fundamental-ngx-platform-menu-button.mjs"
91
- },
92
92
  "./object-status": {
93
93
  "types": "./object-status/index.d.ts",
94
94
  "default": "./fesm2022/fundamental-ngx-platform-object-status.mjs"
@@ -147,4 +147,4 @@
147
147
  }
148
148
  },
149
149
  "sideEffects": false
150
- }
150
+ }
@@ -1,10 +0,0 @@
1
- {
2
- "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
- "schematics": {
4
- "ng-add": {
5
- "description": "Adds @fundamental-ngx/platform to the project.",
6
- "factory": "./ng-add/index#ngAdd",
7
- "schema": "./ng-add/schema.json"
8
- }
9
- }
10
- }
@@ -1,13 +0,0 @@
1
- import { Rule } from '@angular-devkit/schematics';
2
- import { Schema } from './schema';
3
- /**
4
- * ng add schematic that
5
- * - adds platform lib to package.json
6
- * - adds @fundamental-ngx/core to package.json if not present there already
7
- * - installs dependent libraries and runs their external schematics
8
- * - adds lib translations and angular.json locale configurations to host app if no translations available
9
- * - updates lib translations to host app's translations if available by appending at the end of host app's files
10
- * - replaces lib source paths with node_modules source paths for lib-related trans units
11
- * @param options options passed for this schematic
12
- */
13
- export declare function ngAdd(options: Schema): Rule;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ngAdd = ngAdd;
4
- const schematics_1 = require("@angular-devkit/schematics");
5
- const tasks_1 = require("@angular-devkit/schematics/tasks");
6
- const dependencies_1 = require("@schematics/angular/utility/dependencies");
7
- const package_utils_1 = require("../utils/package-utils");
8
- /**
9
- * ng add schematic that
10
- * - adds platform lib to package.json
11
- * - adds @fundamental-ngx/core to package.json if not present there already
12
- * - installs dependent libraries and runs their external schematics
13
- * - adds lib translations and angular.json locale configurations to host app if no translations available
14
- * - updates lib translations to host app's translations if available by appending at the end of host app's files
15
- * - replaces lib source paths with node_modules source paths for lib-related trans units
16
- * @param options options passed for this schematic
17
- */
18
- function ngAdd(options) {
19
- return (tree) => {
20
- const coreInstalled = (0, package_utils_1.hasPackage)(tree, '@fundamental-ngx/core');
21
- return (0, schematics_1.chain)([coreInstalled ? (0, schematics_1.noop)() : callCoreSchematic(options), endInstallTask()]);
22
- };
23
- }
24
- /**
25
- * installs `@fundamental-ngx/core` lib and makes call to core's schematic
26
- * @param options options passed for this schematic
27
- */
28
- function callCoreSchematic(options) {
29
- return (tree, context) => {
30
- context.logger.info('✅️ Added Fundamental NGX Core schematic to tasks');
31
- (0, dependencies_1.addPackageJsonDependency)(tree, {
32
- type: dependencies_1.NodeDependencyType.Default,
33
- // Will be replaced with the real version during sync-version script run
34
- version: `0.58.0-rc.66`,
35
- name: '@fundamental-ngx/core'
36
- });
37
- const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask({
38
- packageName: '@fundamental-ngx/core'
39
- }));
40
- // Chain won't work here since we need the externals to be actually installed before we call their schemas
41
- // This ensures the externals are a dependency of the node install, so they exist when their schemas run.
42
- context.addTask(new tasks_1.RunSchematicTask('@fundamental-ngx/core', 'ng-add', options), [installTaskId]);
43
- return tree;
44
- };
45
- }
46
- /**
47
- * Run npm install.
48
- */
49
- function endInstallTask() {
50
- return (tree, context) => {
51
- context.addTask(new tasks_1.NodePackageInstallTask());
52
- return tree;
53
- };
54
- }
55
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/platform/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAiBA,sBAMC;AAvBD,2DAAuF;AACvF,4DAA4F;AAC5F,2EAAwG;AACxG,0DAAoD;AAIpD;;;;;;;;;GASG;AACH,SAAgB,KAAK,CAAC,OAAe;IACjC,OAAO,CAAC,IAAU,EAAE,EAAE;QAClB,MAAM,aAAa,GAAG,IAAA,0BAAU,EAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAEhE,OAAO,IAAA,kBAAK,EAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAA,iBAAI,GAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACtC,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC7C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAExE,IAAA,uCAAwB,EAAC,IAAI,EAAE;YAC3B,IAAI,EAAE,iCAAkB,CAAC,OAAO;YAChC,wEAAwE;YACxE,OAAO,EAAE,qBAAqB;YAC9B,IAAI,EAAE,uBAAuB;SAChC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CACjC,IAAI,8BAAsB,CAAC;YACvB,WAAW,EAAE,uBAAuB;SACvC,CAAC,CACL,CAAC;QAEF,0GAA0G;QAC1G,yGAAyG;QACzG,OAAO,CAAC,OAAO,CAAC,IAAI,wBAAgB,CAAC,uBAAuB,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAEnG,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACnB,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC7C,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC"}
@@ -1,3 +0,0 @@
1
- export interface Schema {
2
- project: string;
3
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../libs/platform/schematics/ng-add/schema.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "$id": "fundamental-ngx-ng-add",
4
- "title": "Fundamental Platform Library for Angular ng-add schematic",
5
- "type": "object",
6
- "properties": {
7
- "project": {
8
- "type": "string",
9
- "description": "The name of the project.",
10
- "$default": {
11
- "$source": "projectName"
12
- }
13
- }
14
- }
15
- }
@@ -1,19 +0,0 @@
1
- import { workspaces } from '@angular-devkit/core';
2
- import { Tree } from '@angular-devkit/schematics';
3
- import * as ts from 'typescript';
4
- /** Gets the ts source file from a path */
5
- export declare function getSourceFile(host: Tree, path: string): ts.SourceFile;
6
- /** Get the version of a package name */
7
- export declare function getPackageVersionFromPackageJson(tree: Tree, name: string): string | null;
8
- /** Check if a package exists in the package.json */
9
- export declare function hasPackage(tree: Tree, name: string): boolean | null;
10
- /** Check if a package exists in the package.json */
11
- export declare function hasDevPackage(tree: Tree, name: string): boolean | null;
12
- /** Returns the source path for the application */
13
- export declare function getSourceTreePath(host: Tree, options: any): Promise<string>;
14
- /** Returns the dist path for the application */
15
- export declare function getDistPath(host: Tree, options: any): Promise<string>;
16
- /** factory function to create a workspaces.WorkspaceHost from a Tree */
17
- export declare function createHost(tree: Tree): workspaces.WorkspaceHost;
18
- /** Returns the workspace project for the application */
19
- export declare function getWorkspaceProject(host: Tree, options: any): Promise<workspaces.ProjectDefinition>;
@@ -1,119 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getSourceFile = getSourceFile;
13
- exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
14
- exports.hasPackage = hasPackage;
15
- exports.hasDevPackage = hasDevPackage;
16
- exports.getSourceTreePath = getSourceTreePath;
17
- exports.getDistPath = getDistPath;
18
- exports.createHost = createHost;
19
- exports.getWorkspaceProject = getWorkspaceProject;
20
- const core_1 = require("@angular-devkit/core");
21
- const schematics_1 = require("@angular-devkit/schematics");
22
- const ts = require("typescript");
23
- /** Gets the ts source file from a path */
24
- function getSourceFile(host, path) {
25
- const buffer = host.read(path);
26
- if (!buffer) {
27
- throw new schematics_1.SchematicsException(`Could not find file for path: ${path}`);
28
- }
29
- return ts.createSourceFile(path, buffer.toString(), ts.ScriptTarget.Latest, true);
30
- }
31
- /** Get the version of a package name */
32
- function getPackageVersionFromPackageJson(tree, name) {
33
- if (!tree.exists('package.json')) {
34
- return null;
35
- }
36
- const packageJson = JSON.parse(tree.read('package.json').toString('utf-8'));
37
- if (packageJson.dependencies && packageJson.dependencies[name]) {
38
- return packageJson.dependencies[name];
39
- }
40
- return null;
41
- }
42
- /** Check if a package exists in the package.json */
43
- function hasPackage(tree, name) {
44
- if (!tree.exists('package.json')) {
45
- return null;
46
- }
47
- const packageJson = JSON.parse(tree.read('package.json').toString('utf-8'));
48
- return packageJson.dependencies && packageJson.dependencies[name];
49
- }
50
- /** Check if a package exists in the package.json */
51
- function hasDevPackage(tree, name) {
52
- if (!tree.exists('package.json')) {
53
- return null;
54
- }
55
- const packageJson = JSON.parse(tree.read('package.json').toString('utf-8'));
56
- return packageJson.devDependencies && packageJson.devDependencies[name];
57
- }
58
- /** Returns the source path for the application */
59
- function getSourceTreePath(host, options) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- const project = yield getWorkspaceProject(host, options);
62
- return project.sourceRoot ? project.sourceRoot : '';
63
- });
64
- }
65
- /** Returns the dist path for the application */
66
- function getDistPath(host, options) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- const project = yield getWorkspaceProject(host, options);
69
- const value = project.targets;
70
- const optionsRecord = value.get('build').options;
71
- const outputDistPath = optionsRecord['outputPath'];
72
- return outputDistPath.toString();
73
- });
74
- }
75
- /** factory function to create a workspaces.WorkspaceHost from a Tree */
76
- function createHost(tree) {
77
- return {
78
- readFile(path) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- const data = tree.read(path);
81
- if (!data) {
82
- throw new schematics_1.SchematicsException('File not found.');
83
- }
84
- return core_1.virtualFs.fileBufferToString(data);
85
- });
86
- },
87
- writeFile(path, data) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- return tree.overwrite(path, data);
90
- });
91
- },
92
- isDirectory(path) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- return !tree.exists(path) && tree.getDir(path).subfiles.length > 0;
95
- });
96
- },
97
- isFile(path) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- return tree.exists(path);
100
- });
101
- }
102
- };
103
- }
104
- /** Returns the workspace project for the application */
105
- function getWorkspaceProject(host, options) {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- const workspaceHost = createHost(host);
108
- const { workspace } = yield core_1.workspaces.readWorkspace('/', workspaceHost);
109
- if (!options.project) {
110
- options.project = workspace.extensions.defaultProject;
111
- }
112
- const project = workspace.projects.get(options.project);
113
- if (!project) {
114
- throw new schematics_1.SchematicsException(`Invalid project name: ${options.project}`);
115
- }
116
- return project;
117
- });
118
- }
119
- //# sourceMappingURL=package-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-utils.js","sourceRoot":"","sources":["../../../../../libs/platform/schematics/utils/package-utils.ts"],"names":[],"mappings":"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"}